From 1c6db5818dbe3a8ca74933dad1f60ffd1ba529c5 Mon Sep 17 00:00:00 2001 From: Carlos Date: Sat, 23 Nov 2024 14:56:07 -0500 Subject: [PATCH] feat: refactoring project --- bin/cli.js | 27 + bin/cli.test.js | 13 + jest.config.js | 11 +- node_modules/.package-lock.json | 3602 ++++----- node_modules/@babel/code-frame/lib/index.js | 134 +- .../@babel/code-frame/lib/index.js.map | 2 +- node_modules/@babel/code-frame/package.json | 5 +- .../@babel/compat-data/data/plugins.json | 13 +- node_modules/@babel/compat-data/package.json | 2 +- node_modules/@babel/core/cjs-proxy.cjs | 9 + .../core/lib/config/files/configuration.js | 7 +- .../lib/config/files/configuration.js.map | 2 +- .../lib/config/files/index-browser.js.map | 2 +- .../core/lib/config/files/module-types.js | 67 +- .../core/lib/config/files/module-types.js.map | 2 +- .../@babel/core/lib/config/files/plugins.js | 34 +- .../core/lib/config/files/plugins.js.map | 2 +- node_modules/@babel/core/lib/config/full.js | 18 +- .../@babel/core/lib/config/full.js.map | 2 +- .../core/lib/config/helpers/config-api.js | 2 +- .../core/lib/config/helpers/config-api.js.map | 2 +- .../@babel/core/lib/config/index.js.map | 2 +- .../@babel/core/lib/config/partial.js | 2 +- .../@babel/core/lib/config/partial.js.map | 2 +- .../core/lib/config/validation/options.js.map | 2 +- .../core/lib/config/validation/plugins.js.map | 2 +- .../@babel/core/lib/gensync-utils/async.js | 4 +- .../core/lib/gensync-utils/async.js.map | 2 +- node_modules/@babel/core/lib/index.js | 21 +- node_modules/@babel/core/lib/index.js.map | 2 +- .../@babel/core/lib/parser/index.js.map | 2 +- .../lib/parser/util/missing-plugin-helper.js | 12 +- .../parser/util/missing-plugin-helper.js.map | 2 +- .../@babel/core/lib/transformation/index.js | 27 +- .../core/lib/transformation/index.js.map | 2 +- .../core/lib/transformation/plugin-pass.js | 4 +- .../lib/transformation/plugin-pass.js.map | 2 +- node_modules/@babel/core/package.json | 32 +- .../core/src/config/files/index-browser.ts | 8 +- .../@babel/generator/lib/buffer.js.map | 2 +- .../@babel/generator/lib/generators/base.js | 16 +- .../generator/lib/generators/base.js.map | 2 +- .../generator/lib/generators/classes.js | 105 +- .../generator/lib/generators/classes.js.map | 2 +- .../generator/lib/generators/expressions.js | 109 +- .../lib/generators/expressions.js.map | 2 +- .../@babel/generator/lib/generators/flow.js | 152 +- .../generator/lib/generators/flow.js.map | 2 +- .../@babel/generator/lib/generators/jsx.js | 52 +- .../generator/lib/generators/jsx.js.map | 2 +- .../generator/lib/generators/methods.js | 77 +- .../generator/lib/generators/methods.js.map | 2 +- .../generator/lib/generators/modules.js | 74 +- .../generator/lib/generators/modules.js.map | 2 +- .../generator/lib/generators/statements.js | 80 +- .../lib/generators/statements.js.map | 2 +- .../lib/generators/template-literals.js | 12 +- .../lib/generators/template-literals.js.map | 2 +- .../@babel/generator/lib/generators/types.js | 66 +- .../generator/lib/generators/types.js.map | 2 +- .../generator/lib/generators/typescript.js | 302 +- .../lib/generators/typescript.js.map | 2 +- node_modules/@babel/generator/lib/index.js | 31 +- .../@babel/generator/lib/index.js.map | 2 +- .../@babel/generator/lib/node/index.js | 26 +- .../@babel/generator/lib/node/index.js.map | 2 +- .../@babel/generator/lib/node/parentheses.js | 42 +- .../generator/lib/node/parentheses.js.map | 2 +- node_modules/@babel/generator/lib/printer.js | 318 +- .../@babel/generator/lib/printer.js.map | 2 +- node_modules/@babel/generator/package.json | 12 +- .../helper-annotate-as-pure/package.json | 6 +- .../helper-annotate-as-pure/tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/explode-assignable-expression.js.map | 2 +- .../package.json | 6 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../helper-compilation-targets/lib/index.js | 19 +- .../lib/index.js.map | 2 +- .../helper-compilation-targets/package.json | 10 +- .../lib/decorators-2018-09.js | 16 +- .../lib/decorators-2018-09.js.map | 2 +- .../lib/decorators.js.map | 2 +- .../lib/index.js | 10 +- .../package.json | 20 +- .../tsconfig.json | 32 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 6 +- .../lib/util.js | 6 +- .../lib/util.js.map | 2 +- .../package.json | 10 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../esm/index.browser.mjs | 2 +- .../esm/index.browser.mjs.map | 2 +- .../esm/index.node.mjs | 2 +- .../esm/index.node.mjs.map | 2 +- .../lib/visitors/usage.js | 2 +- .../package.json | 4 +- .../lib/index.js.map | 2 +- .../package.json | 6 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/import-injector.js.map | 2 +- .../@babel/helper-module-imports/package.json | 8 +- .../lib/rewrite-live-references.js | 23 +- .../lib/rewrite-live-references.js.map | 2 +- .../helper-module-transforms/package.json | 11 +- .../package.json | 8 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../@babel/helper-plugin-utils/lib/index.js | 3 +- .../helper-plugin-utils/lib/index.js.map | 2 +- .../@babel/helper-plugin-utils/package.json | 4 +- .../@babel/helper-plugin-utils/tsconfig.json | 39 - .../helper-plugin-utils/tsconfig.tsbuildinfo | 1 - .../package.json | 10 +- .../tsconfig.json | 23 - .../tsconfig.tsbuildinfo | 1 - .../@babel/helper-replace-supers/package.json | 10 +- .../helper-replace-supers/tsconfig.json | 23 - .../tsconfig.tsbuildinfo | 1 - .../@babel/helper-simple-access/package.json | 8 +- .../package.json | 6 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../@babel/helper-string-parser/package.json | 2 +- .../lib/identifier.js | 8 +- .../lib/identifier.js.map | 2 +- .../helper-validator-identifier/package.json | 4 +- .../scripts/generate-identifier-regex.js | 73 - .../lib/validator.js.map | 2 +- .../helper-validator-option/package.json | 2 +- .../@babel/helper-wrap-function/package.json | 8 +- .../@babel/helper-wrap-function/tsconfig.json | 17 - .../helper-wrap-function/tsconfig.tsbuildinfo | 1 - .../@babel/helpers/lib/helpers-generated.js | 12 +- .../helpers/lib/helpers-generated.js.map | 2 +- .../helpers/lib/helpers/superPropGet.js | 6 +- .../helpers/lib/helpers/superPropGet.js.map | 2 +- .../helpers/lib/helpers/superPropSet.js | 4 +- .../helpers/lib/helpers/superPropSet.js.map | 2 +- .../helpers/lib/helpers/usingCtx.js.map | 2 +- .../lib/helpers/wrapAsyncGenerator.js.map | 2 +- .../helpers/lib/helpers/wrapNativeSuper.js | 2 +- .../lib/helpers/wrapNativeSuper.js.map | 2 +- node_modules/@babel/helpers/package.json | 12 +- .../helpers/scripts/build-helper-metadata.js | 209 - .../helpers/scripts/generate-helpers.js | 207 - .../scripts/generate-regenerator-runtime.js | 61 - node_modules/@babel/highlight/LICENSE | 22 - node_modules/@babel/highlight/README.md | 19 - node_modules/@babel/highlight/lib/index.js | 119 - .../@babel/highlight/lib/index.js.map | 1 - .../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 - .../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/lib/index.js | 608 +- node_modules/@babel/parser/lib/index.js.map | 2 +- node_modules/@babel/parser/package.json | 14 +- .../@babel/parser/typings/babel-parser.d.ts | 78 +- .../package.json | 10 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 10 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 10 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 14 +- .../tsconfig.json | 23 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 12 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../plugin-syntax-dynamic-import/LICENSE | 22 - .../plugin-syntax-dynamic-import/README.md | 19 - .../plugin-syntax-dynamic-import/lib/index.js | 22 - .../plugin-syntax-dynamic-import/package.json | 23 - .../LICENSE | 22 - .../README.md | 19 - .../lib/index.js | 22 - .../package.json | 24 - .../lib/index.js | 18 +- .../lib/index.js.map | 2 +- .../package.json | 6 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 15 +- .../lib/index.js.map | 2 +- .../package.json | 7 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../@babel/plugin-syntax-jsx/package.json | 6 +- .../@babel/plugin-syntax-jsx/tsconfig.json | 17 - .../plugin-syntax-jsx/tsconfig.tsbuildinfo | 1 - .../plugin-syntax-typescript/lib/index.js | 4 +- .../plugin-syntax-typescript/lib/index.js.map | 2 +- .../plugin-syntax-typescript/package.json | 8 +- .../plugin-syntax-typescript/tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 12 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 3 +- .../lib/index.js.map | 2 +- .../package.json | 15 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 12 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 8 +- .../lib/index.js.map | 2 +- .../package.json | 8 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/annex-B_3_3.js | 7 +- .../lib/annex-B_3_3.js.map | 2 +- .../package.json | 10 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 4 +- .../lib/index.js.map | 2 +- .../package.json | 10 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 8 +- .../lib/index.js.map | 2 +- .../package.json | 18 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../plugin-transform-classes/lib/index.js | 2 +- .../plugin-transform-classes/lib/index.js.map | 2 +- .../lib/transformClass.js | 31 +- .../lib/transformClass.js.map | 2 +- .../plugin-transform-classes/package.json | 16 +- .../plugin-transform-classes/tsconfig.json | 23 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js.map | 2 +- .../package.json | 10 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 34 +- .../lib/index.js.map | 2 +- .../package.json | 10 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 10 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 8 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 10 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 8 +- .../lib/index.js.map | 2 +- .../package.json | 9 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 10 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 2 +- .../lib/index.js.map | 2 +- .../package.json | 9 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../plugin-transform-for-of/lib/index.js.map | 2 +- .../lib/no-helper-implementation.js.map | 2 +- .../plugin-transform-for-of/package.json | 10 +- .../plugin-transform-for-of/tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 12 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 2 +- .../lib/index.js.map | 2 +- .../package.json | 9 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../plugin-transform-literals/package.json | 8 +- .../plugin-transform-literals/tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 2 +- .../lib/index.js.map | 2 +- .../package.json | 11 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 8 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js.map | 2 +- .../plugin-transform-modules-amd/package.json | 12 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/dynamic-import.js.map | 2 +- .../lib/index.js.map | 2 +- .../lib/lazy.js | 2 +- .../lib/lazy.js.map | 2 +- .../package.json | 14 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 16 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js.map | 2 +- .../plugin-transform-modules-umd/package.json | 12 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 10 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../plugin-transform-new-target/package.json | 12 +- .../plugin-transform-new-target/tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 2 +- .../lib/index.js.map | 2 +- .../package.json | 9 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 2 +- .../lib/index.js.map | 2 +- .../package.json | 13 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 2 +- .../lib/index.js.map | 2 +- .../package.json | 15 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 10 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 2 +- .../lib/index.js.map | 2 +- .../package.json | 9 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 2 +- .../lib/index.js.map | 2 +- .../package.json | 15 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../lib/params.js.map | 2 +- .../lib/rest.js.map | 2 +- .../plugin-transform-parameters/package.json | 8 +- .../plugin-transform-parameters/tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 4 +- .../lib/index.js.map | 2 +- .../package.json | 10 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 2 +- .../lib/index.js.map | 2 +- .../package.json | 13 +- .../tsconfig.json | 23 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 8 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 8 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 8 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../plugin-transform-react-jsx/package.json | 18 +- .../plugin-transform-react-jsx/tsconfig.json | 23 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 10 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../plugin-transform-regenerator/package.json | 8 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 8 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 8 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../plugin-transform-spread/lib/index.js | 27 +- .../plugin-transform-spread/lib/index.js.map | 2 +- .../plugin-transform-spread/package.json | 10 +- .../plugin-transform-spread/tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 8 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js.map | 2 +- .../package.json | 8 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 12 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../plugin-transform-typescript/lib/index.js | 1 + .../lib/index.js.map | 2 +- .../lib/namespace.js | 2 +- .../lib/namespace.js.map | 2 +- .../plugin-transform-typescript/package.json | 20 +- .../plugin-transform-typescript/tsconfig.json | 29 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js.map | 2 +- .../package.json | 8 +- .../tsconfig.json | 17 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 10 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../package.json | 10 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../lib/index.js | 4 +- .../lib/index.js.map | 2 +- .../package.json | 10 +- .../tsconfig.json | 20 - .../tsconfig.tsbuildinfo | 1 - .../preset-env/lib/available-plugins.js | 50 +- .../preset-env/lib/available-plugins.js.map | 2 +- node_modules/@babel/preset-env/lib/index.js | 9 +- .../@babel/preset-env/lib/index.js.map | 2 +- .../preset-env/lib/plugins-compat-data.js | 4 +- .../preset-env/lib/plugins-compat-data.js.map | 2 +- .../preset-env/lib/shipped-proposals.js | 2 +- .../preset-env/lib/shipped-proposals.js.map | 2 +- node_modules/@babel/preset-env/package.json | 148 +- node_modules/@babel/preset-env/tsconfig.json | 185 - .../@babel/preset-env/tsconfig.tsbuildinfo | 1 - node_modules/@babel/preset-react/package.json | 18 +- .../@babel/preset-react/tsconfig.json | 29 - .../@babel/preset-react/tsconfig.tsbuildinfo | 1 - .../@babel/preset-typescript/lib/index.js | 33 +- .../@babel/preset-typescript/lib/index.js.map | 2 +- .../@babel/preset-typescript/package.json | 16 +- .../@babel/preset-typescript/tsconfig.json | 26 - .../preset-typescript/tsconfig.tsbuildinfo | 1 - node_modules/@babel/regjsgen/LICENSE-MIT.txt | 22 - node_modules/@babel/regjsgen/README.md | 44 - node_modules/@babel/regjsgen/package.json | 43 - node_modules/@babel/regjsgen/regjsgen.js | 425 - .../runtime/helpers/esm/superPropGet.js | 10 +- .../runtime/helpers/esm/superPropSet.js | 4 +- .../@babel/runtime/helpers/extends.js | 4 +- node_modules/@babel/runtime/helpers/get.js | 4 +- .../@babel/runtime/helpers/getPrototypeOf.js | 4 +- .../@babel/runtime/helpers/setPrototypeOf.js | 4 +- .../@babel/runtime/helpers/superPropGet.js | 10 +- .../@babel/runtime/helpers/superPropSet.js | 4 +- node_modules/@babel/runtime/helpers/typeof.js | 4 +- .../@babel/runtime/helpers/wrapNativeSuper.js | 4 +- node_modules/@babel/runtime/package.json | 2 +- node_modules/@babel/template/lib/options.js | 2 +- node_modules/@babel/template/lib/populate.js | 2 +- .../@babel/template/lib/populate.js.map | 2 +- node_modules/@babel/template/package.json | 8 +- node_modules/@babel/traverse/lib/context.js | 7 +- .../@babel/traverse/lib/context.js.map | 2 +- .../@babel/traverse/lib/path/context.js | 19 +- .../@babel/traverse/lib/path/context.js.map | 2 +- .../@babel/traverse/lib/path/conversion.js | 3 +- .../traverse/lib/path/conversion.js.map | 2 +- .../@babel/traverse/lib/path/index.js | 37 +- .../@babel/traverse/lib/path/index.js.map | 2 +- .../@babel/traverse/lib/path/introspection.js | 36 +- .../traverse/lib/path/introspection.js.map | 2 +- .../traverse/lib/path/lib/hoister.js.map | 2 +- .../@babel/traverse/lib/path/modification.js | 17 +- .../traverse/lib/path/modification.js.map | 2 +- .../@babel/traverse/lib/path/removal.js | 6 +- .../@babel/traverse/lib/path/removal.js.map | 2 +- .../@babel/traverse/lib/path/replacement.js | 17 +- .../traverse/lib/path/replacement.js.map | 2 +- .../@babel/traverse/lib/scope/index.js | 153 +- .../@babel/traverse/lib/scope/index.js.map | 2 +- .../@babel/traverse/lib/scope/lib/renamer.js | 19 +- .../traverse/lib/scope/lib/renamer.js.map | 2 +- node_modules/@babel/traverse/lib/visitors.js | 2 +- node_modules/@babel/traverse/package.json | 16 +- .../lib/ast-types/generated/index.js.map | 2 +- .../types/lib/builders/generated/index.js | 1730 +++- .../types/lib/builders/generated/index.js.map | 2 +- .../@babel/types/lib/builders/validateNode.js | 6 +- .../types/lib/builders/validateNode.js.map | 2 +- .../@babel/types/lib/definitions/core.js | 317 +- .../@babel/types/lib/definitions/core.js.map | 2 +- .../types/lib/definitions/experimental.js | 26 +- .../types/lib/definitions/experimental.js.map | 2 +- .../@babel/types/lib/definitions/flow.js | 39 +- .../@babel/types/lib/definitions/flow.js.map | 2 +- .../@babel/types/lib/definitions/index.js | 9 - .../@babel/types/lib/definitions/index.js.map | 2 +- .../@babel/types/lib/definitions/jsx.js | 12 +- .../@babel/types/lib/definitions/jsx.js.map | 2 +- .../@babel/types/lib/definitions/misc.js | 5 +- .../@babel/types/lib/definitions/misc.js.map | 2 +- .../types/lib/definitions/typescript.js | 46 +- .../types/lib/definitions/typescript.js.map | 2 +- .../@babel/types/lib/definitions/utils.js | 31 +- .../@babel/types/lib/definitions/utils.js.map | 2 +- .../@babel/types/lib/index-legacy.d.ts | 20 +- node_modules/@babel/types/lib/index.d.ts | 139 +- node_modules/@babel/types/lib/index.js | 3 + node_modules/@babel/types/lib/index.js.flow | 20 +- node_modules/@babel/types/lib/index.js.map | 2 +- .../@babel/types/lib/validators/is.js | 2 +- .../@babel/types/lib/validators/is.js.map | 2 +- .../@babel/types/lib/validators/validate.js | 20 +- .../types/lib/validators/validate.js.map | 2 +- node_modules/@babel/types/package.json | 11 +- node_modules/@types/eslint/README.md | 2 +- node_modules/@types/eslint/package.json | 4 +- .../@types/eslint/rules/best-practices.d.ts | 11 +- node_modules/@types/estree/README.md | 2 +- node_modules/@types/estree/index.d.ts | 11 +- node_modules/@types/estree/package.json | 6 +- node_modules/@types/jest/README.md | 2 +- node_modules/@types/jest/index.d.ts | 9 +- node_modules/@types/jest/package.json | 7 +- node_modules/@types/node/README.md | 2 +- node_modules/@types/node/assert.d.ts | 6 +- node_modules/@types/node/async_hooks.d.ts | 2 +- node_modules/@types/node/buffer.d.ts | 431 +- node_modules/@types/node/child_process.d.ts | 63 +- node_modules/@types/node/cluster.d.ts | 3 +- node_modules/@types/node/console.d.ts | 4 +- node_modules/@types/node/crypto.d.ts | 25 +- .../@types/node/diagnostics_channel.d.ts | 8 +- node_modules/@types/node/dns.d.ts | 10 +- node_modules/@types/node/dns/promises.d.ts | 10 +- node_modules/@types/node/domain.d.ts | 4 +- node_modules/@types/node/events.d.ts | 6 +- node_modules/@types/node/fs.d.ts | 26 +- node_modules/@types/node/fs/promises.d.ts | 23 +- node_modules/@types/node/globals.d.ts | 279 +- node_modules/@types/node/globals.global.d.ts | 1 - node_modules/@types/node/http.d.ts | 64 +- node_modules/@types/node/http2.d.ts | 339 +- node_modules/@types/node/https.d.ts | 41 +- node_modules/@types/node/index.d.ts | 21 +- node_modules/@types/node/inspector.d.ts | 1440 +++- node_modules/@types/node/module.d.ts | 99 +- node_modules/@types/node/net.d.ts | 32 +- node_modules/@types/node/os.d.ts | 2 +- node_modules/@types/node/package.json | 16 +- node_modules/@types/node/path.d.ts | 11 +- node_modules/@types/node/perf_hooks.d.ts | 62 +- node_modules/@types/node/process.d.ts | 192 +- node_modules/@types/node/punycode.d.ts | 2 +- node_modules/@types/node/querystring.d.ts | 2 +- node_modules/@types/node/readline.d.ts | 87 +- .../@types/node/readline/promises.d.ts | 18 +- node_modules/@types/node/repl.d.ts | 8 +- node_modules/@types/node/stream.d.ts | 53 +- node_modules/@types/node/stream/promises.d.ts | 9 +- node_modules/@types/node/stream/web.d.ts | 292 +- node_modules/@types/node/string_decoder.d.ts | 6 +- node_modules/@types/node/test.d.ts | 322 +- node_modules/@types/node/timers.d.ts | 2 +- node_modules/@types/node/timers/promises.d.ts | 12 +- node_modules/@types/node/tls.d.ts | 19 +- node_modules/@types/node/trace_events.d.ts | 8 +- node_modules/@types/node/tty.d.ts | 2 +- node_modules/@types/node/url.d.ts | 25 +- node_modules/@types/node/util.d.ts | 189 +- node_modules/@types/node/v8.d.ts | 24 +- node_modules/@types/node/vm.d.ts | 122 +- node_modules/@types/node/wasi.d.ts | 2 +- node_modules/@types/node/worker_threads.d.ts | 64 +- node_modules/@types/node/zlib.d.ts | 16 +- node_modules/@webassemblyjs/ast/package.json | 10 +- .../floating-point-hex-parser/package.json | 5 +- .../helper-api-error/package.json | 5 +- .../@webassemblyjs/helper-buffer/package.json | 6 +- .../helper-numbers/package.json | 9 +- .../helper-wasm-bytecode/lib/index.js | 32 +- .../helper-wasm-bytecode/package.json | 5 +- .../helper-wasm-section/package.json | 14 +- .../@webassemblyjs/ieee754/lib/index.js | 4 +- .../@webassemblyjs/ieee754/package.json | 5 +- .../@webassemblyjs/ieee754/src/index.js | 4 +- .../@webassemblyjs/leb128/lib/bufs.js | 18 +- node_modules/@webassemblyjs/leb128/lib/leb.js | 16 +- .../@webassemblyjs/leb128/package.json | 5 +- node_modules/@webassemblyjs/utf8/package.json | 5 +- .../@webassemblyjs/wasm-edit/package.json | 22 +- .../@webassemblyjs/wasm-gen/package.json | 14 +- .../@webassemblyjs/wasm-opt/package.json | 12 +- .../@webassemblyjs/wasm-parser/esm/decoder.js | 271 +- .../@webassemblyjs/wasm-parser/lib/decoder.js | 271 +- .../@webassemblyjs/wasm-parser/package.json | 26 +- .../@webassemblyjs/wast-printer/package.json | 10 +- node_modules/acorn-import-attributes/LICENSE | 21 - .../acorn-import-attributes/README.md | 21 - .../acorn-import-attributes/lib/index.js | 286 - .../acorn-import-attributes/lib/index.mjs | 291 - .../acorn-import-attributes/package.json | 49 - .../acorn-import-attributes/src/index.js | 291 - node_modules/acorn-walk/CHANGELOG.md | 6 + node_modules/acorn-walk/dist/walk.js | 12 +- node_modules/acorn-walk/dist/walk.mjs | 12 +- node_modules/acorn-walk/package.json | 2 +- node_modules/acorn/CHANGELOG.md | 18 + node_modules/acorn/dist/acorn.d.mts | 12 +- node_modules/acorn/dist/acorn.d.ts | 12 +- node_modules/acorn/dist/acorn.js | 143 +- node_modules/acorn/dist/acorn.mjs | 143 +- node_modules/acorn/package.json | 2 +- node_modules/ajv/.tonic_example.js | 20 - node_modules/ajv/LICENSE | 2 +- node_modules/ajv/README.md | 1500 +--- node_modules/ajv/dist/ajv.bundle.js | 7189 ----------------- node_modules/ajv/dist/ajv.min.js | 3 - node_modules/ajv/dist/ajv.min.js.map | 1 - node_modules/ajv/lib/ajv.d.ts | 397 - node_modules/ajv/lib/ajv.js | 506 -- node_modules/ajv/lib/cache.js | 26 - node_modules/ajv/lib/compile/async.js | 90 - node_modules/ajv/lib/compile/equal.js | 5 - node_modules/ajv/lib/compile/error_classes.js | 34 - node_modules/ajv/lib/compile/formats.js | 142 - node_modules/ajv/lib/compile/index.js | 387 - node_modules/ajv/lib/compile/resolve.js | 270 - node_modules/ajv/lib/compile/rules.js | 66 - node_modules/ajv/lib/compile/schema_obj.js | 9 - node_modules/ajv/lib/compile/ucs2length.js | 20 - node_modules/ajv/lib/compile/util.js | 239 - node_modules/ajv/lib/data.js | 49 - node_modules/ajv/lib/definition_schema.js | 37 - node_modules/ajv/lib/dot/_limit.jst | 113 - node_modules/ajv/lib/dot/_limitItems.jst | 12 - node_modules/ajv/lib/dot/_limitLength.jst | 12 - node_modules/ajv/lib/dot/_limitProperties.jst | 12 - node_modules/ajv/lib/dot/allOf.jst | 32 - node_modules/ajv/lib/dot/anyOf.jst | 46 - node_modules/ajv/lib/dot/coerce.def | 51 - node_modules/ajv/lib/dot/comment.jst | 9 - node_modules/ajv/lib/dot/const.jst | 11 - node_modules/ajv/lib/dot/contains.jst | 55 - node_modules/ajv/lib/dot/custom.jst | 191 - node_modules/ajv/lib/dot/defaults.def | 47 - node_modules/ajv/lib/dot/definitions.def | 203 - node_modules/ajv/lib/dot/dependencies.jst | 79 - node_modules/ajv/lib/dot/enum.jst | 30 - node_modules/ajv/lib/dot/errors.def | 194 - node_modules/ajv/lib/dot/format.jst | 106 - node_modules/ajv/lib/dot/if.jst | 73 - node_modules/ajv/lib/dot/items.jst | 98 - node_modules/ajv/lib/dot/missing.def | 39 - node_modules/ajv/lib/dot/multipleOf.jst | 22 - node_modules/ajv/lib/dot/not.jst | 43 - node_modules/ajv/lib/dot/oneOf.jst | 54 - node_modules/ajv/lib/dot/pattern.jst | 14 - node_modules/ajv/lib/dot/properties.jst | 245 - node_modules/ajv/lib/dot/propertyNames.jst | 52 - node_modules/ajv/lib/dot/ref.jst | 85 - node_modules/ajv/lib/dot/required.jst | 108 - node_modules/ajv/lib/dot/uniqueItems.jst | 62 - node_modules/ajv/lib/dot/validate.jst | 276 - node_modules/ajv/lib/dotjs/README.md | 3 - node_modules/ajv/lib/dotjs/_limit.js | 163 - node_modules/ajv/lib/dotjs/_limitItems.js | 80 - node_modules/ajv/lib/dotjs/_limitLength.js | 85 - .../ajv/lib/dotjs/_limitProperties.js | 80 - node_modules/ajv/lib/dotjs/allOf.js | 42 - node_modules/ajv/lib/dotjs/anyOf.js | 73 - node_modules/ajv/lib/dotjs/comment.js | 14 - node_modules/ajv/lib/dotjs/const.js | 56 - node_modules/ajv/lib/dotjs/contains.js | 81 - node_modules/ajv/lib/dotjs/custom.js | 228 - node_modules/ajv/lib/dotjs/dependencies.js | 168 - node_modules/ajv/lib/dotjs/enum.js | 66 - node_modules/ajv/lib/dotjs/format.js | 150 - node_modules/ajv/lib/dotjs/if.js | 103 - node_modules/ajv/lib/dotjs/index.js | 33 - node_modules/ajv/lib/dotjs/items.js | 140 - node_modules/ajv/lib/dotjs/multipleOf.js | 80 - node_modules/ajv/lib/dotjs/not.js | 84 - node_modules/ajv/lib/dotjs/oneOf.js | 73 - node_modules/ajv/lib/dotjs/pattern.js | 75 - node_modules/ajv/lib/dotjs/properties.js | 335 - node_modules/ajv/lib/dotjs/propertyNames.js | 81 - node_modules/ajv/lib/dotjs/ref.js | 124 - node_modules/ajv/lib/dotjs/required.js | 270 - node_modules/ajv/lib/dotjs/uniqueItems.js | 86 - node_modules/ajv/lib/dotjs/validate.js | 482 -- node_modules/ajv/lib/keyword.js | 146 - node_modules/ajv/lib/refs/data.json | 26 +- .../ajv/lib/refs/json-schema-draft-04.json | 149 - .../ajv/lib/refs/json-schema-draft-06.json | 279 +- .../ajv/lib/refs/json-schema-draft-07.json | 307 +- .../ajv/lib/refs/json-schema-secure.json | 12 +- node_modules/ajv/package.json | 136 +- node_modules/ajv/scripts/.eslintrc.yml | 3 - node_modules/ajv/scripts/bundle.js | 61 - node_modules/ajv/scripts/compile-dots.js | 73 - node_modules/ajv/scripts/info | 10 - node_modules/ajv/scripts/prepare-tests | 12 - .../ajv/scripts/publish-built-version | 32 - node_modules/ajv/scripts/travis-gh-pages | 23 - node_modules/argparse/CHANGELOG.md | 199 +- node_modules/argparse/LICENSE | 267 +- node_modules/argparse/README.md | 253 +- 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 | 29 +- node_modules/babel-loader/lib/cache.js | 12 +- node_modules/babel-loader/lib/index.js | 29 +- node_modules/babel-loader/package.json | 9 +- .../package.json | 6 +- .../package.json | 6 +- .../package.json | 24 +- .../scripts/check-yarn-bug.sh | 5 - .../src/index.js | 23 +- node_modules/browserslist/browser.js | 2 + node_modules/browserslist/cli.js | 2 +- node_modules/browserslist/index.d.ts | 27 +- node_modules/browserslist/index.js | 7 +- node_modules/browserslist/node.js | 79 +- node_modules/browserslist/package.json | 8 +- node_modules/browserslist/parse.js | 2 +- node_modules/caniuse-lite/data/agents.js | 2 +- .../caniuse-lite/data/browserVersions.js | 2 +- node_modules/caniuse-lite/data/features.js | 2 +- .../caniuse-lite/data/features/aac.js | 2 +- .../data/features/abortcontroller.js | 2 +- .../caniuse-lite/data/features/ac3-ec3.js | 2 +- .../data/features/accelerometer.js | 2 +- .../data/features/addeventlistener.js | 2 +- .../data/features/alternate-stylesheet.js | 2 +- .../data/features/ambient-light.js | 2 +- .../caniuse-lite/data/features/apng.js | 2 +- .../data/features/array-find-index.js | 2 +- .../caniuse-lite/data/features/array-find.js | 2 +- .../caniuse-lite/data/features/array-flat.js | 2 +- .../data/features/array-includes.js | 2 +- .../data/features/arrow-functions.js | 2 +- .../caniuse-lite/data/features/asmjs.js | 2 +- .../data/features/async-clipboard.js | 2 +- .../data/features/async-functions.js | 2 +- .../caniuse-lite/data/features/atob-btoa.js | 2 +- .../caniuse-lite/data/features/audio-api.js | 2 +- .../caniuse-lite/data/features/audio.js | 2 +- .../caniuse-lite/data/features/audiotracks.js | 2 +- .../caniuse-lite/data/features/autofocus.js | 2 +- .../caniuse-lite/data/features/auxclick.js | 2 +- .../caniuse-lite/data/features/av1.js | 2 +- .../caniuse-lite/data/features/avif.js | 2 +- .../data/features/background-attachment.js | 2 +- .../data/features/background-clip-text.js | 2 +- .../data/features/background-img-opts.js | 2 +- .../data/features/background-position-x-y.js | 2 +- .../features/background-repeat-round-space.js | 2 +- .../data/features/background-sync.js | 2 +- .../data/features/battery-status.js | 2 +- .../caniuse-lite/data/features/beacon.js | 2 +- .../data/features/beforeafterprint.js | 2 +- .../caniuse-lite/data/features/bigint.js | 2 +- .../caniuse-lite/data/features/blobbuilder.js | 2 +- .../caniuse-lite/data/features/bloburls.js | 2 +- .../data/features/border-image.js | 2 +- .../data/features/border-radius.js | 2 +- .../data/features/broadcastchannel.js | 2 +- .../caniuse-lite/data/features/brotli.js | 2 +- .../caniuse-lite/data/features/calc.js | 2 +- .../data/features/canvas-blending.js | 2 +- .../caniuse-lite/data/features/canvas-text.js | 2 +- .../caniuse-lite/data/features/canvas.js | 2 +- .../caniuse-lite/data/features/ch-unit.js | 2 +- .../data/features/chacha20-poly1305.js | 2 +- .../data/features/channel-messaging.js | 2 +- .../data/features/childnode-remove.js | 2 +- .../caniuse-lite/data/features/classlist.js | 2 +- .../client-hints-dpr-width-viewport.js | 2 +- .../caniuse-lite/data/features/clipboard.js | 2 +- .../caniuse-lite/data/features/colr-v1.js | 2 +- .../caniuse-lite/data/features/colr.js | 2 +- .../data/features/comparedocumentposition.js | 2 +- .../data/features/console-basic.js | 2 +- .../data/features/console-time.js | 2 +- .../caniuse-lite/data/features/const.js | 2 +- .../data/features/constraint-validation.js | 2 +- .../data/features/contenteditable.js | 2 +- .../data/features/contentsecuritypolicy.js | 2 +- .../data/features/contentsecuritypolicy2.js | 2 +- .../data/features/cookie-store-api.js | 2 +- .../caniuse-lite/data/features/cors.js | 2 +- .../data/features/createimagebitmap.js | 2 +- .../data/features/credential-management.js | 2 +- .../data/features/cryptography.js | 2 +- .../caniuse-lite/data/features/css-all.js | 2 +- .../data/features/css-anchor-positioning.js | 2 +- .../data/features/css-animation.js | 2 +- .../data/features/css-any-link.js | 2 +- .../data/features/css-appearance.js | 2 +- .../data/features/css-at-counter-style.js | 2 +- .../data/features/css-autofill.js | 2 +- .../data/features/css-backdrop-filter.js | 2 +- .../data/features/css-background-offsets.js | 2 +- .../data/features/css-backgroundblendmode.js | 2 +- .../data/features/css-boxdecorationbreak.js | 2 +- .../data/features/css-boxshadow.js | 2 +- .../caniuse-lite/data/features/css-canvas.js | 2 +- .../data/features/css-caret-color.js | 2 +- .../data/features/css-cascade-layers.js | 2 +- .../data/features/css-cascade-scope.js | 2 +- .../data/features/css-case-insensitive.js | 2 +- .../data/features/css-clip-path.js | 2 +- .../data/features/css-color-adjust.js | 2 +- .../data/features/css-color-function.js | 2 +- .../data/features/css-conic-gradients.js | 2 +- .../features/css-container-queries-style.js | 2 +- .../data/features/css-container-queries.js | 2 +- .../features/css-container-query-units.js | 2 +- .../data/features/css-containment.js | 2 +- .../data/features/css-content-visibility.js | 2 +- .../data/features/css-counters.js | 2 +- .../data/features/css-crisp-edges.js | 2 +- .../data/features/css-cross-fade.js | 2 +- .../data/features/css-default-pseudo.js | 2 +- .../data/features/css-descendant-gtgt.js | 2 +- .../data/features/css-deviceadaptation.js | 2 +- .../data/features/css-dir-pseudo.js | 2 +- .../data/features/css-display-contents.js | 2 +- .../data/features/css-element-function.js | 2 +- .../data/features/css-env-function.js | 2 +- .../data/features/css-exclusions.js | 2 +- .../data/features/css-featurequeries.js | 2 +- .../data/features/css-file-selector-button.js | 2 +- .../data/features/css-filter-function.js | 2 +- .../caniuse-lite/data/features/css-filters.js | 2 +- .../data/features/css-first-letter.js | 2 +- .../data/features/css-first-line.js | 2 +- .../caniuse-lite/data/features/css-fixed.js | 2 +- .../data/features/css-focus-visible.js | 2 +- .../data/features/css-focus-within.js | 2 +- .../data/features/css-font-palette.js | 2 +- .../features/css-font-rendering-controls.js | 2 +- .../data/features/css-font-stretch.js | 2 +- .../data/features/css-gencontent.js | 2 +- .../data/features/css-gradients.js | 2 +- .../data/features/css-grid-animation.js | 2 +- .../caniuse-lite/data/features/css-grid.js | 2 +- .../data/features/css-hanging-punctuation.js | 2 +- .../caniuse-lite/data/features/css-has.js | 2 +- .../caniuse-lite/data/features/css-hyphens.js | 2 +- .../data/features/css-image-orientation.js | 2 +- .../data/features/css-image-set.js | 2 +- .../data/features/css-in-out-of-range.js | 2 +- .../data/features/css-indeterminate-pseudo.js | 2 +- .../data/features/css-initial-letter.js | 2 +- .../data/features/css-initial-value.js | 2 +- .../caniuse-lite/data/features/css-lch-lab.js | 2 +- .../data/features/css-letter-spacing.js | 2 +- .../data/features/css-line-clamp.js | 2 +- .../data/features/css-logical-props.js | 2 +- .../data/features/css-marker-pseudo.js | 2 +- .../caniuse-lite/data/features/css-masks.js | 2 +- .../data/features/css-matches-pseudo.js | 2 +- .../data/features/css-math-functions.js | 2 +- .../data/features/css-media-interaction.js | 2 +- .../data/features/css-media-range-syntax.js | 2 +- .../data/features/css-media-resolution.js | 2 +- .../data/features/css-media-scripting.js | 2 +- .../data/features/css-mediaqueries.js | 2 +- .../data/features/css-mixblendmode.js | 2 +- .../data/features/css-module-scripts.js | 2 +- .../data/features/css-motion-paths.js | 2 +- .../data/features/css-namespaces.js | 2 +- .../caniuse-lite/data/features/css-nesting.js | 2 +- .../data/features/css-not-sel-list.js | 2 +- .../data/features/css-nth-child-of.js | 2 +- .../caniuse-lite/data/features/css-opacity.js | 2 +- .../data/features/css-optional-pseudo.js | 2 +- .../data/features/css-overflow-anchor.js | 2 +- .../data/features/css-overflow-overlay.js | 2 +- .../data/features/css-overflow.js | 2 +- .../data/features/css-overscroll-behavior.js | 2 +- .../data/features/css-page-break.js | 2 +- .../data/features/css-paged-media.js | 2 +- .../data/features/css-paint-api.js | 2 +- .../data/features/css-placeholder-shown.js | 2 +- .../data/features/css-placeholder.js | 2 +- .../data/features/css-print-color-adjust.js | 2 +- .../data/features/css-read-only-write.js | 2 +- .../data/features/css-rebeccapurple.js | 2 +- .../data/features/css-reflections.js | 2 +- .../caniuse-lite/data/features/css-regions.js | 2 +- .../data/features/css-relative-colors.js | 2 +- .../data/features/css-repeating-gradients.js | 2 +- .../caniuse-lite/data/features/css-resize.js | 2 +- .../data/features/css-revert-value.js | 2 +- .../data/features/css-rrggbbaa.js | 2 +- .../data/features/css-scroll-behavior.js | 2 +- .../data/features/css-scroll-timeline.js | 1 - .../data/features/css-scrollbar.js | 2 +- .../caniuse-lite/data/features/css-sel2.js | 2 +- .../caniuse-lite/data/features/css-sel3.js | 2 +- .../data/features/css-selection.js | 2 +- .../caniuse-lite/data/features/css-shapes.js | 2 +- .../data/features/css-snappoints.js | 2 +- .../caniuse-lite/data/features/css-sticky.js | 2 +- .../caniuse-lite/data/features/css-subgrid.js | 2 +- .../data/features/css-supports-api.js | 2 +- .../caniuse-lite/data/features/css-table.js | 2 +- .../data/features/css-text-align-last.js | 2 +- .../data/features/css-text-box-trim.js | 2 +- .../data/features/css-text-indent.js | 2 +- .../data/features/css-text-justify.js | 2 +- .../data/features/css-text-orientation.js | 2 +- .../data/features/css-text-spacing.js | 2 +- .../data/features/css-text-wrap-balance.js | 2 +- .../data/features/css-textshadow.js | 2 +- .../data/features/css-touch-action.js | 2 +- .../data/features/css-transitions.js | 2 +- .../data/features/css-unicode-bidi.js | 2 +- .../data/features/css-unset-value.js | 2 +- .../data/features/css-variables.js | 2 +- .../data/features/css-when-else.js | 2 +- .../data/features/css-widows-orphans.js | 2 +- .../data/features/css-width-stretch.js | 2 +- .../data/features/css-writing-mode.js | 2 +- .../caniuse-lite/data/features/css-zoom.js | 2 +- .../caniuse-lite/data/features/css3-attr.js | 2 +- .../data/features/css3-boxsizing.js | 2 +- .../caniuse-lite/data/features/css3-colors.js | 2 +- .../data/features/css3-cursors-grab.js | 2 +- .../data/features/css3-cursors-newer.js | 2 +- .../data/features/css3-cursors.js | 2 +- .../data/features/css3-tabsize.js | 2 +- .../data/features/currentcolor.js | 2 +- .../data/features/custom-elements.js | 2 +- .../data/features/custom-elementsv1.js | 2 +- .../caniuse-lite/data/features/customevent.js | 2 +- .../caniuse-lite/data/features/datalist.js | 2 +- .../caniuse-lite/data/features/dataset.js | 2 +- .../caniuse-lite/data/features/datauri.js | 2 +- .../data/features/date-tolocaledatestring.js | 2 +- .../data/features/declarative-shadow-dom.js | 2 +- .../caniuse-lite/data/features/decorators.js | 2 +- .../caniuse-lite/data/features/details.js | 2 +- .../data/features/deviceorientation.js | 2 +- .../data/features/devicepixelratio.js | 2 +- .../caniuse-lite/data/features/dialog.js | 2 +- .../data/features/dispatchevent.js | 2 +- .../caniuse-lite/data/features/dnssec.js | 2 +- .../data/features/do-not-track.js | 2 +- .../data/features/document-currentscript.js | 2 +- .../data/features/document-evaluate-xpath.js | 2 +- .../data/features/document-execcommand.js | 2 +- .../data/features/document-policy.js | 2 +- .../features/document-scrollingelement.js | 2 +- .../data/features/documenthead.js | 2 +- .../data/features/dom-manip-convenience.js | 2 +- .../caniuse-lite/data/features/dom-range.js | 2 +- .../data/features/domcontentloaded.js | 2 +- .../caniuse-lite/data/features/dommatrix.js | 2 +- .../caniuse-lite/data/features/download.js | 2 +- .../caniuse-lite/data/features/dragndrop.js | 2 +- .../data/features/element-closest.js | 2 +- .../data/features/element-from-point.js | 2 +- .../data/features/element-scroll-methods.js | 2 +- .../caniuse-lite/data/features/eme.js | 2 +- .../caniuse-lite/data/features/eot.js | 2 +- .../caniuse-lite/data/features/es5.js | 2 +- .../caniuse-lite/data/features/es6-class.js | 2 +- .../data/features/es6-generators.js | 2 +- .../features/es6-module-dynamic-import.js | 2 +- .../caniuse-lite/data/features/es6-module.js | 2 +- .../caniuse-lite/data/features/es6-number.js | 2 +- .../data/features/es6-string-includes.js | 2 +- .../caniuse-lite/data/features/es6.js | 2 +- .../caniuse-lite/data/features/eventsource.js | 2 +- .../data/features/extended-system-fonts.js | 2 +- .../data/features/feature-policy.js | 2 +- .../caniuse-lite/data/features/fetch.js | 2 +- .../data/features/fieldset-disabled.js | 2 +- .../caniuse-lite/data/features/fileapi.js | 2 +- .../caniuse-lite/data/features/filereader.js | 2 +- .../data/features/filereadersync.js | 2 +- .../caniuse-lite/data/features/filesystem.js | 2 +- .../caniuse-lite/data/features/flac.js | 2 +- .../caniuse-lite/data/features/flexbox-gap.js | 2 +- .../caniuse-lite/data/features/flexbox.js | 2 +- .../caniuse-lite/data/features/flow-root.js | 2 +- .../data/features/focusin-focusout-events.js | 2 +- .../data/features/font-family-system-ui.js | 2 +- .../data/features/font-feature.js | 2 +- .../data/features/font-kerning.js | 2 +- .../data/features/font-loading.js | 2 +- .../data/features/font-size-adjust.js | 2 +- .../caniuse-lite/data/features/font-smooth.js | 2 +- .../data/features/font-unicode-range.js | 2 +- .../data/features/font-variant-alternates.js | 2 +- .../data/features/font-variant-numeric.js | 2 +- .../caniuse-lite/data/features/fontface.js | 2 +- .../data/features/form-attribute.js | 2 +- .../data/features/form-submit-attributes.js | 2 +- .../data/features/form-validation.js | 2 +- .../caniuse-lite/data/features/forms.js | 2 +- .../caniuse-lite/data/features/fullscreen.js | 2 +- .../caniuse-lite/data/features/gamepad.js | 2 +- .../caniuse-lite/data/features/geolocation.js | 2 +- .../data/features/getboundingclientrect.js | 2 +- .../data/features/getcomputedstyle.js | 2 +- .../data/features/getelementsbyclassname.js | 2 +- .../data/features/getrandomvalues.js | 2 +- .../caniuse-lite/data/features/gyroscope.js | 2 +- .../data/features/hardwareconcurrency.js | 2 +- .../caniuse-lite/data/features/hashchange.js | 2 +- .../caniuse-lite/data/features/heif.js | 2 +- .../caniuse-lite/data/features/hevc.js | 2 +- .../caniuse-lite/data/features/hidden.js | 2 +- .../data/features/high-resolution-time.js | 2 +- .../caniuse-lite/data/features/history.js | 2 +- .../data/features/html-media-capture.js | 2 +- .../data/features/html5semantic.js | 2 +- .../data/features/http-live-streaming.js | 2 +- .../caniuse-lite/data/features/http2.js | 2 +- .../caniuse-lite/data/features/http3.js | 2 +- .../data/features/iframe-sandbox.js | 2 +- .../data/features/iframe-seamless.js | 2 +- .../data/features/iframe-srcdoc.js | 2 +- .../data/features/imagecapture.js | 2 +- .../caniuse-lite/data/features/ime.js | 2 +- .../img-naturalwidth-naturalheight.js | 2 +- .../caniuse-lite/data/features/import-maps.js | 2 +- .../caniuse-lite/data/features/imports.js | 2 +- .../data/features/indeterminate-checkbox.js | 2 +- .../caniuse-lite/data/features/indexeddb.js | 2 +- .../caniuse-lite/data/features/indexeddb2.js | 2 +- .../data/features/inline-block.js | 2 +- .../caniuse-lite/data/features/innertext.js | 2 +- .../data/features/input-autocomplete-onoff.js | 2 +- .../caniuse-lite/data/features/input-color.js | 2 +- .../data/features/input-datetime.js | 2 +- .../data/features/input-email-tel-url.js | 2 +- .../caniuse-lite/data/features/input-event.js | 2 +- .../data/features/input-file-accept.js | 2 +- .../data/features/input-file-directory.js | 2 +- .../data/features/input-file-multiple.js | 2 +- .../data/features/input-inputmode.js | 2 +- .../data/features/input-minlength.js | 2 +- .../data/features/input-number.js | 2 +- .../data/features/input-pattern.js | 2 +- .../data/features/input-placeholder.js | 2 +- .../caniuse-lite/data/features/input-range.js | 2 +- .../data/features/input-search.js | 2 +- .../data/features/input-selection.js | 2 +- .../data/features/insert-adjacent.js | 2 +- .../data/features/insertadjacenthtml.js | 2 +- .../data/features/internationalization.js | 2 +- .../data/features/intersectionobserver-v2.js | 2 +- .../data/features/intersectionobserver.js | 2 +- .../data/features/intl-pluralrules.js | 2 +- .../data/features/intrinsic-width.js | 2 +- .../caniuse-lite/data/features/jpeg2000.js | 2 +- .../caniuse-lite/data/features/jpegxl.js | 2 +- .../caniuse-lite/data/features/jpegxr.js | 2 +- .../data/features/js-regexp-lookbehind.js | 2 +- .../caniuse-lite/data/features/json.js | 2 +- .../features/justify-content-space-evenly.js | 2 +- .../data/features/kerning-pairs-ligatures.js | 2 +- .../data/features/keyboardevent-charcode.js | 2 +- .../data/features/keyboardevent-code.js | 2 +- .../keyboardevent-getmodifierstate.js | 2 +- .../data/features/keyboardevent-key.js | 2 +- .../data/features/keyboardevent-location.js | 2 +- .../data/features/keyboardevent-which.js | 2 +- .../caniuse-lite/data/features/lazyload.js | 2 +- .../caniuse-lite/data/features/let.js | 2 +- .../data/features/link-icon-png.js | 2 +- .../data/features/link-icon-svg.js | 2 +- .../data/features/link-rel-dns-prefetch.js | 2 +- .../data/features/link-rel-modulepreload.js | 2 +- .../data/features/link-rel-preconnect.js | 2 +- .../data/features/link-rel-prefetch.js | 2 +- .../data/features/link-rel-preload.js | 2 +- .../data/features/link-rel-prerender.js | 2 +- .../data/features/loading-lazy-attr.js | 2 +- .../data/features/localecompare.js | 2 +- .../data/features/magnetometer.js | 2 +- .../data/features/matchesselector.js | 2 +- .../caniuse-lite/data/features/matchmedia.js | 2 +- .../caniuse-lite/data/features/mathml.js | 2 +- .../caniuse-lite/data/features/maxlength.js | 2 +- .../mdn-css-backdrop-pseudo-element.js | 2 +- .../mdn-css-unicode-bidi-isolate-override.js | 2 +- .../features/mdn-css-unicode-bidi-isolate.js | 2 +- .../mdn-css-unicode-bidi-plaintext.js | 2 +- .../features/mdn-text-decoration-color.js | 2 +- .../data/features/mdn-text-decoration-line.js | 2 +- .../features/mdn-text-decoration-shorthand.js | 2 +- .../features/mdn-text-decoration-style.js | 2 +- .../data/features/media-fragments.js | 2 +- .../data/features/mediacapture-fromelement.js | 2 +- .../data/features/mediarecorder.js | 2 +- .../caniuse-lite/data/features/mediasource.js | 2 +- .../caniuse-lite/data/features/menu.js | 2 +- .../data/features/meta-theme-color.js | 2 +- .../caniuse-lite/data/features/meter.js | 2 +- .../caniuse-lite/data/features/midi.js | 2 +- .../caniuse-lite/data/features/minmaxwh.js | 2 +- .../caniuse-lite/data/features/mp3.js | 2 +- .../caniuse-lite/data/features/mpeg-dash.js | 2 +- .../caniuse-lite/data/features/mpeg4.js | 2 +- .../data/features/multibackgrounds.js | 2 +- .../caniuse-lite/data/features/multicolumn.js | 2 +- .../data/features/mutation-events.js | 2 +- .../data/features/mutationobserver.js | 2 +- .../data/features/namevalue-storage.js | 2 +- .../data/features/native-filesystem-api.js | 2 +- .../caniuse-lite/data/features/nav-timing.js | 2 +- .../caniuse-lite/data/features/netinfo.js | 2 +- .../data/features/notifications.js | 2 +- .../data/features/object-entries.js | 2 +- .../caniuse-lite/data/features/object-fit.js | 2 +- .../data/features/object-observe.js | 2 +- .../data/features/object-values.js | 2 +- .../caniuse-lite/data/features/objectrtc.js | 2 +- .../data/features/offline-apps.js | 2 +- .../data/features/offscreencanvas.js | 2 +- .../caniuse-lite/data/features/ogg-vorbis.js | 2 +- .../caniuse-lite/data/features/ogv.js | 2 +- .../caniuse-lite/data/features/ol-reversed.js | 2 +- .../data/features/once-event-listener.js | 2 +- .../data/features/online-status.js | 2 +- .../caniuse-lite/data/features/opus.js | 2 +- .../data/features/orientation-sensor.js | 2 +- .../caniuse-lite/data/features/outline.js | 2 +- .../data/features/pad-start-end.js | 2 +- .../data/features/page-transition-events.js | 2 +- .../data/features/pagevisibility.js | 2 +- .../data/features/passive-event-listener.js | 2 +- .../caniuse-lite/data/features/passkeys.js | 2 +- .../data/features/passwordrules.js | 2 +- .../caniuse-lite/data/features/path2d.js | 2 +- .../data/features/payment-request.js | 2 +- .../caniuse-lite/data/features/pdf-viewer.js | 2 +- .../data/features/permissions-api.js | 2 +- .../data/features/permissions-policy.js | 2 +- .../data/features/picture-in-picture.js | 2 +- .../caniuse-lite/data/features/picture.js | 2 +- .../caniuse-lite/data/features/ping.js | 2 +- .../caniuse-lite/data/features/png-alpha.js | 2 +- .../data/features/pointer-events.js | 2 +- .../caniuse-lite/data/features/pointer.js | 2 +- .../caniuse-lite/data/features/pointerlock.js | 2 +- .../caniuse-lite/data/features/portals.js | 2 +- .../data/features/prefers-color-scheme.js | 2 +- .../data/features/prefers-reduced-motion.js | 2 +- .../caniuse-lite/data/features/progress.js | 2 +- .../data/features/promise-finally.js | 2 +- .../caniuse-lite/data/features/promises.js | 2 +- .../caniuse-lite/data/features/proximity.js | 2 +- .../caniuse-lite/data/features/proxy.js | 2 +- .../data/features/publickeypinning.js | 2 +- .../caniuse-lite/data/features/push-api.js | 2 +- .../data/features/queryselector.js | 2 +- .../data/features/readonly-attr.js | 2 +- .../data/features/referrer-policy.js | 2 +- .../data/features/registerprotocolhandler.js | 2 +- .../data/features/rel-noopener.js | 2 +- .../data/features/rel-noreferrer.js | 2 +- .../caniuse-lite/data/features/rellist.js | 2 +- .../caniuse-lite/data/features/rem.js | 2 +- .../data/features/requestanimationframe.js | 2 +- .../data/features/requestidlecallback.js | 2 +- .../data/features/resizeobserver.js | 2 +- .../data/features/resource-timing.js | 2 +- .../data/features/rest-parameters.js | 2 +- .../data/features/rtcpeerconnection.js | 2 +- .../caniuse-lite/data/features/ruby.js | 2 +- .../caniuse-lite/data/features/run-in.js | 2 +- .../features/same-site-cookie-attribute.js | 2 +- .../data/features/screen-orientation.js | 2 +- .../data/features/script-async.js | 2 +- .../data/features/script-defer.js | 2 +- .../data/features/scrollintoview.js | 2 +- .../data/features/scrollintoviewifneeded.js | 2 +- .../caniuse-lite/data/features/sdch.js | 2 +- .../data/features/selection-api.js | 2 +- .../caniuse-lite/data/features/selectlist.js | 2 +- .../data/features/server-timing.js | 2 +- .../data/features/serviceworkers.js | 2 +- .../data/features/setimmediate.js | 2 +- .../caniuse-lite/data/features/shadowdom.js | 2 +- .../caniuse-lite/data/features/shadowdomv1.js | 2 +- .../data/features/sharedarraybuffer.js | 2 +- .../data/features/sharedworkers.js | 2 +- .../caniuse-lite/data/features/sni.js | 2 +- .../caniuse-lite/data/features/spdy.js | 2 +- .../data/features/speech-recognition.js | 2 +- .../data/features/speech-synthesis.js | 2 +- .../data/features/spellcheck-attribute.js | 2 +- .../caniuse-lite/data/features/sql-storage.js | 2 +- .../caniuse-lite/data/features/srcset.js | 2 +- .../caniuse-lite/data/features/stream.js | 2 +- .../caniuse-lite/data/features/streams.js | 2 +- .../data/features/stricttransportsecurity.js | 2 +- .../data/features/style-scoped.js | 2 +- .../data/features/subresource-bundling.js | 2 +- .../data/features/subresource-integrity.js | 2 +- .../caniuse-lite/data/features/svg-css.js | 2 +- .../caniuse-lite/data/features/svg-filters.js | 2 +- .../caniuse-lite/data/features/svg-fonts.js | 2 +- .../data/features/svg-fragment.js | 2 +- .../caniuse-lite/data/features/svg-html.js | 2 +- .../caniuse-lite/data/features/svg-html5.js | 2 +- .../caniuse-lite/data/features/svg-img.js | 2 +- .../caniuse-lite/data/features/svg-smil.js | 2 +- .../caniuse-lite/data/features/svg.js | 2 +- .../caniuse-lite/data/features/sxg.js | 2 +- .../data/features/tabindex-attr.js | 2 +- .../data/features/template-literals.js | 2 +- .../caniuse-lite/data/features/template.js | 2 +- .../caniuse-lite/data/features/temporal.js | 2 +- .../caniuse-lite/data/features/testfeat.js | 2 +- .../data/features/text-decoration.js | 2 +- .../data/features/text-emphasis.js | 2 +- .../data/features/text-overflow.js | 2 +- .../data/features/text-size-adjust.js | 2 +- .../caniuse-lite/data/features/text-stroke.js | 2 +- .../caniuse-lite/data/features/textcontent.js | 2 +- .../caniuse-lite/data/features/textencoder.js | 2 +- .../caniuse-lite/data/features/tls1-1.js | 2 +- .../caniuse-lite/data/features/tls1-2.js | 2 +- .../caniuse-lite/data/features/tls1-3.js | 2 +- .../caniuse-lite/data/features/touch.js | 2 +- .../data/features/transforms2d.js | 2 +- .../data/features/transforms3d.js | 2 +- .../data/features/trusted-types.js | 2 +- .../caniuse-lite/data/features/ttf.js | 2 +- .../caniuse-lite/data/features/typedarrays.js | 2 +- .../caniuse-lite/data/features/u2f.js | 2 +- .../data/features/unhandledrejection.js | 2 +- .../data/features/upgradeinsecurerequests.js | 2 +- .../features/url-scroll-to-text-fragment.js | 2 +- .../caniuse-lite/data/features/url.js | 2 +- .../data/features/urlsearchparams.js | 2 +- .../caniuse-lite/data/features/use-strict.js | 2 +- .../data/features/user-select-none.js | 2 +- .../caniuse-lite/data/features/user-timing.js | 2 +- .../data/features/variable-fonts.js | 2 +- .../data/features/vector-effect.js | 2 +- .../caniuse-lite/data/features/vibration.js | 2 +- .../caniuse-lite/data/features/video.js | 2 +- .../caniuse-lite/data/features/videotracks.js | 2 +- .../data/features/view-transitions.js | 2 +- .../data/features/viewport-unit-variants.js | 2 +- .../data/features/viewport-units.js | 2 +- .../caniuse-lite/data/features/wai-aria.js | 2 +- .../caniuse-lite/data/features/wake-lock.js | 2 +- .../caniuse-lite/data/features/wasm-bigint.js | 2 +- .../data/features/wasm-bulk-memory.js | 2 +- .../data/features/wasm-extended-const.js | 2 +- .../caniuse-lite/data/features/wasm-gc.js | 2 +- .../data/features/wasm-multi-memory.js | 2 +- .../data/features/wasm-multi-value.js | 2 +- .../data/features/wasm-mutable-globals.js | 2 +- .../data/features/wasm-nontrapping-fptoint.js | 2 +- .../data/features/wasm-reference-types.js | 2 +- .../data/features/wasm-relaxed-simd.js | 2 +- .../data/features/wasm-signext.js | 2 +- .../caniuse-lite/data/features/wasm-simd.js | 2 +- .../data/features/wasm-tail-calls.js | 2 +- .../data/features/wasm-threads.js | 2 +- .../caniuse-lite/data/features/wasm.js | 2 +- .../caniuse-lite/data/features/wav.js | 2 +- .../caniuse-lite/data/features/wbr-element.js | 2 +- .../data/features/web-animation.js | 2 +- .../data/features/web-app-manifest.js | 2 +- .../data/features/web-bluetooth.js | 2 +- .../caniuse-lite/data/features/web-serial.js | 2 +- .../caniuse-lite/data/features/web-share.js | 2 +- .../caniuse-lite/data/features/webauthn.js | 2 +- .../caniuse-lite/data/features/webcodecs.js | 2 +- .../caniuse-lite/data/features/webgl.js | 2 +- .../caniuse-lite/data/features/webgl2.js | 2 +- .../caniuse-lite/data/features/webgpu.js | 2 +- .../caniuse-lite/data/features/webhid.js | 2 +- .../data/features/webkit-user-drag.js | 2 +- .../caniuse-lite/data/features/webm.js | 2 +- .../caniuse-lite/data/features/webnfc.js | 2 +- .../caniuse-lite/data/features/webp.js | 2 +- .../caniuse-lite/data/features/websockets.js | 2 +- .../data/features/webtransport.js | 2 +- .../caniuse-lite/data/features/webusb.js | 2 +- .../caniuse-lite/data/features/webvr.js | 2 +- .../caniuse-lite/data/features/webvtt.js | 2 +- .../caniuse-lite/data/features/webworkers.js | 2 +- .../caniuse-lite/data/features/webxr.js | 2 +- .../caniuse-lite/data/features/will-change.js | 2 +- .../caniuse-lite/data/features/woff.js | 2 +- .../caniuse-lite/data/features/woff2.js | 2 +- .../caniuse-lite/data/features/word-break.js | 2 +- .../caniuse-lite/data/features/wordwrap.js | 2 +- .../data/features/x-doc-messaging.js | 2 +- .../data/features/x-frame-options.js | 2 +- .../caniuse-lite/data/features/xhr2.js | 2 +- .../caniuse-lite/data/features/xhtml.js | 2 +- .../caniuse-lite/data/features/xhtmlsmil.js | 2 +- .../data/features/xml-serializer.js | 2 +- .../caniuse-lite/data/features/zstd.js | 2 +- node_modules/caniuse-lite/data/regions/AD.js | 2 +- node_modules/caniuse-lite/data/regions/AE.js | 2 +- node_modules/caniuse-lite/data/regions/AF.js | 2 +- node_modules/caniuse-lite/data/regions/AG.js | 2 +- node_modules/caniuse-lite/data/regions/AI.js | 2 +- node_modules/caniuse-lite/data/regions/AL.js | 2 +- node_modules/caniuse-lite/data/regions/AM.js | 2 +- node_modules/caniuse-lite/data/regions/AO.js | 2 +- node_modules/caniuse-lite/data/regions/AR.js | 2 +- node_modules/caniuse-lite/data/regions/AS.js | 2 +- node_modules/caniuse-lite/data/regions/AT.js | 2 +- node_modules/caniuse-lite/data/regions/AU.js | 2 +- node_modules/caniuse-lite/data/regions/AW.js | 2 +- node_modules/caniuse-lite/data/regions/AX.js | 2 +- node_modules/caniuse-lite/data/regions/AZ.js | 2 +- node_modules/caniuse-lite/data/regions/BA.js | 2 +- node_modules/caniuse-lite/data/regions/BB.js | 2 +- node_modules/caniuse-lite/data/regions/BD.js | 2 +- node_modules/caniuse-lite/data/regions/BE.js | 2 +- node_modules/caniuse-lite/data/regions/BF.js | 2 +- node_modules/caniuse-lite/data/regions/BG.js | 2 +- node_modules/caniuse-lite/data/regions/BH.js | 2 +- node_modules/caniuse-lite/data/regions/BI.js | 2 +- node_modules/caniuse-lite/data/regions/BJ.js | 2 +- node_modules/caniuse-lite/data/regions/BM.js | 2 +- node_modules/caniuse-lite/data/regions/BN.js | 2 +- node_modules/caniuse-lite/data/regions/BO.js | 2 +- node_modules/caniuse-lite/data/regions/BR.js | 2 +- node_modules/caniuse-lite/data/regions/BS.js | 2 +- node_modules/caniuse-lite/data/regions/BT.js | 2 +- node_modules/caniuse-lite/data/regions/BW.js | 2 +- node_modules/caniuse-lite/data/regions/BY.js | 2 +- node_modules/caniuse-lite/data/regions/BZ.js | 2 +- node_modules/caniuse-lite/data/regions/CA.js | 2 +- node_modules/caniuse-lite/data/regions/CD.js | 2 +- node_modules/caniuse-lite/data/regions/CF.js | 2 +- node_modules/caniuse-lite/data/regions/CG.js | 2 +- node_modules/caniuse-lite/data/regions/CH.js | 2 +- node_modules/caniuse-lite/data/regions/CI.js | 2 +- node_modules/caniuse-lite/data/regions/CK.js | 2 +- node_modules/caniuse-lite/data/regions/CL.js | 2 +- node_modules/caniuse-lite/data/regions/CM.js | 2 +- node_modules/caniuse-lite/data/regions/CN.js | 2 +- node_modules/caniuse-lite/data/regions/CO.js | 2 +- node_modules/caniuse-lite/data/regions/CR.js | 2 +- node_modules/caniuse-lite/data/regions/CU.js | 2 +- node_modules/caniuse-lite/data/regions/CV.js | 2 +- node_modules/caniuse-lite/data/regions/CX.js | 2 +- node_modules/caniuse-lite/data/regions/CY.js | 2 +- node_modules/caniuse-lite/data/regions/CZ.js | 2 +- node_modules/caniuse-lite/data/regions/DE.js | 2 +- node_modules/caniuse-lite/data/regions/DJ.js | 2 +- node_modules/caniuse-lite/data/regions/DK.js | 2 +- node_modules/caniuse-lite/data/regions/DM.js | 2 +- node_modules/caniuse-lite/data/regions/DO.js | 2 +- node_modules/caniuse-lite/data/regions/DZ.js | 2 +- node_modules/caniuse-lite/data/regions/EC.js | 2 +- node_modules/caniuse-lite/data/regions/EE.js | 2 +- node_modules/caniuse-lite/data/regions/EG.js | 2 +- node_modules/caniuse-lite/data/regions/ER.js | 2 +- node_modules/caniuse-lite/data/regions/ES.js | 2 +- node_modules/caniuse-lite/data/regions/ET.js | 2 +- node_modules/caniuse-lite/data/regions/FI.js | 2 +- node_modules/caniuse-lite/data/regions/FJ.js | 2 +- node_modules/caniuse-lite/data/regions/FK.js | 2 +- node_modules/caniuse-lite/data/regions/FM.js | 2 +- node_modules/caniuse-lite/data/regions/FO.js | 2 +- node_modules/caniuse-lite/data/regions/FR.js | 2 +- node_modules/caniuse-lite/data/regions/GA.js | 2 +- node_modules/caniuse-lite/data/regions/GB.js | 2 +- node_modules/caniuse-lite/data/regions/GD.js | 2 +- node_modules/caniuse-lite/data/regions/GE.js | 2 +- node_modules/caniuse-lite/data/regions/GF.js | 2 +- node_modules/caniuse-lite/data/regions/GG.js | 2 +- node_modules/caniuse-lite/data/regions/GH.js | 2 +- node_modules/caniuse-lite/data/regions/GI.js | 2 +- node_modules/caniuse-lite/data/regions/GL.js | 2 +- node_modules/caniuse-lite/data/regions/GM.js | 2 +- node_modules/caniuse-lite/data/regions/GN.js | 2 +- node_modules/caniuse-lite/data/regions/GP.js | 2 +- node_modules/caniuse-lite/data/regions/GQ.js | 2 +- node_modules/caniuse-lite/data/regions/GR.js | 2 +- node_modules/caniuse-lite/data/regions/GT.js | 2 +- node_modules/caniuse-lite/data/regions/GU.js | 2 +- node_modules/caniuse-lite/data/regions/GW.js | 2 +- node_modules/caniuse-lite/data/regions/GY.js | 2 +- node_modules/caniuse-lite/data/regions/HK.js | 2 +- node_modules/caniuse-lite/data/regions/HN.js | 2 +- node_modules/caniuse-lite/data/regions/HR.js | 2 +- node_modules/caniuse-lite/data/regions/HT.js | 2 +- node_modules/caniuse-lite/data/regions/HU.js | 2 +- node_modules/caniuse-lite/data/regions/ID.js | 2 +- node_modules/caniuse-lite/data/regions/IE.js | 2 +- node_modules/caniuse-lite/data/regions/IL.js | 2 +- node_modules/caniuse-lite/data/regions/IM.js | 2 +- node_modules/caniuse-lite/data/regions/IN.js | 2 +- node_modules/caniuse-lite/data/regions/IQ.js | 2 +- node_modules/caniuse-lite/data/regions/IR.js | 2 +- node_modules/caniuse-lite/data/regions/IS.js | 2 +- node_modules/caniuse-lite/data/regions/IT.js | 2 +- node_modules/caniuse-lite/data/regions/JE.js | 2 +- node_modules/caniuse-lite/data/regions/JM.js | 2 +- node_modules/caniuse-lite/data/regions/JO.js | 2 +- node_modules/caniuse-lite/data/regions/JP.js | 2 +- node_modules/caniuse-lite/data/regions/KE.js | 2 +- node_modules/caniuse-lite/data/regions/KG.js | 2 +- node_modules/caniuse-lite/data/regions/KH.js | 2 +- node_modules/caniuse-lite/data/regions/KI.js | 2 +- node_modules/caniuse-lite/data/regions/KM.js | 2 +- node_modules/caniuse-lite/data/regions/KN.js | 2 +- node_modules/caniuse-lite/data/regions/KP.js | 2 +- node_modules/caniuse-lite/data/regions/KR.js | 2 +- node_modules/caniuse-lite/data/regions/KW.js | 2 +- node_modules/caniuse-lite/data/regions/KY.js | 2 +- node_modules/caniuse-lite/data/regions/KZ.js | 2 +- node_modules/caniuse-lite/data/regions/LA.js | 2 +- node_modules/caniuse-lite/data/regions/LB.js | 2 +- node_modules/caniuse-lite/data/regions/LC.js | 2 +- node_modules/caniuse-lite/data/regions/LI.js | 2 +- node_modules/caniuse-lite/data/regions/LK.js | 2 +- node_modules/caniuse-lite/data/regions/LR.js | 2 +- node_modules/caniuse-lite/data/regions/LS.js | 2 +- node_modules/caniuse-lite/data/regions/LT.js | 2 +- node_modules/caniuse-lite/data/regions/LU.js | 2 +- node_modules/caniuse-lite/data/regions/LV.js | 2 +- node_modules/caniuse-lite/data/regions/LY.js | 2 +- node_modules/caniuse-lite/data/regions/MA.js | 2 +- node_modules/caniuse-lite/data/regions/MC.js | 2 +- node_modules/caniuse-lite/data/regions/MD.js | 2 +- node_modules/caniuse-lite/data/regions/ME.js | 2 +- node_modules/caniuse-lite/data/regions/MG.js | 2 +- node_modules/caniuse-lite/data/regions/MH.js | 2 +- node_modules/caniuse-lite/data/regions/MK.js | 2 +- node_modules/caniuse-lite/data/regions/ML.js | 2 +- node_modules/caniuse-lite/data/regions/MM.js | 2 +- node_modules/caniuse-lite/data/regions/MN.js | 2 +- node_modules/caniuse-lite/data/regions/MO.js | 2 +- node_modules/caniuse-lite/data/regions/MP.js | 2 +- node_modules/caniuse-lite/data/regions/MQ.js | 2 +- node_modules/caniuse-lite/data/regions/MR.js | 2 +- node_modules/caniuse-lite/data/regions/MS.js | 2 +- node_modules/caniuse-lite/data/regions/MT.js | 2 +- node_modules/caniuse-lite/data/regions/MU.js | 2 +- node_modules/caniuse-lite/data/regions/MV.js | 2 +- node_modules/caniuse-lite/data/regions/MW.js | 2 +- node_modules/caniuse-lite/data/regions/MX.js | 2 +- node_modules/caniuse-lite/data/regions/MY.js | 2 +- node_modules/caniuse-lite/data/regions/MZ.js | 2 +- node_modules/caniuse-lite/data/regions/NA.js | 2 +- node_modules/caniuse-lite/data/regions/NC.js | 2 +- node_modules/caniuse-lite/data/regions/NE.js | 2 +- node_modules/caniuse-lite/data/regions/NF.js | 2 +- node_modules/caniuse-lite/data/regions/NG.js | 2 +- node_modules/caniuse-lite/data/regions/NI.js | 2 +- node_modules/caniuse-lite/data/regions/NL.js | 2 +- node_modules/caniuse-lite/data/regions/NO.js | 2 +- node_modules/caniuse-lite/data/regions/NP.js | 2 +- node_modules/caniuse-lite/data/regions/NR.js | 2 +- node_modules/caniuse-lite/data/regions/NU.js | 2 +- node_modules/caniuse-lite/data/regions/NZ.js | 2 +- node_modules/caniuse-lite/data/regions/OM.js | 2 +- node_modules/caniuse-lite/data/regions/PA.js | 2 +- node_modules/caniuse-lite/data/regions/PE.js | 2 +- node_modules/caniuse-lite/data/regions/PF.js | 2 +- node_modules/caniuse-lite/data/regions/PG.js | 2 +- node_modules/caniuse-lite/data/regions/PH.js | 2 +- node_modules/caniuse-lite/data/regions/PK.js | 2 +- node_modules/caniuse-lite/data/regions/PL.js | 2 +- node_modules/caniuse-lite/data/regions/PM.js | 2 +- node_modules/caniuse-lite/data/regions/PN.js | 2 +- node_modules/caniuse-lite/data/regions/PR.js | 2 +- node_modules/caniuse-lite/data/regions/PS.js | 2 +- node_modules/caniuse-lite/data/regions/PT.js | 2 +- node_modules/caniuse-lite/data/regions/PW.js | 2 +- node_modules/caniuse-lite/data/regions/PY.js | 2 +- node_modules/caniuse-lite/data/regions/QA.js | 2 +- node_modules/caniuse-lite/data/regions/RE.js | 2 +- node_modules/caniuse-lite/data/regions/RO.js | 2 +- node_modules/caniuse-lite/data/regions/RS.js | 2 +- node_modules/caniuse-lite/data/regions/RU.js | 2 +- node_modules/caniuse-lite/data/regions/RW.js | 2 +- node_modules/caniuse-lite/data/regions/SA.js | 2 +- node_modules/caniuse-lite/data/regions/SB.js | 2 +- node_modules/caniuse-lite/data/regions/SC.js | 2 +- node_modules/caniuse-lite/data/regions/SD.js | 2 +- node_modules/caniuse-lite/data/regions/SE.js | 2 +- node_modules/caniuse-lite/data/regions/SG.js | 2 +- node_modules/caniuse-lite/data/regions/SH.js | 2 +- node_modules/caniuse-lite/data/regions/SI.js | 2 +- node_modules/caniuse-lite/data/regions/SK.js | 2 +- node_modules/caniuse-lite/data/regions/SL.js | 2 +- node_modules/caniuse-lite/data/regions/SM.js | 2 +- node_modules/caniuse-lite/data/regions/SN.js | 2 +- node_modules/caniuse-lite/data/regions/SO.js | 2 +- node_modules/caniuse-lite/data/regions/SR.js | 2 +- node_modules/caniuse-lite/data/regions/ST.js | 2 +- node_modules/caniuse-lite/data/regions/SV.js | 2 +- node_modules/caniuse-lite/data/regions/SY.js | 2 +- node_modules/caniuse-lite/data/regions/SZ.js | 2 +- node_modules/caniuse-lite/data/regions/TC.js | 2 +- node_modules/caniuse-lite/data/regions/TD.js | 2 +- node_modules/caniuse-lite/data/regions/TG.js | 2 +- node_modules/caniuse-lite/data/regions/TH.js | 2 +- node_modules/caniuse-lite/data/regions/TJ.js | 2 +- node_modules/caniuse-lite/data/regions/TK.js | 1 - node_modules/caniuse-lite/data/regions/TL.js | 2 +- node_modules/caniuse-lite/data/regions/TM.js | 2 +- node_modules/caniuse-lite/data/regions/TN.js | 2 +- node_modules/caniuse-lite/data/regions/TO.js | 2 +- node_modules/caniuse-lite/data/regions/TR.js | 2 +- node_modules/caniuse-lite/data/regions/TT.js | 2 +- node_modules/caniuse-lite/data/regions/TV.js | 2 +- node_modules/caniuse-lite/data/regions/TW.js | 2 +- node_modules/caniuse-lite/data/regions/TZ.js | 2 +- node_modules/caniuse-lite/data/regions/UA.js | 2 +- node_modules/caniuse-lite/data/regions/UG.js | 2 +- node_modules/caniuse-lite/data/regions/US.js | 2 +- node_modules/caniuse-lite/data/regions/UY.js | 2 +- node_modules/caniuse-lite/data/regions/UZ.js | 2 +- node_modules/caniuse-lite/data/regions/VA.js | 2 +- node_modules/caniuse-lite/data/regions/VC.js | 2 +- node_modules/caniuse-lite/data/regions/VE.js | 2 +- node_modules/caniuse-lite/data/regions/VG.js | 2 +- node_modules/caniuse-lite/data/regions/VI.js | 2 +- node_modules/caniuse-lite/data/regions/VN.js | 2 +- node_modules/caniuse-lite/data/regions/VU.js | 2 +- node_modules/caniuse-lite/data/regions/WF.js | 2 +- node_modules/caniuse-lite/data/regions/WS.js | 2 +- node_modules/caniuse-lite/data/regions/YE.js | 2 +- node_modules/caniuse-lite/data/regions/YT.js | 2 +- node_modules/caniuse-lite/data/regions/ZA.js | 2 +- node_modules/caniuse-lite/data/regions/ZM.js | 2 +- node_modules/caniuse-lite/data/regions/ZW.js | 2 +- .../caniuse-lite/data/regions/alt-af.js | 2 +- .../caniuse-lite/data/regions/alt-an.js | 2 +- .../caniuse-lite/data/regions/alt-as.js | 2 +- .../caniuse-lite/data/regions/alt-eu.js | 2 +- .../caniuse-lite/data/regions/alt-na.js | 2 +- .../caniuse-lite/data/regions/alt-oc.js | 2 +- .../caniuse-lite/data/regions/alt-sa.js | 2 +- .../caniuse-lite/data/regions/alt-ww.js | 2 +- node_modules/caniuse-lite/package.json | 2 +- node_modules/cjs-module-lexer/README.md | 3 +- node_modules/cjs-module-lexer/dist/lexer.js | 5 +- node_modules/cjs-module-lexer/dist/lexer.mjs | 6 +- node_modules/cjs-module-lexer/lexer.d.ts | 1 + node_modules/cjs-module-lexer/lexer.js | 1 + node_modules/cjs-module-lexer/package.json | 18 +- node_modules/core-js-compat/README.md | 12 +- node_modules/core-js-compat/data.json | 375 +- node_modules/core-js-compat/entries.json | 681 +- node_modules/core-js-compat/helpers.js | 30 +- .../core-js-compat/modules-by-versions.json | 21 + node_modules/core-js-compat/modules.json | 19 + node_modules/core-js-compat/package.json | 6 +- node_modules/cross-spawn/CHANGELOG.md | 130 - node_modules/cross-spawn/README.md | 13 +- node_modules/cross-spawn/lib/enoent.js | 2 +- node_modules/cross-spawn/lib/util/escape.js | 6 +- node_modules/cross-spawn/package.json | 4 +- node_modules/debug/README.md | 2 +- node_modules/debug/package.json | 4 +- .../electron-to-chromium/chromium-versions.js | 6 +- .../chromium-versions.json | 2 +- .../full-chromium-versions.js | 113 +- .../full-chromium-versions.json | 2 +- .../electron-to-chromium/full-versions.js | 65 +- .../electron-to-chromium/full-versions.json | 2 +- .../electron-to-chromium/package.json | 2 +- node_modules/electron-to-chromium/versions.js | 14 +- .../electron-to-chromium/versions.json | 2 +- node_modules/envinfo/dist/cli.js | 2 +- node_modules/envinfo/dist/envinfo.js | 2 +- node_modules/envinfo/package.json | 2 +- node_modules/escalade/index.d.ts | 16 +- node_modules/escalade/package.json | 25 +- node_modules/escalade/sync/index.d.ts | 15 +- node_modules/escape-string-regexp/index.js | 12 +- node_modules/escape-string-regexp/license | 22 +- .../escape-string-regexp/package.json | 75 +- node_modules/escape-string-regexp/readme.md | 21 +- node_modules/eslint-scope/CHANGELOG.md | 70 - node_modules/eslint-scope/README.md | 78 +- node_modules/eslint-scope/lib/definition.js | 15 +- node_modules/eslint-scope/lib/index.js | 66 +- .../eslint-scope/lib/pattern-visitor.js | 18 +- node_modules/eslint-scope/lib/reference.js | 17 +- node_modules/eslint-scope/lib/referencer.js | 85 +- .../eslint-scope/lib/scope-manager.js | 76 +- node_modules/eslint-scope/lib/scope.js | 183 +- node_modules/eslint-scope/lib/variable.js | 7 +- node_modules/eslint-scope/package.json | 67 +- .../node_modules/estraverse/.jshintrc | 16 - .../node_modules/estraverse/LICENSE.BSD | 19 - .../node_modules/estraverse/README.md | 153 - .../node_modules/estraverse/estraverse.js | 805 -- .../node_modules/estraverse/gulpfile.js | 70 - .../node_modules/estraverse/package.json | 40 - node_modules/estraverse/estraverse.js | 25 +- node_modules/estraverse/package.json | 2 +- node_modules/find-up/index.d.ts | 332 +- node_modules/find-up/index.js | 74 +- node_modules/find-up/license | 2 +- node_modules/find-up/package.json | 28 +- node_modules/find-up/readme.md | 120 +- node_modules/is-core-module/CHANGELOG.md | 10 + node_modules/is-core-module/core.json | 4 +- node_modules/is-core-module/package.json | 8 +- node_modules/is-core-module/test/index.js | 18 +- node_modules/js-yaml/CHANGELOG.md | 61 +- node_modules/js-yaml/README.md | 107 +- node_modules/js-yaml/bin/js-yaml.js | 40 +- node_modules/js-yaml/dist/js-yaml.js | 7049 ++++++++-------- node_modules/js-yaml/dist/js-yaml.min.js | 3 +- node_modules/js-yaml/index.js | 44 +- 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 | 41 +- node_modules/jsesc/README.md | 7 +- node_modules/jsesc/jsesc.js | 143 +- node_modules/jsesc/package.json | 10 +- .../json-schema-traverse/.eslintrc.yml | 2 +- node_modules/json-schema-traverse/.travis.yml | 8 - node_modules/json-schema-traverse/README.md | 18 +- node_modules/json-schema-traverse/index.js | 6 +- .../json-schema-traverse/package.json | 10 +- node_modules/locate-path/index.d.ts | 143 +- node_modules/locate-path/index.js | 92 +- node_modules/locate-path/license | 2 +- node_modules/locate-path/package.json | 17 +- node_modules/locate-path/readme.md | 59 +- node_modules/micromatch/README.md | 205 +- node_modules/micromatch/index.js | 11 +- node_modules/micromatch/package.json | 30 +- node_modules/ms/index.js | 2 +- node_modules/ms/license.md | 2 +- node_modules/ms/package.json | 9 +- node_modules/ms/readme.md | 3 +- node_modules/p-locate/index.d.ts | 91 +- node_modules/p-locate/index.js | 36 +- node_modules/p-locate/license | 2 +- node_modules/p-locate/package.json | 23 +- node_modules/p-locate/readme.md | 43 +- node_modules/path-exists/index.d.ts | 47 +- node_modules/path-exists/index.js | 20 +- node_modules/path-exists/license | 2 +- node_modules/path-exists/package.json | 14 +- node_modules/path-exists/readme.md | 32 +- node_modules/picocolors/LICENSE | 2 +- node_modules/picocolors/package.json | 4 +- node_modules/picocolors/picocolors.browser.js | 2 +- node_modules/picocolors/picocolors.js | 96 +- node_modules/picocolors/types.ts | 30 - .../README.md | 41 + .../package.json | 4 +- .../src/index.js | 225 +- .../postcss-modules-scope/package.json | 4 +- .../postcss-selector-parser/CHANGELOG.md | 4 + .../dist/selectors/container.js | 7 +- .../postcss-selector-parser/package.json | 2 +- node_modules/postcss/lib/container.d.ts | 95 +- node_modules/postcss/lib/container.js | 8 +- node_modules/postcss/lib/css-syntax-error.js | 61 +- node_modules/postcss/lib/document.d.ts | 2 +- node_modules/postcss/lib/fromJSON.js | 6 +- node_modules/postcss/lib/input.d.ts | 6 +- node_modules/postcss/lib/input.js | 8 +- node_modules/postcss/lib/lazy-result.js | 10 +- node_modules/postcss/lib/list.d.ts | 6 +- node_modules/postcss/lib/map-generator.js | 6 +- node_modules/postcss/lib/no-work-result.js | 4 +- node_modules/postcss/lib/node.d.ts | 27 +- node_modules/postcss/lib/node.js | 80 +- node_modules/postcss/lib/parse.js | 2 +- node_modules/postcss/lib/parser.js | 12 +- node_modules/postcss/lib/postcss.d.ts | 7 +- node_modules/postcss/lib/postcss.js | 24 +- node_modules/postcss/lib/previous-map.js | 2 +- node_modules/postcss/lib/processor.d.ts | 2 +- node_modules/postcss/lib/processor.js | 6 +- node_modules/postcss/lib/root.d.ts | 2 +- node_modules/postcss/lib/rule.d.ts | 8 +- node_modules/postcss/lib/tokenize.js | 4 +- node_modules/postcss/package.json | 6 +- .../Binary_Property/Alphabetic.js | 20 +- .../Binary_Property/Assigned.js | 24 +- .../Binary_Property/Bidi_Mirrored.js | 2 +- .../Binary_Property/Case_Ignorable.js | 10 +- .../Binary_Property/Cased.js | 6 +- .../Changes_When_Casefolded.js | 6 +- .../Changes_When_Casemapped.js | 8 +- .../Changes_When_Lowercased.js | 4 +- .../Changes_When_NFKC_Casefolded.js | 10 +- .../Changes_When_Titlecased.js | 6 +- .../Changes_When_Uppercased.js | 6 +- .../Binary_Property/Dash.js | 2 +- .../Binary_Property/Diacritic.js | 8 +- .../Binary_Property/Emoji.js | 2 +- .../Binary_Property/Emoji_Presentation.js | 2 +- .../Binary_Property/Extender.js | 4 +- .../Binary_Property/Grapheme_Base.js | 28 +- .../Binary_Property/Grapheme_Extend.js | 12 +- .../Binary_Property/ID_Continue.js | 21 +- .../Binary_Property/ID_Start.js | 16 +- .../Binary_Property/Ideographic.js | 2 +- .../Binary_Property/Lowercase.js | 6 +- .../Binary_Property/Math.js | 4 +- .../Binary_Property/Sentence_Terminal.js | 5 +- .../Binary_Property/Terminal_Punctuation.js | 6 +- .../Binary_Property/Uppercase.js | 5 +- .../Binary_Property/XID_Continue.js | 21 +- .../Binary_Property/XID_Start.js | 16 +- .../General_Category/Cased_Letter.js | 6 +- .../General_Category/Dash_Punctuation.js | 2 +- .../General_Category/Decimal_Number.js | 4 +- .../General_Category/Letter.js | 16 +- .../General_Category/Lowercase_Letter.js | 6 +- .../General_Category/Mark.js | 10 +- .../General_Category/Math_Symbol.js | 2 +- .../General_Category/Modifier_Letter.js | 4 +- .../General_Category/Nonspacing_Mark.js | 10 +- .../General_Category/Number.js | 4 +- .../General_Category/Other.js | 20 +- .../General_Category/Other_Letter.js | 11 +- .../General_Category/Other_Punctuation.js | 8 +- .../General_Category/Other_Symbol.js | 6 +- .../General_Category/Punctuation.js | 8 +- .../General_Category/Spacing_Mark.js | 6 +- .../General_Category/Symbol.js | 8 +- .../General_Category/Unassigned.js | 20 +- .../General_Category/Uppercase_Letter.js | 4 +- .../Property_of_Strings/Basic_Emoji.js | 2 +- .../Property_of_Strings/RGI_Emoji.js | 4 +- .../RGI_Emoji_Flag_Sequence.js | 2 +- .../Script/Arabic.js | 2 +- .../Script/Balinese.js | 2 +- .../Script/Common.js | 6 +- .../Script/Cyrillic.js | 2 +- .../Script/Egyptian_Hieroglyphs.js | 2 +- .../Script/Kawi.js | 2 +- .../Script/Khitan_Small_Script.js | 2 +- .../Script/Latin.js | 2 +- .../Script/Myanmar.js | 2 +- .../Script_Extensions/Adlam.js | 2 +- .../Script_Extensions/Arabic.js | 4 +- .../Script_Extensions/Armenian.js | 2 +- .../Script_Extensions/Avestan.js | 4 +- .../Script_Extensions/Balinese.js | 2 +- .../Script_Extensions/Bengali.js | 2 +- .../Script_Extensions/Bopomofo.js | 4 +- .../Script_Extensions/Carian.js | 2 +- .../Script_Extensions/Caucasian_Albanian.js | 2 +- .../Script_Extensions/Cherokee.js | 4 +- .../Script_Extensions/Common.js | 8 +- .../Script_Extensions/Coptic.js | 4 +- .../Script_Extensions/Cyrillic.js | 4 +- .../Script_Extensions/Devanagari.js | 2 +- .../Script_Extensions/Duployan.js | 4 +- .../Script_Extensions/Egyptian_Hieroglyphs.js | 2 +- .../Script_Extensions/Elbasan.js | 2 +- .../Script_Extensions/Ethiopic.js | 2 +- .../Script_Extensions/Georgian.js | 2 +- .../Script_Extensions/Glagolitic.js | 2 +- .../Script_Extensions/Gothic.js | 4 +- .../Script_Extensions/Greek.js | 4 +- .../Script_Extensions/Gunjala_Gondi.js | 2 +- .../Script_Extensions/Han.js | 4 +- .../Script_Extensions/Hebrew.js | 2 +- .../Script_Extensions/Inherited.js | 4 +- .../Script_Extensions/Kaithi.js | 2 +- .../Script_Extensions/Kannada.js | 4 +- .../Script_Extensions/Katakana.js | 2 +- .../Script_Extensions/Kawi.js | 2 +- .../Script_Extensions/Khitan_Small_Script.js | 2 +- .../Script_Extensions/Latin.js | 4 +- .../Script_Extensions/Lisu.js | 4 +- .../Script_Extensions/Lycian.js | 2 +- .../Script_Extensions/Lydian.js | 2 +- .../Script_Extensions/Mahajani.js | 2 +- .../Script_Extensions/Meroitic_Hieroglyphs.js | 2 +- .../Script_Extensions/Mongolian.js | 2 +- .../Script_Extensions/Myanmar.js | 2 +- .../Script_Extensions/Old_Hungarian.js | 2 +- .../Script_Extensions/Old_Permic.js | 4 +- .../Script_Extensions/Old_Turkic.js | 2 +- .../Script_Extensions/Osage.js | 2 +- .../Script_Extensions/Phags_Pa.js | 2 +- .../Script_Extensions/Runic.js | 2 +- .../Script_Extensions/Samaritan.js | 2 +- .../Script_Extensions/Shavian.js | 2 +- .../Script_Extensions/Syriac.js | 4 +- .../Script_Extensions/Tai_Le.js | 4 +- .../Script_Extensions/Tangut.js | 4 +- .../Script_Extensions/Thai.js | 2 +- .../Script_Extensions/Tibetan.js | 2 +- .../Script_Extensions/Tifinagh.js | 2 +- .../Script_Extensions/Toto.js | 2 +- .../regenerate-unicode-properties/index.js | 14 + .../package.json | 10 +- .../unicode-version.js | 2 +- node_modules/regexpu-core/README.md | 28 +- .../data/character-class-escape-sets.js | 22 + node_modules/regexpu-core/data/iu-mappings.js | 50 + node_modules/regexpu-core/package.json | 25 +- node_modules/regexpu-core/rewrite-pattern.js | 357 +- .../regjsparser/node_modules/.bin/jsesc | 1 - .../node_modules/jsesc/LICENSE-MIT.txt | 20 - .../regjsparser/node_modules/jsesc/README.md | 375 - .../regjsparser/node_modules/jsesc/bin/jsesc | 138 - .../regjsparser/node_modules/jsesc/jsesc.js | 265 - .../node_modules/jsesc/man/jsesc.1 | 90 - .../node_modules/jsesc/package.json | 55 - node_modules/regjsparser/package.json | 29 +- node_modules/regjsparser/parser.d.ts | 13 +- node_modules/regjsparser/parser.js | 969 ++- .../source-map-js/lib/source-map-consumer.js | 8 +- node_modules/source-map-js/package.json | 2 +- node_modules/source-map-js/source-map.d.ts | 205 +- node_modules/terser/CHANGELOG.md | 31 + node_modules/terser/README.md | 2 +- node_modules/terser/dist/bundle.min.js | 518 +- node_modules/terser/lib/ast.js | 12 +- node_modules/terser/lib/cli.js | 1 + node_modules/terser/lib/compress/common.js | 21 +- .../terser/lib/compress/drop-unused.js | 41 +- node_modules/terser/lib/compress/evaluate.js | 23 +- node_modules/terser/lib/compress/index.js | 67 +- node_modules/terser/lib/compress/inference.js | 52 +- .../terser/lib/compress/reduce-vars.js | 177 +- node_modules/terser/lib/minify.js | 2 +- node_modules/terser/lib/mozilla-ast.js | 94 +- node_modules/terser/lib/output.js | 12 +- node_modules/terser/lib/parse.js | 17 +- node_modules/terser/lib/propmangle.js | 4 +- node_modules/terser/lib/scope.js | 4 +- node_modules/terser/package.json | 4 +- 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/tslib/CopyrightNotice.txt | 2 +- node_modules/tslib/README.md | 34 +- node_modules/tslib/modules/index.js | 19 + node_modules/tslib/package.json | 16 +- .../index.js | 23 - .../package.json | 6 - node_modules/tslib/tslib.d.ts | 433 +- node_modules/tslib/tslib.es6.js | 238 +- node_modules/tslib/tslib.js | 256 +- node_modules/undici-types/dispatcher.d.ts | 8 +- node_modules/undici-types/errors.d.ts | 21 + node_modules/undici-types/eventsource.d.ts | 6 +- node_modules/undici-types/fetch.d.ts | 3 +- node_modules/undici-types/formdata.d.ts | 2 +- node_modules/undici-types/index.d.ts | 7 +- node_modules/undici-types/interceptors.d.ts | 14 +- .../undici-types/mock-interceptor.d.ts | 8 +- node_modules/undici-types/package.json | 2 +- node_modules/undici-types/retry-agent.d.ts | 3 - node_modules/undici-types/util.d.ts | 21 +- node_modules/undici-types/webidl.d.ts | 11 +- .../README.md | 2 +- .../package.json | 2 +- .../README.md | 2 +- .../data/mappings.js | 28 + .../package.json | 4 +- .../update-browserslist-db/index.d.ts | 2 +- node_modules/update-browserslist-db/index.js | 4 +- .../update-browserslist-db/package.json | 6 +- node_modules/watchpack/lib/watchpack.js | 18 +- node_modules/watchpack/package.json | 2 +- node_modules/webpack/README.md | 15 +- node_modules/webpack/bin/webpack.js | 13 +- node_modules/webpack/hot/log.js | 3 +- node_modules/webpack/hot/only-dev-server.js | 2 +- node_modules/webpack/hot/poll.js | 2 +- node_modules/webpack/hot/signal.js | 2 +- node_modules/webpack/lib/APIPlugin.js | 7 +- .../webpack/lib/AbstractMethodError.js | 15 +- .../webpack/lib/AsyncDependenciesBlock.js | 2 +- .../webpack/lib/AutomaticPrefetchPlugin.js | 2 +- node_modules/webpack/lib/BannerPlugin.js | 21 +- node_modules/webpack/lib/Cache.js | 18 +- node_modules/webpack/lib/CacheFacade.js | 6 +- .../lib/CaseSensitiveModulesWarning.js | 12 +- node_modules/webpack/lib/Chunk.js | 55 +- node_modules/webpack/lib/ChunkGraph.js | 111 +- node_modules/webpack/lib/ChunkGroup.js | 9 +- node_modules/webpack/lib/ChunkTemplate.js | 43 + node_modules/webpack/lib/CleanPlugin.js | 28 +- .../webpack/lib/CodeGenerationResults.js | 14 +- .../webpack/lib/CommentCompilationWarning.js | 1 - node_modules/webpack/lib/Compilation.js | 521 +- node_modules/webpack/lib/Compiler.js | 171 +- .../webpack/lib/ConcatenationScope.js | 36 +- .../webpack/lib/ConditionalInitFragment.js | 13 +- node_modules/webpack/lib/ConstPlugin.js | 22 +- .../webpack/lib/ContextExclusionPlugin.js | 6 +- node_modules/webpack/lib/ContextModule.js | 68 +- .../webpack/lib/ContextModuleFactory.js | 133 +- .../webpack/lib/ContextReplacementPlugin.js | 19 +- node_modules/webpack/lib/CssModule.js | 46 +- node_modules/webpack/lib/DefinePlugin.js | 151 +- node_modules/webpack/lib/DelegatedModule.js | 16 +- .../lib/DelegatedModuleFactoryPlugin.js | 58 +- node_modules/webpack/lib/DelegatedPlugin.js | 4 + node_modules/webpack/lib/DependenciesBlock.js | 1 - node_modules/webpack/lib/Dependency.js | 24 +- node_modules/webpack/lib/DllEntryPlugin.js | 6 +- node_modules/webpack/lib/DllModule.js | 8 +- node_modules/webpack/lib/DllModuleFactory.js | 1 + node_modules/webpack/lib/DllPlugin.js | 16 +- .../webpack/lib/DllReferencePlugin.js | 45 +- .../webpack/lib/DynamicEntryPlugin.js | 51 +- node_modules/webpack/lib/EntryPlugin.js | 4 +- node_modules/webpack/lib/EnvironmentPlugin.js | 8 +- node_modules/webpack/lib/ErrorHelpers.js | 23 +- .../webpack/lib/EvalDevToolModulePlugin.js | 29 +- .../webpack/lib/EvalSourceMapDevToolPlugin.js | 35 +- node_modules/webpack/lib/ExportsInfo.js | 309 +- node_modules/webpack/lib/ExternalModule.js | 101 +- .../lib/ExternalModuleFactoryPlugin.js | 63 +- node_modules/webpack/lib/FileSystemInfo.js | 1219 ++- .../webpack/lib/FlagAllModulesAsUsedPlugin.js | 2 +- .../lib/FlagDependencyExportsPlugin.js | 23 +- .../webpack/lib/FlagDependencyUsagePlugin.js | 2 +- node_modules/webpack/lib/Generator.js | 16 +- node_modules/webpack/lib/GraphHelpers.js | 5 +- node_modules/webpack/lib/HookWebpackError.js | 18 +- .../webpack/lib/HotModuleReplacementPlugin.js | 148 +- .../webpack/lib/IgnoreErrorModuleFactory.js | 6 +- node_modules/webpack/lib/IgnorePlugin.js | 24 +- .../webpack/lib/IgnoreWarningsPlugin.js | 15 +- node_modules/webpack/lib/InitFragment.js | 5 +- node_modules/webpack/lib/LibManifestPlugin.js | 7 +- .../webpack/lib/LoaderOptionsPlugin.js | 4 +- node_modules/webpack/lib/MainTemplate.js | 91 +- node_modules/webpack/lib/Module.js | 45 +- node_modules/webpack/lib/ModuleBuildError.js | 15 +- .../webpack/lib/ModuleDependencyError.js | 10 +- .../webpack/lib/ModuleDependencyWarning.js | 10 +- node_modules/webpack/lib/ModuleError.js | 6 +- .../webpack/lib/ModuleFilenameHelpers.js | 75 +- node_modules/webpack/lib/ModuleGraph.js | 13 +- .../webpack/lib/ModuleGraphConnection.js | 12 +- .../webpack/lib/ModuleInfoHeaderPlugin.js | 114 +- node_modules/webpack/lib/ModuleParseError.js | 17 +- .../webpack/lib/ModuleRestoreError.js | 2 +- node_modules/webpack/lib/ModuleStoreError.js | 2 +- node_modules/webpack/lib/ModuleTemplate.js | 34 +- .../webpack/lib/ModuleTypeConstants.js | 43 +- node_modules/webpack/lib/ModuleWarning.js | 6 +- node_modules/webpack/lib/MultiCompiler.js | 50 +- node_modules/webpack/lib/MultiStats.js | 104 +- node_modules/webpack/lib/MultiWatching.js | 2 +- node_modules/webpack/lib/NormalModule.js | 235 +- .../webpack/lib/NormalModuleFactory.js | 162 +- .../webpack/lib/OptimizationStages.js | 6 +- node_modules/webpack/lib/OptionsApply.js | 13 +- node_modules/webpack/lib/ProgressPlugin.js | 78 +- node_modules/webpack/lib/ProvidePlugin.js | 8 +- node_modules/webpack/lib/RawModule.js | 7 +- node_modules/webpack/lib/RuntimeGlobals.js | 141 +- node_modules/webpack/lib/RuntimeModule.js | 9 +- node_modules/webpack/lib/RuntimePlugin.js | 47 +- node_modules/webpack/lib/RuntimeTemplate.js | 139 +- node_modules/webpack/lib/SizeFormatHelpers.js | 6 +- .../webpack/lib/SourceMapDevToolPlugin.js | 91 +- node_modules/webpack/lib/Stats.js | 16 +- node_modules/webpack/lib/Template.js | 42 +- .../webpack/lib/TemplatedPathPlugin.js | 34 +- .../webpack/lib/WarnDeprecatedOptionPlugin.js | 1 - node_modules/webpack/lib/WatchIgnorePlugin.js | 35 +- node_modules/webpack/lib/Watching.js | 19 +- .../webpack/lib/WebpackOptionsApply.js | 201 +- .../webpack/lib/asset/AssetGenerator.js | 622 +- .../webpack/lib/asset/AssetModulesPlugin.js | 55 +- .../webpack/lib/asset/AssetSourceGenerator.js | 116 +- .../webpack/lib/asset/RawDataUrlModule.js | 9 +- .../AwaitDependenciesInitFragment.js | 13 +- node_modules/webpack/lib/buildChunkGraph.js | 174 +- .../webpack/lib/cache/IdleFileCachePlugin.js | 8 +- .../lib/cache/MemoryWithGcCachePlugin.js | 10 +- .../lib/cache/PackFileCacheStrategy.js | 185 +- .../webpack/lib/cache/ResolverCachePlugin.js | 445 +- node_modules/webpack/lib/cache/mergeEtags.js | 37 +- node_modules/webpack/lib/cli.js | 252 +- .../lib/config/browserslistTargetHandler.js | 29 +- node_modules/webpack/lib/config/defaults.js | 464 +- .../webpack/lib/config/normalization.js | 683 +- node_modules/webpack/lib/config/target.js | 94 +- .../lib/container/ContainerEntryModule.js | 11 +- .../webpack/lib/container/ContainerPlugin.js | 10 +- .../webpack/lib/container/FallbackModule.js | 4 +- .../lib/container/ModuleFederationPlugin.js | 39 +- .../webpack/lib/container/RemoteModule.js | 6 +- .../lib/container/RemoteRuntimeModule.js | 25 +- node_modules/webpack/lib/container/options.js | 22 +- .../webpack/lib/css/CssExportsGenerator.js | 78 +- node_modules/webpack/lib/css/CssGenerator.js | 51 +- .../lib/css/CssLoadingRuntimeModule.js | 33 +- .../webpack/lib/css/CssModulesPlugin.js | 335 +- node_modules/webpack/lib/css/CssParser.js | 1279 +-- node_modules/webpack/lib/css/walkCssTokens.js | 1615 +++- .../webpack/lib/debug/ProfilingPlugin.js | 44 +- .../lib/dependencies/AMDDefineDependency.js | 2 +- .../AMDDefineDependencyParserPlugin.js | 130 +- .../dependencies/AMDRequireArrayDependency.js | 19 +- ...AMDRequireDependenciesBlockParserPlugin.js | 38 +- .../lib/dependencies/AMDRuntimeModules.js | 4 +- .../dependencies/CommonJsDependencyHelpers.js | 8 +- .../CommonJsExportRequireDependency.js | 78 +- .../dependencies/CommonJsExportsDependency.js | 1 - .../CommonJsExportsParserPlugin.js | 49 +- .../CommonJsFullRequireDependency.js | 2 +- .../CommonJsImportsParserPlugin.js | 122 +- .../CommonJsSelfReferenceDependency.js | 14 +- .../lib/dependencies/ConstDependency.js | 2 +- .../lib/dependencies/ContextDependency.js | 9 +- .../dependencies/ContextDependencyHelpers.js | 67 +- .../dependencies/ContextElementDependency.js | 43 +- .../dependencies/CriticalDependencyWarning.js | 2 +- .../lib/dependencies/CssExportDependency.js | 20 +- .../lib/dependencies/CssImportDependency.js | 2 - .../CssLocalIdentifierDependency.js | 49 +- .../CssSelfLocalIdentifierDependency.js | 3 +- .../lib/dependencies/CssUrlDependency.js | 45 +- .../lib/dependencies/DynamicExports.js | 10 +- .../lib/dependencies/ExportsInfoDependency.js | 3 +- .../HarmonyAcceptImportDependency.js | 2 +- ...rmonyEvaluatedImportSpecifierDependency.js | 9 +- .../HarmonyExportDependencyParserPlugin.js | 49 +- .../HarmonyExportExpressionDependency.js | 2 +- ...armonyExportImportedSpecifierDependency.js | 222 +- .../lib/dependencies/HarmonyExports.js | 4 +- .../dependencies/HarmonyImportDependency.js | 6 +- .../HarmonyImportDependencyParserPlugin.js | 116 +- .../HarmonyImportSpecifierDependency.js | 60 +- .../lib/dependencies/ImportDependency.js | 2 +- ...ImportMetaContextDependencyParserPlugin.js | 10 +- .../lib/dependencies/ImportMetaPlugin.js | 24 +- .../lib/dependencies/ImportParserPlugin.js | 97 +- .../lib/dependencies/JsonExportsDependency.js | 40 +- .../webpack/lib/dependencies/LoaderPlugin.js | 102 +- .../webpack/lib/dependencies/LocalModule.js | 2 +- .../lib/dependencies/LocalModulesHelpers.js | 8 +- .../dependencies/ModuleDecoratorDependency.js | 2 +- .../lib/dependencies/ProvidedDependency.js | 2 +- .../dependencies/PureExpressionDependency.js | 12 +- .../RequireContextDependencyParserPlugin.js | 2 +- .../RuntimeRequirementsDependency.js | 2 +- .../webpack/lib/dependencies/SystemPlugin.js | 5 +- .../webpack/lib/dependencies/URLDependency.js | 6 +- .../webpack/lib/dependencies/URLPlugin.js | 84 +- .../webpack/lib/dependencies/WorkerPlugin.js | 51 +- .../lib/dependencies/processExportInfo.js | 4 +- .../lib/electron/ElectronTargetPlugin.js | 1 + .../lib/esm/ModuleChunkFormatPlugin.js | 6 +- .../esm/ModuleChunkLoadingRuntimeModule.js | 16 +- node_modules/webpack/lib/formatLocation.js | 3 +- .../lib/hmr/HotModuleReplacement.runtime.js | 10 +- .../hmr/HotModuleReplacementRuntimeModule.js | 1 + .../JavascriptHotModuleReplacement.runtime.js | 22 +- .../webpack/lib/hmr/LazyCompilationPlugin.js | 57 +- .../webpack/lib/hmr/lazyCompilationBackend.js | 110 +- .../lib/ids/ChunkModuleIdRangePlugin.js | 4 +- .../lib/ids/DeterministicChunkIdsPlugin.js | 6 +- .../lib/ids/DeterministicModuleIdsPlugin.js | 2 +- .../webpack/lib/ids/HashedModuleIdsPlugin.js | 6 +- node_modules/webpack/lib/ids/IdHelpers.js | 68 +- .../webpack/lib/ids/SyncModuleIdsPlugin.js | 9 +- node_modules/webpack/lib/index.js | 44 +- .../ArrayPushCallbackChunkFormatPlugin.js | 9 +- .../javascript/BasicEvaluatedExpression.js | 23 +- .../webpack/lib/javascript/ChunkHelpers.js | 2 +- .../javascript/CommonJsChunkFormatPlugin.js | 5 +- .../javascript/EnableChunkLoadingPlugin.js | 9 +- .../lib/javascript/JavascriptGenerator.js | 46 +- .../lib/javascript/JavascriptModulesPlugin.js | 396 +- .../lib/javascript/JavascriptParser.js | 818 +- .../lib/javascript/JavascriptParserHelpers.js | 41 +- .../webpack/lib/javascript/StartupHelpers.js | 54 +- .../webpack/lib/json/JsonGenerator.js | 30 +- .../webpack/lib/json/JsonModulesPlugin.js | 5 +- node_modules/webpack/lib/json/JsonParser.js | 8 +- .../webpack/lib/library/AmdLibraryPlugin.js | 28 +- .../lib/library/AssignLibraryPlugin.js | 18 +- .../lib/library/EnableLibraryPlugin.js | 25 +- .../library/ExportPropertyLibraryPlugin.js | 2 +- .../webpack/lib/library/JsonpLibraryPlugin.js | 3 +- .../lib/library/ModernModuleLibraryPlugin.js | 14 +- .../lib/library/ModuleLibraryPlugin.js | 3 +- .../lib/library/SystemLibraryPlugin.js | 3 +- .../webpack/lib/library/UmdLibraryPlugin.js | 178 +- node_modules/webpack/lib/logging/Logger.js | 38 +- .../lib/logging/createConsoleLogger.js | 49 +- node_modules/webpack/lib/logging/runtime.js | 15 +- .../webpack/lib/logging/truncateArgs.js | 15 +- .../webpack/lib/node/NodeWatchFileSystem.js | 25 +- .../node/ReadFileChunkLoadingRuntimeModule.js | 4 +- .../node/ReadFileCompileAsyncWasmPlugin.js | 39 +- .../lib/node/ReadFileCompileWasmPlugin.js | 3 +- .../node/RequireChunkLoadingRuntimeModule.js | 4 +- node_modules/webpack/lib/node/nodeConsole.js | 63 +- .../lib/optimize/AggressiveMergingPlugin.js | 6 +- .../lib/optimize/AggressiveSplittingPlugin.js | 63 +- .../lib/optimize/ConcatenatedModule.js | 312 +- .../optimize/EnsureChunkConditionsPlugin.js | 2 +- .../lib/optimize/FlagIncludedChunksPlugin.js | 12 +- .../webpack/lib/optimize/InnerGraph.js | 34 +- .../webpack/lib/optimize/InnerGraphPlugin.js | 86 +- .../lib/optimize/LimitChunkCountPlugin.js | 11 +- .../lib/optimize/MangleExportsPlugin.js | 1 + .../optimize/MergeDuplicateChunksPlugin.js | 4 +- .../webpack/lib/optimize/MinMaxSizeWarning.js | 2 +- .../lib/optimize/ModuleConcatenationPlugin.js | 138 +- .../lib/optimize/RealContentHashPlugin.js | 19 +- .../lib/optimize/RemoveParentModulesPlugin.js | 6 +- .../lib/optimize/SideEffectsFlagPlugin.js | 17 +- .../webpack/lib/optimize/SplitChunksPlugin.js | 64 +- .../lib/performance/SizeLimitsPlugin.js | 4 +- .../ChunkPrefetchTriggerRuntimeModule.js | 2 +- .../ChunkPreloadTriggerRuntimeModule.js | 2 +- .../lib/rules/BasicEffectRulePlugin.js | 4 +- .../lib/rules/BasicMatcherRulePlugin.js | 4 +- .../lib/rules/ObjectMatcherRulePlugin.js | 5 +- .../webpack/lib/rules/RuleSetCompiler.js | 63 +- .../webpack/lib/rules/UseEffectRulePlugin.js | 68 +- .../lib/runtime/AsyncModuleRuntimeModule.js | 2 +- .../runtime/AutoPublicPathRuntimeModule.js | 11 +- .../CreateFakeNamespaceObjectRuntimeModule.js | 4 +- .../DefinePropertyGettersRuntimeModule.js | 2 +- .../lib/runtime/EnsureChunkRuntimeModule.js | 21 +- .../runtime/GetChunkFilenameRuntimeModule.js | 30 +- .../lib/runtime/LoadScriptRuntimeModule.js | 35 +- .../StartupChunkDependenciesRuntimeModule.js | 4 +- .../webpack/lib/schemes/DataUriPlugin.js | 4 +- .../webpack/lib/schemes/HttpUriPlugin.js | 367 +- .../lib/serialization/BinaryMiddleware.js | 119 +- .../lib/serialization/DateObjectSerializer.js | 1 + .../serialization/ErrorObjectSerializer.js | 2 + .../lib/serialization/FileMiddleware.js | 264 +- .../lib/serialization/MapObjectSerializer.js | 3 +- .../NullPrototypeObjectSerializer.js | 5 +- .../lib/serialization/ObjectMiddleware.js | 134 +- .../serialization/PlainObjectSerializer.js | 38 +- .../serialization/RegExpObjectSerializer.js | 1 + .../webpack/lib/serialization/Serializer.js | 9 +- .../lib/serialization/SerializerMiddleware.js | 17 +- .../lib/serialization/SetObjectSerializer.js | 3 +- .../webpack/lib/serialization/types.js | 4 +- .../lib/sharing/ConsumeSharedModule.js | 5 +- .../lib/sharing/ConsumeSharedPlugin.js | 221 +- .../lib/sharing/ConsumeSharedRuntimeModule.js | 12 +- .../lib/sharing/ProvideForSharedDependency.js | 1 - .../lib/sharing/ProvideSharedModule.js | 5 +- .../lib/sharing/ProvideSharedPlugin.js | 4 +- .../lib/sharing/resolveMatchedConfigs.js | 3 +- node_modules/webpack/lib/sharing/utils.js | 42 +- .../lib/stats/DefaultStatsFactoryPlugin.js | 717 +- .../lib/stats/DefaultStatsPresetPlugin.js | 91 +- .../lib/stats/DefaultStatsPrinterPlugin.js | 471 +- .../webpack/lib/stats/StatsFactory.js | 185 +- .../webpack/lib/stats/StatsPrinter.js | 119 +- node_modules/webpack/lib/util/ArrayHelpers.js | 12 +- node_modules/webpack/lib/util/ArrayQueue.js | 2 +- node_modules/webpack/lib/util/AsyncQueue.js | 61 +- .../webpack/lib/util/IterableHelpers.js | 9 +- .../webpack/lib/util/LazyBucketSortedSet.js | 106 +- node_modules/webpack/lib/util/LazySet.js | 13 + node_modules/webpack/lib/util/MapHelpers.js | 4 +- .../lib/util/ParallelismFactorCalculator.js | 2 +- node_modules/webpack/lib/util/Queue.js | 2 +- node_modules/webpack/lib/util/Semaphore.js | 11 +- node_modules/webpack/lib/util/SetHelpers.js | 12 +- node_modules/webpack/lib/util/SortableSet.js | 7 +- .../webpack/lib/util/StackedCacheMap.js | 10 +- node_modules/webpack/lib/util/StackedMap.js | 4 +- node_modules/webpack/lib/util/StringXor.js | 5 - node_modules/webpack/lib/util/TupleQueue.js | 2 +- node_modules/webpack/lib/util/TupleSet.js | 20 +- .../webpack/lib/util/URLAbsoluteSpecifier.js | 14 +- node_modules/webpack/lib/util/WeakTupleMap.js | 40 +- .../webpack/lib/util/binarySearchBounds.js | 17 +- .../webpack/lib/util/chainedImports.js | 2 +- node_modules/webpack/lib/util/cleverMerge.js | 112 +- node_modules/webpack/lib/util/comparators.js | 109 +- .../webpack/lib/util/compileBooleanMatcher.js | 9 +- node_modules/webpack/lib/util/conventions.js | 19 +- .../lib/util/create-schema-validation.js | 31 +- node_modules/webpack/lib/util/createHash.js | 15 +- node_modules/webpack/lib/util/deprecation.js | 146 +- .../webpack/lib/util/deterministicGrouping.js | 45 +- .../webpack/lib/util/findGraphRoots.js | 4 +- node_modules/webpack/lib/util/fs.js | 78 +- node_modules/webpack/lib/util/hash/md4.js | 4 +- .../webpack/lib/util/hash/wasm-hash.js | 27 +- .../webpack/lib/util/hash/xxhash64.js | 4 +- node_modules/webpack/lib/util/identifier.js | 140 +- .../webpack/lib/util/makeSerializable.js | 25 +- node_modules/webpack/lib/util/memoize.js | 19 +- node_modules/webpack/lib/util/mergeScope.js | 79 - .../webpack/lib/util/nonNumericOnlyHash.js | 4 +- node_modules/webpack/lib/util/numberHash.js | 7 +- node_modules/webpack/lib/util/objectToMap.js | 1 - .../webpack/lib/util/propertyAccess.js | 7 +- node_modules/webpack/lib/util/propertyName.js | 4 +- .../lib/util/registerExternalSerializer.js | 2 +- node_modules/webpack/lib/util/runtime.js | 233 +- node_modules/webpack/lib/util/semver.js | 209 +- .../webpack/lib/util/serialization.js | 17 +- .../webpack/lib/util/smartGrouping.js | 10 +- node_modules/webpack/lib/util/source.js | 2 +- .../AsyncWasmLoadingRuntimeModule.js | 12 +- .../wasm-async/AsyncWebAssemblyGenerator.js | 10 +- .../AsyncWebAssemblyJavascriptGenerator.js | 21 +- .../AsyncWebAssemblyModulesPlugin.js | 6 +- .../WasmChunkLoadingRuntimeModule.js | 39 +- .../lib/wasm-sync/WebAssemblyGenerator.js | 60 +- .../WebAssemblyJavascriptGenerator.js | 12 +- .../webpack/lib/wasm-sync/WebAssemblyUtils.js | 4 +- .../lib/wasm/EnableWasmLoadingPlugin.js | 5 +- .../lib/web/FetchCompileAsyncWasmPlugin.js | 3 +- .../webpack/lib/web/FetchCompileWasmPlugin.js | 3 +- .../lib/web/JsonpChunkLoadingRuntimeModule.js | 17 +- .../ImportScriptsChunkLoadingPlugin.js | 4 +- .../ImportScriptsChunkLoadingRuntimeModule.js | 2 +- node_modules/webpack/package.json | 62 +- .../webpack/schemas/WebpackOptions.check.js | 2 +- .../webpack/schemas/WebpackOptions.json | 15 +- .../ContainerReferencePlugin.check.js | 2 +- .../container/ContainerReferencePlugin.json | 1 + .../plugins/container/ExternalsType.check.js | 2 +- .../container/ModuleFederationPlugin.check.js | 2 +- .../container/ModuleFederationPlugin.json | 1 + node_modules/webpack/types.d.ts | 2060 +++-- package-lock.json | 3601 ++++----- package.json | 11 +- src/config/babel.config.js | 1 + src/config/webpack.config.js | 1 + src/setup/dependencies.js | 26 + src/setup/deps.js | 27 + src/setup/devDependencies.js | 18 + src/setup/devDeps.js | 16 + src/setup/gitInit.js | 17 + src/setup/husky.js | 15 + src/setup/init.js | 65 + src/setup/init.test.js | 29 + src/setup/redux.js | 60 + src/setup/styles.js | 52 + src/setup/styles.test.js | 23 + src/setup/testing.js | 69 + src/templates/atomicStructure.js | 17 + src/templates/packageJson.js | 27 + src/templates/reduxTemplate.js | 1 + src/utils/fileUtils.js | 1 + src/utils/logging.js | 35 + src/utils/overWriteFolder.js | 28 + src/utils/overWriteProject.test.js | 39 + src/utils/prompts.js | 17 + structure.js | 60 + 2351 files changed, 39323 insertions(+), 60326 deletions(-) create mode 100755 bin/cli.js create mode 100644 bin/cli.test.js delete mode 100644 node_modules/@babel/helper-annotate-as-pure/tsconfig.json delete mode 100644 node_modules/@babel/helper-annotate-as-pure/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/helper-builder-binary-assignment-operator-visitor/tsconfig.json delete mode 100644 node_modules/@babel/helper-builder-binary-assignment-operator-visitor/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/helper-create-class-features-plugin/tsconfig.json delete mode 100644 node_modules/@babel/helper-create-class-features-plugin/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/helper-create-regexp-features-plugin/tsconfig.json delete mode 100644 node_modules/@babel/helper-create-regexp-features-plugin/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/helper-member-expression-to-functions/tsconfig.json delete mode 100644 node_modules/@babel/helper-member-expression-to-functions/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/helper-optimise-call-expression/tsconfig.json delete mode 100644 node_modules/@babel/helper-optimise-call-expression/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/helper-plugin-utils/tsconfig.json delete mode 100644 node_modules/@babel/helper-plugin-utils/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/helper-remap-async-to-generator/tsconfig.json delete mode 100644 node_modules/@babel/helper-remap-async-to-generator/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/helper-replace-supers/tsconfig.json delete mode 100644 node_modules/@babel/helper-replace-supers/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/helper-skip-transparent-expression-wrappers/tsconfig.json delete mode 100644 node_modules/@babel/helper-skip-transparent-expression-wrappers/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js delete mode 100644 node_modules/@babel/helper-wrap-function/tsconfig.json delete mode 100644 node_modules/@babel/helper-wrap-function/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/helpers/scripts/build-helper-metadata.js delete mode 100644 node_modules/@babel/helpers/scripts/generate-helpers.js delete mode 100644 node_modules/@babel/helpers/scripts/generate-regenerator-runtime.js delete mode 100644 node_modules/@babel/highlight/LICENSE delete mode 100644 node_modules/@babel/highlight/README.md delete mode 100644 node_modules/@babel/highlight/lib/index.js delete mode 100644 node_modules/@babel/highlight/lib/index.js.map delete mode 100644 node_modules/@babel/highlight/node_modules/ansi-styles/index.js delete mode 100644 node_modules/@babel/highlight/node_modules/ansi-styles/license delete mode 100644 node_modules/@babel/highlight/node_modules/ansi-styles/package.json delete mode 100644 node_modules/@babel/highlight/node_modules/ansi-styles/readme.md delete mode 100644 node_modules/@babel/highlight/node_modules/chalk/index.js delete mode 100644 node_modules/@babel/highlight/node_modules/chalk/index.js.flow delete mode 100644 node_modules/@babel/highlight/node_modules/chalk/license delete mode 100644 node_modules/@babel/highlight/node_modules/chalk/package.json delete mode 100644 node_modules/@babel/highlight/node_modules/chalk/readme.md delete mode 100644 node_modules/@babel/highlight/node_modules/chalk/templates.js delete mode 100644 node_modules/@babel/highlight/node_modules/chalk/types/index.d.ts delete mode 100644 node_modules/@babel/highlight/node_modules/color-convert/CHANGELOG.md delete mode 100644 node_modules/@babel/highlight/node_modules/color-convert/LICENSE delete mode 100644 node_modules/@babel/highlight/node_modules/color-convert/README.md delete mode 100644 node_modules/@babel/highlight/node_modules/color-convert/conversions.js delete mode 100644 node_modules/@babel/highlight/node_modules/color-convert/index.js delete mode 100644 node_modules/@babel/highlight/node_modules/color-convert/package.json delete mode 100644 node_modules/@babel/highlight/node_modules/color-convert/route.js delete mode 100644 node_modules/@babel/highlight/node_modules/color-name/.eslintrc.json delete mode 100644 node_modules/@babel/highlight/node_modules/color-name/.npmignore delete mode 100644 node_modules/@babel/highlight/node_modules/color-name/LICENSE delete mode 100644 node_modules/@babel/highlight/node_modules/color-name/README.md delete mode 100644 node_modules/@babel/highlight/node_modules/color-name/index.js delete mode 100644 node_modules/@babel/highlight/node_modules/color-name/package.json delete mode 100644 node_modules/@babel/highlight/node_modules/color-name/test.js delete mode 100644 node_modules/@babel/highlight/node_modules/has-flag/index.js delete mode 100644 node_modules/@babel/highlight/node_modules/has-flag/license delete mode 100644 node_modules/@babel/highlight/node_modules/has-flag/package.json delete mode 100644 node_modules/@babel/highlight/node_modules/has-flag/readme.md delete mode 100644 node_modules/@babel/highlight/node_modules/supports-color/browser.js delete mode 100644 node_modules/@babel/highlight/node_modules/supports-color/index.js delete mode 100644 node_modules/@babel/highlight/node_modules/supports-color/license delete mode 100644 node_modules/@babel/highlight/node_modules/supports-color/package.json delete mode 100644 node_modules/@babel/highlight/node_modules/supports-color/readme.md delete mode 100644 node_modules/@babel/highlight/package.json delete mode 100644 node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key/tsconfig.json delete mode 100644 node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope/tsconfig.json delete mode 100644 node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/tsconfig.json delete mode 100644 node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/tsconfig.json delete mode 100644 node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/tsconfig.json delete mode 100644 node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-syntax-dynamic-import/LICENSE delete mode 100644 node_modules/@babel/plugin-syntax-dynamic-import/README.md delete mode 100644 node_modules/@babel/plugin-syntax-dynamic-import/lib/index.js delete mode 100644 node_modules/@babel/plugin-syntax-dynamic-import/package.json delete mode 100644 node_modules/@babel/plugin-syntax-export-namespace-from/LICENSE delete mode 100644 node_modules/@babel/plugin-syntax-export-namespace-from/README.md delete mode 100644 node_modules/@babel/plugin-syntax-export-namespace-from/lib/index.js delete mode 100644 node_modules/@babel/plugin-syntax-export-namespace-from/package.json delete mode 100644 node_modules/@babel/plugin-syntax-import-assertions/tsconfig.json delete mode 100644 node_modules/@babel/plugin-syntax-import-assertions/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-syntax-import-attributes/tsconfig.json delete mode 100644 node_modules/@babel/plugin-syntax-import-attributes/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-syntax-jsx/tsconfig.json delete mode 100644 node_modules/@babel/plugin-syntax-jsx/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-syntax-typescript/tsconfig.json delete mode 100644 node_modules/@babel/plugin-syntax-typescript/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-arrow-functions/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-arrow-functions/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-async-generator-functions/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-async-generator-functions/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-async-to-generator/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-async-to-generator/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-block-scoped-functions/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-block-scoped-functions/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-block-scoping/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-block-scoping/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-class-properties/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-class-properties/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-class-static-block/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-class-static-block/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-classes/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-classes/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-computed-properties/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-computed-properties/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-destructuring/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-destructuring/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-dotall-regex/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-dotall-regex/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-duplicate-keys/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-duplicate-keys/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-dynamic-import/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-dynamic-import/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-exponentiation-operator/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-exponentiation-operator/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-export-namespace-from/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-export-namespace-from/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-for-of/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-for-of/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-function-name/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-function-name/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-json-strings/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-json-strings/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-literals/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-literals/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-logical-assignment-operators/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-logical-assignment-operators/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-member-expression-literals/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-member-expression-literals/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-modules-amd/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-modules-amd/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-modules-commonjs/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-modules-commonjs/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-modules-systemjs/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-modules-systemjs/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-modules-umd/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-modules-umd/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-named-capturing-groups-regex/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-named-capturing-groups-regex/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-new-target/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-new-target/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-nullish-coalescing-operator/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-nullish-coalescing-operator/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-numeric-separator/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-numeric-separator/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-object-rest-spread/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-object-rest-spread/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-object-super/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-object-super/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-optional-catch-binding/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-optional-catch-binding/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-optional-chaining/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-optional-chaining/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-parameters/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-parameters/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-private-methods/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-private-methods/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-private-property-in-object/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-private-property-in-object/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-property-literals/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-property-literals/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-react-display-name/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-react-display-name/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-react-jsx-development/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-react-jsx-development/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-react-jsx/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-react-jsx/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-react-pure-annotations/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-react-pure-annotations/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-regenerator/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-regenerator/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-reserved-words/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-reserved-words/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-shorthand-properties/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-shorthand-properties/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-spread/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-spread/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-sticky-regex/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-sticky-regex/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-template-literals/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-template-literals/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-typeof-symbol/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-typeof-symbol/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-typescript/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-typescript/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-unicode-escapes/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-unicode-escapes/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-unicode-property-regex/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-unicode-property-regex/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-unicode-regex/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-unicode-regex/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/plugin-transform-unicode-sets-regex/tsconfig.json delete mode 100644 node_modules/@babel/plugin-transform-unicode-sets-regex/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/preset-env/tsconfig.json delete mode 100644 node_modules/@babel/preset-env/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/preset-react/tsconfig.json delete mode 100644 node_modules/@babel/preset-react/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/preset-typescript/tsconfig.json delete mode 100644 node_modules/@babel/preset-typescript/tsconfig.tsbuildinfo delete mode 100644 node_modules/@babel/regjsgen/LICENSE-MIT.txt delete mode 100644 node_modules/@babel/regjsgen/README.md delete mode 100644 node_modules/@babel/regjsgen/package.json delete mode 100644 node_modules/@babel/regjsgen/regjsgen.js delete mode 100644 node_modules/@types/node/globals.global.d.ts delete mode 100644 node_modules/acorn-import-attributes/LICENSE delete mode 100644 node_modules/acorn-import-attributes/README.md delete mode 100644 node_modules/acorn-import-attributes/lib/index.js delete mode 100644 node_modules/acorn-import-attributes/lib/index.mjs delete mode 100644 node_modules/acorn-import-attributes/package.json delete mode 100644 node_modules/acorn-import-attributes/src/index.js delete mode 100644 node_modules/ajv/.tonic_example.js delete mode 100644 node_modules/ajv/dist/ajv.bundle.js delete mode 100644 node_modules/ajv/dist/ajv.min.js delete mode 100644 node_modules/ajv/dist/ajv.min.js.map delete mode 100644 node_modules/ajv/lib/ajv.d.ts delete mode 100644 node_modules/ajv/lib/ajv.js delete mode 100644 node_modules/ajv/lib/cache.js delete mode 100644 node_modules/ajv/lib/compile/async.js delete mode 100644 node_modules/ajv/lib/compile/equal.js delete mode 100644 node_modules/ajv/lib/compile/error_classes.js delete mode 100644 node_modules/ajv/lib/compile/formats.js delete mode 100644 node_modules/ajv/lib/compile/index.js delete mode 100644 node_modules/ajv/lib/compile/resolve.js delete mode 100644 node_modules/ajv/lib/compile/rules.js delete mode 100644 node_modules/ajv/lib/compile/schema_obj.js delete mode 100644 node_modules/ajv/lib/compile/ucs2length.js delete mode 100644 node_modules/ajv/lib/compile/util.js delete mode 100644 node_modules/ajv/lib/data.js delete mode 100644 node_modules/ajv/lib/definition_schema.js delete mode 100644 node_modules/ajv/lib/dot/_limit.jst delete mode 100644 node_modules/ajv/lib/dot/_limitItems.jst delete mode 100644 node_modules/ajv/lib/dot/_limitLength.jst delete mode 100644 node_modules/ajv/lib/dot/_limitProperties.jst delete mode 100644 node_modules/ajv/lib/dot/allOf.jst delete mode 100644 node_modules/ajv/lib/dot/anyOf.jst delete mode 100644 node_modules/ajv/lib/dot/coerce.def delete mode 100644 node_modules/ajv/lib/dot/comment.jst delete mode 100644 node_modules/ajv/lib/dot/const.jst delete mode 100644 node_modules/ajv/lib/dot/contains.jst delete mode 100644 node_modules/ajv/lib/dot/custom.jst delete mode 100644 node_modules/ajv/lib/dot/defaults.def delete mode 100644 node_modules/ajv/lib/dot/definitions.def delete mode 100644 node_modules/ajv/lib/dot/dependencies.jst delete mode 100644 node_modules/ajv/lib/dot/enum.jst delete mode 100644 node_modules/ajv/lib/dot/errors.def delete mode 100644 node_modules/ajv/lib/dot/format.jst delete mode 100644 node_modules/ajv/lib/dot/if.jst delete mode 100644 node_modules/ajv/lib/dot/items.jst delete mode 100644 node_modules/ajv/lib/dot/missing.def delete mode 100644 node_modules/ajv/lib/dot/multipleOf.jst delete mode 100644 node_modules/ajv/lib/dot/not.jst delete mode 100644 node_modules/ajv/lib/dot/oneOf.jst delete mode 100644 node_modules/ajv/lib/dot/pattern.jst delete mode 100644 node_modules/ajv/lib/dot/properties.jst delete mode 100644 node_modules/ajv/lib/dot/propertyNames.jst delete mode 100644 node_modules/ajv/lib/dot/ref.jst delete mode 100644 node_modules/ajv/lib/dot/required.jst delete mode 100644 node_modules/ajv/lib/dot/uniqueItems.jst delete mode 100644 node_modules/ajv/lib/dot/validate.jst delete mode 100644 node_modules/ajv/lib/dotjs/README.md delete mode 100644 node_modules/ajv/lib/dotjs/_limit.js delete mode 100644 node_modules/ajv/lib/dotjs/_limitItems.js delete mode 100644 node_modules/ajv/lib/dotjs/_limitLength.js delete mode 100644 node_modules/ajv/lib/dotjs/_limitProperties.js delete mode 100644 node_modules/ajv/lib/dotjs/allOf.js delete mode 100644 node_modules/ajv/lib/dotjs/anyOf.js delete mode 100644 node_modules/ajv/lib/dotjs/comment.js delete mode 100644 node_modules/ajv/lib/dotjs/const.js delete mode 100644 node_modules/ajv/lib/dotjs/contains.js delete mode 100644 node_modules/ajv/lib/dotjs/custom.js delete mode 100644 node_modules/ajv/lib/dotjs/dependencies.js delete mode 100644 node_modules/ajv/lib/dotjs/enum.js delete mode 100644 node_modules/ajv/lib/dotjs/format.js delete mode 100644 node_modules/ajv/lib/dotjs/if.js delete mode 100644 node_modules/ajv/lib/dotjs/index.js delete mode 100644 node_modules/ajv/lib/dotjs/items.js delete mode 100644 node_modules/ajv/lib/dotjs/multipleOf.js delete mode 100644 node_modules/ajv/lib/dotjs/not.js delete mode 100644 node_modules/ajv/lib/dotjs/oneOf.js delete mode 100644 node_modules/ajv/lib/dotjs/pattern.js delete mode 100644 node_modules/ajv/lib/dotjs/properties.js delete mode 100644 node_modules/ajv/lib/dotjs/propertyNames.js delete mode 100644 node_modules/ajv/lib/dotjs/ref.js delete mode 100644 node_modules/ajv/lib/dotjs/required.js delete mode 100644 node_modules/ajv/lib/dotjs/uniqueItems.js delete mode 100644 node_modules/ajv/lib/dotjs/validate.js delete mode 100644 node_modules/ajv/lib/keyword.js delete mode 100644 node_modules/ajv/lib/refs/json-schema-draft-04.json delete mode 100644 node_modules/ajv/scripts/.eslintrc.yml delete mode 100644 node_modules/ajv/scripts/bundle.js delete mode 100644 node_modules/ajv/scripts/compile-dots.js delete mode 100644 node_modules/ajv/scripts/info delete mode 100644 node_modules/ajv/scripts/prepare-tests delete mode 100644 node_modules/ajv/scripts/publish-built-version delete mode 100644 node_modules/ajv/scripts/travis-gh-pages delete mode 100644 node_modules/argparse/index.js delete mode 100644 node_modules/argparse/lib/action.js delete mode 100644 node_modules/argparse/lib/action/append.js delete mode 100644 node_modules/argparse/lib/action/append/constant.js delete mode 100644 node_modules/argparse/lib/action/count.js delete mode 100644 node_modules/argparse/lib/action/help.js delete mode 100644 node_modules/argparse/lib/action/store.js delete mode 100644 node_modules/argparse/lib/action/store/constant.js delete mode 100644 node_modules/argparse/lib/action/store/false.js delete mode 100644 node_modules/argparse/lib/action/store/true.js delete mode 100644 node_modules/argparse/lib/action/subparsers.js delete mode 100644 node_modules/argparse/lib/action/version.js delete mode 100644 node_modules/argparse/lib/action_container.js delete mode 100644 node_modules/argparse/lib/argparse.js delete mode 100644 node_modules/argparse/lib/argument/error.js delete mode 100644 node_modules/argparse/lib/argument/exclusive.js delete mode 100644 node_modules/argparse/lib/argument/group.js delete mode 100644 node_modules/argparse/lib/argument_parser.js delete mode 100644 node_modules/argparse/lib/const.js delete mode 100644 node_modules/argparse/lib/help/added_formatters.js delete mode 100644 node_modules/argparse/lib/help/formatter.js delete mode 100644 node_modules/argparse/lib/namespace.js delete mode 100644 node_modules/argparse/lib/utils.js delete mode 100644 node_modules/babel-preset-current-node-syntax/scripts/check-yarn-bug.sh delete mode 100644 node_modules/caniuse-lite/data/features/css-scroll-timeline.js delete mode 100644 node_modules/caniuse-lite/data/regions/TK.js delete mode 100644 node_modules/cross-spawn/CHANGELOG.md delete mode 100644 node_modules/eslint-scope/CHANGELOG.md delete mode 100644 node_modules/esrecurse/node_modules/estraverse/.jshintrc delete mode 100644 node_modules/esrecurse/node_modules/estraverse/LICENSE.BSD delete mode 100644 node_modules/esrecurse/node_modules/estraverse/README.md delete mode 100644 node_modules/esrecurse/node_modules/estraverse/estraverse.js delete mode 100644 node_modules/esrecurse/node_modules/estraverse/gulpfile.js delete mode 100644 node_modules/esrecurse/node_modules/estraverse/package.json delete mode 100644 node_modules/js-yaml/lib/js-yaml.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/common.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/dumper.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/exception.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/loader.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/mark.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/schema.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/schema/core.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/schema/default_full.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/schema/default_safe.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/schema/failsafe.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/schema/json.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/binary.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/bool.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/float.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/int.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/js/function.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/js/regexp.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/js/undefined.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/map.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/merge.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/null.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/omap.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/pairs.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/seq.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/set.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/str.js delete mode 100644 node_modules/js-yaml/lib/js-yaml/type/timestamp.js delete mode 100644 node_modules/json-schema-traverse/.travis.yml delete mode 100644 node_modules/picocolors/types.ts delete mode 120000 node_modules/regjsparser/node_modules/.bin/jsesc delete mode 100644 node_modules/regjsparser/node_modules/jsesc/LICENSE-MIT.txt delete mode 100644 node_modules/regjsparser/node_modules/jsesc/README.md delete mode 100755 node_modules/regjsparser/node_modules/jsesc/bin/jsesc delete mode 100644 node_modules/regjsparser/node_modules/jsesc/jsesc.js delete mode 100644 node_modules/regjsparser/node_modules/jsesc/man/jsesc.1 delete mode 100644 node_modules/regjsparser/node_modules/jsesc/package.json delete mode 100644 node_modules/to-fast-properties/index.js delete mode 100644 node_modules/to-fast-properties/license delete mode 100644 node_modules/to-fast-properties/package.json delete mode 100644 node_modules/to-fast-properties/readme.md delete mode 100644 node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js delete mode 100644 node_modules/tslib/test/validateModuleExportsMatchCommonJS/package.json delete mode 100644 node_modules/webpack/lib/util/mergeScope.js create mode 100644 src/config/babel.config.js create mode 100644 src/config/webpack.config.js create mode 100644 src/setup/dependencies.js create mode 100644 src/setup/deps.js create mode 100644 src/setup/devDependencies.js create mode 100644 src/setup/devDeps.js create mode 100644 src/setup/gitInit.js create mode 100644 src/setup/husky.js create mode 100644 src/setup/init.js create mode 100644 src/setup/init.test.js create mode 100644 src/setup/redux.js create mode 100644 src/setup/styles.js create mode 100644 src/setup/styles.test.js create mode 100644 src/setup/testing.js create mode 100644 src/templates/atomicStructure.js create mode 100644 src/templates/packageJson.js create mode 100644 src/templates/reduxTemplate.js create mode 100644 src/utils/fileUtils.js create mode 100644 src/utils/logging.js create mode 100644 src/utils/overWriteFolder.js create mode 100644 src/utils/overWriteProject.test.js create mode 100644 src/utils/prompts.js create mode 100644 structure.js diff --git a/bin/cli.js b/bin/cli.js new file mode 100755 index 0000000..9a778d7 --- /dev/null +++ b/bin/cli.js @@ -0,0 +1,27 @@ +#!/usr/bin/env node + +const program = require('commander'); +const { initProject } = require('../src/setup/init'); +const { askProjectDetails } = require('../src/utils/prompts'); +const { overWriteFolder } = require('../src/utils/overWriteFolder'); + +program + .version('1.0.0') + .description('React Crafter CLI') + .arguments('') + .option('--typescript', 'Use TypeScript template') + .action(async (projectDirectory, options) => { + // Use the overwrite function to manage the project directory + const shouldProceed = await overWriteFolder(projectDirectory); + console.log('shouldProceed', shouldProceed); + if (!shouldProceed) { + console.error('❌ Project initialization aborted.'); + process.exit(1); + } + + // Proceed with project setup + const userInput = await askProjectDetails(); + initProject(projectDirectory, userInput, options); + }) + .parse(process.argv); + diff --git a/bin/cli.test.js b/bin/cli.test.js new file mode 100644 index 0000000..26202fa --- /dev/null +++ b/bin/cli.test.js @@ -0,0 +1,13 @@ +const { execSync } = require('child_process'); + +describe('React Crafter CLI', () => { + test('CLI runs and shows version', () => { + const output = execSync('node bin/cli.js --version').toString(); + expect(output.trim()).toMatch(/\\d+\\.\\d+\\.\\d+/); // Matches a version format + }); + + test('CLI handles missing arguments', () => { + const output = execSync('node bin/cli.js').toString(); + expect(output).toContain('React Crafter CLI'); + }); +}); diff --git a/jest.config.js b/jest.config.js index 53b619e..8b274f9 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,7 +1,8 @@ module.exports = { - testEnvironment: 'node', // Set up the environment (node, jsdom, etc.) - verbose: true, // Show detailed test results - coverageDirectory: 'coverage', // Directory for code coverage reports - collectCoverage: true, // Collect coverage information - coverageReporters: ['text', 'lcov'], // Reporters for coverage + preset: 'ts-jest', + roots: ['/src', '/bin'], + testEnvironment: 'node', + roots: ['/'], + testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.[tj]sx?$', + moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], }; diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 93d8a93..5a6a6a1 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,6 +1,6 @@ { "name": "react-crafter", - "version": "1.0.2", + "version": "1.1.3", "lockfileVersion": 3, "requires": true, "packages": { @@ -19,13 +19,14 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -33,9 +34,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", - "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "license": "MIT", "engines": { @@ -43,22 +44,22 @@ } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -74,58 +75,59 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", - "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.0", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", - "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -134,18 +136,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", - "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.0", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", "semver": "^6.3.1" }, "engines": { @@ -156,14 +158,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", - "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", "semver": "^6.3.1" }, "engines": { @@ -174,9 +176,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", - "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", "dev": true, "license": "MIT", "dependencies": { @@ -191,44 +193,43 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", - "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -238,22 +239,22 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", - "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "license": "MIT", "engines": { @@ -261,15 +262,15 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", - "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-wrap-function": "^7.25.0", - "@babel/traverse": "^7.25.0" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -279,15 +280,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", - "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -297,37 +298,37 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", - "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "license": "MIT", "engines": { @@ -335,9 +336,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "license": "MIT", "engines": { @@ -345,9 +346,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "license": "MIT", "engines": { @@ -355,126 +356,42 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", - "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", - "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.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, - "license": "MIT", - "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, - "license": "MIT", - "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, - "license": "MIT", - "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, - "license": "MIT" - }, - "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, - "license": "MIT", - "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, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/parser": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", - "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.2" + "@babel/types": "^7.26.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -484,14 +401,14 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", - "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.3" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -501,13 +418,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", - "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -517,13 +434,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", - "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -533,15 +450,15 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", - "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -551,14 +468,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", - "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -635,40 +552,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", - "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -678,13 +569,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", - "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -720,13 +611,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -846,13 +737,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", - "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -879,13 +770,13 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", - "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -895,16 +786,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", - "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-remap-async-to-generator": "^7.25.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/traverse": "^7.25.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -914,15 +804,15 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", - "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -932,13 +822,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", - "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -948,13 +838,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", - "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -964,14 +854,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", - "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -981,15 +871,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", - "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -999,17 +888,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", - "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/traverse": "^7.25.0", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", "globals": "^11.1.0" }, "engines": { @@ -1020,14 +909,14 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", - "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/template": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1037,13 +926,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", - "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1053,14 +942,14 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", - "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1070,13 +959,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", - "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1086,14 +975,14 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", - "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1103,14 +992,13 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", - "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1120,14 +1008,14 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", - "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1137,14 +1025,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", - "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1154,14 +1041,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", - "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1171,15 +1058,15 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", - "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.1" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1189,14 +1076,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", - "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1206,13 +1092,13 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", - "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1222,14 +1108,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", - "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1239,13 +1124,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", - "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1255,14 +1140,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", - "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1272,15 +1157,15 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", - "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-simple-access": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1290,16 +1175,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", - "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1309,14 +1194,14 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", - "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1326,14 +1211,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", - "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1343,13 +1228,13 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", - "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1359,14 +1244,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", - "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1376,14 +1260,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", - "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1393,16 +1276,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", - "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.7" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1412,14 +1294,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", - "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1429,14 +1311,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", - "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1446,15 +1327,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", - "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1464,13 +1344,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", - "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1480,14 +1360,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", - "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1497,16 +1377,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", - "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1516,13 +1395,13 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", - "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1532,13 +1411,13 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1548,17 +1427,17 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz", - "integrity": "sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.25.2" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1568,13 +1447,13 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1584,14 +1463,14 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1601,13 +1480,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", - "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.9", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1617,14 +1496,31 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", - "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1634,13 +1530,13 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", - "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1650,14 +1546,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", - "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1667,13 +1563,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", - "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1683,13 +1579,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", - "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1699,13 +1595,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", - "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1715,17 +1611,17 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", - "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", + "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-typescript": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1735,13 +1631,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", - "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1751,14 +1647,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", - "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1768,14 +1664,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", - "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1785,14 +1681,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", - "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1802,94 +1698,80 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", - "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-option": "^7.24.8", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.7", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.0", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.24.7", - "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.25.0", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-dotall-regex": "^7.24.7", - "@babel/plugin-transform-duplicate-keys": "^7.24.7", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", - "@babel/plugin-transform-dynamic-import": "^7.24.7", - "@babel/plugin-transform-exponentiation-operator": "^7.24.7", - "@babel/plugin-transform-export-namespace-from": "^7.24.7", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-member-expression-literals": "^7.24.7", - "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-modules-systemjs": "^7.25.0", - "@babel/plugin-transform-modules-umd": "^7.24.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-new-target": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-object-super": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-property-literals": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-reserved-words": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.8", - "@babel/plugin-transform-unicode-escapes": "^7.24.7", - "@babel/plugin-transform-unicode-property-regex": "^7.24.7", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.37.1", + "core-js-compat": "^3.38.1", "semver": "^6.3.1" }, "engines": { @@ -1915,18 +1797,18 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz", + "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1936,17 +1818,17 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", - "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", - "@babel/plugin-transform-typescript": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1955,17 +1837,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/runtime": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", - "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "dev": true, "license": "MIT", "dependencies": { @@ -1976,32 +1851,32 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", - "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/parser": "^7.25.3", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2010,15 +1885,14 @@ } }, "node_modules/@babel/types": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", - "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2032,18 +1906,18 @@ "license": "MIT" }, "node_modules/@commitlint/cli": { - "version": "19.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.4.0.tgz", - "integrity": "sha512-sJX4J9UioVwZHq7JWM9tjT5bgWYaIN3rC4FP7YwfEwBYiIO+wMyRttRvQLNkow0vCdM0D67r9NEWU0Ui03I4Eg==", + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.6.0.tgz", + "integrity": "sha512-v17BgGD9w5KnthaKxXnEg6KLq6DYiAxyiN44TpiRtqyW8NSq+Kx99mkEG8Qo6uu6cI5eMzMojW2muJxjmPnF8w==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/format": "^19.3.0", - "@commitlint/lint": "^19.2.2", - "@commitlint/load": "^19.4.0", - "@commitlint/read": "^19.4.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1", + "@commitlint/format": "^19.5.0", + "@commitlint/lint": "^19.6.0", + "@commitlint/load": "^19.5.0", + "@commitlint/read": "^19.5.0", + "@commitlint/types": "^19.5.0", + "tinyexec": "^0.3.0", "yargs": "^17.0.0" }, "bin": { @@ -2053,158 +1927,14 @@ "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@commitlint/cli/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/@commitlint/cli/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@commitlint/cli/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@commitlint/config-conventional": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.2.2.tgz", - "integrity": "sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==", + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.6.0.tgz", + "integrity": "sha512-DJT40iMnTYtBtUfw9ApbsLZFke1zKh6llITVJ+x9mtpHD08gsNXaIRqHTmwTZL3dNX5+WoyK7pCN/5zswvkBCQ==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "conventional-changelog-conventionalcommits": "^7.0.2" }, "engines": { @@ -2212,51 +1942,27 @@ } }, "node_modules/@commitlint/config-validator": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.0.3.tgz", - "integrity": "sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.5.0.tgz", + "integrity": "sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "ajv": "^8.11.0" }, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/config-validator/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@commitlint/config-validator/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, "node_modules/@commitlint/ensure": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.0.3.tgz", - "integrity": "sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.5.0.tgz", + "integrity": "sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "lodash.camelcase": "^4.3.0", "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", @@ -2268,9 +1974,9 @@ } }, "node_modules/@commitlint/execute-rule": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.0.0.tgz", - "integrity": "sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz", + "integrity": "sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==", "dev": true, "license": "MIT", "engines": { @@ -2278,13 +1984,13 @@ } }, "node_modules/@commitlint/format": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.3.0.tgz", - "integrity": "sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.5.0.tgz", + "integrity": "sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "chalk": "^5.3.0" }, "engines": { @@ -2305,13 +2011,13 @@ } }, "node_modules/@commitlint/is-ignored": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.2.2.tgz", - "integrity": "sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==", + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.6.0.tgz", + "integrity": "sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "semver": "^7.6.0" }, "engines": { @@ -2332,32 +2038,32 @@ } }, "node_modules/@commitlint/lint": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.2.2.tgz", - "integrity": "sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==", + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.6.0.tgz", + "integrity": "sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/is-ignored": "^19.2.2", - "@commitlint/parse": "^19.0.3", - "@commitlint/rules": "^19.0.3", - "@commitlint/types": "^19.0.3" + "@commitlint/is-ignored": "^19.6.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/rules": "^19.6.0", + "@commitlint/types": "^19.5.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/load": { - "version": "19.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.4.0.tgz", - "integrity": "sha512-I4lCWaEZYQJ1y+Y+gdvbGAx9pYPavqZAZ3/7/8BpWh+QjscAn8AjsUpLV2PycBsEx7gupq5gM4BViV9xwTIJuw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.5.0.tgz", + "integrity": "sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/config-validator": "^19.0.3", - "@commitlint/execute-rule": "^19.0.0", - "@commitlint/resolve-extends": "^19.1.0", - "@commitlint/types": "^19.0.3", + "@commitlint/config-validator": "^19.5.0", + "@commitlint/execute-rule": "^19.5.0", + "@commitlint/resolve-extends": "^19.5.0", + "@commitlint/types": "^19.5.0", "chalk": "^5.3.0", "cosmiconfig": "^9.0.0", "cosmiconfig-typescript-loader": "^5.0.0", @@ -2383,9 +2089,9 @@ } }, "node_modules/@commitlint/message": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.0.0.tgz", - "integrity": "sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.5.0.tgz", + "integrity": "sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==", "dev": true, "license": "MIT", "engines": { @@ -2393,13 +2099,13 @@ } }, "node_modules/@commitlint/parse": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.0.3.tgz", - "integrity": "sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.5.0.tgz", + "integrity": "sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "conventional-changelog-angular": "^7.0.0", "conventional-commits-parser": "^5.0.0" }, @@ -2408,175 +2114,31 @@ } }, "node_modules/@commitlint/read": { - "version": "19.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.4.0.tgz", - "integrity": "sha512-r95jLOEZzKDakXtnQub+zR3xjdnrl2XzerPwm7ch1/cc5JGq04tyaNpa6ty0CRCWdVrk4CZHhqHozb8yZwy2+g==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.5.0.tgz", + "integrity": "sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/top-level": "^19.0.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1", + "@commitlint/top-level": "^19.5.0", + "@commitlint/types": "^19.5.0", "git-raw-commits": "^4.0.0", - "minimist": "^1.2.8" + "minimist": "^1.2.8", + "tinyexec": "^0.3.0" }, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/read/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@commitlint/read/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/read/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/@commitlint/read/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/read/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/read/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/read/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/read/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/read/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@commitlint/read/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@commitlint/resolve-extends": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.1.0.tgz", - "integrity": "sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz", + "integrity": "sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/config-validator": "^19.0.3", - "@commitlint/types": "^19.0.3", + "@commitlint/config-validator": "^19.5.0", + "@commitlint/types": "^19.5.0", "global-directory": "^4.0.1", "import-meta-resolve": "^4.0.0", "lodash.mergewith": "^4.6.2", @@ -2587,170 +2149,25 @@ } }, "node_modules/@commitlint/rules": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.0.3.tgz", - "integrity": "sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==", + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.6.0.tgz", + "integrity": "sha512-1f2reW7lbrI0X0ozZMesS/WZxgPa4/wi56vFuJENBmed6mWq5KsheN/nxqnl/C23ioxpPO/PL6tXpiiFy5Bhjw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/ensure": "^19.0.3", - "@commitlint/message": "^19.0.0", - "@commitlint/to-lines": "^19.0.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1" + "@commitlint/ensure": "^19.5.0", + "@commitlint/message": "^19.5.0", + "@commitlint/to-lines": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/rules/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@commitlint/rules/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/@commitlint/rules/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@commitlint/rules/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@commitlint/to-lines": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.0.0.tgz", - "integrity": "sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.5.0.tgz", + "integrity": "sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==", "dev": true, "license": "MIT", "engines": { @@ -2758,9 +2175,9 @@ } }, "node_modules/@commitlint/top-level": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.0.0.tgz", - "integrity": "sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.5.0.tgz", + "integrity": "sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==", "dev": true, "license": "MIT", "dependencies": { @@ -2770,99 +2187,10 @@ "node": ">=v18" } }, - "node_modules/@commitlint/top-level/node_modules/find-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", - "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^7.2.0", - "path-exists": "^5.0.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/@commitlint/top-level/node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@commitlint/types": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.0.3.tgz", - "integrity": "sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.5.0.tgz", + "integrity": "sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==", "dev": true, "license": "MIT", "dependencies": { @@ -2921,9 +2249,9 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.48.0.tgz", - "integrity": "sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.49.0.tgz", + "integrity": "sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2936,17 +2264,20 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } @@ -2965,9 +2296,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -2975,9 +2306,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", - "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", + "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2989,10 +2320,20 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", + "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", "dependencies": { @@ -3013,12 +2354,22 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "Python-2.0" + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "14.0.0", @@ -3033,23 +2384,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } + "license": "MIT" }, "node_modules/@eslint/js": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", - "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz", + "integrity": "sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==", "dev": true, "license": "MIT", "engines": { @@ -3066,6 +2411,57 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -3081,9 +2477,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", - "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3111,6 +2507,96 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -3539,44 +3025,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/@pkgr/core": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", @@ -3701,9 +3149,9 @@ } }, "node_modules/@types/eslint": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz", - "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, "license": "MIT", "dependencies": { @@ -3723,9 +3171,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, "license": "MIT" }, @@ -3767,9 +3215,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3785,13 +3233,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.2.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.2.0.tgz", - "integrity": "sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==", + "version": "22.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.3.tgz", + "integrity": "sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.13.0" + "undici-types": "~6.19.8" } }, "node_modules/@types/stack-utils": { @@ -3819,73 +3267,73 @@ "license": "MIT" }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, "license": "MIT", "dependencies": { @@ -3893,9 +3341,9 @@ } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3903,79 +3351,79 @@ } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -4033,9 +3481,9 @@ "license": "Apache-2.0" }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -4045,16 +3493,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -4066,9 +3504,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", - "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, "license": "MIT", "dependencies": { @@ -4079,16 +3517,16 @@ } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -4170,14 +3608,11 @@ "license": "MIT" }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "license": "Python-2.0" }, "node_modules/array-ify": { "version": "1.0.0", @@ -4186,6 +3621,13 @@ "dev": true, "license": "MIT" }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -4209,14 +3651,14 @@ } }, "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", "dev": true, "license": "MIT", "dependencies": { "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", + "loader-utils": "^2.0.4", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, @@ -4279,14 +3721,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", + "@babel/helper-define-polyfill-provider": "^0.6.3", "semver": "^6.3.1" }, "peerDependencies": { @@ -4308,37 +3750,40 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" + "@babel/helper-define-polyfill-provider": "^0.6.3" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.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==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "dev": true, "license": "MIT", "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-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -4434,9 +3879,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -4454,10 +3899,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -4466,6 +3911,19 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", @@ -4528,9 +3986,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001651", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", - "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "version": "1.0.30001683", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001683.tgz", + "integrity": "sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==", "dev": true, "funding": [ { @@ -4607,9 +4065,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", "dev": true, "license": "MIT" }, @@ -4870,13 +4328,13 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.38.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz", - "integrity": "sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==", + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.23.3" + "browserslist": "^4.24.2" }, "funding": { "type": "opencollective", @@ -4911,13 +4369,13 @@ } }, "node_modules/cosmiconfig-typescript-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", - "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.1.0.tgz", + "integrity": "sha512-7PtBB+6FdsOvZyJtlF3hEPpACq7RQX6BVGsgC7/lfVXnKMvNCu/XY3ykreqG5w/rBNdu2z8LCIKoF3kpHHdHlA==", "dev": true, "license": "MIT", "dependencies": { - "jiti": "^1.19.1" + "jiti": "^1.21.6" }, "engines": { "node": ">=v16" @@ -4928,26 +4386,6 @@ "typescript": ">=4" } }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -4978,9 +4416,9 @@ "license": "MIT" }, "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==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -5020,6 +4458,30 @@ "webpack": "^4.27.0 || ^5.0.0" } }, + "node_modules/css-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/css-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -5079,13 +4541,13 @@ } }, "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -5219,10 +4681,26 @@ "webpack": "^4 || ^5" } }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron-to-chromium": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.6.tgz", - "integrity": "sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==", + "version": "1.5.64", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.64.tgz", + "integrity": "sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==", "dev": true, "license": "ISC" }, @@ -5281,9 +4759,9 @@ } }, "node_modules/envinfo": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", - "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", "dev": true, "license": "MIT", "bin": { @@ -5311,9 +4789,9 @@ "license": "MIT" }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "engines": { @@ -5321,37 +4799,45 @@ } }, "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz", - "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==", + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.15.0.tgz", + "integrity": "sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.17.1", - "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.9.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.15.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.0", - "@nodelib/fs.walk": "^1.2.8", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.5", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.0.2", - "eslint-visitor-keys": "^4.0.0", - "espree": "^10.1.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -5361,15 +4847,11 @@ "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" @@ -5403,13 +4885,13 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "50.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.2.1.tgz", - "integrity": "sha512-KbGhcct6JxzM0x1gjqH1hf4vvc+YNMag5JXyMuPFIPP9THWctRg3UgBUjNcI6a6Rw+1GdKeJ3vTmSICLVF0mtw==", + "version": "50.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.5.0.tgz", + "integrity": "sha512-xTkshfZrUbiSHXBwZ/9d5ulZ2OcHXxSvm/NPo494H/hadLRJwOq5PMV0EUpMqsb9V+kQo+9BAgi6Z7aJtdBp2A==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.48.0", + "@es-joy/jsdoccomment": "~0.49.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.6", @@ -5428,19 +4910,6 @@ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint-plugin-jsdoc/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -5486,59 +4955,9 @@ } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/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, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", - "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -5552,14 +4971,34 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "BSD-2-Clause", + "license": "Apache-2.0", "engines": { - "node": ">=4.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/eslint/node_modules/find-up": { @@ -5579,6 +5018,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/eslint/node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5611,29 +5057,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/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==", + "node_modules/eslint/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, "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { "node": ">=8" } }, "node_modules/espree": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", - "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.12.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5669,16 +5112,6 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -5692,7 +5125,7 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", @@ -5702,16 +5135,6 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -5824,11 +5247,11 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -5840,16 +5263,6 @@ "node": ">= 4.9.1" } }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", @@ -5872,6 +5285,15 @@ "node": ">=4" } }, + "node_modules/figures/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==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -5885,6 +5307,39 @@ "node": ">=16.0.0" } }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -5917,17 +5372,21 @@ } }, "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==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat": { @@ -5955,9 +5414,9 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, "license": "ISC" }, @@ -6180,9 +5639,9 @@ } }, "node_modules/husky": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.4.tgz", - "integrity": "sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==", + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true, "license": "MIT", "bin": { @@ -6411,6 +5870,15 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "license": "MIT" }, + "node_modules/inquirer/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==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/inquirer/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -6450,9 +5918,9 @@ "license": "MIT" }, "node_modules/is-core-module": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", - "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6536,16 +6004,6 @@ "node": ">=8" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -6725,6 +6183,25 @@ "node": ">=8" } }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", @@ -7355,14 +6832,13 @@ "license": "MIT" }, "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==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -7379,16 +6855,16 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { @@ -7406,9 +6882,9 @@ "license": "MIT" }, "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, "license": "MIT" }, @@ -7568,16 +7044,19 @@ } }, "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==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -7614,6 +7093,13 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -7735,9 +7221,9 @@ "license": "MIT" }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { @@ -7814,9 +7300,9 @@ } }, "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==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, @@ -8033,29 +7519,45 @@ } }, "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==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8085,11 +7587,11 @@ } }, "node_modules/parse-imports": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.1.1.tgz", - "integrity": "sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz", + "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==", "dev": true, - "license": "Apache-2.0", + "license": "Apache-2.0 AND MIT", "dependencies": { "es-module-lexer": "^1.5.3", "slashes": "^3.0.12" @@ -8118,13 +7620,13 @@ } }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/path-is-absolute": { @@ -8154,9 +7656,9 @@ "license": "MIT" }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, @@ -8196,10 +7698,76 @@ "node": ">=8" } }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/postcss": { - "version": "8.4.41", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -8218,8 +7786,8 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -8239,14 +7807,14 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", - "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz", + "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==", "dev": true, "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -8257,13 +7825,13 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" @@ -8289,9 +7857,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8450,6 +8018,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/pretty-quick/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/pretty-quick/node_modules/picomatch": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", @@ -8463,13 +8041,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pretty-quick/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "dev": true, - "license": "0BSD" - }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -8511,27 +8082,6 @@ ], "license": "MIT" }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -8542,10 +8092,6 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/react-crafter": { - "resolved": "", - "link": true - }, "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", @@ -8588,9 +8134,9 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, "license": "MIT", "dependencies": { @@ -8618,16 +8164,16 @@ } }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -8635,28 +8181,26 @@ "node": ">=4" } }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -8762,17 +8306,6 @@ "node": ">=4" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -8782,30 +8315,6 @@ "node": ">=0.12.0" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -8818,6 +8327,12 @@ "npm": ">=2.0.0" } }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -8898,6 +8413,30 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -8993,9 +8532,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -9032,9 +8571,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.18", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", - "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", "dev": true, "license": "CC0-1.0" }, @@ -9223,6 +8762,30 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/style-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/style-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/style-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -9268,9 +8831,9 @@ } }, "node_modules/synckit": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", "dev": true, "license": "MIT", "dependencies": { @@ -9284,13 +8847,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/synckit/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "dev": true, - "license": "0BSD" - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -9302,9 +8858,9 @@ } }, "node_modules/terser": { - "version": "5.31.5", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.5.tgz", - "integrity": "sha512-YPmas0L0rE1UyLL/llTWA0SiDOqIcAQYLeUj7cJYzXHlRTAnMSg9pPe4VJ5PlKvTrPQsdVFuiRiwyeNlYgwh2Q==", + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -9355,6 +8911,23 @@ } } }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -9370,6 +8943,13 @@ "node": ">= 10.13.0" } }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -9451,19 +9031,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "license": "MIT" }, + "node_modules/tinyexec": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "dev": true, + "license": "MIT" + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -9483,16 +9063,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "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, - "license": "MIT", - "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", @@ -9506,6 +9076,68 @@ "node": ">=8.0" } }, + "node_modules/ts-jest": { + "version": "29.2.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", + "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.6.3", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", @@ -9551,9 +9183,10 @@ } }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, "license": "0BSD" }, "node_modules/type-check": { @@ -9593,16 +9226,16 @@ } }, "node_modules/undici-types": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz", - "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==", + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true, "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, "license": "MIT", "engines": { @@ -9624,9 +9257,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, "license": "MIT", "engines": { @@ -9666,9 +9299,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -9686,8 +9319,8 @@ ], "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -9745,9 +9378,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, "license": "MIT", "dependencies": { @@ -9768,22 +9401,21 @@ } }, "node_modules/webpack": { - "version": "5.93.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", - "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", "dev": true, "license": "MIT", "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -9888,6 +9520,54 @@ "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", diff --git a/node_modules/@babel/code-frame/lib/index.js b/node_modules/@babel/code-frame/lib/index.js index 53461aa..b409f30 100644 --- a/node_modules/@babel/code-frame/lib/index.js +++ b/node_modules/@babel/code-frame/lib/index.js @@ -1,33 +1,94 @@ -"use strict"; +'use strict'; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.codeFrameColumns = codeFrameColumns; -exports.default = _default; -var _highlight = require("@babel/highlight"); -var _picocolors = _interopRequireWildcard(require("picocolors"), true); -function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } -function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } -const colors = typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? (0, _picocolors.createColors)(false) : _picocolors.default; -const compose = (f, g) => v => f(g(v)); -let pcWithForcedColor = undefined; -function getColors(forceColor) { - if (forceColor) { - var _pcWithForcedColor; - (_pcWithForcedColor = pcWithForcedColor) != null ? _pcWithForcedColor : pcWithForcedColor = (0, _picocolors.createColors)(true); - return pcWithForcedColor; - } - return colors; +Object.defineProperty(exports, '__esModule', { value: true }); + +var picocolors = require('picocolors'); +var jsTokens = require('js-tokens'); +var helperValidatorIdentifier = require('@babel/helper-validator-identifier'); + +function isColorSupported() { + return (typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? false : picocolors.isColorSupported + ); } -let deprecationWarningShown = false; -function getDefs(colors) { +const compose = (f, g) => v => f(g(v)); +function buildDefs(colors) { return { + keyword: colors.cyan, + capitalized: colors.yellow, + jsxIdentifier: colors.yellow, + punctuator: colors.yellow, + number: colors.magenta, + string: colors.green, + regex: colors.magenta, + comment: colors.gray, + invalid: compose(compose(colors.white, colors.bgRed), colors.bold), gutter: colors.gray, marker: compose(colors.red, colors.bold), - message: compose(colors.red, colors.bold) + message: compose(colors.red, colors.bold), + reset: colors.reset }; } +const defsOn = buildDefs(picocolors.createColors(true)); +const defsOff = buildDefs(picocolors.createColors(false)); +function getDefs(enabled) { + return enabled ? defsOn : defsOff; +} + +const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); +const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/; +const BRACKET = /^[()[\]{}]$/; +let tokenize; +{ + const JSX_TAG = /^[a-z][\w-]*$/i; + const getTokenType = function (token, offset, text) { + if (token.type === "name") { + if (helperValidatorIdentifier.isKeyword(token.value) || helperValidatorIdentifier.isStrictReservedWord(token.value, true) || sometimesKeywords.has(token.value)) { + return "keyword"; + } + if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === " defs[type](str)).join("\n"); + } else { + highlighted += value; + } + } + return highlighted; +} + +let deprecationWarningShown = false; const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; function getMarkerLines(loc, source, opts) { const startLoc = Object.assign({ @@ -86,12 +147,8 @@ function getMarkerLines(loc, source, opts) { }; } function codeFrameColumns(rawLines, loc, opts = {}) { - const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); - const colors = getColors(opts.forceColor); - const defs = getDefs(colors); - const maybeHighlight = (fmt, string) => { - return highlighted ? fmt(string) : string; - }; + const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode; + const defs = getDefs(shouldHighlight); const lines = rawLines.split(NEWLINE); const { start, @@ -100,7 +157,7 @@ function codeFrameColumns(rawLines, loc, opts = {}) { } = 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; + const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines; let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { const number = start + 1 + index; const paddedNumber = ` ${number}`.slice(-numberMaxWidth); @@ -112,26 +169,26 @@ function codeFrameColumns(rawLines, loc, opts = {}) { 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(""); + markerLine = ["\n ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join(""); if (lastMarkerLine && opts.message) { - markerLine += " " + maybeHighlight(defs.message, opts.message); + markerLine += " " + defs.message(opts.message); } } - return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); + return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); } else { - return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`; + return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`; } }).join("\n"); if (opts.message && !hasColumns) { frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; } - if (highlighted) { - return colors.reset(frame); + if (shouldHighlight) { + return defs.reset(frame); } else { return frame; } } -function _default(rawLines, lineNumber, colNumber, opts = {}) { +function index (rawLines, lineNumber, colNumber, opts = {}) { if (!deprecationWarningShown) { deprecationWarningShown = true; const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; @@ -153,4 +210,7 @@ function _default(rawLines, lineNumber, colNumber, opts = {}) { return codeFrameColumns(rawLines, location, opts); } +exports.codeFrameColumns = codeFrameColumns; +exports.default = index; +exports.highlight = highlight; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/code-frame/lib/index.js.map b/node_modules/@babel/code-frame/lib/index.js.map index 268f2c5..46a181d 100644 --- a/node_modules/@babel/code-frame/lib/index.js.map +++ b/node_modules/@babel/code-frame/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_highlight","require","_picocolors","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","colors","process","env","FORCE_COLOR","createColors","_colors","compose","f","g","v","pcWithForcedColor","undefined","getColors","forceColor","_pcWithForcedColor","deprecationWarningShown","getDefs","gutter","gray","marker","red","bold","message","NEWLINE","getMarkerLines","loc","source","opts","startLoc","assign","column","line","start","endLoc","end","linesAbove","linesBelow","startLine","startColumn","endLine","endColumn","Math","max","min","length","lineDiff","markerLines","lineNumber","sourceLength","codeFrameColumns","rawLines","highlighted","highlightCode","shouldHighlight","defs","maybeHighlight","fmt","string","lines","split","hasColumns","numberMaxWidth","String","highlightedLines","highlight","frame","slice","map","index","number","paddedNumber","hasMarker","lastMarkerLine","markerLine","Array","isArray","markerSpacing","replace","numberOfMarkers","repeat","join","reset","_default","colNumber","emitWarning","deprecationError","Error","name","console","warn","location"],"sources":["../src/index.ts"],"sourcesContent":["import highlight, { shouldHighlight } from \"@babel/highlight\";\n\nimport _colors, { createColors } from \"picocolors\";\nimport type { Colors, Formatter } from \"picocolors/types\";\n// See https://github.com/alexeyraspopov/picocolors/issues/62\nconst colors =\n typeof process === \"object\" &&\n (process.env.FORCE_COLOR === \"0\" || process.env.FORCE_COLOR === \"false\")\n ? createColors(false)\n : _colors;\n\nconst compose: (f: (gv: U) => V, g: (v: T) => U) => (v: T) => V =\n (f, g) => v =>\n f(g(v));\n\nlet pcWithForcedColor: Colors = undefined;\nfunction getColors(forceColor: boolean) {\n if (forceColor) {\n pcWithForcedColor ??= createColors(true);\n return pcWithForcedColor;\n }\n return colors;\n}\n\nlet deprecationWarningShown = false;\n\ntype Location = {\n column: number;\n line: number;\n};\n\ntype NodeLocation = {\n end?: Location;\n start: Location;\n};\n\nexport interface Options {\n /** Syntax highlight the code as JavaScript for terminals. default: false */\n highlightCode?: boolean;\n /** The number of lines to show above the error. default: 2 */\n linesAbove?: number;\n /** The number of lines to show below the error. default: 3 */\n linesBelow?: number;\n /**\n * Forcibly syntax highlight the code as JavaScript (for non-terminals);\n * overrides highlightCode.\n * default: false\n */\n forceColor?: boolean;\n /**\n * Pass in a string to be displayed inline (if possible) next to the\n * highlighted location in the code. If it can't be positioned inline,\n * it will be placed above the code frame.\n * default: nothing\n */\n message?: string;\n}\n\n/**\n * Styles for code frame token types.\n */\nfunction getDefs(colors: Colors) {\n return {\n gutter: colors.gray,\n marker: compose(colors.red, colors.bold),\n message: compose(colors.red, colors.bold),\n };\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\n\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * Extract what lines should be marked and highlighted.\n */\n\ntype MarkerLines = Record;\n\nfunction getMarkerLines(\n loc: NodeLocation,\n source: Array,\n opts: Options,\n): {\n start: number;\n end: number;\n markerLines: MarkerLines;\n} {\n const startLoc: Location = {\n column: 0,\n line: -1,\n ...loc.start,\n };\n const endLoc: Location = {\n ...startLoc,\n ...loc.end,\n };\n const { linesAbove = 2, linesBelow = 3 } = opts || {};\n const startLine = startLoc.line;\n const startColumn = startLoc.column;\n const endLine = endLoc.line;\n const endColumn = endLoc.column;\n\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source.length, endLine + linesBelow);\n\n if (startLine === -1) {\n start = 0;\n }\n\n if (endLine === -1) {\n end = source.length;\n }\n\n const lineDiff = endLine - startLine;\n const markerLines: MarkerLines = {};\n\n if (lineDiff) {\n for (let i = 0; i <= lineDiff; i++) {\n const lineNumber = i + startLine;\n\n if (!startColumn) {\n markerLines[lineNumber] = true;\n } else if (i === 0) {\n const sourceLength = source[lineNumber - 1].length;\n\n markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];\n } else if (i === lineDiff) {\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source[lineNumber - i].length;\n\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else {\n if (startColumn === endColumn) {\n if (startColumn) {\n markerLines[startLine] = [startColumn, 0];\n } else {\n markerLines[startLine] = true;\n }\n } else {\n markerLines[startLine] = [startColumn, endColumn - startColumn];\n }\n }\n\n return { start, end, markerLines };\n}\n\nexport function codeFrameColumns(\n rawLines: string,\n loc: NodeLocation,\n opts: Options = {},\n): string {\n const highlighted =\n (opts.highlightCode || opts.forceColor) && shouldHighlight(opts);\n const colors = getColors(opts.forceColor);\n const defs = getDefs(colors);\n const maybeHighlight = (fmt: Formatter, string: string) => {\n return highlighted ? fmt(string) : string;\n };\n const lines = rawLines.split(NEWLINE);\n const { start, end, markerLines } = getMarkerLines(loc, lines, opts);\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n const numberMaxWidth = String(end).length;\n\n const highlightedLines = highlighted ? highlight(rawLines, opts) : rawLines;\n\n let frame = highlightedLines\n .split(NEWLINE, end)\n .slice(start, end)\n .map((line, index) => {\n const number = start + 1 + index;\n const paddedNumber = ` ${number}`.slice(-numberMaxWidth);\n const gutter = ` ${paddedNumber} |`;\n const hasMarker = markerLines[number];\n const lastMarkerLine = !markerLines[number + 1];\n if (hasMarker) {\n let markerLine = \"\";\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line\n .slice(0, Math.max(hasMarker[0] - 1, 0))\n .replace(/[^\\t]/g, \" \");\n const numberOfMarkers = hasMarker[1] || 1;\n\n markerLine = [\n \"\\n \",\n maybeHighlight(defs.gutter, gutter.replace(/\\d/g, \" \")),\n \" \",\n markerSpacing,\n maybeHighlight(defs.marker, \"^\").repeat(numberOfMarkers),\n ].join(\"\");\n\n if (lastMarkerLine && opts.message) {\n markerLine += \" \" + maybeHighlight(defs.message, opts.message);\n }\n }\n return [\n maybeHighlight(defs.marker, \">\"),\n maybeHighlight(defs.gutter, gutter),\n line.length > 0 ? ` ${line}` : \"\",\n markerLine,\n ].join(\"\");\n } else {\n return ` ${maybeHighlight(defs.gutter, gutter)}${\n line.length > 0 ? ` ${line}` : \"\"\n }`;\n }\n })\n .join(\"\\n\");\n\n if (opts.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${opts.message}\\n${frame}`;\n }\n\n if (highlighted) {\n return colors.reset(frame);\n } else {\n return frame;\n }\n}\n\n/**\n * Create a code frame, adding line numbers, code highlighting, and pointing to a given position.\n */\n\nexport default function (\n rawLines: string,\n lineNumber: number,\n colNumber?: number | null,\n opts: Options = {},\n): string {\n if (!deprecationWarningShown) {\n deprecationWarningShown = true;\n\n const message =\n \"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";\n\n if (process.emitWarning) {\n // A string is directly supplied to emitWarning, because when supplying an\n // Error object node throws in the tests because of different contexts\n process.emitWarning(message, \"DeprecationWarning\");\n } else {\n const deprecationError = new Error(message);\n deprecationError.name = \"DeprecationWarning\";\n console.warn(new Error(message));\n }\n }\n\n colNumber = Math.max(colNumber, 0);\n\n const location: NodeLocation = {\n start: { column: colNumber, line: lineNumber },\n };\n\n return codeFrameColumns(rawLines, location, opts);\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/defs.ts","../src/highlight.ts","../src/index.ts"],"sourcesContent":["import picocolors, { createColors } from \"picocolors\";\nimport type { Colors, Formatter } from \"picocolors/types\";\n\nexport function isColorSupported() {\n return (\n // See https://github.com/alexeyraspopov/picocolors/issues/62\n typeof process === \"object\" &&\n (process.env.FORCE_COLOR === \"0\" || process.env.FORCE_COLOR === \"false\")\n ? false\n : picocolors.isColorSupported\n );\n}\n\nexport type InternalTokenType =\n | \"keyword\"\n | \"capitalized\"\n | \"jsxIdentifier\"\n | \"punctuator\"\n | \"number\"\n | \"string\"\n | \"regex\"\n | \"comment\"\n | \"invalid\";\n\ntype UITokens = \"gutter\" | \"marker\" | \"message\";\n\nexport type Defs = {\n [_ in InternalTokenType | UITokens | \"reset\"]: Formatter;\n};\n\nconst compose: (f: (gv: U) => V, g: (v: T) => U) => (v: T) => V =\n (f, g) => v =>\n f(g(v));\n\n/**\n * Styles for token types.\n */\nfunction buildDefs(colors: Colors): Defs {\n return {\n keyword: colors.cyan,\n capitalized: colors.yellow,\n jsxIdentifier: colors.yellow,\n punctuator: colors.yellow,\n number: colors.magenta,\n string: colors.green,\n regex: colors.magenta,\n comment: colors.gray,\n invalid: compose(compose(colors.white, colors.bgRed), colors.bold),\n\n gutter: colors.gray,\n marker: compose(colors.red, colors.bold),\n message: compose(colors.red, colors.bold),\n\n reset: colors.reset,\n };\n}\n\nconst defsOn = buildDefs(createColors(true));\nconst defsOff = buildDefs(createColors(false));\n\nexport function getDefs(enabled: boolean): Defs {\n return enabled ? defsOn : defsOff;\n}\n","import type { Token as JSToken, JSXToken } from \"js-tokens\";\nimport jsTokens from \"js-tokens\";\n\nimport {\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nimport { getDefs, type InternalTokenType } from \"./defs.ts\";\n\n/**\n * Names that are always allowed as identifiers, but also appear as keywords\n * within certain syntactic productions.\n *\n * https://tc39.es/ecma262/#sec-keywords-and-reserved-words\n *\n * `target` has been omitted since it is very likely going to be a false\n * positive.\n */\nconst sometimesKeywords = new Set([\"as\", \"async\", \"from\", \"get\", \"of\", \"set\"]);\n\ntype Token = {\n type: InternalTokenType | \"uncolored\";\n value: string;\n};\n\n/**\n * RegExp to test for newlines in terminal.\n */\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * RegExp to test for the three types of brackets.\n */\nconst BRACKET = /^[()[\\]{}]$/;\n\nlet tokenize: (\n text: string,\n) => Generator<{ type: InternalTokenType | \"uncolored\"; value: string }>;\n\nif (process.env.BABEL_8_BREAKING) {\n /**\n * Get the type of token, specifying punctuator type.\n */\n const getTokenType = function (\n token: JSToken | JSXToken,\n ): InternalTokenType | \"uncolored\" {\n if (token.type === \"IdentifierName\") {\n if (\n isKeyword(token.value) ||\n isStrictReservedWord(token.value, true) ||\n sometimesKeywords.has(token.value)\n ) {\n return \"keyword\";\n }\n\n if (token.value[0] !== token.value[0].toLowerCase()) {\n return \"capitalized\";\n }\n }\n\n if (token.type === \"Punctuator\" && BRACKET.test(token.value)) {\n return \"uncolored\";\n }\n\n if (token.type === \"Invalid\" && token.value === \"@\") {\n return \"punctuator\";\n }\n\n switch (token.type) {\n case \"NumericLiteral\":\n return \"number\";\n\n case \"StringLiteral\":\n case \"JSXString\":\n case \"NoSubstitutionTemplate\":\n return \"string\";\n\n case \"RegularExpressionLiteral\":\n return \"regex\";\n\n case \"Punctuator\":\n case \"JSXPunctuator\":\n return \"punctuator\";\n\n case \"MultiLineComment\":\n case \"SingleLineComment\":\n return \"comment\";\n\n case \"Invalid\":\n case \"JSXInvalid\":\n return \"invalid\";\n\n case \"JSXIdentifier\":\n return \"jsxIdentifier\";\n\n default:\n return \"uncolored\";\n }\n };\n\n /**\n * Turn a string of JS into an array of objects.\n */\n tokenize = function* (text: string): Generator {\n for (const token of jsTokens(text, { jsx: true })) {\n switch (token.type) {\n case \"TemplateHead\":\n yield { type: \"string\", value: token.value.slice(0, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateMiddle\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateTail\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1) };\n break;\n\n default:\n yield {\n type: getTokenType(token),\n value: token.value,\n };\n }\n }\n };\n} else {\n /**\n * RegExp to test for what seems to be a JSX tag name.\n */\n const JSX_TAG = /^[a-z][\\w-]*$/i;\n\n // The token here is defined in js-tokens@4. However we don't bother\n // typing it since the whole block will be removed in Babel 8\n const getTokenType = function (token: any, offset: number, text: string) {\n if (token.type === \"name\") {\n if (\n isKeyword(token.value) ||\n isStrictReservedWord(token.value, true) ||\n sometimesKeywords.has(token.value)\n ) {\n return \"keyword\";\n }\n\n if (\n JSX_TAG.test(token.value) &&\n (text[offset - 1] === \"<\" || text.slice(offset - 2, offset) === \" defs[type as InternalTokenType](str))\n .join(\"\\n\");\n } else {\n highlighted += value;\n }\n }\n\n return highlighted;\n}\n","import { getDefs, isColorSupported } from \"./defs.ts\";\nimport { highlight } from \"./highlight.ts\";\n\nexport { highlight };\n\nlet deprecationWarningShown = false;\n\ntype Location = {\n column: number;\n line: number;\n};\n\ntype NodeLocation = {\n end?: Location;\n start: Location;\n};\n\nexport interface Options {\n /** Syntax highlight the code as JavaScript for terminals. default: false */\n highlightCode?: boolean;\n /** The number of lines to show above the error. default: 2 */\n linesAbove?: number;\n /** The number of lines to show below the error. default: 3 */\n linesBelow?: number;\n /**\n * Forcibly syntax highlight the code as JavaScript (for non-terminals);\n * overrides highlightCode.\n * default: false\n */\n forceColor?: boolean;\n /**\n * Pass in a string to be displayed inline (if possible) next to the\n * highlighted location in the code. If it can't be positioned inline,\n * it will be placed above the code frame.\n * default: nothing\n */\n message?: string;\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\n\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * Extract what lines should be marked and highlighted.\n */\n\ntype MarkerLines = Record;\n\nfunction getMarkerLines(\n loc: NodeLocation,\n source: Array,\n opts: Options,\n): {\n start: number;\n end: number;\n markerLines: MarkerLines;\n} {\n const startLoc: Location = {\n column: 0,\n line: -1,\n ...loc.start,\n };\n const endLoc: Location = {\n ...startLoc,\n ...loc.end,\n };\n const { linesAbove = 2, linesBelow = 3 } = opts || {};\n const startLine = startLoc.line;\n const startColumn = startLoc.column;\n const endLine = endLoc.line;\n const endColumn = endLoc.column;\n\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source.length, endLine + linesBelow);\n\n if (startLine === -1) {\n start = 0;\n }\n\n if (endLine === -1) {\n end = source.length;\n }\n\n const lineDiff = endLine - startLine;\n const markerLines: MarkerLines = {};\n\n if (lineDiff) {\n for (let i = 0; i <= lineDiff; i++) {\n const lineNumber = i + startLine;\n\n if (!startColumn) {\n markerLines[lineNumber] = true;\n } else if (i === 0) {\n const sourceLength = source[lineNumber - 1].length;\n\n markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];\n } else if (i === lineDiff) {\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source[lineNumber - i].length;\n\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else {\n if (startColumn === endColumn) {\n if (startColumn) {\n markerLines[startLine] = [startColumn, 0];\n } else {\n markerLines[startLine] = true;\n }\n } else {\n markerLines[startLine] = [startColumn, endColumn - startColumn];\n }\n }\n\n return { start, end, markerLines };\n}\n\nexport function codeFrameColumns(\n rawLines: string,\n loc: NodeLocation,\n opts: Options = {},\n): string {\n const shouldHighlight =\n opts.forceColor || (isColorSupported() && opts.highlightCode);\n const defs = getDefs(shouldHighlight);\n\n const lines = rawLines.split(NEWLINE);\n const { start, end, markerLines } = getMarkerLines(loc, lines, opts);\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n const numberMaxWidth = String(end).length;\n\n const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;\n\n let frame = highlightedLines\n .split(NEWLINE, end)\n .slice(start, end)\n .map((line, index) => {\n const number = start + 1 + index;\n const paddedNumber = ` ${number}`.slice(-numberMaxWidth);\n const gutter = ` ${paddedNumber} |`;\n const hasMarker = markerLines[number];\n const lastMarkerLine = !markerLines[number + 1];\n if (hasMarker) {\n let markerLine = \"\";\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line\n .slice(0, Math.max(hasMarker[0] - 1, 0))\n .replace(/[^\\t]/g, \" \");\n const numberOfMarkers = hasMarker[1] || 1;\n\n markerLine = [\n \"\\n \",\n defs.gutter(gutter.replace(/\\d/g, \" \")),\n \" \",\n markerSpacing,\n defs.marker(\"^\").repeat(numberOfMarkers),\n ].join(\"\");\n\n if (lastMarkerLine && opts.message) {\n markerLine += \" \" + defs.message(opts.message);\n }\n }\n return [\n defs.marker(\">\"),\n defs.gutter(gutter),\n line.length > 0 ? ` ${line}` : \"\",\n markerLine,\n ].join(\"\");\n } else {\n return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : \"\"}`;\n }\n })\n .join(\"\\n\");\n\n if (opts.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${opts.message}\\n${frame}`;\n }\n\n if (shouldHighlight) {\n return defs.reset(frame);\n } else {\n return frame;\n }\n}\n\n/**\n * Create a code frame, adding line numbers, code highlighting, and pointing to a given position.\n */\n\nexport default function (\n rawLines: string,\n lineNumber: number,\n colNumber?: number | null,\n opts: Options = {},\n): string {\n if (!deprecationWarningShown) {\n deprecationWarningShown = true;\n\n const message =\n \"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";\n\n if (process.emitWarning) {\n // A string is directly supplied to emitWarning, because when supplying an\n // Error object node throws in the tests because of different contexts\n process.emitWarning(message, \"DeprecationWarning\");\n } else {\n const deprecationError = new Error(message);\n deprecationError.name = \"DeprecationWarning\";\n console.warn(new Error(message));\n }\n }\n\n colNumber = Math.max(colNumber, 0);\n\n const location: NodeLocation = {\n start: { column: colNumber, line: lineNumber },\n };\n\n return codeFrameColumns(rawLines, location, opts);\n}\n"],"names":["isColorSupported","process","env","FORCE_COLOR","picocolors","compose","f","g","v","buildDefs","colors","keyword","cyan","capitalized","yellow","jsxIdentifier","punctuator","number","magenta","string","green","regex","comment","gray","invalid","white","bgRed","bold","gutter","marker","red","message","reset","defsOn","createColors","defsOff","getDefs","enabled","sometimesKeywords","Set","NEWLINE","BRACKET","tokenize","JSX_TAG","getTokenType","token","offset","text","type","isKeyword","value","isStrictReservedWord","has","test","slice","toLowerCase","match","jsTokens","default","exec","matchToToken","index","highlight","defs","highlighted","split","map","str","join","deprecationWarningShown","getMarkerLines","loc","source","opts","startLoc","Object","assign","column","line","start","endLoc","end","linesAbove","linesBelow","startLine","startColumn","endLine","endColumn","Math","max","min","length","lineDiff","markerLines","i","lineNumber","sourceLength","codeFrameColumns","rawLines","shouldHighlight","forceColor","highlightCode","lines","hasColumns","numberMaxWidth","String","highlightedLines","frame","paddedNumber","hasMarker","lastMarkerLine","markerLine","Array","isArray","markerSpacing","replace","numberOfMarkers","repeat","colNumber","emitWarning","deprecationError","Error","name","console","warn","location"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/code-frame/package.json b/node_modules/@babel/code-frame/package.json index 9e672b7..076c312 100644 --- a/node_modules/@babel/code-frame/package.json +++ b/node_modules/@babel/code-frame/package.json @@ -1,6 +1,6 @@ { "name": "@babel/code-frame", - "version": "7.24.7", + "version": "7.26.2", "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", @@ -16,7 +16,8 @@ }, "main": "./lib/index.js", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "devDependencies": { diff --git a/node_modules/@babel/compat-data/data/plugins.json b/node_modules/@babel/compat-data/data/plugins.json index 0b269f8..65d7662 100644 --- a/node_modules/@babel/compat-data/data/plugins.json +++ b/node_modules/@babel/compat-data/data/plugins.json @@ -1,9 +1,20 @@ { "transform-duplicate-named-capturing-groups-regex": { "chrome": "126", + "opera": "112", "edge": "126", "firefox": "129", "safari": "17.4", + "node": "23", + "ios": "17.4", + "electron": "31.0" + }, + "transform-regexp-modifiers": { + "chrome": "125", + "opera": "111", + "edge": "125", + "firefox": "132", + "node": "23", "electron": "31.0" }, "transform-unicode-sets-regex": { @@ -22,7 +33,7 @@ "chrome": "98", "opera": "84", "edge": "98", - "firefox": "95", + "firefox": "75", "safari": "15", "node": "12", "deno": "1.18", diff --git a/node_modules/@babel/compat-data/package.json b/node_modules/@babel/compat-data/package.json index 616df87..d3c1394 100644 --- a/node_modules/@babel/compat-data/package.json +++ b/node_modules/@babel/compat-data/package.json @@ -1,6 +1,6 @@ { "name": "@babel/compat-data", - "version": "7.25.2", + "version": "7.26.2", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", "description": "", diff --git a/node_modules/@babel/core/cjs-proxy.cjs b/node_modules/@babel/core/cjs-proxy.cjs index 17dac4a..accdb43 100644 --- a/node_modules/@babel/core/cjs-proxy.cjs +++ b/node_modules/@babel/core/cjs-proxy.cjs @@ -29,6 +29,15 @@ const propertyNames = [ for (const name of functionNames) { exports[name] = function (...args) { + if ( + process.env.BABEL_8_BREAKING && + typeof args[args.length - 1] !== "function" + ) { + throw new Error( + `Starting from Babel 8.0.0, the '${name}' function expects a callback. If you need to call it synchronously, please use '${name}Sync'.` + ); + } + babelP.then(babel => { babel[name](...args); }); diff --git a/node_modules/@babel/core/lib/config/files/configuration.js b/node_modules/@babel/core/lib/config/files/configuration.js index 9c6d49c..cb796eb 100644 --- a/node_modules/@babel/core/lib/config/files/configuration.js +++ b/node_modules/@babel/core/lib/config/files/configuration.js @@ -52,6 +52,7 @@ var _patternToRegex = require("../pattern-to-regex.js"); var _configError = require("../../errors/config-error.js"); var fs = require("../../gensync-utils/fs.js"); var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js"); +var _async = require("../../gensync-utils/async.js"); const debug = _debug()("babel:config:loading:files:configuration"); const ROOT_CONFIG_FILENAMES = exports.ROOT_CONFIG_FILENAMES = ["babel.config.js", "babel.config.cjs", "babel.config.mjs", "babel.config.json", "babel.config.cts"]; const RELATIVE_CONFIG_FILENAMES = [".babelrc", ".babelrc.js", ".babelrc.cjs", ".babelrc.mjs", ".babelrc.json", ".babelrc.cts"]; @@ -65,7 +66,7 @@ const runConfig = (0, _caching.makeWeakCache)(function* runConfig(options, cache }); function* readConfigCode(filepath, data) { if (!_fs().existsSync(filepath)) return null; - let 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."); + let options = yield* (0, _moduleTypes.default)(filepath, (yield* (0, _async.isAsync)()) ? "auto" : "require", "You appear to be using a native ECMAScript module configuration " + "file, which is only supported when running Babel asynchronously " + "or when using the Node.js `--experimental-require-module` flag.", "You appear to be using a configuration file that contains top-level " + "await, which is only supported when running Babel asynchronously."); let cacheNeedsConfiguration = false; if (typeof options === "function") { ({ @@ -102,7 +103,7 @@ function buildConfigFileObject(options, filepath) { } const packageToBabelConfig = (0, _caching.makeWeakCacheSync)(file => { const babel = file.options["babel"]; - if (typeof babel === "undefined") return null; + if (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); } @@ -135,7 +136,7 @@ const readConfigJSON5 = (0, _utils.makeStaticFileCache)((filepath, content) => { }); 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); + const ignorePatterns = content.split("\n").map(line => line.replace(/#.*$/, "").trim()).filter(Boolean); for (const pattern of ignorePatterns) { if (pattern[0] === "!") { throw new _configError.default(`Negation of file paths is not supported.`, filepath); diff --git a/node_modules/@babel/core/lib/config/files/configuration.js.map b/node_modules/@babel/core/lib/config/files/configuration.js.map index 6ecd1ae..2ccd322 100644 --- a/node_modules/@babel/core/lib/config/files/configuration.js.map +++ b/node_modules/@babel/core/lib/config/files/configuration.js.map @@ -1 +1 @@ -{"version":3,"names":["_debug","data","require","_fs","_path","_json","_gensync","_caching","_configApi","_utils","_moduleTypes","_patternToRegex","_configError","fs","_rewriteStackTrace","debug","buildDebug","ROOT_CONFIG_FILENAMES","exports","RELATIVE_CONFIG_FILENAMES","BABELIGNORE_FILENAME","runConfig","makeWeakCache","options","cache","endHiddenCallStack","makeConfigAPI","cacheNeedsConfiguration","configured","readConfigCode","filepath","nodeFs","existsSync","loadCodeDefault","Array","isArray","ConfigError","then","catch","throwConfigError","buildConfigFileObject","cfboaf","WeakMap","configFilesByFilepath","get","set","Map","configFile","dirname","path","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","_packageData$pkg","loadOneConfig","pkg","ignoreLoc","findRootConfig","names","previousConfig","configs","gensync","all","readConfig","reduce","basename","loadConfig","name","v","w","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","code","conf","ext","extname","resolveShowConfigPath","targetPath","env","BABEL_SHOW_CONFIG_FOR","absolutePath","stats","stat","isFile"],"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 { makeWeakCache, makeWeakCacheSync } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport { makeConfigAPI } from \"../helpers/config-api.ts\";\nimport type { ConfigAPI } from \"../helpers/config-api.ts\";\nimport { makeStaticFileCache } from \"./utils.ts\";\nimport loadCodeDefault from \"./module-types.ts\";\nimport pathPatternToRegex from \"../pattern-to-regex.ts\";\nimport type { FilePackageData, RelativeConfig, ConfigFile } from \"./types.ts\";\nimport type { CallerMetadata, InputOptions } from \"../validation/options.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport * as fs from \"../../gensync-utils/fs.ts\";\n\nimport { createRequire } from \"module\";\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\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 \"babel.config.cts\",\n];\nconst RELATIVE_CONFIG_FILENAMES = [\n \".babelrc\",\n \".babelrc.js\",\n \".babelrc.cjs\",\n \".babelrc.mjs\",\n \".babelrc.json\",\n \".babelrc.cts\",\n];\n\nconst BABELIGNORE_FILENAME = \".babelignore\";\n\ntype ConfigCacheData = {\n envName: string;\n caller: CallerMetadata | undefined;\n};\n\nconst runConfig = makeWeakCache(function* runConfig(\n options: Function,\n cache: CacheConfigurator,\n): Handler<{\n options: InputOptions | null;\n cacheNeedsConfiguration: boolean;\n}> {\n // @ts-expect-error - if we want to make it possible to use async configs\n yield* [];\n\n return {\n options: endHiddenCallStack(options as any as (api: ConfigAPI) => unknown)(\n makeConfigAPI(cache),\n ),\n cacheNeedsConfiguration: !cache.configured(),\n };\n});\n\nfunction* readConfigCode(\n filepath: string,\n data: ConfigCacheData,\n): Handler {\n if (!nodeFs.existsSync(filepath)) return null;\n\n let options = yield* loadCodeDefault(\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\n let cacheNeedsConfiguration = false;\n if (typeof options === \"function\") {\n ({ options, cacheNeedsConfiguration } = yield* runConfig(options, data));\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 // @ts-expect-error We use ?. in case options is a thenable but not a promise\n options.catch?.(() => {});\n\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 (cacheNeedsConfiguration) throwConfigError(filepath);\n\n return buildConfigFileObject(options, filepath);\n}\n\n// We cache the generated ConfigFile object rather than creating a new one\n// every time, so that it can be used as a cache key in other functions.\nconst cfboaf /* configFilesByOptionsAndFilepath */ = new WeakMap<\n InputOptions,\n Map\n>();\nfunction buildConfigFileObject(\n options: InputOptions,\n filepath: string,\n): ConfigFile {\n let configFilesByFilepath = cfboaf.get(options);\n if (!configFilesByFilepath) {\n cfboaf.set(options, (configFilesByFilepath = new Map()));\n }\n\n let configFile = configFilesByFilepath.get(filepath);\n if (!configFile) {\n configFile = {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n configFilesByFilepath.set(filepath, configFile);\n }\n\n return configFile;\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 switch (ext) {\n case \".js\":\n case \".cjs\":\n case \".mjs\":\n case \".cts\":\n return readConfigCode(filepath, { envName, caller });\n default:\n return readConfigJSON5(filepath);\n }\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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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_debug","data","require","_fs","_path","_json","_gensync","_caching","_configApi","_utils","_moduleTypes","_patternToRegex","_configError","fs","_rewriteStackTrace","_async","debug","buildDebug","ROOT_CONFIG_FILENAMES","exports","RELATIVE_CONFIG_FILENAMES","BABELIGNORE_FILENAME","runConfig","makeWeakCache","options","cache","endHiddenCallStack","makeConfigAPI","cacheNeedsConfiguration","configured","readConfigCode","filepath","nodeFs","existsSync","loadCodeDefault","isAsync","Array","isArray","ConfigError","then","catch","throwConfigError","buildConfigFileObject","cfboaf","WeakMap","configFilesByFilepath","get","set","Map","configFile","dirname","path","packageToBabelConfig","makeWeakCacheSync","file","babel","undefined","readConfigJSON5","makeStaticFileCache","content","json5","parse","err","message","readIgnoreConfig","ignoreDir","ignorePatterns","split","map","line","replace","trim","filter","Boolean","pattern","ignore","pathPatternToRegex","findConfigUpwards","rootDir","filename","join","nextDir","findRelativeConfig","packageData","envName","caller","config","loc","directories","_packageData$pkg","loadOneConfig","pkg","ignoreLoc","findRootConfig","names","previousConfig","configs","gensync","all","readConfig","reduce","basename","loadConfig","name","v","w","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","code","conf","ext","extname","resolveShowConfigPath","targetPath","env","BABEL_SHOW_CONFIG_FOR","absolutePath","stats","stat","isFile"],"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 { makeWeakCache, makeWeakCacheSync } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport { makeConfigAPI } from \"../helpers/config-api.ts\";\nimport type { ConfigAPI } from \"../helpers/config-api.ts\";\nimport { makeStaticFileCache } from \"./utils.ts\";\nimport loadCodeDefault from \"./module-types.ts\";\nimport pathPatternToRegex from \"../pattern-to-regex.ts\";\nimport type { FilePackageData, RelativeConfig, ConfigFile } from \"./types.ts\";\nimport type { CallerMetadata, InputOptions } from \"../validation/options.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport * as fs from \"../../gensync-utils/fs.ts\";\n\nimport { createRequire } from \"module\";\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\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 \"babel.config.cts\",\n];\nconst RELATIVE_CONFIG_FILENAMES = [\n \".babelrc\",\n \".babelrc.js\",\n \".babelrc.cjs\",\n \".babelrc.mjs\",\n \".babelrc.json\",\n \".babelrc.cts\",\n];\n\nconst BABELIGNORE_FILENAME = \".babelignore\";\n\ntype ConfigCacheData = {\n envName: string;\n caller: CallerMetadata | undefined;\n};\n\nconst runConfig = makeWeakCache(function* runConfig(\n options: Function,\n cache: CacheConfigurator,\n): Handler<{\n options: InputOptions | null;\n cacheNeedsConfiguration: boolean;\n}> {\n // if we want to make it possible to use async configs\n yield* [];\n\n return {\n options: endHiddenCallStack(options as any as (api: ConfigAPI) => unknown)(\n makeConfigAPI(cache),\n ),\n cacheNeedsConfiguration: !cache.configured(),\n };\n});\n\nfunction* readConfigCode(\n filepath: string,\n data: ConfigCacheData,\n): Handler {\n if (!nodeFs.existsSync(filepath)) return null;\n\n let options = yield* loadCodeDefault(\n filepath,\n (yield* isAsync()) ? \"auto\" : \"require\",\n \"You appear to be using a native ECMAScript module configuration \" +\n \"file, which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n \"You appear to be using a configuration file that contains top-level \" +\n \"await, which is only supported when running Babel asynchronously.\",\n );\n\n let cacheNeedsConfiguration = false;\n if (typeof options === \"function\") {\n ({ options, cacheNeedsConfiguration } = yield* runConfig(options, data));\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 // @ts-expect-error We use ?. in case options is a thenable but not a promise\n options.catch?.(() => {});\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 (cacheNeedsConfiguration) throwConfigError(filepath);\n\n return buildConfigFileObject(options, filepath);\n}\n\n// We cache the generated ConfigFile object rather than creating a new one\n// every time, so that it can be used as a cache key in other functions.\nconst cfboaf /* configFilesByOptionsAndFilepath */ = new WeakMap<\n InputOptions,\n Map\n>();\nfunction buildConfigFileObject(\n options: InputOptions,\n filepath: string,\n): ConfigFile {\n let configFilesByFilepath = cfboaf.get(options);\n if (!configFilesByFilepath) {\n cfboaf.set(options, (configFilesByFilepath = new Map()));\n }\n\n let configFile = configFilesByFilepath.get(filepath);\n if (!configFile) {\n configFile = {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n configFilesByFilepath.set(filepath, configFile);\n }\n\n return configFile;\n}\n\nconst packageToBabelConfig = makeWeakCacheSync(\n (file: ConfigFile): ConfigFile | null => {\n const babel: unknown = file.options[\"babel\"];\n\n if (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 =>\n line.replace(process.env.BABEL_8_BREAKING ? /^#.*$/ : /#.*$/, \"\").trim(),\n )\n .filter(Boolean);\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 switch (ext) {\n case \".js\":\n case \".cjs\":\n case \".mjs\":\n case \".cts\":\n return readConfigCode(filepath, { envName, caller });\n default:\n return readConfigJSON5(filepath);\n }\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":";;;;;;;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,IAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,GAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,MAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,KAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,SAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,QAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAM,QAAA,GAAAL,OAAA;AAEA,IAAAM,UAAA,GAAAN,OAAA;AAEA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAR,OAAA;AACA,IAAAS,eAAA,GAAAT,OAAA;AAGA,IAAAU,YAAA,GAAAV,OAAA;AAEA,IAAAW,EAAA,GAAAX,OAAA;AAGA,IAAAY,kBAAA,GAAAZ,OAAA;AACA,IAAAa,MAAA,GAAAb,OAAA;AAGA,MAAMc,KAAK,GAAGC,OAASA,CAAC,CAAC,0CAA0C,CAAC;AAE7D,MAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,CACnC,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,CACnB;AACD,MAAME,yBAAyB,GAAG,CAChC,UAAU,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,CACf;AAED,MAAMC,oBAAoB,GAAG,cAAc;AAO3C,MAAMC,SAAS,GAAG,IAAAC,sBAAa,EAAC,UAAUD,SAASA,CACjDE,OAAiB,EACjBC,KAAyC,EAIxC;EAED,OAAO,EAAE;EAET,OAAO;IACLD,OAAO,EAAE,IAAAE,qCAAkB,EAACF,OAA6C,CAAC,CACxE,IAAAG,wBAAa,EAACF,KAAK,CACrB,CAAC;IACDG,uBAAuB,EAAE,CAACH,KAAK,CAACI,UAAU,CAAC;EAC7C,CAAC;AACH,CAAC,CAAC;AAEF,UAAUC,cAAcA,CACtBC,QAAgB,EAChB9B,IAAqB,EACO;EAC5B,IAAI,CAAC+B,IAAKA,CAAC,CAACC,UAAU,CAACF,QAAQ,CAAC,EAAE,OAAO,IAAI;EAE7C,IAAIP,OAAO,GAAG,OAAO,IAAAU,oBAAe,EAClCH,QAAQ,EACR,CAAC,OAAO,IAAAI,cAAO,EAAC,CAAC,IAAI,MAAM,GAAG,SAAS,EACvC,kEAAkE,GAChE,kEAAkE,GAClE,iEAAiE,EACnE,sEAAsE,GACpE,mEACJ,CAAC;EAED,IAAIP,uBAAuB,GAAG,KAAK;EACnC,IAAI,OAAOJ,OAAO,KAAK,UAAU,EAAE;IACjC,CAAC;MAAEA,OAAO;MAAEI;IAAwB,CAAC,GAAG,OAAON,SAAS,CAACE,OAAO,EAAEvB,IAAI,CAAC;EACzE;EAEA,IAAI,CAACuB,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAIY,KAAK,CAACC,OAAO,CAACb,OAAO,CAAC,EAAE;IACrE,MAAM,IAAIc,oBAAW,CACnB,wDAAwD,EACxDP,QACF,CAAC;EACH;EAGA,IAAI,OAAOP,OAAO,CAACe,IAAI,KAAK,UAAU,EAAE;IAEtCf,OAAO,CAACgB,KAAK,YAAbhB,OAAO,CAACgB,KAAK,CAAG,MAAM,CAAC,CAAC,CAAC;IACzB,MAAM,IAAIF,oBAAW,CACnB,iDAAiD,GAC/C,wDAAwD,GACxD,6CAA6C,GAC7C,oEAAoE,GACpE,0EAA0E,EAC5EP,QACF,CAAC;EACH;EAEA,IAAIH,uBAAuB,EAAEa,gBAAgB,CAACV,QAAQ,CAAC;EAEvD,OAAOW,qBAAqB,CAAClB,OAAO,EAAEO,QAAQ,CAAC;AACjD;AAIA,MAAMY,MAAM,GAAyC,IAAIC,OAAO,CAG9D,CAAC;AACH,SAASF,qBAAqBA,CAC5BlB,OAAqB,EACrBO,QAAgB,EACJ;EACZ,IAAIc,qBAAqB,GAAGF,MAAM,CAACG,GAAG,CAACtB,OAAO,CAAC;EAC/C,IAAI,CAACqB,qBAAqB,EAAE;IAC1BF,MAAM,CAACI,GAAG,CAACvB,OAAO,EAAGqB,qBAAqB,GAAG,IAAIG,GAAG,CAAC,CAAE,CAAC;EAC1D;EAEA,IAAIC,UAAU,GAAGJ,qBAAqB,CAACC,GAAG,CAACf,QAAQ,CAAC;EACpD,IAAI,CAACkB,UAAU,EAAE;IACfA,UAAU,GAAG;MACXlB,QAAQ;MACRmB,OAAO,EAAEC,MAAGA,CAAC,CAACD,OAAO,CAACnB,QAAQ,CAAC;MAC/BP;IACF,CAAC;IACDqB,qBAAqB,CAACE,GAAG,CAAChB,QAAQ,EAAEkB,UAAU,CAAC;EACjD;EAEA,OAAOA,UAAU;AACnB;AAEA,MAAMG,oBAAoB,GAAG,IAAAC,0BAAiB,EAC3CC,IAAgB,IAAwB;EACvC,MAAMC,KAAc,GAAGD,IAAI,CAAC9B,OAAO,CAAC,OAAO,CAAC;EAE5C,IAAI+B,KAAK,KAAKC,SAAS,EAAE,OAAO,IAAI;EAEpC,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAInB,KAAK,CAACC,OAAO,CAACkB,KAAK,CAAC,IAAIA,KAAK,KAAK,IAAI,EAAE;IACvE,MAAM,IAAIjB,oBAAW,CAAC,mCAAmC,EAAEgB,IAAI,CAACvB,QAAQ,CAAC;EAC3E;EAEA,OAAO;IACLA,QAAQ,EAAEuB,IAAI,CAACvB,QAAQ;IACvBmB,OAAO,EAAEI,IAAI,CAACJ,OAAO;IACrB1B,OAAO,EAAE+B;EACX,CAAC;AACH,CACF,CAAC;AAED,MAAME,eAAe,GAAG,IAAAC,0BAAmB,EAAC,CAAC3B,QAAQ,EAAE4B,OAAO,KAAiB;EAC7E,IAAInC,OAAO;EACX,IAAI;IACFA,OAAO,GAAGoC,MAAIA,CAAC,CAACC,KAAK,CAACF,OAAO,CAAC;EAChC,CAAC,CAAC,OAAOG,GAAG,EAAE;IACZ,MAAM,IAAIxB,oBAAW,CACnB,gCAAgCwB,GAAG,CAACC,OAAO,EAAE,EAC7ChC,QACF,CAAC;EACH;EAEA,IAAI,CAACP,OAAO,EAAE,MAAM,IAAIc,oBAAW,CAAC,oBAAoB,EAAEP,QAAQ,CAAC;EAEnE,IAAI,OAAOP,OAAO,KAAK,QAAQ,EAAE;IAC/B,MAAM,IAAIc,oBAAW,CAAC,0BAA0B,OAAOd,OAAO,EAAE,EAAEO,QAAQ,CAAC;EAC7E;EACA,IAAIK,KAAK,CAACC,OAAO,CAACb,OAAO,CAAC,EAAE;IAC1B,MAAM,IAAIc,oBAAW,CAAC,wCAAwC,EAAEP,QAAQ,CAAC;EAC3E;EAEA,OAAOP,OAAO,CAAC,SAAS,CAAC;EAEzB,OAAO;IACLO,QAAQ;IACRmB,OAAO,EAAEC,MAAGA,CAAC,CAACD,OAAO,CAACnB,QAAQ,CAAC;IAC/BP;EACF,CAAC;AACH,CAAC,CAAC;AAEF,MAAMwC,gBAAgB,GAAG,IAAAN,0BAAmB,EAAC,CAAC3B,QAAQ,EAAE4B,OAAO,KAAK;EAClE,MAAMM,SAAS,GAAGd,MAAGA,CAAC,CAACD,OAAO,CAACnB,QAAQ,CAAC;EACxC,MAAMmC,cAAc,GAAGP,OAAO,CAC3BQ,KAAK,CAAC,IAAI,CAAC,CACXC,GAAG,CAACC,IAAI,IACPA,IAAI,CAACC,OAAO,CAA0C,MAAM,EAAE,EAAE,CAAC,CAACC,IAAI,CAAC,CACzE,CAAC,CACAC,MAAM,CAACC,OAAO,CAAC;EAElB,KAAK,MAAMC,OAAO,IAAIR,cAAc,EAAE;IACpC,IAAIQ,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;MACtB,MAAM,IAAIpC,oBAAW,CACnB,0CAA0C,EAC1CP,QACF,CAAC;IACH;EACF;EAEA,OAAO;IACLA,QAAQ;IACRmB,OAAO,EAAEC,MAAGA,CAAC,CAACD,OAAO,CAACnB,QAAQ,CAAC;IAC/B4C,MAAM,EAAET,cAAc,CAACE,GAAG,CAACM,OAAO,IAChC,IAAAE,uBAAkB,EAACF,OAAO,EAAET,SAAS,CACvC;EACF,CAAC;AACH,CAAC,CAAC;AAEK,SAASY,iBAAiBA,CAACC,OAAe,EAAiB;EAChE,IAAI5B,OAAO,GAAG4B,OAAO;EACrB,SAAS;IACP,KAAK,MAAMC,QAAQ,IAAI7D,qBAAqB,EAAE;MAC5C,IAAIc,IAAKA,CAAC,CAACC,UAAU,CAACkB,MAAGA,CAAC,CAAC6B,IAAI,CAAC9B,OAAO,EAAE6B,QAAQ,CAAC,CAAC,EAAE;QACnD,OAAO7B,OAAO;MAChB;IACF;IAEA,MAAM+B,OAAO,GAAG9B,MAAGA,CAAC,CAACD,OAAO,CAACA,OAAO,CAAC;IACrC,IAAIA,OAAO,KAAK+B,OAAO,EAAE;IACzB/B,OAAO,GAAG+B,OAAO;EACnB;EAEA,OAAO,IAAI;AACb;AAEO,UAAUC,kBAAkBA,CACjCC,WAA4B,EAC5BC,OAAe,EACfC,MAAkC,EACT;EACzB,IAAIC,MAAM,GAAG,IAAI;EACjB,IAAIX,MAAM,GAAG,IAAI;EAEjB,MAAMzB,OAAO,GAAGC,MAAGA,CAAC,CAACD,OAAO,CAACiC,WAAW,CAACpD,QAAQ,CAAC;EAElD,KAAK,MAAMwD,GAAG,IAAIJ,WAAW,CAACK,WAAW,EAAE;IACzC,IAAI,CAACF,MAAM,EAAE;MAAA,IAAAG,gBAAA;MACXH,MAAM,GAAG,OAAOI,aAAa,CAC3BtE,yBAAyB,EACzBmE,GAAG,EACHH,OAAO,EACPC,MAAM,EACN,EAAAI,gBAAA,GAAAN,WAAW,CAACQ,GAAG,qBAAfF,gBAAA,CAAiBvC,OAAO,MAAKqC,GAAG,GAC5BnC,oBAAoB,CAAC+B,WAAW,CAACQ,GAAG,CAAC,GACrC,IACN,CAAC;IACH;IAEA,IAAI,CAAChB,MAAM,EAAE;MACX,MAAMiB,SAAS,GAAGzC,MAAGA,CAAC,CAAC6B,IAAI,CAACO,GAAG,EAAElE,oBAAoB,CAAC;MACtDsD,MAAM,GAAG,OAAOX,gBAAgB,CAAC4B,SAAS,CAAC;MAE3C,IAAIjB,MAAM,EAAE;QACV3D,KAAK,CAAC,0BAA0B,EAAE2D,MAAM,CAAC5C,QAAQ,EAAEmB,OAAO,CAAC;MAC7D;IACF;EACF;EAEA,OAAO;IAAEoC,MAAM;IAAEX;EAAO,CAAC;AAC3B;AAEO,SAASkB,cAAcA,CAC5B3C,OAAe,EACfkC,OAAe,EACfC,MAAkC,EACN;EAC5B,OAAOK,aAAa,CAACxE,qBAAqB,EAAEgC,OAAO,EAAEkC,OAAO,EAAEC,MAAM,CAAC;AACvE;AAEA,UAAUK,aAAaA,CACrBI,KAAe,EACf5C,OAAe,EACfkC,OAAe,EACfC,MAAkC,EAClCU,cAAiC,GAAG,IAAI,EACZ;EAC5B,MAAMC,OAAO,GAAG,OAAOC,SAAMA,CAAC,CAACC,GAAG,CAChCJ,KAAK,CAAC1B,GAAG,CAACW,QAAQ,IAChBoB,UAAU,CAAChD,MAAGA,CAAC,CAAC6B,IAAI,CAAC9B,OAAO,EAAE6B,QAAQ,CAAC,EAAEK,OAAO,EAAEC,MAAM,CAC1D,CACF,CAAC;EACD,MAAMC,MAAM,GAAGU,OAAO,CAACI,MAAM,CAAC,CAACL,cAAiC,EAAET,MAAM,KAAK;IAC3E,IAAIA,MAAM,IAAIS,cAAc,EAAE;MAC5B,MAAM,IAAIzD,oBAAW,CACnB,0DAA0D,GACxD,MAAMa,MAAGA,CAAC,CAACkD,QAAQ,CAACN,cAAc,CAAChE,QAAQ,CAAC,IAAI,GAChD,MAAMuD,MAAM,CAACvD,QAAQ,IAAI,GACzB,QAAQmB,OAAO,EACnB,CAAC;IACH;IAEA,OAAOoC,MAAM,IAAIS,cAAc;EACjC,CAAC,EAAEA,cAAc,CAAC;EAElB,IAAIT,MAAM,EAAE;IACVtE,KAAK,CAAC,iCAAiC,EAAEsE,MAAM,CAACvD,QAAQ,EAAEmB,OAAO,CAAC;EACpE;EACA,OAAOoC,MAAM;AACf;AAEO,UAAUgB,UAAUA,CACzBC,IAAY,EACZrD,OAAe,EACfkC,OAAe,EACfC,MAAkC,EACb;EACrB,MAAMtD,QAAQ,GAAG,GAAAyE,CAAA,EAAAC,CAAA,MAAAD,CAAA,GAAAA,CAAA,CAAArC,KAAA,OAAAsC,CAAA,GAAAA,CAAA,CAAAtC,KAAA,QAAAqC,CAAA,OAAAC,CAAA,OAAAD,CAAA,OAAAC,CAAA,QAAAD,CAAA,QAAAC,CAAA,MAAAC,OAAA,CAAAC,QAAA,CAAAC,IAAA,WAAA1G,OAAA,CAAA2G,OAAA,IAAAC,CAAA;IAAAC,KAAA,GAAAC,CAAA;EAAA,GAAAC,CAAA,GAAA/G,OAAA;IAAA,IAAAgH,CAAA,GAAAD,CAAA,CAAAE,SAAA,CAAAL,CAAA,EAAAG,CAAA,CAAAG,gBAAA,CAAAJ,CAAA,EAAAK,MAAA,CAAAL,CAAA;IAAA,IAAAE,CAAA,SAAAA,CAAA;IAAAA,CAAA,OAAAI,KAAA,2BAAAR,CAAA;IAAAI,CAAA,CAAAK,IAAA;IAAA,MAAAL,CAAA;EAAA,GAAgBX,IAAI,EAAE;IAAEQ,KAAK,EAAE,CAAC7D,OAAO;EAAE,CAAC,CAAC;EAE5D,MAAMsE,IAAI,GAAG,OAAOrB,UAAU,CAACpE,QAAQ,EAAEqD,OAAO,EAAEC,MAAM,CAAC;EACzD,IAAI,CAACmC,IAAI,EAAE;IACT,MAAM,IAAIlF,oBAAW,CACnB,4CAA4C,EAC5CP,QACF,CAAC;EACH;EAEAf,KAAK,CAAC,2BAA2B,EAAEuF,IAAI,EAAErD,OAAO,CAAC;EACjD,OAAOsE,IAAI;AACb;AAMA,SAASrB,UAAUA,CACjBpE,QAAgB,EAChBqD,OAAe,EACfC,MAAkC,EACN;EAC5B,MAAMoC,GAAG,GAAGtE,MAAGA,CAAC,CAACuE,OAAO,CAAC3F,QAAQ,CAAC;EAClC,QAAQ0F,GAAG;IACT,KAAK,KAAK;IACV,KAAK,MAAM;IACX,KAAK,MAAM;IACX,KAAK,MAAM;MACT,OAAO3F,cAAc,CAACC,QAAQ,EAAE;QAAEqD,OAAO;QAAEC;MAAO,CAAC,CAAC;IACtD;MACE,OAAO5B,eAAe,CAAC1B,QAAQ,CAAC;EACpC;AACF;AAEO,UAAU4F,qBAAqBA,CACpCzE,OAAe,EACS;EACxB,MAAM0E,UAAU,GAAGlB,OAAO,CAACmB,GAAG,CAACC,qBAAqB;EACpD,IAAIF,UAAU,IAAI,IAAI,EAAE;IACtB,MAAMG,YAAY,GAAG5E,MAAGA,CAAC,CAAC0D,OAAO,CAAC3D,OAAO,EAAE0E,UAAU,CAAC;IACtD,MAAMI,KAAK,GAAG,OAAOnH,EAAE,CAACoH,IAAI,CAACF,YAAY,CAAC;IAC1C,IAAI,CAACC,KAAK,CAACE,MAAM,CAAC,CAAC,EAAE;MACnB,MAAM,IAAIZ,KAAK,CACb,GAAGS,YAAY,sFACjB,CAAC;IACH;IACA,OAAOA,YAAY;EACrB;EACA,OAAO,IAAI;AACb;AAEA,SAAStF,gBAAgBA,CAACV,QAAgB,EAAS;EACjD,MAAM,IAAIO,oBAAW,CACnB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EACCP,QACF,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file 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 index fdcc2c5..c40392e 100644 --- a/node_modules/@babel/core/lib/config/files/index-browser.js.map +++ b/node_modules/@babel/core/lib/config/files/index-browser.js.map @@ -1 +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","exports","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.ts\";\n\nimport type { CallerMetadata } from \"../validation/options.ts\";\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,iBAAiBA,CAE/BC,OAAe,EACA;EACf,OAAO,IAAI;AACb;AAGO,UAAUC,eAAeA,CAACC,QAAgB,EAA4B;EAC3E,OAAO;IACLA,QAAQ;IACRC,WAAW,EAAE,EAAE;IACfC,GAAG,EAAE,IAAI;IACTC,SAAS,EAAE;EACb,CAAC;AACH;AAGO,UAAUC,kBAAkBA,CAEjCC,OAAwB,EAExBC,OAAe,EAEfC,MAAkC,EACT;EACzB,OAAO;IAAEC,MAAM,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAK,CAAC;AACvC;AAGO,UAAUC,cAAcA,CAE7BC,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACN;EAC5B,OAAO,IAAI;AACb;AAGO,UAAUK,UAAUA,CACzBC,IAAY,EACZF,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACb;EACrB,MAAM,IAAIO,KAAK,CAAC,eAAeD,IAAI,gBAAgBF,OAAO,eAAe,CAAC;AAC5E;AAGO,UAAUI,qBAAqBA,CAEpCJ,OAAe,EACS;EACxB,OAAO,IAAI;AACb;AAEO,MAAMK,qBAA+B,GAAAC,OAAA,CAAAD,qBAAA,GAAG,EAAE;AAG1C,SAASE,aAAaA,CAACL,IAAY,EAAEF,OAAe,EAAiB;EAC1E,OAAO,IAAI;AACb;AAGO,SAASQ,aAAaA,CAACN,IAAY,EAAEF,OAAe,EAAiB;EAC1E,OAAO,IAAI;AACb;AAEO,SAASS,UAAUA,CACxBP,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAEO,SAASU,UAAUA,CACxBR,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file +{"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","exports","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.ts\";\n\nimport type { CallerMetadata } from \"../validation/options.ts\";\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\ntype Resolved =\n | { loader: \"require\"; filepath: string }\n | { loader: \"import\"; filepath: string };\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePlugin(name: string, dirname: string): Resolved | null {\n return null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePreset(name: string, dirname: string): Resolved | 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,iBAAiBA,CAE/BC,OAAe,EACA;EACf,OAAO,IAAI;AACb;AAGO,UAAUC,eAAeA,CAACC,QAAgB,EAA4B;EAC3E,OAAO;IACLA,QAAQ;IACRC,WAAW,EAAE,EAAE;IACfC,GAAG,EAAE,IAAI;IACTC,SAAS,EAAE;EACb,CAAC;AACH;AAGO,UAAUC,kBAAkBA,CAEjCC,OAAwB,EAExBC,OAAe,EAEfC,MAAkC,EACT;EACzB,OAAO;IAAEC,MAAM,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAK,CAAC;AACvC;AAGO,UAAUC,cAAcA,CAE7BC,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACN;EAC5B,OAAO,IAAI;AACb;AAGO,UAAUK,UAAUA,CACzBC,IAAY,EACZF,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACb;EACrB,MAAM,IAAIO,KAAK,CAAC,eAAeD,IAAI,gBAAgBF,OAAO,eAAe,CAAC;AAC5E;AAGO,UAAUI,qBAAqBA,CAEpCJ,OAAe,EACS;EACxB,OAAO,IAAI;AACb;AAEO,MAAMK,qBAA+B,GAAAC,OAAA,CAAAD,qBAAA,GAAG,EAAE;AAO1C,SAASE,aAAaA,CAACL,IAAY,EAAEF,OAAe,EAAmB;EAC5E,OAAO,IAAI;AACb;AAGO,SAASQ,aAAaA,CAACN,IAAY,EAAEF,OAAe,EAAmB;EAC5E,OAAO,IAAI;AACb;AAEO,SAASS,UAAUA,CACxBP,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAEO,SAASU,UAAUA,CACxBR,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAAC","ignoreList":[]} \ 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 index a49f613..55ea0e7 100644 --- a/node_modules/@babel/core/lib/config/files/module-types.js +++ b/node_modules/@babel/core/lib/config/files/module-types.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = loadCodeDefault; exports.supportsESM = void 0; -var _async = require("../../gensync-utils/async.js"); +var _async3 = require("../../gensync-utils/async.js"); function _path() { const data = require("path"); _path = function () { @@ -37,8 +37,8 @@ function _debug() { var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js"); var _configError = require("../../errors/config-error.js"); var _transformFile = require("../../transform-file.js"); -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); }); }; } +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } const debug = _debug()("babel:config:loading:files:module-types"); { try { @@ -60,48 +60,67 @@ function loadCjsDefault(filepath) { LOADING_CJS_FILES.delete(filepath); } { - var _module; - return (_module = module) != null && _module.__esModule ? module.default || (arguments[1] ? module : undefined) : module; + return module != null && (module.__esModule || module[Symbol.toStringTag] === "Module") ? module.default || (arguments[1] ? module : undefined) : module; } } -const loadMjsDefault = (0, _rewriteStackTrace.endHiddenCallStack)(function () { - var _loadMjsDefault = _asyncToGenerator(function* (filepath) { - const url = (0, _url().pathToFileURL)(filepath).toString(); +const loadMjsFromPath = (0, _rewriteStackTrace.endHiddenCallStack)(function () { + var _loadMjsFromPath = _asyncToGenerator(function* (filepath) { + const url = (0, _url().pathToFileURL)(filepath).toString() + "?import"; { if (!import_) { throw new _configError.default("Internal error: Native ECMAScript modules aren't supported by this platform.\n", filepath); } - return (yield import_(url)).default; + return yield import_(url); } }); - function loadMjsDefault(_x) { - return _loadMjsDefault.apply(this, arguments); + function loadMjsFromPath(_x) { + return _loadMjsFromPath.apply(this, arguments); } - return loadMjsDefault; + return loadMjsFromPath; }()); -function* loadCodeDefault(filepath, asyncError) { - switch (_path().extname(filepath)) { - case ".cjs": +const SUPPORTED_EXTENSIONS = new Set([".js", ".mjs", ".cjs", ".cts"]); +const asyncModules = new Set(); +function* loadCodeDefault(filepath, loader, esmError, tlaError) { + var _async2; + let async; + let ext = _path().extname(filepath); + if (!SUPPORTED_EXTENSIONS.has(ext)) ext = ".js"; + const pattern = `${loader} ${ext}`; + switch (pattern) { + case "require .cjs": + case "auto .cjs": { return loadCjsDefault(filepath, arguments[2]); } - case ".mjs": - break; - case ".cts": + case "require .cts": + case "auto .cts": return loadCtsDefault(filepath); - default: + case "auto .js": + case "require .js": + case "require .mjs": try { { return loadCjsDefault(filepath, arguments[2]); } } catch (e) { - if (e.code !== "ERR_REQUIRE_ESM") throw e; + if (e.code === "ERR_REQUIRE_ASYNC_MODULE" || e.code === "ERR_REQUIRE_CYCLE_MODULE" && asyncModules.has(filepath)) { + var _async; + asyncModules.add(filepath); + if (!((_async = async) != null ? _async : async = yield* (0, _async3.isAsync)())) { + throw new _configError.default(tlaError, filepath); + } + } else if (e.code === "ERR_REQUIRE_ESM" || ext === ".mjs") {} else { + throw e; + } } + case "auto .mjs": + if ((_async2 = async) != null ? _async2 : async = yield* (0, _async3.isAsync)()) { + return (yield* (0, _async3.waitFor)(loadMjsFromPath(filepath))).default; + } + throw new _configError.default(esmError, filepath); + default: + throw new Error("Internal Babel error: unreachable code."); } - if (yield* (0, _async.isAsync)()) { - return yield* (0, _async.waitFor)(loadMjsDefault(filepath)); - } - throw new _configError.default(asyncError, filepath); } function loadCtsDefault(filepath) { const ext = ".cts"; 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 index 0707261..5eac729 100644 --- a/node_modules/@babel/core/lib/config/files/module-types.js.map +++ b/node_modules/@babel/core/lib/config/files/module-types.js.map @@ -1 +1 @@ -{"version":3,"names":["_async","require","_path","data","_url","_semver","_debug","_rewriteStackTrace","_configError","_transformFile","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","debug","buildDebug","import_","_unused","supportsESM","exports","semver","satisfies","process","versions","node","LOADING_CJS_FILES","Set","loadCjsDefault","filepath","has","module","add","endHiddenCallStack","delete","_module","__esModule","default","loadMjsDefault","_loadMjsDefault","url","pathToFileURL","toString","ConfigError","_x","loadCodeDefault","asyncError","path","extname","loadCtsDefault","e","code","isAsync","waitFor","ext","hasTsSupport","extensions","handler","opts","babelrc","configFile","sourceType","sourceMaps","sourceFileName","basename","presets","getTSPreset","Object","assign","onlyRemoveTypeImports","optimizeConstEnums","allowDeclareFields","m","filename","endsWith","_compile","transformFileSync","packageJson","lt","version","console","message","pnp"],"sources":["../../../src/config/files/module-types.ts"],"sourcesContent":["import { isAsync, waitFor } from \"../../gensync-utils/async.ts\";\nimport type { Handler } from \"gensync\";\nimport path from \"path\";\nimport { pathToFileURL } from \"url\";\nimport { createRequire } from \"module\";\nimport semver from \"semver\";\nimport buildDebug from \"debug\";\n\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport type { InputOptions } from \"../index.ts\";\nimport { transformFileSync } from \"../../transform-file.ts\";\n\nconst debug = buildDebug(\"babel:config:loading:files:module-types\");\n\nconst require = createRequire(import.meta.url);\n\nif (!process.env.BABEL_8_BREAKING) {\n try {\n // Old Node.js versions don't support import() syntax.\n // eslint-disable-next-line no-var\n var import_:\n | ((specifier: string | URL) => any)\n | undefined = require(\"./import.cjs\");\n } catch {}\n}\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\nconst LOADING_CJS_FILES = new Set();\n\nfunction loadCjsDefault(filepath: string) {\n // The `require()` call below can make this code reentrant if a require hook\n // like @babel/register has been loaded into the system. That would cause\n // Babel to attempt to compile the `.babelrc.js` file as it loads below. To\n // cover this case, we auto-ignore re-entrant config processing. ESM loaders\n // do not have this problem, because loaders do not apply to themselves.\n if (LOADING_CJS_FILES.has(filepath)) {\n debug(\"Auto-ignoring usage of config %o.\", filepath);\n return {};\n }\n\n let module;\n try {\n LOADING_CJS_FILES.add(filepath);\n module = endHiddenCallStack(require)(filepath);\n } finally {\n LOADING_CJS_FILES.delete(filepath);\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return module?.__esModule ? module.default : module;\n } else {\n return module?.__esModule\n ? module.default ||\n /* fallbackToTranspiledModule */ (arguments[1] ? module : undefined)\n : module;\n }\n}\n\nconst loadMjsDefault = endHiddenCallStack(async function loadMjsDefault(\n filepath: string,\n) {\n const url = pathToFileURL(filepath).toString();\n\n if (process.env.BABEL_8_BREAKING) {\n return (await import(url)).default;\n } else {\n if (!import_) {\n throw new ConfigError(\n \"Internal error: Native ECMAScript modules aren't supported by this platform.\\n\",\n filepath,\n );\n }\n\n return (await import_(url)).default;\n }\n});\n\nexport default function* loadCodeDefault(\n filepath: string,\n asyncError: string,\n): Handler {\n switch (path.extname(filepath)) {\n case \".cjs\":\n if (process.env.BABEL_8_BREAKING) {\n return loadCjsDefault(filepath);\n } else {\n return loadCjsDefault(\n filepath,\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n /* fallbackToTranspiledModule */ arguments[2],\n );\n }\n case \".mjs\":\n break;\n case \".cts\":\n return loadCtsDefault(filepath);\n default:\n try {\n if (process.env.BABEL_8_BREAKING) {\n return loadCjsDefault(filepath);\n } else {\n return loadCjsDefault(\n filepath,\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n /* fallbackToTranspiledModule */ arguments[2],\n );\n }\n } catch (e) {\n if (e.code !== \"ERR_REQUIRE_ESM\") throw e;\n }\n }\n if (yield* isAsync()) {\n return yield* waitFor(loadMjsDefault(filepath));\n }\n throw new ConfigError(asyncError, filepath);\n}\n\nfunction loadCtsDefault(filepath: string) {\n const ext = \".cts\";\n const hasTsSupport = !!(\n require.extensions[\".ts\"] ||\n require.extensions[\".cts\"] ||\n require.extensions[\".mts\"]\n );\n\n let handler: NodeJS.RequireExtensions[\"\"];\n\n if (!hasTsSupport) {\n const opts: InputOptions = {\n babelrc: false,\n configFile: false,\n sourceType: \"unambiguous\",\n sourceMaps: \"inline\",\n sourceFileName: path.basename(filepath),\n presets: [\n [\n getTSPreset(filepath),\n {\n onlyRemoveTypeImports: true,\n optimizeConstEnums: true,\n ...(process.env.BABEL_8_BREAKING\n ? {}\n : { allowDeclareFields: true }),\n },\n ],\n ],\n };\n\n handler = function (m, filename) {\n // If we want to support `.ts`, `.d.ts` must be handled specially.\n if (handler && filename.endsWith(ext)) {\n try {\n // @ts-expect-error Undocumented API\n return m._compile(\n transformFileSync(filename, {\n ...opts,\n filename,\n }).code,\n filename,\n );\n } catch (error) {\n if (!hasTsSupport) {\n // TODO(Babel 8): Add this as an optional peer dependency\n // eslint-disable-next-line import/no-extraneous-dependencies\n const packageJson = require(\"@babel/preset-typescript/package.json\");\n if (semver.lt(packageJson.version, \"7.21.4\")) {\n console.error(\n \"`.cts` configuration file failed to load, please try to update `@babel/preset-typescript`.\",\n );\n }\n }\n throw error;\n }\n }\n return require.extensions[\".js\"](m, filename);\n };\n require.extensions[ext] = handler;\n }\n try {\n return loadCjsDefault(filepath);\n } finally {\n if (!hasTsSupport) {\n if (require.extensions[ext] === handler) delete require.extensions[ext];\n handler = undefined;\n }\n }\n}\n\nfunction getTSPreset(filepath: string) {\n try {\n // eslint-disable-next-line import/no-extraneous-dependencies\n return require(\"@babel/preset-typescript\");\n } catch (error) {\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n let message =\n \"You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please install it!\";\n\n if (!process.env.BABEL_8_BREAKING) {\n if (process.versions.pnp) {\n // Using Yarn PnP, which doesn't allow requiring packages that are not\n // explicitly specified as dependencies.\n message += `\nIf you are using Yarn Plug'n'Play, you may also need to add the following configuration to your .yarnrc.yml file:\n\npackageExtensions:\n\\t\"@babel/core@*\":\n\\t\\tpeerDependencies:\n\\t\\t\\t\"@babel/preset-typescript\": \"*\"\n`;\n }\n }\n\n throw new ConfigError(message, filepath);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_async3","require","_path","data","_url","_semver","_debug","_rewriteStackTrace","_configError","_transformFile","asyncGeneratorStep","n","t","e","r","o","a","c","i","u","value","done","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","debug","buildDebug","import_","_unused","supportsESM","exports","semver","satisfies","process","versions","node","LOADING_CJS_FILES","Set","loadCjsDefault","filepath","has","module","add","endHiddenCallStack","delete","__esModule","Symbol","toStringTag","default","undefined","loadMjsFromPath","_loadMjsFromPath","url","pathToFileURL","toString","ConfigError","_x","SUPPORTED_EXTENSIONS","asyncModules","loadCodeDefault","loader","esmError","tlaError","_async2","async","ext","path","extname","pattern","loadCtsDefault","code","_async","isAsync","waitFor","Error","hasTsSupport","extensions","handler","opts","babelrc","configFile","sourceType","sourceMaps","sourceFileName","basename","presets","getTSPreset","Object","assign","onlyRemoveTypeImports","optimizeConstEnums","allowDeclareFields","m","filename","endsWith","_compile","transformFileSync","error","packageJson","lt","version","console","message","pnp"],"sources":["../../../src/config/files/module-types.ts"],"sourcesContent":["import { isAsync, waitFor } from \"../../gensync-utils/async.ts\";\nimport type { Handler } from \"gensync\";\nimport path from \"path\";\nimport { pathToFileURL } from \"url\";\nimport { createRequire } from \"module\";\nimport semver from \"semver\";\nimport buildDebug from \"debug\";\n\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport type { InputOptions } from \"../index.ts\";\nimport { transformFileSync } from \"../../transform-file.ts\";\n\nconst debug = buildDebug(\"babel:config:loading:files:module-types\");\n\nconst require = createRequire(import.meta.url);\n\nif (!process.env.BABEL_8_BREAKING) {\n try {\n // Old Node.js versions don't support import() syntax.\n // eslint-disable-next-line no-var\n var import_:\n | ((specifier: string | URL) => any)\n | undefined = require(\"./import.cjs\");\n } catch {}\n}\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\nconst LOADING_CJS_FILES = new Set();\n\nfunction loadCjsDefault(filepath: string) {\n // The `require()` call below can make this code reentrant if a require hook\n // like @babel/register has been loaded into the system. That would cause\n // Babel to attempt to compile the `.babelrc.js` file as it loads below. To\n // cover this case, we auto-ignore re-entrant config processing. ESM loaders\n // do not have this problem, because loaders do not apply to themselves.\n if (LOADING_CJS_FILES.has(filepath)) {\n debug(\"Auto-ignoring usage of config %o.\", filepath);\n return {};\n }\n\n let module;\n try {\n LOADING_CJS_FILES.add(filepath);\n module = endHiddenCallStack(require)(filepath);\n } finally {\n LOADING_CJS_FILES.delete(filepath);\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return module != null &&\n (module.__esModule || module[Symbol.toStringTag] === \"Module\")\n ? module.default\n : module;\n } else {\n return module != null &&\n (module.__esModule || module[Symbol.toStringTag] === \"Module\")\n ? module.default ||\n /* fallbackToTranspiledModule */ (arguments[1] ? module : undefined)\n : module;\n }\n}\n\nconst loadMjsFromPath = endHiddenCallStack(async function loadMjsFromPath(\n filepath: string,\n) {\n // Add ?import as a workaround for https://github.com/nodejs/node/issues/55500\n const url = pathToFileURL(filepath).toString() + \"?import\";\n\n if (process.env.BABEL_8_BREAKING) {\n return await import(url);\n } else {\n if (!import_) {\n throw new ConfigError(\n \"Internal error: Native ECMAScript modules aren't supported by this platform.\\n\",\n filepath,\n );\n }\n\n return await import_(url);\n }\n});\n\nconst SUPPORTED_EXTENSIONS = new Set([\".js\", \".mjs\", \".cjs\", \".cts\"] as const);\ntype SetValue> = T extends Set ? U : never;\n\nconst asyncModules = new Set();\n\nexport default function* loadCodeDefault(\n filepath: string,\n loader: \"require\" | \"auto\",\n esmError: string,\n tlaError: string,\n): Handler {\n let async;\n\n let ext = path.extname(filepath);\n if (!SUPPORTED_EXTENSIONS.has(ext as any)) ext = \".js\";\n\n const pattern =\n `${loader} ${ext}` as `${typeof loader} ${SetValue}`;\n switch (pattern) {\n case \"require .cjs\":\n case \"auto .cjs\":\n if (process.env.BABEL_8_BREAKING) {\n return loadCjsDefault(filepath);\n } else {\n return loadCjsDefault(\n filepath,\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n /* fallbackToTranspiledModule */ arguments[2],\n );\n }\n case \"require .cts\":\n case \"auto .cts\":\n return loadCtsDefault(filepath);\n case \"auto .js\":\n case \"require .js\":\n case \"require .mjs\": // Some versions of Node.js support require(esm):\n try {\n if (process.env.BABEL_8_BREAKING) {\n return loadCjsDefault(filepath);\n } else {\n return loadCjsDefault(\n filepath,\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n /* fallbackToTranspiledModule */ arguments[2],\n );\n }\n } catch (e) {\n if (\n e.code === \"ERR_REQUIRE_ASYNC_MODULE\" ||\n // Node.js 13.0.0 throws ERR_REQUIRE_CYCLE_MODULE instead of\n // ERR_REQUIRE_ASYNC_MODULE when requiring a module a second time\n // https://github.com/nodejs/node/issues/55516\n // This `asyncModules` won't catch all of such cases, but it will\n // at least catch those caused by Babel trying to load a module twice.\n (e.code === \"ERR_REQUIRE_CYCLE_MODULE\" && asyncModules.has(filepath))\n ) {\n asyncModules.add(filepath);\n if (!(async ??= yield* isAsync())) {\n throw new ConfigError(tlaError, filepath);\n }\n // fall through: require() failed due to TLA\n } else if (\n e.code === \"ERR_REQUIRE_ESM\" ||\n (!process.env.BABEL_8_BREAKING && ext === \".mjs\")\n ) {\n // fall through: require() failed due to ESM\n } else {\n throw e;\n }\n }\n // fall through: require() failed due to ESM or TLA, try import()\n case \"auto .mjs\":\n if ((async ??= yield* isAsync())) {\n return (yield* waitFor(loadMjsFromPath(filepath))).default;\n }\n throw new ConfigError(esmError, filepath);\n default:\n throw new Error(\"Internal Babel error: unreachable code.\");\n }\n}\n\nfunction loadCtsDefault(filepath: string) {\n const ext = \".cts\";\n const hasTsSupport = !!(\n require.extensions[\".ts\"] ||\n require.extensions[\".cts\"] ||\n require.extensions[\".mts\"]\n );\n\n let handler: NodeJS.RequireExtensions[\"\"];\n\n if (!hasTsSupport) {\n const opts: InputOptions = {\n babelrc: false,\n configFile: false,\n sourceType: \"unambiguous\",\n sourceMaps: \"inline\",\n sourceFileName: path.basename(filepath),\n presets: [\n [\n getTSPreset(filepath),\n {\n onlyRemoveTypeImports: true,\n optimizeConstEnums: true,\n ...(process.env.BABEL_8_BREAKING\n ? {}\n : { allowDeclareFields: true }),\n },\n ],\n ],\n };\n\n handler = function (m, filename) {\n // If we want to support `.ts`, `.d.ts` must be handled specially.\n if (handler && filename.endsWith(ext)) {\n try {\n // @ts-expect-error Undocumented API\n return m._compile(\n transformFileSync(filename, {\n ...opts,\n filename,\n }).code,\n filename,\n );\n } catch (error) {\n if (!hasTsSupport) {\n // TODO(Babel 8): Add this as an optional peer dependency\n // eslint-disable-next-line import/no-extraneous-dependencies\n const packageJson = require(\"@babel/preset-typescript/package.json\");\n if (semver.lt(packageJson.version, \"7.21.4\")) {\n console.error(\n \"`.cts` configuration file failed to load, please try to update `@babel/preset-typescript`.\",\n );\n }\n }\n throw error;\n }\n }\n return require.extensions[\".js\"](m, filename);\n };\n require.extensions[ext] = handler;\n }\n try {\n return loadCjsDefault(filepath);\n } finally {\n if (!hasTsSupport) {\n if (require.extensions[ext] === handler) delete require.extensions[ext];\n handler = undefined;\n }\n }\n}\n\nfunction getTSPreset(filepath: string) {\n try {\n // eslint-disable-next-line import/no-extraneous-dependencies\n return require(\"@babel/preset-typescript\");\n } catch (error) {\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n let message =\n \"You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please install it!\";\n\n if (!process.env.BABEL_8_BREAKING) {\n if (process.versions.pnp) {\n // Using Yarn PnP, which doesn't allow requiring packages that are not\n // explicitly specified as dependencies.\n message += `\nIf you are using Yarn Plug'n'Play, you may also need to add the following configuration to your .yarnrc.yml file:\n\npackageExtensions:\n\\t\"@babel/core@*\":\n\\t\\tpeerDependencies:\n\\t\\t\\t\"@babel/preset-typescript\": \"*\"\n`;\n }\n }\n\n throw new ConfigError(message, filepath);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ 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 index 25435ae..ba1e438 100644 --- a/node_modules/@babel/core/lib/config/files/plugins.js +++ b/node_modules/@babel/core/lib/config/files/plugins.js @@ -49,8 +49,11 @@ const OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/; const resolvePlugin = exports.resolvePlugin = resolveStandardizedName.bind(null, "plugin"); const resolvePreset = exports.resolvePreset = resolveStandardizedName.bind(null, "preset"); function* loadPlugin(name, dirname) { - const filepath = resolvePlugin(name, dirname, yield* (0, _async.isAsync)()); - const value = yield* requireModule("plugin", filepath); + const { + filepath, + loader + } = resolvePlugin(name, dirname, yield* (0, _async.isAsync)()); + const value = yield* requireModule("plugin", loader, filepath); debug("Loaded plugin %o from %o.", name, dirname); return { filepath, @@ -58,8 +61,11 @@ function* loadPlugin(name, dirname) { }; } function* loadPreset(name, dirname) { - const filepath = resolvePreset(name, dirname, yield* (0, _async.isAsync)()); - const value = yield* requireModule("preset", filepath); + const { + filepath, + loader + } = resolvePreset(name, dirname, yield* (0, _async.isAsync)()); + const value = yield* requireModule("preset", loader, filepath); debug("Loaded preset %o from %o.", name, dirname); return { filepath, @@ -154,7 +160,10 @@ function resolveStandardizedNameForRequire(type, name, dirname) { while (!res.done) { res = it.next(tryRequireResolve(res.value, dirname)); } - return res.value; + return { + loader: "require", + filepath: res.value + }; } function resolveStandardizedNameForImport(type, name, dirname) { const parentUrl = (0, _url().pathToFileURL)(_path().join(dirname, "./babel-virtual-resolve-base.js")).href; @@ -163,15 +172,18 @@ function resolveStandardizedNameForImport(type, name, dirname) { while (!res.done) { res = it.next(tryImportMetaResolve(res.value, parentUrl)); } - return (0, _url().fileURLToPath)(res.value); + return { + loader: "auto", + filepath: (0, _url().fileURLToPath)(res.value) + }; } -function resolveStandardizedName(type, name, dirname, resolveESM) { - if (!_moduleTypes.supportsESM || !resolveESM) { +function resolveStandardizedName(type, name, dirname, allowAsync) { + if (!_moduleTypes.supportsESM || !allowAsync) { return resolveStandardizedNameForRequire(type, name, dirname); } try { const resolved = resolveStandardizedNameForImport(type, name, dirname); - if (!(0, _fs().existsSync)(resolved)) { + if (!(0, _fs().existsSync)(resolved.filepath)) { throw Object.assign(new Error(`Could not resolve "${name}" in file ${dirname}.`), { type: "MODULE_NOT_FOUND" }); @@ -190,7 +202,7 @@ function resolveStandardizedName(type, name, dirname, resolveESM) { { var LOADING_MODULES = new Set(); } -function* requireModule(type, name) { +function* requireModule(type, loader, 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.'); @@ -201,7 +213,7 @@ function* requireModule(type, name) { 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); + return yield* (0, _moduleTypes.default)(name, loader, `You appear to be using a native ECMAScript module ${type}, ` + "which is only supported when running Babel asynchronously " + "or when using the Node.js `--experimental-require-module` flag.", `You appear to be using a ${type} that contains top-level await, ` + "which is only supported when running Babel asynchronously.", true); } } catch (err) { err.message = `[BABEL]: ${err.message} (While processing: ${name})`; diff --git a/node_modules/@babel/core/lib/config/files/plugins.js.map b/node_modules/@babel/core/lib/config/files/plugins.js.map index e6fe3ff..aff595a 100644 --- a/node_modules/@babel/core/lib/config/files/plugins.js.map +++ b/node_modules/@babel/core/lib/config/files/plugins.js.map @@ -1 +1 @@ -{"version":3,"names":["_debug","data","require","_path","_async","_moduleTypes","_url","_importMetaResolve","_fs","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","exports","resolveStandardizedName","bind","resolvePreset","loadPlugin","name","dirname","filepath","isAsync","value","requireModule","loadPreset","standardizeName","type","path","isAbsolute","isPreset","replace","resolveAlternativesHelper","standardizedName","error","code","message","oppositeType","transformName","tryRequireResolve","id","v","w","split","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","tryImportMetaResolve","options","importMetaResolve","resolveStandardizedNameForRequire","it","res","next","done","resolveStandardizedNameForImport","parentUrl","pathToFileURL","join","href","fileURLToPath","resolveESM","supportsESM","resolved","existsSync","Object","assign","e","e2","LOADING_MODULES","Set","has","add","loadCodeDefault","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 type { Handler } from \"gensync\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\nimport loadCodeDefault, { supportsESM } from \"./module-types.ts\";\nimport { fileURLToPath, pathToFileURL } from \"url\";\n\nimport { resolve as importMetaResolve } from \"../../vendor/import-meta-resolve.js\";\n\nimport { createRequire } from \"module\";\nimport { existsSync } from \"fs\";\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 const resolvePlugin = resolveStandardizedName.bind(null, \"plugin\");\nexport const resolvePreset = resolveStandardizedName.bind(null, \"preset\");\n\nexport function* loadPlugin(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const filepath = resolvePlugin(name, dirname, yield* isAsync());\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 = resolvePreset(name, dirname, yield* isAsync());\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 if (type === \"plugin\") {\n const transformName = standardizedName.replace(\"-proposal-\", \"-transform-\");\n if (transformName !== standardizedName && !(yield transformName).error) {\n error.message += `\\n- Did you mean \"${transformName}\"?`;\n }\n }\n\n error.message += `\\n\nMake sure that all the Babel plugins and presets you are using\nare defined as dependencies or devDependencies in your package.json\nfile. It's possible that the missing plugin is loaded by a preset\nyou are using that forgot to add the plugin to its dependencies: you\ncan workaround this problem by explicitly adding the missing package\nto your top-level package.json.\n`;\n\n throw error;\n}\n\nfunction tryRequireResolve(\n id: string,\n dirname: string | undefined,\n): Result {\n try {\n if (dirname) {\n return { error: null, value: require.resolve(id, { paths: [dirname] }) };\n } else {\n return { error: null, value: require.resolve(id) };\n }\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction tryImportMetaResolve(\n id: Parameters[0],\n options: Parameters[1],\n): Result {\n try {\n return { error: null, value: 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, dirname));\n }\n return res.value;\n}\nfunction 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(tryImportMetaResolve(res.value, parentUrl));\n }\n return fileURLToPath(res.value);\n}\n\nfunction resolveStandardizedName(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n resolveESM: boolean,\n) {\n if (!supportsESM || !resolveESM) {\n return resolveStandardizedNameForRequire(type, name, dirname);\n }\n\n try {\n const resolved = resolveStandardizedNameForImport(type, name, dirname);\n // import-meta-resolve 4.0 does not throw if the module is not found.\n if (!existsSync(resolved)) {\n throw Object.assign(\n new Error(`Could not resolve \"${name}\" in file ${dirname}.`),\n { type: \"MODULE_NOT_FOUND\" },\n );\n }\n return resolved;\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\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\n if (process.env.BABEL_8_BREAKING) {\n return yield* loadCodeDefault(\n name,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously.\",\n );\n } else {\n return yield* loadCodeDefault(\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 // @ts-ignore(Babel 7 vs Babel 8) This param has been removed\n true,\n );\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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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_debug","data","require","_path","_async","_moduleTypes","_url","_importMetaResolve","_fs","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","exports","resolveStandardizedName","bind","resolvePreset","loadPlugin","name","dirname","filepath","loader","isAsync","value","requireModule","loadPreset","standardizeName","type","path","isAbsolute","isPreset","replace","resolveAlternativesHelper","standardizedName","error","code","message","oppositeType","transformName","tryRequireResolve","id","v","w","split","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","tryImportMetaResolve","options","importMetaResolve","resolveStandardizedNameForRequire","it","res","next","done","resolveStandardizedNameForImport","parentUrl","pathToFileURL","join","href","fileURLToPath","allowAsync","supportsESM","resolved","existsSync","Object","assign","e","e2","LOADING_MODULES","Set","has","add","loadCodeDefault","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 type { Handler } from \"gensync\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\nimport loadCodeDefault, { supportsESM } from \"./module-types.ts\";\nimport { fileURLToPath, pathToFileURL } from \"url\";\n\nimport { resolve as importMetaResolve } from \"../../vendor/import-meta-resolve.js\";\n\nimport { createRequire } from \"module\";\nimport { existsSync } from \"fs\";\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 const resolvePlugin = resolveStandardizedName.bind(null, \"plugin\");\nexport const resolvePreset = resolveStandardizedName.bind(null, \"preset\");\n\nexport function* loadPlugin(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const { filepath, loader } = resolvePlugin(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"plugin\", loader, 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, loader } = resolvePreset(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"preset\", loader, 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 if (type === \"plugin\") {\n const transformName = standardizedName.replace(\"-proposal-\", \"-transform-\");\n if (transformName !== standardizedName && !(yield transformName).error) {\n error.message += `\\n- Did you mean \"${transformName}\"?`;\n }\n }\n\n error.message += `\\n\nMake sure that all the Babel plugins and presets you are using\nare defined as dependencies or devDependencies in your package.json\nfile. It's possible that the missing plugin is loaded by a preset\nyou are using that forgot to add the plugin to its dependencies: you\ncan workaround this problem by explicitly adding the missing package\nto your top-level package.json.\n`;\n\n throw error;\n}\n\nfunction tryRequireResolve(\n id: string,\n dirname: string | undefined,\n): Result {\n try {\n if (dirname) {\n return { error: null, value: require.resolve(id, { paths: [dirname] }) };\n } else {\n return { error: null, value: require.resolve(id) };\n }\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction tryImportMetaResolve(\n id: Parameters[0],\n options: Parameters[1],\n): Result {\n try {\n return { error: null, value: 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, dirname));\n }\n return { loader: \"require\" as const, filepath: res.value };\n}\nfunction 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(tryImportMetaResolve(res.value, parentUrl));\n }\n return { loader: \"auto\" as const, filepath: fileURLToPath(res.value) };\n}\n\nfunction resolveStandardizedName(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n allowAsync: boolean,\n) {\n if (!supportsESM || !allowAsync) {\n return resolveStandardizedNameForRequire(type, name, dirname);\n }\n\n try {\n const resolved = resolveStandardizedNameForImport(type, name, dirname);\n // import-meta-resolve 4.0 does not throw if the module is not found.\n if (!existsSync(resolved.filepath)) {\n throw Object.assign(\n new Error(`Could not resolve \"${name}\" in file ${dirname}.`),\n { type: \"MODULE_NOT_FOUND\" },\n );\n }\n return resolved;\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\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var LOADING_MODULES = new Set();\n}\nfunction* requireModule(\n type: string,\n loader: \"require\" | \"auto\",\n name: string,\n): 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\n if (process.env.BABEL_8_BREAKING) {\n return yield* loadCodeDefault(\n name,\n loader,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n `You appear to be using a ${type} that contains top-level await, ` +\n \"which is only supported when running Babel asynchronously.\",\n );\n } else {\n return yield* loadCodeDefault(\n name,\n loader,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n `You appear to be using a ${type} that contains top-level await, ` +\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 // @ts-ignore(Babel 7 vs Babel 8) This param has been removed\n true,\n );\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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","ignoreList":[]} \ 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 index 6b8c295..c2477ce 100644 --- a/node_modules/@babel/core/lib/config/full.js +++ b/node_modules/@babel/core/lib/config/full.js @@ -235,9 +235,9 @@ const instantiatePlugin = (0, _caching.makeWeakCache)(function* ({ 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.pre = chainMaybeAsync(inherits.pre, plugin.pre); + plugin.post = chainMaybeAsync(inherits.post, plugin.post); + plugin.manipulateOptions = chainMaybeAsync(inherits.manipulateOptions, plugin.manipulateOptions); plugin.visitor = _traverse().default.visitors.merge([inherits.visitor || {}, plugin.visitor || {}]); if (inherits.externalDependencies.length > 0) { if (externalDependencies.length === 0) { @@ -296,13 +296,15 @@ function* loadPresetDescriptor(descriptor, context) { externalDependencies: preset.externalDependencies }; } -function chain(a, b) { - const fns = [a, b].filter(Boolean); - if (fns.length <= 1) return fns[0]; +function chainMaybeAsync(a, b) { + if (!a) return b; + if (!b) return a; return function (...args) { - for (const fn of fns) { - fn.apply(this, args); + const res = a.apply(this, args); + if (res && typeof res.then === "function") { + return res.then(() => b.apply(this, args)); } + return b.apply(this, args); }; } 0 && 0; diff --git a/node_modules/@babel/core/lib/config/full.js.map b/node_modules/@babel/core/lib/config/full.js.map index 63b3741..60419f0 100644 --- a/node_modules/@babel/core/lib/config/full.js.map +++ b/node_modules/@babel/core/lib/config/full.js.map @@ -1 +1 @@ -{"version":3,"names":["_gensync","data","require","_async","_util","context","_plugin","_item","_configChain","_deepArray","_traverse","_caching","_options","_plugins","_configApi","_partial","_configError","_default","exports","default","gensync","loadFullConfig","inputOpts","_opts$assumptions","result","loadPrivatePartialConfig","options","fileHandling","optionDefaults","plugins","presets","Error","presetContext","Object","assign","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","_context$filename","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","pre","post","manipulateOptions","visitors","merge","Plugin","needsFilename","val","validateIfOptionNeedsFilename","include","exclude","formattedPresetName","ConfigError","join","validatePreset","_options$overrides","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 {\n forwardAsync,\n maybeAsync,\n isThenable,\n} from \"../gensync-utils/async.ts\";\n\nimport { mergeOptions } from \"./util.ts\";\nimport * as context from \"../index.ts\";\nimport Plugin from \"./plugin.ts\";\nimport { getItemDescriptor } from \"./item.ts\";\nimport { buildPresetChain } from \"./config-chain.ts\";\nimport { finalize as freezeDeepArray } from \"./helpers/deep-array.ts\";\nimport type { DeepArray, ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\nimport type {\n ConfigContext,\n ConfigChain,\n PresetInstance,\n} from \"./config-chain.ts\";\nimport type { UnloadedDescriptor } from \"./config-descriptors.ts\";\nimport traverse from \"@babel/traverse\";\nimport { makeWeakCache, makeWeakCacheSync } from \"./caching.ts\";\nimport type { CacheConfigurator } from \"./caching.ts\";\nimport {\n validate,\n checkNoUnwrappedItemOptionPairs,\n} from \"./validation/options.ts\";\nimport type { PluginItem } from \"./validation/options.ts\";\nimport { validatePluginObject } from \"./validation/plugins.ts\";\nimport { makePluginAPI, makePresetAPI } from \"./helpers/config-api.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\nimport loadPrivatePartialConfig from \"./partial.ts\";\nimport type { ValidatedOptions } from \"./validation/options.ts\";\n\nimport type * as Context from \"./cache-contexts.ts\";\nimport ConfigError from \"../errors/config-error.ts\";\n\ntype LoadedDescriptor = {\n value: any;\n options: object;\n dirname: string;\n alias: string;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type { InputOptions } from \"./validation/options.ts\";\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 [],\n ];\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 = 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: unknown = value;\n if (typeof value === \"function\") {\n const factory = maybeAsync(\n value as (api: API, options: object, dirname: string) => unknown,\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 options.overrides?.forEach(overrideOptions =>\n validateIfOptionNeedsFilename(overrideOptions, descriptor),\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":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,IAAAE,MAAA,GAAAD,OAAA;AAMA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AAQA,SAAAQ,UAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,SAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,IAAAU,QAAA,GAAAT,OAAA;AAEA,IAAAU,QAAA,GAAAV,OAAA;AAKA,IAAAW,QAAA,GAAAX,OAAA;AACA,IAAAY,UAAA,GAAAZ,OAAA;AAGA,IAAAa,QAAA,GAAAb,OAAA;AAIA,IAAAc,YAAA,GAAAd,OAAA;AAAoD,IAAAe,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAsBrCC,SAAMA,CAAC,CAAC,UAAUC,cAAcA,CAC7CC,SAAkB,EACc;EAAA,IAAAC,iBAAA;EAChC,MAAMC,MAAM,GAAG,OAAO,IAAAC,gBAAwB,EAACH,SAAS,CAAC;EACzD,IAAI,CAACE,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EACA,MAAM;IAAEE,OAAO;IAAErB,OAAO;IAAEsB;EAAa,CAAC,GAAGH,MAAM;EAEjD,IAAIG,YAAY,KAAK,SAAS,EAAE;IAC9B,OAAO,IAAI;EACb;EAEA,MAAMC,cAAc,GAAG,CAAC,CAAC;EAEzB,MAAM;IAAEC,OAAO;IAAEC;EAAQ,CAAC,GAAGJ,OAAO;EAEpC,IAAI,CAACG,OAAO,IAAI,CAACC,OAAO,EAAE;IACxB,MAAM,IAAIC,KAAK,CAAC,+CAA+C,CAAC;EAClE;EAEA,MAAMC,aAAiC,GAAAC,MAAA,CAAAC,MAAA,KAClC7B,OAAO;IACV8B,OAAO,EAAET,OAAO,CAACS;EAAO,EACzB;EAED,MAAMC,YAAY,GAAIC,IAAgB,IAAK;IACzC,MAAMC,IAAI,GAAG,IAAAC,uBAAiB,EAACF,IAAI,CAAC;IACpC,IAAI,CAACC,IAAI,EAAE;MACT,MAAM,IAAIP,KAAK,CAAC,yCAAyC,CAAC;IAC5D;IAEA,OAAOO,IAAI;EACb,CAAC;EAED,MAAME,kBAAkB,GAAGV,OAAO,CAACW,GAAG,CAACL,YAAY,CAAC;EACpD,MAAMM,yBAAyB,GAAGb,OAAO,CAACY,GAAG,CAACL,YAAY,CAAC;EAC3D,MAAMO,uBAAoE,GAAG,CAC3E,EAAE,CACH;EACD,MAAMC,MAA4B,GAAG,EAAE;EAEvC,MAAMC,oBAAuC,GAAG,EAAE;EAElD,MAAMC,OAAO,GAAG,OAAOC,YAAY,CACjC1C,OAAO,EACP,UAAU2C,wBAAwBA,CAChCC,UAAgD,EAChDC,qBAA2D,EACrC;IACtB,MAAMpB,OAGJ,GAAG,EAAE;IAEP,KAAK,IAAIqB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,UAAU,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;MAC1C,MAAME,UAAU,GAAGJ,UAAU,CAACE,CAAC,CAAC;MAChC,IAAIE,UAAU,CAAC3B,OAAO,KAAK,KAAK,EAAE;QAChC,IAAI;UAEF,IAAI4B,MAAM,GAAG,OAAOC,oBAAoB,CAACF,UAAU,EAAErB,aAAa,CAAC;QACrE,CAAC,CAAC,OAAOwB,CAAC,EAAE;UACV,IAAIA,CAAC,CAACC,IAAI,KAAK,sBAAsB,EAAE;YACrC,IAAAC,wCAA+B,EAACT,UAAU,EAAEE,CAAC,EAAE,QAAQ,EAAEK,CAAC,CAAC;UAC7D;UACA,MAAMA,CAAC;QACT;QAEAX,oBAAoB,CAACc,IAAI,CAACL,MAAM,CAACT,oBAAoB,CAAC;QAKtD,IAAIQ,UAAU,CAACO,OAAO,EAAE;UACtB9B,OAAO,CAAC6B,IAAI,CAAC;YAAEL,MAAM,EAAEA,MAAM,CAACO,KAAK;YAAEC,IAAI,EAAE;UAAG,CAAC,CAAC;QAClD,CAAC,MAAM;UACLhC,OAAO,CAACiC,OAAO,CAAC;YACdT,MAAM,EAAEA,MAAM,CAACO,KAAK;YACpBC,IAAI,EAAEZ;UACR,CAAC,CAAC;QACJ;MACF;IACF;IAGA,IAAIpB,OAAO,CAACsB,MAAM,GAAG,CAAC,EAAE;MAGtBT,uBAAuB,CAACqB,MAAM,CAC5B,CAAC,EACD,CAAC,EACD,GAAGlC,OAAO,CAACW,GAAG,CAACwB,CAAC,IAAIA,CAAC,CAACH,IAAI,CAAC,CAACI,MAAM,CAACC,CAAC,IAAIA,CAAC,KAAKjB,qBAAqB,CACrE,CAAC;MAED,KAAK,MAAM;QAAEI,MAAM;QAAEQ;MAAK,CAAC,IAAIhC,OAAO,EAAE;QACtC,IAAI,CAACwB,MAAM,EAAE,OAAO,IAAI;QAExBQ,IAAI,CAACH,IAAI,CAAC,GAAGL,MAAM,CAACzB,OAAO,CAAC;QAE5B,MAAMiB,OAAO,GAAG,OAAOE,wBAAwB,CAACM,MAAM,CAACxB,OAAO,EAAEgC,IAAI,CAAC;QACrE,IAAIhB,OAAO,EAAE,OAAO,IAAI;QAExBQ,MAAM,CAAC5B,OAAO,CAAC0C,OAAO,CAACC,IAAI,IAAI;UAC7B,IAAAC,kBAAY,EAAC1C,cAAc,EAAEyC,IAAI,CAAC;QACpC,CAAC,CAAC;MACJ;IACF;EACF,CACF,CAAC,CAAC7B,kBAAkB,EAAEG,uBAAuB,CAAC,CAAC,CAAC,CAAC;EAEjD,IAAIG,OAAO,EAAE,OAAO,IAAI;EAExB,MAAMuB,IAAS,GAAGzC,cAAc;EAChC,IAAA0C,kBAAY,EAACD,IAAI,EAAE3C,OAAO,CAAC;EAE3B,MAAM6C,aAAiC,GAAAtC,MAAA,CAAAC,MAAA,KAClCF,aAAa;IAChBwC,WAAW,GAAAjD,iBAAA,GAAE8C,IAAI,CAACG,WAAW,YAAAjD,iBAAA,GAAI,CAAC;EAAC,EACpC;EAED,OAAOwB,YAAY,CAAC1C,OAAO,EAAE,UAAUoE,qBAAqBA,CAAA,EAAG;IAC7D9B,uBAAuB,CAAC,CAAC,CAAC,CAACoB,OAAO,CAAC,GAAGrB,yBAAyB,CAAC;IAEhE,KAAK,MAAMgC,KAAK,IAAI/B,uBAAuB,EAAE;MAC3C,MAAMmB,IAAc,GAAG,EAAE;MACzBlB,MAAM,CAACe,IAAI,CAACG,IAAI,CAAC;MAEjB,KAAK,IAAIX,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuB,KAAK,CAACtB,MAAM,EAAED,CAAC,EAAE,EAAE;QACrC,MAAME,UAAU,GAAGqB,KAAK,CAACvB,CAAC,CAAC;QAC3B,IAAIE,UAAU,CAAC3B,OAAO,KAAK,KAAK,EAAE;UAChC,IAAI;YAEF,IAAIiD,MAAM,GAAG,OAAOC,oBAAoB,CAACvB,UAAU,EAAEkB,aAAa,CAAC;UACrE,CAAC,CAAC,OAAOf,CAAC,EAAE;YACV,IAAIA,CAAC,CAACC,IAAI,KAAK,+BAA+B,EAAE;cAE9C,IAAAC,wCAA+B,EAACgB,KAAK,EAAEvB,CAAC,EAAE,QAAQ,EAAEK,CAAC,CAAC;YACxD;YACA,MAAMA,CAAC;UACT;UACAM,IAAI,CAACH,IAAI,CAACgB,MAAM,CAAC;UAEjB9B,oBAAoB,CAACc,IAAI,CAACgB,MAAM,CAAC9B,oBAAoB,CAAC;QACxD;MACF;IACF;EACF,CAAC,CAAC,CAAC,CAAC;EAEJwB,IAAI,CAACxC,OAAO,GAAGe,MAAM,CAAC,CAAC,CAAC;EACxByB,IAAI,CAACvC,OAAO,GAAGc,MAAM,CAClBiC,KAAK,CAAC,CAAC,CAAC,CACRX,MAAM,CAACrC,OAAO,IAAIA,OAAO,CAACuB,MAAM,GAAG,CAAC,CAAC,CACrCX,GAAG,CAACZ,OAAO,KAAK;IAAEA;EAAQ,CAAC,CAAC,CAAC;EAChCwC,IAAI,CAACS,aAAa,GAAGT,IAAI,CAACvC,OAAO,CAACsB,MAAM,GAAG,CAAC;EAE5C,OAAO;IACL1B,OAAO,EAAE2C,IAAI;IACbzB,MAAM,EAAEA,MAAM;IACdC,oBAAoB,EAAE,IAAAkC,mBAAe,EAAClC,oBAAoB;EAC5D,CAAC;AACH,CAAC,CAAC;AAEF,SAASE,YAAYA,CAAqB1C,OAAsB,EAAE2E,EAAK,EAAK;EAC1E,OAAO,WAAWC,IAAa,EAAEC,IAAa,EAAE;IAC9C,IAAI;MACF,OAAO,OAAOF,EAAE,CAACC,IAAI,EAAEC,IAAI,CAAC;IAC9B,CAAC,CAAC,OAAO1B,CAAC,EAAE;MAGV,IAAI,CAAC,YAAY,CAAC2B,IAAI,CAAC3B,CAAC,CAAC4B,OAAO,CAAC,EAAE;QAAA,IAAAC,iBAAA;QACjC7B,CAAC,CAAC4B,OAAO,GAAG,YAAAC,iBAAA,GAAWhF,OAAO,CAACiF,QAAQ,YAAAD,iBAAA,GAAI,cAAc,KACvD7B,CAAC,CAAC4B,OAAO,EACT;MACJ;MAEA,MAAM5B,CAAC;IACT;EACF,CAAC;AACH;AAKA,MAAM+B,oBAAoB,GACxBC,UAGQ,IAER,IAAAC,sBAAa,EAAC,WACZ;EAAEC,KAAK;EAAEhE,OAAO;EAAEiE,OAAO;EAAEC;AAA+B,CAAC,EAC3DC,KAAiC,EACN;EAE3B,IAAInE,OAAO,KAAK,KAAK,EAAE,MAAM,IAAIK,KAAK,CAAC,mBAAmB,CAAC;EAE3DL,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;EAEvB,MAAMmB,oBAAmC,GAAG,EAAE;EAE9C,IAAIR,IAAa,GAAGqD,KAAK;EACzB,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;IAC/B,MAAMI,OAAO,GAAG,IAAAC,iBAAU,EACxBL,KAAK,EACL,wFACF,CAAC;IAED,MAAMM,GAAG,GAAA/D,MAAA,CAAAC,MAAA,KACJ7B,OAAO,EACPmF,UAAU,CAACK,KAAK,EAAEhD,oBAAoB,CAAC,CAC3C;IACD,IAAI;MACFR,IAAI,GAAG,OAAOyD,OAAO,CAACE,GAAG,EAAEtE,OAAO,EAAEiE,OAAO,CAAC;IAC9C,CAAC,CAAC,OAAOnC,CAAC,EAAE;MACV,IAAIoC,KAAK,EAAE;QACTpC,CAAC,CAAC4B,OAAO,IAAI,uBAAuBa,IAAI,CAACC,SAAS,CAACN,KAAK,CAAC,GAAG;MAC9D;MACA,MAAMpC,CAAC;IACT;EACF;EAEA,IAAI,CAACnB,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACrC,MAAM,IAAIN,KAAK,CAAC,yCAAyC,CAAC;EAC5D;EAEA,IAAI,IAAAoE,iBAAU,EAAC9D,IAAI,CAAC,EAAE;IAEpB,OAAO,EAAE;IAET,MAAM,IAAIN,KAAK,CACb,gDAAgD,GAC9C,wDAAwD,GACxD,sCAAsC,GACtC,oDAAoD,GACpD,8DAA8D,GAC9D,sBAAsBkE,IAAI,CAACC,SAAS,CAACN,KAAK,CAAC,GAC/C,CAAC;EACH;EAEA,IACE/C,oBAAoB,CAACO,MAAM,GAAG,CAAC,KAC9B,CAACyC,KAAK,CAACO,UAAU,CAAC,CAAC,IAAIP,KAAK,CAACQ,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,EACnD;IACA,IAAIC,KAAK,GACP,sDAAsD,GACtD,IAAIzD,oBAAoB,CAAC,CAAC,CAAC,mBAAmB;IAChD,IAAI,CAACgD,KAAK,CAACO,UAAU,CAAC,CAAC,EAAE;MACvBE,KAAK,IAAI,mFAAmF;IAC9F,CAAC,MAAM;MACLA,KAAK,IAAI,gDAAgD;IAC3D;IACAA,KAAK,IACH,mFAAmF,GACnF,sEAAsE,GACtE,0DAA0D,GAC1D,sBAAsBL,IAAI,CAACC,SAAS,CAACN,KAAK,CAAC,GAAG;IAEhD,MAAM,IAAI7D,KAAK,CAACuE,KAAK,CAAC;EACxB;EAEA,OAAO;IACLZ,KAAK,EAAErD,IAAI;IACXX,OAAO;IACPiE,OAAO;IACPC,KAAK;IACL/C,oBAAoB,EAAE,IAAAkC,mBAAe,EAAClC,oBAAoB;EAC5D,CAAC;AACH,CAAC,CAAC;AAEJ,MAAM0D,sBAAsB,GAAGhB,oBAAoB,CAGjDiB,wBAAa,CAAC;AAChB,MAAMC,sBAAsB,GAAGlB,oBAAoB,CAGjDmB,wBAAa,CAAC;AAEhB,MAAMC,iBAAiB,GAAG,IAAAlB,sBAAa,EAAC,WACtC;EAAEC,KAAK;EAAEhE,OAAO;EAAEiE,OAAO;EAAEC,KAAK;EAAE/C;AAAuC,CAAC,EAC1EgD,KAA8C,EAC7B;EACjB,MAAMe,SAAS,GAAG,IAAAC,6BAAoB,EAACnB,KAAK,CAAC;EAE7C,MAAMf,MAAM,GAAA1C,MAAA,CAAAC,MAAA,KACP0E,SAAS,CACb;EACD,IAAIjC,MAAM,CAACmC,OAAO,EAAE;IAClBnC,MAAM,CAACmC,OAAO,GAAGC,mBAAQ,CAACC,OAAO,CAAA/E,MAAA,CAAAC,MAAA,KAC5ByC,MAAM,CAACmC,OAAO,CAClB,CAAC;EACJ;EAEA,IAAInC,MAAM,CAACsC,QAAQ,EAAE;IACnB,MAAMC,kBAAiD,GAAG;MACxDC,IAAI,EAAEC,SAAS;MACfxB,KAAK,EAAE,GAAGA,KAAK,WAAW;MAC1BF,KAAK,EAAEf,MAAM,CAACsC,QAAQ;MACtBvF,OAAO;MACPiE;IACF,CAAC;IAED,MAAMsB,QAAQ,GAAG,OAAO,IAAAI,mBAAY,EAACzC,oBAAoB,EAAE0C,GAAG,IAAI;MAEhE,OAAOzB,KAAK,CAAC0B,UAAU,CAACtH,IAAI,IAAIqH,GAAG,CAACJ,kBAAkB,EAAEjH,IAAI,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF0E,MAAM,CAAC6C,GAAG,GAAG3D,KAAK,CAACoD,QAAQ,CAACO,GAAG,EAAE7C,MAAM,CAAC6C,GAAG,CAAC;IAC5C7C,MAAM,CAAC8C,IAAI,GAAG5D,KAAK,CAACoD,QAAQ,CAACQ,IAAI,EAAE9C,MAAM,CAAC8C,IAAI,CAAC;IAC/C9C,MAAM,CAAC+C,iBAAiB,GAAG7D,KAAK,CAC9BoD,QAAQ,CAACS,iBAAiB,EAC1B/C,MAAM,CAAC+C,iBACT,CAAC;IACD/C,MAAM,CAACmC,OAAO,GAAGC,mBAAQ,CAACY,QAAQ,CAACC,KAAK,CAAC,CACvCX,QAAQ,CAACH,OAAO,IAAI,CAAC,CAAC,EACtBnC,MAAM,CAACmC,OAAO,IAAI,CAAC,CAAC,CACrB,CAAC;IAEF,IAAIG,QAAQ,CAACpE,oBAAoB,CAACO,MAAM,GAAG,CAAC,EAAE;MAC5C,IAAIP,oBAAoB,CAACO,MAAM,KAAK,CAAC,EAAE;QACrCP,oBAAoB,GAAGoE,QAAQ,CAACpE,oBAAoB;MACtD,CAAC,MAAM;QACLA,oBAAoB,GAAG,IAAAkC,mBAAe,EAAC,CACrClC,oBAAoB,EACpBoE,QAAQ,CAACpE,oBAAoB,CAC9B,CAAC;MACJ;IACF;EACF;EAEA,OAAO,IAAIgF,eAAM,CAAClD,MAAM,EAAEjD,OAAO,EAAEkE,KAAK,EAAE/C,oBAAoB,CAAC;AACjE,CAAC,CAAC;AAKF,UAAU+B,oBAAoBA,CAC5BvB,UAAyC,EACzChD,OAA6B,EACZ;EACjB,IAAIgD,UAAU,CAACqC,KAAK,YAAYmC,eAAM,EAAE;IACtC,IAAIxE,UAAU,CAAC3B,OAAO,EAAE;MACtB,MAAM,IAAIK,KAAK,CACb,8DACF,CAAC;IACH;IAEA,OAAOsB,UAAU,CAACqC,KAAK;EACzB;EAEA,OAAO,OAAOiB,iBAAiB,CAC7B,OAAOJ,sBAAsB,CAAClD,UAAU,EAAEhD,OAAO,CAAC,EAClDA,OACF,CAAC;AACH;AAEA,MAAMyH,aAAa,GAAIC,GAAY,IAAKA,GAAG,IAAI,OAAOA,GAAG,KAAK,UAAU;AAExE,MAAMC,6BAA6B,GAAGA,CACpCtG,OAAyB,EACzB2B,UAAyC,KAChC;EACT,IACEyE,aAAa,CAACpG,OAAO,CAACyD,IAAI,CAAC,IAC3B2C,aAAa,CAACpG,OAAO,CAACuG,OAAO,CAAC,IAC9BH,aAAa,CAACpG,OAAO,CAACwG,OAAO,CAAC,EAC9B;IACA,MAAMC,mBAAmB,GAAG9E,UAAU,CAAC8D,IAAI,GACvC,IAAI9D,UAAU,CAAC8D,IAAI,GAAG,GACtB,mBAAmB;IACvB,MAAM,IAAIiB,oBAAW,CACnB,CACE,UAAUD,mBAAmB,+DAA+D,EAC5F,QAAQ,EACR,8DAA8DA,mBAAmB,OAAO,EACxF,QAAQ,EACR,uEAAuE,CACxE,CAACE,IAAI,CAAC,IAAI,CACb,CAAC;EACH;AACF,CAAC;AAED,MAAMC,cAAc,GAAGA,CACrBhF,MAAsB,EACtBjD,OAAsB,EACtBgD,UAAyC,KAChC;EACT,IAAI,CAAChD,OAAO,CAACiF,QAAQ,EAAE;IAAA,IAAAiD,kBAAA;IACrB,MAAM;MAAE7G;IAAQ,CAAC,GAAG4B,MAAM;IAC1B0E,6BAA6B,CAACtG,OAAO,EAAE2B,UAAU,CAAC;IAClD,CAAAkF,kBAAA,GAAA7G,OAAO,CAAC8G,SAAS,aAAjBD,kBAAA,CAAmBnE,OAAO,CAACqE,eAAe,IACxCT,6BAA6B,CAACS,eAAe,EAAEpF,UAAU,CAC3D,CAAC;EACH;AACF,CAAC;AAED,MAAMqF,iBAAiB,GAAG,IAAAC,0BAAiB,EACzC,CAAC;EACCjD,KAAK;EACLC,OAAO;EACPC,KAAK;EACL/C;AACgB,CAAC,KAAqB;EACtC,OAAO;IACLnB,OAAO,EAAE,IAAAkH,iBAAQ,EAAC,QAAQ,EAAElD,KAAK,CAAC;IAClCE,KAAK;IACLD,OAAO;IACP9C;EACF,CAAC;AACH,CACF,CAAC;AAKD,UAAUU,oBAAoBA,CAC5BF,UAAyC,EACzChD,OAA2B,EAI1B;EACD,MAAMiD,MAAM,GAAGoF,iBAAiB,CAC9B,OAAOjC,sBAAsB,CAACpD,UAAU,EAAEhD,OAAO,CACnD,CAAC;EACDiI,cAAc,CAAChF,MAAM,EAAEjD,OAAO,EAAEgD,UAAU,CAAC;EAC3C,OAAO;IACLQ,KAAK,EAAE,OAAO,IAAAgF,6BAAgB,EAACvF,MAAM,EAAEjD,OAAO,CAAC;IAC/CwC,oBAAoB,EAAES,MAAM,CAACT;EAC/B,CAAC;AACH;AAEA,SAASgB,KAAKA,CACZiF,CAAwC,EACxCC,CAAwC,EACxC;EACA,MAAMC,GAAG,GAAG,CAACF,CAAC,EAAEC,CAAC,CAAC,CAAC7E,MAAM,CAAC+E,OAAO,CAAC;EAClC,IAAID,GAAG,CAAC5F,MAAM,IAAI,CAAC,EAAE,OAAO4F,GAAG,CAAC,CAAC,CAAC;EAElC,OAAO,UAAyB,GAAGE,IAAe,EAAE;IAClD,KAAK,MAAMlE,EAAE,IAAIgE,GAAG,EAAE;MACpBhE,EAAE,CAACmE,KAAK,CAAC,IAAI,EAAED,IAAI,CAAC;IACtB;EACF,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_gensync","data","require","_async","_util","context","_plugin","_item","_configChain","_deepArray","_traverse","_caching","_options","_plugins","_configApi","_partial","_configError","_default","exports","default","gensync","loadFullConfig","inputOpts","_opts$assumptions","result","loadPrivatePartialConfig","options","fileHandling","optionDefaults","plugins","presets","Error","presetContext","Object","assign","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","_context$filename","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","pre","chainMaybeAsync","post","manipulateOptions","visitors","merge","Plugin","needsFilename","val","validateIfOptionNeedsFilename","include","exclude","formattedPresetName","ConfigError","join","validatePreset","_options$overrides","overrides","overrideOptions","instantiatePreset","makeWeakCacheSync","validate","buildPresetChain","a","b","args","res","apply","then"],"sources":["../../src/config/full.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\nimport {\n forwardAsync,\n maybeAsync,\n isThenable,\n} from \"../gensync-utils/async.ts\";\n\nimport { mergeOptions } from \"./util.ts\";\nimport * as context from \"../index.ts\";\nimport Plugin from \"./plugin.ts\";\nimport { getItemDescriptor } from \"./item.ts\";\nimport { buildPresetChain } from \"./config-chain.ts\";\nimport { finalize as freezeDeepArray } from \"./helpers/deep-array.ts\";\nimport type { DeepArray, ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\nimport type {\n ConfigContext,\n ConfigChain,\n PresetInstance,\n} from \"./config-chain.ts\";\nimport type { UnloadedDescriptor } from \"./config-descriptors.ts\";\nimport traverse from \"@babel/traverse\";\nimport { makeWeakCache, makeWeakCacheSync } from \"./caching.ts\";\nimport type { CacheConfigurator } from \"./caching.ts\";\nimport {\n validate,\n checkNoUnwrappedItemOptionPairs,\n} from \"./validation/options.ts\";\nimport type { InputOptions, PluginItem } from \"./validation/options.ts\";\nimport { validatePluginObject } from \"./validation/plugins.ts\";\nimport { makePluginAPI, makePresetAPI } from \"./helpers/config-api.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\nimport loadPrivatePartialConfig from \"./partial.ts\";\nimport type { ValidatedOptions } from \"./validation/options.ts\";\n\nimport type * as Context from \"./cache-contexts.ts\";\nimport ConfigError from \"../errors/config-error.ts\";\n\ntype LoadedDescriptor = {\n value: any;\n options: object;\n dirname: string;\n alias: string;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type { InputOptions } from \"./validation/options.ts\";\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: InputOptions,\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: ValidatedOptions = {};\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 [],\n ];\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: ValidatedOptions = 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 = 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: unknown = value;\n if (typeof value === \"function\") {\n const factory = maybeAsync(\n value as (api: API, options: object, dirname: string) => unknown,\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 // 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 = chainMaybeAsync(inherits.pre, plugin.pre);\n plugin.post = chainMaybeAsync(inherits.post, plugin.post);\n plugin.manipulateOptions = chainMaybeAsync(\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 options.overrides?.forEach(overrideOptions =>\n validateIfOptionNeedsFilename(overrideOptions, descriptor),\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 chainMaybeAsync>(\n a: undefined | ((...args: Args) => R),\n b: undefined | ((...args: Args) => R),\n): (...args: Args) => R {\n if (!a) return b;\n if (!b) return a;\n\n return function (this: unknown, ...args: Args) {\n const res = a.apply(this, args);\n if (res && typeof res.then === \"function\") {\n return res.then(() => b.apply(this, args));\n }\n return b.apply(this, args);\n } as (...args: Args) => R;\n}\n"],"mappings":"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","ignoreList":[]} \ 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 index 3a80653..57d3f37 100644 --- a/node_modules/@babel/core/lib/config/helpers/config-api.js +++ b/node_modules/@babel/core/lib/config/helpers/config-api.js @@ -17,7 +17,7 @@ var _index = require("../../index.js"); var _caching = require("../caching.js"); function makeConfigAPI(cache) { const env = value => cache.using(data => { - if (typeof value === "undefined") return data.envName; + if (value === undefined) return data.envName; if (typeof value === "function") { return (0, _caching.assertSimpleType)(value(data.envName)); } 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 index 5677896..f0efdcf 100644 --- a/node_modules/@babel/core/lib/config/helpers/config-api.js.map +++ b/node_modules/@babel/core/lib/config/helpers/config-api.js.map @@ -1 +1 @@ -{"version":3,"names":["_semver","data","require","_index","_caching","makeConfigAPI","cache","env","value","using","envName","assertSimpleType","Array","isArray","some","entry","Error","caller","cb","version","coreVersion","simple","async","assertVersion","makePresetAPI","externalDependencies","targets","JSON","parse","stringify","addExternalDependency","ref","push","Object","assign","makePluginAPI","assumption","name","assumptions","range","Number","isInteger","semver","satisfies","limit","stackTraceLimit","err","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 \"../../index.ts\";\nimport { assertSimpleType } from \"../caching.ts\";\nimport type {\n CacheConfigurator,\n SimpleCacheConfigurator,\n SimpleType,\n} from \"../caching.ts\";\n\nimport type { AssumptionName, CallerMetadata } from \"../validation/options.ts\";\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 (\n extractor: (callerMetadata: CallerMetadata | undefined) => T,\n ): T;\n (\n extractor: (callerMetadata: CallerMetadata | undefined) => unknown,\n ): SimpleType;\n};\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 = (\n cb: (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 // We want \"*\" to also allow any pre-release, but we do not pass\n // the includePrerelease option to semver.satisfies because we\n // do not want ^7.0.0 to match 8.0.0-alpha.1.\n if (range === \"*\" || 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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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_semver","data","require","_index","_caching","makeConfigAPI","cache","env","value","using","undefined","envName","assertSimpleType","Array","isArray","some","entry","Error","caller","cb","version","coreVersion","simple","async","assertVersion","makePresetAPI","externalDependencies","targets","JSON","parse","stringify","addExternalDependency","ref","push","Object","assign","makePluginAPI","assumption","name","assumptions","range","Number","isInteger","semver","satisfies","limit","stackTraceLimit","err","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 \"../../index.ts\";\nimport { assertSimpleType } from \"../caching.ts\";\nimport type {\n CacheConfigurator,\n SimpleCacheConfigurator,\n SimpleType,\n} from \"../caching.ts\";\n\nimport type { AssumptionName, CallerMetadata } from \"../validation/options.ts\";\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 (\n extractor: (callerMetadata: CallerMetadata | undefined) => T,\n ): T;\n (\n extractor: (callerMetadata: CallerMetadata | undefined) => unknown,\n ): SimpleType;\n};\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 (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 = (\n cb: (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 // We want \"*\" to also allow any pre-release, but we do not pass\n // the includePrerelease option to semver.satisfies because we\n // do not want ^7.0.0 to match 8.0.0-alpha.1.\n if (range === \"*\" || 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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","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/index.js.map b/node_modules/@babel/core/lib/config/index.js.map index 2abf03c..b47ec76 100644 --- a/node_modules/@babel/core/lib/config/index.js.map +++ b/node_modules/@babel/core/lib/config/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_gensync","data","require","_full","_partial","_item","_rewriteStackTrace","loadPartialConfigRunner","gensync","loadPartialConfigImpl","loadPartialConfigAsync","args","beginHiddenCallStack","async","loadPartialConfigSync","sync","loadPartialConfig","opts","callback","undefined","errback","loadOptionsImpl","_config$options","config","loadFullConfig","options","loadOptionsRunner","loadOptionsAsync","loadOptionsSync","loadOptions","createConfigItemRunner","createConfigItemImpl","createConfigItemAsync","createConfigItemSync","createConfigItem","target"],"sources":["../../src/config/index.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nexport type {\n ResolvedConfig,\n InputOptions,\n PluginPasses,\n Plugin,\n} from \"./full.ts\";\n\nimport type { PluginTarget } from \"./validation/options.ts\";\n\nimport type {\n PluginAPI as basePluginAPI,\n PresetAPI as basePresetAPI,\n} from \"./helpers/config-api.ts\";\nexport type { PluginObject } from \"./validation/plugins.ts\";\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.ts\";\n\nimport loadFullConfig, { type ResolvedConfig } from \"./full.ts\";\nimport {\n type PartialConfig,\n loadPartialConfig as loadPartialConfigImpl,\n} from \"./partial.ts\";\n\nexport { loadFullConfig as default };\nexport type { PartialConfig } from \"./partial.ts\";\n\nimport { createConfigItem as createConfigItemImpl } from \"./item.ts\";\nimport type { ConfigItem } from \"./item.ts\";\nexport type { ConfigItem };\n\nimport { beginHiddenCallStack } from \"../errors/rewrite-stack-trace.ts\";\n\nconst loadPartialConfigRunner = gensync(loadPartialConfigImpl);\nexport function loadPartialConfigAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadPartialConfigRunner.async)(...args);\n}\nexport function loadPartialConfigSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadPartialConfigRunner.sync)(...args);\n}\nexport function loadPartialConfig(\n opts: Parameters[0],\n callback?: (err: Error, val: PartialConfig | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(loadPartialConfigRunner.errback)(opts, callback);\n } else if (typeof opts === \"function\") {\n beginHiddenCallStack(loadPartialConfigRunner.errback)(\n undefined,\n opts as (err: Error, val: PartialConfig | null) => void,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'loadPartialConfig' function expects a callback. If you need to call it synchronously, please use 'loadPartialConfigSync'.\",\n );\n } else {\n return loadPartialConfigSync(opts);\n }\n }\n}\n\nfunction* loadOptionsImpl(opts: unknown): 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}\nconst loadOptionsRunner = gensync(loadOptionsImpl);\nexport function loadOptionsAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadOptionsRunner.async)(...args);\n}\nexport function loadOptionsSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadOptionsRunner.sync)(...args);\n}\nexport function loadOptions(\n opts: Parameters[0],\n callback?: (err: Error, val: ResolvedConfig | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(loadOptionsRunner.errback)(opts, callback);\n } else if (typeof opts === \"function\") {\n beginHiddenCallStack(loadOptionsRunner.errback)(\n undefined,\n opts as (err: Error, val: ResolvedConfig | null) => void,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'loadOptions' function expects a callback. If you need to call it synchronously, please use 'loadOptionsSync'.\",\n );\n } else {\n return loadOptionsSync(opts);\n }\n }\n}\n\nconst createConfigItemRunner = gensync(createConfigItemImpl);\nexport function createConfigItemAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(createConfigItemRunner.async)(...args);\n}\nexport function createConfigItemSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(createConfigItemRunner.sync)(...args);\n}\nexport function createConfigItem(\n target: PluginTarget,\n options: Parameters[1],\n callback?: (err: Error, val: ConfigItem | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(createConfigItemRunner.errback)(\n target,\n options,\n callback,\n );\n } else if (typeof options === \"function\") {\n beginHiddenCallStack(createConfigItemRunner.errback)(\n target,\n undefined,\n callback,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'createConfigItem' function expects a callback. If you need to call it synchronously, please use 'createConfigItemSync'.\",\n );\n } else {\n return createConfigItemSync(target, options);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_gensync","data","require","_full","_partial","_item","_rewriteStackTrace","loadPartialConfigRunner","gensync","loadPartialConfigImpl","loadPartialConfigAsync","args","beginHiddenCallStack","async","loadPartialConfigSync","sync","loadPartialConfig","opts","callback","undefined","errback","loadOptionsImpl","_config$options","config","loadFullConfig","options","loadOptionsRunner","loadOptionsAsync","loadOptionsSync","loadOptions","createConfigItemRunner","createConfigItemImpl","createConfigItemAsync","createConfigItemSync","createConfigItem","target"],"sources":["../../src/config/index.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nexport type {\n ResolvedConfig,\n InputOptions,\n PluginPasses,\n Plugin,\n} from \"./full.ts\";\n\nimport type { InputOptions, PluginTarget } from \"./validation/options.ts\";\n\nimport type {\n PluginAPI as basePluginAPI,\n PresetAPI as basePresetAPI,\n} from \"./helpers/config-api.ts\";\nexport type { PluginObject } from \"./validation/plugins.ts\";\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.ts\";\n\nimport loadFullConfig, { type ResolvedConfig } from \"./full.ts\";\nimport {\n type PartialConfig,\n loadPartialConfig as loadPartialConfigImpl,\n} from \"./partial.ts\";\n\nexport { loadFullConfig as default };\nexport type { PartialConfig } from \"./partial.ts\";\n\nimport { createConfigItem as createConfigItemImpl } from \"./item.ts\";\nimport type { ConfigItem } from \"./item.ts\";\nexport type { ConfigItem };\n\nimport { beginHiddenCallStack } from \"../errors/rewrite-stack-trace.ts\";\n\nconst loadPartialConfigRunner = gensync(loadPartialConfigImpl);\nexport function loadPartialConfigAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadPartialConfigRunner.async)(...args);\n}\nexport function loadPartialConfigSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadPartialConfigRunner.sync)(...args);\n}\nexport function loadPartialConfig(\n opts: Parameters[0],\n callback?: (err: Error, val: PartialConfig | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(loadPartialConfigRunner.errback)(opts, callback);\n } else if (typeof opts === \"function\") {\n beginHiddenCallStack(loadPartialConfigRunner.errback)(\n undefined,\n opts as (err: Error, val: PartialConfig | null) => void,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'loadPartialConfig' function expects a callback. If you need to call it synchronously, please use 'loadPartialConfigSync'.\",\n );\n } else {\n return loadPartialConfigSync(opts);\n }\n }\n}\n\nfunction* loadOptionsImpl(opts: InputOptions): 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}\nconst loadOptionsRunner = gensync(loadOptionsImpl);\nexport function loadOptionsAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadOptionsRunner.async)(...args);\n}\nexport function loadOptionsSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadOptionsRunner.sync)(...args);\n}\nexport function loadOptions(\n opts: Parameters[0],\n callback?: (err: Error, val: ResolvedConfig | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(loadOptionsRunner.errback)(opts, callback);\n } else if (typeof opts === \"function\") {\n beginHiddenCallStack(loadOptionsRunner.errback)(\n undefined,\n opts as (err: Error, val: ResolvedConfig | null) => void,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'loadOptions' function expects a callback. If you need to call it synchronously, please use 'loadOptionsSync'.\",\n );\n } else {\n return loadOptionsSync(opts);\n }\n }\n}\n\nconst createConfigItemRunner = gensync(createConfigItemImpl);\nexport function createConfigItemAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(createConfigItemRunner.async)(...args);\n}\nexport function createConfigItemSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(createConfigItemRunner.sync)(...args);\n}\nexport function createConfigItem(\n target: PluginTarget,\n options: Parameters[1],\n callback?: (err: Error, val: ConfigItem | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(createConfigItemRunner.errback)(\n target,\n options,\n callback,\n );\n } else if (typeof options === \"function\") {\n beginHiddenCallStack(createConfigItemRunner.errback)(\n target,\n undefined,\n callback,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'createConfigItem' function expects a callback. If you need to call it synchronously, please use 'createConfigItemSync'.\",\n );\n } else {\n return createConfigItemSync(target, options);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]} \ 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 index 5874ad9..c121d27 100644 --- a/node_modules/@babel/core/lib/config/partial.js +++ b/node_modules/@babel/core/lib/config/partial.js @@ -21,7 +21,7 @@ var _options = require("./validation/options.js"); var _index = require("./files/index.js"); var _resolveTargets = require("./resolve-targets.js"); 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 _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; } function resolveRootMode(rootDir, rootMode) { switch (rootMode) { case "root": diff --git a/node_modules/@babel/core/lib/config/partial.js.map b/node_modules/@babel/core/lib/config/partial.js.map index de50fdb..e7d835b 100644 --- a/node_modules/@babel/core/lib/config/partial.js.map +++ b/node_modules/@babel/core/lib/config/partial.js.map @@ -1 +1 @@ -{"version":3,"names":["_path","data","require","_plugin","_util","_item","_configChain","_environment","_options","_index","_resolveTargets","_excluded","_objectWithoutPropertiesLoose","source","excluded","target","sourceKeys","Object","keys","key","i","length","indexOf","resolveRootMode","rootDir","rootMode","upwardRootDir","findConfigUpwards","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","showIgnoredFiles","_opts","result","item","value","Plugin","PartialConfig","filepath","constructor","babelignore","freeze","hasFilesystemConfig","prototype"],"sources":["../../src/config/partial.ts"],"sourcesContent":["import path from \"path\";\nimport type { Handler } from \"gensync\";\nimport Plugin from \"./plugin.ts\";\nimport { mergeOptions } from \"./util.ts\";\nimport { createItemFromDescriptor } from \"./item.ts\";\nimport { buildRootChain } from \"./config-chain.ts\";\nimport type { ConfigContext, FileHandling } from \"./config-chain.ts\";\nimport { getEnv } from \"./helpers/environment.ts\";\nimport { validate } from \"./validation/options.ts\";\n\nimport type {\n ValidatedOptions,\n NormalizedOptions,\n RootMode,\n} from \"./validation/options.ts\";\n\nimport {\n findConfigUpwards,\n resolveShowConfigPath,\n ROOT_CONFIG_FILENAMES,\n} from \"./files/index.ts\";\nimport type { ConfigFile, IgnoreFile } from \"./files/index.ts\";\nimport { resolveTargets } from \"./resolve-targets.ts\";\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 function* loadPartialConfig(\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":";;;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AAEA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAQA,IAAAO,MAAA,GAAAP,OAAA;AAMA,IAAAQ,eAAA,GAAAR,OAAA;AAAsD,MAAAS,SAAA;AAAA,SAAAC,8BAAAC,MAAA,EAAAC,QAAA,QAAAD,MAAA,yBAAAE,MAAA,WAAAC,UAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAL,MAAA,OAAAM,GAAA,EAAAC,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAJ,UAAA,CAAAK,MAAA,EAAAD,CAAA,MAAAD,GAAA,GAAAH,UAAA,CAAAI,CAAA,OAAAN,QAAA,CAAAQ,OAAA,CAAAH,GAAA,kBAAAJ,MAAA,CAAAI,GAAA,IAAAN,MAAA,CAAAM,GAAA,YAAAJ,MAAA;AAEtD,SAASQ,eAAeA,CAACC,OAAe,EAAEC,QAAkB,EAAU;EACpE,QAAQA,QAAQ;IACd,KAAK,MAAM;MACT,OAAOD,OAAO;IAEhB,KAAK,iBAAiB;MAAE;QACtB,MAAME,aAAa,GAAG,IAAAC,wBAAiB,EAACH,OAAO,CAAC;QAChD,OAAOE,aAAa,KAAK,IAAI,GAAGF,OAAO,GAAGE,aAAa;MACzD;IAEA,KAAK,QAAQ;MAAE;QACb,MAAMA,aAAa,GAAG,IAAAC,wBAAiB,EAACH,OAAO,CAAC;QAChD,IAAIE,aAAa,KAAK,IAAI,EAAE,OAAOA,aAAa;QAEhD,MAAMT,MAAM,CAACW,MAAM,CACjB,IAAIC,KAAK,CACP,4DAA4D,GAC1D,wCAAwCL,OAAO,MAAM,GACrD,mEAAmE,GACnE,IAAIM,4BAAqB,CAACC,IAAI,CAAC,IAAI,CAAC,IACxC,CAAC,EACD;UACEC,IAAI,EAAE,sBAAsB;UAC5BC,OAAO,EAAET;QACX,CACF,CAAC;MACH;IACA;MACE,MAAM,IAAIK,KAAK,CAAC,6CAA6C,CAAC;EAClE;AACF;AAYe,UAAUK,wBAAwBA,CAC/CC,SAAkB,EACiB;EACnC,IACEA,SAAS,IAAI,IAAI,KAChB,OAAOA,SAAS,KAAK,QAAQ,IAAIC,KAAK,CAACC,OAAO,CAACF,SAAS,CAAC,CAAC,EAC3D;IACA,MAAM,IAAIN,KAAK,CAAC,qDAAqD,CAAC;EACxE;EAEA,MAAMS,IAAI,GAAGH,SAAS,GAAG,IAAAI,iBAAQ,EAAC,WAAW,EAAEJ,SAAS,CAAC,GAAG,CAAC,CAAC;EAE9D,MAAM;IACJK,OAAO,GAAG,IAAAC,mBAAM,EAAC,CAAC;IAClBC,GAAG,GAAG,GAAG;IACTC,IAAI,EAAEnB,OAAO,GAAG,GAAG;IACnBC,QAAQ,GAAG,MAAM;IACjBmB,MAAM;IACNC,aAAa,GAAG;EAClB,CAAC,GAAGP,IAAI;EACR,MAAMQ,WAAW,GAAGC,MAAGA,CAAC,CAACC,OAAO,CAACN,GAAG,CAAC;EACrC,MAAMO,eAAe,GAAG1B,eAAe,CACrCwB,MAAGA,CAAC,CAACC,OAAO,CAACF,WAAW,EAAEtB,OAAO,CAAC,EAClCC,QACF,CAAC;EAED,MAAMyB,QAAQ,GACZ,OAAOZ,IAAI,CAACY,QAAQ,KAAK,QAAQ,GAC7BH,MAAGA,CAAC,CAACC,OAAO,CAACN,GAAG,EAAEJ,IAAI,CAACY,QAAQ,CAAC,GAChCC,SAAS;EAEf,MAAMC,cAAc,GAAG,OAAO,IAAAC,4BAAqB,EAACP,WAAW,CAAC;EAEhE,MAAMQ,OAAsB,GAAG;IAC7BJ,QAAQ;IACRR,GAAG,EAAEI,WAAW;IAChBH,IAAI,EAAEM,eAAe;IACrBT,OAAO;IACPI,MAAM;IACNW,UAAU,EAAEH,cAAc,KAAKF;EACjC,CAAC;EAED,MAAMM,WAAW,GAAG,OAAO,IAAAC,2BAAc,EAACnB,IAAI,EAAEgB,OAAO,CAAC;EACxD,IAAI,CAACE,WAAW,EAAE,OAAO,IAAI;EAE7B,MAAME,MAAwB,GAAG;IAC/BC,WAAW,EAAE,CAAC;EAChB,CAAC;EACDH,WAAW,CAACI,OAAO,CAACC,OAAO,CAACC,IAAI,IAAI;IAClC,IAAAC,kBAAY,EAACL,MAAM,EAASI,IAAI,CAAC;EACnC,CAAC,CAAC;EAEF,MAAMF,OAA0B,GAAA3C,MAAA,CAAAW,MAAA,KAC3B8B,MAAM;IACTM,OAAO,EAAE,IAAAC,8BAAc,EAACP,MAAM,EAAET,eAAe,CAAC;IAKhDJ,aAAa;IACbqB,OAAO,EAAE,KAAK;IACdC,UAAU,EAAE,KAAK;IACjBC,sBAAsB,EAAE,KAAK;IAC7BC,aAAa,EAAE,KAAK;IACpB7B,OAAO,EAAEc,OAAO,CAACd,OAAO;IACxBE,GAAG,EAAEY,OAAO,CAACZ,GAAG;IAChBC,IAAI,EAAEW,OAAO,CAACX,IAAI;IAClBlB,QAAQ,EAAE,MAAM;IAChByB,QAAQ,EACN,OAAOI,OAAO,CAACJ,QAAQ,KAAK,QAAQ,GAAGI,OAAO,CAACJ,QAAQ,GAAGC,SAAS;IAErEmB,OAAO,EAAEd,WAAW,CAACc,OAAO,CAACC,GAAG,CAACC,UAAU,IACzC,IAAAC,8BAAwB,EAACD,UAAU,CACrC,CAAC;IACDE,OAAO,EAAElB,WAAW,CAACkB,OAAO,CAACH,GAAG,CAACC,UAAU,IACzC,IAAAC,8BAAwB,EAACD,UAAU,CACrC;EAAC,EACF;EAED,OAAO;IACLZ,OAAO;IACPN,OAAO;IACPqB,YAAY,EAAEnB,WAAW,CAACmB,YAAY;IACtCC,MAAM,EAAEpB,WAAW,CAACoB,MAAM;IAC1BV,OAAO,EAAEV,WAAW,CAACU,OAAO;IAC5BW,MAAM,EAAErB,WAAW,CAACqB,MAAM;IAC1BC,KAAK,EAAEtB,WAAW,CAACsB;EACrB,CAAC;AACH;AAMO,UAAUC,iBAAiBA,CAChCjB,IAA4B,EACG;EAC/B,IAAIkB,gBAAgB,GAAG,KAAK;EAG5B,IAAI,OAAOlB,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,IAAI,CAAC1B,KAAK,CAACC,OAAO,CAACyB,IAAI,CAAC,EAAE;IAAA,IAAAmB,KAAA,GACpCnB,IAAI;IAAA,CAApC;MAAEkB;IAA0B,CAAC,GAAAC,KAAO;IAAbnB,IAAI,GAAAlD,6BAAA,CAAAqE,KAAA,EAAAtE,SAAA;IAAAsE,KAAA;EAC9B;EAEA,MAAMC,MAA4C,GAChD,OAAOhD,wBAAwB,CAAC4B,IAAI,CAAC;EACvC,IAAI,CAACoB,MAAM,EAAE,OAAO,IAAI;EAExB,MAAM;IAAEtB,OAAO;IAAEM,OAAO;IAAEU,MAAM;IAAEC,MAAM;IAAEF,YAAY;IAAEG;EAAM,CAAC,GAAGI,MAAM;EAExE,IAAIP,YAAY,KAAK,SAAS,IAAI,CAACK,gBAAgB,EAAE;IACnD,OAAO,IAAI;EACb;EAEA,CAACpB,OAAO,CAACU,OAAO,IAAI,EAAE,EAAET,OAAO,CAACsB,IAAI,IAAI;IAEtC,IAAIA,IAAI,CAACC,KAAK,YAAYC,eAAM,EAAE;MAChC,MAAM,IAAIxD,KAAK,CACb,sDAAsD,GACpD,2BACJ,CAAC;IACH;EACF,CAAC,CAAC;EAEF,OAAO,IAAIyD,aAAa,CACtB1B,OAAO,EACPM,OAAO,GAAGA,OAAO,CAACqB,QAAQ,GAAGpC,SAAS,EACtCyB,MAAM,GAAGA,MAAM,CAACW,QAAQ,GAAGpC,SAAS,EACpC0B,MAAM,GAAGA,MAAM,CAACU,QAAQ,GAAGpC,SAAS,EACpCwB,YAAY,EACZG,KACF,CAAC;AACH;AAIA,MAAMQ,aAAa,CAAC;EAYlBE,WAAWA,CACT5B,OAA0B,EAC1BM,OAAsB,EACtBU,MAAqB,EACrBC,MAAqB,EACrBF,YAA0B,EAC1BG,KAAkB,EAClB;IAAA,KAdFlB,OAAO;IAAA,KACPM,OAAO;IAAA,KACPuB,WAAW;IAAA,KACXZ,MAAM;IAAA,KACNF,YAAY;IAAA,KACZG,KAAK;IAUH,IAAI,CAAClB,OAAO,GAAGA,OAAO;IACtB,IAAI,CAAC6B,WAAW,GAAGb,MAAM;IACzB,IAAI,CAACV,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACW,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACF,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACG,KAAK,GAAGA,KAAK;IAIlB7D,MAAM,CAACyE,MAAM,CAAC,IAAI,CAAC;EACrB;EAKAC,mBAAmBA,CAAA,EAAY;IAC7B,OAAO,IAAI,CAACzB,OAAO,KAAKf,SAAS,IAAI,IAAI,CAAC0B,MAAM,KAAK1B,SAAS;EAChE;AACF;AACAlC,MAAM,CAACyE,MAAM,CAACJ,aAAa,CAACM,SAAS,CAAC;AAAC","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_path","data","require","_plugin","_util","_item","_configChain","_environment","_options","_index","_resolveTargets","_excluded","_objectWithoutPropertiesLoose","r","e","t","n","hasOwnProperty","call","includes","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","showIgnoredFiles","_opts","result","item","value","Plugin","PartialConfig","filepath","constructor","babelignore","freeze","hasFilesystemConfig","prototype"],"sources":["../../src/config/partial.ts"],"sourcesContent":["import path from \"path\";\nimport type { Handler } from \"gensync\";\nimport Plugin from \"./plugin.ts\";\nimport { mergeOptions } from \"./util.ts\";\nimport { createItemFromDescriptor } from \"./item.ts\";\nimport { buildRootChain } from \"./config-chain.ts\";\nimport type { ConfigContext, FileHandling } from \"./config-chain.ts\";\nimport { getEnv } from \"./helpers/environment.ts\";\nimport { validate } from \"./validation/options.ts\";\n\nimport type {\n ValidatedOptions,\n NormalizedOptions,\n RootMode,\n InputOptions,\n} from \"./validation/options.ts\";\n\nimport {\n findConfigUpwards,\n resolveShowConfigPath,\n ROOT_CONFIG_FILENAMES,\n} from \"./files/index.ts\";\nimport type { ConfigFile, IgnoreFile } from \"./files/index.ts\";\nimport { resolveTargets } from \"./resolve-targets.ts\";\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\nexport type PrivPartialConfig = {\n showIgnoredFiles?: boolean;\n options: NormalizedOptions;\n context: ConfigContext;\n babelrc: ConfigFile | void;\n config: ConfigFile | void;\n ignore: IgnoreFile | void;\n fileHandling: FileHandling;\n files: Set;\n};\n\nexport default function* loadPrivatePartialConfig(\n inputOpts: InputOptions,\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\nexport function* loadPartialConfig(\n opts?: InputOptions,\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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","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/options.js.map b/node_modules/@babel/core/lib/config/validation/options.js.map index 7ad2016..e85a4c7 100644 --- a/node_modules/@babel/core/lib/config/validation/options.js.map +++ b/node_modules/@babel/core/lib/config/validation/options.js.map @@ -1 +1 @@ -{"version":3,"names":["_removed","require","_optionAssertions","_configError","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","exports","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","hasOwnProperty","call","value","obj","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.ts\";\nimport type Plugin from \"../plugin.ts\";\n\nimport removed from \"./removed.ts\";\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.ts\";\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n} from \"./option-assertions.ts\";\nimport type { UnloadedDescriptor } from \"../config-descriptors.ts\";\nimport type { PluginAPI } from \"../helpers/config-api.ts\";\nimport type { ParserOptions } from \"@babel/parser\";\nimport type { GeneratorOptions } from \"@babel/generator\";\nimport ConfigError from \"../../errors/config-error.ts\";\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 = object | 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 \"noUninitializedPrivateFieldAccess\",\n \"objectRestNoSymbols\",\n \"privateFieldsAsSymbols\",\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: any,\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 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 assertNoDuplicateSourcemap(opts: any): void {\n if (Object.hasOwn(opts, \"sourceMap\") && Object.hasOwn(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":";;;;;;;;AAKA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AA+BA,IAAAE,YAAA,GAAAF,OAAA;AAEA,MAAMG,eAA6B,GAAG;EACpCC,GAAG,EAAEC,8BAAkD;EACvDC,IAAI,EAAED,8BAAmD;EACzDE,QAAQ,EAAEC,gCAAyD;EACnEC,UAAU,EAAEC,wCAEX;EAEDC,MAAM,EAAEC,sCAA6D;EACrEC,QAAQ,EAAER,8BAAuD;EACjES,gBAAgB,EAAET,8BAEjB;EACDU,IAAI,EAAEC,+BAAoD;EAC1DC,GAAG,EAAED,+BAAmD;EAExDE,aAAa,EAAEF,+BAA6D;EAE5EG,OAAO,EAAEd;AACX,CAAC;AAED,MAAMe,kBAAgC,GAAG;EACvCC,OAAO,EAAEL,+BAAuD;EAChEM,YAAY,EAAEC;AAGhB,CAAC;AAED,MAAMC,oBAAkC,GAAG;EACzCC,OAAO,EAAEpB,8BAAsD;EAC/DqB,MAAM,EAAEC,kCAAyD;EACjEC,IAAI,EAAED,kCAAuD;EAE7DE,OAAO,EAAEC,+BAAuD;EAChEC,sBAAsB,EAAErB,wCAEvB;EACDsB,eAAe,EAAE3B;AAGnB,CAAC;AAED,MAAM4B,iBAA+B,GAAG;EAItCC,cAAc,EAAEC,sCAEf;EACDC,OAAO,EAAEC,kCAA0D;EACnEC,OAAO,EAAED,kCAA0D;EACnEE,aAAa,EAAEvB,+BAA6D;EAC5EwB,WAAW,EAAEC,mCAA+D;EAE5EC,GAAG,EAAEC,YAAkD;EACvDC,SAAS,EAAEC,mBAA+D;EAK1EC,IAAI,EAAEC,4CAAiE;EACvEC,OAAO,EAAED,4CAAoE;EAC7EE,OAAO,EAAEF,4CAAoE;EAE7EG,WAAW,EAAElC,+BAA2D;EACxEmC,QAAQ,EAAEnC,+BAAwD;EAClEoC,kBAAkB,EAAEC,gCAEnB;EACDC,OAAO,EAAEC,+BAAuD;EAChEC,QAAQ,EAAExC,+BAAwD;EAClEyC,sBAAsB,EAAEpD,8BAEvB;EACDqD,qBAAqB,EAAErD,8BAEtB;EACDsD,UAAU,EAAEC,kCAA6D;EACzEC,uBAAuB,EAAER,gCAExB;EACDS,aAAa,EAAE9C,+BAA6D;EAC5E+C,UAAU,EAAEC,kCAA6D;EACzEC,SAAS,EAAED,kCAA4D;EACvEE,cAAc,EAAE7D,8BAA6D;EAC7E8D,UAAU,EAAE9D,8BAAyD;EACrE+D,UAAU,EAAEC,8BAAyD;EACrEC,aAAa,EAAED;AACjB,CAAC;AACkC;EACjCE,MAAM,CAACC,MAAM,CAACvC,iBAAiB,EAAE;IAC/BwC,WAAW,EAAEpB,gCAAc;IAC3BqB,UAAU,EAAErE,8BAAY;IACxBsE,SAAS,EAAE3D,+BAAa;IACxB4D,QAAQ,EAAEvE;EACZ,CAAC,CAAC;AACJ;AAuIA,MAAMwE,gBAAgB,GAAG,CACvB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,+BAA+B,EAC/B,aAAa,EACb,mCAAmC,EACnC,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,CACpB;AAEH,MAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,IAAIE,GAAG,CAACH,gBAAgB,CAAC;AAEzD,SAASI,SAASA,CAACC,GAAgB,EAAiB;EAClD,OAAOA,GAAG,CAACC,IAAI,KAAK,MAAM,GAAGD,GAAG,CAACE,MAAM,GAAGH,SAAS,CAACC,GAAG,CAACG,MAAM,CAAC;AACjE;AAEO,SAASC,QAAQA,CACtBH,IAAmB,EACnBI,IAAS,EACT1E,QAAiB,EACC;EAClB,IAAI;IACF,OAAO2E,cAAc,CACnB;MACEL,IAAI,EAAE,MAAM;MACZC,MAAM,EAAED;IACV,CAAC,EACDI,IACF,CAAC;EACH,CAAC,CAAC,OAAOE,KAAK,EAAE;IACd,MAAMC,WAAW,GAAG,IAAIC,oBAAW,CAACF,KAAK,CAACG,OAAO,EAAE/E,QAAQ,CAAC;IAE5D,IAAI4E,KAAK,CAAC1E,IAAI,EAAE2E,WAAW,CAAC3E,IAAI,GAAG0E,KAAK,CAAC1E,IAAI;IAC7C,MAAM2E,WAAW;EACnB;AACF;AAEA,SAASF,cAAcA,CAACN,GAAgB,EAAEK,IAAgC,EAAE;EAC1E,MAAMJ,IAAI,GAAGF,SAAS,CAACC,GAAG,CAAC;EAE3BW,0BAA0B,CAACN,IAAI,CAAC;EAEhChB,MAAM,CAACuB,IAAI,CAACP,IAAI,CAAC,CAACQ,OAAO,CAAEC,GAAW,IAAK;IACzC,MAAMC,MAAM,GAAG;MACbd,IAAI,EAAE,QAAQ;MACde,IAAI,EAAEF,GAAG;MACTX,MAAM,EAAEH;IACV,CAAU;IAEV,IAAIC,IAAI,KAAK,QAAQ,IAAI3D,oBAAoB,CAACwE,GAAG,CAAC,EAAE;MAClD,MAAM,IAAIG,KAAK,CAAC,GAAG,IAAAC,qBAAG,EAACH,MAAM,CAAC,mCAAmC,CAAC;IACpE;IACA,IAAId,IAAI,KAAK,WAAW,IAAIhF,eAAe,CAAC6F,GAAG,CAAC,EAAE;MAChD,MAAM,IAAIG,KAAK,CACb,GAAG,IAAAC,qBAAG,EAACH,MAAM,CAAC,+CAChB,CAAC;IACH;IACA,IACEd,IAAI,KAAK,WAAW,IACpBA,IAAI,KAAK,YAAY,IACrB/D,kBAAkB,CAAC4E,GAAG,CAAC,EACvB;MACA,IAAIb,IAAI,KAAK,aAAa,IAAIA,IAAI,KAAK,aAAa,EAAE;QACpD,MAAM,IAAIgB,KAAK,CACb,GAAG,IAAAC,qBAAG,EACJH,MACF,CAAC,uFAAuF,GACtF,wCACJ,CAAC;MACH;MAEA,MAAM,IAAIE,KAAK,CACb,GAAG,IAAAC,qBAAG,EACJH,MACF,CAAC,uFACH,CAAC;IACH;IAEA,MAAMI,SAAS,GACbpE,iBAAiB,CAAC+D,GAAG,CAAC,IACtBxE,oBAAoB,CAACwE,GAAG,CAAC,IACzB5E,kBAAkB,CAAC4E,GAAG,CAAC,IACvB7F,eAAe,CAAC6F,GAAG,CAAC,IACnBM,iBAAqC;IAExCD,SAAS,CAACJ,MAAM,EAAEV,IAAI,CAACS,GAAG,CAAC,CAAC;EAC9B,CAAC,CAAC;EAEF,OAAOT,IAAI;AACb;AAEA,SAASe,iBAAiBA,CAACpB,GAAe,EAAE;EAC1C,MAAMc,GAAG,GAAGd,GAAG,CAACgB,IAAI;EAEpB,IAAIK,gBAAO,CAACP,GAAG,CAAC,EAAE;IAChB,MAAM;MAAEJ,OAAO;MAAEY,OAAO,GAAG;IAAE,CAAC,GAAGD,gBAAO,CAACP,GAAG,CAAC;IAE7C,MAAM,IAAIG,KAAK,CACb,uBAAuBK,OAAO,YAAY,IAAAJ,qBAAG,EAAClB,GAAG,CAAC,MAAMU,OAAO,EACjE,CAAC;EACH,CAAC,MAAM;IACL,MAAMa,aAAa,GAAG,IAAIN,KAAK,CAC7B,mBAAmB,IAAAC,qBAAG,EACpBlB,GACF,CAAC,gGACH,CAAC;IAEDuB,aAAa,CAAC1F,IAAI,GAAG,sBAAsB;IAE3C,MAAM0F,aAAa;EACrB;AACF;AAEA,SAASZ,0BAA0BA,CAACN,IAAS,EAAQ;EACnD,IAAImB,cAAA,CAAAC,IAAA,CAAcpB,IAAI,EAAE,WAAW,CAAC,IAAImB,cAAA,CAAAC,IAAA,CAAcpB,IAAI,EAAE,YAAY,CAAC,EAAE;IACzE,MAAM,IAAIY,KAAK,CAAC,yDAAyD,CAAC;EAC5E;AACF;AAEA,SAASxD,YAAYA,CACnBuC,GAAe,EACf0B,KAAc,EACmB;EACjC,IAAI1B,GAAG,CAACG,MAAM,CAACF,IAAI,KAAK,KAAK,EAAE;IAC7B,MAAM,IAAIgB,KAAK,CAAC,GAAG,IAAAC,qBAAG,EAAClB,GAAG,CAAC,8CAA8C,CAAC;EAC5E;EACA,MAAMG,MAAgC,GAAGH,GAAG,CAACG,MAAM;EAEnD,MAAMwB,GAAG,GAAG,IAAAxC,8BAAY,EAACa,GAAG,EAAE0B,KAAK,CAAC;EACpC,IAAIC,GAAG,EAAE;IAGP,KAAK,MAAM1F,OAAO,IAAIoD,MAAM,CAACuB,IAAI,CAACe,GAAG,CAAC,EAAE;MACtC,MAAMnE,GAAG,GAAG,IAAA2B,8BAAY,EAAC,IAAAyC,wBAAM,EAAC5B,GAAG,EAAE/D,OAAO,CAAC,EAAE0F,GAAG,CAAC1F,OAAO,CAAC,CAAC;MAC5D,IAAI,CAACuB,GAAG,EAAE;MAEV,MAAMqE,MAAM,GAAG;QACb5B,IAAI,EAAE,KAAK;QACXe,IAAI,EAAE/E,OAAO;QACbkE;MACF,CAAU;MACVG,cAAc,CAACuB,MAAM,EAAErE,GAAG,CAAC;IAC7B;EACF;EACA,OAAOmE,GAAG;AACZ;AAEA,SAAShE,mBAAmBA,CAC1BqC,GAAe,EACf0B,KAAgB,EACW;EAC3B,IAAI1B,GAAG,CAACG,MAAM,CAACF,IAAI,KAAK,KAAK,EAAE;IAC7B,MAAM,IAAIgB,KAAK,CAAC,GAAG,IAAAC,qBAAG,EAAClB,GAAG,CAAC,sCAAsC,CAAC;EACpE;EACA,IAAIA,GAAG,CAACG,MAAM,CAACF,IAAI,KAAK,WAAW,EAAE;IACnC,MAAM,IAAIgB,KAAK,CAAC,GAAG,IAAAC,qBAAG,EAAClB,GAAG,CAAC,4CAA4C,CAAC;EAC1E;EACA,MAAMG,MAAgB,GAAGH,GAAG,CAACG,MAAM;EAEnC,MAAM2B,GAAG,GAAG,IAAAC,6BAAW,EAAC/B,GAAG,EAAE0B,KAAK,CAAC;EACnC,IAAII,GAAG,EAAE;IACP,KAAK,MAAM,CAACE,KAAK,EAAEC,IAAI,CAAC,IAAIH,GAAG,CAACI,OAAO,CAAC,CAAC,EAAE;MACzC,MAAMC,MAAM,GAAG,IAAAP,wBAAM,EAAC5B,GAAG,EAAEgC,KAAK,CAAC;MACjC,MAAMxE,GAAG,GAAG,IAAA2B,8BAAY,EAACgD,MAAM,EAAEF,IAAI,CAAC;MACtC,IAAI,CAACzE,GAAG,EAAE,MAAM,IAAIyD,KAAK,CAAC,GAAG,IAAAC,qBAAG,EAACiB,MAAM,CAAC,oBAAoB,CAAC;MAE7D,MAAMC,YAAY,GAAG;QACnBnC,IAAI,EAAE,WAAW;QACjB+B,KAAK;QACL7B;MACF,CAAU;MACVG,cAAc,CAAC8B,YAAY,EAAE5E,GAAG,CAAC;IACnC;EACF;EACA,OAAOsE,GAAG;AACZ;AAEO,SAASO,+BAA+BA,CAC7CC,KAAqC,EACrCN,KAAa,EACb/B,IAAyB,EACzBsC,CAAQ,EACF;EACN,IAAIP,KAAK,KAAK,CAAC,EAAE;EAEjB,MAAMQ,QAAQ,GAAGF,KAAK,CAACN,KAAK,GAAG,CAAC,CAAC;EACjC,MAAMS,QAAQ,GAAGH,KAAK,CAACN,KAAK,CAAC;EAE7B,IACEQ,QAAQ,CAACE,IAAI,IACbF,QAAQ,CAACG,OAAO,KAAKC,SAAS,IAC9B,OAAOH,QAAQ,CAACf,KAAK,KAAK,QAAQ,EAClC;IACAa,CAAC,CAAC7B,OAAO,IACP,8BAA8B,GAC9B,IAAIT,IAAI,cAAcuC,QAAQ,CAACE,IAAI,CAACG,OAAO,MAAMC,IAAI,CAACC,SAAS,CAC7DN,QAAQ,CAACf,KAAK,EACdkB,SAAS,EACT,CACF,CAAC,QAAQ,GACT,iBAAiB3C,IAAI,gEAAgE;EACzF;AACF;AAAC","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_removed","require","_optionAssertions","_configError","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","exports","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","hasOwnProperty","call","value","obj","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.ts\";\nimport type Plugin from \"../plugin.ts\";\n\nimport removed from \"./removed.ts\";\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.ts\";\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n} from \"./option-assertions.ts\";\nimport type { UnloadedDescriptor } from \"../config-descriptors.ts\";\nimport type { PluginAPI } from \"../helpers/config-api.ts\";\nimport type { ParserOptions } from \"@babel/parser\";\nimport type { GeneratorOptions } from \"@babel/generator\";\nimport ConfigError from \"../../errors/config-error.ts\";\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 showIgnoredFiles?: boolean;\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 = object | 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 \"noUninitializedPrivateFieldAccess\",\n \"objectRestNoSymbols\",\n \"privateFieldsAsSymbols\",\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: any,\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 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 assertNoDuplicateSourcemap(opts: any): void {\n if (Object.hasOwn(opts, \"sourceMap\") && Object.hasOwn(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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","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/plugins.js.map b/node_modules/@babel/core/lib/config/validation/plugins.js.map index 41a4ba9..05d9afa 100644 --- a/node_modules/@babel/core/lib/config/validation/plugins.js.map +++ b/node_modules/@babel/core/lib/config/validation/plugins.js.map @@ -1 +1 @@ -{"version":3,"names":["_optionAssertions","require","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.ts\";\n\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n RootPath,\n} from \"./option-assertions.ts\";\nimport type { ParserOptions } from \"@babel/parser\";\nimport type { Visitor } from \"@babel/traverse\";\nimport type { ValidatedOptions } from \"./options.ts\";\nimport type { File, PluginAPI, PluginPass } from \"../../index.ts\";\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 => {\n if (prop !== \"_exploded\" && prop !== \"_verified\") {\n assertVisitorHandler(prop, obj[prop]);\n }\n });\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): asserts value is VisitorHandler {\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\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?: (\n api: PluginAPI,\n options: unknown,\n dirname: string,\n ) => PluginObject;\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 adding 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,IAAAA,iBAAA,GAAAC,OAAA;AAqBA,MAAMC,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,gBAAgBA,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,IAAI;MAC/B,IAAIA,IAAI,KAAK,WAAW,IAAIA,IAAI,KAAK,WAAW,EAAE;QAChDC,oBAAoB,CAACD,IAAI,EAAEL,GAAG,CAACK,IAAI,CAAC,CAAC;MACvC;IACF,CAAC,CAAC;IAEF,IAAIL,GAAG,CAACO,KAAK,IAAIP,GAAG,CAACQ,IAAI,EAAE;MACzB,MAAM,IAAIC,KAAK,CACb,GAAG,IAAAC,qBAAG,EACJZ,GACF,CAAC,uFACH,CAAC;IACH;EACF;EACA,OAAOE,GAAG;AACZ;AAEA,SAASM,oBAAoBA,CAC3BK,GAAW,EACXZ,KAAc,EACmB;EACjC,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,CACb,aAAaE,GAAG,gDAClB,CAAC;MACH;IACF,CAAC,CAAC;EACJ,CAAC,MAAM,IAAI,OAAOZ,KAAK,KAAK,UAAU,EAAE;IACtC,MAAM,IAAIU,KAAK,CAAC,aAAaE,GAAG,uBAAuB,CAAC;EAC1D;AACF;AA2BO,SAASE,oBAAoBA,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,CAC1C,IAAIE,GAAG,iCACT,CAAC;MAEDS,0BAA0B,CAACC,IAAI,GAAG,+BAA+B;MACjE,MAAMD,0BAA0B;IAClC;EACF,CAAC,CAAC;EAEF,OAAOpB,GAAG;AACZ;AAAC","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_optionAssertions","require","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.ts\";\n\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n RootPath,\n} from \"./option-assertions.ts\";\nimport type { ParserOptions } from \"@babel/parser\";\nimport type { Visitor } from \"@babel/traverse\";\nimport type { ValidatedOptions } from \"./options.ts\";\nimport type { File, PluginAPI, PluginPass } from \"../../index.ts\";\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 => {\n if (prop !== \"_exploded\" && prop !== \"_verified\") {\n assertVisitorHandler(prop, obj[prop]);\n }\n });\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): asserts value is VisitorHandler {\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\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 | Promise;\n post?: (this: S, file: File) => void | Promise;\n inherits?: (\n api: PluginAPI,\n options: unknown,\n dirname: string,\n ) => PluginObject;\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 adding 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,IAAAA,iBAAA,GAAAC,OAAA;AAqBA,MAAMC,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,gBAAgBA,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,IAAI;MAC/B,IAAIA,IAAI,KAAK,WAAW,IAAIA,IAAI,KAAK,WAAW,EAAE;QAChDC,oBAAoB,CAACD,IAAI,EAAEL,GAAG,CAACK,IAAI,CAAC,CAAC;MACvC;IACF,CAAC,CAAC;IAEF,IAAIL,GAAG,CAACO,KAAK,IAAIP,GAAG,CAACQ,IAAI,EAAE;MACzB,MAAM,IAAIC,KAAK,CACb,GAAG,IAAAC,qBAAG,EACJZ,GACF,CAAC,uFACH,CAAC;IACH;EACF;EACA,OAAOE,GAAG;AACZ;AAEA,SAASM,oBAAoBA,CAC3BK,GAAW,EACXZ,KAAc,EACmB;EACjC,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,CACb,aAAaE,GAAG,gDAClB,CAAC;MACH;IACF,CAAC,CAAC;EACJ,CAAC,MAAM,IAAI,OAAOZ,KAAK,KAAK,UAAU,EAAE;IACtC,MAAM,IAAIU,KAAK,CAAC,aAAaE,GAAG,uBAAuB,CAAC;EAC1D;AACF;AA2BO,SAASE,oBAAoBA,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,CAC1C,IAAIE,GAAG,iCACT,CAAC;MAEDS,0BAA0B,CAACC,IAAI,GAAG,+BAA+B;MACjE,MAAMD,0BAA0B;IAClC;EACF,CAAC,CAAC;EAEF,OAAOpB,GAAG;AACZ;AAAC","ignoreList":[]} \ 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 index 9e00fde..42946c6 100644 --- a/node_modules/@babel/core/lib/gensync-utils/async.js +++ b/node_modules/@babel/core/lib/gensync-utils/async.js @@ -15,8 +15,8 @@ function _gensync() { }; 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); }); }; } +function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } const runGenerator = _gensync()(function* (item) { return yield* item; }); diff --git a/node_modules/@babel/core/lib/gensync-utils/async.js.map b/node_modules/@babel/core/lib/gensync-utils/async.js.map index ac27b93..595d757 100644 --- a/node_modules/@babel/core/lib/gensync-utils/async.js.map +++ b/node_modules/@babel/core/lib/gensync-utils/async.js.map @@ -1 +1 @@ -{"version":3,"names":["_gensync","data","require","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","runGenerator","gensync","item","isAsync","exports","sync","errback","cb","maybeAsync","message","result","isThenable","Error","async","withKind","_ref","_x","forwardAsync","action","g","kind","adapted","onFirstPause","name","arity","firstPause","completed","waitFor","x","_ref2","_x2","val"],"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":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_gensync","data","require","asyncGeneratorStep","n","t","e","r","o","a","c","i","u","value","done","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","runGenerator","gensync","item","isAsync","exports","sync","errback","cb","maybeAsync","fn","message","args","result","isThenable","Error","async","withKind","_ref","_x","forwardAsync","action","g","kind","adapted","onFirstPause","name","arity","firstPause","completed","err","waitFor","x","_ref2","_x2","val"],"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":"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","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/index.js b/node_modules/@babel/core/lib/index.js index 26f24c6..6cd6c3b 100644 --- a/node_modules/@babel/core/lib/index.js +++ b/node_modules/@babel/core/lib/index.js @@ -94,18 +94,7 @@ Object.defineProperty(exports, "parseSync", { return _parse.parseSync; } }); -Object.defineProperty(exports, "resolvePlugin", { - enumerable: true, - get: function () { - return _index.resolvePlugin; - } -}); -Object.defineProperty(exports, "resolvePreset", { - enumerable: true, - get: function () { - return _index.resolvePreset; - } -}); +exports.resolvePreset = exports.resolvePlugin = void 0; Object.defineProperty((0, exports), "template", { enumerable: true, get: function () { @@ -181,7 +170,7 @@ Object.defineProperty((0, exports), "traverse", { exports.version = exports.types = void 0; var _file = require("./transformation/file/file.js"); var _buildExternalHelpers = require("./tools/build-external-helpers.js"); -var _index = require("./config/files/index.js"); +var resolvers = require("./config/files/index.js"); var _environment = require("./config/helpers/environment.js"); function _types() { const data = require("@babel/types"); @@ -224,7 +213,11 @@ var _transformAst = require("./transform-ast.js"); var _parse = require("./parse.js"); var thisFile = require("./index.js"); ; -const version = exports.version = "7.25.2"; +const version = exports.version = "7.26.0"; +const resolvePlugin = (name, dirname) => resolvers.resolvePlugin(name, dirname, false).filepath; +exports.resolvePlugin = resolvePlugin; +const resolvePreset = (name, dirname) => resolvers.resolvePreset(name, dirname, false).filepath; +exports.resolvePreset = resolvePreset; const DEFAULT_EXTENSIONS = exports.DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); ; { diff --git a/node_modules/@babel/core/lib/index.js.map b/node_modules/@babel/core/lib/index.js.map index 6108b82..b38fa9e 100644 --- a/node_modules/@babel/core/lib/index.js.map +++ b/node_modules/@babel/core/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_file","require","_buildExternalHelpers","_index","_environment","_types","data","Object","defineProperty","exports","enumerable","get","_parser","_traverse","_template","_index2","_transform","_transformFile","_transformAst","_parse","thisFile","version","DEFAULT_EXTENSIONS","freeze","OptionManager","init","opts","loadOptionsSync","Plugin","alias","Error","types","traverse","tokTypes","template"],"sources":["../src/index.ts"],"sourcesContent":["if (!process.env.IS_PUBLISH && !USE_ESM && process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"BABEL_8_BREAKING is only supported in ESM. Please run `make use-esm`.\",\n );\n}\n\nexport const version = PACKAGE_JSON.version;\n\nexport { default as File } from \"./transformation/file/file.ts\";\nexport type { default as PluginPass } from \"./transformation/plugin-pass.ts\";\nexport { default as buildExternalHelpers } from \"./tools/build-external-helpers.ts\";\nexport { resolvePlugin, resolvePreset } from \"./config/files/index.ts\";\n\nexport { getEnv } from \"./config/helpers/environment.ts\";\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\n// rollup-plugin-dts assumes that all re-exported types are also valid values\n// Visitor is only a type, so we need to use this workaround to prevent\n// rollup-plugin-dts from breaking it.\n// TODO: Figure out how to fix this upstream.\nexport type { NodePath, Scope } from \"@babel/traverse\";\nexport type Visitor = import(\"@babel/traverse\").Visitor;\n\nexport {\n createConfigItem,\n createConfigItemSync,\n createConfigItemAsync,\n} from \"./config/index.ts\";\n\nexport {\n loadPartialConfig,\n loadPartialConfigSync,\n loadPartialConfigAsync,\n loadOptions,\n loadOptionsAsync,\n} from \"./config/index.ts\";\nimport { loadOptionsSync } from \"./config/index.ts\";\nexport { loadOptionsSync };\n\nexport type {\n CallerMetadata,\n InputOptions,\n PluginAPI,\n PluginObject,\n PresetAPI,\n PresetObject,\n ConfigItem,\n} from \"./config/index.ts\";\n\nexport {\n transform,\n transformSync,\n transformAsync,\n type FileResult,\n} from \"./transform.ts\";\nexport {\n transformFile,\n transformFileSync,\n transformFileAsync,\n} from \"./transform-file.ts\";\nexport {\n transformFromAst,\n transformFromAstSync,\n transformFromAstAsync,\n} from \"./transform-ast.ts\";\nexport { parse, parseSync, parseAsync } from \"./parse.ts\";\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\nimport Module from \"module\";\nimport * as thisFile from \"./index.ts\";\nif (USE_ESM && !IS_STANDALONE) {\n // Pass this module to the CJS proxy, so that it can be synchronously accessed.\n const cjsProxy = Module.createRequire(import.meta.url)(\"../cjs-proxy.cjs\");\n cjsProxy[\"__ initialize @babel/core cjs proxy __\"] = thisFile;\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // For easier backward-compatibility, provide an API like the one we exposed in Babel 6.\n // eslint-disable-next-line no-restricted-globals\n exports.OptionManager = class OptionManager {\n init(opts: unknown) {\n return loadOptionsSync(opts);\n }\n };\n\n // eslint-disable-next-line no-restricted-globals\n exports.Plugin = 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}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAAG,YAAA,GAAAH,OAAA;AAAyD,SAAAI,OAAA;EAAA,MAAAC,IAAA,GAAAL,OAAA;EAAAI,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAAC,MAAA,CAAAC,cAAA,KAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,MAAA;EAAA;AAAA;AAMzD,SAAAO,QAAA;EAAA,MAAAN,IAAA,GAAAL,OAAA;EAAAW,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,UAAA;EAAA,MAAAP,IAAA,GAAAL,OAAA;EAAAY,SAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,UAAA;EAAA,MAAAR,IAAA,GAAAL,OAAA;EAAAa,SAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AASA,IAAAS,OAAA,GAAAd,OAAA;AA0BA,IAAAe,UAAA,GAAAf,OAAA;AAMA,IAAAgB,cAAA,GAAAhB,OAAA;AAKA,IAAAiB,aAAA,GAAAjB,OAAA;AAKA,IAAAkB,MAAA,GAAAlB,OAAA;AAgBA,IAAAmB,QAAA,GAAAnB,OAAA;AAAuC;AAlFhC,MAAMoB,OAAO,GAAAZ,OAAA,CAAAY,OAAA,WAAuB;AAwEpC,MAAMC,kBAAkB,GAAAb,OAAA,CAAAa,kBAAA,GAAGf,MAAM,CAACgB,MAAM,CAAC,CAC9C,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,CACE,CAAC;AAAC;AAUmC;EAG7Cd,OAAO,CAACe,aAAa,GAAG,MAAMA,aAAa,CAAC;IAC1CC,IAAIA,CAACC,IAAa,EAAE;MAClB,OAAO,IAAAC,uBAAe,EAACD,IAAI,CAAC;IAC9B;EACF,CAAC;EAGDjB,OAAO,CAACmB,MAAM,GAAG,SAASA,MAAMA,CAACC,KAAa,EAAE;IAC9C,MAAM,IAAIC,KAAK,CACb,QAAQD,KAAK,kEACf,CAAC;EACH,CAAC;AACH;AAAC,MAAApB,OAAA,CAAAsB,KAAA,GAAAtB,OAAA,CAAAuB,QAAA,GAAAvB,OAAA,CAAAwB,QAAA,GAAAxB,OAAA,CAAAyB,QAAA","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_file","require","_buildExternalHelpers","resolvers","_environment","_types","data","Object","defineProperty","exports","enumerable","get","_parser","_traverse","_template","_index2","_transform","_transformFile","_transformAst","_parse","thisFile","version","resolvePlugin","name","dirname","filepath","resolvePreset","DEFAULT_EXTENSIONS","freeze","OptionManager","init","opts","loadOptionsSync","Plugin","alias","Error","types","traverse","tokTypes","template"],"sources":["../src/index.ts"],"sourcesContent":["if (!process.env.IS_PUBLISH && !USE_ESM && process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"BABEL_8_BREAKING is only supported in ESM. Please run `make use-esm`.\",\n );\n}\n\nexport const version = PACKAGE_JSON.version;\n\nexport { default as File } from \"./transformation/file/file.ts\";\nexport type { default as PluginPass } from \"./transformation/plugin-pass.ts\";\nexport { default as buildExternalHelpers } from \"./tools/build-external-helpers.ts\";\n\nimport * as resolvers from \"./config/files/index.ts\";\n// For backwards-compatibility, we expose the resolvers\n// with the old API.\nexport const resolvePlugin = (name: string, dirname: string) =>\n resolvers.resolvePlugin(name, dirname, false).filepath;\nexport const resolvePreset = (name: string, dirname: string) =>\n resolvers.resolvePreset(name, dirname, false).filepath;\n\nexport { getEnv } from \"./config/helpers/environment.ts\";\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\n// rollup-plugin-dts assumes that all re-exported types are also valid values\n// Visitor is only a type, so we need to use this workaround to prevent\n// rollup-plugin-dts from breaking it.\n// TODO: Figure out how to fix this upstream.\nexport type { NodePath, Scope } from \"@babel/traverse\";\nexport type Visitor = import(\"@babel/traverse\").Visitor;\n\nexport {\n createConfigItem,\n createConfigItemAsync,\n createConfigItemSync,\n} from \"./config/index.ts\";\n\nexport {\n loadOptions,\n loadOptionsAsync,\n loadPartialConfig,\n loadPartialConfigAsync,\n loadPartialConfigSync,\n} from \"./config/index.ts\";\nimport { loadOptionsSync } from \"./config/index.ts\";\nexport { loadOptionsSync };\n\nexport type {\n CallerMetadata,\n ConfigItem,\n InputOptions,\n PluginAPI,\n PluginObject,\n PresetAPI,\n PresetObject,\n} from \"./config/index.ts\";\n\nexport {\n type FileResult,\n transform,\n transformAsync,\n transformSync,\n} from \"./transform.ts\";\nexport {\n transformFile,\n transformFileAsync,\n transformFileSync,\n} from \"./transform-file.ts\";\nexport {\n transformFromAst,\n transformFromAstAsync,\n transformFromAstSync,\n} from \"./transform-ast.ts\";\nexport { parse, parseAsync, parseSync } from \"./parse.ts\";\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\nimport Module from \"module\";\nimport * as thisFile from \"./index.ts\";\nif (USE_ESM && !IS_STANDALONE) {\n // Pass this module to the CJS proxy, so that it can be synchronously accessed.\n const cjsProxy = Module.createRequire(import.meta.url)(\"../cjs-proxy.cjs\");\n cjsProxy[\"__ initialize @babel/core cjs proxy __\"] = thisFile;\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // For easier backward-compatibility, provide an API like the one we exposed in Babel 6.\n // eslint-disable-next-line no-restricted-globals\n exports.OptionManager = class OptionManager {\n init(opts: any) {\n return loadOptionsSync(opts);\n }\n };\n\n // eslint-disable-next-line no-restricted-globals\n exports.Plugin = 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}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AAQA,IAAAG,YAAA,GAAAH,OAAA;AAAyD,SAAAI,OAAA;EAAA,MAAAC,IAAA,GAAAL,OAAA;EAAAI,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAAC,MAAA,CAAAC,cAAA,KAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,MAAA;EAAA;AAAA;AAMzD,SAAAO,QAAA;EAAA,MAAAN,IAAA,GAAAL,OAAA;EAAAW,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,UAAA;EAAA,MAAAP,IAAA,GAAAL,OAAA;EAAAY,SAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,UAAA;EAAA,MAAAR,IAAA,GAAAL,OAAA;EAAAa,SAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AASA,IAAAS,OAAA,GAAAd,OAAA;AA0BA,IAAAe,UAAA,GAAAf,OAAA;AAMA,IAAAgB,cAAA,GAAAhB,OAAA;AAKA,IAAAiB,aAAA,GAAAjB,OAAA;AAKA,IAAAkB,MAAA,GAAAlB,OAAA;AAgBA,IAAAmB,QAAA,GAAAnB,OAAA;AAAuC;AAzFhC,MAAMoB,OAAO,GAAAZ,OAAA,CAAAY,OAAA,WAAuB;AASpC,MAAMC,aAAa,GAAGA,CAACC,IAAY,EAAEC,OAAe,KACzDrB,SAAS,CAACmB,aAAa,CAACC,IAAI,EAAEC,OAAO,EAAE,KAAK,CAAC,CAACC,QAAQ;AAAChB,OAAA,CAAAa,aAAA,GAAAA,aAAA;AAClD,MAAMI,aAAa,GAAGA,CAACH,IAAY,EAAEC,OAAe,KACzDrB,SAAS,CAACuB,aAAa,CAACH,IAAI,EAAEC,OAAO,EAAE,KAAK,CAAC,CAACC,QAAQ;AAAChB,OAAA,CAAAiB,aAAA,GAAAA,aAAA;AAmElD,MAAMC,kBAAkB,GAAAlB,OAAA,CAAAkB,kBAAA,GAAGpB,MAAM,CAACqB,MAAM,CAAC,CAC9C,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,CACE,CAAC;AAAC;AAUmC;EAG7CnB,OAAO,CAACoB,aAAa,GAAG,MAAMA,aAAa,CAAC;IAC1CC,IAAIA,CAACC,IAAS,EAAE;MACd,OAAO,IAAAC,uBAAe,EAACD,IAAI,CAAC;IAC9B;EACF,CAAC;EAGDtB,OAAO,CAACwB,MAAM,GAAG,SAASA,MAAMA,CAACC,KAAa,EAAE;IAC9C,MAAM,IAAIC,KAAK,CACb,QAAQD,KAAK,kEACf,CAAC;EACH,CAAC;AACH;AAAC,MAAAzB,OAAA,CAAA2B,KAAA,GAAA3B,OAAA,CAAA4B,QAAA,GAAA5B,OAAA,CAAA6B,QAAA,GAAA7B,OAAA,CAAA8B,QAAA","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/core/lib/parser/index.js.map b/node_modules/@babel/core/lib/parser/index.js.map index 1ac2c97..8462b1a 100644 --- a/node_modules/@babel/core/lib/parser/index.js.map +++ b/node_modules/@babel/core/lib/parser/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_parser","data","require","_codeFrame","_missingPluginHelper","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, type File as ParseResult } from \"@babel/parser\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport generateMissingPluginMessage from \"./util/missing-plugin-helper.ts\";\nimport type { PluginPasses } from \"../config/index.ts\";\n\nexport type { ParseResult };\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(\n missingPlugin[0],\n loc,\n codeFrame,\n filename,\n );\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,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,WAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,IAAAG,oBAAA,GAAAF,OAAA;AAKe,UAAUG,MAAMA,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,CACb,iDAAiD,GAC/C,wDAAwD,GACxD,8DAA8D,GAC9D,2BACJ,CAAC;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,CACF,CAAC;MACD,IAAIiB,aAAa,EAAE;QACjBH,GAAG,CAACC,OAAO,GACT,GAAGd,QAAQ,IAAI,GACf,IAAAsB,4BAA4B,EAC1BN,aAAa,CAAC,CAAC,CAAC,EAChBD,GAAG,EACHE,SAAS,EACTjB,QACF,CAAC;MACL,CAAC,MAAM;QACLa,GAAG,CAACC,OAAO,GAAG,GAAGd,QAAQ,KAAKa,GAAG,CAACC,OAAO,MAAM,GAAGG,SAAS;MAC7D;MACAJ,GAAG,CAACZ,IAAI,GAAG,mBAAmB;IAChC;IACA,MAAMY,GAAG;EACX;AACF;AAAC","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_parser","data","require","_codeFrame","_missingPluginHelper","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, type File as ParseResult } from \"@babel/parser\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport generateMissingPluginMessage from \"./util/missing-plugin-helper.ts\";\nimport type { PluginPasses } from \"../config/index.ts\";\n\nexport type { ParseResult };\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 // 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(\n missingPlugin[0],\n loc,\n codeFrame,\n filename,\n );\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,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,WAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,IAAAG,oBAAA,GAAAF,OAAA;AAKe,UAAUG,MAAMA,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,CACb,iDAAiD,GAC/C,wDAAwD,GACxD,8DAA8D,GAC9D,2BACJ,CAAC;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,CACF,CAAC;MACD,IAAIiB,aAAa,EAAE;QACjBH,GAAG,CAACC,OAAO,GACT,GAAGd,QAAQ,IAAI,GACf,IAAAsB,4BAA4B,EAC1BN,aAAa,CAAC,CAAC,CAAC,EAChBD,GAAG,EACHE,SAAS,EACTjB,QACF,CAAC;MACL,CAAC,MAAM;QACLa,GAAG,CAACC,OAAO,GAAG,GAAGd,QAAQ,KAAKa,GAAG,CAACC,OAAO,MAAM,GAAGG,SAAS;MAC7D;MACAJ,GAAG,CAACZ,IAAI,GAAG,mBAAmB;IAChC;IACA,MAAMY,GAAG;EACX;AACF;AAAC","ignoreList":[]} \ 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 index 166e973..5e05a26 100644 --- a/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js +++ b/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js @@ -87,12 +87,6 @@ const pluginNameMap = { url: "https://github.com/babel/babel/tree/main/packages/babel-preset-react" } }, - importAttributes: { - syntax: { - name: "@babel/plugin-syntax-import-attributes", - url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes" - } - }, pipelineOperator: { syntax: { name: "@babel/plugin-syntax-pipeline-operator", @@ -204,6 +198,12 @@ const pluginNameMap = { url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions" } }, + importAttributes: { + syntax: { + name: "@babel/plugin-syntax-import-attributes", + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes" + } + }, importMeta: { syntax: { name: "@babel/plugin-syntax-import-meta", 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 index 6aebfa7..c6dfa8f 100644 --- 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 @@ -1 +1 @@ -{"version":3,"names":["pluginNameMap","asyncDoExpressions","syntax","name","url","decimal","decorators","transform","doExpressions","exportDefaultFrom","flow","functionBind","functionSent","jsx","importAttributes","pipelineOperator","recordAndTuple","throwExpressions","typescript","Object","assign","asyncGenerators","classProperties","classPrivateProperties","classPrivateMethods","classStaticBlock","dynamicImport","exportNamespaceFrom","importAssertions","importMeta","logicalAssignment","moduleStringNames","numericSeparator","nullishCoalescingOperator","objectRestSpread","optionalCatchBinding","optionalChaining","privateIn","regexpUnicodeSets","getNameURLCombination","generateMissingPluginMessage","missingPluginName","loc","codeFrame","filename","helpMessage","line","column","pluginInfo","syntaxPlugin","transformPlugin","syntaxPluginInfo","transformPluginInfo","sectionType","startsWith","msgFilename"],"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 importAttributes: {\n syntax: {\n name: \"@babel/plugin-syntax-import-attributes\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes\",\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 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\nif (!process.env.BABEL_8_BREAKING) {\n // TODO: This plugins are now supported by default by @babel/parser.\n Object.assign(pluginNameMap, {\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-transform-async-generator-functions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-private-methods\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-class-static-block\",\n url: \"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-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-transform-export-namespace-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-export-namespace-from\",\n },\n },\n // Will be removed\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 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-transform-logical-assignment-operators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-numeric-separator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-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-transform-object-rest-spread\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-optional-catch-binding\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-optional-chaining\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-private-property-in-object\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-property-in-object\",\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-transform-unicode-sets-regex\",\n url: \"https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md\",\n },\n },\n });\n}\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 filename: 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\n const msgFilename =\n filename === \"unknown\" ? \"\" : filename;\n helpMessage += `\n\nIf you already added the plugin for this syntax to your config, it's possible that your config \\\nisn't being loaded.\nYou can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded \\\nconfiguration:\n\\tnpx cross-env BABEL_SHOW_CONFIG_FOR=${msgFilename} \nSee https://babeljs.io/docs/configuration#print-effective-configs for more info.\n`;\n return helpMessage;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["pluginNameMap","asyncDoExpressions","syntax","name","url","decimal","decorators","transform","doExpressions","exportDefaultFrom","flow","functionBind","functionSent","jsx","pipelineOperator","recordAndTuple","throwExpressions","typescript","Object","assign","asyncGenerators","classProperties","classPrivateProperties","classPrivateMethods","classStaticBlock","dynamicImport","exportNamespaceFrom","importAssertions","importAttributes","importMeta","logicalAssignment","moduleStringNames","numericSeparator","nullishCoalescingOperator","objectRestSpread","optionalCatchBinding","optionalChaining","privateIn","regexpUnicodeSets","getNameURLCombination","generateMissingPluginMessage","missingPluginName","loc","codeFrame","filename","helpMessage","line","column","pluginInfo","syntaxPlugin","transformPlugin","syntaxPluginInfo","transformPluginInfo","sectionType","startsWith","msgFilename"],"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 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 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\nif (!process.env.BABEL_8_BREAKING) {\n // TODO: This plugins are now supported by default by @babel/parser.\n Object.assign(pluginNameMap, {\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-transform-async-generator-functions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-private-methods\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-class-static-block\",\n url: \"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-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-transform-export-namespace-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-export-namespace-from\",\n },\n },\n // Will be removed\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 importAttributes: {\n syntax: {\n name: \"@babel/plugin-syntax-import-attributes\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes\",\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-transform-logical-assignment-operators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-numeric-separator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-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-transform-object-rest-spread\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-optional-catch-binding\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-optional-chaining\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-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-transform-private-property-in-object\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-property-in-object\",\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-transform-unicode-sets-regex\",\n url: \"https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md\",\n },\n },\n });\n}\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 filename: 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\n const msgFilename =\n filename === \"unknown\" ? \"\" : filename;\n helpMessage += `\n\nIf you already added the plugin for this syntax to your config, it's possible that your config \\\nisn't being loaded.\nYou can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded \\\nconfiguration:\n\\tnpx cross-env BABEL_SHOW_CONFIG_FOR=${msgFilename} \nSee https://babeljs.io/docs/configuration#print-effective-configs for more info.\n`;\n return helpMessage;\n}\n"],"mappings":"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","ignoreList":[]} \ 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 index 7d3247f..7997e0a 100644 --- a/node_modules/@babel/core/lib/transformation/index.js +++ b/node_modules/@babel/core/lib/transformation/index.js @@ -17,6 +17,7 @@ var _normalizeOpts = require("./normalize-opts.js"); var _normalizeFile = require("./normalize-file.js"); var _generate = require("./file/generate.js"); var _deepArray = require("../config/helpers/deep-array.js"); +var _async = require("../gensync-utils/async.js"); function* run(config, code, ast) { const file = yield* (0, _normalizeFile.default)(config.passes, (0, _normalizeOpts.default)(config), code, ast); const opts = file.opts; @@ -57,24 +58,21 @@ function* run(config, code, ast) { }; } function* transformFile(file, pluginPasses) { + const async = yield* (0, _async.isAsync)(); 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); + const pass = new _pluginPass.default(file, plugin.key, plugin.options, async); 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.`); - } + if (plugin.pre) { + const fn = (0, _async.maybeAsync)(plugin.pre, `You appear to be using an async plugin/preset, but Babel has been called synchronously`); + yield* fn.call(pass, file); } } const visitor = _traverse().default.visitors.merge(visitors, passes, file.opts.wrapPluginVisitorMethod); @@ -82,20 +80,13 @@ function* transformFile(file, pluginPasses) { (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.`); - } + if (plugin.post) { + const fn = (0, _async.maybeAsync)(plugin.post, `You appear to be using an async plugin/preset, but Babel has been called synchronously`); + yield* fn.call(pass, file); } } } } -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 index a1364e6..2d3ea15 100644 --- a/node_modules/@babel/core/lib/transformation/index.js.map +++ b/node_modules/@babel/core/lib/transformation/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_traverse","data","require","_pluginPass","_blockHoistPlugin","_normalizeOpts","_normalizeFile","_generate","_deepArray","run","config","code","ast","file","normalizeFile","passes","normalizeOptions","opts","transformFile","e","_opts$filename","message","filename","outputCode","outputMap","generateCode","_opts$filename2","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\";\nimport type { GeneratorResult } from \"@babel/generator\";\n\nimport type { Handler } from \"gensync\";\n\nimport type { ResolvedConfig, Plugin, PluginPasses } from \"../config/index.ts\";\n\nimport PluginPass from \"./plugin-pass.ts\";\nimport loadBlockHoistPlugin from \"./block-hoist-plugin.ts\";\nimport normalizeOptions from \"./normalize-opts.ts\";\nimport normalizeFile from \"./normalize-file.ts\";\n\nimport generateCode from \"./file/generate.ts\";\nimport type File from \"./file/file.ts\";\n\nimport { flattenToSet } from \"../config/helpers/deep-array.ts\";\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: GeneratorResult[\"map\"] | 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 // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression\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 if (process.env.BABEL_8_BREAKING) {\n traverse(file.ast.program, visitor, file.scope, null, file.path, true);\n } else {\n traverse(file.ast, visitor, file.scope);\n }\n\n for (const [plugin, pass] of passPairs) {\n const fn = plugin.post;\n if (fn) {\n // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression\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":";;;;;;AAAA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAQA,IAAAE,WAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAEA,IAAAK,SAAA,GAAAL,OAAA;AAGA,IAAAM,UAAA,GAAAN,OAAA;AAiBO,UAAUO,GAAGA,CAClBC,MAAsB,EACtBC,IAAY,EACZC,GAA+B,EACV;EACrB,MAAMC,IAAI,GAAG,OAAO,IAAAC,sBAAa,EAC/BJ,MAAM,CAACK,MAAM,EACb,IAAAC,sBAAgB,EAACN,MAAM,CAAC,EACxBC,IAAI,EACJC,GACF,CAAC;EAED,MAAMK,IAAI,GAAGJ,IAAI,CAACI,IAAI;EACtB,IAAI;IACF,OAAOC,aAAa,CAACL,IAAI,EAAEH,MAAM,CAACK,MAAM,CAAC;EAC3C,CAAC,CAAC,OAAOI,CAAC,EAAE;IAAA,IAAAC,cAAA;IACVD,CAAC,CAACE,OAAO,GAAG,IAAAD,cAAA,GAAGH,IAAI,CAACK,QAAQ,YAAAF,cAAA,GAAI,cAAc,KAAKD,CAAC,CAACE,OAAO,EAAE;IAC9D,IAAI,CAACF,CAAC,CAACR,IAAI,EAAE;MACXQ,CAAC,CAACR,IAAI,GAAG,uBAAuB;IAClC;IACA,MAAMQ,CAAC;EACT;EAEA,IAAII,UAAU,EAAEC,SAAS;EACzB,IAAI;IACF,IAAIP,IAAI,CAACN,IAAI,KAAK,KAAK,EAAE;MACvB,CAAC;QAAEY,UAAU;QAAEC;MAAU,CAAC,GAAG,IAAAC,iBAAY,EAACf,MAAM,CAACK,MAAM,EAAEF,IAAI,CAAC;IAChE;EACF,CAAC,CAAC,OAAOM,CAAC,EAAE;IAAA,IAAAO,eAAA;IACVP,CAAC,CAACE,OAAO,GAAG,IAAAK,eAAA,GAAGT,IAAI,CAACK,QAAQ,YAAAI,eAAA,GAAI,cAAc,KAAKP,CAAC,CAACE,OAAO,EAAE;IAC9D,IAAI,CAACF,CAAC,CAACR,IAAI,EAAE;MACXQ,CAAC,CAACR,IAAI,GAAG,sBAAsB;IACjC;IACA,MAAMQ,CAAC;EACT;EAEA,OAAO;IACLQ,QAAQ,EAAEd,IAAI,CAACc,QAAQ;IACvBC,OAAO,EAAEX,IAAI;IACbL,GAAG,EAAEK,IAAI,CAACL,GAAG,KAAK,IAAI,GAAGC,IAAI,CAACD,GAAG,GAAG,IAAI;IACxCD,IAAI,EAAEY,UAAU,KAAKM,SAAS,GAAG,IAAI,GAAGN,UAAU;IAClDO,GAAG,EAAEN,SAAS,KAAKK,SAAS,GAAG,IAAI,GAAGL,SAAS;IAC/CO,UAAU,EAAElB,IAAI,CAACD,GAAG,CAACoB,OAAO,CAACD,UAAU;IACvCE,oBAAoB,EAAE,IAAAC,uBAAY,EAACxB,MAAM,CAACuB,oBAAoB;EAChE,CAAC;AACH;AAEA,UAAUf,aAAaA,CAACL,IAAU,EAAEsB,YAA0B,EAAiB;EAC7E,KAAK,MAAMC,WAAW,IAAID,YAAY,EAAE;IACtC,MAAME,SAAiC,GAAG,EAAE;IAC5C,MAAMtB,MAAM,GAAG,EAAE;IACjB,MAAMuB,QAAQ,GAAG,EAAE;IAEnB,KAAK,MAAMC,MAAM,IAAIH,WAAW,CAACI,MAAM,CAAC,CAAC,IAAAC,yBAAoB,EAAC,CAAC,CAAC,CAAC,EAAE;MACjE,MAAMC,IAAI,GAAG,IAAIC,mBAAU,CAAC9B,IAAI,EAAE0B,MAAM,CAACK,GAAG,EAAEL,MAAM,CAACX,OAAO,CAAC;MAE7DS,SAAS,CAACQ,IAAI,CAAC,CAACN,MAAM,EAAEG,IAAI,CAAC,CAAC;MAC9B3B,MAAM,CAAC8B,IAAI,CAACH,IAAI,CAAC;MACjBJ,QAAQ,CAACO,IAAI,CAACN,MAAM,CAACO,OAAO,CAAC;IAC/B;IAEA,KAAK,MAAM,CAACP,MAAM,EAAEG,IAAI,CAAC,IAAIL,SAAS,EAAE;MACtC,MAAMU,EAAE,GAAGR,MAAM,CAACS,GAAG;MACrB,IAAID,EAAE,EAAE;QAEN,MAAME,MAAM,GAAGF,EAAE,CAACG,IAAI,CAACR,IAAI,EAAE7B,IAAI,CAAC;QAGlC,OAAO,EAAE;QAET,IAAIsC,UAAU,CAACF,MAAM,CAAC,EAAE;UACtB,MAAM,IAAIG,KAAK,CACb,uDAAuD,GACrD,wDAAwD,GACxD,8DAA8D,GAC9D,2BACJ,CAAC;QACH;MACF;IACF;IAGA,MAAMN,OAAO,GAAGO,mBAAQ,CAACf,QAAQ,CAACgB,KAAK,CACrChB,QAAQ,EACRvB,MAAM,EACNF,IAAI,CAACI,IAAI,CAACsC,uBACZ,CAAC;IAGM;MACL,IAAAF,mBAAQ,EAACxC,IAAI,CAACD,GAAG,EAAEkC,OAAO,EAAEjC,IAAI,CAAC2C,KAAK,CAAC;IACzC;IAEA,KAAK,MAAM,CAACjB,MAAM,EAAEG,IAAI,CAAC,IAAIL,SAAS,EAAE;MACtC,MAAMU,EAAE,GAAGR,MAAM,CAACkB,IAAI;MACtB,IAAIV,EAAE,EAAE;QAEN,MAAME,MAAM,GAAGF,EAAE,CAACG,IAAI,CAACR,IAAI,EAAE7B,IAAI,CAAC;QAGlC,OAAO,EAAE;QAET,IAAIsC,UAAU,CAACF,MAAM,CAAC,EAAE;UACtB,MAAM,IAAIG,KAAK,CACb,wDAAwD,GACtD,wDAAwD,GACxD,8DAA8D,GAC9D,2BACJ,CAAC;QACH;MACF;IACF;EACF;AACF;AAEA,SAASD,UAAUA,CAA6BO,GAAQ,EAAY;EAClE,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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_traverse","data","require","_pluginPass","_blockHoistPlugin","_normalizeOpts","_normalizeFile","_generate","_deepArray","_async","run","config","code","ast","file","normalizeFile","passes","normalizeOptions","opts","transformFile","e","_opts$filename","message","filename","outputCode","outputMap","generateCode","_opts$filename2","metadata","options","undefined","map","sourceType","program","externalDependencies","flattenToSet","pluginPasses","async","isAsync","pluginPairs","passPairs","visitors","plugin","concat","loadBlockHoistPlugin","pass","PluginPass","key","push","visitor","pre","fn","maybeAsync","call","traverse","merge","wrapPluginVisitorMethod","scope","post"],"sources":["../../src/transformation/index.ts"],"sourcesContent":["import traverse from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\nimport type { GeneratorResult } from \"@babel/generator\";\n\nimport type { Handler } from \"gensync\";\n\nimport type { ResolvedConfig, Plugin, PluginPasses } from \"../config/index.ts\";\n\nimport PluginPass from \"./plugin-pass.ts\";\nimport loadBlockHoistPlugin from \"./block-hoist-plugin.ts\";\nimport normalizeOptions from \"./normalize-opts.ts\";\nimport normalizeFile from \"./normalize-file.ts\";\n\nimport generateCode from \"./file/generate.ts\";\nimport type File from \"./file/file.ts\";\n\nimport { flattenToSet } from \"../config/helpers/deep-array.ts\";\nimport { isAsync, maybeAsync } from \"../gensync-utils/async.ts\";\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: GeneratorResult[\"map\"] | 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 const async = yield* isAsync();\n\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, async);\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 if (plugin.pre) {\n const fn = maybeAsync(\n plugin.pre,\n `You appear to be using an async plugin/preset, but Babel has been called synchronously`,\n );\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n yield* fn.call(pass, file);\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 if (process.env.BABEL_8_BREAKING) {\n traverse(file.ast.program, visitor, file.scope, null, file.path, true);\n } else {\n traverse(file.ast, visitor, file.scope);\n }\n\n for (const [plugin, pass] of passPairs) {\n if (plugin.post) {\n const fn = maybeAsync(\n plugin.post,\n `You appear to be using an async plugin/preset, but Babel has been called synchronously`,\n );\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n yield* fn.call(pass, file);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]} \ 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 index e39c885..d8f2c5c 100644 --- a/node_modules/@babel/core/lib/transformation/plugin-pass.js +++ b/node_modules/@babel/core/lib/transformation/plugin-pass.js @@ -5,18 +5,20 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; class PluginPass { - constructor(file, key, options) { + constructor(file, key, options, isAsync) { 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.isAsync = void 0; this.key = key; this.file = file; this.opts = options || {}; this.cwd = file.opts.cwd; this.filename = file.opts.filename; + this.isAsync = isAsync; } set(key, val) { this._map.set(key, val); diff --git a/node_modules/@babel/core/lib/transformation/plugin-pass.js.map b/node_modules/@babel/core/lib/transformation/plugin-pass.js.map index c716f7a..e691707 100644 --- a/node_modules/@babel/core/lib/transformation/plugin-pass.js.map +++ b/node_modules/@babel/core/lib/transformation/plugin-pass.js.map @@ -1 +1 @@ -{"version":3,"names":["PluginPass","constructor","file","key","options","_map","Map","opts","cwd","filename","set","val","get","availableHelper","name","versionRange","addHelper","buildCodeFrameError","node","msg","_Error","exports","default","prototype","getModuleName","addImport"],"sources":["../../src/transformation/plugin-pass.ts"],"sourcesContent":["import type * as t from \"@babel/types\";\nimport type File from \"./file/file.ts\";\n\nexport default class PluginPass {\n _map: Map = new Map();\n key: string | undefined | null;\n file: File;\n opts: Partial;\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?: Options) {\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 buildCodeFrameError(\n node: t.Node | 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 this: PluginPass,\n ): string | undefined {\n // @ts-expect-error only exists in Babel 7\n return this.file.getModuleName();\n };\n (PluginPass as any).prototype.addImport = function addImport(\n this: PluginPass,\n ): void {\n // @ts-expect-error only exists in Babel 7\n this.file.addImport();\n };\n}\n"],"mappings":";;;;;;AAGe,MAAMA,UAAU,CAAmB;EAahDC,WAAWA,CAACC,IAAU,EAAEC,GAAmB,EAAEC,OAAiB,EAAE;IAAA,KAZhEC,IAAI,GAA0B,IAAIC,GAAG,CAAC,CAAC;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,GAAGA,CAACP,GAAY,EAAEQ,GAAY,EAAE;IAC9B,IAAI,CAACN,IAAI,CAACK,GAAG,CAACP,GAAG,EAAEQ,GAAG,CAAC;EACzB;EAEAC,GAAGA,CAACT,GAAY,EAAO;IACrB,OAAO,IAAI,CAACE,IAAI,CAACO,GAAG,CAACT,GAAG,CAAC;EAC3B;EAEAU,eAAeA,CAACC,IAAY,EAAEC,YAA4B,EAAE;IAC1D,OAAO,IAAI,CAACb,IAAI,CAACW,eAAe,CAACC,IAAI,EAAEC,YAAY,CAAC;EACtD;EAEAC,SAASA,CAACF,IAAY,EAAE;IACtB,OAAO,IAAI,CAACZ,IAAI,CAACc,SAAS,CAACF,IAAI,CAAC;EAClC;EAEAG,mBAAmBA,CACjBC,IAA+B,EAC/BC,GAAW,EACXC,MAAqB,EACrB;IACA,OAAO,IAAI,CAAClB,IAAI,CAACe,mBAAmB,CAACC,IAAI,EAAEC,GAAG,EAAEC,MAAM,CAAC;EACzD;AACF;AAACC,OAAA,CAAAC,OAAA,GAAAtB,UAAA;AAEkC;EAChCA,UAAU,CAASuB,SAAS,CAACC,aAAa,GAAG,SAASA,aAAaA,CAAA,EAE9C;IAEpB,OAAO,IAAI,CAACtB,IAAI,CAACsB,aAAa,CAAC,CAAC;EAClC,CAAC;EACAxB,UAAU,CAASuB,SAAS,CAACE,SAAS,GAAG,SAASA,SAASA,CAAA,EAEpD;IAEN,IAAI,CAACvB,IAAI,CAACuB,SAAS,CAAC,CAAC;EACvB,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["PluginPass","constructor","file","key","options","isAsync","_map","Map","opts","cwd","filename","set","val","get","availableHelper","name","versionRange","addHelper","buildCodeFrameError","node","msg","_Error","exports","default","prototype","getModuleName","addImport"],"sources":["../../src/transformation/plugin-pass.ts"],"sourcesContent":["import type * as t from \"@babel/types\";\nimport type File from \"./file/file.ts\";\n\nexport default class PluginPass {\n _map: Map = new Map();\n key: string | undefined | null;\n file: File;\n opts: Partial;\n\n /**\n * The working directory that Babel's programmatic options are loaded\n * relative to.\n */\n cwd: string;\n\n /** The absolute path of the file being compiled. */\n filename: string | void;\n\n /**\n * Is Babel executed in async mode or not.\n */\n isAsync: boolean;\n\n constructor(\n file: File,\n key: string | null,\n options: Options | undefined,\n isAsync: boolean,\n ) {\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 this.isAsync = isAsync;\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 buildCodeFrameError(\n node: t.Node | 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 this: PluginPass,\n ): string | undefined {\n // @ts-expect-error only exists in Babel 7\n return this.file.getModuleName();\n };\n (PluginPass as any).prototype.addImport = function addImport(\n this: PluginPass,\n ): void {\n // @ts-expect-error only exists in Babel 7\n this.file.addImport();\n };\n}\n"],"mappings":";;;;;;AAGe,MAAMA,UAAU,CAAmB;EAoBhDC,WAAWA,CACTC,IAAU,EACVC,GAAkB,EAClBC,OAA4B,EAC5BC,OAAgB,EAChB;IAAA,KAxBFC,IAAI,GAA0B,IAAIC,GAAG,CAAC,CAAC;IAAA,KACvCJ,GAAG;IAAA,KACHD,IAAI;IAAA,KACJM,IAAI;IAAA,KAMJC,GAAG;IAAA,KAGHC,QAAQ;IAAA,KAKRL,OAAO;IAQL,IAAI,CAACF,GAAG,GAAGA,GAAG;IACd,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACM,IAAI,GAAGJ,OAAO,IAAI,CAAC,CAAC;IACzB,IAAI,CAACK,GAAG,GAAGP,IAAI,CAACM,IAAI,CAACC,GAAG;IACxB,IAAI,CAACC,QAAQ,GAAGR,IAAI,CAACM,IAAI,CAACE,QAAQ;IAClC,IAAI,CAACL,OAAO,GAAGA,OAAO;EACxB;EAEAM,GAAGA,CAACR,GAAY,EAAES,GAAY,EAAE;IAC9B,IAAI,CAACN,IAAI,CAACK,GAAG,CAACR,GAAG,EAAES,GAAG,CAAC;EACzB;EAEAC,GAAGA,CAACV,GAAY,EAAO;IACrB,OAAO,IAAI,CAACG,IAAI,CAACO,GAAG,CAACV,GAAG,CAAC;EAC3B;EAEAW,eAAeA,CAACC,IAAY,EAAEC,YAA4B,EAAE;IAC1D,OAAO,IAAI,CAACd,IAAI,CAACY,eAAe,CAACC,IAAI,EAAEC,YAAY,CAAC;EACtD;EAEAC,SAASA,CAACF,IAAY,EAAE;IACtB,OAAO,IAAI,CAACb,IAAI,CAACe,SAAS,CAACF,IAAI,CAAC;EAClC;EAEAG,mBAAmBA,CACjBC,IAA+B,EAC/BC,GAAW,EACXC,MAAqB,EACrB;IACA,OAAO,IAAI,CAACnB,IAAI,CAACgB,mBAAmB,CAACC,IAAI,EAAEC,GAAG,EAAEC,MAAM,CAAC;EACzD;AACF;AAACC,OAAA,CAAAC,OAAA,GAAAvB,UAAA;AAEkC;EAChCA,UAAU,CAASwB,SAAS,CAACC,aAAa,GAAG,SAASA,aAAaA,CAAA,EAE9C;IAEpB,OAAO,IAAI,CAACvB,IAAI,CAACuB,aAAa,CAAC,CAAC;EAClC,CAAC;EACAzB,UAAU,CAASwB,SAAS,CAACE,SAAS,GAAG,SAASA,SAASA,CAAA,EAEpD;IAEN,IAAI,CAACxB,IAAI,CAACwB,SAAS,CAAC,CAAC;EACvB,CAAC;AACH;AAAC","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/core/package.json b/node_modules/@babel/core/package.json index 3a1cd98..675d991 100644 --- a/node_modules/@babel/core/package.json +++ b/node_modules/@babel/core/package.json @@ -1,6 +1,6 @@ { "name": "@babel/core", - "version": "7.25.2", + "version": "7.26.0", "description": "Babel compiler core.", "main": "./lib/index.js", "author": "The Babel Team (https://babel.dev/team)", @@ -47,15 +47,15 @@ }, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -63,12 +63,12 @@ "semver": "^6.3.1" }, "devDependencies": { - "@babel/helper-transform-fixture-test-runner": "^7.25.2", - "@babel/plugin-syntax-flow": "^7.24.7", - "@babel/plugin-transform-flow-strip-types": "^7.25.2", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/preset-env": "^7.25.2", - "@babel/preset-typescript": "^7.24.7", + "@babel/helper-transform-fixture-test-runner": "^7.26.0", + "@babel/plugin-syntax-flow": "^7.26.0", + "@babel/plugin-transform-flow-strip-types": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/preset-env": "^7.26.0", + "@babel/preset-typescript": "^7.26.0", "@jridgewell/trace-mapping": "^0.3.25", "@types/convert-source-map": "^2.0.0", "@types/debug": "^4.1.0", diff --git a/node_modules/@babel/core/src/config/files/index-browser.ts b/node_modules/@babel/core/src/config/files/index-browser.ts index d257363..352cff4 100644 --- a/node_modules/@babel/core/src/config/files/index-browser.ts +++ b/node_modules/@babel/core/src/config/files/index-browser.ts @@ -74,13 +74,17 @@ export function* resolveShowConfigPath( export const ROOT_CONFIG_FILENAMES: string[] = []; +type Resolved = + | { loader: "require"; filepath: string } + | { loader: "import"; filepath: string }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars -export function resolvePlugin(name: string, dirname: string): string | null { +export function resolvePlugin(name: string, dirname: string): Resolved | null { return null; } // eslint-disable-next-line @typescript-eslint/no-unused-vars -export function resolvePreset(name: string, dirname: string): string | null { +export function resolvePreset(name: string, dirname: string): Resolved | null { return null; } diff --git a/node_modules/@babel/generator/lib/buffer.js.map b/node_modules/@babel/generator/lib/buffer.js.map index 87a96b4..d92c017 100644 --- a/node_modules/@babel/generator/lib/buffer.js.map +++ b/node_modules/@babel/generator/lib/buffer.js.map @@ -1 +1 @@ -{"version":3,"names":["Buffer","constructor","map","indentChar","_map","_buf","_str","_appendCount","_last","_queue","_queueCursor","_canMarkIdName","_indentChar","_fastIndentations","_position","line","column","_sourcePosition","identifierName","undefined","identifierNamePos","filename","i","push","repeat","_allocQueue","queue","char","_pushQueue","cursor","length","item","_popQueue","Error","get","_flush","result","code","trimRight","decodedMap","getDecoded","__mergedMap","resultMap","value","Object","defineProperty","writable","rawMappings","mappings","getRawMappings","append","str","maybeNewline","_append","appendChar","_appendChar","sourcePosition","queueIndentation","queueCursor","sourcePos","fastIndentation","String","fromCharCode","_mark","len","position","charCodeAt","indexOf","last","_this$_map","mark","removeTrailingNewline","removeLastSemicolon","getLastChar","getNewlineCount","count","endsWithCharAndNewline","lastCp","hasContent","exactSource","loc","cb","source","prop","_normalizePosition","sourceWithOffset","columnOffset","pos","target","Math","max","getCurrentColumn","lastIndex","getCurrentLine","exports","default"],"sources":["../src/buffer.ts"],"sourcesContent":["import type SourceMap from \"./source-map.ts\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\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 filename?: string;\n};\ntype SourcePos = {\n line: number | undefined;\n column: number | undefined;\n identifierName: string | undefined;\n filename: string | undefined;\n};\ntype InternalSourcePos = SourcePos & { identifierNamePos: Pos };\n\ntype QueueItem = {\n char: number;\n repeat: number;\n line: number | undefined;\n column: number | undefined;\n identifierName: undefined; // Not used, it always undefined.\n identifierNamePos: undefined; // Not used, it always undefined.\n filename: string | undefined;\n};\n\nexport default class Buffer {\n constructor(map: SourceMap | null, indentChar: string) {\n this._map = map;\n this._indentChar = indentChar;\n\n for (let i = 0; i < 64; i++) {\n this._fastIndentations.push(indentChar.repeat(i));\n }\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 _canMarkIdName = true;\n _indentChar = \"\";\n _fastIndentations: string[] = [];\n\n _position = {\n line: 1,\n column: 0,\n };\n _sourcePosition: InternalSourcePos = {\n identifierName: undefined,\n identifierNamePos: 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 identifierNamePos: undefined,\n filename: \"\",\n });\n }\n }\n\n _pushQueue(\n char: number,\n repeat: number,\n line: number | undefined,\n column: number | 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.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 // Used as a marker for backwards compatibility. We moved input map merging\n // into the generator. We cannot merge the input map a second time, so the\n // presence of this field tells us we've already done the work.\n get __mergedMap() {\n return this.map;\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.filename,\n );\n }\n\n /**\n * Same as queue, but this indentation will never have a sourcemap marker.\n */\n queueIndentation(repeat: number): void {\n if (repeat === 0) return;\n this._pushQueue(-1, repeat, 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(\n char: number,\n repeat: number,\n sourcePos: InternalSourcePos,\n ): void {\n this._last = char;\n\n if (char === -1) {\n const fastIndentation = this._fastIndentations[repeat];\n if (fastIndentation !== undefined) {\n this._str += fastIndentation;\n } else {\n this._str +=\n repeat > 1 ? this._indentChar.repeat(repeat) : this._indentChar;\n }\n } else {\n this._str +=\n repeat > 1\n ? String.fromCharCode(char).repeat(repeat)\n : String.fromCharCode(char);\n }\n\n if (char !== charcodes.lineFeed) {\n this._mark(\n sourcePos.line,\n sourcePos.column,\n sourcePos.identifierName,\n sourcePos.identifierNamePos,\n sourcePos.filename,\n );\n this._position.column += repeat;\n } else {\n this._position.line++;\n this._position.column = 0;\n }\n\n if (this._canMarkIdName) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n }\n\n _append(\n str: string,\n sourcePos: InternalSourcePos,\n maybeNewline: boolean,\n ): 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 // eslint-disable-next-line @typescript-eslint/no-unused-expressions\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, identifierNamePos, filename } = sourcePos;\n let line = sourcePos.line;\n\n if (\n (identifierName != null || identifierNamePos != null) &&\n this._canMarkIdName\n ) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\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, identifierNamePos, filename);\n }\n\n // Now, find each remaining 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 // When manually adding multi-line content (such as a comment), `line` will be `undefined`.\n if (last < len && line !== undefined) {\n this._mark(++line, 0, null, null, 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 identifierNamePos: Pos | undefined,\n filename: string | undefined,\n ): void {\n this._map?.mark(\n this._position,\n line,\n column,\n identifierName,\n identifierNamePos,\n filename,\n );\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 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) {\n cb();\n return;\n }\n\n this.source(\"start\", loc);\n // @ts-expect-error identifierName is not defined\n const identifierName = loc.identifierName;\n const sourcePos = this._sourcePosition;\n if (identifierName) {\n this._canMarkIdName = false;\n sourcePos.identifierName = identifierName;\n }\n cb();\n\n if (identifierName) {\n this._canMarkIdName = true;\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\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 reuse the same _sourcePosition\n // object for the whole lifetime of the buffer.\n this._normalizePosition(prop, loc, 0);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n columnOffset: number,\n ): void {\n if (!this._map) return;\n\n this._normalizePosition(prop, loc, columnOffset);\n }\n\n _normalizePosition(prop: \"start\" | \"end\", loc: Loc, columnOffset: number) {\n const pos = loc[prop];\n const target = this._sourcePosition;\n\n if (pos) {\n target.line = pos.line;\n // TODO: Fix https://github.com/babel/babel/issues/15712 in downstream\n target.column = Math.max(pos.column + columnOffset, 0);\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":";;;;;;AAiCe,MAAMA,MAAM,CAAC;EAC1BC,WAAWA,CAACC,GAAqB,EAAEC,UAAkB,EAAE;IAAA,KAWvDC,IAAI,GAAc,IAAI;IAAA,KACtBC,IAAI,GAAG,EAAE;IAAA,KACTC,IAAI,GAAG,EAAE;IAAA,KACTC,YAAY,GAAG,CAAC;IAAA,KAChBC,KAAK,GAAG,CAAC;IAAA,KACTC,MAAM,GAAgB,EAAE;IAAA,KACxBC,YAAY,GAAG,CAAC;IAAA,KAChBC,cAAc,GAAG,IAAI;IAAA,KACrBC,WAAW,GAAG,EAAE;IAAA,KAChBC,iBAAiB,GAAa,EAAE;IAAA,KAEhCC,SAAS,GAAG;MACVC,IAAI,EAAE,CAAC;MACPC,MAAM,EAAE;IACV,CAAC;IAAA,KACDC,eAAe,GAAsB;MACnCC,cAAc,EAAEC,SAAS;MACzBC,iBAAiB,EAAED,SAAS;MAC5BJ,IAAI,EAAEI,SAAS;MACfH,MAAM,EAAEG,SAAS;MACjBE,QAAQ,EAAEF;IACZ,CAAC;IA/BC,IAAI,CAACf,IAAI,GAAGF,GAAG;IACf,IAAI,CAACU,WAAW,GAAGT,UAAU;IAE7B,KAAK,IAAImB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;MAC3B,IAAI,CAACT,iBAAiB,CAACU,IAAI,CAACpB,UAAU,CAACqB,MAAM,CAACF,CAAC,CAAC,CAAC;IACnD;IAEA,IAAI,CAACG,WAAW,CAAC,CAAC;EACpB;EAyBAA,WAAWA,CAAA,EAAG;IACZ,MAAMC,KAAK,GAAG,IAAI,CAACjB,MAAM;IAEzB,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;MAC3BI,KAAK,CAACH,IAAI,CAAC;QACTI,IAAI,EAAE,CAAC;QACPH,MAAM,EAAE,CAAC;QACTT,IAAI,EAAEI,SAAS;QACfH,MAAM,EAAEG,SAAS;QACjBD,cAAc,EAAEC,SAAS;QACzBC,iBAAiB,EAAED,SAAS;QAC5BE,QAAQ,EAAE;MACZ,CAAC,CAAC;IACJ;EACF;EAEAO,UAAUA,CACRD,IAAY,EACZH,MAAc,EACdT,IAAwB,EACxBC,MAA0B,EAC1BK,QAA4B,EAC5B;IACA,MAAMQ,MAAM,GAAG,IAAI,CAACnB,YAAY;IAChC,IAAImB,MAAM,KAAK,IAAI,CAACpB,MAAM,CAACqB,MAAM,EAAE;MACjC,IAAI,CAACL,WAAW,CAAC,CAAC;IACpB;IACA,MAAMM,IAAI,GAAG,IAAI,CAACtB,MAAM,CAACoB,MAAM,CAAC;IAChCE,IAAI,CAACJ,IAAI,GAAGA,IAAI;IAChBI,IAAI,CAACP,MAAM,GAAGA,MAAM;IACpBO,IAAI,CAAChB,IAAI,GAAGA,IAAI;IAChBgB,IAAI,CAACf,MAAM,GAAGA,MAAM;IACpBe,IAAI,CAACV,QAAQ,GAAGA,QAAQ;IAExB,IAAI,CAACX,YAAY,EAAE;EACrB;EAEAsB,SAASA,CAAA,EAAc;IACrB,IAAI,IAAI,CAACtB,YAAY,KAAK,CAAC,EAAE;MAC3B,MAAM,IAAIuB,KAAK,CAAC,6BAA6B,CAAC;IAChD;IACA,OAAO,IAAI,CAACxB,MAAM,CAAC,EAAE,IAAI,CAACC,YAAY,CAAC;EACzC;EAMAwB,GAAGA,CAAA,EAAG;IACJ,IAAI,CAACC,MAAM,CAAC,CAAC;IAEb,MAAMjC,GAAG,GAAG,IAAI,CAACE,IAAI;IACrB,MAAMgC,MAAM,GAAG;MAGbC,IAAI,EAAE,CAAC,IAAI,CAAChC,IAAI,GAAG,IAAI,CAACC,IAAI,EAAEgC,SAAS,CAAC,CAAC;MAEzCC,UAAU,EAAErC,GAAG,oBAAHA,GAAG,CAAEsC,UAAU,CAAC,CAAC;MAI7B,IAAIC,WAAWA,CAAA,EAAG;QAChB,OAAO,IAAI,CAACvC,GAAG;MACjB,CAAC;MAED,IAAIA,GAAGA,CAAA,EAAG;QACR,MAAMwC,SAAS,GAAGxC,GAAG,GAAGA,GAAG,CAACgC,GAAG,CAAC,CAAC,GAAG,IAAI;QACxCE,MAAM,CAAClC,GAAG,GAAGwC,SAAS;QACtB,OAAOA,SAAS;MAClB,CAAC;MACD,IAAIxC,GAAGA,CAACyC,KAAK,EAAE;QACbC,MAAM,CAACC,cAAc,CAACT,MAAM,EAAE,KAAK,EAAE;UAAEO,KAAK;UAAEG,QAAQ,EAAE;QAAK,CAAC,CAAC;MACjE,CAAC;MAED,IAAIC,WAAWA,CAAA,EAAG;QAChB,MAAMC,QAAQ,GAAG9C,GAAG,oBAAHA,GAAG,CAAE+C,cAAc,CAAC,CAAC;QACtCb,MAAM,CAACW,WAAW,GAAGC,QAAQ;QAC7B,OAAOA,QAAQ;MACjB,CAAC;MACD,IAAID,WAAWA,CAACJ,KAAK,EAAE;QACrBC,MAAM,CAACC,cAAc,CAACT,MAAM,EAAE,aAAa,EAAE;UAAEO,KAAK;UAAEG,QAAQ,EAAE;QAAK,CAAC,CAAC;MACzE;IACF,CAAC;IAED,OAAOV,MAAM;EACf;EAMAc,MAAMA,CAACC,GAAW,EAAEC,YAAqB,EAAQ;IAC/C,IAAI,CAACjB,MAAM,CAAC,CAAC;IAEb,IAAI,CAACkB,OAAO,CAACF,GAAG,EAAE,IAAI,CAAClC,eAAe,EAAEmC,YAAY,CAAC;EACvD;EAEAE,UAAUA,CAAC3B,IAAY,EAAQ;IAC7B,IAAI,CAACQ,MAAM,CAAC,CAAC;IACb,IAAI,CAACoB,WAAW,CAAC5B,IAAI,EAAE,CAAC,EAAE,IAAI,CAACV,eAAe,CAAC;EACjD;EAKAS,KAAKA,CAACC,IAAY,EAAQ;IAExB,IAAIA,IAAI,OAAuB,EAAE;MAC/B,OAAO,IAAI,CAACjB,YAAY,KAAK,CAAC,EAAE;QAC9B,MAAMiB,IAAI,GAAG,IAAI,CAAClB,MAAM,CAAC,IAAI,CAACC,YAAY,GAAG,CAAC,CAAC,CAACiB,IAAI;QACpD,IAAIA,IAAI,OAAoB,IAAIA,IAAI,MAAkB,EAAE;UACtD;QACF;QAEA,IAAI,CAACjB,YAAY,EAAE;MACrB;IACF;IAEA,MAAM8C,cAAc,GAAG,IAAI,CAACvC,eAAe;IAC3C,IAAI,CAACW,UAAU,CACbD,IAAI,EACJ,CAAC,EACD6B,cAAc,CAACzC,IAAI,EACnByC,cAAc,CAACxC,MAAM,EACrBwC,cAAc,CAACnC,QACjB,CAAC;EACH;EAKAoC,gBAAgBA,CAACjC,MAAc,EAAQ;IACrC,IAAIA,MAAM,KAAK,CAAC,EAAE;IAClB,IAAI,CAACI,UAAU,CAAC,CAAC,CAAC,EAAEJ,MAAM,EAAEL,SAAS,EAAEA,SAAS,EAAEA,SAAS,CAAC;EAC9D;EAEAgB,MAAMA,CAAA,EAAS;IACb,MAAMuB,WAAW,GAAG,IAAI,CAAChD,YAAY;IACrC,MAAMgB,KAAK,GAAG,IAAI,CAACjB,MAAM;IACzB,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoC,WAAW,EAAEpC,CAAC,EAAE,EAAE;MACpC,MAAMS,IAAe,GAAGL,KAAK,CAACJ,CAAC,CAAC;MAChC,IAAI,CAACiC,WAAW,CAACxB,IAAI,CAACJ,IAAI,EAAEI,IAAI,CAACP,MAAM,EAAEO,IAAI,CAAC;IAChD;IACA,IAAI,CAACrB,YAAY,GAAG,CAAC;EACvB;EAEA6C,WAAWA,CACT5B,IAAY,EACZH,MAAc,EACdmC,SAA4B,EACtB;IACN,IAAI,CAACnD,KAAK,GAAGmB,IAAI;IAEjB,IAAIA,IAAI,KAAK,CAAC,CAAC,EAAE;MACf,MAAMiC,eAAe,GAAG,IAAI,CAAC/C,iBAAiB,CAACW,MAAM,CAAC;MACtD,IAAIoC,eAAe,KAAKzC,SAAS,EAAE;QACjC,IAAI,CAACb,IAAI,IAAIsD,eAAe;MAC9B,CAAC,MAAM;QACL,IAAI,CAACtD,IAAI,IACPkB,MAAM,GAAG,CAAC,GAAG,IAAI,CAACZ,WAAW,CAACY,MAAM,CAACA,MAAM,CAAC,GAAG,IAAI,CAACZ,WAAW;MACnE;IACF,CAAC,MAAM;MACL,IAAI,CAACN,IAAI,IACPkB,MAAM,GAAG,CAAC,GACNqC,MAAM,CAACC,YAAY,CAACnC,IAAI,CAAC,CAACH,MAAM,CAACA,MAAM,CAAC,GACxCqC,MAAM,CAACC,YAAY,CAACnC,IAAI,CAAC;IACjC;IAEA,IAAIA,IAAI,OAAuB,EAAE;MAC/B,IAAI,CAACoC,KAAK,CACRJ,SAAS,CAAC5C,IAAI,EACd4C,SAAS,CAAC3C,MAAM,EAChB2C,SAAS,CAACzC,cAAc,EACxByC,SAAS,CAACvC,iBAAiB,EAC3BuC,SAAS,CAACtC,QACZ,CAAC;MACD,IAAI,CAACP,SAAS,CAACE,MAAM,IAAIQ,MAAM;IACjC,CAAC,MAAM;MACL,IAAI,CAACV,SAAS,CAACC,IAAI,EAAE;MACrB,IAAI,CAACD,SAAS,CAACE,MAAM,GAAG,CAAC;IAC3B;IAEA,IAAI,IAAI,CAACL,cAAc,EAAE;MACvBgD,SAAS,CAACzC,cAAc,GAAGC,SAAS;MACpCwC,SAAS,CAACvC,iBAAiB,GAAGD,SAAS;IACzC;EACF;EAEAkC,OAAOA,CACLF,GAAW,EACXQ,SAA4B,EAC5BP,YAAqB,EACf;IACN,MAAMY,GAAG,GAAGb,GAAG,CAACrB,MAAM;IACtB,MAAMmC,QAAQ,GAAG,IAAI,CAACnD,SAAS;IAE/B,IAAI,CAACN,KAAK,GAAG2C,GAAG,CAACe,UAAU,CAACF,GAAG,GAAG,CAAC,CAAC;IAEpC,IAAI,EAAE,IAAI,CAACzD,YAAY,GAAG,IAAI,EAAE;MAE9B,CAAC,IAAI,CAACD,IAAI;MACV,IAAI,CAACD,IAAI,IAAI,IAAI,CAACC,IAAI;MACtB,IAAI,CAACA,IAAI,GAAG6C,GAAG;MACf,IAAI,CAAC5C,YAAY,GAAG,CAAC;IACvB,CAAC,MAAM;MACL,IAAI,CAACD,IAAI,IAAI6C,GAAG;IAClB;IAEA,IAAI,CAACC,YAAY,IAAI,CAAC,IAAI,CAAChD,IAAI,EAAE;MAC/B6D,QAAQ,CAACjD,MAAM,IAAIgD,GAAG;MACtB;IACF;IAEA,MAAM;MAAEhD,MAAM;MAAEE,cAAc;MAAEE,iBAAiB;MAAEC;IAAS,CAAC,GAAGsC,SAAS;IACzE,IAAI5C,IAAI,GAAG4C,SAAS,CAAC5C,IAAI;IAEzB,IACE,CAACG,cAAc,IAAI,IAAI,IAAIE,iBAAiB,IAAI,IAAI,KACpD,IAAI,CAACT,cAAc,EACnB;MACAgD,SAAS,CAACzC,cAAc,GAAGC,SAAS;MACpCwC,SAAS,CAACvC,iBAAiB,GAAGD,SAAS;IACzC;IAMA,IAAIG,CAAC,GAAG6B,GAAG,CAACgB,OAAO,CAAC,IAAI,CAAC;IACzB,IAAIC,IAAI,GAAG,CAAC;IAIZ,IAAI9C,CAAC,KAAK,CAAC,EAAE;MACX,IAAI,CAACyC,KAAK,CAAChD,IAAI,EAAEC,MAAM,EAAEE,cAAc,EAAEE,iBAAiB,EAAEC,QAAQ,CAAC;IACvE;IAGA,OAAOC,CAAC,KAAK,CAAC,CAAC,EAAE;MACf2C,QAAQ,CAAClD,IAAI,EAAE;MACfkD,QAAQ,CAACjD,MAAM,GAAG,CAAC;MACnBoD,IAAI,GAAG9C,CAAC,GAAG,CAAC;MAKZ,IAAI8C,IAAI,GAAGJ,GAAG,IAAIjD,IAAI,KAAKI,SAAS,EAAE;QACpC,IAAI,CAAC4C,KAAK,CAAC,EAAEhD,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAEM,QAAQ,CAAC;MAC7C;MACAC,CAAC,GAAG6B,GAAG,CAACgB,OAAO,CAAC,IAAI,EAAEC,IAAI,CAAC;IAC7B;IACAH,QAAQ,CAACjD,MAAM,IAAIgD,GAAG,GAAGI,IAAI;EAC/B;EAEAL,KAAKA,CACHhD,IAAwB,EACxBC,MAA0B,EAC1BE,cAAkC,EAClCE,iBAAkC,EAClCC,QAA4B,EACtB;IAAA,IAAAgD,UAAA;IACN,CAAAA,UAAA,OAAI,CAACjE,IAAI,aAATiE,UAAA,CAAWC,IAAI,CACb,IAAI,CAACxD,SAAS,EACdC,IAAI,EACJC,MAAM,EACNE,cAAc,EACdE,iBAAiB,EACjBC,QACF,CAAC;EACH;EAEAkD,qBAAqBA,CAAA,EAAS;IAC5B,MAAMb,WAAW,GAAG,IAAI,CAAChD,YAAY;IACrC,IACEgD,WAAW,KAAK,CAAC,IACjB,IAAI,CAACjD,MAAM,CAACiD,WAAW,GAAG,CAAC,CAAC,CAAC/B,IAAI,OAAuB,EACxD;MACA,IAAI,CAACjB,YAAY,EAAE;IACrB;EACF;EAEA8D,mBAAmBA,CAAA,EAAS;IAC1B,MAAMd,WAAW,GAAG,IAAI,CAAChD,YAAY;IACrC,IACEgD,WAAW,KAAK,CAAC,IACjB,IAAI,CAACjD,MAAM,CAACiD,WAAW,GAAG,CAAC,CAAC,CAAC/B,IAAI,OAAwB,EACzD;MACA,IAAI,CAACjB,YAAY,EAAE;IACrB;EACF;EAEA+D,WAAWA,CAAA,EAAW;IACpB,MAAMf,WAAW,GAAG,IAAI,CAAChD,YAAY;IACrC,OAAOgD,WAAW,KAAK,CAAC,GAAG,IAAI,CAACjD,MAAM,CAACiD,WAAW,GAAG,CAAC,CAAC,CAAC/B,IAAI,GAAG,IAAI,CAACnB,KAAK;EAC3E;EAMAkE,eAAeA,CAAA,EAAW;IACxB,MAAMhB,WAAW,GAAG,IAAI,CAAChD,YAAY;IACrC,IAAIiE,KAAK,GAAG,CAAC;IACb,IAAIjB,WAAW,KAAK,CAAC,EAAE,OAAO,IAAI,CAAClD,KAAK,OAAuB,GAAG,CAAC,GAAG,CAAC;IACvE,KAAK,IAAIc,CAAC,GAAGoC,WAAW,GAAG,CAAC,EAAEpC,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;MACzC,IAAI,IAAI,CAACb,MAAM,CAACa,CAAC,CAAC,CAACK,IAAI,OAAuB,EAAE;QAC9C;MACF;MACAgD,KAAK,EAAE;IACT;IACA,OAAOA,KAAK,KAAKjB,WAAW,IAAI,IAAI,CAAClD,KAAK,OAAuB,GAC7DmE,KAAK,GAAG,CAAC,GACTA,KAAK;EACX;EAKAC,sBAAsBA,CAAA,EAAW;IAC/B,MAAMlD,KAAK,GAAG,IAAI,CAACjB,MAAM;IACzB,MAAMiD,WAAW,GAAG,IAAI,CAAChD,YAAY;IACrC,IAAIgD,WAAW,KAAK,CAAC,EAAE;MAErB,MAAMmB,MAAM,GAAGnD,KAAK,CAACgC,WAAW,GAAG,CAAC,CAAC,CAAC/B,IAAI;MAC1C,IAAIkD,MAAM,OAAuB,EAAE;MACnC,IAAInB,WAAW,GAAG,CAAC,EAAE;QACnB,OAAOhC,KAAK,CAACgC,WAAW,GAAG,CAAC,CAAC,CAAC/B,IAAI;MACpC,CAAC,MAAM;QACL,OAAO,IAAI,CAACnB,KAAK;MACnB;IACF;EAGF;EAEAsE,UAAUA,CAAA,EAAY;IACpB,OAAO,IAAI,CAACpE,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAACF,KAAK;EAChD;EAyBAuE,WAAWA,CAACC,GAAoB,EAAEC,EAAc,EAAE;IAChD,IAAI,CAAC,IAAI,CAAC7E,IAAI,EAAE;MACd6E,EAAE,CAAC,CAAC;MACJ;IACF;IAEA,IAAI,CAACC,MAAM,CAAC,OAAO,EAAEF,GAAG,CAAC;IAEzB,MAAM9D,cAAc,GAAG8D,GAAG,CAAC9D,cAAc;IACzC,MAAMyC,SAAS,GAAG,IAAI,CAAC1C,eAAe;IACtC,IAAIC,cAAc,EAAE;MAClB,IAAI,CAACP,cAAc,GAAG,KAAK;MAC3BgD,SAAS,CAACzC,cAAc,GAAGA,cAAc;IAC3C;IACA+D,EAAE,CAAC,CAAC;IAEJ,IAAI/D,cAAc,EAAE;MAClB,IAAI,CAACP,cAAc,GAAG,IAAI;MAC1BgD,SAAS,CAACzC,cAAc,GAAGC,SAAS;MACpCwC,SAAS,CAACvC,iBAAiB,GAAGD,SAAS;IACzC;IACA,IAAI,CAAC+D,MAAM,CAAC,KAAK,EAAEF,GAAG,CAAC;EACzB;EAOAE,MAAMA,CAACC,IAAqB,EAAEH,GAAoB,EAAQ;IACxD,IAAI,CAAC,IAAI,CAAC5E,IAAI,EAAE;IAIhB,IAAI,CAACgF,kBAAkB,CAACD,IAAI,EAAEH,GAAG,EAAE,CAAC,CAAC;EACvC;EAEAK,gBAAgBA,CACdF,IAAqB,EACrBH,GAAoB,EACpBM,YAAoB,EACd;IACN,IAAI,CAAC,IAAI,CAAClF,IAAI,EAAE;IAEhB,IAAI,CAACgF,kBAAkB,CAACD,IAAI,EAAEH,GAAG,EAAEM,YAAY,CAAC;EAClD;EAEAF,kBAAkBA,CAACD,IAAqB,EAAEH,GAAQ,EAAEM,YAAoB,EAAE;IACxE,MAAMC,GAAG,GAAGP,GAAG,CAACG,IAAI,CAAC;IACrB,MAAMK,MAAM,GAAG,IAAI,CAACvE,eAAe;IAEnC,IAAIsE,GAAG,EAAE;MACPC,MAAM,CAACzE,IAAI,GAAGwE,GAAG,CAACxE,IAAI;MAEtByE,MAAM,CAACxE,MAAM,GAAGyE,IAAI,CAACC,GAAG,CAACH,GAAG,CAACvE,MAAM,GAAGsE,YAAY,EAAE,CAAC,CAAC;MACtDE,MAAM,CAACnE,QAAQ,GAAG2D,GAAG,CAAC3D,QAAQ;IAChC;EACF;EAEAsE,gBAAgBA,CAAA,EAAW;IACzB,MAAMjE,KAAK,GAAG,IAAI,CAACjB,MAAM;IACzB,MAAMiD,WAAW,GAAG,IAAI,CAAChD,YAAY;IAErC,IAAIkF,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI5B,GAAG,GAAG,CAAC;IACX,KAAK,IAAI1C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoC,WAAW,EAAEpC,CAAC,EAAE,EAAE;MACpC,MAAMS,IAAI,GAAGL,KAAK,CAACJ,CAAC,CAAC;MACrB,IAAIS,IAAI,CAACJ,IAAI,OAAuB,EAAE;QACpCiE,SAAS,GAAG5B,GAAG;MACjB;MACAA,GAAG,IAAIjC,IAAI,CAACP,MAAM;IACpB;IAEA,OAAOoE,SAAS,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC9E,SAAS,CAACE,MAAM,GAAGgD,GAAG,GAAGA,GAAG,GAAG,CAAC,GAAG4B,SAAS;EAC7E;EAEAC,cAAcA,CAAA,EAAW;IACvB,IAAIlB,KAAK,GAAG,CAAC;IAEb,MAAMjD,KAAK,GAAG,IAAI,CAACjB,MAAM;IACzB,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACZ,YAAY,EAAEY,CAAC,EAAE,EAAE;MAC1C,IAAII,KAAK,CAACJ,CAAC,CAAC,CAACK,IAAI,OAAuB,EAAE;QACxCgD,KAAK,EAAE;MACT;IACF;IAEA,OAAO,IAAI,CAAC7D,SAAS,CAACC,IAAI,GAAG4D,KAAK;EACpC;AACF;AAACmB,OAAA,CAAAC,OAAA,GAAA/F,MAAA","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["Buffer","constructor","map","indentChar","_map","_buf","_str","_appendCount","_last","_queue","_queueCursor","_canMarkIdName","_indentChar","_fastIndentations","_position","line","column","_sourcePosition","identifierName","undefined","identifierNamePos","filename","i","push","repeat","_allocQueue","queue","char","_pushQueue","cursor","length","item","_popQueue","Error","get","_flush","result","code","trimRight","decodedMap","getDecoded","__mergedMap","resultMap","value","Object","defineProperty","writable","rawMappings","mappings","getRawMappings","append","str","maybeNewline","_append","appendChar","_appendChar","sourcePosition","queueIndentation","queueCursor","sourcePos","fastIndentation","String","fromCharCode","_mark","len","position","charCodeAt","indexOf","last","_this$_map","mark","removeTrailingNewline","removeLastSemicolon","getLastChar","getNewlineCount","count","endsWithCharAndNewline","lastCp","hasContent","exactSource","loc","cb","source","prop","_normalizePosition","sourceWithOffset","columnOffset","pos","target","Math","max","getCurrentColumn","lastIndex","getCurrentLine","exports","default"],"sources":["../src/buffer.ts"],"sourcesContent":["import type SourceMap from \"./source-map.ts\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charcodes from \"charcodes\";\n\nexport type Pos = {\n line: number;\n column: number;\n index: number;\n};\nexport type Loc = {\n start?: Pos;\n end?: Pos;\n filename?: string;\n};\ntype SourcePos = {\n line: number | undefined;\n column: number | undefined;\n identifierName: string | undefined;\n filename: string | undefined;\n};\ntype InternalSourcePos = SourcePos & { identifierNamePos: Pos };\n\ntype QueueItem = {\n char: number;\n repeat: number;\n line: number | undefined;\n column: number | undefined;\n identifierName: undefined; // Not used, it always undefined.\n identifierNamePos: undefined; // Not used, it always undefined.\n filename: string | undefined;\n};\n\nexport default class Buffer {\n constructor(map: SourceMap | null, indentChar: string) {\n this._map = map;\n this._indentChar = indentChar;\n\n for (let i = 0; i < 64; i++) {\n this._fastIndentations.push(indentChar.repeat(i));\n }\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 _canMarkIdName = true;\n _indentChar = \"\";\n _fastIndentations: string[] = [];\n\n _position = {\n line: 1,\n column: 0,\n };\n _sourcePosition: InternalSourcePos = {\n identifierName: undefined,\n identifierNamePos: 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 identifierNamePos: undefined,\n filename: \"\",\n });\n }\n }\n\n _pushQueue(\n char: number,\n repeat: number,\n line: number | undefined,\n column: number | 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.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 // Used as a marker for backwards compatibility. We moved input map merging\n // into the generator. We cannot merge the input map a second time, so the\n // presence of this field tells us we've already done the work.\n get __mergedMap() {\n return this.map;\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.filename,\n );\n }\n\n /**\n * Same as queue, but this indentation will never have a sourcemap marker.\n */\n queueIndentation(repeat: number): void {\n if (repeat === 0) return;\n this._pushQueue(-1, repeat, 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(\n char: number,\n repeat: number,\n sourcePos: InternalSourcePos,\n ): void {\n this._last = char;\n\n if (char === -1) {\n const fastIndentation = this._fastIndentations[repeat];\n if (fastIndentation !== undefined) {\n this._str += fastIndentation;\n } else {\n this._str +=\n repeat > 1 ? this._indentChar.repeat(repeat) : this._indentChar;\n }\n } else {\n this._str +=\n repeat > 1\n ? String.fromCharCode(char).repeat(repeat)\n : String.fromCharCode(char);\n }\n\n if (char !== charcodes.lineFeed) {\n this._mark(\n sourcePos.line,\n sourcePos.column,\n sourcePos.identifierName,\n sourcePos.identifierNamePos,\n sourcePos.filename,\n );\n this._position.column += repeat;\n } else {\n this._position.line++;\n this._position.column = 0;\n }\n\n if (this._canMarkIdName) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n }\n\n _append(\n str: string,\n sourcePos: InternalSourcePos,\n maybeNewline: boolean,\n ): 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 // eslint-disable-next-line @typescript-eslint/no-unused-expressions\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, identifierNamePos, filename } = sourcePos;\n let line = sourcePos.line;\n\n if (\n (identifierName != null || identifierNamePos != null) &&\n this._canMarkIdName\n ) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\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, identifierNamePos, filename);\n }\n\n // Now, find each remaining 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 // When manually adding multi-line content (such as a comment), `line` will be `undefined`.\n if (last < len && line !== undefined) {\n this._mark(++line, 0, null, null, 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 identifierNamePos: Pos | undefined,\n filename: string | undefined,\n ): void {\n this._map?.mark(\n this._position,\n line,\n column,\n identifierName,\n identifierNamePos,\n filename,\n );\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 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) {\n cb();\n return;\n }\n\n this.source(\"start\", loc);\n // @ts-expect-error identifierName is not defined\n const identifierName = loc.identifierName;\n const sourcePos = this._sourcePosition;\n if (identifierName) {\n this._canMarkIdName = false;\n sourcePos.identifierName = identifierName;\n }\n cb();\n\n if (identifierName) {\n this._canMarkIdName = true;\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\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 reuse the same _sourcePosition\n // object for the whole lifetime of the buffer.\n this._normalizePosition(prop, loc, 0);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n columnOffset: number,\n ): void {\n if (!this._map) return;\n\n this._normalizePosition(prop, loc, columnOffset);\n }\n\n _normalizePosition(prop: \"start\" | \"end\", loc: Loc, columnOffset: number) {\n const pos = loc[prop];\n const target = this._sourcePosition;\n\n if (pos) {\n target.line = pos.line;\n // TODO: Fix https://github.com/babel/babel/issues/15712 in downstream\n target.column = Math.max(pos.column + columnOffset, 0);\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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","ignoreList":[]} \ 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 index 60dfc68..826b310 100644 --- a/node_modules/@babel/generator/lib/generators/base.js +++ b/node_modules/@babel/generator/lib/generators/base.js @@ -12,9 +12,9 @@ exports.Placeholder = Placeholder; exports.Program = Program; function File(node) { if (node.program) { - this.print(node.program.interpreter, node); + this.print(node.program.interpreter); } - this.print(node.program, node); + this.print(node.program); } function Program(node) { var _node$directives; @@ -24,23 +24,24 @@ function Program(node) { if (directivesLen) { var _node$directives$trai; const newline = node.body.length ? 2 : 1; - this.printSequence(node.directives, node, { + this.printSequence(node.directives, { trailingCommentsLineOffset: newline }); if (!((_node$directives$trai = node.directives[directivesLen - 1].trailingComments) != null && _node$directives$trai.length)) { this.newline(newline); } } - this.printSequence(node.body, node); + this.printSequence(node.body); } function BlockStatement(node) { var _node$directives2; this.tokenChar(123); + const exit = this.enterDelimited(); 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, { + this.printSequence(node.directives, { indent: true, trailingCommentsLineOffset: newline }); @@ -48,15 +49,14 @@ function BlockStatement(node) { this.newline(newline); } } - const exit = this.enterForStatementInit(false); - this.printSequence(node.body, node, { + this.printSequence(node.body, { indent: true }); exit(); this.rightBrace(node); } function Directive(node) { - this.print(node.value, node); + this.print(node.value); this.semicolon(); } const unescapedSingleQuoteRE = /(?:^|[^\\])(?:\\\\)*'/; diff --git a/node_modules/@babel/generator/lib/generators/base.js.map b/node_modules/@babel/generator/lib/generators/base.js.map index 57513ba..d7871dd 100644 --- a/node_modules/@babel/generator/lib/generators/base.js.map +++ b/node_modules/@babel/generator/lib/generators/base.js.map @@ -1 +1 @@ -{"version":3,"names":["File","node","program","print","interpreter","Program","_node$directives","noIndentInnerCommentsHere","printInnerComments","directivesLen","directives","length","_node$directives$trai","newline","body","printSequence","trailingCommentsLineOffset","trailingComments","BlockStatement","_node$directives2","token","_node$directives$trai2","indent","exit","enterForStatementInit","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.ts\";\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 const exit = this.enterForStatementInit(false);\n this.printSequence(node.body, node, { indent: true });\n exit();\n\n this.rightBrace(node);\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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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["File","node","program","print","interpreter","Program","_node$directives","noIndentInnerCommentsHere","printInnerComments","directivesLen","directives","length","_node$directives$trai","newline","body","printSequence","trailingCommentsLineOffset","trailingComments","BlockStatement","_node$directives2","token","exit","enterDelimited","_node$directives$trai2","indent","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.ts\";\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);\n }\n\n this.print(node.program);\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, {\n trailingCommentsLineOffset: newline,\n });\n if (!node.directives[directivesLen - 1].trailingComments?.length) {\n this.newline(newline);\n }\n }\n\n this.printSequence(node.body);\n}\n\nexport function BlockStatement(this: Printer, node: t.BlockStatement) {\n this.token(\"{\");\n const exit = this.enterDelimited();\n\n const directivesLen = node.directives?.length;\n if (directivesLen) {\n const newline = node.body.length ? 2 : 1;\n this.printSequence(node.directives, {\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, { indent: true });\n\n exit();\n this.rightBrace(node);\n}\n\nexport function Directive(this: Printer, node: t.Directive) {\n this.print(node.value);\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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","ignoreList":[]} \ 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 index 2b33bd4..794d787 100644 --- a/node_modules/@babel/generator/lib/generators/classes.js +++ b/node_modules/@babel/generator/lib/generators/classes.js @@ -20,7 +20,7 @@ const { function ClassDeclaration(node, parent) { const inExport = isExportDefaultDeclaration(parent) || isExportNamedDeclaration(parent); if (!inExport || !this._shouldPrintDecoratorsBeforeExport(parent)) { - this.printJoin(node.decorators, node); + this.printJoin(node.decorators); } if (node.declare) { this.word("declare"); @@ -33,24 +33,24 @@ function ClassDeclaration(node, parent) { this.word("class"); if (node.id) { this.space(); - this.print(node.id, node); + this.print(node.id); } - this.print(node.typeParameters, node); + this.print(node.typeParameters); if (node.superClass) { this.space(); this.word("extends"); this.space(); - this.print(node.superClass, node); - this.print(node.superTypeParameters, node); + this.print(node.superClass); + this.print(node.superTypeParameters); } if (node.implements) { this.space(); this.word("implements"); this.space(); - this.printList(node.implements, node); + this.printList(node.implements); } this.space(); - this.print(node.body, node); + this.print(node.body); } function ClassBody(node) { this.tokenChar(123); @@ -58,28 +58,63 @@ function ClassBody(node) { this.tokenChar(125); } else { this.newline(); - const exit = this.enterForStatementInit(false); - this.printSequence(node.body, node, { - indent: true + const separator = classBodyEmptySemicolonsPrinter(this, node); + separator == null || separator(-1); + const exit = this.enterDelimited(); + this.printJoin(node.body, { + statement: true, + indent: true, + separator, + printTrailingSeparator: true }); exit(); if (!this.endsWith(10)) this.newline(); this.rightBrace(node); } } +function classBodyEmptySemicolonsPrinter(printer, node) { + if (!printer.tokenMap || node.start == null || node.end == null) { + return null; + } + const indexes = printer.tokenMap.getIndexes(node); + if (!indexes) return null; + let k = 1; + let occurrenceCount = 0; + let nextLocIndex = 0; + const advanceNextLocIndex = () => { + while (nextLocIndex < node.body.length && node.body[nextLocIndex].start == null) { + nextLocIndex++; + } + }; + advanceNextLocIndex(); + return i => { + if (nextLocIndex <= i) { + nextLocIndex = i + 1; + advanceNextLocIndex(); + } + const end = nextLocIndex === node.body.length ? node.end : node.body[nextLocIndex].start; + let tok; + while (k < indexes.length && printer.tokenMap.matchesOriginal(tok = printer._tokens[indexes[k]], ";") && tok.start < end) { + printer.token(";", undefined, occurrenceCount++); + k++; + } + }; +} function ClassProperty(node) { - var _node$key$loc; - this.printJoin(node.decorators, node); - const endLine = (_node$key$loc = node.key.loc) == null || (_node$key$loc = _node$key$loc.end) == null ? void 0 : _node$key$loc.line; - if (endLine) this.catchUp(endLine); + this.printJoin(node.decorators); + if (!node.static && !this.format.preserveFormat) { + var _node$key$loc; + const endLine = (_node$key$loc = node.key.loc) == null || (_node$key$loc = _node$key$loc.end) == null ? void 0 : _node$key$loc.line; + if (endLine) this.catchUp(endLine); + } this.tsPrintClassMemberModifiers(node); if (node.computed) { this.tokenChar(91); - this.print(node.key, node); + this.print(node.key); this.tokenChar(93); } else { this._variance(node); - this.print(node.key, node); + this.print(node.key); } if (node.optional) { this.tokenChar(63); @@ -87,18 +122,18 @@ function ClassProperty(node) { if (node.definite) { this.tokenChar(33); } - this.print(node.typeAnnotation, node); + this.print(node.typeAnnotation); if (node.value) { this.space(); this.tokenChar(61); this.space(); - this.print(node.value, node); + this.print(node.value); } this.semicolon(); } function ClassAccessorProperty(node) { var _node$key$loc2; - this.printJoin(node.decorators, node); + this.printJoin(node.decorators); const endLine = (_node$key$loc2 = node.key.loc) == null || (_node$key$loc2 = _node$key$loc2.end) == null ? void 0 : _node$key$loc2.line; if (endLine) this.catchUp(endLine); this.tsPrintClassMemberModifiers(node); @@ -106,11 +141,11 @@ function ClassAccessorProperty(node) { this.space(); if (node.computed) { this.tokenChar(91); - this.print(node.key, node); + this.print(node.key); this.tokenChar(93); } else { this._variance(node); - this.print(node.key, node); + this.print(node.key); } if (node.optional) { this.tokenChar(63); @@ -118,46 +153,48 @@ function ClassAccessorProperty(node) { if (node.definite) { this.tokenChar(33); } - this.print(node.typeAnnotation, node); + this.print(node.typeAnnotation); if (node.value) { this.space(); this.tokenChar(61); this.space(); - this.print(node.value, node); + this.print(node.value); } this.semicolon(); } function ClassPrivateProperty(node) { - this.printJoin(node.decorators, node); + this.printJoin(node.decorators); if (node.static) { this.word("static"); this.space(); } - this.print(node.key, node); - this.print(node.typeAnnotation, node); + this.print(node.key); + this.print(node.typeAnnotation); if (node.value) { this.space(); this.tokenChar(61); this.space(); - this.print(node.value, node); + this.print(node.value); } this.semicolon(); } function ClassMethod(node) { this._classMethodHead(node); this.space(); - this.print(node.body, node); + this.print(node.body); } function ClassPrivateMethod(node) { this._classMethodHead(node); this.space(); - this.print(node.body, node); + this.print(node.body); } function _classMethodHead(node) { - var _node$key$loc3; - this.printJoin(node.decorators, node); - const endLine = (_node$key$loc3 = node.key.loc) == null || (_node$key$loc3 = _node$key$loc3.end) == null ? void 0 : _node$key$loc3.line; - if (endLine) this.catchUp(endLine); + this.printJoin(node.decorators); + if (!this.format.preserveFormat) { + var _node$key$loc3; + const endLine = (_node$key$loc3 = node.key.loc) == null || (_node$key$loc3 = _node$key$loc3.end) == null ? void 0 : _node$key$loc3.line; + if (endLine) this.catchUp(endLine); + } this.tsPrintClassMemberModifiers(node); this._methodHead(node); } @@ -169,7 +206,7 @@ function StaticBlock(node) { this.tokenChar(125); } else { this.newline(); - this.printSequence(node.body, node, { + this.printSequence(node.body, { indent: true }); this.rightBrace(node); diff --git a/node_modules/@babel/generator/lib/generators/classes.js.map b/node_modules/@babel/generator/lib/generators/classes.js.map index f54866c..d0cb4af 100644 --- a/node_modules/@babel/generator/lib/generators/classes.js.map +++ b/node_modules/@babel/generator/lib/generators/classes.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","isExportDefaultDeclaration","isExportNamedDeclaration","ClassDeclaration","node","parent","inExport","_shouldPrintDecoratorsBeforeExport","printJoin","decorators","declare","word","space","abstract","id","print","typeParameters","superClass","superTypeParameters","implements","printList","body","ClassBody","token","length","newline","exit","enterForStatementInit","printSequence","indent","endsWith","rightBrace","ClassProperty","_node$key$loc","endLine","key","loc","end","line","catchUp","tsPrintClassMemberModifiers","computed","_variance","optional","definite","typeAnnotation","value","semicolon","ClassAccessorProperty","_node$key$loc2","ClassPrivateProperty","static","ClassMethod","_classMethodHead","ClassPrivateMethod","_node$key$loc3","_methodHead","StaticBlock"],"sources":["../../src/generators/classes.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isExportDefaultDeclaration,\n isExportNamedDeclaration,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nexport function ClassDeclaration(\n this: Printer,\n node: t.ClassDeclaration,\n parent: t.Node,\n) {\n const inExport =\n isExportDefaultDeclaration(parent) || isExportNamedDeclaration(parent);\n\n if (\n !inExport ||\n !this._shouldPrintDecoratorsBeforeExport(\n parent as t.ExportDeclaration & { declaration: t.ClassDeclaration },\n )\n ) {\n this.printJoin(node.decorators, node);\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 const exit = this.enterForStatementInit(false);\n this.printSequence(node.body, node, { indent: true });\n exit();\n\n if (!this.endsWith(charCodes.lineFeed)) this.newline();\n\n this.rightBrace(node);\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 this.rightBrace(node);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_t","require","isExportDefaultDeclaration","isExportNamedDeclaration","ClassDeclaration","node","parent","inExport","_shouldPrintDecoratorsBeforeExport","printJoin","decorators","declare","word","space","abstract","id","print","typeParameters","superClass","superTypeParameters","implements","printList","body","ClassBody","token","length","newline","separator","classBodyEmptySemicolonsPrinter","exit","enterDelimited","statement","indent","printTrailingSeparator","endsWith","rightBrace","printer","tokenMap","start","end","indexes","getIndexes","k","occurrenceCount","nextLocIndex","advanceNextLocIndex","i","tok","matchesOriginal","_tokens","undefined","ClassProperty","static","format","preserveFormat","_node$key$loc","endLine","key","loc","line","catchUp","tsPrintClassMemberModifiers","computed","_variance","optional","definite","typeAnnotation","value","semicolon","ClassAccessorProperty","_node$key$loc2","ClassPrivateProperty","ClassMethod","_classMethodHead","ClassPrivateMethod","_node$key$loc3","_methodHead","StaticBlock","printSequence"],"sources":["../../src/generators/classes.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isExportDefaultDeclaration,\n isExportNamedDeclaration,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nexport function ClassDeclaration(\n this: Printer,\n node: t.ClassDeclaration,\n parent: t.Node,\n) {\n const inExport =\n isExportDefaultDeclaration(parent) || isExportNamedDeclaration(parent);\n\n if (\n !inExport ||\n !this._shouldPrintDecoratorsBeforeExport(\n parent as t.ExportDeclaration & { declaration: t.ClassDeclaration },\n )\n ) {\n this.printJoin(node.decorators);\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);\n }\n\n this.print(node.typeParameters);\n\n if (node.superClass) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.superClass);\n this.print(node.superTypeParameters);\n }\n\n if (node.implements) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements);\n }\n\n this.space();\n this.print(node.body);\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 const separator = classBodyEmptySemicolonsPrinter(this, node);\n separator?.(-1); // print leading semicolons in preserveFormat mode\n\n const exit = this.enterDelimited();\n this.printJoin(node.body, {\n statement: true,\n indent: true,\n separator,\n printTrailingSeparator: true,\n });\n exit();\n\n if (!this.endsWith(charCodes.lineFeed)) this.newline();\n\n this.rightBrace(node);\n }\n}\n\nfunction classBodyEmptySemicolonsPrinter(printer: Printer, node: t.ClassBody) {\n if (!printer.tokenMap || node.start == null || node.end == null) {\n return null;\n }\n\n // \"empty statements\" in class bodies are not represented in the AST.\n // Print them by checking if there are any ; tokens between the current AST\n // member and the next one.\n\n const indexes = printer.tokenMap.getIndexes(node);\n if (!indexes) return null;\n\n let k = 1; // start from 1 to skip '{'\n\n let occurrenceCount = 0;\n\n let nextLocIndex = 0;\n const advanceNextLocIndex = () => {\n while (\n nextLocIndex < node.body.length &&\n node.body[nextLocIndex].start == null\n ) {\n nextLocIndex++;\n }\n };\n advanceNextLocIndex();\n\n return (i: number) => {\n if (nextLocIndex <= i) {\n nextLocIndex = i + 1;\n advanceNextLocIndex();\n }\n\n const end =\n nextLocIndex === node.body.length\n ? node.end\n : node.body[nextLocIndex].start;\n\n let tok;\n while (\n k < indexes.length &&\n printer.tokenMap.matchesOriginal(\n (tok = printer._tokens[indexes[k]]),\n \";\",\n ) &&\n tok.start < end\n ) {\n printer.token(\";\", undefined, occurrenceCount++);\n k++;\n }\n };\n}\n\nexport function ClassProperty(this: Printer, node: t.ClassProperty) {\n this.printJoin(node.decorators);\n\n if (!node.static && !this.format.preserveFormat) {\n // catch up to property key, avoid line break\n // between member TS modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n }\n\n this.tsPrintClassMemberModifiers(node);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key);\n this.token(\"]\");\n } else {\n this._variance(node);\n this.print(node.key);\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);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value);\n }\n this.semicolon();\n}\n\nexport function ClassAccessorProperty(\n this: Printer,\n node: t.ClassAccessorProperty,\n) {\n this.printJoin(node.decorators);\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);\n this.token(\"]\");\n } else {\n // Todo: Flow does not support class accessor property yet.\n this._variance(node);\n this.print(node.key);\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);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value);\n }\n this.semicolon();\n}\n\nexport function ClassPrivateProperty(\n this: Printer,\n node: t.ClassPrivateProperty,\n) {\n this.printJoin(node.decorators);\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.print(node.key);\n this.print(node.typeAnnotation);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value);\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);\n}\n\nexport function ClassPrivateMethod(this: Printer, node: t.ClassPrivateMethod) {\n this._classMethodHead(node);\n this.space();\n this.print(node.body);\n}\n\nexport function _classMethodHead(\n this: Printer,\n node: t.ClassMethod | t.ClassPrivateMethod | t.TSDeclareMethod,\n) {\n this.printJoin(node.decorators);\n\n if (!this.format.preserveFormat) {\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\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, { indent: true });\n this.rightBrace(node);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ 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 index cd89407..ad7afc7 100644 --- a/node_modules/@babel/generator/lib/generators/expressions.js +++ b/node_modules/@babel/generator/lib/generators/expressions.js @@ -36,7 +36,8 @@ const { isCallExpression, isLiteral, isMemberExpression, - isNewExpression + isNewExpression, + isPattern } = _t; function UnaryExpression(node) { const { @@ -48,7 +49,7 @@ function UnaryExpression(node) { } else { this.token(operator); } - this.print(node.argument, node); + this.print(node.argument); } function DoExpression(node) { if (node.async) { @@ -57,55 +58,62 @@ function DoExpression(node) { } this.word("do"); this.space(); - this.print(node.body, node); + this.print(node.body); } function ParenthesizedExpression(node) { this.tokenChar(40); - this.print(node.expression, node); + const exit = this.enterDelimited(); + this.print(node.expression); + exit(); this.rightParens(node); } function UpdateExpression(node) { if (node.prefix) { this.token(node.operator); - this.print(node.argument, node); + this.print(node.argument); } else { - this.printTerminatorless(node.argument, node, true); + this.print(node.argument, true); this.token(node.operator); } } function ConditionalExpression(node) { - this.print(node.test, node); + this.print(node.test); this.space(); this.tokenChar(63); this.space(); - this.print(node.consequent, node); + this.print(node.consequent); this.space(); this.tokenChar(58); this.space(); - this.print(node.alternate, node); + this.print(node.alternate); } function NewExpression(node, parent) { this.word("new"); this.space(); - this.print(node.callee, node); + this.print(node.callee); 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); + this.print(node.typeArguments); + this.print(node.typeParameters); if (node.optional) { this.token("?."); } + if (node.arguments.length === 0 && this.tokenMap && !this.tokenMap.endMatches(node, ")")) { + return; + } this.tokenChar(40); - const exit = this.enterForStatementInit(false); - this.printList(node.arguments, node); + const exit = this.enterDelimited(); + this.printList(node.arguments, { + printTrailingSeparator: this.shouldPrintTrailingComma(")") + }); exit(); this.rightParens(node); } function SequenceExpression(node) { - this.printList(node.expressions, node); + this.printList(node.expressions); } function ThisExpression() { this.word("this"); @@ -121,7 +129,7 @@ function _shouldPrintDecoratorsBeforeExport(node) { } function Decorator(node) { this.tokenChar(64); - this.print(node.expression, node); + this.print(node.expression); this.newline(); } function OptionalMemberExpression(node) { @@ -132,7 +140,7 @@ function OptionalMemberExpression(node) { optional, property } = node; - this.print(node.object, node); + this.print(node.object); if (!computed && isMemberExpression(property)) { throw new TypeError("Got a MemberExpression for MemberExpression property"); } @@ -144,35 +152,37 @@ function OptionalMemberExpression(node) { } if (computed) { this.tokenChar(91); - this.print(property, node); + this.print(property); this.tokenChar(93); } else { if (!optional) { this.tokenChar(46); } - this.print(property, node); + this.print(property); } } function OptionalCallExpression(node) { - this.print(node.callee, node); - this.print(node.typeParameters, node); + this.print(node.callee); + this.print(node.typeParameters); if (node.optional) { this.token("?."); } - this.print(node.typeArguments, node); + this.print(node.typeArguments); this.tokenChar(40); - const exit = this.enterForStatementInit(false); - this.printList(node.arguments, node); + const exit = this.enterDelimited(); + this.printList(node.arguments); exit(); this.rightParens(node); } function CallExpression(node) { - this.print(node.callee, node); - this.print(node.typeArguments, node); - this.print(node.typeParameters, node); + this.print(node.callee); + this.print(node.typeArguments); + this.print(node.typeParameters); this.tokenChar(40); - const exit = this.enterForStatementInit(false); - this.printList(node.arguments, node); + const exit = this.enterDelimited(); + this.printList(node.arguments, { + printTrailingSeparator: this.shouldPrintTrailingComma(")") + }); exit(); this.rightParens(node); } @@ -183,7 +193,7 @@ function AwaitExpression(node) { this.word("await"); if (node.argument) { this.space(); - this.printTerminatorless(node.argument, node, false); + this.printTerminatorless(node.argument); } } function YieldExpression(node) { @@ -192,12 +202,12 @@ function YieldExpression(node) { this.tokenChar(42); if (node.argument) { this.space(); - this.print(node.argument, node); + this.print(node.argument); } } else { if (node.argument) { this.space(); - this.printTerminatorless(node.argument, node, false); + this.printTerminatorless(node.argument); } } } @@ -206,38 +216,39 @@ function EmptyStatement() { } function ExpressionStatement(node) { this.tokenContext |= _index.TokenContext.expressionStatement; - this.print(node.expression, node); + this.print(node.expression); this.semicolon(); } function AssignmentPattern(node) { - this.print(node.left, node); - if (node.left.type === "Identifier") { + this.print(node.left); + if (node.left.type === "Identifier" || isPattern(node.left)) { if (node.left.optional) this.tokenChar(63); - this.print(node.left.typeAnnotation, node); + this.print(node.left.typeAnnotation); } this.space(); this.tokenChar(61); this.space(); - this.print(node.right, node); + this.print(node.right); } function AssignmentExpression(node) { - this.print(node.left, node); + this.print(node.left); this.space(); if (node.operator === "in" || node.operator === "instanceof") { this.word(node.operator); } else { this.token(node.operator); + this._endsWithDiv = node.operator === "/"; } this.space(); - this.print(node.right, node); + this.print(node.right); } function BindExpression(node) { - this.print(node.object, node); + this.print(node.object); this.token("::"); - this.print(node.callee, node); + this.print(node.callee); } function MemberExpression(node) { - this.print(node.object, node); + this.print(node.object); if (!node.computed && isMemberExpression(node.property)) { throw new TypeError("Got a MemberExpression for MemberExpression property"); } @@ -246,24 +257,24 @@ function MemberExpression(node) { computed = true; } if (computed) { - const exit = this.enterForStatementInit(false); + const exit = this.enterDelimited(); this.tokenChar(91); - this.print(node.property, node); + this.print(node.property); this.tokenChar(93); exit(); } else { this.tokenChar(46); - this.print(node.property, node); + this.print(node.property); } } function MetaProperty(node) { - this.print(node.meta, node); + this.print(node.meta); this.tokenChar(46); - this.print(node.property, node); + this.print(node.property); } function PrivateName(node) { this.tokenChar(35); - this.print(node.id, node); + this.print(node.id); } function V8IntrinsicIdentifier(node) { this.tokenChar(37); @@ -280,7 +291,7 @@ function ModuleExpression(node) { if (body.body.length || body.directives.length) { this.newline(); } - this.print(body, node); + this.print(body); this.dedent(); this.rightBrace(node); } diff --git a/node_modules/@babel/generator/lib/generators/expressions.js.map b/node_modules/@babel/generator/lib/generators/expressions.js.map index 7fcd294..646030a 100644 --- a/node_modules/@babel/generator/lib/generators/expressions.js.map +++ b/node_modules/@babel/generator/lib/generators/expressions.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","_index","isCallExpression","isLiteral","isMemberExpression","isNewExpression","UnaryExpression","node","operator","word","space","token","print","argument","DoExpression","async","body","ParenthesizedExpression","expression","rightParens","UpdateExpression","prefix","printTerminatorless","ConditionalExpression","test","consequent","alternate","NewExpression","parent","callee","format","minified","arguments","length","optional","typeArguments","typeParameters","exit","enterForStatementInit","printList","SequenceExpression","expressions","ThisExpression","Super","_shouldPrintDecoratorsBeforeExport","decoratorsBeforeExport","start","declaration","Decorator","newline","OptionalMemberExpression","computed","property","object","TypeError","value","OptionalCallExpression","CallExpression","Import","AwaitExpression","YieldExpression","delegate","EmptyStatement","semicolon","ExpressionStatement","tokenContext","TokenContext","expressionStatement","AssignmentPattern","left","type","typeAnnotation","right","AssignmentExpression","BindExpression","MemberExpression","MetaProperty","meta","PrivateName","id","V8IntrinsicIdentifier","name","ModuleExpression","indent","directives","dedent","rightBrace"],"sources":["../../src/generators/expressions.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isCallExpression,\n isLiteral,\n isMemberExpression,\n isNewExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { TokenContext } from \"../node/index.ts\";\n\nexport function UnaryExpression(this: Printer, node: t.UnaryExpression) {\n const { operator } = node;\n if (\n operator === \"void\" ||\n operator === \"delete\" ||\n operator === \"typeof\" ||\n // throwExpressions\n operator === \"throw\"\n ) {\n this.word(operator);\n this.space();\n } else {\n this.token(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.rightParens(node);\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 const exit = this.enterForStatementInit(false);\n this.printList(node.arguments, node);\n exit();\n this.rightParens(node);\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\nexport function _shouldPrintDecoratorsBeforeExport(\n this: Printer,\n node: t.ExportDeclaration & { declaration: t.ClassDeclaration },\n) {\n if (typeof this.format.decoratorsBeforeExport === \"boolean\") {\n return this.format.decoratorsBeforeExport;\n }\n return (\n typeof node.start === \"number\" && node.start === node.declaration.start\n );\n}\n\nexport function Decorator(this: Printer, node: t.Decorator) {\n this.token(\"@\");\n this.print(node.expression, node);\n this.newline();\n}\n\nexport function OptionalMemberExpression(\n this: Printer,\n node: t.OptionalMemberExpression,\n) {\n let { computed } = node;\n const { optional, property } = node;\n\n this.print(node.object, node);\n\n if (!computed && isMemberExpression(property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n // @ts-expect-error todo(flow->ts) maybe instead of typeof check specific literal types?\n if (isLiteral(property) && typeof property.value === \"number\") {\n computed = true;\n }\n if (optional) {\n this.token(\"?.\");\n }\n\n if (computed) {\n this.token(\"[\");\n this.print(property, node);\n this.token(\"]\");\n } else {\n if (!optional) {\n this.token(\".\");\n }\n this.print(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 const exit = this.enterForStatementInit(false);\n this.printList(node.arguments, node);\n exit();\n this.rightParens(node);\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 const exit = this.enterForStatementInit(false);\n this.printList(node.arguments, node);\n exit();\n this.rightParens(node);\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.tokenContext |= TokenContext.expressionStatement;\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 if (node.left.type === \"Identifier\") {\n if (node.left.optional) this.token(\"?\");\n this.print(node.left.typeAnnotation, node);\n }\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) {\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\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 const exit = this.enterForStatementInit(false);\n this.token(\"[\");\n this.print(node.property, node);\n this.token(\"]\");\n exit();\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.rightBrace(node);\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_t","require","_index","isCallExpression","isLiteral","isMemberExpression","isNewExpression","isPattern","UnaryExpression","node","operator","word","space","token","print","argument","DoExpression","async","body","ParenthesizedExpression","exit","enterDelimited","expression","rightParens","UpdateExpression","prefix","ConditionalExpression","test","consequent","alternate","NewExpression","parent","callee","format","minified","arguments","length","optional","typeArguments","typeParameters","tokenMap","endMatches","printList","printTrailingSeparator","shouldPrintTrailingComma","SequenceExpression","expressions","ThisExpression","Super","_shouldPrintDecoratorsBeforeExport","decoratorsBeforeExport","start","declaration","Decorator","newline","OptionalMemberExpression","computed","property","object","TypeError","value","OptionalCallExpression","CallExpression","Import","AwaitExpression","printTerminatorless","YieldExpression","delegate","EmptyStatement","semicolon","ExpressionStatement","tokenContext","TokenContext","expressionStatement","AssignmentPattern","left","type","typeAnnotation","right","AssignmentExpression","_endsWithDiv","BindExpression","MemberExpression","MetaProperty","meta","PrivateName","id","V8IntrinsicIdentifier","name","ModuleExpression","indent","directives","dedent","rightBrace"],"sources":["../../src/generators/expressions.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isCallExpression,\n isLiteral,\n isMemberExpression,\n isNewExpression,\n isPattern,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { TokenContext } from \"../node/index.ts\";\n\nexport function UnaryExpression(this: Printer, node: t.UnaryExpression) {\n const { operator } = node;\n if (\n operator === \"void\" ||\n operator === \"delete\" ||\n operator === \"typeof\" ||\n // throwExpressions\n operator === \"throw\"\n ) {\n this.word(operator);\n this.space();\n } else {\n this.token(operator);\n }\n\n this.print(node.argument);\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);\n}\n\nexport function ParenthesizedExpression(\n this: Printer,\n node: t.ParenthesizedExpression,\n) {\n this.token(\"(\");\n const exit = this.enterDelimited();\n this.print(node.expression);\n exit();\n this.rightParens(node);\n}\n\nexport function UpdateExpression(this: Printer, node: t.UpdateExpression) {\n if (node.prefix) {\n this.token(node.operator);\n this.print(node.argument);\n } else {\n this.print(node.argument, 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);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.consequent);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.alternate);\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);\n if (\n this.format.minified &&\n node.arguments.length === 0 &&\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n !node.optional &&\n !isCallExpression(parent, { callee: node }) &&\n !isMemberExpression(parent) &&\n !isNewExpression(parent)\n ) {\n return;\n }\n\n this.print(node.typeArguments); // Flow\n this.print(node.typeParameters); // TS\n\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n if (node.optional) {\n // TODO: This can never happen\n this.token(\"?.\");\n }\n\n if (\n node.arguments.length === 0 &&\n this.tokenMap &&\n !this.tokenMap.endMatches(node, \")\")\n ) {\n return;\n }\n\n this.token(\"(\");\n const exit = this.enterDelimited();\n this.printList(node.arguments, {\n printTrailingSeparator: this.shouldPrintTrailingComma(\")\"),\n });\n exit();\n this.rightParens(node);\n}\n\nexport function SequenceExpression(this: Printer, node: t.SequenceExpression) {\n this.printList(node.expressions);\n}\n\nexport function ThisExpression(this: Printer) {\n this.word(\"this\");\n}\n\nexport function Super(this: Printer) {\n this.word(\"super\");\n}\n\nexport function _shouldPrintDecoratorsBeforeExport(\n this: Printer,\n node: t.ExportDeclaration & { declaration: t.ClassDeclaration },\n) {\n if (typeof this.format.decoratorsBeforeExport === \"boolean\") {\n return this.format.decoratorsBeforeExport;\n }\n return (\n typeof node.start === \"number\" && node.start === node.declaration.start\n );\n}\n\nexport function Decorator(this: Printer, node: t.Decorator) {\n this.token(\"@\");\n this.print(node.expression);\n this.newline();\n}\n\nexport function OptionalMemberExpression(\n this: Printer,\n node: t.OptionalMemberExpression,\n) {\n let { computed } = node;\n const { optional, property } = node;\n\n this.print(node.object);\n\n if (!computed && isMemberExpression(property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n // @ts-expect-error todo(flow->ts) maybe instead of typeof check specific literal types?\n if (isLiteral(property) && typeof property.value === \"number\") {\n computed = true;\n }\n if (optional) {\n this.token(\"?.\");\n }\n\n if (computed) {\n this.token(\"[\");\n this.print(property);\n this.token(\"]\");\n } else {\n if (!optional) {\n this.token(\".\");\n }\n this.print(property);\n }\n}\n\nexport function OptionalCallExpression(\n this: Printer,\n node: t.OptionalCallExpression,\n) {\n this.print(node.callee);\n\n this.print(node.typeParameters); // TS\n\n if (node.optional) {\n this.token(\"?.\");\n }\n\n this.print(node.typeArguments); // Flow\n\n this.token(\"(\");\n const exit = this.enterDelimited();\n this.printList(node.arguments);\n exit();\n this.rightParens(node);\n}\n\nexport function CallExpression(this: Printer, node: t.CallExpression) {\n this.print(node.callee);\n\n this.print(node.typeArguments); // Flow\n this.print(node.typeParameters); // TS\n this.token(\"(\");\n const exit = this.enterDelimited();\n this.printList(node.arguments, {\n printTrailingSeparator: this.shouldPrintTrailingComma(\")\"),\n });\n exit();\n this.rightParens(node);\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);\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);\n }\n } else {\n if (node.argument) {\n this.space();\n this.printTerminatorless(node.argument);\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.tokenContext |= TokenContext.expressionStatement;\n this.print(node.expression);\n this.semicolon();\n}\n\nexport function AssignmentPattern(this: Printer, node: t.AssignmentPattern) {\n this.print(node.left);\n if (node.left.type === \"Identifier\" || isPattern(node.left)) {\n if (node.left.optional) this.token(\"?\");\n this.print(node.left.typeAnnotation);\n }\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.right);\n}\n\nexport function AssignmentExpression(\n this: Printer,\n node: t.AssignmentExpression | t.BinaryExpression | t.LogicalExpression,\n) {\n this.print(node.left);\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 this._endsWithDiv = node.operator === \"/\";\n }\n this.space();\n\n this.print(node.right);\n}\n\nexport function BindExpression(this: Printer, node: t.BindExpression) {\n this.print(node.object);\n this.token(\"::\");\n this.print(node.callee);\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);\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 const exit = this.enterDelimited();\n this.token(\"[\");\n this.print(node.property);\n this.token(\"]\");\n exit();\n } else {\n this.token(\".\");\n this.print(node.property);\n }\n}\n\nexport function MetaProperty(this: Printer, node: t.MetaProperty) {\n this.print(node.meta);\n this.token(\".\");\n this.print(node.property);\n}\n\nexport function PrivateName(this: Printer, node: t.PrivateName) {\n this.token(\"#\");\n this.print(node.id);\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);\n this.dedent();\n this.rightBrace(node);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,EAAA,GAAAC,OAAA;AAQA,IAAAC,MAAA,GAAAD,OAAA;AAAgD;EAP9CE,gBAAgB;EAChBC,SAAS;EACTC,kBAAkB;EAClBC,eAAe;EACfC;AAAS,IAAAP,EAAA;AAKJ,SAASQ,eAAeA,CAAgBC,IAAuB,EAAE;EACtE,MAAM;IAAEC;EAAS,CAAC,GAAGD,IAAI;EACzB,IACEC,QAAQ,KAAK,MAAM,IACnBA,QAAQ,KAAK,QAAQ,IACrBA,QAAQ,KAAK,QAAQ,IAErBA,QAAQ,KAAK,OAAO,EACpB;IACA,IAAI,CAACC,IAAI,CAACD,QAAQ,CAAC;IACnB,IAAI,CAACE,KAAK,CAAC,CAAC;EACd,CAAC,MAAM;IACL,IAAI,CAACC,KAAK,CAACH,QAAQ,CAAC;EACtB;EAEA,IAAI,CAACI,KAAK,CAACL,IAAI,CAACM,QAAQ,CAAC;AAC3B;AAEO,SAASC,YAAYA,CAAgBP,IAAoB,EAAE;EAChE,IAAIA,IAAI,CAACQ,KAAK,EAAE;IACd,IAAI,CAACN,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;IACxB,IAAI,CAACC,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACD,IAAI,CAAC,IAAI,CAAC;EACf,IAAI,CAACC,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACL,IAAI,CAACS,IAAI,CAAC;AACvB;AAEO,SAASC,uBAAuBA,CAErCV,IAA+B,EAC/B;EACA,IAAI,CAACI,SAAK,GAAI,CAAC;EACf,MAAMO,IAAI,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;EAClC,IAAI,CAACP,KAAK,CAACL,IAAI,CAACa,UAAU,CAAC;EAC3BF,IAAI,CAAC,CAAC;EACN,IAAI,CAACG,WAAW,CAACd,IAAI,CAAC;AACxB;AAEO,SAASe,gBAAgBA,CAAgBf,IAAwB,EAAE;EACxE,IAAIA,IAAI,CAACgB,MAAM,EAAE;IACf,IAAI,CAACZ,KAAK,CAACJ,IAAI,CAACC,QAAQ,CAAC;IACzB,IAAI,CAACI,KAAK,CAACL,IAAI,CAACM,QAAQ,CAAC;EAC3B,CAAC,MAAM;IACL,IAAI,CAACD,KAAK,CAACL,IAAI,CAACM,QAAQ,EAAE,IAAI,CAAC;IAC/B,IAAI,CAACF,KAAK,CAACJ,IAAI,CAACC,QAAQ,CAAC;EAC3B;AACF;AAEO,SAASgB,qBAAqBA,CAEnCjB,IAA6B,EAC7B;EACA,IAAI,CAACK,KAAK,CAACL,IAAI,CAACkB,IAAI,CAAC;EACrB,IAAI,CAACf,KAAK,CAAC,CAAC;EACZ,IAAI,CAACC,SAAK,GAAI,CAAC;EACf,IAAI,CAACD,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACL,IAAI,CAACmB,UAAU,CAAC;EAC3B,IAAI,CAAChB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACC,SAAK,GAAI,CAAC;EACf,IAAI,CAACD,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACL,IAAI,CAACoB,SAAS,CAAC;AAC5B;AAEO,SAASC,aAAaA,CAE3BrB,IAAqB,EACrBsB,MAAc,EACd;EACA,IAAI,CAACpB,IAAI,CAAC,KAAK,CAAC;EAChB,IAAI,CAACC,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACL,IAAI,CAACuB,MAAM,CAAC;EACvB,IACE,IAAI,CAACC,MAAM,CAACC,QAAQ,IACpBzB,IAAI,CAAC0B,SAAS,CAACC,MAAM,KAAK,CAAC,IAE3B,CAAC3B,IAAI,CAAC4B,QAAQ,IACd,CAAClC,gBAAgB,CAAC4B,MAAM,EAAE;IAAEC,MAAM,EAAEvB;EAAK,CAAC,CAAC,IAC3C,CAACJ,kBAAkB,CAAC0B,MAAM,CAAC,IAC3B,CAACzB,eAAe,CAACyB,MAAM,CAAC,EACxB;IACA;EACF;EAEA,IAAI,CAACjB,KAAK,CAACL,IAAI,CAAC6B,aAAa,CAAC;EAC9B,IAAI,CAACxB,KAAK,CAACL,IAAI,CAAC8B,cAAc,CAAC;EAG/B,IAAI9B,IAAI,CAAC4B,QAAQ,EAAE;IAEjB,IAAI,CAACxB,KAAK,CAAC,IAAI,CAAC;EAClB;EAEA,IACEJ,IAAI,CAAC0B,SAAS,CAACC,MAAM,KAAK,CAAC,IAC3B,IAAI,CAACI,QAAQ,IACb,CAAC,IAAI,CAACA,QAAQ,CAACC,UAAU,CAAChC,IAAI,EAAE,GAAG,CAAC,EACpC;IACA;EACF;EAEA,IAAI,CAACI,SAAK,GAAI,CAAC;EACf,MAAMO,IAAI,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;EAClC,IAAI,CAACqB,SAAS,CAACjC,IAAI,CAAC0B,SAAS,EAAE;IAC7BQ,sBAAsB,EAAE,IAAI,CAACC,wBAAwB,CAAC,GAAG;EAC3D,CAAC,CAAC;EACFxB,IAAI,CAAC,CAAC;EACN,IAAI,CAACG,WAAW,CAACd,IAAI,CAAC;AACxB;AAEO,SAASoC,kBAAkBA,CAAgBpC,IAA0B,EAAE;EAC5E,IAAI,CAACiC,SAAS,CAACjC,IAAI,CAACqC,WAAW,CAAC;AAClC;AAEO,SAASC,cAAcA,CAAA,EAAgB;EAC5C,IAAI,CAACpC,IAAI,CAAC,MAAM,CAAC;AACnB;AAEO,SAASqC,KAAKA,CAAA,EAAgB;EACnC,IAAI,CAACrC,IAAI,CAAC,OAAO,CAAC;AACpB;AAEO,SAASsC,kCAAkCA,CAEhDxC,IAA+D,EAC/D;EACA,IAAI,OAAO,IAAI,CAACwB,MAAM,CAACiB,sBAAsB,KAAK,SAAS,EAAE;IAC3D,OAAO,IAAI,CAACjB,MAAM,CAACiB,sBAAsB;EAC3C;EACA,OACE,OAAOzC,IAAI,CAAC0C,KAAK,KAAK,QAAQ,IAAI1C,IAAI,CAAC0C,KAAK,KAAK1C,IAAI,CAAC2C,WAAW,CAACD,KAAK;AAE3E;AAEO,SAASE,SAASA,CAAgB5C,IAAiB,EAAE;EAC1D,IAAI,CAACI,SAAK,GAAI,CAAC;EACf,IAAI,CAACC,KAAK,CAACL,IAAI,CAACa,UAAU,CAAC;EAC3B,IAAI,CAACgC,OAAO,CAAC,CAAC;AAChB;AAEO,SAASC,wBAAwBA,CAEtC9C,IAAgC,EAChC;EACA,IAAI;IAAE+C;EAAS,CAAC,GAAG/C,IAAI;EACvB,MAAM;IAAE4B,QAAQ;IAAEoB;EAAS,CAAC,GAAGhD,IAAI;EAEnC,IAAI,CAACK,KAAK,CAACL,IAAI,CAACiD,MAAM,CAAC;EAEvB,IAAI,CAACF,QAAQ,IAAInD,kBAAkB,CAACoD,QAAQ,CAAC,EAAE;IAC7C,MAAM,IAAIE,SAAS,CAAC,sDAAsD,CAAC;EAC7E;EAGA,IAAIvD,SAAS,CAACqD,QAAQ,CAAC,IAAI,OAAOA,QAAQ,CAACG,KAAK,KAAK,QAAQ,EAAE;IAC7DJ,QAAQ,GAAG,IAAI;EACjB;EACA,IAAInB,QAAQ,EAAE;IACZ,IAAI,CAACxB,KAAK,CAAC,IAAI,CAAC;EAClB;EAEA,IAAI2C,QAAQ,EAAE;IACZ,IAAI,CAAC3C,SAAK,GAAI,CAAC;IACf,IAAI,CAACC,KAAK,CAAC2C,QAAQ,CAAC;IACpB,IAAI,CAAC5C,SAAK,GAAI,CAAC;EACjB,CAAC,MAAM;IACL,IAAI,CAACwB,QAAQ,EAAE;MACb,IAAI,CAACxB,SAAK,GAAI,CAAC;IACjB;IACA,IAAI,CAACC,KAAK,CAAC2C,QAAQ,CAAC;EACtB;AACF;AAEO,SAASI,sBAAsBA,CAEpCpD,IAA8B,EAC9B;EACA,IAAI,CAACK,KAAK,CAACL,IAAI,CAACuB,MAAM,CAAC;EAEvB,IAAI,CAAClB,KAAK,CAACL,IAAI,CAAC8B,cAAc,CAAC;EAE/B,IAAI9B,IAAI,CAAC4B,QAAQ,EAAE;IACjB,IAAI,CAACxB,KAAK,CAAC,IAAI,CAAC;EAClB;EAEA,IAAI,CAACC,KAAK,CAACL,IAAI,CAAC6B,aAAa,CAAC;EAE9B,IAAI,CAACzB,SAAK,GAAI,CAAC;EACf,MAAMO,IAAI,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;EAClC,IAAI,CAACqB,SAAS,CAACjC,IAAI,CAAC0B,SAAS,CAAC;EAC9Bf,IAAI,CAAC,CAAC;EACN,IAAI,CAACG,WAAW,CAACd,IAAI,CAAC;AACxB;AAEO,SAASqD,cAAcA,CAAgBrD,IAAsB,EAAE;EACpE,IAAI,CAACK,KAAK,CAACL,IAAI,CAACuB,MAAM,CAAC;EAEvB,IAAI,CAAClB,KAAK,CAACL,IAAI,CAAC6B,aAAa,CAAC;EAC9B,IAAI,CAACxB,KAAK,CAACL,IAAI,CAAC8B,cAAc,CAAC;EAC/B,IAAI,CAAC1B,SAAK,GAAI,CAAC;EACf,MAAMO,IAAI,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;EAClC,IAAI,CAACqB,SAAS,CAACjC,IAAI,CAAC0B,SAAS,EAAE;IAC7BQ,sBAAsB,EAAE,IAAI,CAACC,wBAAwB,CAAC,GAAG;EAC3D,CAAC,CAAC;EACFxB,IAAI,CAAC,CAAC;EACN,IAAI,CAACG,WAAW,CAACd,IAAI,CAAC;AACxB;AAEO,SAASsD,MAAMA,CAAA,EAAgB;EACpC,IAAI,CAACpD,IAAI,CAAC,QAAQ,CAAC;AACrB;AAEO,SAASqD,eAAeA,CAAgBvD,IAAuB,EAAE;EACtE,IAAI,CAACE,IAAI,CAAC,OAAO,CAAC;EAElB,IAAIF,IAAI,CAACM,QAAQ,EAAE;IACjB,IAAI,CAACH,KAAK,CAAC,CAAC;IACZ,IAAI,CAACqD,mBAAmB,CAACxD,IAAI,CAACM,QAAQ,CAAC;EACzC;AACF;AAEO,SAASmD,eAAeA,CAAgBzD,IAAuB,EAAE;EACtE,IAAI,CAACE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;EAExB,IAAIF,IAAI,CAAC0D,QAAQ,EAAE;IACjB,IAAI,CAACtD,SAAK,GAAI,CAAC;IACf,IAAIJ,IAAI,CAACM,QAAQ,EAAE;MACjB,IAAI,CAACH,KAAK,CAAC,CAAC;MAEZ,IAAI,CAACE,KAAK,CAACL,IAAI,CAACM,QAAQ,CAAC;IAC3B;EACF,CAAC,MAAM;IACL,IAAIN,IAAI,CAACM,QAAQ,EAAE;MACjB,IAAI,CAACH,KAAK,CAAC,CAAC;MACZ,IAAI,CAACqD,mBAAmB,CAACxD,IAAI,CAACM,QAAQ,CAAC;IACzC;EACF;AACF;AAEO,SAASqD,cAAcA,CAAA,EAAgB;EAC5C,IAAI,CAACC,SAAS,CAAC,IAAgB,CAAC;AAClC;AAEO,SAASC,mBAAmBA,CAEjC7D,IAA2B,EAC3B;EACA,IAAI,CAAC8D,YAAY,IAAIC,mBAAY,CAACC,mBAAmB;EACrD,IAAI,CAAC3D,KAAK,CAACL,IAAI,CAACa,UAAU,CAAC;EAC3B,IAAI,CAAC+C,SAAS,CAAC,CAAC;AAClB;AAEO,SAASK,iBAAiBA,CAAgBjE,IAAyB,EAAE;EAC1E,IAAI,CAACK,KAAK,CAACL,IAAI,CAACkE,IAAI,CAAC;EACrB,IAAIlE,IAAI,CAACkE,IAAI,CAACC,IAAI,KAAK,YAAY,IAAIrE,SAAS,CAACE,IAAI,CAACkE,IAAI,CAAC,EAAE;IAC3D,IAAIlE,IAAI,CAACkE,IAAI,CAACtC,QAAQ,EAAE,IAAI,CAACxB,SAAK,GAAI,CAAC;IACvC,IAAI,CAACC,KAAK,CAACL,IAAI,CAACkE,IAAI,CAACE,cAAc,CAAC;EACtC;EACA,IAAI,CAACjE,KAAK,CAAC,CAAC;EACZ,IAAI,CAACC,SAAK,GAAI,CAAC;EACf,IAAI,CAACD,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACL,IAAI,CAACqE,KAAK,CAAC;AACxB;AAEO,SAASC,oBAAoBA,CAElCtE,IAAuE,EACvE;EACA,IAAI,CAACK,KAAK,CAACL,IAAI,CAACkE,IAAI,CAAC;EAErB,IAAI,CAAC/D,KAAK,CAAC,CAAC;EACZ,IAAIH,IAAI,CAACC,QAAQ,KAAK,IAAI,IAAID,IAAI,CAACC,QAAQ,KAAK,YAAY,EAAE;IAC5D,IAAI,CAACC,IAAI,CAACF,IAAI,CAACC,QAAQ,CAAC;EAC1B,CAAC,MAAM;IACL,IAAI,CAACG,KAAK,CAACJ,IAAI,CAACC,QAAQ,CAAC;IACzB,IAAI,CAACsE,YAAY,GAAGvE,IAAI,CAACC,QAAQ,KAAK,GAAG;EAC3C;EACA,IAAI,CAACE,KAAK,CAAC,CAAC;EAEZ,IAAI,CAACE,KAAK,CAACL,IAAI,CAACqE,KAAK,CAAC;AACxB;AAEO,SAASG,cAAcA,CAAgBxE,IAAsB,EAAE;EACpE,IAAI,CAACK,KAAK,CAACL,IAAI,CAACiD,MAAM,CAAC;EACvB,IAAI,CAAC7C,KAAK,CAAC,IAAI,CAAC;EAChB,IAAI,CAACC,KAAK,CAACL,IAAI,CAACuB,MAAM,CAAC;AACzB;AAOO,SAASkD,gBAAgBA,CAAgBzE,IAAwB,EAAE;EACxE,IAAI,CAACK,KAAK,CAACL,IAAI,CAACiD,MAAM,CAAC;EAEvB,IAAI,CAACjD,IAAI,CAAC+C,QAAQ,IAAInD,kBAAkB,CAACI,IAAI,CAACgD,QAAQ,CAAC,EAAE;IACvD,MAAM,IAAIE,SAAS,CAAC,sDAAsD,CAAC;EAC7E;EAEA,IAAIH,QAAQ,GAAG/C,IAAI,CAAC+C,QAAQ;EAE5B,IAAIpD,SAAS,CAACK,IAAI,CAACgD,QAAQ,CAAC,IAAI,OAAOhD,IAAI,CAACgD,QAAQ,CAACG,KAAK,KAAK,QAAQ,EAAE;IACvEJ,QAAQ,GAAG,IAAI;EACjB;EAEA,IAAIA,QAAQ,EAAE;IACZ,MAAMpC,IAAI,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;IAClC,IAAI,CAACR,SAAK,GAAI,CAAC;IACf,IAAI,CAACC,KAAK,CAACL,IAAI,CAACgD,QAAQ,CAAC;IACzB,IAAI,CAAC5C,SAAK,GAAI,CAAC;IACfO,IAAI,CAAC,CAAC;EACR,CAAC,MAAM;IACL,IAAI,CAACP,SAAK,GAAI,CAAC;IACf,IAAI,CAACC,KAAK,CAACL,IAAI,CAACgD,QAAQ,CAAC;EAC3B;AACF;AAEO,SAAS0B,YAAYA,CAAgB1E,IAAoB,EAAE;EAChE,IAAI,CAACK,KAAK,CAACL,IAAI,CAAC2E,IAAI,CAAC;EACrB,IAAI,CAACvE,SAAK,GAAI,CAAC;EACf,IAAI,CAACC,KAAK,CAACL,IAAI,CAACgD,QAAQ,CAAC;AAC3B;AAEO,SAAS4B,WAAWA,CAAgB5E,IAAmB,EAAE;EAC9D,IAAI,CAACI,SAAK,GAAI,CAAC;EACf,IAAI,CAACC,KAAK,CAACL,IAAI,CAAC6E,EAAE,CAAC;AACrB;AAEO,SAASC,qBAAqBA,CAEnC9E,IAA6B,EAC7B;EACA,IAAI,CAACI,SAAK,GAAI,CAAC;EACf,IAAI,CAACF,IAAI,CAACF,IAAI,CAAC+E,IAAI,CAAC;AACtB;AAEO,SAASC,gBAAgBA,CAAgBhF,IAAwB,EAAE;EACxE,IAAI,CAACE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;EACzB,IAAI,CAACC,KAAK,CAAC,CAAC;EACZ,IAAI,CAACC,SAAK,IAAI,CAAC;EACf,IAAI,CAAC6E,MAAM,CAAC,CAAC;EACb,MAAM;IAAExE;EAAK,CAAC,GAAGT,IAAI;EACrB,IAAIS,IAAI,CAACA,IAAI,CAACkB,MAAM,IAAIlB,IAAI,CAACyE,UAAU,CAACvD,MAAM,EAAE;IAC9C,IAAI,CAACkB,OAAO,CAAC,CAAC;EAChB;EACA,IAAI,CAACxC,KAAK,CAACI,IAAI,CAAC;EAChB,IAAI,CAAC0E,MAAM,CAAC,CAAC;EACb,IAAI,CAACC,UAAU,CAACpF,IAAI,CAAC;AACvB","ignoreList":[]} \ 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 index 08ab6bb..6663a9b 100644 --- a/node_modules/@babel/generator/lib/generators/flow.js +++ b/node_modules/@babel/generator/lib/generators/flow.js @@ -89,7 +89,7 @@ function AnyTypeAnnotation() { this.word("any"); } function ArrayTypeAnnotation(node) { - this.print(node.elementType, node, true); + this.print(node.elementType, true); this.tokenChar(91); this.tokenChar(93); } @@ -118,11 +118,11 @@ function DeclareFunction(node, parent) { } this.word("function"); this.space(); - this.print(node.id, node); - this.print(node.id.typeAnnotation.typeAnnotation, node); + this.print(node.id); + this.print(node.id.typeAnnotation.typeAnnotation); if (node.predicate) { this.space(); - this.print(node.predicate, node); + this.print(node.predicate); } this.semicolon(); } @@ -134,7 +134,7 @@ function DeclaredPredicate(node) { this.tokenChar(37); this.word("checks"); this.tokenChar(40); - this.print(node.value, node); + this.print(node.value); this.tokenChar(41); } function DeclareInterface(node) { @@ -147,9 +147,9 @@ function DeclareModule(node) { this.space(); this.word("module"); this.space(); - this.print(node.id, node); + this.print(node.id); this.space(); - this.print(node.body, node); + this.print(node.body); } function DeclareModuleExports(node) { this.word("declare"); @@ -157,7 +157,7 @@ function DeclareModuleExports(node) { this.word("module"); this.tokenChar(46); this.word("exports"); - this.print(node.typeAnnotation, node); + this.print(node.typeAnnotation); } function DeclareTypeAlias(node) { this.word("declare"); @@ -178,8 +178,8 @@ function DeclareVariable(node, parent) { } this.word("var"); this.space(); - this.print(node.id, node); - this.print(node.id.typeAnnotation, node); + this.print(node.id); + this.print(node.id.typeAnnotation); this.semicolon(); } function DeclareExportDeclaration(node) { @@ -205,8 +205,8 @@ function EnumDeclaration(node) { } = node; this.word("enum"); this.space(); - this.print(id, node); - this.print(body, node); + this.print(id); + this.print(body); } function enumExplicitType(context, name, hasExplicitType) { if (hasExplicitType) { @@ -225,7 +225,7 @@ function enumBody(context, node) { context.indent(); context.newline(); for (const member of members) { - context.print(member, node); + context.print(member); context.newline(); } if (node.hasUnknownMembers) { @@ -264,19 +264,15 @@ function EnumDefaultedMember(node) { const { id } = node; - this.print(id, node); + this.print(id); this.tokenChar(44); } function enumInitializedMember(context, node) { - const { - id, - init - } = node; - context.print(id, node); + context.print(node.id); context.space(); context.token("="); context.space(); - context.print(init, node); + context.print(node.init); context.token(","); } function EnumBooleanMember(node) { @@ -291,13 +287,13 @@ function EnumStringMember(node) { function FlowExportDeclaration(node) { if (node.declaration) { const declar = node.declaration; - this.print(declar, node); + this.print(declar); if (!isStatement(declar)) this.semicolon(); } else { this.tokenChar(123); if (node.specifiers.length) { this.space(); - this.printList(node.specifiers, node); + this.printList(node.specifiers); this.space(); } this.tokenChar(125); @@ -305,7 +301,7 @@ function FlowExportDeclaration(node) { this.space(); this.word("from"); this.space(); - this.print(node.source, node); + this.print(node.source); } this.semicolon(); } @@ -314,26 +310,26 @@ function ExistsTypeAnnotation() { this.tokenChar(42); } function FunctionTypeAnnotation(node, parent) { - this.print(node.typeParameters, node); + this.print(node.typeParameters); this.tokenChar(40); if (node.this) { this.word("this"); this.tokenChar(58); this.space(); - this.print(node.this.typeAnnotation, node); + this.print(node.this.typeAnnotation); if (node.params.length || node.rest) { this.tokenChar(44); this.space(); } } - this.printList(node.params, node); + this.printList(node.params); if (node.rest) { if (node.params.length) { this.tokenChar(44); this.space(); } this.token("..."); - this.print(node.rest, node); + this.print(node.rest); } this.tokenChar(41); const type = parent == null ? void 0 : parent.type; @@ -344,30 +340,30 @@ function FunctionTypeAnnotation(node, parent) { this.token("=>"); } this.space(); - this.print(node.returnType, node); + this.print(node.returnType); } function FunctionTypeParam(node) { - this.print(node.name, node); + this.print(node.name); if (node.optional) this.tokenChar(63); if (node.name) { this.tokenChar(58); this.space(); } - this.print(node.typeAnnotation, node); + this.print(node.typeAnnotation); } function InterfaceExtends(node) { - this.print(node.id, node); - this.print(node.typeParameters, node, true); + this.print(node.id); + this.print(node.typeParameters, true); } function _interfaceish(node) { var _node$extends; - this.print(node.id, node); - this.print(node.typeParameters, node); + this.print(node.id); + this.print(node.typeParameters); if ((_node$extends = node.extends) != null && _node$extends.length) { this.space(); this.word("extends"); this.space(); - this.printList(node.extends, node); + this.printList(node.extends); } if (node.type === "DeclareClass") { var _node$mixins, _node$implements; @@ -375,17 +371,17 @@ function _interfaceish(node) { this.space(); this.word("mixins"); this.space(); - this.printList(node.mixins, node); + this.printList(node.mixins); } if ((_node$implements = node.implements) != null && _node$implements.length) { this.space(); this.word("implements"); this.space(); - this.printList(node.implements, node); + this.printList(node.implements); } } this.space(); - this.print(node.body, node); + this.print(node.body); } function _variance(node) { var _node$variance; @@ -403,9 +399,9 @@ function InterfaceDeclaration(node) { this.space(); this._interfaceish(node); } -function andSeparator() { +function andSeparator(occurrenceCount) { this.space(); - this.tokenChar(38); + this.token("&", false, occurrenceCount); this.space(); } function InterfaceTypeAnnotation(node) { @@ -415,13 +411,13 @@ function InterfaceTypeAnnotation(node) { this.space(); this.word("extends"); this.space(); - this.printList(node.extends, node); + this.printList(node.extends); } this.space(); - this.print(node.body, node); + this.print(node.body); } function IntersectionTypeAnnotation(node) { - this.printJoin(node.types, node, { + this.printJoin(node.types, { separator: andSeparator }); } @@ -433,7 +429,7 @@ function EmptyTypeAnnotation() { } function NullableTypeAnnotation(node) { this.tokenChar(63); - this.print(node.typeAnnotation, node); + this.print(node.typeAnnotation); } function NumberTypeAnnotation() { this.word("number"); @@ -446,23 +442,23 @@ function ThisTypeAnnotation() { } function TupleTypeAnnotation(node) { this.tokenChar(91); - this.printList(node.types, node); + this.printList(node.types); this.tokenChar(93); } function TypeofTypeAnnotation(node) { this.word("typeof"); this.space(); - this.print(node.argument, node); + this.print(node.argument); } function TypeAlias(node) { this.word("type"); this.space(); - this.print(node.id, node); - this.print(node.typeParameters, node); + this.print(node.id); + this.print(node.typeParameters); this.space(); this.tokenChar(61); this.space(); - this.print(node.right, node); + this.print(node.right); this.semicolon(); } function TypeAnnotation(node, parent) { @@ -473,24 +469,24 @@ function TypeAnnotation(node, parent) { } else if (node.optional) { this.tokenChar(63); } - this.print(node.typeAnnotation, node); + this.print(node.typeAnnotation); } function TypeParameterInstantiation(node) { this.tokenChar(60); - this.printList(node.params, node, {}); + this.printList(node.params, {}); this.tokenChar(62); } function TypeParameter(node) { this._variance(node); this.word(node.name); if (node.bound) { - this.print(node.bound, node); + this.print(node.bound); } if (node.default) { this.space(); this.tokenChar(61); this.space(); - this.print(node.default, node); + this.print(node.default); } } function OpaqueType(node) { @@ -498,18 +494,18 @@ function OpaqueType(node) { this.space(); this.word("type"); this.space(); - this.print(node.id, node); - this.print(node.typeParameters, node); + this.print(node.id); + this.print(node.typeParameters); if (node.supertype) { this.tokenChar(58); this.space(); - this.print(node.supertype, node); + this.print(node.supertype); } if (node.impltype) { this.space(); this.tokenChar(61); this.space(); - this.print(node.impltype, node); + this.print(node.impltype); } this.semicolon(); } @@ -523,7 +519,7 @@ function ObjectTypeAnnotation(node) { if (props.length) { this.newline(); this.space(); - this.printJoin(props, node, { + this.printJoin(props, { addNewlines(leading) { if (leading && !props[0]) return 1; }, @@ -559,7 +555,7 @@ function ObjectTypeInternalSlot(node) { } this.tokenChar(91); this.tokenChar(91); - this.print(node.id, node); + this.print(node.id); this.tokenChar(93); this.tokenChar(93); if (node.optional) this.tokenChar(63); @@ -567,14 +563,14 @@ function ObjectTypeInternalSlot(node) { this.tokenChar(58); this.space(); } - this.print(node.value, node); + this.print(node.value); } function ObjectTypeCallProperty(node) { if (node.static) { this.word("static"); this.space(); } - this.print(node.value, node); + this.print(node.value); } function ObjectTypeIndexer(node) { if (node.static) { @@ -584,15 +580,15 @@ function ObjectTypeIndexer(node) { this._variance(node); this.tokenChar(91); if (node.id) { - this.print(node.id, node); + this.print(node.id); this.tokenChar(58); this.space(); } - this.print(node.key, node); + this.print(node.key); this.tokenChar(93); this.tokenChar(58); this.space(); - this.print(node.value, node); + this.print(node.value); } function ObjectTypeProperty(node) { if (node.proto) { @@ -608,40 +604,40 @@ function ObjectTypeProperty(node) { this.space(); } this._variance(node); - this.print(node.key, node); + this.print(node.key); if (node.optional) this.tokenChar(63); if (!node.method) { this.tokenChar(58); this.space(); } - this.print(node.value, node); + this.print(node.value); } function ObjectTypeSpreadProperty(node) { this.token("..."); - this.print(node.argument, node); + this.print(node.argument); } function QualifiedTypeIdentifier(node) { - this.print(node.qualification, node); + this.print(node.qualification); this.tokenChar(46); - this.print(node.id, node); + this.print(node.id); } function SymbolTypeAnnotation() { this.word("symbol"); } -function orSeparator() { +function orSeparator(occurrenceCount) { this.space(); - this.tokenChar(124); + this.token("|", false, occurrenceCount); this.space(); } function UnionTypeAnnotation(node) { - this.printJoin(node.types, node, { + this.printJoin(node.types, { separator: orSeparator }); } function TypeCastExpression(node) { this.tokenChar(40); - this.print(node.expression, node); - this.print(node.typeAnnotation, node); + this.print(node.expression); + this.print(node.typeAnnotation); this.tokenChar(41); } function Variance(node) { @@ -655,18 +651,18 @@ function VoidTypeAnnotation() { this.word("void"); } function IndexedAccessType(node) { - this.print(node.objectType, node, true); + this.print(node.objectType, true); this.tokenChar(91); - this.print(node.indexType, node); + this.print(node.indexType); this.tokenChar(93); } function OptionalIndexedAccessType(node) { - this.print(node.objectType, node); + this.print(node.objectType); if (node.optional) { this.token("?."); } this.tokenChar(91); - this.print(node.indexType, node); + this.print(node.indexType); this.tokenChar(93); } diff --git a/node_modules/@babel/generator/lib/generators/flow.js.map b/node_modules/@babel/generator/lib/generators/flow.js.map index 50d37a7..c24eea4 100644 --- a/node_modules/@babel/generator/lib/generators/flow.js.map +++ b/node_modules/@babel/generator/lib/generators/flow.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","_modules","_index","_types2","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","_node$extends","extends","_node$mixins","_node$implements","mixins","implements","_variance","_node$variance","kind","variance","andSeparator","InterfaceTypeAnnotation","_node$extends2","IntersectionTypeAnnotation","printJoin","types","separator","MixedTypeAnnotation","EmptyTypeAnnotation","NullableTypeAnnotation","NumberTypeAnnotation","StringTypeAnnotation","ThisTypeAnnotation","TupleTypeAnnotation","TypeofTypeAnnotation","argument","right","TypeAnnotation","tokenContext","TokenContext","arrowFlowReturnType","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.ts\";\nimport { isDeclareExportDeclaration, isStatement } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { ExportAllDeclaration } from \"./modules.ts\";\nimport { TokenContext } from \"../node/index.ts\";\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,\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\n const type = parent?.type;\n if (\n type != null &&\n (type === \"ObjectTypeCallProperty\" ||\n type === \"ObjectTypeInternalSlot\" ||\n type === \"DeclareFunction\" ||\n (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.type === \"DeclareClass\") {\n if (node.mixins?.length) {\n this.space();\n this.word(\"mixins\");\n this.space();\n this.printList(node.mixins, node);\n }\n if (node.implements?.length) {\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 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 const kind = node.variance?.kind;\n if (kind != null) {\n if (kind === \"plus\") {\n this.token(\"+\");\n } else if (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?.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.ts\";\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(\n this: Printer,\n node: t.TypeAnnotation,\n parent: t.Node,\n) {\n this.token(\":\");\n this.space();\n if (parent.type === \"ArrowFunctionExpression\") {\n this.tokenContext |= TokenContext.arrowFlowReturnType;\n } else if (\n // @ts-expect-error todo(flow->ts) can this be removed? `.optional` looks to be not existing property\n node.optional\n ) {\n this.token(\"?\");\n }\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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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_t","require","_modules","_index","_types2","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","_node$extends","extends","_node$mixins","_node$implements","mixins","implements","_variance","_node$variance","kind","variance","andSeparator","occurrenceCount","InterfaceTypeAnnotation","_node$extends2","IntersectionTypeAnnotation","printJoin","types","separator","MixedTypeAnnotation","EmptyTypeAnnotation","NullableTypeAnnotation","NumberTypeAnnotation","StringTypeAnnotation","ThisTypeAnnotation","TupleTypeAnnotation","TypeofTypeAnnotation","argument","right","TypeAnnotation","tokenContext","TokenContext","arrowFlowReturnType","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.ts\";\nimport { isDeclareExportDeclaration, isStatement } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { ExportAllDeclaration } from \"./modules.ts\";\nimport { TokenContext } from \"../node/index.ts\";\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, 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);\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);\n\n if (node.predicate) {\n this.space();\n this.print(node.predicate);\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);\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);\n this.space();\n this.print(node.body);\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);\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);\n this.print(node.id.typeAnnotation);\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);\n this.print(body);\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);\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);\n this.token(\",\");\n}\n\nfunction enumInitializedMember(\n context: Printer,\n node: t.EnumBooleanMember | t.EnumNumberMember | t.EnumStringMember,\n) {\n context.print(node.id);\n context.space();\n context.token(\"=\");\n context.space();\n context.print(node.init);\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);\n if (!isStatement(declar)) this.semicolon();\n } else {\n this.token(\"{\");\n if (node.specifiers.length) {\n this.space();\n this.printList(node.specifiers);\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);\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,\n) {\n this.print(node.typeParameters);\n this.token(\"(\");\n\n if (node.this) {\n this.word(\"this\");\n this.token(\":\");\n this.space();\n this.print(node.this.typeAnnotation);\n if (node.params.length || node.rest) {\n this.token(\",\");\n this.space();\n }\n }\n\n this.printList(node.params);\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);\n }\n\n this.token(\")\");\n\n // this node type is overloaded, not sure why but it makes it EXTREMELY annoying\n\n const type = parent?.type;\n if (\n type != null &&\n (type === \"ObjectTypeCallProperty\" ||\n type === \"ObjectTypeInternalSlot\" ||\n type === \"DeclareFunction\" ||\n (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);\n}\n\nexport function FunctionTypeParam(this: Printer, node: t.FunctionTypeParam) {\n this.print(node.name);\n if (node.optional) this.token(\"?\");\n if (node.name) {\n this.token(\":\");\n this.space();\n }\n this.print(node.typeAnnotation);\n}\n\nexport function InterfaceExtends(this: Printer, node: t.InterfaceExtends) {\n this.print(node.id);\n this.print(node.typeParameters, 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);\n this.print(node.typeParameters);\n if (node.extends?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(node.extends);\n }\n if (node.type === \"DeclareClass\") {\n if (node.mixins?.length) {\n this.space();\n this.word(\"mixins\");\n this.space();\n this.printList(node.mixins);\n }\n if (node.implements?.length) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements);\n }\n }\n this.space();\n this.print(node.body);\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 const kind = node.variance?.kind;\n if (kind != null) {\n if (kind === \"plus\") {\n this.token(\"+\");\n } else if (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, occurrenceCount: number) {\n this.space();\n this.token(\"&\", false, occurrenceCount);\n this.space();\n}\n\nexport function InterfaceTypeAnnotation(\n this: Printer,\n node: t.InterfaceTypeAnnotation,\n) {\n this.word(\"interface\");\n if (node.extends?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(node.extends);\n }\n this.space();\n this.print(node.body);\n}\n\nexport function IntersectionTypeAnnotation(\n this: Printer,\n node: t.IntersectionTypeAnnotation,\n) {\n this.printJoin(node.types, { 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);\n}\n\nexport {\n NumericLiteral as NumberLiteralTypeAnnotation,\n StringLiteral as StringLiteralTypeAnnotation,\n} from \"./types.ts\";\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);\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);\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);\n this.print(node.typeParameters);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.right);\n this.semicolon();\n}\n\nexport function TypeAnnotation(\n this: Printer,\n node: t.TypeAnnotation,\n parent: t.Node,\n) {\n this.token(\":\");\n this.space();\n if (parent.type === \"ArrowFunctionExpression\") {\n this.tokenContext |= TokenContext.arrowFlowReturnType;\n } else if (\n // @ts-expect-error todo(flow->ts) can this be removed? `.optional` looks to be not existing property\n node.optional\n ) {\n this.token(\"?\");\n }\n this.print(node.typeAnnotation);\n}\n\nexport function TypeParameterInstantiation(\n this: Printer,\n node: t.TypeParameterInstantiation,\n): void {\n this.token(\"<\");\n this.printList(node.params, {});\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);\n }\n\n if (node.default) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.default);\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);\n this.print(node.typeParameters);\n if (node.supertype) {\n this.token(\":\");\n this.space();\n this.print(node.supertype);\n }\n\n if (node.impltype) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.impltype);\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, {\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);\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);\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);\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);\n this.token(\":\");\n this.space();\n }\n this.print(node.key);\n this.token(\"]\");\n this.token(\":\");\n this.space();\n this.print(node.value);\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);\n if (node.optional) this.token(\"?\");\n if (!node.method) {\n this.token(\":\");\n this.space();\n }\n this.print(node.value);\n}\n\nexport function ObjectTypeSpreadProperty(\n this: Printer,\n node: t.ObjectTypeSpreadProperty,\n) {\n this.token(\"...\");\n this.print(node.argument);\n}\n\nexport function QualifiedTypeIdentifier(\n this: Printer,\n node: t.QualifiedTypeIdentifier,\n) {\n this.print(node.qualification);\n this.token(\".\");\n this.print(node.id);\n}\n\nexport function SymbolTypeAnnotation(this: Printer) {\n this.word(\"symbol\");\n}\n\nfunction orSeparator(this: Printer, occurrenceCount: number) {\n this.space();\n this.token(\"|\", false, occurrenceCount);\n this.space();\n}\n\nexport function UnionTypeAnnotation(\n this: Printer,\n node: t.UnionTypeAnnotation,\n) {\n this.printJoin(node.types, { separator: orSeparator });\n}\n\nexport function TypeCastExpression(this: Printer, node: t.TypeCastExpression) {\n this.token(\"(\");\n this.print(node.expression);\n this.print(node.typeAnnotation);\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, true);\n this.token(\"[\");\n this.print(node.indexType);\n this.token(\"]\");\n}\n\nexport function OptionalIndexedAccessType(\n this: Printer,\n node: t.OptionalIndexedAccessType,\n) {\n this.print(node.objectType);\n if (node.optional) {\n this.token(\"?.\");\n }\n this.token(\"[\");\n this.print(node.indexType);\n this.token(\"]\");\n}\n"],"mappings":"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","ignoreList":[]} \ 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 index 4b8dd7a..4600029 100644 --- a/node_modules/@babel/generator/lib/generators/jsx.js +++ b/node_modules/@babel/generator/lib/generators/jsx.js @@ -19,41 +19,41 @@ exports.JSXSpreadAttribute = JSXSpreadAttribute; exports.JSXSpreadChild = JSXSpreadChild; exports.JSXText = JSXText; function JSXAttribute(node) { - this.print(node.name, node); + this.print(node.name); if (node.value) { this.tokenChar(61); - this.print(node.value, node); + this.print(node.value); } } function JSXIdentifier(node) { this.word(node.name); } function JSXNamespacedName(node) { - this.print(node.namespace, node); + this.print(node.namespace); this.tokenChar(58); - this.print(node.name, node); + this.print(node.name); } function JSXMemberExpression(node) { - this.print(node.object, node); + this.print(node.object); this.tokenChar(46); - this.print(node.property, node); + this.print(node.property); } function JSXSpreadAttribute(node) { this.tokenChar(123); this.token("..."); - this.print(node.argument, node); - this.tokenChar(125); + this.print(node.argument); + this.rightBrace(node); } function JSXExpressionContainer(node) { this.tokenChar(123); - this.print(node.expression, node); - this.tokenChar(125); + this.print(node.expression); + this.rightBrace(node); } function JSXSpreadChild(node) { this.tokenChar(123); this.token("..."); - this.print(node.expression, node); - this.tokenChar(125); + this.print(node.expression); + this.rightBrace(node); } function JSXText(node) { const raw = this.getPossibleRaw(node); @@ -65,51 +65,51 @@ function JSXText(node) { } function JSXElement(node) { const open = node.openingElement; - this.print(open, node); + this.print(open); if (open.selfClosing) return; this.indent(); for (const child of node.children) { - this.print(child, node); + this.print(child); } this.dedent(); - this.print(node.closingElement, node); + this.print(node.closingElement); } function spaceSeparator() { this.space(); } function JSXOpeningElement(node) { this.tokenChar(60); - this.print(node.name, node); - this.print(node.typeParameters, node); + this.print(node.name); + this.print(node.typeParameters); if (node.attributes.length > 0) { this.space(); - this.printJoin(node.attributes, node, { + this.printJoin(node.attributes, { separator: spaceSeparator }); } if (node.selfClosing) { this.space(); - this.token("/>"); - } else { - this.tokenChar(62); + this.tokenChar(47); } + 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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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["JSXAttribute","node","print","name","value","token","JSXIdentifier","word","JSXNamespacedName","namespace","JSXMemberExpression","object","property","JSXSpreadAttribute","argument","rightBrace","JSXExpressionContainer","expression","JSXSpreadChild","JSXText","raw","getPossibleRaw","undefined","JSXElement","open","openingElement","selfClosing","indent","child","children","dedent","closingElement","spaceSeparator","space","JSXOpeningElement","typeParameters","attributes","length","printJoin","separator","JSXClosingElement","JSXEmptyExpression","printInnerComments","JSXFragment","openingFragment","closingFragment","JSXOpeningFragment","JSXClosingFragment"],"sources":["../../src/generators/jsx.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function JSXAttribute(this: Printer, node: t.JSXAttribute) {\n this.print(node.name);\n if (node.value) {\n this.token(\"=\");\n this.print(node.value);\n }\n}\n\nexport function JSXIdentifier(this: Printer, node: t.JSXIdentifier) {\n this.word(node.name);\n}\n\nexport function JSXNamespacedName(this: Printer, node: t.JSXNamespacedName) {\n this.print(node.namespace);\n this.token(\":\");\n this.print(node.name);\n}\n\nexport function JSXMemberExpression(\n this: Printer,\n node: t.JSXMemberExpression,\n) {\n this.print(node.object);\n this.token(\".\");\n this.print(node.property);\n}\n\nexport function JSXSpreadAttribute(this: Printer, node: t.JSXSpreadAttribute) {\n this.token(\"{\");\n this.token(\"...\");\n this.print(node.argument);\n this.rightBrace(node);\n}\n\nexport function JSXExpressionContainer(\n this: Printer,\n node: t.JSXExpressionContainer,\n) {\n this.token(\"{\");\n this.print(node.expression);\n this.rightBrace(node);\n}\n\nexport function JSXSpreadChild(this: Printer, node: t.JSXSpreadChild) {\n this.token(\"{\");\n this.token(\"...\");\n this.print(node.expression);\n this.rightBrace(node);\n}\n\nexport function JSXText(this: Printer, node: t.JSXText) {\n const raw = this.getPossibleRaw(node);\n\n if (raw !== undefined) {\n this.token(raw, true);\n } else {\n this.token(node.value, true);\n }\n}\n\nexport function JSXElement(this: Printer, node: t.JSXElement) {\n const open = node.openingElement;\n this.print(open);\n if (open.selfClosing) return;\n\n this.indent();\n for (const child of node.children) {\n this.print(child);\n }\n this.dedent();\n\n this.print(node.closingElement);\n}\n\nfunction spaceSeparator(this: Printer) {\n this.space();\n}\n\nexport function JSXOpeningElement(this: Printer, node: t.JSXOpeningElement) {\n this.token(\"<\");\n this.print(node.name);\n this.print(node.typeParameters); // TS\n if (node.attributes.length > 0) {\n this.space();\n this.printJoin(node.attributes, { separator: spaceSeparator });\n }\n if (node.selfClosing) {\n this.space();\n this.token(\"/\");\n }\n this.token(\">\");\n}\n\nexport function JSXClosingElement(this: Printer, node: t.JSXClosingElement) {\n this.token(\"<\");\n this.token(\"/\");\n this.print(node.name);\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);\n\n this.indent();\n for (const child of node.children) {\n this.print(child);\n }\n this.dedent();\n\n this.print(node.closingFragment);\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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","ignoreList":[]} \ 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 index 14a573a..eabb16d 100644 --- a/node_modules/@babel/generator/lib/generators/methods.js +++ b/node_modules/@babel/generator/lib/generators/methods.js @@ -11,43 +11,45 @@ exports._param = _param; exports._parameters = _parameters; exports._params = _params; exports._predicate = _predicate; +exports._shouldPrintArrowParamsParens = _shouldPrintArrowParamsParens; var _t = require("@babel/types"); var _index = require("../node/index.js"); const { isIdentifier } = _t; function _params(node, idNode, parentNode) { - this.print(node.typeParameters, node); + this.print(node.typeParameters); const nameInfo = _getFuncIdName.call(this, idNode, parentNode); if (nameInfo) { this.sourceIdentifierName(nameInfo.name, nameInfo.pos); } this.tokenChar(40); - this._parameters(node.params, node); - this.tokenChar(41); + this._parameters(node.params, ")"); const noLineTerminator = node.type === "ArrowFunctionExpression"; - this.print(node.returnType, node, noLineTerminator); + this.print(node.returnType, noLineTerminator); this._noLineTerminator = noLineTerminator; } -function _parameters(parameters, parent) { - const exit = this.enterForStatementInit(false); +function _parameters(parameters, endToken) { + const exit = this.enterDelimited(); + const trailingComma = this.shouldPrintTrailingComma(endToken); 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._param(parameters[i]); + if (trailingComma || i < paramLength - 1) { + this.token(",", null, i); this.space(); } } + this.token(endToken); exit(); } -function _param(parameter, parent) { - this.printJoin(parameter.decorators, parameter); - this.print(parameter, parent); +function _param(parameter) { + this.printJoin(parameter.decorators); + this.print(parameter); if (parameter.optional) { this.tokenChar(63); } - this.print(parameter.typeAnnotation, parameter); + this.print(parameter.typeAnnotation); } function _methodHead(node) { const kind = node.kind; @@ -67,10 +69,10 @@ function _methodHead(node) { } if (node.computed) { this.tokenChar(91); - this.print(key, node); + this.print(key); this.tokenChar(93); } else { - this.print(key, node); + this.print(key); } if (node.optional) { this.tokenChar(63); @@ -83,23 +85,27 @@ function _predicate(node, noLineTerminatorAfter) { this.tokenChar(58); } this.space(); - this.print(node.predicate, node, noLineTerminatorAfter); + this.print(node.predicate, noLineTerminatorAfter); } } function _functionHead(node, parent) { if (node.async) { this.word("async"); - this._endsWithInnerRaw = false; + if (!this.format.preserveFormat) { + this._endsWithInnerRaw = false; + } this.space(); } this.word("function"); if (node.generator) { - this._endsWithInnerRaw = false; + if (!this.format.preserveFormat) { + this._endsWithInnerRaw = false; + } this.tokenChar(42); } this.space(); if (node.id) { - this.print(node.id, node); + this.print(node.id); } this._params(node, node.id, parent); if (node.type !== "TSDeclareFunction") { @@ -109,18 +115,17 @@ function _functionHead(node, parent) { function FunctionExpression(node, parent) { this._functionHead(node, parent); this.space(); - this.print(node.body, node); + this.print(node.body); } function ArrowFunctionExpression(node, parent) { 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 { + if (this._shouldPrintArrowParamsParens(node)) { this._params(node, undefined, parent); + } else { + this.print(node.params[0], true); } this._predicate(node, true); this.space(); @@ -128,11 +133,27 @@ function ArrowFunctionExpression(node, parent) { this.token("=>"); this.space(); this.tokenContext |= _index.TokenContext.arrowBody; - this.print(node.body, node); + this.print(node.body); } -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); +function _shouldPrintArrowParamsParens(node) { + var _firstParam$leadingCo, _firstParam$trailingC; + if (node.params.length !== 1) return true; + if (node.typeParameters || node.returnType || node.predicate) { + return true; + } + const firstParam = node.params[0]; + if (!isIdentifier(firstParam) || firstParam.typeAnnotation || firstParam.optional || (_firstParam$leadingCo = firstParam.leadingComments) != null && _firstParam$leadingCo.length || (_firstParam$trailingC = firstParam.trailingComments) != null && _firstParam$trailingC.length) { + return true; + } + if (this.tokenMap) { + if (node.loc == null) return true; + if (this.tokenMap.findMatching(node, "(") !== null) return true; + const arrowToken = this.tokenMap.findMatching(node, "=>"); + if ((arrowToken == null ? void 0 : arrowToken.loc) == null) return true; + return arrowToken.loc.start.line !== node.loc.start.line; + } + if (this.format.retainLines) return true; + return false; } function _getFuncIdName(idNode, parent) { let id = idNode; diff --git a/node_modules/@babel/generator/lib/generators/methods.js.map b/node_modules/@babel/generator/lib/generators/methods.js.map index a8c7c1f..b81e15e 100644 --- a/node_modules/@babel/generator/lib/generators/methods.js.map +++ b/node_modules/@babel/generator/lib/generators/methods.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","_index","isIdentifier","_params","node","idNode","parentNode","print","typeParameters","nameInfo","_getFuncIdName","call","sourceIdentifierName","name","pos","token","_parameters","params","noLineTerminator","type","returnType","_noLineTerminator","parameters","parent","exit","enterForStatementInit","paramLength","length","i","_param","space","parameter","printJoin","decorators","optional","typeAnnotation","_methodHead","kind","key","word","async","generator","computed","undefined","_predicate","noLineTerminatorAfter","predicate","_functionHead","_endsWithInnerRaw","id","FunctionExpression","body","ArrowFunctionExpression","firstParam","format","retainLines","hasTypesOrComments","printInnerComments","tokenContext","TokenContext","arrowBody","param","_param$leadingComment","_param$trailingCommen","leadingComments","trailingComments","parentType","left","_id$loc","_id$loc2","loc","start","identifierName","_id$loc3","_id$loc4","value"],"sources":["../../src/generators/methods.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\nimport { isIdentifier, type ParentMaps } from \"@babel/types\";\nimport { TokenContext } from \"../node/index.ts\";\n\ntype ParentsOf = ParentMaps[T[\"type\"]];\n\nexport function _params(\n this: Printer,\n node: t.Function | t.TSDeclareMethod | t.TSDeclareFunction,\n idNode: t.Expression | t.PrivateName,\n parentNode: ParentsOf,\n) {\n this.print(node.typeParameters, node);\n\n const nameInfo = _getFuncIdName.call(this, idNode, parentNode);\n if (nameInfo) {\n this.sourceIdentifierName(nameInfo.name, nameInfo.pos);\n }\n\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 exit = this.enterForStatementInit(false);\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 exit();\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(\n node,\n node.computed && node.key.type !== \"StringLiteral\" ? undefined : node.key,\n undefined,\n );\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 parent: ParentsOf,\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, node.id, parent);\n if (node.type !== \"TSDeclareFunction\") {\n this._predicate(node);\n }\n}\n\nexport function FunctionExpression(\n this: Printer,\n node: t.FunctionExpression,\n parent: ParentsOf,\n) {\n this._functionHead(node, parent);\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 parent: ParentsOf,\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, undefined, parent);\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.tokenContext |= TokenContext.arrowBody;\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\nfunction _getFuncIdName(\n this: Printer,\n idNode: t.Expression | t.PrivateName,\n parent: ParentsOf,\n) {\n let id: t.Expression | t.PrivateName | t.LVal = idNode;\n\n if (!id && parent) {\n const parentType = parent.type;\n\n if (parentType === \"VariableDeclarator\") {\n id = parent.id;\n } else if (\n parentType === \"AssignmentExpression\" ||\n parentType === \"AssignmentPattern\"\n ) {\n id = parent.left;\n } else if (\n parentType === \"ObjectProperty\" ||\n parentType === \"ClassProperty\"\n ) {\n if (!parent.computed || parent.key.type === \"StringLiteral\") {\n id = parent.key;\n }\n } else if (\n parentType === \"ClassPrivateProperty\" ||\n parentType === \"ClassAccessorProperty\"\n ) {\n id = parent.key;\n }\n }\n\n if (!id) return;\n\n let nameInfo;\n\n if (id.type === \"Identifier\") {\n nameInfo = {\n pos: id.loc?.start,\n name: id.loc?.identifierName || id.name,\n };\n } else if (id.type === \"PrivateName\") {\n nameInfo = {\n pos: id.loc?.start,\n name: \"#\" + id.id.name,\n };\n } else if (id.type === \"StringLiteral\") {\n nameInfo = {\n pos: id.loc?.start,\n name: id.value,\n };\n }\n\n return nameInfo;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_t","require","_index","isIdentifier","_params","node","idNode","parentNode","print","typeParameters","nameInfo","_getFuncIdName","call","sourceIdentifierName","name","pos","token","_parameters","params","noLineTerminator","type","returnType","_noLineTerminator","parameters","endToken","exit","enterDelimited","trailingComma","shouldPrintTrailingComma","paramLength","length","i","_param","space","parameter","printJoin","decorators","optional","typeAnnotation","_methodHead","kind","key","word","async","generator","computed","undefined","_predicate","noLineTerminatorAfter","predicate","_functionHead","parent","format","preserveFormat","_endsWithInnerRaw","id","FunctionExpression","body","ArrowFunctionExpression","_shouldPrintArrowParamsParens","printInnerComments","tokenContext","TokenContext","arrowBody","_firstParam$leadingCo","_firstParam$trailingC","firstParam","leadingComments","trailingComments","tokenMap","loc","findMatching","arrowToken","start","line","retainLines","parentType","left","_id$loc","_id$loc2","identifierName","_id$loc3","_id$loc4","value"],"sources":["../../src/generators/methods.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\nimport { isIdentifier, type ParentMaps } from \"@babel/types\";\nimport { TokenContext } from \"../node/index.ts\";\n\ntype ParentsOf = ParentMaps[T[\"type\"]];\n\nexport function _params(\n this: Printer,\n node: t.Function | t.TSDeclareMethod | t.TSDeclareFunction,\n idNode: t.Expression | t.PrivateName,\n parentNode: ParentsOf,\n) {\n this.print(node.typeParameters);\n\n const nameInfo = _getFuncIdName.call(this, idNode, parentNode);\n if (nameInfo) {\n this.sourceIdentifierName(nameInfo.name, nameInfo.pos);\n }\n\n this.token(\"(\");\n this._parameters(node.params, \")\");\n\n const noLineTerminator = node.type === \"ArrowFunctionExpression\";\n this.print(node.returnType, noLineTerminator);\n\n this._noLineTerminator = noLineTerminator;\n}\n\nexport function _parameters(\n this: Printer,\n parameters: t.Function[\"params\"],\n endToken: string,\n) {\n const exit = this.enterDelimited();\n\n const trailingComma = this.shouldPrintTrailingComma(endToken);\n\n const paramLength = parameters.length;\n for (let i = 0; i < paramLength; i++) {\n this._param(parameters[i]);\n\n if (trailingComma || i < paramLength - 1) {\n this.token(\",\", null, i);\n this.space();\n }\n }\n\n this.token(endToken);\n exit();\n}\n\nexport function _param(\n this: Printer,\n parameter: t.Identifier | t.RestElement | t.Pattern | t.TSParameterProperty,\n) {\n this.printJoin(parameter.decorators);\n this.print(parameter);\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 ); // 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);\n this.token(\"]\");\n } else {\n this.print(key);\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(\n node,\n node.computed && node.key.type !== \"StringLiteral\" ? undefined : node.key,\n undefined,\n );\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, noLineTerminatorAfter);\n }\n}\n\nexport function _functionHead(\n this: Printer,\n node: t.FunctionDeclaration | t.FunctionExpression | t.TSDeclareFunction,\n parent: ParentsOf,\n) {\n if (node.async) {\n this.word(\"async\");\n if (!this.format.preserveFormat) {\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 }\n this.space();\n }\n this.word(\"function\");\n if (node.generator) {\n if (!this.format.preserveFormat) {\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 }\n this.token(\"*\");\n }\n\n this.space();\n if (node.id) {\n this.print(node.id);\n }\n\n this._params(node, node.id, parent);\n if (node.type !== \"TSDeclareFunction\") {\n this._predicate(node);\n }\n}\n\nexport function FunctionExpression(\n this: Printer,\n node: t.FunctionExpression,\n parent: ParentsOf,\n) {\n this._functionHead(node, parent);\n this.space();\n this.print(node.body);\n}\n\nexport { FunctionExpression as FunctionDeclaration };\n\nexport function ArrowFunctionExpression(\n this: Printer,\n node: t.ArrowFunctionExpression,\n parent: ParentsOf,\n) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n\n if (this._shouldPrintArrowParamsParens(node)) {\n this._params(node, undefined, parent);\n } else {\n this.print(node.params[0], true);\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.tokenContext |= TokenContext.arrowBody;\n this.print(node.body);\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.\nexport function _shouldPrintArrowParamsParens(\n this: Printer,\n node: t.ArrowFunctionExpression,\n): boolean {\n if (node.params.length !== 1) return true;\n\n if (node.typeParameters || node.returnType || node.predicate) {\n return true;\n }\n\n const firstParam = node.params[0];\n if (\n !isIdentifier(firstParam) ||\n firstParam.typeAnnotation ||\n firstParam.optional ||\n // Flow does not support `foo /*: string*/ => {};`\n firstParam.leadingComments?.length ||\n firstParam.trailingComments?.length\n ) {\n return true;\n }\n\n if (this.tokenMap) {\n if (node.loc == null) return true;\n if (this.tokenMap.findMatching(node, \"(\") !== null) return true;\n const arrowToken = this.tokenMap.findMatching(node, \"=>\");\n if (arrowToken?.loc == null) return true;\n return arrowToken.loc.start.line !== node.loc.start.line;\n }\n\n if (this.format.retainLines) return true;\n\n return false;\n}\n\nfunction _getFuncIdName(\n this: Printer,\n idNode: t.Expression | t.PrivateName,\n parent: ParentsOf,\n) {\n let id: t.Expression | t.PrivateName | t.LVal = idNode;\n\n if (!id && parent) {\n const parentType = parent.type;\n\n if (parentType === \"VariableDeclarator\") {\n id = parent.id;\n } else if (\n parentType === \"AssignmentExpression\" ||\n parentType === \"AssignmentPattern\"\n ) {\n id = parent.left;\n } else if (\n parentType === \"ObjectProperty\" ||\n parentType === \"ClassProperty\"\n ) {\n if (!parent.computed || parent.key.type === \"StringLiteral\") {\n id = parent.key;\n }\n } else if (\n parentType === \"ClassPrivateProperty\" ||\n parentType === \"ClassAccessorProperty\"\n ) {\n id = parent.key;\n }\n }\n\n if (!id) return;\n\n let nameInfo;\n\n if (id.type === \"Identifier\") {\n nameInfo = {\n pos: id.loc?.start,\n name: id.loc?.identifierName || id.name,\n };\n } else if (id.type === \"PrivateName\") {\n nameInfo = {\n pos: id.loc?.start,\n name: \"#\" + id.id.name,\n };\n } else if (id.type === \"StringLiteral\") {\n nameInfo = {\n pos: id.loc?.start,\n name: id.value,\n };\n }\n\n return nameInfo;\n}\n"],"mappings":"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","ignoreList":[]} \ 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 index a93f138..7431b3d 100644 --- a/node_modules/@babel/generator/lib/generators/modules.js +++ b/node_modules/@babel/generator/lib/generators/modules.js @@ -31,31 +31,31 @@ function ImportSpecifier(node) { this.word(node.importKind); this.space(); } - this.print(node.imported, node); + this.print(node.imported); if (node.local && node.local.name !== node.imported.name) { this.space(); this.word("as"); this.space(); - this.print(node.local, node); + this.print(node.local); } } function ImportDefaultSpecifier(node) { - this.print(node.local, node); + this.print(node.local); } function ExportDefaultSpecifier(node) { - this.print(node.exported, node); + this.print(node.exported); } function ExportSpecifier(node) { if (node.exportKind === "type") { this.word("type"); this.space(); } - this.print(node.local, node); + this.print(node.local); if (node.exported && node.local.name !== node.exported.name) { this.space(); this.word("as"); this.space(); - this.print(node.exported, node); + this.print(node.exported); } } function ExportNamespaceSpecifier(node) { @@ -63,10 +63,10 @@ function ExportNamespaceSpecifier(node) { this.space(); this.word("as"); this.space(); - this.print(node.exported, node); + this.print(node.exported); } let warningShown = false; -function _printAttributes(node) { +function _printAttributes(node, hasPreviousBrace) { const { importAttributesKeyword } = this.format; @@ -88,14 +88,17 @@ Please specify the "importAttributesKeyword" generator option, whose value can b this.word(useAssertKeyword ? "assert" : "with"); this.space(); if (!useAssertKeyword && importAttributesKeyword !== "with") { - this.printList(attributes || assertions, node); + this.printList(attributes || assertions); return; } - this.tokenChar(123); + const occurrenceCount = hasPreviousBrace ? 1 : 0; + this.token("{", null, occurrenceCount); this.space(); - this.printList(attributes || assertions, node); + this.printList(attributes || assertions, { + printTrailingSeparator: this.shouldPrintTrailingComma("}") + }); this.space(); - this.tokenChar(125); + this.token("}", null, occurrenceCount); } function ExportAllDeclaration(node) { var _node$attributes, _node$assertions; @@ -110,17 +113,17 @@ function ExportAllDeclaration(node) { this.word("from"); this.space(); if ((_node$attributes = node.attributes) != null && _node$attributes.length || (_node$assertions = node.assertions) != null && _node$assertions.length) { - this.print(node.source, node, true); + this.print(node.source, true); this.space(); - this._printAttributes(node); + this._printAttributes(node, false); } else { - this.print(node.source, node); + this.print(node.source); } this.semicolon(); } function maybePrintDecoratorsBeforeExport(printer, node) { if (isClassDeclaration(node.declaration) && printer._shouldPrintDecoratorsBeforeExport(node)) { - printer.printJoin(node.declaration.decorators, node); + printer.printJoin(node.declaration.decorators); } } function ExportNamedDeclaration(node) { @@ -129,7 +132,7 @@ function ExportNamedDeclaration(node) { this.space(); if (node.declaration) { const declar = node.declaration; - this.print(declar, node); + this.print(declar); if (!isStatement(declar)) this.semicolon(); } else { if (node.exportKind === "type") { @@ -142,7 +145,7 @@ function ExportNamedDeclaration(node) { const first = specifiers[0]; if (isExportDefaultSpecifier(first) || isExportNamespaceSpecifier(first)) { hasSpecial = true; - this.print(specifiers.shift(), node); + this.print(specifiers.shift()); if (specifiers.length) { this.tokenChar(44); this.space(); @@ -151,11 +154,15 @@ function ExportNamedDeclaration(node) { break; } } + let hasBrace = false; if (specifiers.length || !specifiers.length && !hasSpecial) { + hasBrace = true; this.tokenChar(123); if (specifiers.length) { this.space(); - this.printList(specifiers, node); + this.printList(specifiers, { + printTrailingSeparator: this.shouldPrintTrailingComma("}") + }); this.space(); } this.tokenChar(125); @@ -166,11 +173,11 @@ function ExportNamedDeclaration(node) { this.word("from"); this.space(); if ((_node$attributes2 = node.attributes) != null && _node$attributes2.length || (_node$assertions2 = node.assertions) != null && _node$assertions2.length) { - this.print(node.source, node, true); + this.print(node.source, true); this.space(); - this._printAttributes(node); + this._printAttributes(node, hasBrace); } else { - this.print(node.source, node); + this.print(node.source); } } this.semicolon(); @@ -185,7 +192,7 @@ function ExportDefaultDeclaration(node) { this.space(); this.tokenContext |= _index.TokenContext.exportDefault; const declar = node.declaration; - this.print(declar, node); + this.print(declar); if (!isStatement(declar)) this.semicolon(); } function ImportDeclaration(node) { @@ -211,7 +218,7 @@ function ImportDeclaration(node) { while (hasSpecifiers) { const first = specifiers[0]; if (isImportDefaultSpecifier(first) || isImportNamespaceSpecifier(first)) { - this.print(specifiers.shift(), node); + this.print(specifiers.shift()); if (specifiers.length) { this.tokenChar(44); this.space(); @@ -220,13 +227,18 @@ function ImportDeclaration(node) { break; } } + let hasBrace = false; if (specifiers.length) { + hasBrace = true; this.tokenChar(123); this.space(); - this.printList(specifiers, node); + this.printList(specifiers, { + printTrailingSeparator: this.shouldPrintTrailingComma("}") + }); this.space(); this.tokenChar(125); } else if (isTypeKind && !hasSpecifiers) { + hasBrace = true; this.tokenChar(123); this.tokenChar(125); } @@ -236,11 +248,11 @@ function ImportDeclaration(node) { this.space(); } if ((_node$attributes3 = node.attributes) != null && _node$attributes3.length || (_node$assertions3 = node.assertions) != null && _node$assertions3.length) { - this.print(node.source, node, true); + this.print(node.source, true); this.space(); - this._printAttributes(node); + this._printAttributes(node, hasBrace); } else { - this.print(node.source, node); + this.print(node.source); } this.semicolon(); } @@ -255,7 +267,7 @@ function ImportNamespaceSpecifier(node) { this.space(); this.word("as"); this.space(); - this.print(node.local, node); + this.print(node.local); } function ImportExpression(node) { this.word("import"); @@ -264,11 +276,11 @@ function ImportExpression(node) { this.word(node.phase); } this.tokenChar(40); - this.print(node.source, node); + this.print(node.source); if (node.options != null) { this.tokenChar(44); this.space(); - this.print(node.options, node); + this.print(node.options); } this.tokenChar(41); } diff --git a/node_modules/@babel/generator/lib/generators/modules.js.map b/node_modules/@babel/generator/lib/generators/modules.js.map index 3447f40..60c70f3 100644 --- a/node_modules/@babel/generator/lib/generators/modules.js.map +++ b/node_modules/@babel/generator/lib/generators/modules.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","_index","isClassDeclaration","isExportDefaultSpecifier","isExportNamespaceSpecifier","isImportDefaultSpecifier","isImportNamespaceSpecifier","isStatement","ImportSpecifier","node","importKind","word","space","print","imported","local","name","ImportDefaultSpecifier","ExportDefaultSpecifier","exported","ExportSpecifier","exportKind","ExportNamespaceSpecifier","token","warningShown","_printAttributes","importAttributesKeyword","format","attributes","assertions","console","warn","useAssertKeyword","printList","ExportAllDeclaration","_node$attributes","_node$assertions","length","source","semicolon","maybePrintDecoratorsBeforeExport","printer","declaration","_shouldPrintDecoratorsBeforeExport","printJoin","decorators","ExportNamedDeclaration","declar","specifiers","slice","hasSpecial","first","shift","_node$attributes2","_node$assertions2","ExportDefaultDeclaration","noIndentInnerCommentsHere","tokenContext","TokenContext","exportDefault","ImportDeclaration","_node$attributes3","_node$assertions3","isTypeKind","module","phase","hasSpecifiers","ImportAttribute","key","value","ImportNamespaceSpecifier","ImportExpression","options"],"sources":["../../src/generators/modules.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isClassDeclaration,\n isExportDefaultSpecifier,\n isExportNamespaceSpecifier,\n isImportDefaultSpecifier,\n isImportNamespaceSpecifier,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { TokenContext } from \"../node/index.ts\";\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\nlet warningShown = false;\n\nexport function _printAttributes(\n this: Printer,\n node: Extract,\n) {\n const { importAttributesKeyword } = this.format;\n const { attributes, assertions } = node;\n\n if (\n attributes &&\n !importAttributesKeyword &&\n // In the production build only show the warning once.\n // We want to show it per-usage locally for tests.\n (!process.env.IS_PUBLISH || !warningShown)\n ) {\n warningShown = true;\n console.warn(`\\\nYou are using import attributes, without specifying the desired output syntax.\nPlease specify the \"importAttributesKeyword\" generator option, whose value can be one of:\n - \"with\" : \\`import { a } from \"b\" with { type: \"json\" };\\`\n - \"assert\" : \\`import { a } from \"b\" assert { type: \"json\" };\\`\n - \"with-legacy\" : \\`import { a } from \"b\" with type: \"json\";\\`\n`);\n }\n\n const useAssertKeyword =\n importAttributesKeyword === \"assert\" ||\n (!importAttributesKeyword && assertions);\n\n this.word(useAssertKeyword ? \"assert\" : \"with\");\n this.space();\n\n if (!useAssertKeyword && importAttributesKeyword !== \"with\") {\n // with-legacy\n this.printList(attributes || assertions, node);\n return;\n }\n\n this.token(\"{\");\n this.space();\n this.printList(attributes || 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: attributes is not defined in DeclareExportAllDeclaration\n if (node.attributes?.length || node.assertions?.length) {\n this.print(node.source, node, true);\n this.space();\n // @ts-expect-error Fixme: attributes is not defined in DeclareExportAllDeclaration\n this._printAttributes(node);\n } else {\n this.print(node.source, node);\n }\n\n this.semicolon();\n}\n\nfunction maybePrintDecoratorsBeforeExport(\n printer: Printer,\n node: t.ExportNamedDeclaration | t.ExportDefaultDeclaration,\n) {\n if (\n isClassDeclaration(node.declaration) &&\n printer._shouldPrintDecoratorsBeforeExport(\n node as t.ExportNamedDeclaration & { declaration: t.ClassDeclaration },\n )\n ) {\n printer.printJoin(node.declaration.decorators, node);\n }\n}\n\nexport function ExportNamedDeclaration(\n this: Printer,\n node: t.ExportNamedDeclaration,\n) {\n maybePrintDecoratorsBeforeExport(this, node);\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.attributes?.length || node.assertions?.length) {\n this.print(node.source, node, true);\n this.space();\n this._printAttributes(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 maybePrintDecoratorsBeforeExport(this, node);\n\n this.word(\"export\");\n this.noIndentInnerCommentsHere();\n this.space();\n this.word(\"default\");\n this.space();\n this.tokenContext |= TokenContext.exportDefault;\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 } else if (node.phase) {\n this.noIndentInnerCommentsHere();\n this.word(node.phase);\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.attributes?.length || node.assertions?.length) {\n this.print(node.source, node, true);\n this.space();\n this._printAttributes(node);\n } else {\n this.print(node.source, node);\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\nexport function ImportExpression(this: Printer, node: t.ImportExpression) {\n this.word(\"import\");\n if (node.phase) {\n this.token(\".\");\n this.word(node.phase);\n }\n this.token(\"(\");\n this.print(node.source, node);\n if (node.options != null) {\n this.token(\",\");\n this.space();\n this.print(node.options, node);\n }\n this.token(\")\");\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_t","require","_index","isClassDeclaration","isExportDefaultSpecifier","isExportNamespaceSpecifier","isImportDefaultSpecifier","isImportNamespaceSpecifier","isStatement","ImportSpecifier","node","importKind","word","space","print","imported","local","name","ImportDefaultSpecifier","ExportDefaultSpecifier","exported","ExportSpecifier","exportKind","ExportNamespaceSpecifier","token","warningShown","_printAttributes","hasPreviousBrace","importAttributesKeyword","format","attributes","assertions","console","warn","useAssertKeyword","printList","occurrenceCount","printTrailingSeparator","shouldPrintTrailingComma","ExportAllDeclaration","_node$attributes","_node$assertions","length","source","semicolon","maybePrintDecoratorsBeforeExport","printer","declaration","_shouldPrintDecoratorsBeforeExport","printJoin","decorators","ExportNamedDeclaration","declar","specifiers","slice","hasSpecial","first","shift","hasBrace","_node$attributes2","_node$assertions2","ExportDefaultDeclaration","noIndentInnerCommentsHere","tokenContext","TokenContext","exportDefault","ImportDeclaration","_node$attributes3","_node$assertions3","isTypeKind","module","phase","hasSpecifiers","ImportAttribute","key","value","ImportNamespaceSpecifier","ImportExpression","options"],"sources":["../../src/generators/modules.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isClassDeclaration,\n isExportDefaultSpecifier,\n isExportNamespaceSpecifier,\n isImportDefaultSpecifier,\n isImportNamespaceSpecifier,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { TokenContext } from \"../node/index.ts\";\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);\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);\n }\n}\n\nexport function ImportDefaultSpecifier(\n this: Printer,\n node: t.ImportDefaultSpecifier,\n) {\n this.print(node.local);\n}\n\nexport function ExportDefaultSpecifier(\n this: Printer,\n node: t.ExportDefaultSpecifier,\n) {\n this.print(node.exported);\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);\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);\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);\n}\n\nlet warningShown = false;\n\nexport function _printAttributes(\n this: Printer,\n node: Extract,\n hasPreviousBrace: boolean,\n) {\n const { importAttributesKeyword } = this.format;\n const { attributes, assertions } = node;\n\n if (\n !process.env.BABEL_8_BREAKING &&\n attributes &&\n !importAttributesKeyword &&\n // In the production build only show the warning once.\n // We want to show it per-usage locally for tests.\n (!process.env.IS_PUBLISH || !warningShown)\n ) {\n warningShown = true;\n console.warn(`\\\nYou are using import attributes, without specifying the desired output syntax.\nPlease specify the \"importAttributesKeyword\" generator option, whose value can be one of:\n - \"with\" : \\`import { a } from \"b\" with { type: \"json\" };\\`\n - \"assert\" : \\`import { a } from \"b\" assert { type: \"json\" };\\`\n - \"with-legacy\" : \\`import { a } from \"b\" with type: \"json\";\\`\n`);\n }\n\n const useAssertKeyword =\n importAttributesKeyword === \"assert\" ||\n (!importAttributesKeyword && assertions);\n\n this.word(useAssertKeyword ? \"assert\" : \"with\");\n this.space();\n\n if (\n !process.env.BABEL_8_BREAKING &&\n !useAssertKeyword &&\n importAttributesKeyword !== \"with\"\n ) {\n // with-legacy\n this.printList(attributes || assertions);\n return;\n }\n\n const occurrenceCount = hasPreviousBrace ? 1 : 0;\n\n this.token(\"{\", null, occurrenceCount);\n this.space();\n this.printList(attributes || assertions, {\n printTrailingSeparator: this.shouldPrintTrailingComma(\"}\"),\n });\n this.space();\n this.token(\"}\", null, occurrenceCount);\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 if (node.attributes?.length || node.assertions?.length) {\n this.print(node.source, true);\n this.space();\n this._printAttributes(node, false);\n } else {\n this.print(node.source);\n }\n\n this.semicolon();\n}\n\nfunction maybePrintDecoratorsBeforeExport(\n printer: Printer,\n node: t.ExportNamedDeclaration | t.ExportDefaultDeclaration,\n) {\n if (\n isClassDeclaration(node.declaration) &&\n printer._shouldPrintDecoratorsBeforeExport(\n node as t.ExportNamedDeclaration & { declaration: t.ClassDeclaration },\n )\n ) {\n printer.printJoin(node.declaration.decorators);\n }\n}\n\nexport function ExportNamedDeclaration(\n this: Printer,\n node: t.ExportNamedDeclaration,\n) {\n maybePrintDecoratorsBeforeExport(this, node);\n\n this.word(\"export\");\n this.space();\n if (node.declaration) {\n const declar = node.declaration;\n this.print(declar);\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());\n if (specifiers.length) {\n this.token(\",\");\n this.space();\n }\n } else {\n break;\n }\n }\n\n let hasBrace = false;\n if (specifiers.length || (!specifiers.length && !hasSpecial)) {\n hasBrace = true;\n this.token(\"{\");\n if (specifiers.length) {\n this.space();\n this.printList(specifiers, {\n printTrailingSeparator: this.shouldPrintTrailingComma(\"}\"),\n });\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.attributes?.length || node.assertions?.length) {\n this.print(node.source, true);\n this.space();\n this._printAttributes(node, hasBrace);\n } else {\n this.print(node.source);\n }\n }\n\n this.semicolon();\n }\n}\n\nexport function ExportDefaultDeclaration(\n this: Printer,\n node: t.ExportDefaultDeclaration,\n) {\n maybePrintDecoratorsBeforeExport(this, node);\n\n this.word(\"export\");\n this.noIndentInnerCommentsHere();\n this.space();\n this.word(\"default\");\n this.space();\n this.tokenContext |= TokenContext.exportDefault;\n const declar = node.declaration;\n this.print(declar);\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 } else if (node.phase) {\n this.noIndentInnerCommentsHere();\n this.word(node.phase);\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());\n if (specifiers.length) {\n this.token(\",\");\n this.space();\n }\n } else {\n break;\n }\n }\n\n let hasBrace = false;\n if (specifiers.length) {\n hasBrace = true;\n this.token(\"{\");\n this.space();\n this.printList(specifiers, {\n printTrailingSeparator: this.shouldPrintTrailingComma(\"}\"),\n });\n this.space();\n this.token(\"}\");\n } else if (isTypeKind && !hasSpecifiers) {\n hasBrace = true;\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.attributes?.length || node.assertions?.length) {\n this.print(node.source, true);\n this.space();\n this._printAttributes(node, hasBrace);\n } else {\n this.print(node.source);\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);\n}\n\nexport function ImportExpression(this: Printer, node: t.ImportExpression) {\n this.word(\"import\");\n if (node.phase) {\n this.token(\".\");\n this.word(node.phase);\n }\n this.token(\"(\");\n this.print(node.source);\n if (node.options != null) {\n this.token(\",\");\n this.space();\n this.print(node.options);\n }\n this.token(\")\");\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AACA,IAAAA,EAAA,GAAAC,OAAA;AASA,IAAAC,MAAA,GAAAD,OAAA;AAAgD;EAR9CE,kBAAkB;EAClBC,wBAAwB;EACxBC,0BAA0B;EAC1BC,wBAAwB;EACxBC,0BAA0B;EAC1BC;AAAW,IAAAR,EAAA;AAKN,SAASS,eAAeA,CAAgBC,IAAuB,EAAE;EACtE,IAAIA,IAAI,CAACC,UAAU,KAAK,MAAM,IAAID,IAAI,CAACC,UAAU,KAAK,QAAQ,EAAE;IAC9D,IAAI,CAACC,IAAI,CAACF,IAAI,CAACC,UAAU,CAAC;IAC1B,IAAI,CAACE,KAAK,CAAC,CAAC;EACd;EAEA,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACK,QAAQ,CAAC;EAEzB,IAAIL,IAAI,CAACM,KAAK,IAAIN,IAAI,CAACM,KAAK,CAACC,IAAI,KAAKP,IAAI,CAACK,QAAQ,CAACE,IAAI,EAAE;IACxD,IAAI,CAACJ,KAAK,CAAC,CAAC;IACZ,IAAI,CAACD,IAAI,CAAC,IAAI,CAAC;IACf,IAAI,CAACC,KAAK,CAAC,CAAC;IACZ,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACM,KAAK,CAAC;EACxB;AACF;AAEO,SAASE,sBAAsBA,CAEpCR,IAA8B,EAC9B;EACA,IAAI,CAACI,KAAK,CAACJ,IAAI,CAACM,KAAK,CAAC;AACxB;AAEO,SAASG,sBAAsBA,CAEpCT,IAA8B,EAC9B;EACA,IAAI,CAACI,KAAK,CAACJ,IAAI,CAACU,QAAQ,CAAC;AAC3B;AAEO,SAASC,eAAeA,CAAgBX,IAAuB,EAAE;EACtE,IAAIA,IAAI,CAACY,UAAU,KAAK,MAAM,EAAE;IAC9B,IAAI,CAACV,IAAI,CAAC,MAAM,CAAC;IACjB,IAAI,CAACC,KAAK,CAAC,CAAC;EACd;EAEA,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACM,KAAK,CAAC;EAEtB,IAAIN,IAAI,CAACU,QAAQ,IAAIV,IAAI,CAACM,KAAK,CAACC,IAAI,KAAKP,IAAI,CAACU,QAAQ,CAACH,IAAI,EAAE;IAC3D,IAAI,CAACJ,KAAK,CAAC,CAAC;IACZ,IAAI,CAACD,IAAI,CAAC,IAAI,CAAC;IACf,IAAI,CAACC,KAAK,CAAC,CAAC;IACZ,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACU,QAAQ,CAAC;EAC3B;AACF;AAEO,SAASG,wBAAwBA,CAEtCb,IAAgC,EAChC;EACA,IAAI,CAACc,SAAK,GAAI,CAAC;EACf,IAAI,CAACX,KAAK,CAAC,CAAC;EACZ,IAAI,CAACD,IAAI,CAAC,IAAI,CAAC;EACf,IAAI,CAACC,KAAK,CAAC,CAAC;EACZ,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACU,QAAQ,CAAC;AAC3B;AAEA,IAAIK,YAAY,GAAG,KAAK;AAEjB,SAASC,gBAAgBA,CAE9BhB,IAA2D,EAC3DiB,gBAAyB,EACzB;EACA,MAAM;IAAEC;EAAwB,CAAC,GAAG,IAAI,CAACC,MAAM;EAC/C,MAAM;IAAEC,UAAU;IAAEC;EAAW,CAAC,GAAGrB,IAAI;EAEvC,IAEEoB,UAAU,IACV,CAACF,uBAAuB,IAGI,CAACH,YAAY,EACzC;IACAA,YAAY,GAAG,IAAI;IACnBO,OAAO,CAACC,IAAI,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC;EACA;EAEA,MAAMC,gBAAgB,GACpBN,uBAAuB,KAAK,QAAQ,IACnC,CAACA,uBAAuB,IAAIG,UAAW;EAE1C,IAAI,CAACnB,IAAI,CAACsB,gBAAgB,GAAG,QAAQ,GAAG,MAAM,CAAC;EAC/C,IAAI,CAACrB,KAAK,CAAC,CAAC;EAEZ,IAEE,CAACqB,gBAAgB,IACjBN,uBAAuB,KAAK,MAAM,EAClC;IAEA,IAAI,CAACO,SAAS,CAACL,UAAU,IAAIC,UAAU,CAAC;IACxC;EACF;EAEA,MAAMK,eAAe,GAAGT,gBAAgB,GAAG,CAAC,GAAG,CAAC;EAEhD,IAAI,CAACH,KAAK,CAAC,GAAG,EAAE,IAAI,EAAEY,eAAe,CAAC;EACtC,IAAI,CAACvB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACsB,SAAS,CAACL,UAAU,IAAIC,UAAU,EAAE;IACvCM,sBAAsB,EAAE,IAAI,CAACC,wBAAwB,CAAC,GAAG;EAC3D,CAAC,CAAC;EACF,IAAI,CAACzB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACW,KAAK,CAAC,GAAG,EAAE,IAAI,EAAEY,eAAe,CAAC;AACxC;AAEO,SAASG,oBAAoBA,CAElC7B,IAA4D,EAC5D;EAAA,IAAA8B,gBAAA,EAAAC,gBAAA;EACA,IAAI,CAAC7B,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACC,KAAK,CAAC,CAAC;EACZ,IAAIH,IAAI,CAACY,UAAU,KAAK,MAAM,EAAE;IAC9B,IAAI,CAACV,IAAI,CAAC,MAAM,CAAC;IACjB,IAAI,CAACC,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACW,SAAK,GAAI,CAAC;EACf,IAAI,CAACX,KAAK,CAAC,CAAC;EACZ,IAAI,CAACD,IAAI,CAAC,MAAM,CAAC;EACjB,IAAI,CAACC,KAAK,CAAC,CAAC;EACZ,IAAI,CAAA2B,gBAAA,GAAA9B,IAAI,CAACoB,UAAU,aAAfU,gBAAA,CAAiBE,MAAM,KAAAD,gBAAA,GAAI/B,IAAI,CAACqB,UAAU,aAAfU,gBAAA,CAAiBC,MAAM,EAAE;IACtD,IAAI,CAAC5B,KAAK,CAACJ,IAAI,CAACiC,MAAM,EAAE,IAAI,CAAC;IAC7B,IAAI,CAAC9B,KAAK,CAAC,CAAC;IACZ,IAAI,CAACa,gBAAgB,CAAChB,IAAI,EAAE,KAAK,CAAC;EACpC,CAAC,MAAM;IACL,IAAI,CAACI,KAAK,CAACJ,IAAI,CAACiC,MAAM,CAAC;EACzB;EAEA,IAAI,CAACC,SAAS,CAAC,CAAC;AAClB;AAEA,SAASC,gCAAgCA,CACvCC,OAAgB,EAChBpC,IAA2D,EAC3D;EACA,IACEP,kBAAkB,CAACO,IAAI,CAACqC,WAAW,CAAC,IACpCD,OAAO,CAACE,kCAAkC,CACxCtC,IACF,CAAC,EACD;IACAoC,OAAO,CAACG,SAAS,CAACvC,IAAI,CAACqC,WAAW,CAACG,UAAU,CAAC;EAChD;AACF;AAEO,SAASC,sBAAsBA,CAEpCzC,IAA8B,EAC9B;EACAmC,gCAAgC,CAAC,IAAI,EAAEnC,IAAI,CAAC;EAE5C,IAAI,CAACE,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACC,KAAK,CAAC,CAAC;EACZ,IAAIH,IAAI,CAACqC,WAAW,EAAE;IACpB,MAAMK,MAAM,GAAG1C,IAAI,CAACqC,WAAW;IAC/B,IAAI,CAACjC,KAAK,CAACsC,MAAM,CAAC;IAClB,IAAI,CAAC5C,WAAW,CAAC4C,MAAM,CAAC,EAAE,IAAI,CAACR,SAAS,CAAC,CAAC;EAC5C,CAAC,MAAM;IACL,IAAIlC,IAAI,CAACY,UAAU,KAAK,MAAM,EAAE;MAC9B,IAAI,CAACV,IAAI,CAAC,MAAM,CAAC;MACjB,IAAI,CAACC,KAAK,CAAC,CAAC;IACd;IAEA,MAAMwC,UAAU,GAAG3C,IAAI,CAAC2C,UAAU,CAACC,KAAK,CAAC,CAAC,CAAC;IAG3C,IAAIC,UAAU,GAAG,KAAK;IACtB,SAAS;MACP,MAAMC,KAAK,GAAGH,UAAU,CAAC,CAAC,CAAC;MAC3B,IACEjD,wBAAwB,CAACoD,KAAK,CAAC,IAC/BnD,0BAA0B,CAACmD,KAAK,CAAC,EACjC;QACAD,UAAU,GAAG,IAAI;QACjB,IAAI,CAACzC,KAAK,CAACuC,UAAU,CAACI,KAAK,CAAC,CAAC,CAAC;QAC9B,IAAIJ,UAAU,CAACX,MAAM,EAAE;UACrB,IAAI,CAAClB,SAAK,GAAI,CAAC;UACf,IAAI,CAACX,KAAK,CAAC,CAAC;QACd;MACF,CAAC,MAAM;QACL;MACF;IACF;IAEA,IAAI6C,QAAQ,GAAG,KAAK;IACpB,IAAIL,UAAU,CAACX,MAAM,IAAK,CAACW,UAAU,CAACX,MAAM,IAAI,CAACa,UAAW,EAAE;MAC5DG,QAAQ,GAAG,IAAI;MACf,IAAI,CAAClC,SAAK,IAAI,CAAC;MACf,IAAI6B,UAAU,CAACX,MAAM,EAAE;QACrB,IAAI,CAAC7B,KAAK,CAAC,CAAC;QACZ,IAAI,CAACsB,SAAS,CAACkB,UAAU,EAAE;UACzBhB,sBAAsB,EAAE,IAAI,CAACC,wBAAwB,CAAC,GAAG;QAC3D,CAAC,CAAC;QACF,IAAI,CAACzB,KAAK,CAAC,CAAC;MACd;MACA,IAAI,CAACW,SAAK,IAAI,CAAC;IACjB;IAEA,IAAId,IAAI,CAACiC,MAAM,EAAE;MAAA,IAAAgB,iBAAA,EAAAC,iBAAA;MACf,IAAI,CAAC/C,KAAK,CAAC,CAAC;MACZ,IAAI,CAACD,IAAI,CAAC,MAAM,CAAC;MACjB,IAAI,CAACC,KAAK,CAAC,CAAC;MACZ,IAAI,CAAA8C,iBAAA,GAAAjD,IAAI,CAACoB,UAAU,aAAf6B,iBAAA,CAAiBjB,MAAM,KAAAkB,iBAAA,GAAIlD,IAAI,CAACqB,UAAU,aAAf6B,iBAAA,CAAiBlB,MAAM,EAAE;QACtD,IAAI,CAAC5B,KAAK,CAACJ,IAAI,CAACiC,MAAM,EAAE,IAAI,CAAC;QAC7B,IAAI,CAAC9B,KAAK,CAAC,CAAC;QACZ,IAAI,CAACa,gBAAgB,CAAChB,IAAI,EAAEgD,QAAQ,CAAC;MACvC,CAAC,MAAM;QACL,IAAI,CAAC5C,KAAK,CAACJ,IAAI,CAACiC,MAAM,CAAC;MACzB;IACF;IAEA,IAAI,CAACC,SAAS,CAAC,CAAC;EAClB;AACF;AAEO,SAASiB,wBAAwBA,CAEtCnD,IAAgC,EAChC;EACAmC,gCAAgC,CAAC,IAAI,EAAEnC,IAAI,CAAC;EAE5C,IAAI,CAACE,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACkD,yBAAyB,CAAC,CAAC;EAChC,IAAI,CAACjD,KAAK,CAAC,CAAC;EACZ,IAAI,CAACD,IAAI,CAAC,SAAS,CAAC;EACpB,IAAI,CAACC,KAAK,CAAC,CAAC;EACZ,IAAI,CAACkD,YAAY,IAAIC,mBAAY,CAACC,aAAa;EAC/C,MAAMb,MAAM,GAAG1C,IAAI,CAACqC,WAAW;EAC/B,IAAI,CAACjC,KAAK,CAACsC,MAAM,CAAC;EAClB,IAAI,CAAC5C,WAAW,CAAC4C,MAAM,CAAC,EAAE,IAAI,CAACR,SAAS,CAAC,CAAC;AAC5C;AAEO,SAASsB,iBAAiBA,CAAgBxD,IAAyB,EAAE;EAAA,IAAAyD,iBAAA,EAAAC,iBAAA;EAC1E,IAAI,CAACxD,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACC,KAAK,CAAC,CAAC;EAEZ,MAAMwD,UAAU,GAAG3D,IAAI,CAACC,UAAU,KAAK,MAAM,IAAID,IAAI,CAACC,UAAU,KAAK,QAAQ;EAC7E,IAAI0D,UAAU,EAAE;IACd,IAAI,CAACP,yBAAyB,CAAC,CAAC;IAChC,IAAI,CAAClD,IAAI,CAACF,IAAI,CAACC,UAAU,CAAC;IAC1B,IAAI,CAACE,KAAK,CAAC,CAAC;EACd,CAAC,MAAM,IAAIH,IAAI,CAAC4D,MAAM,EAAE;IACtB,IAAI,CAACR,yBAAyB,CAAC,CAAC;IAChC,IAAI,CAAClD,IAAI,CAAC,QAAQ,CAAC;IACnB,IAAI,CAACC,KAAK,CAAC,CAAC;EACd,CAAC,MAAM,IAAIH,IAAI,CAAC6D,KAAK,EAAE;IACrB,IAAI,CAACT,yBAAyB,CAAC,CAAC;IAChC,IAAI,CAAClD,IAAI,CAACF,IAAI,CAAC6D,KAAK,CAAC;IACrB,IAAI,CAAC1D,KAAK,CAAC,CAAC;EACd;EAEA,MAAMwC,UAAU,GAAG3C,IAAI,CAAC2C,UAAU,CAACC,KAAK,CAAC,CAAC,CAAC;EAC3C,MAAMkB,aAAa,GAAG,CAAC,CAACnB,UAAU,CAACX,MAAM;EAGzC,OAAO8B,aAAa,EAAE;IACpB,MAAMhB,KAAK,GAAGH,UAAU,CAAC,CAAC,CAAC;IAC3B,IAAI/C,wBAAwB,CAACkD,KAAK,CAAC,IAAIjD,0BAA0B,CAACiD,KAAK,CAAC,EAAE;MACxE,IAAI,CAAC1C,KAAK,CAACuC,UAAU,CAACI,KAAK,CAAC,CAAC,CAAC;MAC9B,IAAIJ,UAAU,CAACX,MAAM,EAAE;QACrB,IAAI,CAAClB,SAAK,GAAI,CAAC;QACf,IAAI,CAACX,KAAK,CAAC,CAAC;MACd;IACF,CAAC,MAAM;MACL;IACF;EACF;EAEA,IAAI6C,QAAQ,GAAG,KAAK;EACpB,IAAIL,UAAU,CAACX,MAAM,EAAE;IACrBgB,QAAQ,GAAG,IAAI;IACf,IAAI,CAAClC,SAAK,IAAI,CAAC;IACf,IAAI,CAACX,KAAK,CAAC,CAAC;IACZ,IAAI,CAACsB,SAAS,CAACkB,UAAU,EAAE;MACzBhB,sBAAsB,EAAE,IAAI,CAACC,wBAAwB,CAAC,GAAG;IAC3D,CAAC,CAAC;IACF,IAAI,CAACzB,KAAK,CAAC,CAAC;IACZ,IAAI,CAACW,SAAK,IAAI,CAAC;EACjB,CAAC,MAAM,IAAI6C,UAAU,IAAI,CAACG,aAAa,EAAE;IACvCd,QAAQ,GAAG,IAAI;IACf,IAAI,CAAClC,SAAK,IAAI,CAAC;IACf,IAAI,CAACA,SAAK,IAAI,CAAC;EACjB;EAEA,IAAIgD,aAAa,IAAIH,UAAU,EAAE;IAC/B,IAAI,CAACxD,KAAK,CAAC,CAAC;IACZ,IAAI,CAACD,IAAI,CAAC,MAAM,CAAC;IACjB,IAAI,CAACC,KAAK,CAAC,CAAC;EACd;EAEA,IAAI,CAAAsD,iBAAA,GAAAzD,IAAI,CAACoB,UAAU,aAAfqC,iBAAA,CAAiBzB,MAAM,KAAA0B,iBAAA,GAAI1D,IAAI,CAACqB,UAAU,aAAfqC,iBAAA,CAAiB1B,MAAM,EAAE;IACtD,IAAI,CAAC5B,KAAK,CAACJ,IAAI,CAACiC,MAAM,EAAE,IAAI,CAAC;IAC7B,IAAI,CAAC9B,KAAK,CAAC,CAAC;IACZ,IAAI,CAACa,gBAAgB,CAAChB,IAAI,EAAEgD,QAAQ,CAAC;EACvC,CAAC,MAAM;IACL,IAAI,CAAC5C,KAAK,CAACJ,IAAI,CAACiC,MAAM,CAAC;EACzB;EAEA,IAAI,CAACC,SAAS,CAAC,CAAC;AAClB;AAEO,SAAS6B,eAAeA,CAAgB/D,IAAuB,EAAE;EACtE,IAAI,CAACI,KAAK,CAACJ,IAAI,CAACgE,GAAG,CAAC;EACpB,IAAI,CAAClD,SAAK,GAAI,CAAC;EACf,IAAI,CAACX,KAAK,CAAC,CAAC;EACZ,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACiE,KAAK,CAAC;AACxB;AAEO,SAASC,wBAAwBA,CAEtClE,IAAgC,EAChC;EACA,IAAI,CAACc,SAAK,GAAI,CAAC;EACf,IAAI,CAACX,KAAK,CAAC,CAAC;EACZ,IAAI,CAACD,IAAI,CAAC,IAAI,CAAC;EACf,IAAI,CAACC,KAAK,CAAC,CAAC;EACZ,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACM,KAAK,CAAC;AACxB;AAEO,SAAS6D,gBAAgBA,CAAgBnE,IAAwB,EAAE;EACxE,IAAI,CAACE,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAIF,IAAI,CAAC6D,KAAK,EAAE;IACd,IAAI,CAAC/C,SAAK,GAAI,CAAC;IACf,IAAI,CAACZ,IAAI,CAACF,IAAI,CAAC6D,KAAK,CAAC;EACvB;EACA,IAAI,CAAC/C,SAAK,GAAI,CAAC;EACf,IAAI,CAACV,KAAK,CAACJ,IAAI,CAACiC,MAAM,CAAC;EACvB,IAAIjC,IAAI,CAACoE,OAAO,IAAI,IAAI,EAAE;IACxB,IAAI,CAACtD,SAAK,GAAI,CAAC;IACf,IAAI,CAACX,KAAK,CAAC,CAAC;IACZ,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACoE,OAAO,CAAC;EAC1B;EACA,IAAI,CAACtD,SAAK,GAAI,CAAC;AACjB","ignoreList":[]} \ 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 index 246d887..fcef23d 100644 --- a/node_modules/@babel/generator/lib/generators/statements.js +++ b/node_modules/@babel/generator/lib/generators/statements.js @@ -33,7 +33,7 @@ function WithStatement(node) { this.word("with"); this.space(); this.tokenChar(40); - this.print(node.object, node); + this.print(node.object); this.tokenChar(41); this.printBlock(node); } @@ -41,7 +41,7 @@ function IfStatement(node) { this.word("if"); this.space(); this.tokenChar(40); - this.print(node.test, node); + this.print(node.test); this.tokenChar(41); this.space(); const needsBlock = node.alternate && isIfStatement(getLastStatement(node.consequent)); @@ -50,7 +50,7 @@ function IfStatement(node) { this.newline(); this.indent(); } - this.printAndIndentOnComments(node.consequent, node); + this.printAndIndentOnComments(node.consequent); if (needsBlock) { this.dedent(); this.newline(); @@ -60,7 +60,7 @@ function IfStatement(node) { if (this.endsWith(125)) this.space(); this.word("else"); this.space(); - this.printAndIndentOnComments(node.alternate, node); + this.printAndIndentOnComments(node.alternate); } } function getLastStatement(statement) { @@ -77,20 +77,20 @@ function ForStatement(node) { this.space(); this.tokenChar(40); { - const exit = this.enterForStatementInit(true); + const exit = this.enterForStatementInit(); this.tokenContext |= _index.TokenContext.forHead; - this.print(node.init, node); + this.print(node.init); exit(); } this.tokenChar(59); if (node.test) { this.space(); - this.print(node.test, node); + this.print(node.test); } - this.tokenChar(59); + this.token(";", false, 1); if (node.update) { this.space(); - this.print(node.update, node); + this.print(node.update); } this.tokenChar(41); this.printBlock(node); @@ -99,7 +99,7 @@ function WhileStatement(node) { this.word("while"); this.space(); this.tokenChar(40); - this.print(node.test, node); + this.print(node.test); this.tokenChar(41); this.printBlock(node); } @@ -114,15 +114,15 @@ function ForXStatement(node) { this.noIndentInnerCommentsHere(); this.tokenChar(40); { - const exit = isForOf ? null : this.enterForStatementInit(true); + const exit = isForOf ? null : this.enterForStatementInit(); this.tokenContext |= isForOf ? _index.TokenContext.forOfHead : _index.TokenContext.forInHead; - this.print(node.left, node); + this.print(node.left); exit == null || exit(); } this.space(); this.word(isForOf ? "of" : "in"); this.space(); - this.print(node.right, node); + this.print(node.right); this.tokenChar(41); this.printBlock(node); } @@ -131,59 +131,59 @@ const ForOfStatement = exports.ForOfStatement = ForXStatement; function DoWhileStatement(node) { this.word("do"); this.space(); - this.print(node.body, node); + this.print(node.body); this.space(); this.word("while"); this.space(); this.tokenChar(40); - this.print(node.test, node); + this.print(node.test); this.tokenChar(41); this.semicolon(); } -function printStatementAfterKeyword(printer, node, parent, isLabel) { +function printStatementAfterKeyword(printer, node) { if (node) { printer.space(); - printer.printTerminatorless(node, parent, isLabel); + printer.printTerminatorless(node); } printer.semicolon(); } function BreakStatement(node) { this.word("break"); - printStatementAfterKeyword(this, node.label, node, true); + printStatementAfterKeyword(this, node.label); } function ContinueStatement(node) { this.word("continue"); - printStatementAfterKeyword(this, node.label, node, true); + printStatementAfterKeyword(this, node.label); } function ReturnStatement(node) { this.word("return"); - printStatementAfterKeyword(this, node.argument, node, false); + printStatementAfterKeyword(this, node.argument); } function ThrowStatement(node) { this.word("throw"); - printStatementAfterKeyword(this, node.argument, node, false); + printStatementAfterKeyword(this, node.argument); } function LabeledStatement(node) { - this.print(node.label, node); + this.print(node.label); this.tokenChar(58); this.space(); - this.print(node.body, node); + this.print(node.body); } function TryStatement(node) { this.word("try"); this.space(); - this.print(node.block, node); + this.print(node.block); this.space(); if (node.handlers) { - this.print(node.handlers[0], node); + this.print(node.handlers[0]); } else { - this.print(node.handler, node); + this.print(node.handler); } if (node.finalizer) { this.space(); this.word("finally"); this.space(); - this.print(node.finalizer, node); + this.print(node.finalizer); } } function CatchClause(node) { @@ -191,22 +191,22 @@ function CatchClause(node) { this.space(); if (node.param) { this.tokenChar(40); - this.print(node.param, node); - this.print(node.param.typeAnnotation, node); + this.print(node.param); + this.print(node.param.typeAnnotation); this.tokenChar(41); this.space(); } - this.print(node.body, node); + this.print(node.body); } function SwitchStatement(node) { this.word("switch"); this.space(); this.tokenChar(40); - this.print(node.discriminant, node); + this.print(node.discriminant); this.tokenChar(41); this.space(); this.tokenChar(123); - this.printSequence(node.cases, node, { + this.printSequence(node.cases, { indent: true, addNewlines(leading, cas) { if (!leading && node.cases[node.cases.length - 1] === cas) return -1; @@ -218,7 +218,7 @@ function SwitchCase(node) { if (node.test) { this.word("case"); this.space(); - this.print(node.test, node); + this.print(node.test); this.tokenChar(58); } else { this.word("default"); @@ -226,7 +226,7 @@ function SwitchCase(node) { } if (node.consequent.length) { this.newline(); - this.printSequence(node.consequent, node, { + this.printSequence(node.consequent, { indent: true }); } @@ -259,9 +259,9 @@ function VariableDeclaration(node, parent) { } } } - this.printList(node.declarations, node, { - separator: hasInits ? function () { - this.tokenChar(44); + this.printList(node.declarations, { + separator: hasInits ? function (occurrenceCount) { + this.token(",", false, occurrenceCount); this.newline(); } : undefined, indent: node.declarations.length > 1 ? true : false @@ -276,14 +276,14 @@ function VariableDeclaration(node, parent) { this.semicolon(); } function VariableDeclarator(node) { - this.print(node.id, node); + this.print(node.id); if (node.definite) this.tokenChar(33); - this.print(node.id.typeAnnotation, node); + this.print(node.id.typeAnnotation); if (node.init) { this.space(); this.tokenChar(61); this.space(); - this.print(node.init, node); + this.print(node.init); } } diff --git a/node_modules/@babel/generator/lib/generators/statements.js.map b/node_modules/@babel/generator/lib/generators/statements.js.map index b5fa744..726c5fc 100644 --- a/node_modules/@babel/generator/lib/generators/statements.js.map +++ b/node_modules/@babel/generator/lib/generators/statements.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","_index","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","exit","enterForStatementInit","tokenContext","TokenContext","forHead","init","update","WhileStatement","ForXStatement","isForOf","type","await","noIndentInnerCommentsHere","forOfHead","forInHead","left","right","ForInStatement","exports","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","rightBrace","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.ts\";\nimport {\n isFor,\n isForStatement,\n isIfStatement,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\nimport { TokenContext } from \"../node/index.ts\";\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 {\n const exit = this.enterForStatementInit(true);\n this.tokenContext |= TokenContext.forHead;\n this.print(node.init, node);\n exit();\n }\n\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 {\n const exit = isForOf ? null : this.enterForStatementInit(true);\n this.tokenContext |= isForOf\n ? TokenContext.forOfHead\n : TokenContext.forInHead;\n this.print(node.left, node);\n exit?.();\n }\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.rightBrace(node);\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 if (kind === \"await using\") {\n this.word(\"await\");\n this.space();\n this.word(\"using\", true);\n } else {\n this.word(kind, kind === \"using\");\n }\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":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_t","require","_index","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","exit","enterForStatementInit","tokenContext","TokenContext","forHead","init","update","WhileStatement","ForXStatement","isForOf","type","await","noIndentInnerCommentsHere","forOfHead","forInHead","left","right","ForInStatement","exports","ForOfStatement","DoWhileStatement","semicolon","printStatementAfterKeyword","printer","printTerminatorless","BreakStatement","label","ContinueStatement","ReturnStatement","argument","ThrowStatement","LabeledStatement","TryStatement","block","handlers","handler","finalizer","CatchClause","param","typeAnnotation","SwitchStatement","discriminant","printSequence","cases","addNewlines","leading","cas","length","rightBrace","SwitchCase","DebuggerStatement","VariableDeclaration","parent","declare","kind","hasInits","declar","declarations","printList","separator","occurrenceCount","undefined","VariableDeclarator","id","definite"],"sources":["../../src/generators/statements.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isFor,\n isForStatement,\n isIfStatement,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\nimport { TokenContext } from \"../node/index.ts\";\n\nexport function WithStatement(this: Printer, node: t.WithStatement) {\n this.word(\"with\");\n this.space();\n this.token(\"(\");\n this.print(node.object);\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);\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);\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);\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 {\n const exit = this.enterForStatementInit();\n this.tokenContext |= TokenContext.forHead;\n this.print(node.init);\n exit();\n }\n\n this.token(\";\");\n\n if (node.test) {\n this.space();\n this.print(node.test);\n }\n this.token(\";\", false, 1);\n\n if (node.update) {\n this.space();\n this.print(node.update);\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);\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 {\n const exit = isForOf ? null : this.enterForStatementInit();\n this.tokenContext |= isForOf\n ? TokenContext.forOfHead\n : TokenContext.forInHead;\n this.print(node.left);\n exit?.();\n }\n this.space();\n this.word(isForOf ? \"of\" : \"in\");\n this.space();\n this.print(node.right);\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);\n this.space();\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test);\n this.token(\")\");\n this.semicolon();\n}\n\nfunction printStatementAfterKeyword(printer: Printer, node: t.Node) {\n if (node) {\n printer.space();\n printer.printTerminatorless(node);\n }\n\n printer.semicolon();\n}\n\nexport function BreakStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"break\");\n printStatementAfterKeyword(this, node.label);\n}\n\nexport function ContinueStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"continue\");\n printStatementAfterKeyword(this, node.label);\n}\n\nexport function ReturnStatement(this: Printer, node: t.ReturnStatement) {\n this.word(\"return\");\n printStatementAfterKeyword(this, node.argument);\n}\n\nexport function ThrowStatement(this: Printer, node: t.ThrowStatement) {\n this.word(\"throw\");\n printStatementAfterKeyword(this, node.argument);\n}\n\nexport function LabeledStatement(this: Printer, node: t.LabeledStatement) {\n this.print(node.label);\n this.token(\":\");\n this.space();\n this.print(node.body);\n}\n\nexport function TryStatement(this: Printer, node: t.TryStatement) {\n this.word(\"try\");\n this.space();\n this.print(node.block);\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]);\n } else {\n this.print(node.handler);\n }\n\n if (node.finalizer) {\n this.space();\n this.word(\"finally\");\n this.space();\n this.print(node.finalizer);\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);\n this.print(node.param.typeAnnotation);\n this.token(\")\");\n this.space();\n }\n this.print(node.body);\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);\n this.token(\")\");\n this.space();\n this.token(\"{\");\n\n this.printSequence(node.cases, {\n indent: true,\n addNewlines(leading, cas) {\n if (!leading && node.cases[node.cases.length - 1] === cas) return -1;\n },\n });\n\n this.rightBrace(node);\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);\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, { 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 if (kind === \"await using\") {\n this.word(\"await\");\n this.space();\n this.word(\"using\", true);\n } else {\n this.word(kind, kind === \"using\");\n }\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, {\n separator: hasInits\n ? function (this: Printer, occurrenceCount: number) {\n this.token(\",\", false, occurrenceCount);\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);\n if (node.definite) this.token(\"!\"); // TS\n // @ts-ignore(Babel 7 vs Babel 8) Property 'typeAnnotation' does not exist on type 'MemberExpression'.\n this.print(node.id.typeAnnotation);\n if (node.init) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.init);\n }\n}\n"],"mappings":"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","ignoreList":[]} \ 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 index a5f02d4..120c966 100644 --- a/node_modules/@babel/generator/lib/generators/template-literals.js +++ b/node_modules/@babel/generator/lib/generators/template-literals.js @@ -7,9 +7,9 @@ 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); + this.print(node.tag); + this.print(node.typeParameters); + this.print(node.quasi); } function TemplateElement() { throw new Error("TemplateElement printing is handled in TemplateLiteral"); @@ -21,8 +21,12 @@ function TemplateLiteral(node) { partRaw += quasis[i].value.raw; if (i + 1 < quasis.length) { this.token(partRaw + "${", true); - this.print(node.expressions[i], node); + this.print(node.expressions[i]); partRaw = "}"; + if (this.tokenMap) { + const token = this.tokenMap.findMatching(node, "}", i); + if (token) this._catchUpTo(token.loc.start); + } } } this.token(partRaw + "`", true); diff --git a/node_modules/@babel/generator/lib/generators/template-literals.js.map b/node_modules/@babel/generator/lib/generators/template-literals.js.map index cac4884..58bb78c 100644 --- a/node_modules/@babel/generator/lib/generators/template-literals.js.map +++ b/node_modules/@babel/generator/lib/generators/template-literals.js.map @@ -1 +1 @@ -{"version":3,"names":["TaggedTemplateExpression","node","print","tag","typeParameters","quasi","TemplateElement","Error","TemplateLiteral","quasis","partRaw","i","length","value","raw","token","expressions"],"sources":["../../src/generators/template-literals.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\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(this: Printer) {\n throw new Error(\"TemplateElement printing is handled in TemplateLiteral\");\n}\n\nexport function TemplateLiteral(this: Printer, node: t.TemplateLiteral) {\n const quasis = node.quasis;\n\n let partRaw = \"`\";\n\n for (let i = 0; i < quasis.length; i++) {\n partRaw += quasis[i].value.raw;\n\n if (i + 1 < quasis.length) {\n this.token(partRaw + \"${\", true);\n this.print(node.expressions[i], node);\n partRaw = \"}\";\n }\n }\n\n this.token(partRaw + \"`\", true);\n}\n"],"mappings":";;;;;;;;AAGO,SAASA,wBAAwBA,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,eAAeA,CAAA,EAAgB;EAC7C,MAAM,IAAIC,KAAK,CAAC,wDAAwD,CAAC;AAC3E;AAEO,SAASC,eAAeA,CAAgBP,IAAuB,EAAE;EACtE,MAAMQ,MAAM,GAAGR,IAAI,CAACQ,MAAM;EAE1B,IAAIC,OAAO,GAAG,GAAG;EAEjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACtCD,OAAO,IAAID,MAAM,CAACE,CAAC,CAAC,CAACE,KAAK,CAACC,GAAG;IAE9B,IAAIH,CAAC,GAAG,CAAC,GAAGF,MAAM,CAACG,MAAM,EAAE;MACzB,IAAI,CAACG,KAAK,CAACL,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC;MAChC,IAAI,CAACR,KAAK,CAACD,IAAI,CAACe,WAAW,CAACL,CAAC,CAAC,EAAEV,IAAI,CAAC;MACrCS,OAAO,GAAG,GAAG;IACf;EACF;EAEA,IAAI,CAACK,KAAK,CAACL,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC;AACjC","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["TaggedTemplateExpression","node","print","tag","typeParameters","quasi","TemplateElement","Error","TemplateLiteral","quasis","partRaw","i","length","value","raw","token","expressions","tokenMap","findMatching","_catchUpTo","loc","start"],"sources":["../../src/generators/template-literals.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function TaggedTemplateExpression(\n this: Printer,\n node: t.TaggedTemplateExpression,\n) {\n this.print(node.tag);\n this.print(node.typeParameters); // TS\n this.print(node.quasi);\n}\n\nexport function TemplateElement(this: Printer) {\n throw new Error(\"TemplateElement printing is handled in TemplateLiteral\");\n}\n\nexport function TemplateLiteral(this: Printer, node: t.TemplateLiteral) {\n const quasis = node.quasis;\n\n let partRaw = \"`\";\n\n for (let i = 0; i < quasis.length; i++) {\n partRaw += quasis[i].value.raw;\n\n if (i + 1 < quasis.length) {\n this.token(partRaw + \"${\", true);\n this.print(node.expressions[i]);\n partRaw = \"}\";\n\n // In Babel 7 we have indivirual tokens for ${ and }, so the automatic\n // catchup logic does not work. Manually look for those tokens.\n if (!process.env.BABEL_8_BREAKING && this.tokenMap) {\n const token = this.tokenMap.findMatching(node, \"}\", i);\n if (token) this._catchUpTo(token.loc.start);\n }\n }\n }\n\n this.token(partRaw + \"`\", true);\n}\n"],"mappings":";;;;;;;;AAGO,SAASA,wBAAwBA,CAEtCC,IAAgC,EAChC;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,CAAC;EACpB,IAAI,CAACD,KAAK,CAACD,IAAI,CAACG,cAAc,CAAC;EAC/B,IAAI,CAACF,KAAK,CAACD,IAAI,CAACI,KAAK,CAAC;AACxB;AAEO,SAASC,eAAeA,CAAA,EAAgB;EAC7C,MAAM,IAAIC,KAAK,CAAC,wDAAwD,CAAC;AAC3E;AAEO,SAASC,eAAeA,CAAgBP,IAAuB,EAAE;EACtE,MAAMQ,MAAM,GAAGR,IAAI,CAACQ,MAAM;EAE1B,IAAIC,OAAO,GAAG,GAAG;EAEjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACtCD,OAAO,IAAID,MAAM,CAACE,CAAC,CAAC,CAACE,KAAK,CAACC,GAAG;IAE9B,IAAIH,CAAC,GAAG,CAAC,GAAGF,MAAM,CAACG,MAAM,EAAE;MACzB,IAAI,CAACG,KAAK,CAACL,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC;MAChC,IAAI,CAACR,KAAK,CAACD,IAAI,CAACe,WAAW,CAACL,CAAC,CAAC,CAAC;MAC/BD,OAAO,GAAG,GAAG;MAIb,IAAqC,IAAI,CAACO,QAAQ,EAAE;QAClD,MAAMF,KAAK,GAAG,IAAI,CAACE,QAAQ,CAACC,YAAY,CAACjB,IAAI,EAAE,GAAG,EAAEU,CAAC,CAAC;QACtD,IAAII,KAAK,EAAE,IAAI,CAACI,UAAU,CAACJ,KAAK,CAACK,GAAG,CAACC,KAAK,CAAC;MAC7C;IACF;EACF;EAEA,IAAI,CAACN,KAAK,CAACL,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC;AACjC","ignoreList":[]} \ 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 index 7b9eb1d..9d8a043 100644 --- a/node_modules/@babel/generator/lib/generators/types.js +++ b/node_modules/@babel/generator/lib/generators/types.js @@ -23,33 +23,50 @@ exports.SpreadElement = exports.RestElement = RestElement; exports.StringLiteral = StringLiteral; exports.TopicReference = TopicReference; exports.TupleExpression = TupleExpression; +exports._getRawIdentifier = _getRawIdentifier; var _t = require("@babel/types"); var _jsesc = require("jsesc"); const { isAssignmentPattern, isIdentifier } = _t; +let lastRawIdentNode = null; +let lastRawIdentResult = ""; +function _getRawIdentifier(node) { + if (node === lastRawIdentNode) return lastRawIdentResult; + lastRawIdentNode = node; + const { + name + } = node; + const token = this.tokenMap.find(node, tok => tok.value === name); + if (token) { + lastRawIdentResult = this._originalCode.slice(token.start, token.end); + return lastRawIdentResult; + } + return lastRawIdentResult = node.name; +} function Identifier(node) { var _node$loc; this.sourceIdentifierName(((_node$loc = node.loc) == null ? void 0 : _node$loc.identifierName) || node.name); - this.word(node.name); + this.word(this.tokenMap ? this._getRawIdentifier(node) : node.name); } function ArgumentPlaceholder() { this.tokenChar(63); } function RestElement(node) { this.token("..."); - this.print(node.argument, node); + this.print(node.argument); } function ObjectExpression(node) { const props = node.properties; this.tokenChar(123); if (props.length) { - const exit = this.enterForStatementInit(false); + const exit = this.enterDelimited(); this.space(); - this.printList(props, node, { + this.printList(props, { indent: true, - statement: true + statement: true, + printTrailingSeparator: this.shouldPrintTrailingComma("}") }); this.space(); exit(); @@ -58,44 +75,46 @@ function ObjectExpression(node) { this.tokenChar(125); } function ObjectMethod(node) { - this.printJoin(node.decorators, node); + this.printJoin(node.decorators); this._methodHead(node); this.space(); - this.print(node.body, node); + this.print(node.body); } function ObjectProperty(node) { - this.printJoin(node.decorators, node); + this.printJoin(node.decorators); if (node.computed) { this.tokenChar(91); - this.print(node.key, node); + this.print(node.key); this.tokenChar(93); } else { if (isAssignmentPattern(node.value) && isIdentifier(node.key) && node.key.name === node.value.left.name) { - this.print(node.value, node); + this.print(node.value); return; } - this.print(node.key, node); + this.print(node.key); 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); + this.print(node.value); } function ArrayExpression(node) { const elems = node.elements; const len = elems.length; this.tokenChar(91); - const exit = this.enterForStatementInit(false); + const exit = this.enterDelimited(); 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.print(elem); + if (i < len - 1 || this.shouldPrintTrailingComma("]")) { + this.token(",", false, i); + } } else { - this.tokenChar(44); + this.token(",", false, i); } } exit(); @@ -119,9 +138,10 @@ function RecordExpression(node) { this.token(startToken); if (props.length) { this.space(); - this.printList(props, node, { + this.printList(props, { indent: true, - statement: true + statement: true, + printTrailingSeparator: this.shouldPrintTrailingComma(endToken) }); this.space(); } @@ -148,8 +168,10 @@ function TupleExpression(node) { const elem = elems[i]; if (elem) { if (i > 0) this.space(); - this.print(elem, node); - if (i < len - 1) this.tokenChar(44); + this.print(elem); + if (i < len - 1 || this.shouldPrintTrailingComma(endToken)) { + this.token(",", false, i); + } } } this.token(endToken); @@ -217,10 +239,10 @@ function TopicReference() { } } function PipelineTopicExpression(node) { - this.print(node.expression, node); + this.print(node.expression); } function PipelineBareFunction(node) { - this.print(node.callee, node); + this.print(node.callee); } function PipelinePrimaryTopicReference() { this.tokenChar(35); diff --git a/node_modules/@babel/generator/lib/generators/types.js.map b/node_modules/@babel/generator/lib/generators/types.js.map index 28eb752..a02376d 100644 --- a/node_modules/@babel/generator/lib/generators/types.js.map +++ b/node_modules/@babel/generator/lib/generators/types.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","_jsesc","isAssignmentPattern","isIdentifier","Identifier","node","_node$loc","sourceIdentifierName","loc","identifierName","name","word","ArgumentPlaceholder","token","RestElement","print","argument","ObjectExpression","props","properties","length","exit","enterForStatementInit","space","printList","indent","statement","sourceWithOffset","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","str","numbers","number","jsesc","minified","StringLiteral","undefined","val","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.ts\";\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.sourceIdentifierName(node.loc?.identifierName || node.name);\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 const exit = this.enterForStatementInit(false);\n this.space();\n this.printList(props, node, { indent: true, statement: true });\n this.space();\n exit();\n }\n\n this.sourceWithOffset(\"end\", node.loc, -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 const exit = this.enterForStatementInit(false);\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 exit();\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 (process.env.BABEL_8_BREAKING) {\n startToken = \"#{\";\n endToken = \"}\";\n } else {\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\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 (process.env.BABEL_8_BREAKING) {\n startToken = \"#[\";\n endToken = \"]\";\n } else {\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\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 const str = value + \"\";\n if (opts.numbers) {\n this.number(jsesc(value, opts), value);\n } else if (raw == null) {\n this.number(str, value); // normalize\n } else if (this.format.minified) {\n this.number(raw.length < str.length ? raw : str, value);\n } else {\n this.number(raw, value);\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(node.value, this.format.jsescOption);\n\n 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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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_t","require","_jsesc","isAssignmentPattern","isIdentifier","lastRawIdentNode","lastRawIdentResult","_getRawIdentifier","node","name","token","tokenMap","find","tok","value","_originalCode","slice","start","end","Identifier","_node$loc","sourceIdentifierName","loc","identifierName","word","ArgumentPlaceholder","RestElement","print","argument","ObjectExpression","props","properties","length","exit","enterDelimited","space","printList","indent","statement","printTrailingSeparator","shouldPrintTrailingComma","sourceWithOffset","ObjectMethod","printJoin","decorators","_methodHead","body","ObjectProperty","computed","key","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","str","numbers","number","jsesc","minified","StringLiteral","undefined","val","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.ts\";\nimport { isAssignmentPattern, isIdentifier } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport jsesc from \"jsesc\";\n\nlet lastRawIdentNode: t.Identifier | null = null;\nlet lastRawIdentResult: string = \"\";\nexport function _getRawIdentifier(this: Printer, node: t.Identifier) {\n if (node === lastRawIdentNode) return lastRawIdentResult;\n lastRawIdentNode = node;\n\n const { name } = node;\n const token = this.tokenMap.find(node, tok => tok.value === name);\n if (token) {\n lastRawIdentResult = this._originalCode.slice(token.start, token.end);\n return lastRawIdentResult;\n }\n return (lastRawIdentResult = node.name);\n}\n\nexport function Identifier(this: Printer, node: t.Identifier) {\n this.sourceIdentifierName(node.loc?.identifierName || node.name);\n\n this.word(this.tokenMap ? this._getRawIdentifier(node) : 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);\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 const exit = this.enterDelimited();\n this.space();\n this.printList(props, {\n indent: true,\n statement: true,\n printTrailingSeparator: this.shouldPrintTrailingComma(\"}\"),\n });\n this.space();\n exit();\n }\n\n this.sourceWithOffset(\"end\", node.loc, -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);\n this._methodHead(node);\n this.space();\n this.print(node.body);\n}\n\nexport function ObjectProperty(this: Printer, node: t.ObjectProperty) {\n this.printJoin(node.decorators);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key);\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);\n return;\n }\n\n this.print(node.key);\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);\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 const exit = this.enterDelimited();\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);\n if (i < len - 1 || this.shouldPrintTrailingComma(\"]\")) {\n this.token(\",\", false, i);\n }\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(\",\", false, i);\n }\n }\n\n exit();\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 (process.env.BABEL_8_BREAKING) {\n startToken = \"#{\";\n endToken = \"}\";\n } else {\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\n this.token(startToken);\n\n if (props.length) {\n this.space();\n this.printList(props, {\n indent: true,\n statement: true,\n printTrailingSeparator: this.shouldPrintTrailingComma(endToken),\n });\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 (process.env.BABEL_8_BREAKING) {\n startToken = \"#[\";\n endToken = \"]\";\n } else {\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\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);\n if (i < len - 1 || this.shouldPrintTrailingComma(endToken)) {\n this.token(\",\", false, i);\n }\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 const str = value + \"\";\n if (opts.numbers) {\n this.number(jsesc(value, opts), value);\n } else if (raw == null) {\n this.number(str, value); // normalize\n } else if (this.format.minified) {\n this.number(raw.length < str.length ? raw : str, value);\n } else {\n this.number(raw, value);\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(node.value, this.format.jsescOption);\n\n 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\n// TODO: Remove in Babel 8\nexport function DecimalLiteral(this: Printer, node: any) {\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);\n}\n\nexport function PipelineBareFunction(\n this: Printer,\n node: t.PipelineBareFunction,\n) {\n this.print(node.callee);\n}\n\nexport function PipelinePrimaryTopicReference(this: Printer) {\n this.token(\"#\");\n}\n"],"mappings":"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","ignoreList":[]} \ 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 index 5d57e58..557016f 100644 --- a/node_modules/@babel/generator/lib/generators/typescript.js +++ b/node_modules/@babel/generator/lib/generators/typescript.js @@ -9,6 +9,7 @@ exports.TSSatisfiesExpression = exports.TSAsExpression = TSTypeExpression; exports.TSBigIntKeyword = TSBigIntKeyword; exports.TSBooleanKeyword = TSBooleanKeyword; exports.TSCallSignatureDeclaration = TSCallSignatureDeclaration; +exports.TSInterfaceHeritage = exports.TSExpressionWithTypeArguments = exports.TSClassImplements = TSClassImplements; exports.TSConditionalType = TSConditionalType; exports.TSConstructSignatureDeclaration = TSConstructSignatureDeclaration; exports.TSConstructorType = TSConstructorType; @@ -17,7 +18,6 @@ exports.TSDeclareMethod = TSDeclareMethod; exports.TSEnumDeclaration = TSEnumDeclaration; exports.TSEnumMember = TSEnumMember; exports.TSExportAssignment = TSExportAssignment; -exports.TSExpressionWithTypeArguments = TSExpressionWithTypeArguments; exports.TSExternalModuleReference = TSExternalModuleReference; exports.TSFunctionType = TSFunctionType; exports.TSImportEqualsDeclaration = TSImportEqualsDeclaration; @@ -70,19 +70,22 @@ exports.tsPrintClassMemberModifiers = tsPrintClassMemberModifiers; exports.tsPrintFunctionOrConstructorType = tsPrintFunctionOrConstructorType; exports.tsPrintPropertyOrMethodName = tsPrintPropertyOrMethodName; exports.tsPrintSignatureDeclarationBase = tsPrintSignatureDeclarationBase; -exports.tsPrintTypeLiteralOrInterfaceBody = tsPrintTypeLiteralOrInterfaceBody; -function TSTypeAnnotation(node) { - this.tokenChar(58); +function TSTypeAnnotation(node, parent) { + this.token((parent.type === "TSFunctionType" || parent.type === "TSConstructorType") && parent.typeAnnotation === node ? "=>" : ":"); this.space(); if (node.optional) this.tokenChar(63); - this.print(node.typeAnnotation, node); + this.print(node.typeAnnotation); } function TSTypeParameterInstantiation(node, parent) { this.tokenChar(60); - this.printList(node.params, node, {}); - if (parent.type === "ArrowFunctionExpression" && node.params.length === 1) { - this.tokenChar(44); + let printTrailingSeparator = parent.type === "ArrowFunctionExpression" && node.params.length === 1; + if (this.tokenMap && node.start != null && node.end != null) { + printTrailingSeparator && (printTrailingSeparator = !!this.tokenMap.find(node, t => this.tokenMap.matchesOriginal(t, ","))); + printTrailingSeparator || (printTrailingSeparator = this.shouldPrintTrailingComma(">")); } + this.printList(node.params, { + printTrailingSeparator + }); this.tokenChar(62); } function TSTypeParameter(node) { @@ -99,13 +102,13 @@ function TSTypeParameter(node) { this.space(); this.word("extends"); this.space(); - this.print(node.constraint, node); + this.print(node.constraint); } if (node.default) { this.space(); this.tokenChar(61); this.space(); - this.print(node.default, node); + this.print(node.default); } } function TSParameterProperty(node) { @@ -125,26 +128,37 @@ function TSDeclareFunction(node, parent) { this.space(); } this._functionHead(node, parent); - this.tokenChar(59); + this.semicolon(); } function TSDeclareMethod(node) { this._classMethodHead(node); - this.tokenChar(59); + this.semicolon(); } function TSQualifiedName(node) { - this.print(node.left, node); + this.print(node.left); this.tokenChar(46); - this.print(node.right, node); + this.print(node.right); } function TSCallSignatureDeclaration(node) { this.tsPrintSignatureDeclarationBase(node); - this.tokenChar(59); + maybePrintTrailingCommaOrSemicolon(this, node); +} +function maybePrintTrailingCommaOrSemicolon(printer, node) { + if (!printer.tokenMap || !node.start || !node.end) { + printer.semicolon(); + return; + } + if (printer.tokenMap.endMatches(node, ",")) { + printer.token(","); + } else if (printer.tokenMap.endMatches(node, ";")) { + printer.semicolon(); + } } function TSConstructSignatureDeclaration(node) { this.word("new"); this.space(); this.tsPrintSignatureDeclarationBase(node); - this.tokenChar(59); + maybePrintTrailingCommaOrSemicolon(this, node); } function TSPropertySignature(node) { const { @@ -155,14 +169,14 @@ function TSPropertySignature(node) { this.space(); } this.tsPrintPropertyOrMethodName(node); - this.print(node.typeAnnotation, node); - this.tokenChar(59); + this.print(node.typeAnnotation); + maybePrintTrailingCommaOrSemicolon(this, node); } function tsPrintPropertyOrMethodName(node) { if (node.computed) { this.tokenChar(91); } - this.print(node.key, node); + this.print(node.key); if (node.computed) { this.tokenChar(93); } @@ -180,7 +194,7 @@ function TSMethodSignature(node) { } this.tsPrintPropertyOrMethodName(node); this.tsPrintSignatureDeclarationBase(node); - this.tokenChar(59); + maybePrintTrailingCommaOrSemicolon(this, node); } function TSIndexSignature(node) { const { @@ -196,10 +210,9 @@ function TSIndexSignature(node) { this.space(); } this.tokenChar(91); - this._parameters(node.parameters, node); - this.tokenChar(93); - this.print(node.typeAnnotation, node); - this.tokenChar(59); + this._parameters(node.parameters, "]"); + this.print(node.typeAnnotation); + maybePrintTrailingCommaOrSemicolon(this, node); } function TSAnyKeyword() { this.word("any"); @@ -260,19 +273,16 @@ function tsPrintFunctionOrConstructorType(node) { typeParameters } = node; const parameters = node.parameters; - this.print(typeParameters, node); + this.print(typeParameters); this.tokenChar(40); - this._parameters(parameters, node); - this.tokenChar(41); - this.space(); - this.token("=>"); + this._parameters(parameters, ")"); this.space(); const returnType = node.typeAnnotation; - this.print(returnType.typeAnnotation, node); + this.print(returnType); } function TSTypeReference(node) { - this.print(node.typeName, node, true); - this.print(node.typeParameters, node, true); + this.print(node.typeName, !!node.typeParameters); + this.print(node.typeParameters); } function TSTypePredicate(node) { if (node.asserts) { @@ -292,51 +302,41 @@ function TSTypeQuery(node) { this.space(); this.print(node.exprName); if (node.typeParameters) { - this.print(node.typeParameters, node); + this.print(node.typeParameters); } } 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.rightBrace(node); + printBraced(this, node, () => this.printJoin(node.members, { + indent: true, + statement: true + })); } function TSArrayType(node) { - this.print(node.elementType, node, true); - this.token("[]"); + this.print(node.elementType, true); + this.tokenChar(91); + this.tokenChar(93); } function TSTupleType(node) { this.tokenChar(91); - this.printList(node.elementTypes, node); + this.printList(node.elementTypes, { + printTrailingSeparator: this.shouldPrintTrailingComma("]") + }); this.tokenChar(93); } function TSOptionalType(node) { - this.print(node.typeAnnotation, node); + this.print(node.typeAnnotation); this.tokenChar(63); } function TSRestType(node) { this.token("..."); - this.print(node.typeAnnotation, node); + this.print(node.typeAnnotation); } function TSNamedTupleMember(node) { - this.print(node.label, node); + this.print(node.label); if (node.optional) this.tokenChar(63); this.tokenChar(58); this.space(); - this.print(node.elementType, node); + this.print(node.elementType); } function TSUnionType(node) { tsPrintUnionOrIntersectionType(this, node, "|"); @@ -345,10 +345,16 @@ function TSIntersectionType(node) { tsPrintUnionOrIntersectionType(this, node, "&"); } function tsPrintUnionOrIntersectionType(printer, node, sep) { - printer.printJoin(node.types, node, { - separator() { + var _printer$tokenMap; + let hasLeadingToken = 0; + if ((_printer$tokenMap = printer.tokenMap) != null && _printer$tokenMap.startMatches(node, sep)) { + hasLeadingToken = 1; + printer.token(sep); + } + printer.printJoin(node.types, { + separator(i) { this.space(); - this.token(sep); + this.token(sep, null, i + hasLeadingToken); this.space(); } }); @@ -369,24 +375,23 @@ function TSConditionalType(node) { this.print(node.falseType); } function TSInferType(node) { - this.token("infer"); - this.space(); + this.word("infer"); this.print(node.typeParameter); } function TSParenthesizedType(node) { this.tokenChar(40); - this.print(node.typeAnnotation, node); + this.print(node.typeAnnotation); this.tokenChar(41); } function TSTypeOperator(node) { this.word(node.operator); this.space(); - this.print(node.typeAnnotation, node); + this.print(node.typeAnnotation); } function TSIndexedAccessType(node) { - this.print(node.objectType, node, true); + this.print(node.objectType, true); this.tokenChar(91); - this.print(node.indexType, node); + this.print(node.indexType); this.tokenChar(93); } function TSMappedType(node) { @@ -394,10 +399,10 @@ function TSMappedType(node) { nameType, optional, readonly, - typeParameter, typeAnnotation } = node; this.tokenChar(123); + const exit = this.enterDelimited(); this.space(); if (readonly) { tokenIfPlusMinus(this, readonly); @@ -405,16 +410,20 @@ function TSMappedType(node) { this.space(); } this.tokenChar(91); - this.word(typeParameter.name); + { + this.word(node.typeParameter.name); + } this.space(); this.word("in"); this.space(); - this.print(typeParameter.constraint, typeParameter); + { + this.print(node.typeParameter.constraint); + } if (nameType) { this.space(); this.word("as"); this.space(); - this.print(nameType, node); + this.print(nameType); } this.tokenChar(93); if (optional) { @@ -424,9 +433,10 @@ function TSMappedType(node) { if (typeAnnotation) { this.tokenChar(58); this.space(); - this.print(typeAnnotation, node); + this.print(typeAnnotation); } this.space(); + exit(); this.tokenChar(125); } function tokenIfPlusMinus(self, tok) { @@ -435,11 +445,11 @@ function tokenIfPlusMinus(self, tok) { } } function TSLiteralType(node) { - this.print(node.literal, node); + this.print(node.literal); } -function TSExpressionWithTypeArguments(node) { - this.print(node.expression, node); - this.print(node.typeParameters, node); +function TSClassImplements(node) { + this.print(node.expression); + this.print(node.typeParameters); } function TSInterfaceDeclaration(node) { const { @@ -455,19 +465,22 @@ function TSInterfaceDeclaration(node) { } this.word("interface"); this.space(); - this.print(id, node); - this.print(typeParameters, node); + this.print(id); + this.print(typeParameters); if (extendz != null && extendz.length) { this.space(); this.word("extends"); this.space(); - this.printList(extendz, node); + this.printList(extendz); } this.space(); - this.print(body, node); + this.print(body); } function TSInterfaceBody(node) { - this.tsPrintTypeLiteralOrInterfaceBody(node.body, node); + printBraced(this, node, () => this.printJoin(node.body, { + indent: true, + statement: true + })); } function TSTypeAliasDeclaration(node) { const { @@ -482,27 +495,25 @@ function TSTypeAliasDeclaration(node) { } this.word("type"); this.space(); - this.print(id, node); - this.print(typeParameters, node); + this.print(id); + this.print(typeParameters); this.space(); this.tokenChar(61); this.space(); - this.print(typeAnnotation, node); - this.tokenChar(59); + this.print(typeAnnotation); + this.semicolon(); } 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.print(expression, true); this.space(); this.word(type === "TSAsExpression" ? "as" : "satisfies"); this.space(); - this.print(typeAnnotation, node); + this.print(typeAnnotation); } function TSTypeAssertion(node) { const { @@ -510,14 +521,14 @@ function TSTypeAssertion(node) { expression } = node; this.tokenChar(60); - this.print(typeAnnotation, node); + this.print(typeAnnotation); this.tokenChar(62); this.space(); - this.print(expression, node); + this.print(expression); } function TSInstantiationExpression(node) { - this.print(node.expression, node); - this.print(node.typeParameters, node); + this.print(node.expression); + this.print(node.typeParameters); } function TSEnumDeclaration(node) { const { @@ -536,53 +547,62 @@ function TSEnumDeclaration(node) { } this.word("enum"); this.space(); - this.print(id, node); + this.print(id); this.space(); - tsPrintBraced(this, members, node); + printBraced(this, node, () => { + var _this$shouldPrintTrai; + return this.printList(members, { + indent: true, + statement: true, + printTrailingSeparator: (_this$shouldPrintTrai = this.shouldPrintTrailingComma("}")) != null ? _this$shouldPrintTrai : true + }); + }); } function TSEnumMember(node) { const { id, initializer } = node; - this.print(id, node); + this.print(id); if (initializer) { this.space(); this.tokenChar(61); this.space(); - this.print(initializer, node); + this.print(initializer); } - this.tokenChar(44); } function TSModuleDeclaration(node) { const { declare, - id + id, + kind } = node; if (declare) { this.word("declare"); this.space(); } if (!node.global) { - this.word(id.type === "Identifier" ? "namespace" : "module"); + this.word(kind != null ? kind : id.type === "Identifier" ? "namespace" : "module"); this.space(); } - this.print(id, node); + this.print(id); if (!node.body) { - this.tokenChar(59); + this.semicolon(); return; } let body = node.body; while (body.type === "TSModuleDeclaration") { this.tokenChar(46); - this.print(body.id, body); + this.print(body.id); body = body.body; } this.space(); - this.print(body, node); + this.print(body); } function TSModuleBlock(node) { - tsPrintBraced(this, node.body, node); + printBraced(this, node, () => this.printSequence(node.body, { + indent: true + })); } function TSImportType(node) { const { @@ -592,14 +612,14 @@ function TSImportType(node) { } = node; this.word("import"); this.tokenChar(40); - this.print(argument, node); + this.print(argument); this.tokenChar(41); if (qualifier) { this.tokenChar(46); - this.print(qualifier, node); + this.print(qualifier); } if (typeParameters) { - this.print(typeParameters, node); + this.print(typeParameters); } } function TSImportEqualsDeclaration(node) { @@ -614,20 +634,20 @@ function TSImportEqualsDeclaration(node) { } this.word("import"); this.space(); - this.print(id, node); + this.print(id); this.space(); this.tokenChar(61); this.space(); - this.print(moduleReference, node); - this.tokenChar(59); + this.print(moduleReference); + this.semicolon(); } function TSExternalModuleReference(node) { this.token("require("); - this.print(node.expression, node); + this.print(node.expression); this.tokenChar(41); } function TSNonNullExpression(node) { - this.print(node.expression, node); + this.print(node.expression); this.tokenChar(33); } function TSExportAssignment(node) { @@ -635,8 +655,8 @@ function TSExportAssignment(node) { this.space(); this.tokenChar(61); this.space(); - this.print(node.expression, node); - this.tokenChar(59); + this.print(node.expression); + this.semicolon(); } function TSNamespaceExportDeclaration(node) { this.word("export"); @@ -645,45 +665,53 @@ function TSNamespaceExportDeclaration(node) { this.space(); this.word("namespace"); this.space(); - this.print(node.id, node); + this.print(node.id); + this.semicolon(); } function tsPrintSignatureDeclarationBase(node) { const { typeParameters } = node; const parameters = node.parameters; - this.print(typeParameters, node); + this.print(typeParameters); this.tokenChar(40); - this._parameters(parameters, node); - this.tokenChar(41); + this._parameters(parameters, ")"); const returnType = node.typeAnnotation; - this.print(returnType, node); + this.print(returnType); } 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(); - } + printModifiersList(this, node, [isField && node.declare && "declare", node.accessibility]); if (node.static) { this.word("static"); this.space(); } - if (node.override) { - this.word("override"); - this.space(); + printModifiersList(this, node, [node.override && "override", node.abstract && "abstract", isField && node.readonly && "readonly"]); +} +function printBraced(printer, node, cb) { + printer.token("{"); + const exit = printer.enterDelimited(); + cb(); + exit(); + printer.rightBrace(node); +} +function printModifiersList(printer, node, modifiers) { + var _printer$tokenMap2; + const modifiersSet = new Set(); + for (const modifier of modifiers) { + if (modifier) modifiersSet.add(modifier); } - if (node.abstract) { - this.word("abstract"); - this.space(); - } - if (isField && node.readonly) { - this.word("readonly"); - this.space(); + (_printer$tokenMap2 = printer.tokenMap) == null || _printer$tokenMap2.find(node, tok => { + if (modifiersSet.has(tok.value)) { + printer.token(tok.value); + printer.space(); + modifiersSet.delete(tok.value); + return modifiersSet.size === 0; + } + }); + for (const modifier of modifiersSet) { + printer.word(modifier); + printer.space(); } } diff --git a/node_modules/@babel/generator/lib/generators/typescript.js.map b/node_modules/@babel/generator/lib/generators/typescript.js.map index f93bde7..c3a4e76 100644 --- a/node_modules/@babel/generator/lib/generators/typescript.js.map +++ b/node_modules/@babel/generator/lib/generators/typescript.js.map @@ -1 +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","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","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","_expression$trailingC","forceParens","trailingComments","undefined","TSTypeAssertion","TSInstantiationExpression","TSEnumDeclaration","const","isConst","TSEnumMember","initializer","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.ts\";\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(\n this: Printer,\n node: t.TSDeclareFunction,\n parent: t.ParentMaps[\"TSDeclareFunction\"],\n) {\n if (node.declare) {\n this.word(\"declare\");\n this.space();\n }\n this._functionHead(node, parent);\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 } = node;\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.print(node.typeAnnotation, node);\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.rightBrace(node);\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, typeAnnotation } = 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\n if (typeAnnotation) {\n this.token(\":\");\n this.space();\n this.print(typeAnnotation, node);\n }\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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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["TSTypeAnnotation","node","parent","token","type","typeAnnotation","space","optional","print","TSTypeParameterInstantiation","printTrailingSeparator","params","length","tokenMap","start","end","find","t","matchesOriginal","shouldPrintTrailingComma","printList","TSTypeParameter","in","word","out","name","constraint","default","TSParameterProperty","accessibility","readonly","_param","parameter","TSDeclareFunction","declare","_functionHead","semicolon","TSDeclareMethod","_classMethodHead","TSQualifiedName","left","right","TSCallSignatureDeclaration","tsPrintSignatureDeclarationBase","maybePrintTrailingCommaOrSemicolon","printer","endMatches","TSConstructSignatureDeclaration","TSPropertySignature","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","printBraced","printJoin","members","indent","statement","TSArrayType","elementType","TSTupleType","elementTypes","TSOptionalType","TSRestType","TSNamedTupleMember","label","TSUnionType","tsPrintUnionOrIntersectionType","TSIntersectionType","sep","_printer$tokenMap","hasLeadingToken","startMatches","types","separator","i","TSConditionalType","checkType","extendsType","trueType","falseType","TSInferType","typeParameter","TSParenthesizedType","TSTypeOperator","operator","TSIndexedAccessType","objectType","indexType","TSMappedType","nameType","exit","enterDelimited","tokenIfPlusMinus","self","tok","TSLiteralType","literal","TSClassImplements","expression","TSInterfaceDeclaration","id","extends","extendz","body","TSInterfaceBody","TSTypeAliasDeclaration","TSTypeExpression","TSTypeAssertion","TSInstantiationExpression","TSEnumDeclaration","const","isConst","_this$shouldPrintTrai","TSEnumMember","initializer","TSModuleDeclaration","global","TSModuleBlock","printSequence","TSImportType","argument","qualifier","TSImportEqualsDeclaration","isExport","moduleReference","TSExternalModuleReference","TSNonNullExpression","TSExportAssignment","TSNamespaceExportDeclaration","tsPrintClassMemberModifiers","isField","printModifiersList","override","cb","rightBrace","modifiers","_printer$tokenMap2","modifiersSet","Set","modifier","add","has","value","delete","size"],"sources":["../../src/generators/typescript.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function TSTypeAnnotation(\n this: Printer,\n node: t.TSTypeAnnotation,\n parent: t.Node,\n) {\n // TODO(@nicolo-ribaudo): investigate not including => in the range\n // of the return type of an arrow function type\n this.token(\n (parent.type === \"TSFunctionType\" || parent.type === \"TSConstructorType\") &&\n (process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n parent.returnType\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n parent.typeAnnotation) === node\n ? \"=>\"\n : \":\",\n );\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);\n}\n\nexport function TSTypeParameterInstantiation(\n this: Printer,\n node: t.TSTypeParameterInstantiation,\n parent: t.Node,\n): void {\n this.token(\"<\");\n\n let printTrailingSeparator =\n parent.type === \"ArrowFunctionExpression\" && node.params.length === 1;\n if (this.tokenMap && node.start != null && node.end != null) {\n // Only force the trailing comma for pre-existing nodes if they\n // already had a comma (either because they were multi-param, or\n // because they had a trailing comma)\n printTrailingSeparator &&= !!this.tokenMap.find(node, t =>\n this.tokenMap.matchesOriginal(t, \",\"),\n );\n // Preseve the trailing comma if it was there before\n printTrailingSeparator ||= this.shouldPrintTrailingComma(\">\");\n }\n\n this.printList(node.params, { printTrailingSeparator });\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);\n }\n\n if (node.default) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.default);\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(\n this: Printer,\n node: t.TSDeclareFunction,\n parent: t.ParentMaps[\"TSDeclareFunction\"],\n) {\n if (node.declare) {\n this.word(\"declare\");\n this.space();\n }\n this._functionHead(node, parent);\n this.semicolon();\n}\n\nexport function TSDeclareMethod(this: Printer, node: t.TSDeclareMethod) {\n this._classMethodHead(node);\n this.semicolon();\n}\n\nexport function TSQualifiedName(this: Printer, node: t.TSQualifiedName) {\n this.print(node.left);\n this.token(\".\");\n this.print(node.right);\n}\n\nexport function TSCallSignatureDeclaration(\n this: Printer,\n node: t.TSCallSignatureDeclaration,\n) {\n this.tsPrintSignatureDeclarationBase(node);\n maybePrintTrailingCommaOrSemicolon(this, node);\n}\n\nfunction maybePrintTrailingCommaOrSemicolon(printer: Printer, node: t.Node) {\n if (!printer.tokenMap || !node.start || !node.end) {\n printer.semicolon();\n return;\n }\n\n if (printer.tokenMap.endMatches(node, \",\")) {\n printer.token(\",\");\n } else if (printer.tokenMap.endMatches(node, \";\")) {\n printer.semicolon();\n }\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 maybePrintTrailingCommaOrSemicolon(this, node);\n}\n\nexport function TSPropertySignature(\n this: Printer,\n node: t.TSPropertySignature,\n) {\n const { readonly } = node;\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.print(node.typeAnnotation);\n maybePrintTrailingCommaOrSemicolon(this, node);\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);\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 maybePrintTrailingCommaOrSemicolon(this, node);\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, \"]\");\n this.print(node.typeAnnotation);\n maybePrintTrailingCommaOrSemicolon(this, node);\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);\n this.token(\"(\");\n this._parameters(parameters, \")\");\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);\n}\n\nexport function TSTypeReference(this: Printer, node: t.TSTypeReference) {\n this.print(node.typeName, !!node.typeParameters);\n this.print(node.typeParameters);\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);\n }\n}\n\nexport function TSTypeLiteral(this: Printer, node: t.TSTypeLiteral) {\n printBraced(this, node, () =>\n this.printJoin(node.members, { indent: true, statement: true }),\n );\n}\n\nexport function TSArrayType(this: Printer, node: t.TSArrayType) {\n this.print(node.elementType, true);\n\n this.token(\"[\");\n this.token(\"]\");\n}\n\nexport function TSTupleType(this: Printer, node: t.TSTupleType) {\n this.token(\"[\");\n this.printList(node.elementTypes, {\n printTrailingSeparator: this.shouldPrintTrailingComma(\"]\"),\n });\n this.token(\"]\");\n}\n\nexport function TSOptionalType(this: Printer, node: t.TSOptionalType) {\n this.print(node.typeAnnotation);\n this.token(\"?\");\n}\n\nexport function TSRestType(this: Printer, node: t.TSRestType) {\n this.token(\"...\");\n this.print(node.typeAnnotation);\n}\n\nexport function TSNamedTupleMember(this: Printer, node: t.TSNamedTupleMember) {\n this.print(node.label);\n if (node.optional) this.token(\"?\");\n this.token(\":\");\n this.space();\n this.print(node.elementType);\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 let hasLeadingToken = 0;\n if (printer.tokenMap?.startMatches(node, sep)) {\n hasLeadingToken = 1;\n printer.token(sep);\n }\n\n printer.printJoin(node.types, {\n separator(i) {\n this.space();\n this.token(sep, null, i + hasLeadingToken);\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.word(\"infer\");\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);\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);\n}\n\nexport function TSIndexedAccessType(\n this: Printer,\n node: t.TSIndexedAccessType,\n) {\n this.print(node.objectType, true);\n this.token(\"[\");\n this.print(node.indexType);\n this.token(\"]\");\n}\n\nexport function TSMappedType(this: Printer, node: t.TSMappedType) {\n const { nameType, optional, readonly, typeAnnotation } = node;\n this.token(\"{\");\n const exit = this.enterDelimited();\n this.space();\n if (readonly) {\n tokenIfPlusMinus(this, readonly);\n this.word(\"readonly\");\n this.space();\n }\n\n this.token(\"[\");\n if (process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n this.word(node.key.name);\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n this.word(node.typeParameter.name);\n }\n\n this.space();\n this.word(\"in\");\n this.space();\n if (process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n this.print(node.constraint);\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n this.print(node.typeParameter.constraint);\n }\n\n if (nameType) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(nameType);\n }\n\n this.token(\"]\");\n\n if (optional) {\n tokenIfPlusMinus(this, optional);\n this.token(\"?\");\n }\n\n if (typeAnnotation) {\n this.token(\":\");\n this.space();\n this.print(typeAnnotation);\n }\n this.space();\n exit();\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);\n}\n\nexport function TSClassImplements(\n this: Printer,\n // TODO(Babel 8): Just use t.TSClassImplements\n node: Extract<\n t.Node,\n { type: \"TSClassImplements\" | \"TSExpressionWithTypeArguments\" }\n >,\n) {\n this.print(node.expression);\n this.print(node.typeParameters);\n}\n\nexport {\n // TODO: Remove this in Babel 8\n TSClassImplements as TSExpressionWithTypeArguments,\n TSClassImplements as TSInterfaceHeritage,\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);\n this.print(typeParameters);\n if (extendz?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(extendz);\n }\n this.space();\n this.print(body);\n}\n\nexport function TSInterfaceBody(this: Printer, node: t.TSInterfaceBody) {\n printBraced(this, node, () =>\n this.printJoin(node.body, { indent: true, statement: true }),\n );\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);\n this.print(typeParameters);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(typeAnnotation);\n this.semicolon();\n}\n\nfunction TSTypeExpression(\n this: Printer,\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n) {\n const { type, expression, typeAnnotation } = node;\n this.print(expression, true);\n this.space();\n this.word(type === \"TSAsExpression\" ? \"as\" : \"satisfies\");\n this.space();\n this.print(typeAnnotation);\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);\n this.token(\">\");\n this.space();\n this.print(expression);\n}\n\nexport function TSInstantiationExpression(\n this: Printer,\n node: t.TSInstantiationExpression,\n) {\n this.print(node.expression);\n this.print(node.typeParameters);\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);\n this.space();\n\n printBraced(this, node, () =>\n this.printList(members, {\n indent: true,\n statement: true,\n // TODO: Default to false for consistency with everything else\n printTrailingSeparator: this.shouldPrintTrailingComma(\"}\") ?? true,\n }),\n );\n}\n\nexport function TSEnumMember(this: Printer, node: t.TSEnumMember) {\n const { id, initializer } = node;\n this.print(id);\n if (initializer) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(initializer);\n }\n}\n\nexport function TSModuleDeclaration(\n this: Printer,\n node: t.TSModuleDeclaration,\n) {\n const { declare, id, kind } = node;\n\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n\n if (!node.global) {\n this.word(kind ?? (id.type === \"Identifier\" ? \"namespace\" : \"module\"));\n this.space();\n }\n this.print(id);\n\n if (!node.body) {\n this.semicolon();\n return;\n }\n\n let body = node.body;\n while (body.type === \"TSModuleDeclaration\") {\n this.token(\".\");\n this.print(body.id);\n body = body.body;\n }\n\n this.space();\n this.print(body);\n}\n\nexport function TSModuleBlock(this: Printer, node: t.TSModuleBlock) {\n printBraced(this, node, () =>\n this.printSequence(node.body, { indent: true }),\n );\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);\n this.token(\")\");\n if (qualifier) {\n this.token(\".\");\n this.print(qualifier);\n }\n if (typeParameters) {\n this.print(typeParameters);\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);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(moduleReference);\n this.semicolon();\n}\n\nexport function TSExternalModuleReference(\n this: Printer,\n node: t.TSExternalModuleReference,\n) {\n this.token(\"require(\");\n this.print(node.expression);\n this.token(\")\");\n}\n\nexport function TSNonNullExpression(\n this: Printer,\n node: t.TSNonNullExpression,\n) {\n this.print(node.expression);\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);\n this.semicolon();\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);\n this.semicolon();\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);\n this.token(\"(\");\n this._parameters(parameters, \")\");\n const returnType = process.env.BABEL_8_BREAKING\n ? node.returnType\n : node.typeAnnotation;\n this.print(returnType);\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 printModifiersList(this, node, [\n isField && node.declare && \"declare\",\n node.accessibility,\n ]);\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n printModifiersList(this, node, [\n node.override && \"override\",\n node.abstract && \"abstract\",\n isField && node.readonly && \"readonly\",\n ]);\n}\n\nfunction printBraced(printer: Printer, node: t.Node, cb: () => void) {\n printer.token(\"{\");\n const exit = printer.enterDelimited();\n cb();\n exit();\n printer.rightBrace(node);\n}\n\nfunction printModifiersList(\n printer: Printer,\n node: t.Node,\n modifiers: (string | false | null)[],\n) {\n const modifiersSet = new Set();\n for (const modifier of modifiers) {\n if (modifier) modifiersSet.add(modifier);\n }\n\n printer.tokenMap?.find(node, tok => {\n if (modifiersSet.has(tok.value)) {\n printer.token(tok.value);\n printer.space();\n modifiersSet.delete(tok.value);\n return modifiersSet.size === 0;\n }\n });\n\n for (const modifier of modifiersSet) {\n printer.word(modifier);\n printer.space();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,SAASA,gBAAgBA,CAE9BC,IAAwB,EACxBC,MAAc,EACd;EAGA,IAAI,CAACC,KAAK,CACR,CAACD,MAAM,CAACE,IAAI,KAAK,gBAAgB,IAAIF,MAAM,CAACE,IAAI,KAAK,mBAAmB,KAKlEF,MAAM,CAACG,cAAc,KAAMJ,IAAI,GACjC,IAAI,GACJ,GACN,CAAC;EACD,IAAI,CAACK,KAAK,CAAC,CAAC;EAEZ,IAAIL,IAAI,CAACM,QAAQ,EAAE,IAAI,CAACJ,SAAK,GAAI,CAAC;EAClC,IAAI,CAACK,KAAK,CAACP,IAAI,CAACI,cAAc,CAAC;AACjC;AAEO,SAASI,4BAA4BA,CAE1CR,IAAoC,EACpCC,MAAc,EACR;EACN,IAAI,CAACC,SAAK,GAAI,CAAC;EAEf,IAAIO,sBAAsB,GACxBR,MAAM,CAACE,IAAI,KAAK,yBAAyB,IAAIH,IAAI,CAACU,MAAM,CAACC,MAAM,KAAK,CAAC;EACvE,IAAI,IAAI,CAACC,QAAQ,IAAIZ,IAAI,CAACa,KAAK,IAAI,IAAI,IAAIb,IAAI,CAACc,GAAG,IAAI,IAAI,EAAE;IAI3DL,sBAAsB,KAAtBA,sBAAsB,GAAK,CAAC,CAAC,IAAI,CAACG,QAAQ,CAACG,IAAI,CAACf,IAAI,EAAEgB,CAAC,IACrD,IAAI,CAACJ,QAAQ,CAACK,eAAe,CAACD,CAAC,EAAE,GAAG,CACtC,CAAC;IAEDP,sBAAsB,KAAtBA,sBAAsB,GAAK,IAAI,CAACS,wBAAwB,CAAC,GAAG,CAAC;EAC/D;EAEA,IAAI,CAACC,SAAS,CAACnB,IAAI,CAACU,MAAM,EAAE;IAAED;EAAuB,CAAC,CAAC;EACvD,IAAI,CAACP,SAAK,GAAI,CAAC;AACjB;AAIO,SAASkB,eAAeA,CAAgBpB,IAAuB,EAAE;EACtE,IAAIA,IAAI,CAACqB,EAAE,EAAE;IACX,IAAI,CAACC,IAAI,CAAC,IAAI,CAAC;IACf,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EAEA,IAAIL,IAAI,CAACuB,GAAG,EAAE;IACZ,IAAI,CAACD,IAAI,CAAC,KAAK,CAAC;IAChB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EAEA,IAAI,CAACiB,IAAI,CAEFtB,IAAI,CAACwB,IAEZ,CAAC;EAED,IAAIxB,IAAI,CAACyB,UAAU,EAAE;IACnB,IAAI,CAACpB,KAAK,CAAC,CAAC;IACZ,IAAI,CAACiB,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACjB,KAAK,CAAC,CAAC;IACZ,IAAI,CAACE,KAAK,CAACP,IAAI,CAACyB,UAAU,CAAC;EAC7B;EAEA,IAAIzB,IAAI,CAAC0B,OAAO,EAAE;IAChB,IAAI,CAACrB,KAAK,CAAC,CAAC;IACZ,IAAI,CAACH,SAAK,GAAI,CAAC;IACf,IAAI,CAACG,KAAK,CAAC,CAAC;IACZ,IAAI,CAACE,KAAK,CAACP,IAAI,CAAC0B,OAAO,CAAC;EAC1B;AACF;AAEO,SAASC,mBAAmBA,CAEjC3B,IAA2B,EAC3B;EACA,IAAIA,IAAI,CAAC4B,aAAa,EAAE;IACtB,IAAI,CAACN,IAAI,CAACtB,IAAI,CAAC4B,aAAa,CAAC;IAC7B,IAAI,CAACvB,KAAK,CAAC,CAAC;EACd;EAEA,IAAIL,IAAI,CAAC6B,QAAQ,EAAE;IACjB,IAAI,CAACP,IAAI,CAAC,UAAU,CAAC;IACrB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EAEA,IAAI,CAACyB,MAAM,CAAC9B,IAAI,CAAC+B,SAAS,CAAC;AAC7B;AAEO,SAASC,iBAAiBA,CAE/BhC,IAAyB,EACzBC,MAAyC,EACzC;EACA,IAAID,IAAI,CAACiC,OAAO,EAAE;IAChB,IAAI,CAACX,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAAC6B,aAAa,CAAClC,IAAI,EAAEC,MAAM,CAAC;EAChC,IAAI,CAACkC,SAAS,CAAC,CAAC;AAClB;AAEO,SAASC,eAAeA,CAAgBpC,IAAuB,EAAE;EACtE,IAAI,CAACqC,gBAAgB,CAACrC,IAAI,CAAC;EAC3B,IAAI,CAACmC,SAAS,CAAC,CAAC;AAClB;AAEO,SAASG,eAAeA,CAAgBtC,IAAuB,EAAE;EACtE,IAAI,CAACO,KAAK,CAACP,IAAI,CAACuC,IAAI,CAAC;EACrB,IAAI,CAACrC,SAAK,GAAI,CAAC;EACf,IAAI,CAACK,KAAK,CAACP,IAAI,CAACwC,KAAK,CAAC;AACxB;AAEO,SAASC,0BAA0BA,CAExCzC,IAAkC,EAClC;EACA,IAAI,CAAC0C,+BAA+B,CAAC1C,IAAI,CAAC;EAC1C2C,kCAAkC,CAAC,IAAI,EAAE3C,IAAI,CAAC;AAChD;AAEA,SAAS2C,kCAAkCA,CAACC,OAAgB,EAAE5C,IAAY,EAAE;EAC1E,IAAI,CAAC4C,OAAO,CAAChC,QAAQ,IAAI,CAACZ,IAAI,CAACa,KAAK,IAAI,CAACb,IAAI,CAACc,GAAG,EAAE;IACjD8B,OAAO,CAACT,SAAS,CAAC,CAAC;IACnB;EACF;EAEA,IAAIS,OAAO,CAAChC,QAAQ,CAACiC,UAAU,CAAC7C,IAAI,EAAE,GAAG,CAAC,EAAE;IAC1C4C,OAAO,CAAC1C,KAAK,CAAC,GAAG,CAAC;EACpB,CAAC,MAAM,IAAI0C,OAAO,CAAChC,QAAQ,CAACiC,UAAU,CAAC7C,IAAI,EAAE,GAAG,CAAC,EAAE;IACjD4C,OAAO,CAACT,SAAS,CAAC,CAAC;EACrB;AACF;AAEO,SAASW,+BAA+BA,CAE7C9C,IAAuC,EACvC;EACA,IAAI,CAACsB,IAAI,CAAC,KAAK,CAAC;EAChB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACqC,+BAA+B,CAAC1C,IAAI,CAAC;EAC1C2C,kCAAkC,CAAC,IAAI,EAAE3C,IAAI,CAAC;AAChD;AAEO,SAAS+C,mBAAmBA,CAEjC/C,IAA2B,EAC3B;EACA,MAAM;IAAE6B;EAAS,CAAC,GAAG7B,IAAI;EACzB,IAAI6B,QAAQ,EAAE;IACZ,IAAI,CAACP,IAAI,CAAC,UAAU,CAAC;IACrB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAAC2C,2BAA2B,CAAChD,IAAI,CAAC;EACtC,IAAI,CAACO,KAAK,CAACP,IAAI,CAACI,cAAc,CAAC;EAC/BuC,kCAAkC,CAAC,IAAI,EAAE3C,IAAI,CAAC;AAChD;AAEO,SAASgD,2BAA2BA,CAEzChD,IAAiD,EACjD;EACA,IAAIA,IAAI,CAACiD,QAAQ,EAAE;IACjB,IAAI,CAAC/C,SAAK,GAAI,CAAC;EACjB;EACA,IAAI,CAACK,KAAK,CAACP,IAAI,CAACkD,GAAG,CAAC;EACpB,IAAIlD,IAAI,CAACiD,QAAQ,EAAE;IACjB,IAAI,CAAC/C,SAAK,GAAI,CAAC;EACjB;EACA,IAAIF,IAAI,CAACM,QAAQ,EAAE;IACjB,IAAI,CAACJ,SAAK,GAAI,CAAC;EACjB;AACF;AAEO,SAASiD,iBAAiBA,CAAgBnD,IAAyB,EAAE;EAC1E,MAAM;IAAEoD;EAAK,CAAC,GAAGpD,IAAI;EACrB,IAAIoD,IAAI,KAAK,KAAK,IAAIA,IAAI,KAAK,KAAK,EAAE;IACpC,IAAI,CAAC9B,IAAI,CAAC8B,IAAI,CAAC;IACf,IAAI,CAAC/C,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAAC2C,2BAA2B,CAAChD,IAAI,CAAC;EACtC,IAAI,CAAC0C,+BAA+B,CAAC1C,IAAI,CAAC;EAC1C2C,kCAAkC,CAAC,IAAI,EAAE3C,IAAI,CAAC;AAChD;AAEO,SAASqD,gBAAgBA,CAAgBrD,IAAwB,EAAE;EACxE,MAAM;IAAE6B,QAAQ;IAAEyB,MAAM,EAAEC;EAAS,CAAC,GAAGvD,IAAI;EAC3C,IAAIuD,QAAQ,EAAE;IACZ,IAAI,CAACjC,IAAI,CAAC,QAAQ,CAAC;IACnB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EACA,IAAIwB,QAAQ,EAAE;IACZ,IAAI,CAACP,IAAI,CAAC,UAAU,CAAC;IACrB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACH,SAAK,GAAI,CAAC;EACf,IAAI,CAACsD,WAAW,CAACxD,IAAI,CAACyD,UAAU,EAAE,GAAG,CAAC;EACtC,IAAI,CAAClD,KAAK,CAACP,IAAI,CAACI,cAAc,CAAC;EAC/BuC,kCAAkC,CAAC,IAAI,EAAE3C,IAAI,CAAC;AAChD;AAEO,SAAS0D,YAAYA,CAAA,EAAgB;EAC1C,IAAI,CAACpC,IAAI,CAAC,KAAK,CAAC;AAClB;AACO,SAASqC,eAAeA,CAAA,EAAgB;EAC7C,IAAI,CAACrC,IAAI,CAAC,QAAQ,CAAC;AACrB;AACO,SAASsC,gBAAgBA,CAAA,EAAgB;EAC9C,IAAI,CAACtC,IAAI,CAAC,SAAS,CAAC;AACtB;AACO,SAASuC,eAAeA,CAAA,EAAgB;EAC7C,IAAI,CAACvC,IAAI,CAAC,QAAQ,CAAC;AACrB;AACO,SAASwC,eAAeA,CAAA,EAAgB;EAC7C,IAAI,CAACxC,IAAI,CAAC,QAAQ,CAAC;AACrB;AACO,SAASyC,gBAAgBA,CAAA,EAAgB;EAC9C,IAAI,CAACzC,IAAI,CAAC,SAAS,CAAC;AACtB;AACO,SAAS0C,eAAeA,CAAA,EAAgB;EAC7C,IAAI,CAAC1C,IAAI,CAAC,QAAQ,CAAC;AACrB;AACO,SAAS2C,eAAeA,CAAA,EAAgB;EAC7C,IAAI,CAAC3C,IAAI,CAAC,QAAQ,CAAC;AACrB;AACO,SAAS4C,aAAaA,CAAA,EAAgB;EAC3C,IAAI,CAAC5C,IAAI,CAAC,MAAM,CAAC;AACnB;AACO,SAAS6C,kBAAkBA,CAAA,EAAgB;EAChD,IAAI,CAAC7C,IAAI,CAAC,WAAW,CAAC;AACxB;AACO,SAAS8C,aAAaA,CAAA,EAAgB;EAC3C,IAAI,CAAC9C,IAAI,CAAC,MAAM,CAAC;AACnB;AACO,SAAS+C,cAAcA,CAAA,EAAgB;EAC5C,IAAI,CAAC/C,IAAI,CAAC,OAAO,CAAC;AACpB;AACO,SAASgD,kBAAkBA,CAAA,EAAgB;EAChD,IAAI,CAAChD,IAAI,CAAC,WAAW,CAAC;AACxB;AAEO,SAASiD,UAAUA,CAAA,EAAgB;EACxC,IAAI,CAACjD,IAAI,CAAC,MAAM,CAAC;AACnB;AAEO,SAASkD,cAAcA,CAAgBxE,IAAsB,EAAE;EACpE,IAAI,CAACyE,gCAAgC,CAACzE,IAAI,CAAC;AAC7C;AAEO,SAAS0E,iBAAiBA,CAAgB1E,IAAyB,EAAE;EAC1E,IAAIA,IAAI,CAAC2E,QAAQ,EAAE;IACjB,IAAI,CAACrD,IAAI,CAAC,UAAU,CAAC;IACrB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACiB,IAAI,CAAC,KAAK,CAAC;EAChB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACoE,gCAAgC,CAACzE,IAAI,CAAC;AAC7C;AAEO,SAASyE,gCAAgCA,CAE9CzE,IAA4C,EAC5C;EACA,MAAM;IAAE4E;EAAe,CAAC,GAAG5E,IAAI;EAC/B,MAAMyD,UAAU,GAIZzD,IAAI,CAACyD,UAAU;EACnB,IAAI,CAAClD,KAAK,CAACqE,cAAc,CAAC;EAC1B,IAAI,CAAC1E,SAAK,GAAI,CAAC;EACf,IAAI,CAACsD,WAAW,CAACC,UAAU,EAAE,GAAG,CAAC;EACjC,IAAI,CAACpD,KAAK,CAAC,CAAC;EACZ,MAAMwE,UAAU,GAIZ7E,IAAI,CAACI,cAAc;EACvB,IAAI,CAACG,KAAK,CAACsE,UAAU,CAAC;AACxB;AAEO,SAASC,eAAeA,CAAgB9E,IAAuB,EAAE;EACtE,IAAI,CAACO,KAAK,CAACP,IAAI,CAAC+E,QAAQ,EAAE,CAAC,CAAC/E,IAAI,CAAC4E,cAAc,CAAC;EAChD,IAAI,CAACrE,KAAK,CAACP,IAAI,CAAC4E,cAAc,CAAC;AACjC;AAEO,SAASI,eAAeA,CAAgBhF,IAAuB,EAAE;EACtE,IAAIA,IAAI,CAACiF,OAAO,EAAE;IAChB,IAAI,CAAC3D,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACE,KAAK,CAACP,IAAI,CAACkF,aAAa,CAAC;EAC9B,IAAIlF,IAAI,CAACI,cAAc,EAAE;IACvB,IAAI,CAACC,KAAK,CAAC,CAAC;IACZ,IAAI,CAACiB,IAAI,CAAC,IAAI,CAAC;IACf,IAAI,CAACjB,KAAK,CAAC,CAAC;IACZ,IAAI,CAACE,KAAK,CAACP,IAAI,CAACI,cAAc,CAACA,cAAc,CAAC;EAChD;AACF;AAEO,SAAS+E,WAAWA,CAAgBnF,IAAmB,EAAE;EAC9D,IAAI,CAACsB,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACP,IAAI,CAACoF,QAAQ,CAAC;EAEzB,IAAIpF,IAAI,CAAC4E,cAAc,EAAE;IACvB,IAAI,CAACrE,KAAK,CAACP,IAAI,CAAC4E,cAAc,CAAC;EACjC;AACF;AAEO,SAASS,aAAaA,CAAgBrF,IAAqB,EAAE;EAClEsF,WAAW,CAAC,IAAI,EAAEtF,IAAI,EAAE,MACtB,IAAI,CAACuF,SAAS,CAACvF,IAAI,CAACwF,OAAO,EAAE;IAAEC,MAAM,EAAE,IAAI;IAAEC,SAAS,EAAE;EAAK,CAAC,CAChE,CAAC;AACH;AAEO,SAASC,WAAWA,CAAgB3F,IAAmB,EAAE;EAC9D,IAAI,CAACO,KAAK,CAACP,IAAI,CAAC4F,WAAW,EAAE,IAAI,CAAC;EAElC,IAAI,CAAC1F,SAAK,GAAI,CAAC;EACf,IAAI,CAACA,SAAK,GAAI,CAAC;AACjB;AAEO,SAAS2F,WAAWA,CAAgB7F,IAAmB,EAAE;EAC9D,IAAI,CAACE,SAAK,GAAI,CAAC;EACf,IAAI,CAACiB,SAAS,CAACnB,IAAI,CAAC8F,YAAY,EAAE;IAChCrF,sBAAsB,EAAE,IAAI,CAACS,wBAAwB,CAAC,GAAG;EAC3D,CAAC,CAAC;EACF,IAAI,CAAChB,SAAK,GAAI,CAAC;AACjB;AAEO,SAAS6F,cAAcA,CAAgB/F,IAAsB,EAAE;EACpE,IAAI,CAACO,KAAK,CAACP,IAAI,CAACI,cAAc,CAAC;EAC/B,IAAI,CAACF,SAAK,GAAI,CAAC;AACjB;AAEO,SAAS8F,UAAUA,CAAgBhG,IAAkB,EAAE;EAC5D,IAAI,CAACE,KAAK,CAAC,KAAK,CAAC;EACjB,IAAI,CAACK,KAAK,CAACP,IAAI,CAACI,cAAc,CAAC;AACjC;AAEO,SAAS6F,kBAAkBA,CAAgBjG,IAA0B,EAAE;EAC5E,IAAI,CAACO,KAAK,CAACP,IAAI,CAACkG,KAAK,CAAC;EACtB,IAAIlG,IAAI,CAACM,QAAQ,EAAE,IAAI,CAACJ,SAAK,GAAI,CAAC;EAClC,IAAI,CAACA,SAAK,GAAI,CAAC;EACf,IAAI,CAACG,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACP,IAAI,CAAC4F,WAAW,CAAC;AAC9B;AAEO,SAASO,WAAWA,CAAgBnG,IAAmB,EAAE;EAC9DoG,8BAA8B,CAAC,IAAI,EAAEpG,IAAI,EAAE,GAAG,CAAC;AACjD;AAEO,SAASqG,kBAAkBA,CAAgBrG,IAA0B,EAAE;EAC5EoG,8BAA8B,CAAC,IAAI,EAAEpG,IAAI,EAAE,GAAG,CAAC;AACjD;AAEA,SAASoG,8BAA8BA,CACrCxD,OAAgB,EAChB5C,IAA0C,EAC1CsG,GAAc,EACd;EAAA,IAAAC,iBAAA;EACA,IAAIC,eAAe,GAAG,CAAC;EACvB,KAAAD,iBAAA,GAAI3D,OAAO,CAAChC,QAAQ,aAAhB2F,iBAAA,CAAkBE,YAAY,CAACzG,IAAI,EAAEsG,GAAG,CAAC,EAAE;IAC7CE,eAAe,GAAG,CAAC;IACnB5D,OAAO,CAAC1C,KAAK,CAACoG,GAAG,CAAC;EACpB;EAEA1D,OAAO,CAAC2C,SAAS,CAACvF,IAAI,CAAC0G,KAAK,EAAE;IAC5BC,SAASA,CAACC,CAAC,EAAE;MACX,IAAI,CAACvG,KAAK,CAAC,CAAC;MACZ,IAAI,CAACH,KAAK,CAACoG,GAAG,EAAE,IAAI,EAAEM,CAAC,GAAGJ,eAAe,CAAC;MAC1C,IAAI,CAACnG,KAAK,CAAC,CAAC;IACd;EACF,CAAC,CAAC;AACJ;AAEO,SAASwG,iBAAiBA,CAAgB7G,IAAyB,EAAE;EAC1E,IAAI,CAACO,KAAK,CAACP,IAAI,CAAC8G,SAAS,CAAC;EAC1B,IAAI,CAACzG,KAAK,CAAC,CAAC;EACZ,IAAI,CAACiB,IAAI,CAAC,SAAS,CAAC;EACpB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACP,IAAI,CAAC+G,WAAW,CAAC;EAC5B,IAAI,CAAC1G,KAAK,CAAC,CAAC;EACZ,IAAI,CAACH,SAAK,GAAI,CAAC;EACf,IAAI,CAACG,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACP,IAAI,CAACgH,QAAQ,CAAC;EACzB,IAAI,CAAC3G,KAAK,CAAC,CAAC;EACZ,IAAI,CAACH,SAAK,GAAI,CAAC;EACf,IAAI,CAACG,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACP,IAAI,CAACiH,SAAS,CAAC;AAC5B;AAEO,SAASC,WAAWA,CAAgBlH,IAAmB,EAAE;EAC9D,IAAI,CAACsB,IAAI,CAAC,OAAO,CAAC;EAClB,IAAI,CAACf,KAAK,CAACP,IAAI,CAACmH,aAAa,CAAC;AAChC;AAEO,SAASC,mBAAmBA,CAEjCpH,IAA2B,EAC3B;EACA,IAAI,CAACE,SAAK,GAAI,CAAC;EACf,IAAI,CAACK,KAAK,CAACP,IAAI,CAACI,cAAc,CAAC;EAC/B,IAAI,CAACF,SAAK,GAAI,CAAC;AACjB;AAEO,SAASmH,cAAcA,CAAgBrH,IAAsB,EAAE;EACpE,IAAI,CAACsB,IAAI,CAACtB,IAAI,CAACsH,QAAQ,CAAC;EACxB,IAAI,CAACjH,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACP,IAAI,CAACI,cAAc,CAAC;AACjC;AAEO,SAASmH,mBAAmBA,CAEjCvH,IAA2B,EAC3B;EACA,IAAI,CAACO,KAAK,CAACP,IAAI,CAACwH,UAAU,EAAE,IAAI,CAAC;EACjC,IAAI,CAACtH,SAAK,GAAI,CAAC;EACf,IAAI,CAACK,KAAK,CAACP,IAAI,CAACyH,SAAS,CAAC;EAC1B,IAAI,CAACvH,SAAK,GAAI,CAAC;AACjB;AAEO,SAASwH,YAAYA,CAAgB1H,IAAoB,EAAE;EAChE,MAAM;IAAE2H,QAAQ;IAAErH,QAAQ;IAAEuB,QAAQ;IAAEzB;EAAe,CAAC,GAAGJ,IAAI;EAC7D,IAAI,CAACE,SAAK,IAAI,CAAC;EACf,MAAM0H,IAAI,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;EAClC,IAAI,CAACxH,KAAK,CAAC,CAAC;EACZ,IAAIwB,QAAQ,EAAE;IACZiG,gBAAgB,CAAC,IAAI,EAAEjG,QAAQ,CAAC;IAChC,IAAI,CAACP,IAAI,CAAC,UAAU,CAAC;IACrB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EAEA,IAAI,CAACH,SAAK,GAAI,CAAC;EAIR;IAEL,IAAI,CAACoB,IAAI,CAACtB,IAAI,CAACmH,aAAa,CAAC3F,IAAI,CAAC;EACpC;EAEA,IAAI,CAACnB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACiB,IAAI,CAAC,IAAI,CAAC;EACf,IAAI,CAACjB,KAAK,CAAC,CAAC;EAIL;IAEL,IAAI,CAACE,KAAK,CAACP,IAAI,CAACmH,aAAa,CAAC1F,UAAU,CAAC;EAC3C;EAEA,IAAIkG,QAAQ,EAAE;IACZ,IAAI,CAACtH,KAAK,CAAC,CAAC;IACZ,IAAI,CAACiB,IAAI,CAAC,IAAI,CAAC;IACf,IAAI,CAACjB,KAAK,CAAC,CAAC;IACZ,IAAI,CAACE,KAAK,CAACoH,QAAQ,CAAC;EACtB;EAEA,IAAI,CAACzH,SAAK,GAAI,CAAC;EAEf,IAAII,QAAQ,EAAE;IACZwH,gBAAgB,CAAC,IAAI,EAAExH,QAAQ,CAAC;IAChC,IAAI,CAACJ,SAAK,GAAI,CAAC;EACjB;EAEA,IAAIE,cAAc,EAAE;IAClB,IAAI,CAACF,SAAK,GAAI,CAAC;IACf,IAAI,CAACG,KAAK,CAAC,CAAC;IACZ,IAAI,CAACE,KAAK,CAACH,cAAc,CAAC;EAC5B;EACA,IAAI,CAACC,KAAK,CAAC,CAAC;EACZuH,IAAI,CAAC,CAAC;EACN,IAAI,CAAC1H,SAAK,IAAI,CAAC;AACjB;AAEA,SAAS4H,gBAAgBA,CAACC,IAAa,EAAEC,GAAqB,EAAE;EAC9D,IAAIA,GAAG,KAAK,IAAI,EAAE;IAChBD,IAAI,CAAC7H,KAAK,CAAC8H,GAAG,CAAC;EACjB;AACF;AAEO,SAASC,aAAaA,CAAgBjI,IAAqB,EAAE;EAClE,IAAI,CAACO,KAAK,CAACP,IAAI,CAACkI,OAAO,CAAC;AAC1B;AAEO,SAASC,iBAAiBA,CAG/BnI,IAGC,EACD;EACA,IAAI,CAACO,KAAK,CAACP,IAAI,CAACoI,UAAU,CAAC;EAC3B,IAAI,CAAC7H,KAAK,CAACP,IAAI,CAAC4E,cAAc,CAAC;AACjC;AAQO,SAASyD,sBAAsBA,CAEpCrI,IAA8B,EAC9B;EACA,MAAM;IAAEiC,OAAO;IAAEqG,EAAE;IAAE1D,cAAc;IAAE2D,OAAO,EAAEC,OAAO;IAAEC;EAAK,CAAC,GAAGzI,IAAI;EACpE,IAAIiC,OAAO,EAAE;IACX,IAAI,CAACX,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACiB,IAAI,CAAC,WAAW,CAAC;EACtB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAAC+H,EAAE,CAAC;EACd,IAAI,CAAC/H,KAAK,CAACqE,cAAc,CAAC;EAC1B,IAAI4D,OAAO,YAAPA,OAAO,CAAE7H,MAAM,EAAE;IACnB,IAAI,CAACN,KAAK,CAAC,CAAC;IACZ,IAAI,CAACiB,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACjB,KAAK,CAAC,CAAC;IACZ,IAAI,CAACc,SAAS,CAACqH,OAAO,CAAC;EACzB;EACA,IAAI,CAACnI,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACkI,IAAI,CAAC;AAClB;AAEO,SAASC,eAAeA,CAAgB1I,IAAuB,EAAE;EACtEsF,WAAW,CAAC,IAAI,EAAEtF,IAAI,EAAE,MACtB,IAAI,CAACuF,SAAS,CAACvF,IAAI,CAACyI,IAAI,EAAE;IAAEhD,MAAM,EAAE,IAAI;IAAEC,SAAS,EAAE;EAAK,CAAC,CAC7D,CAAC;AACH;AAEO,SAASiD,sBAAsBA,CAEpC3I,IAA8B,EAC9B;EACA,MAAM;IAAEiC,OAAO;IAAEqG,EAAE;IAAE1D,cAAc;IAAExE;EAAe,CAAC,GAAGJ,IAAI;EAC5D,IAAIiC,OAAO,EAAE;IACX,IAAI,CAACX,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACiB,IAAI,CAAC,MAAM,CAAC;EACjB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAAC+H,EAAE,CAAC;EACd,IAAI,CAAC/H,KAAK,CAACqE,cAAc,CAAC;EAC1B,IAAI,CAACvE,KAAK,CAAC,CAAC;EACZ,IAAI,CAACH,SAAK,GAAI,CAAC;EACf,IAAI,CAACG,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACH,cAAc,CAAC;EAC1B,IAAI,CAAC+B,SAAS,CAAC,CAAC;AAClB;AAEA,SAASyG,gBAAgBA,CAEvB5I,IAAgD,EAChD;EACA,MAAM;IAAEG,IAAI;IAAEiI,UAAU;IAAEhI;EAAe,CAAC,GAAGJ,IAAI;EACjD,IAAI,CAACO,KAAK,CAAC6H,UAAU,EAAE,IAAI,CAAC;EAC5B,IAAI,CAAC/H,KAAK,CAAC,CAAC;EACZ,IAAI,CAACiB,IAAI,CAACnB,IAAI,KAAK,gBAAgB,GAAG,IAAI,GAAG,WAAW,CAAC;EACzD,IAAI,CAACE,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACH,cAAc,CAAC;AAC5B;AAOO,SAASyI,eAAeA,CAAgB7I,IAAuB,EAAE;EACtE,MAAM;IAAEI,cAAc;IAAEgI;EAAW,CAAC,GAAGpI,IAAI;EAC3C,IAAI,CAACE,SAAK,GAAI,CAAC;EACf,IAAI,CAACK,KAAK,CAACH,cAAc,CAAC;EAC1B,IAAI,CAACF,SAAK,GAAI,CAAC;EACf,IAAI,CAACG,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAAC6H,UAAU,CAAC;AACxB;AAEO,SAASU,yBAAyBA,CAEvC9I,IAAiC,EACjC;EACA,IAAI,CAACO,KAAK,CAACP,IAAI,CAACoI,UAAU,CAAC;EAC3B,IAAI,CAAC7H,KAAK,CAACP,IAAI,CAAC4E,cAAc,CAAC;AACjC;AAEO,SAASmE,iBAAiBA,CAAgB/I,IAAyB,EAAE;EAC1E,MAAM;IAAEiC,OAAO;IAAE+G,KAAK,EAAEC,OAAO;IAAEX,EAAE;IAAE9C;EAAQ,CAAC,GAAGxF,IAAI;EACrD,IAAIiC,OAAO,EAAE;IACX,IAAI,CAACX,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EACA,IAAI4I,OAAO,EAAE;IACX,IAAI,CAAC3H,IAAI,CAAC,OAAO,CAAC;IAClB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACiB,IAAI,CAAC,MAAM,CAAC;EACjB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAAC+H,EAAE,CAAC;EACd,IAAI,CAACjI,KAAK,CAAC,CAAC;EAEZiF,WAAW,CAAC,IAAI,EAAEtF,IAAI,EAAE;IAAA,IAAAkJ,qBAAA;IAAA,OACtB,IAAI,CAAC/H,SAAS,CAACqE,OAAO,EAAE;MACtBC,MAAM,EAAE,IAAI;MACZC,SAAS,EAAE,IAAI;MAEfjF,sBAAsB,GAAAyI,qBAAA,GAAE,IAAI,CAAChI,wBAAwB,CAAC,GAAG,CAAC,YAAAgI,qBAAA,GAAI;IAChE,CAAC,CAAC;EAAA,CACJ,CAAC;AACH;AAEO,SAASC,YAAYA,CAAgBnJ,IAAoB,EAAE;EAChE,MAAM;IAAEsI,EAAE;IAAEc;EAAY,CAAC,GAAGpJ,IAAI;EAChC,IAAI,CAACO,KAAK,CAAC+H,EAAE,CAAC;EACd,IAAIc,WAAW,EAAE;IACf,IAAI,CAAC/I,KAAK,CAAC,CAAC;IACZ,IAAI,CAACH,SAAK,GAAI,CAAC;IACf,IAAI,CAACG,KAAK,CAAC,CAAC;IACZ,IAAI,CAACE,KAAK,CAAC6I,WAAW,CAAC;EACzB;AACF;AAEO,SAASC,mBAAmBA,CAEjCrJ,IAA2B,EAC3B;EACA,MAAM;IAAEiC,OAAO;IAAEqG,EAAE;IAAElF;EAAK,CAAC,GAAGpD,IAAI;EAElC,IAAIiC,OAAO,EAAE;IACX,IAAI,CAACX,IAAI,CAAC,SAAS,CAAC;IACpB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EAEA,IAAI,CAACL,IAAI,CAACsJ,MAAM,EAAE;IAChB,IAAI,CAAChI,IAAI,CAAC8B,IAAI,WAAJA,IAAI,GAAKkF,EAAE,CAACnI,IAAI,KAAK,YAAY,GAAG,WAAW,GAAG,QAAS,CAAC;IACtE,IAAI,CAACE,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACE,KAAK,CAAC+H,EAAE,CAAC;EAEd,IAAI,CAACtI,IAAI,CAACyI,IAAI,EAAE;IACd,IAAI,CAACtG,SAAS,CAAC,CAAC;IAChB;EACF;EAEA,IAAIsG,IAAI,GAAGzI,IAAI,CAACyI,IAAI;EACpB,OAAOA,IAAI,CAACtI,IAAI,KAAK,qBAAqB,EAAE;IAC1C,IAAI,CAACD,SAAK,GAAI,CAAC;IACf,IAAI,CAACK,KAAK,CAACkI,IAAI,CAACH,EAAE,CAAC;IACnBG,IAAI,GAAGA,IAAI,CAACA,IAAI;EAClB;EAEA,IAAI,CAACpI,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACkI,IAAI,CAAC;AAClB;AAEO,SAASc,aAAaA,CAAgBvJ,IAAqB,EAAE;EAClEsF,WAAW,CAAC,IAAI,EAAEtF,IAAI,EAAE,MACtB,IAAI,CAACwJ,aAAa,CAACxJ,IAAI,CAACyI,IAAI,EAAE;IAAEhD,MAAM,EAAE;EAAK,CAAC,CAChD,CAAC;AACH;AAEO,SAASgE,YAAYA,CAAgBzJ,IAAoB,EAAE;EAChE,MAAM;IAAE0J,QAAQ;IAAEC,SAAS;IAAE/E;EAAe,CAAC,GAAG5E,IAAI;EACpD,IAAI,CAACsB,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACpB,SAAK,GAAI,CAAC;EACf,IAAI,CAACK,KAAK,CAACmJ,QAAQ,CAAC;EACpB,IAAI,CAACxJ,SAAK,GAAI,CAAC;EACf,IAAIyJ,SAAS,EAAE;IACb,IAAI,CAACzJ,SAAK,GAAI,CAAC;IACf,IAAI,CAACK,KAAK,CAACoJ,SAAS,CAAC;EACvB;EACA,IAAI/E,cAAc,EAAE;IAClB,IAAI,CAACrE,KAAK,CAACqE,cAAc,CAAC;EAC5B;AACF;AAEO,SAASgF,yBAAyBA,CAEvC5J,IAAiC,EACjC;EACA,MAAM;IAAE6J,QAAQ;IAAEvB,EAAE;IAAEwB;EAAgB,CAAC,GAAG9J,IAAI;EAC9C,IAAI6J,QAAQ,EAAE;IACZ,IAAI,CAACvI,IAAI,CAAC,QAAQ,CAAC;IACnB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EACA,IAAI,CAACiB,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAAC+H,EAAE,CAAC;EACd,IAAI,CAACjI,KAAK,CAAC,CAAC;EACZ,IAAI,CAACH,SAAK,GAAI,CAAC;EACf,IAAI,CAACG,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACuJ,eAAe,CAAC;EAC3B,IAAI,CAAC3H,SAAS,CAAC,CAAC;AAClB;AAEO,SAAS4H,yBAAyBA,CAEvC/J,IAAiC,EACjC;EACA,IAAI,CAACE,KAAK,CAAC,UAAU,CAAC;EACtB,IAAI,CAACK,KAAK,CAACP,IAAI,CAACoI,UAAU,CAAC;EAC3B,IAAI,CAAClI,SAAK,GAAI,CAAC;AACjB;AAEO,SAAS8J,mBAAmBA,CAEjChK,IAA2B,EAC3B;EACA,IAAI,CAACO,KAAK,CAACP,IAAI,CAACoI,UAAU,CAAC;EAC3B,IAAI,CAAClI,SAAK,GAAI,CAAC;AACjB;AAEO,SAAS+J,kBAAkBA,CAAgBjK,IAA0B,EAAE;EAC5E,IAAI,CAACsB,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACH,SAAK,GAAI,CAAC;EACf,IAAI,CAACG,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACP,IAAI,CAACoI,UAAU,CAAC;EAC3B,IAAI,CAACjG,SAAS,CAAC,CAAC;AAClB;AAEO,SAAS+H,4BAA4BA,CAE1ClK,IAAoC,EACpC;EACA,IAAI,CAACsB,IAAI,CAAC,QAAQ,CAAC;EACnB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACiB,IAAI,CAAC,IAAI,CAAC;EACf,IAAI,CAACjB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACiB,IAAI,CAAC,WAAW,CAAC;EACtB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACZ,IAAI,CAACE,KAAK,CAACP,IAAI,CAACsI,EAAE,CAAC;EACnB,IAAI,CAACnG,SAAS,CAAC,CAAC;AAClB;AAEO,SAASO,+BAA+BA,CAAgB1C,IAAS,EAAE;EACxE,MAAM;IAAE4E;EAAe,CAAC,GAAG5E,IAAI;EAC/B,MAAMyD,UAAU,GAEZzD,IAAI,CAACyD,UAAU;EACnB,IAAI,CAAClD,KAAK,CAACqE,cAAc,CAAC;EAC1B,IAAI,CAAC1E,SAAK,GAAI,CAAC;EACf,IAAI,CAACsD,WAAW,CAACC,UAAU,EAAE,GAAG,CAAC;EACjC,MAAMoB,UAAU,GAEZ7E,IAAI,CAACI,cAAc;EACvB,IAAI,CAACG,KAAK,CAACsE,UAAU,CAAC;AACxB;AAEO,SAASsF,2BAA2BA,CAEzCnK,IAKqB,EACrB;EACA,MAAMoK,OAAO,GACXpK,IAAI,CAACG,IAAI,KAAK,uBAAuB,IAAIH,IAAI,CAACG,IAAI,KAAK,eAAe;EACxEkK,kBAAkB,CAAC,IAAI,EAAErK,IAAI,EAAE,CAC7BoK,OAAO,IAAIpK,IAAI,CAACiC,OAAO,IAAI,SAAS,EACpCjC,IAAI,CAAC4B,aAAa,CACnB,CAAC;EACF,IAAI5B,IAAI,CAACsD,MAAM,EAAE;IACf,IAAI,CAAChC,IAAI,CAAC,QAAQ,CAAC;IACnB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACd;EACAgK,kBAAkB,CAAC,IAAI,EAAErK,IAAI,EAAE,CAC7BA,IAAI,CAACsK,QAAQ,IAAI,UAAU,EAC3BtK,IAAI,CAAC2E,QAAQ,IAAI,UAAU,EAC3ByF,OAAO,IAAIpK,IAAI,CAAC6B,QAAQ,IAAI,UAAU,CACvC,CAAC;AACJ;AAEA,SAASyD,WAAWA,CAAC1C,OAAgB,EAAE5C,IAAY,EAAEuK,EAAc,EAAE;EACnE3H,OAAO,CAAC1C,KAAK,CAAC,GAAG,CAAC;EAClB,MAAM0H,IAAI,GAAGhF,OAAO,CAACiF,cAAc,CAAC,CAAC;EACrC0C,EAAE,CAAC,CAAC;EACJ3C,IAAI,CAAC,CAAC;EACNhF,OAAO,CAAC4H,UAAU,CAACxK,IAAI,CAAC;AAC1B;AAEA,SAASqK,kBAAkBA,CACzBzH,OAAgB,EAChB5C,IAAY,EACZyK,SAAoC,EACpC;EAAA,IAAAC,kBAAA;EACA,MAAMC,YAAY,GAAG,IAAIC,GAAG,CAAS,CAAC;EACtC,KAAK,MAAMC,QAAQ,IAAIJ,SAAS,EAAE;IAChC,IAAII,QAAQ,EAAEF,YAAY,CAACG,GAAG,CAACD,QAAQ,CAAC;EAC1C;EAEA,CAAAH,kBAAA,GAAA9H,OAAO,CAAChC,QAAQ,aAAhB8J,kBAAA,CAAkB3J,IAAI,CAACf,IAAI,EAAEgI,GAAG,IAAI;IAClC,IAAI2C,YAAY,CAACI,GAAG,CAAC/C,GAAG,CAACgD,KAAK,CAAC,EAAE;MAC/BpI,OAAO,CAAC1C,KAAK,CAAC8H,GAAG,CAACgD,KAAK,CAAC;MACxBpI,OAAO,CAACvC,KAAK,CAAC,CAAC;MACfsK,YAAY,CAACM,MAAM,CAACjD,GAAG,CAACgD,KAAK,CAAC;MAC9B,OAAOL,YAAY,CAACO,IAAI,KAAK,CAAC;IAChC;EACF,CAAC,CAAC;EAEF,KAAK,MAAML,QAAQ,IAAIF,YAAY,EAAE;IACnC/H,OAAO,CAACtB,IAAI,CAACuJ,QAAQ,CAAC;IACtBjI,OAAO,CAACvC,KAAK,CAAC,CAAC;EACjB;AACF","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/index.js b/node_modules/@babel/generator/lib/index.js index 2678931..f6ab7f5 100644 --- a/node_modules/@babel/generator/lib/index.js +++ b/node_modules/@babel/generator/lib/index.js @@ -6,11 +6,32 @@ Object.defineProperty(exports, "__esModule", { exports.default = generate; var _sourceMap = require("./source-map.js"); var _printer = require("./printer.js"); -function normalizeOptions(code, opts) { +function normalizeOptions(code, opts, ast) { + if (opts.experimental_preserveFormat) { + if (typeof code !== "string") { + throw new Error("`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string"); + } + if (!opts.retainLines) { + throw new Error("`experimental_preserveFormat` requires `retainLines` to be set to `true`"); + } + if (opts.compact && opts.compact !== "auto") { + throw new Error("`experimental_preserveFormat` is not compatible with the `compact` option"); + } + if (opts.minified) { + throw new Error("`experimental_preserveFormat` is not compatible with the `minified` option"); + } + if (opts.jsescOption) { + throw new Error("`experimental_preserveFormat` is not compatible with the `jsescOption` option"); + } + if (!Array.isArray(ast.tokens)) { + throw new Error("`experimental_preserveFormat` requires the AST to have attatched the token of the input code. Make sure to enable the `tokens: true` parser option."); + } + } const format = { auxiliaryCommentBefore: opts.auxiliaryCommentBefore, auxiliaryCommentAfter: opts.auxiliaryCommentAfter, shouldPrintComment: opts.shouldPrintComment, + preserveFormat: opts.experimental_preserveFormat, retainLines: opts.retainLines, retainFunctionParens: opts.retainFunctionParens, comments: opts.comments == null || opts.comments, @@ -47,7 +68,7 @@ function normalizeOptions(code, opts) { console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`); } } - if (format.compact) { + if (format.compact || format.preserveFormat) { format.indent.adjustMultilineComment = false; } const { @@ -70,7 +91,7 @@ function normalizeOptions(code, opts) { this._format = void 0; this._map = void 0; this._ast = ast; - this._format = normalizeOptions(code, opts); + this._format = normalizeOptions(code, opts, ast); this._map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; } generate() { @@ -80,9 +101,9 @@ function normalizeOptions(code, opts) { }; } function generate(ast, opts = {}, code) { - const format = normalizeOptions(code, opts); + const format = normalizeOptions(code, opts, ast); const map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; - const printer = new _printer.default(format, map); + const printer = new _printer.default(format, map, ast.tokens, typeof code === "string" ? code : null); return printer.generate(ast); } diff --git a/node_modules/@babel/generator/lib/index.js.map b/node_modules/@babel/generator/lib/index.js.map index c2a1eee..29a53fc 100644 --- a/node_modules/@babel/generator/lib/index.js.map +++ b/node_modules/@babel/generator/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_sourceMap","require","_printer","normalizeOptions","code","opts","format","auxiliaryCommentBefore","auxiliaryCommentAfter","shouldPrintComment","retainLines","retainFunctionParens","comments","compact","minified","concise","indent","adjustMultilineComment","style","jsescOption","Object","assign","quotes","wrap","minimal","topicToken","importAttributesKeyword","_opts$recordAndTupleS","decoratorsBeforeExport","json","jsonCompatibleStrings","recordAndTupleSyntaxType","value","includes","length","console","error","filename","undefined","exports","CodeGenerator","constructor","ast","_ast","_format","_map","sourceMaps","SourceMap","generate","printer","Printer","map"],"sources":["../src/index.ts"],"sourcesContent":["import SourceMap from \"./source-map.ts\";\nimport Printer from \"./printer.ts\";\nimport type * as t from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\nimport type { Format } from \"./printer.ts\";\nimport type {\n EncodedSourceMap,\n DecodedSourceMap,\n Mapping,\n} from \"@jridgewell/gen-mapping\";\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 topicToken: opts.topicToken,\n importAttributesKeyword: opts.importAttributesKeyword,\n };\n\n if (!process.env.BABEL_8_BREAKING) {\n format.decoratorsBeforeExport = opts.decoratorsBeforeExport;\n format.jsescOption.json = opts.jsonCompatibleStrings;\n format.recordAndTupleSyntaxType = opts.recordAndTupleSyntaxType ?? \"hash\";\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 = typeof code === \"string\" && 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.minified` 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 inputSourceMap?: any;\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\n * module exports. If not specified, decorators will be printed in the same\n * position as they were in the input source code.\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 * @deprecated It will be removed in Babel 8.\n */\n recordAndTupleSyntaxType?: \"bar\" | \"hash\";\n\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: \"%\" | \"#\" | \"@@\" | \"^^\" | \"^\";\n\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n}\n\nexport interface GeneratorResult {\n code: string;\n map: EncodedSourceMap | null;\n decodedMap: DecodedSourceMap | undefined;\n rawMappings: Mapping[] | undefined;\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\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\n // eslint-disable-next-line no-restricted-globals\n exports.CodeGenerator = class CodeGenerator {\n private _ast: t.Node;\n private _format: Format | undefined;\n private _map: SourceMap | null;\n constructor(ast: t.Node, opts: GeneratorOptions = {}, code?: string) {\n this._ast = ast;\n this._format = normalizeOptions(code, opts);\n this._map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n }\n generate(): GeneratorResult {\n const printer = new Printer(this._format, this._map);\n\n return printer.generate(this._ast);\n }\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): GeneratorResult {\n const format = normalizeOptions(code, opts);\n const map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n\n const printer = new Printer(format, map);\n\n return printer.generate(ast);\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_sourceMap","require","_printer","normalizeOptions","code","opts","ast","experimental_preserveFormat","Error","retainLines","compact","minified","jsescOption","Array","isArray","tokens","format","auxiliaryCommentBefore","auxiliaryCommentAfter","shouldPrintComment","preserveFormat","retainFunctionParens","comments","concise","indent","adjustMultilineComment","style","Object","assign","quotes","wrap","minimal","topicToken","importAttributesKeyword","_opts$recordAndTupleS","decoratorsBeforeExport","json","jsonCompatibleStrings","recordAndTupleSyntaxType","value","includes","length","console","error","filename","undefined","exports","CodeGenerator","constructor","_ast","_format","_map","sourceMaps","SourceMap","generate","printer","Printer","map"],"sources":["../src/index.ts"],"sourcesContent":["import SourceMap from \"./source-map.ts\";\nimport Printer from \"./printer.ts\";\nimport type * as t from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\nimport type { Format } from \"./printer.ts\";\nimport type {\n EncodedSourceMap,\n DecodedSourceMap,\n Mapping,\n} from \"@jridgewell/gen-mapping\";\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 ast: t.Node,\n): Format {\n if (opts.experimental_preserveFormat) {\n if (typeof code !== \"string\") {\n throw new Error(\n \"`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string\",\n );\n }\n if (!opts.retainLines) {\n throw new Error(\n \"`experimental_preserveFormat` requires `retainLines` to be set to `true`\",\n );\n }\n if (opts.compact && opts.compact !== \"auto\") {\n throw new Error(\n \"`experimental_preserveFormat` is not compatible with the `compact` option\",\n );\n }\n if (opts.minified) {\n throw new Error(\n \"`experimental_preserveFormat` is not compatible with the `minified` option\",\n );\n }\n if (opts.jsescOption) {\n throw new Error(\n \"`experimental_preserveFormat` is not compatible with the `jsescOption` option\",\n );\n }\n if (!Array.isArray((ast as any).tokens)) {\n throw new Error(\n \"`experimental_preserveFormat` requires the AST to have attatched the token of the input code. Make sure to enable the `tokens: true` parser option.\",\n );\n }\n }\n\n const format: Format = {\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n shouldPrintComment: opts.shouldPrintComment,\n preserveFormat: opts.experimental_preserveFormat,\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 topicToken: opts.topicToken,\n importAttributesKeyword: opts.importAttributesKeyword,\n };\n\n if (!process.env.BABEL_8_BREAKING) {\n format.decoratorsBeforeExport = opts.decoratorsBeforeExport;\n format.jsescOption.json = opts.jsonCompatibleStrings;\n format.recordAndTupleSyntaxType = opts.recordAndTupleSyntaxType ?? \"hash\";\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 = typeof code === \"string\" && 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 || format.preserveFormat) {\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.minified` is `false` and the comment\n * contains `@preserve` or `@license`.\n */\n shouldPrintComment?(comment: string): boolean;\n\n /**\n * Preserve the input code format while printing the transformed code.\n * This is experimental, and may have breaking changes in future\n * patch releases. It will be removed in a future minor release,\n * when it will graduate to stable.\n */\n experimental_preserveFormat?: 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 inputSourceMap?: any;\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\n * module exports. If not specified, decorators will be printed in the same\n * position as they were in the input source code.\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 * @deprecated It will be removed in Babel 8.\n */\n recordAndTupleSyntaxType?: \"bar\" | \"hash\";\n\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: \"%\" | \"#\" | \"@@\" | \"^^\" | \"^\";\n\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n}\n\nexport interface GeneratorResult {\n code: string;\n map: EncodedSourceMap | null;\n decodedMap: DecodedSourceMap | undefined;\n rawMappings: Mapping[] | undefined;\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\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\n // eslint-disable-next-line no-restricted-globals\n exports.CodeGenerator = class CodeGenerator {\n private _ast: t.Node;\n private _format: Format | undefined;\n private _map: SourceMap | null;\n constructor(ast: t.Node, opts: GeneratorOptions = {}, code?: string) {\n this._ast = ast;\n this._format = normalizeOptions(code, opts, ast);\n this._map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n }\n generate(): GeneratorResult {\n const printer = new Printer(this._format, this._map);\n\n return printer.generate(this._ast);\n }\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): GeneratorResult {\n const format = normalizeOptions(code, opts, ast);\n const map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n\n const printer = new Printer(\n format,\n map,\n (ast as any).tokens,\n typeof code === \"string\" ? code : null,\n );\n\n return printer.generate(ast);\n}\n"],"mappings":"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","ignoreList":[]} \ 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 index b564050..c672887 100644 --- a/node_modules/@babel/generator/lib/node/index.js +++ b/node_modules/@babel/generator/lib/node/index.js @@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.TokenContext = void 0; +exports.isLastChild = isLastChild; exports.needsParens = needsParens; exports.needsWhitespace = needsWhitespace; exports.needsWhitespaceAfter = needsWhitespaceAfter; @@ -13,6 +14,7 @@ var parens = require("./parentheses.js"); var _t = require("@babel/types"); const { FLIPPED_ALIAS_KEYS, + VISITOR_KEYS, isCallExpression, isDecorator, isExpressionStatement, @@ -33,9 +35,9 @@ function expandAliases(obj) { const map = new Map(); function add(type, func) { const fn = map.get(type); - map.set(type, fn ? function (node, parent, stack, inForInit) { + map.set(type, fn ? function (node, parent, stack, inForInit, getRawIdentifier) { var _fn; - return (_fn = fn(node, parent, stack, inForInit)) != null ? _fn : func(node, parent, stack, inForInit); + return (_fn = fn(node, parent, stack, inForInit, getRawIdentifier)) != null ? _fn : func(node, parent, stack, inForInit, getRawIdentifier); } : func); } for (const type of Object.keys(obj)) { @@ -76,7 +78,7 @@ function needsWhitespaceBefore(node, parent) { function needsWhitespaceAfter(node, parent) { return needsWhitespace(node, parent, 2); } -function needsParens(node, parent, tokenContext, inForInit) { +function needsParens(node, parent, tokenContext, inForInit, getRawIdentifier) { var _expandedParens$get; if (!parent) return false; if (isNewExpression(parent) && parent.callee === node) { @@ -85,7 +87,7 @@ function needsParens(node, parent, tokenContext, inForInit) { if (isDecorator(parent)) { return !isDecoratorMemberExpression(node) && !(isCallExpression(node) && isDecoratorMemberExpression(node.callee)) && !isParenthesizedExpression(node); } - return (_expandedParens$get = expandedParens.get(node.type)) == null ? void 0 : _expandedParens$get(node, parent, tokenContext, inForInit); + return (_expandedParens$get = expandedParens.get(node.type)) == null ? void 0 : _expandedParens$get(node, parent, tokenContext, inForInit, getRawIdentifier); } function isDecoratorMemberExpression(node) { switch (node.type) { @@ -97,5 +99,21 @@ function isDecoratorMemberExpression(node) { return false; } } +function isLastChild(parent, child) { + const visitorKeys = VISITOR_KEYS[parent.type]; + for (let i = visitorKeys.length - 1; i >= 0; i--) { + const val = parent[visitorKeys[i]]; + if (val === child) { + return true; + } else if (Array.isArray(val)) { + let j = val.length - 1; + while (j >= 0 && val[j] === null) j--; + return j >= 0 && val[j] === child; + } else if (val) { + return false; + } + } + return false; +} //# 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 index 9603a6e..cba53d7 100644 --- a/node_modules/@babel/generator/lib/node/index.js.map +++ b/node_modules/@babel/generator/lib/node/index.js.map @@ -1 +1 @@ -{"version":3,"names":["whitespace","require","parens","_t","FLIPPED_ALIAS_KEYS","isCallExpression","isDecorator","isExpressionStatement","isMemberExpression","isNewExpression","isParenthesizedExpression","TokenContext","exports","expressionStatement","arrowBody","exportDefault","forHead","forInHead","forOfHead","arrowFlowReturnType","expandAliases","obj","map","Map","add","type","func","fn","get","set","node","parent","stack","inForInit","_fn","Object","keys","aliases","alias","expandedParens","expandedWhitespaceNodes","nodes","isOrHasCallExpression","object","needsWhitespace","_expandedWhitespaceNo","expression","flag","needsWhitespaceBefore","needsWhitespaceAfter","needsParens","tokenContext","_expandedParens$get","callee","isDecoratorMemberExpression","computed","property"],"sources":["../../src/node/index.ts"],"sourcesContent":["import * as whitespace from \"./whitespace.ts\";\nimport * as parens from \"./parentheses.ts\";\nimport {\n FLIPPED_ALIAS_KEYS,\n isCallExpression,\n isDecorator,\n isExpressionStatement,\n isMemberExpression,\n isNewExpression,\n isParenthesizedExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport type { WhitespaceFlag } from \"./whitespace.ts\";\n\nexport const enum TokenContext {\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 arrowFlowReturnType = 1 << 6,\n}\n\ntype NodeHandler = (\n node: t.Node,\n // todo:\n // node: K extends keyof typeof t\n // ? Extract\n // : t.Node,\n parent: t.Node,\n tokenContext?: number,\n inForStatementInit?: boolean,\n) => R;\n\nexport type NodeHandlers = {\n [K in string]?: NodeHandler;\n};\n\nfunction expandAliases(obj: NodeHandlers) {\n const map = new Map>();\n\n function add(type: string, func: NodeHandler) {\n const fn = map.get(type);\n map.set(\n type,\n fn\n ? function (node, parent, stack, inForInit) {\n return (\n fn(node, parent, stack, inForInit) ??\n func(node, parent, stack, inForInit)\n );\n }\n : func,\n );\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 map;\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 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 = expandedWhitespaceNodes.get(node.type)?.(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 tokenContext?: number,\n inForInit?: boolean,\n) {\n if (!parent) return false;\n\n if (isNewExpression(parent) && parent.callee === node) {\n if (isOrHasCallExpression(node)) return true;\n }\n\n if (isDecorator(parent)) {\n return (\n !isDecoratorMemberExpression(node) &&\n !(isCallExpression(node) && isDecoratorMemberExpression(node.callee)) &&\n !isParenthesizedExpression(node)\n );\n }\n\n return expandedParens.get(node.type)?.(node, parent, tokenContext, inForInit);\n}\n\nfunction isDecoratorMemberExpression(node: t.Node): 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}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["whitespace","require","parens","_t","FLIPPED_ALIAS_KEYS","VISITOR_KEYS","isCallExpression","isDecorator","isExpressionStatement","isMemberExpression","isNewExpression","isParenthesizedExpression","TokenContext","exports","expressionStatement","arrowBody","exportDefault","forHead","forInHead","forOfHead","arrowFlowReturnType","expandAliases","obj","map","Map","add","type","func","fn","get","set","node","parent","stack","inForInit","getRawIdentifier","_fn","Object","keys","aliases","alias","expandedParens","expandedWhitespaceNodes","nodes","isOrHasCallExpression","object","needsWhitespace","_expandedWhitespaceNo","expression","flag","needsWhitespaceBefore","needsWhitespaceAfter","needsParens","tokenContext","_expandedParens$get","callee","isDecoratorMemberExpression","computed","property","isLastChild","child","visitorKeys","i","length","val","Array","isArray","j"],"sources":["../../src/node/index.ts"],"sourcesContent":["import * as whitespace from \"./whitespace.ts\";\nimport * as parens from \"./parentheses.ts\";\nimport {\n FLIPPED_ALIAS_KEYS,\n VISITOR_KEYS,\n isCallExpression,\n isDecorator,\n isExpressionStatement,\n isMemberExpression,\n isNewExpression,\n isParenthesizedExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport type { WhitespaceFlag } from \"./whitespace.ts\";\n\nexport const enum TokenContext {\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 arrowFlowReturnType = 1 << 6,\n}\n\ntype NodeHandler = (\n node: t.Node,\n // todo:\n // node: K extends keyof typeof t\n // ? Extract\n // : t.Node,\n parent: t.Node,\n tokenContext?: number,\n inForStatementInit?: boolean,\n getRawIdentifier?: (node: t.Identifier) => string,\n) => R;\n\nexport type NodeHandlers = {\n [K in string]?: NodeHandler;\n};\n\nfunction expandAliases(obj: NodeHandlers) {\n const map = new Map>();\n\n function add(type: string, func: NodeHandler) {\n const fn = map.get(type);\n map.set(\n type,\n fn\n ? function (node, parent, stack, inForInit, getRawIdentifier) {\n return (\n fn(node, parent, stack, inForInit, getRawIdentifier) ??\n func(node, parent, stack, inForInit, getRawIdentifier)\n );\n }\n : func,\n );\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 map;\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 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 = expandedWhitespaceNodes.get(node.type)?.(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 tokenContext?: number,\n inForInit?: boolean,\n getRawIdentifier?: (node: t.Identifier) => string,\n) {\n if (!parent) return false;\n\n if (isNewExpression(parent) && parent.callee === node) {\n if (isOrHasCallExpression(node)) return true;\n }\n\n if (isDecorator(parent)) {\n return (\n !isDecoratorMemberExpression(node) &&\n !(isCallExpression(node) && isDecoratorMemberExpression(node.callee)) &&\n !isParenthesizedExpression(node)\n );\n }\n\n return expandedParens.get(node.type)?.(\n node,\n parent,\n tokenContext,\n inForInit,\n getRawIdentifier,\n );\n}\n\nfunction isDecoratorMemberExpression(node: t.Node): 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}\n\nexport function isLastChild(parent: t.Node, child: t.Node) {\n const visitorKeys = VISITOR_KEYS[parent.type];\n for (let i = visitorKeys.length - 1; i >= 0; i--) {\n const val = (parent as any)[visitorKeys[i]] as t.Node | t.Node[] | null;\n if (val === child) {\n return true;\n } else if (Array.isArray(val)) {\n let j = val.length - 1;\n while (j >= 0 && val[j] === null) j--;\n return j >= 0 && val[j] === child;\n } else if (val) {\n return false;\n }\n }\n return false;\n}\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,EAAA,GAAAF,OAAA;AASsB;EARpBG,kBAAkB;EAClBC,YAAY;EACZC,gBAAgB;EAChBC,WAAW;EACXC,qBAAqB;EACrBC,kBAAkB;EAClBC,eAAe;EACfC;AAAyB,IAAAR,EAAA;AAAA,MAMTS,YAAY,GAAAC,OAAA,CAAAD,YAAA;EAAAE,mBAAA;EAAAC,SAAA;EAAAC,aAAA;EAAAC,OAAA;EAAAC,SAAA;EAAAC,SAAA;EAAAC,mBAAA;AAAA;AA0B9B,SAASC,aAAaA,CAAIC,GAAoB,EAAE;EAC9C,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAAyB,CAAC;EAE7C,SAASC,GAAGA,CAACC,IAAY,EAAEC,IAAoB,EAAE;IAC/C,MAAMC,EAAE,GAAGL,GAAG,CAACM,GAAG,CAACH,IAAI,CAAC;IACxBH,GAAG,CAACO,GAAG,CACLJ,IAAI,EACJE,EAAE,GACE,UAAUG,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAEC,SAAS,EAAEC,gBAAgB,EAAE;MAAA,IAAAC,GAAA;MAC1D,QAAAA,GAAA,GACER,EAAE,CAACG,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAEC,SAAS,EAAEC,gBAAgB,CAAC,YAAAC,GAAA,GACpDT,IAAI,CAACI,IAAI,EAAEC,MAAM,EAAEC,KAAK,EAAEC,SAAS,EAAEC,gBAAgB,CAAC;IAE1D,CAAC,GACDR,IACN,CAAC;EACH;EAEA,KAAK,MAAMD,IAAI,IAAIW,MAAM,CAACC,IAAI,CAAChB,GAAG,CAAC,EAAE;IACnC,MAAMiB,OAAO,GAAGnC,kBAAkB,CAACsB,IAAI,CAAC;IACxC,IAAIa,OAAO,EAAE;MACX,KAAK,MAAMC,KAAK,IAAID,OAAO,EAAE;QAC3Bd,GAAG,CAACe,KAAK,EAAElB,GAAG,CAACI,IAAI,CAAC,CAAC;MACvB;IACF,CAAC,MAAM;MACLD,GAAG,CAACC,IAAI,EAAEJ,GAAG,CAACI,IAAI,CAAC,CAAC;IACtB;EACF;EAEA,OAAOH,GAAG;AACZ;AAIA,MAAMkB,cAAc,GAAGpB,aAAa,CAACnB,MAAM,CAAC;AAC5C,MAAMwC,uBAAuB,GAAGrB,aAAa,CAACrB,UAAU,CAAC2C,KAAK,CAAC;AAE/D,SAASC,qBAAqBA,CAACb,IAAY,EAAW;EACpD,IAAIzB,gBAAgB,CAACyB,IAAI,CAAC,EAAE;IAC1B,OAAO,IAAI;EACb;EAEA,OAAOtB,kBAAkB,CAACsB,IAAI,CAAC,IAAIa,qBAAqB,CAACb,IAAI,CAACc,MAAM,CAAC;AACvE;AAEO,SAASC,eAAeA,CAC7Bf,IAAY,EACZC,MAAc,EACdN,IAAoB,EACX;EAAA,IAAAqB,qBAAA;EACT,IAAI,CAAChB,IAAI,EAAE,OAAO,KAAK;EAEvB,IAAIvB,qBAAqB,CAACuB,IAAI,CAAC,EAAE;IAC/BA,IAAI,GAAGA,IAAI,CAACiB,UAAU;EACxB;EAEA,MAAMC,IAAI,IAAAF,qBAAA,GAAGL,uBAAuB,CAACb,GAAG,CAACE,IAAI,CAACL,IAAI,CAAC,qBAAtCqB,qBAAA,CAAyChB,IAAI,EAAEC,MAAM,CAAC;EAEnE,IAAI,OAAOiB,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAO,CAACA,IAAI,GAAGvB,IAAI,MAAM,CAAC;EAC5B;EAEA,OAAO,KAAK;AACd;AAEO,SAASwB,qBAAqBA,CAACnB,IAAY,EAAEC,MAAc,EAAE;EAClE,OAAOc,eAAe,CAACf,IAAI,EAAEC,MAAM,EAAE,CAAC,CAAC;AACzC;AAEO,SAASmB,oBAAoBA,CAACpB,IAAY,EAAEC,MAAc,EAAE;EACjE,OAAOc,eAAe,CAACf,IAAI,EAAEC,MAAM,EAAE,CAAC,CAAC;AACzC;AAEO,SAASoB,WAAWA,CACzBrB,IAAY,EACZC,MAAc,EACdqB,YAAqB,EACrBnB,SAAmB,EACnBC,gBAAiD,EACjD;EAAA,IAAAmB,mBAAA;EACA,IAAI,CAACtB,MAAM,EAAE,OAAO,KAAK;EAEzB,IAAItB,eAAe,CAACsB,MAAM,CAAC,IAAIA,MAAM,CAACuB,MAAM,KAAKxB,IAAI,EAAE;IACrD,IAAIa,qBAAqB,CAACb,IAAI,CAAC,EAAE,OAAO,IAAI;EAC9C;EAEA,IAAIxB,WAAW,CAACyB,MAAM,CAAC,EAAE;IACvB,OACE,CAACwB,2BAA2B,CAACzB,IAAI,CAAC,IAClC,EAAEzB,gBAAgB,CAACyB,IAAI,CAAC,IAAIyB,2BAA2B,CAACzB,IAAI,CAACwB,MAAM,CAAC,CAAC,IACrE,CAAC5C,yBAAyB,CAACoB,IAAI,CAAC;EAEpC;EAEA,QAAAuB,mBAAA,GAAOb,cAAc,CAACZ,GAAG,CAACE,IAAI,CAACL,IAAI,CAAC,qBAA7B4B,mBAAA,CACLvB,IAAI,EACJC,MAAM,EACNqB,YAAY,EACZnB,SAAS,EACTC,gBACF,CAAC;AACH;AAEA,SAASqB,2BAA2BA,CAACzB,IAAY,EAAW;EAC1D,QAAQA,IAAI,CAACL,IAAI;IACf,KAAK,YAAY;MACf,OAAO,IAAI;IACb,KAAK,kBAAkB;MACrB,OACE,CAACK,IAAI,CAAC0B,QAAQ,IACd1B,IAAI,CAAC2B,QAAQ,CAAChC,IAAI,KAAK,YAAY,IACnC8B,2BAA2B,CAACzB,IAAI,CAACc,MAAM,CAAC;IAE5C;MACE,OAAO,KAAK;EAChB;AACF;AAEO,SAASc,WAAWA,CAAC3B,MAAc,EAAE4B,KAAa,EAAE;EACzD,MAAMC,WAAW,GAAGxD,YAAY,CAAC2B,MAAM,CAACN,IAAI,CAAC;EAC7C,KAAK,IAAIoC,CAAC,GAAGD,WAAW,CAACE,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IAChD,MAAME,GAAG,GAAIhC,MAAM,CAAS6B,WAAW,CAACC,CAAC,CAAC,CAA6B;IACvE,IAAIE,GAAG,KAAKJ,KAAK,EAAE;MACjB,OAAO,IAAI;IACb,CAAC,MAAM,IAAIK,KAAK,CAACC,OAAO,CAACF,GAAG,CAAC,EAAE;MAC7B,IAAIG,CAAC,GAAGH,GAAG,CAACD,MAAM,GAAG,CAAC;MACtB,OAAOI,CAAC,IAAI,CAAC,IAAIH,GAAG,CAACG,CAAC,CAAC,KAAK,IAAI,EAAEA,CAAC,EAAE;MACrC,OAAOA,CAAC,IAAI,CAAC,IAAIH,GAAG,CAACG,CAAC,CAAC,KAAKP,KAAK;IACnC,CAAC,MAAM,IAAII,GAAG,EAAE;MACd,OAAO,KAAK;IACd;EACF;EACA,OAAO,KAAK;AACd","ignoreList":[]} \ 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 index cb59597..2e8bb1c 100644 --- a/node_modules/@babel/generator/lib/node/parentheses.js +++ b/node_modules/@babel/generator/lib/node/parentheses.js @@ -3,12 +3,11 @@ 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.ArrowFunctionExpression = exports.ConditionalExpression = ConditionalExpression; exports.DoExpression = DoExpression; exports.FunctionExpression = FunctionExpression; exports.FunctionTypeAnnotation = FunctionTypeAnnotation; @@ -33,13 +32,13 @@ const { isArrayTypeAnnotation, isBinaryExpression, isCallExpression, - isExportDeclaration, isForOfStatement, isIndexedAccessType, isMemberExpression, isObjectPattern, isOptionalMemberExpression, - isYieldExpression + isYieldExpression, + isStatement } = _t; const PRECEDENCE = new Map([["||", 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 getBinaryPrecedence(node, nodeType) { @@ -66,14 +65,18 @@ function NullableTypeAnnotation(node, parent) { } function FunctionTypeAnnotation(node, parent, tokenContext) { const parentType = parent.type; - return parentType === "UnionTypeAnnotation" || parentType === "IntersectionTypeAnnotation" || parentType === "ArrayTypeAnnotation" || Boolean(tokenContext & _index.TokenContext.arrowFlowReturnType); + return (parentType === "UnionTypeAnnotation" || parentType === "IntersectionTypeAnnotation" || parentType === "ArrayTypeAnnotation" || Boolean(tokenContext & _index.TokenContext.arrowFlowReturnType) + ); } function UpdateExpression(node, parent) { return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent); } -function ObjectExpression(node, parent, tokenContext) { +function needsParenBeforeExpressionBrace(tokenContext) { return Boolean(tokenContext & (_index.TokenContext.expressionStatement | _index.TokenContext.arrowBody)); } +function ObjectExpression(node, parent, tokenContext) { + return needsParenBeforeExpressionBrace(tokenContext); +} function DoExpression(node, parent, tokenContext) { return !node.async && Boolean(tokenContext & _index.TokenContext.expressionStatement); } @@ -115,7 +118,7 @@ function TSAsExpression(node, parent) { } function TSUnionType(node, parent) { const parentType = parent.type; - return parentType === "TSArrayType" || parentType === "TSOptionalType" || parentType === "TSIntersectionType" || parentType === "TSUnionType" || parentType === "TSRestType"; + return parentType === "TSArrayType" || parentType === "TSOptionalType" || parentType === "TSIntersectionType" || parentType === "TSRestType"; } function TSInferType(node, parent) { const parentType = parent.type; @@ -130,10 +133,19 @@ function BinaryExpression(node, parent, tokenContext, inForStatementInit) { } function SequenceExpression(node, parent) { const parentType = parent.type; - if (parentType === "ForStatement" || parentType === "ThrowStatement" || parentType === "ReturnStatement" || parentType === "IfStatement" && parent.test === node || parentType === "WhileStatement" && parent.test === node || parentType === "ForInStatement" && parent.right === node || parentType === "SwitchStatement" && parent.discriminant === node || parentType === "ExpressionStatement" && parent.expression === node) { + if (parentType === "SequenceExpression" || parentType === "ParenthesizedExpression" || parentType === "MemberExpression" && parent.property === node || parentType === "OptionalMemberExpression" && parent.property === node || parentType === "TemplateLiteral") { return false; } - return true; + if (parentType === "ClassDeclaration") { + return true; + } + if (parentType === "ForOfStatement") { + return parent.right === node; + } + if (parentType === "ExportDefaultDeclaration") { + return true; + } + return !isStatement(parent); } function YieldExpression(node, parent) { const parentType = parent.type; @@ -148,9 +160,6 @@ function UnaryLike(node, parent) { function FunctionExpression(node, parent, tokenContext) { return Boolean(tokenContext & (_index.TokenContext.expressionStatement | _index.TokenContext.exportDefault)); } -function ArrowFunctionExpression(node, parent) { - return isExportDeclaration(parent) || ConditionalExpression(node, parent); -} function ConditionalExpression(node, parent) { const parentType = parent.type; if (parentType === "UnaryExpression" || parentType === "SpreadElement" || parentType === "BinaryExpression" || parentType === "LogicalExpression" || parentType === "ConditionalExpression" && parent.test === node || parentType === "AwaitExpression" || isTSTypeExpression(parentType)) { @@ -161,8 +170,8 @@ function ConditionalExpression(node, parent) { function OptionalMemberExpression(node, parent) { return isCallExpression(parent) && parent.callee === node || isMemberExpression(parent) && parent.object === node; } -function AssignmentExpression(node, parent) { - if (isObjectPattern(node.left)) { +function AssignmentExpression(node, parent, tokenContext) { + if (needsParenBeforeExpressionBrace(tokenContext) && isObjectPattern(node.left)) { return true; } else { return ConditionalExpression(node, parent); @@ -181,7 +190,7 @@ function LogicalExpression(node, parent) { return parent.operator !== "??"; } } -function Identifier(node, parent, tokenContext) { +function Identifier(node, parent, tokenContext, _inForInit, getRawIdentifier) { var _node$extra; const parentType = parent.type; if ((_node$extra = node.extra) != null && _node$extra.parenthesized && parentType === "AssignmentExpression" && parent.left === node) { @@ -190,6 +199,9 @@ function Identifier(node, parent, tokenContext) { return true; } } + if (getRawIdentifier && getRawIdentifier(node) !== node.name) { + return false; + } if (node.name === "let") { const isFollowedByBracket = isMemberExpression(parent, { object: node, diff --git a/node_modules/@babel/generator/lib/node/parentheses.js.map b/node_modules/@babel/generator/lib/node/parentheses.js.map index f81ddfa..c46fbea 100644 --- a/node_modules/@babel/generator/lib/node/parentheses.js.map +++ b/node_modules/@babel/generator/lib/node/parentheses.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","_index","isArrayTypeAnnotation","isBinaryExpression","isCallExpression","isExportDeclaration","isForOfStatement","isIndexedAccessType","isMemberExpression","isObjectPattern","isOptionalMemberExpression","isYieldExpression","PRECEDENCE","Map","getBinaryPrecedence","node","nodeType","get","operator","isTSTypeExpression","isClassExtendsClause","parent","parentType","type","superClass","hasPostfixPart","object","callee","tag","NullableTypeAnnotation","FunctionTypeAnnotation","tokenContext","Boolean","TokenContext","arrowFlowReturnType","UpdateExpression","ObjectExpression","expressionStatement","arrowBody","DoExpression","async","Binary","left","parentPos","nodePos","right","undefined","UnionTypeAnnotation","OptionalIndexedAccessType","objectType","TSAsExpression","TSUnionType","TSInferType","TSInstantiationExpression","typeParameters","BinaryExpression","inForStatementInit","SequenceExpression","test","discriminant","expression","YieldExpression","ClassExpression","exportDefault","UnaryLike","FunctionExpression","ArrowFunctionExpression","ConditionalExpression","OptionalMemberExpression","AssignmentExpression","LogicalExpression","Identifier","_node$extra","extra","parenthesized","rightType","id","name","isFollowedByBracket","computed","optional","forHead","forInHead","forOfHead","await"],"sources":["../../src/node/parentheses.ts"],"sourcesContent":["import {\n isArrayTypeAnnotation,\n isBinaryExpression,\n isCallExpression,\n isExportDeclaration,\n isForOfStatement,\n isIndexedAccessType,\n isMemberExpression,\n isObjectPattern,\n isOptionalMemberExpression,\n isYieldExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport { TokenContext } from \"./index.ts\";\n\nconst PRECEDENCE = new Map([\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\nfunction getBinaryPrecedence(\n node: t.Binary | t.TSAsExpression | t.TSSatisfiesExpression,\n nodeType: string,\n): number;\nfunction getBinaryPrecedence(\n node: t.Node,\n nodeType: string,\n): number | undefined;\nfunction getBinaryPrecedence(node: t.Node, nodeType: string) {\n if (nodeType === \"BinaryExpression\" || nodeType === \"LogicalExpression\") {\n return PRECEDENCE.get((node as t.Binary).operator);\n }\n if (nodeType === \"TSAsExpression\" || nodeType === \"TSSatisfiesExpression\") {\n return PRECEDENCE.get(\"in\");\n }\n}\n\nfunction isTSTypeExpression(nodeType: string) {\n return (\n nodeType === \"TSAsExpression\" ||\n nodeType === \"TSSatisfiesExpression\" ||\n nodeType === \"TSTypeAssertion\"\n );\n}\n\nconst isClassExtendsClause = (\n node: t.Node,\n parent: t.Node,\n): parent is t.Class => {\n const parentType = parent.type;\n return (\n (parentType === \"ClassDeclaration\" || parentType === \"ClassExpression\") &&\n parent.superClass === node\n );\n};\n\nconst hasPostfixPart = (node: t.Node, parent: t.Node) => {\n const parentType = parent.type;\n return (\n ((parentType === \"MemberExpression\" ||\n parentType === \"OptionalMemberExpression\") &&\n parent.object === node) ||\n ((parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\") &&\n parent.callee === node) ||\n (parentType === \"TaggedTemplateExpression\" && parent.tag === node) ||\n parentType === \"TSNonNullExpression\"\n );\n};\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 tokenContext: number,\n): boolean {\n const parentType = parent.type;\n return (\n // (() => A) | (() => B)\n parentType === \"UnionTypeAnnotation\" ||\n // (() => A) & (() => B)\n parentType === \"IntersectionTypeAnnotation\" ||\n // (() => A)[]\n parentType === \"ArrayTypeAnnotation\" ||\n Boolean(tokenContext & TokenContext.arrowFlowReturnType)\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 tokenContext: number,\n): boolean {\n return Boolean(\n tokenContext & (TokenContext.expressionStatement | TokenContext.arrowBody),\n );\n}\n\nexport function DoExpression(\n node: t.DoExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n // `async do` can start an expression statement\n return (\n !node.async && Boolean(tokenContext & TokenContext.expressionStatement)\n );\n}\n\nexport function Binary(\n node: t.Binary | t.TSAsExpression | t.TSSatisfiesExpression,\n parent: t.Node,\n): boolean | undefined {\n const parentType = parent.type;\n if (\n node.type === \"BinaryExpression\" &&\n node.operator === \"**\" &&\n parentType === \"BinaryExpression\" &&\n 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 parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"AwaitExpression\"\n ) {\n return true;\n }\n\n const parentPos = getBinaryPrecedence(parent, parentType);\n if (parentPos != null) {\n const nodePos = getBinaryPrecedence(node, node.type);\n if (\n // Logical expressions with the same precedence don't need parens.\n (parentPos === nodePos &&\n parentType === \"BinaryExpression\" &&\n parent.right === node) ||\n parentPos > nodePos\n ) {\n return true;\n }\n }\n\n return undefined;\n}\n\nexport function UnionTypeAnnotation(\n node: t.UnionTypeAnnotation,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"ArrayTypeAnnotation\" ||\n parentType === \"NullableTypeAnnotation\" ||\n parentType === \"IntersectionTypeAnnotation\" ||\n parentType === \"UnionTypeAnnotation\"\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) && parent.objectType === node;\n}\n\nexport function TSAsExpression(\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n parent: t.Node,\n): boolean {\n if (\n (parent.type === \"AssignmentExpression\" ||\n parent.type === \"AssignmentPattern\") &&\n parent.left === node\n ) {\n return true;\n }\n if (\n parent.type === \"BinaryExpression\" &&\n (parent.operator === \"|\" || parent.operator === \"&\") &&\n node === parent.left\n ) {\n return true;\n }\n return Binary(node, parent);\n}\n\nexport { TSAsExpression as TSSatisfiesExpression };\n\nexport { UnaryLike as TSTypeAssertion };\n\nexport function TSUnionType(node: t.TSUnionType, parent: t.Node): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSArrayType\" ||\n parentType === \"TSOptionalType\" ||\n parentType === \"TSIntersectionType\" ||\n parentType === \"TSUnionType\" ||\n parentType === \"TSRestType\"\n );\n}\n\nexport { TSUnionType as TSIntersectionType };\n\nexport function TSInferType(node: t.TSInferType, parent: t.Node): boolean {\n const parentType = parent.type;\n return parentType === \"TSArrayType\" || parentType === \"TSOptionalType\";\n}\n\nexport function TSInstantiationExpression(\n node: t.TSInstantiationExpression,\n parent: t.Node,\n) {\n const parentType = parent.type;\n return (\n (parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\" ||\n parentType === \"TSInstantiationExpression\") &&\n !!parent.typeParameters\n );\n}\n\nexport function BinaryExpression(\n node: t.BinaryExpression,\n parent: t.Node,\n tokenContext: unknown,\n inForStatementInit: boolean,\n): boolean {\n // for ((1 in []);;);\n // for (var x = (1 in []) in 2);\n return node.operator === \"in\" && inForStatementInit;\n}\n\nexport function SequenceExpression(\n node: t.SequenceExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\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 parentType === \"ForStatement\" ||\n parentType === \"ThrowStatement\" ||\n parentType === \"ReturnStatement\" ||\n (parentType === \"IfStatement\" && parent.test === node) ||\n (parentType === \"WhileStatement\" && parent.test === node) ||\n (parentType === \"ForInStatement\" && parent.right === node) ||\n (parentType === \"SwitchStatement\" && parent.discriminant === node) ||\n (parentType === \"ExpressionStatement\" && 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 const parentType = parent.type;\n return (\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n hasPostfixPart(node, parent) ||\n (parentType === \"AwaitExpression\" && isYieldExpression(node)) ||\n (parentType === \"ConditionalExpression\" && node === parent.test) ||\n isClassExtendsClause(node, parent) ||\n isTSTypeExpression(parentType)\n );\n}\n\nexport { YieldExpression as AwaitExpression };\n\nexport function ClassExpression(\n node: t.ClassExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return Boolean(\n tokenContext &\n (TokenContext.expressionStatement | TokenContext.exportDefault),\n );\n}\n\nexport function UnaryLike(\n node:\n | t.UnaryLike\n | t.TSTypeAssertion\n | t.ArrowFunctionExpression\n | t.ConditionalExpression\n | t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n return (\n hasPostfixPart(node, parent) ||\n (isBinaryExpression(parent) &&\n parent.operator === \"**\" &&\n parent.left === node) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport function FunctionExpression(\n node: t.FunctionExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return Boolean(\n tokenContext &\n (TokenContext.expressionStatement | TokenContext.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 const parentType = parent.type;\n if (\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n (parentType === \"ConditionalExpression\" && parent.test === node) ||\n parentType === \"AwaitExpression\" ||\n isTSTypeExpression(parentType)\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) && parent.callee === node) ||\n (isMemberExpression(parent) && 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 const parentType = parent.type;\n if (isTSTypeExpression(parentType)) return true;\n if (parentType !== \"LogicalExpression\") return false;\n switch (node.operator) {\n case \"||\":\n return parent.operator === \"??\" || parent.operator === \"&&\";\n case \"&&\":\n return parent.operator === \"??\";\n case \"??\":\n return parent.operator !== \"??\";\n }\n}\n\nexport function Identifier(\n node: t.Identifier,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n const parentType = parent.type;\n // 13.15.2 AssignmentExpression RS: Evaluation\n // (fn) = function () {};\n if (\n node.extra?.parenthesized &&\n parentType === \"AssignmentExpression\" &&\n parent.left === node\n ) {\n const rightType = parent.right.type;\n if (\n (rightType === \"FunctionExpression\" || rightType === \"ClassExpression\") &&\n parent.right.id == null\n ) {\n return true;\n }\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 if (\n isFollowedByBracket &&\n tokenContext &\n (TokenContext.expressionStatement |\n TokenContext.forHead |\n TokenContext.forInHead)\n ) {\n return true;\n }\n return Boolean(tokenContext & TokenContext.forOfHead);\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 return (\n node.name === \"async\" &&\n isForOfStatement(parent, { left: node, await: false })\n );\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_t","require","_index","isArrayTypeAnnotation","isBinaryExpression","isCallExpression","isForOfStatement","isIndexedAccessType","isMemberExpression","isObjectPattern","isOptionalMemberExpression","isYieldExpression","isStatement","PRECEDENCE","Map","getBinaryPrecedence","node","nodeType","get","operator","isTSTypeExpression","isClassExtendsClause","parent","parentType","type","superClass","hasPostfixPart","object","callee","tag","NullableTypeAnnotation","FunctionTypeAnnotation","tokenContext","Boolean","TokenContext","arrowFlowReturnType","UpdateExpression","needsParenBeforeExpressionBrace","expressionStatement","arrowBody","ObjectExpression","DoExpression","async","Binary","left","parentPos","nodePos","right","undefined","UnionTypeAnnotation","OptionalIndexedAccessType","objectType","TSAsExpression","TSUnionType","TSInferType","TSInstantiationExpression","typeParameters","BinaryExpression","inForStatementInit","SequenceExpression","property","YieldExpression","test","ClassExpression","exportDefault","UnaryLike","FunctionExpression","ConditionalExpression","OptionalMemberExpression","AssignmentExpression","LogicalExpression","Identifier","_inForInit","getRawIdentifier","_node$extra","extra","parenthesized","rightType","id","name","isFollowedByBracket","computed","optional","forHead","forInHead","forOfHead","await"],"sources":["../../src/node/parentheses.ts"],"sourcesContent":["import {\n isArrayTypeAnnotation,\n isBinaryExpression,\n isCallExpression,\n isForOfStatement,\n isIndexedAccessType,\n isMemberExpression,\n isObjectPattern,\n isOptionalMemberExpression,\n isYieldExpression,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport { TokenContext } from \"./index.ts\";\n\nconst PRECEDENCE = new Map([\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\nfunction getBinaryPrecedence(\n node: t.Binary | t.TSAsExpression | t.TSSatisfiesExpression,\n nodeType: string,\n): number;\nfunction getBinaryPrecedence(\n node: t.Node,\n nodeType: string,\n): number | undefined;\nfunction getBinaryPrecedence(node: t.Node, nodeType: string) {\n if (nodeType === \"BinaryExpression\" || nodeType === \"LogicalExpression\") {\n return PRECEDENCE.get((node as t.Binary).operator);\n }\n if (nodeType === \"TSAsExpression\" || nodeType === \"TSSatisfiesExpression\") {\n return PRECEDENCE.get(\"in\");\n }\n}\n\nfunction isTSTypeExpression(nodeType: string) {\n return (\n nodeType === \"TSAsExpression\" ||\n nodeType === \"TSSatisfiesExpression\" ||\n nodeType === \"TSTypeAssertion\"\n );\n}\n\nconst isClassExtendsClause = (\n node: t.Node,\n parent: t.Node,\n): parent is t.Class => {\n const parentType = parent.type;\n return (\n (parentType === \"ClassDeclaration\" || parentType === \"ClassExpression\") &&\n parent.superClass === node\n );\n};\n\nconst hasPostfixPart = (node: t.Node, parent: t.Node) => {\n const parentType = parent.type;\n return (\n ((parentType === \"MemberExpression\" ||\n parentType === \"OptionalMemberExpression\") &&\n parent.object === node) ||\n ((parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\") &&\n parent.callee === node) ||\n (parentType === \"TaggedTemplateExpression\" && parent.tag === node) ||\n parentType === \"TSNonNullExpression\"\n );\n};\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 tokenContext: number,\n): boolean {\n const parentType = parent.type;\n return (\n // (() => A) | (() => B)\n parentType === \"UnionTypeAnnotation\" ||\n // (() => A) & (() => B)\n parentType === \"IntersectionTypeAnnotation\" ||\n // (() => A)[]\n parentType === \"ArrayTypeAnnotation\" ||\n Boolean(tokenContext & TokenContext.arrowFlowReturnType)\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\nfunction needsParenBeforeExpressionBrace(tokenContext: number) {\n return Boolean(\n tokenContext & (TokenContext.expressionStatement | TokenContext.arrowBody),\n );\n}\n\nexport function ObjectExpression(\n node: t.ObjectExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return needsParenBeforeExpressionBrace(tokenContext);\n}\n\nexport function DoExpression(\n node: t.DoExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n // `async do` can start an expression statement\n return (\n !node.async && Boolean(tokenContext & TokenContext.expressionStatement)\n );\n}\n\nexport function Binary(\n node: t.Binary | t.TSAsExpression | t.TSSatisfiesExpression,\n parent: t.Node,\n): boolean | undefined {\n const parentType = parent.type;\n if (\n node.type === \"BinaryExpression\" &&\n node.operator === \"**\" &&\n parentType === \"BinaryExpression\" &&\n 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 parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"AwaitExpression\"\n ) {\n return true;\n }\n\n const parentPos = getBinaryPrecedence(parent, parentType);\n if (parentPos != null) {\n const nodePos = getBinaryPrecedence(node, node.type);\n if (\n // Logical expressions with the same precedence don't need parens.\n (parentPos === nodePos &&\n parentType === \"BinaryExpression\" &&\n parent.right === node) ||\n parentPos > nodePos\n ) {\n return true;\n }\n }\n\n return undefined;\n}\n\nexport function UnionTypeAnnotation(\n node: t.UnionTypeAnnotation,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"ArrayTypeAnnotation\" ||\n parentType === \"NullableTypeAnnotation\" ||\n parentType === \"IntersectionTypeAnnotation\" ||\n parentType === \"UnionTypeAnnotation\"\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) && parent.objectType === node;\n}\n\nexport function TSAsExpression(\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n parent: t.Node,\n): boolean {\n if (\n (parent.type === \"AssignmentExpression\" ||\n parent.type === \"AssignmentPattern\") &&\n parent.left === node\n ) {\n return true;\n }\n if (\n parent.type === \"BinaryExpression\" &&\n (parent.operator === \"|\" || parent.operator === \"&\") &&\n node === parent.left\n ) {\n return true;\n }\n return Binary(node, parent);\n}\n\nexport { TSAsExpression as TSSatisfiesExpression };\n\nexport { UnaryLike as TSTypeAssertion };\n\nexport function TSUnionType(node: t.TSUnionType, parent: t.Node): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSArrayType\" ||\n parentType === \"TSOptionalType\" ||\n parentType === \"TSIntersectionType\" ||\n parentType === \"TSRestType\"\n );\n}\n\nexport { TSUnionType as TSIntersectionType };\n\nexport function TSInferType(node: t.TSInferType, parent: t.Node): boolean {\n const parentType = parent.type;\n return parentType === \"TSArrayType\" || parentType === \"TSOptionalType\";\n}\n\nexport function TSInstantiationExpression(\n node: t.TSInstantiationExpression,\n parent: t.Node,\n) {\n const parentType = parent.type;\n return (\n (parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\" ||\n parentType === \"TSInstantiationExpression\") &&\n !!parent.typeParameters\n );\n}\n\nexport function BinaryExpression(\n node: t.BinaryExpression,\n parent: t.Node,\n tokenContext: unknown,\n inForStatementInit: boolean,\n): boolean {\n // for ((1 in []);;);\n // for (var x = (1 in []) in 2);\n return node.operator === \"in\" && inForStatementInit;\n}\n\nexport function SequenceExpression(\n node: t.SequenceExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n parentType === \"SequenceExpression\" ||\n parentType === \"ParenthesizedExpression\" ||\n (parentType === \"MemberExpression\" && parent.property === node) ||\n (parentType === \"OptionalMemberExpression\" && parent.property === node) ||\n parentType === \"TemplateLiteral\"\n ) {\n return false;\n }\n if (parentType === \"ClassDeclaration\") {\n return true;\n }\n if (parentType === \"ForOfStatement\") {\n return parent.right === node;\n }\n if (parentType === \"ExportDefaultDeclaration\") {\n return true;\n }\n\n return !isStatement(parent);\n}\n\nexport function YieldExpression(\n node: t.YieldExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n hasPostfixPart(node, parent) ||\n (parentType === \"AwaitExpression\" && isYieldExpression(node)) ||\n (parentType === \"ConditionalExpression\" && node === parent.test) ||\n isClassExtendsClause(node, parent) ||\n isTSTypeExpression(parentType)\n );\n}\n\nexport { YieldExpression as AwaitExpression };\n\nexport function ClassExpression(\n node: t.ClassExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return Boolean(\n tokenContext &\n (TokenContext.expressionStatement | TokenContext.exportDefault),\n );\n}\n\nexport function UnaryLike(\n node:\n | t.UnaryLike\n | t.TSTypeAssertion\n | t.ArrowFunctionExpression\n | t.ConditionalExpression\n | t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n return (\n hasPostfixPart(node, parent) ||\n (isBinaryExpression(parent) &&\n parent.operator === \"**\" &&\n parent.left === node) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport function FunctionExpression(\n node: t.FunctionExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return Boolean(\n tokenContext &\n (TokenContext.expressionStatement | TokenContext.exportDefault),\n );\n}\n\nexport function ConditionalExpression(\n node:\n | t.ConditionalExpression\n | t.ArrowFunctionExpression\n | t.AssignmentExpression,\n parent?: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n (parentType === \"ConditionalExpression\" && parent.test === node) ||\n parentType === \"AwaitExpression\" ||\n isTSTypeExpression(parentType)\n ) {\n return true;\n }\n\n return UnaryLike(node, parent);\n}\n\nexport { ConditionalExpression as ArrowFunctionExpression };\n\nexport function OptionalMemberExpression(\n node: t.OptionalMemberExpression,\n parent: t.Node,\n): boolean {\n return (\n (isCallExpression(parent) && parent.callee === node) ||\n (isMemberExpression(parent) && parent.object === node)\n );\n}\n\nexport { OptionalMemberExpression as OptionalCallExpression };\n\nexport function AssignmentExpression(\n node: t.AssignmentExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n if (\n needsParenBeforeExpressionBrace(tokenContext) &&\n isObjectPattern(node.left)\n ) {\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 const parentType = parent.type;\n if (isTSTypeExpression(parentType)) return true;\n if (parentType !== \"LogicalExpression\") return false;\n switch (node.operator) {\n case \"||\":\n return parent.operator === \"??\" || parent.operator === \"&&\";\n case \"&&\":\n return parent.operator === \"??\";\n case \"??\":\n return parent.operator !== \"??\";\n }\n}\n\nexport function Identifier(\n node: t.Identifier,\n parent: t.Node,\n tokenContext: number,\n _inForInit: boolean,\n getRawIdentifier: (node: t.Identifier) => string,\n): boolean {\n const parentType = parent.type;\n // 13.15.2 AssignmentExpression RS: Evaluation\n // (fn) = function () {};\n if (\n node.extra?.parenthesized &&\n parentType === \"AssignmentExpression\" &&\n parent.left === node\n ) {\n const rightType = parent.right.type;\n if (\n (rightType === \"FunctionExpression\" || rightType === \"ClassExpression\") &&\n parent.right.id == null\n ) {\n return true;\n }\n }\n\n if (getRawIdentifier && getRawIdentifier(node) !== node.name) {\n return false;\n }\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 if (\n isFollowedByBracket &&\n tokenContext &\n (TokenContext.expressionStatement |\n TokenContext.forHead |\n TokenContext.forInHead)\n ) {\n return true;\n }\n return Boolean(tokenContext & TokenContext.forOfHead);\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 return (\n node.name === \"async\" &&\n isForOfStatement(parent, { left: node, await: false })\n );\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/generator/lib/printer.js b/node_modules/@babel/generator/lib/printer.js index c60b3fd..54acf5a 100644 --- a/node_modules/@babel/generator/lib/printer.js +++ b/node_modules/@babel/generator/lib/printer.js @@ -7,8 +7,10 @@ exports.default = void 0; var _buffer = require("./buffer.js"); var n = require("./node/index.js"); var _t = require("@babel/types"); +var _tokenMap = require("./token-map.js"); var generatorFunctions = require("./generators/index.js"); const { + isExpression, isFunction, isStatement, isClassBody, @@ -19,59 +21,105 @@ const SCIENTIFIC_NOTATION = /e/i; const ZERO_DECIMAL_INTEGER = /\.0+$/; const HAS_NEWLINE = /[\n\r\u2028\u2029]/; const HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\n\r\u2028\u2029]|\*\//; +function commentIsNewline(c) { + return c.type === "CommentLine" || HAS_NEWLINE.test(c.value); +} const { needsParens } = n; class Printer { - constructor(format, map) { + constructor(format, map, tokens, originalCode) { this.inForStatementInit = false; this.tokenContext = 0; + this._tokens = null; + this._originalCode = null; this._currentNode = null; this._indent = 0; this._indentRepeat = 0; this._insideAux = false; - this._parenPushNewlineState = null; this._noLineTerminator = false; + this._noLineTerminatorAfterNode = null; this._printAuxAfterOnNextUserNode = false; this._printedComments = new Set(); this._endsWithInteger = false; this._endsWithWord = false; + this._endsWithDiv = false; this._lastCommentLine = 0; this._endsWithInnerRaw = false; this._indentInnerComments = true; + this.tokenMap = null; + this._boundGetRawIdentifier = this._getRawIdentifier.bind(this); this.format = format; + this._tokens = tokens; + this._originalCode = originalCode; this._indentRepeat = format.indent.style.length; this._inputMap = map == null ? void 0 : map._inputMap; this._buf = new _buffer.default(map, format.indent.style[0]); } - enterForStatementInit(val) { - const old = this.inForStatementInit; - if (old === val) return () => {}; - this.inForStatementInit = val; + enterForStatementInit() { + if (this.inForStatementInit) return () => {}; + this.inForStatementInit = true; return () => { - this.inForStatementInit = old; + this.inForStatementInit = false; + }; + } + enterDelimited() { + const oldInForStatementInit = this.inForStatementInit; + const oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode; + if (oldInForStatementInit === false && oldNoLineTerminatorAfterNode === null) { + return () => {}; + } + this.inForStatementInit = false; + this._noLineTerminatorAfterNode = null; + return () => { + this.inForStatementInit = oldInForStatementInit; + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; }; } generate(ast) { + if (this.format.preserveFormat) { + this.tokenMap = new _tokenMap.TokenMap(ast, this._tokens, this._originalCode); + } this.print(ast); this._maybeAddAuxComment(); return this._buf.get(); } indent() { - if (this.format.compact || this.format.concise) return; + const { + format + } = this; + if (format.preserveFormat || format.compact || format.concise) { + return; + } this._indent++; } dedent() { - if (this.format.compact || this.format.concise) return; + const { + format + } = this; + if (format.preserveFormat || format.compact || format.concise) { + return; + } this._indent--; } semicolon(force = false) { this._maybeAddAuxComment(); if (force) { this._appendChar(59); - } else { - this._queue(59); + this._noLineTerminator = false; + return; } + if (this.tokenMap) { + const node = this._currentNode; + if (node.start != null && node.end != null) { + if (!this.tokenMap.endMatches(node, ";")) { + return; + } + const indexes = this.tokenMap.getIndexes(this._currentNode); + this._catchUpTo(this._tokens[indexes[indexes.length - 1]].loc.start); + } + } + this._queue(59); this._noLineTerminator = false; } rightBrace(node) { @@ -86,7 +134,10 @@ class Printer { this.tokenChar(41); } space(force = false) { - if (this.format.compact) return; + const { + format + } = this; + if (format.compact || format.preserveFormat) return; if (force) { this._space(); } else if (this._buf.hasContent()) { @@ -98,8 +149,8 @@ class Printer { } word(str, noLineTerminatorAfter = false) { this.tokenContext = 0; - this._maybePrintInnerComments(); - if (this._endsWithWord || str.charCodeAt(0) === 47 && this.endsWith(47)) { + this._maybePrintInnerComments(str); + if (this._endsWithWord || this._endsWithDiv && str.charCodeAt(0) === 47) { this._space(); } this._maybeAddAuxComment(); @@ -118,21 +169,21 @@ class Printer { this.word(str); this._endsWithInteger = Number.isInteger(number) && !isNonDecimalLiteral(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && str.charCodeAt(str.length - 1) !== 46; } - token(str, maybeNewline = false) { + token(str, maybeNewline = false, occurrenceCount = 0) { this.tokenContext = 0; - this._maybePrintInnerComments(); + this._maybePrintInnerComments(str, occurrenceCount); const lastChar = this.getLastChar(); const strFirst = str.charCodeAt(0); if (lastChar === 33 && (str === "--" || strFirst === 61) || strFirst === 43 && lastChar === 43 || strFirst === 45 && lastChar === 45 || strFirst === 46 && this._endsWithInteger) { this._space(); } this._maybeAddAuxComment(); - this._append(str, maybeNewline); + this._append(str, maybeNewline, occurrenceCount); this._noLineTerminator = false; } tokenChar(char) { this.tokenContext = 0; - this._maybePrintInnerComments(); + this._maybePrintInnerComments(String.fromCharCode(char)); const lastChar = this.getLastChar(); if (char === 43 && lastChar === 43 || char === 45 && lastChar === 45 || char === 46 && this._endsWithInteger) { this._space(); @@ -183,7 +234,7 @@ class Printer { this._buf.source(prop, loc); } sourceWithOffset(prop, loc, columnOffset) { - if (!loc) return; + if (!loc || this.format.preserveFormat) return; this._catchUp(prop, loc); this._buf.sourceWithOffset(prop, loc, columnOffset); } @@ -199,22 +250,29 @@ class Printer { _newline() { this._queue(10); } - _append(str, maybeNewline) { - this._maybeAddParen(str); + _append(str, maybeNewline, occurrenceCount = 0) { + if (this.tokenMap) { + const token = this.tokenMap.findMatching(this._currentNode, str, occurrenceCount); + if (token) this._catchUpTo(token.loc.start); + } this._maybeIndent(str.charCodeAt(0)); this._buf.append(str, maybeNewline); this._endsWithWord = false; this._endsWithInteger = false; + this._endsWithDiv = false; } _appendChar(char) { - this._maybeAddParenChar(char); + if (this.tokenMap) { + const token = this.tokenMap.findMatching(this._currentNode, String.fromCharCode(char)); + if (token) this._catchUpTo(token.loc.start); + } this._maybeIndent(char); this._buf.appendChar(char); this._endsWithWord = false; this._endsWithInteger = false; + this._endsWithDiv = false; } _queue(char) { - this._maybeAddParenChar(char); this._maybeIndent(char); this._buf.queue(char); this._endsWithWord = false; @@ -230,47 +288,6 @@ class Printer { 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) { - 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(); @@ -279,38 +296,45 @@ class Printer { } } _catchUp(prop, loc) { - var _loc$prop; - if (!this.format.retainLines) return; - const line = loc == null || (_loc$prop = loc[prop]) == null ? void 0 : _loc$prop.line; - if (line != null) { - const count = line - this._buf.getCurrentLine(); - for (let i = 0; i < count; i++) { - this._newline(); + const { + format + } = this; + if (!format.preserveFormat) { + if (format.retainLines && loc != null && loc[prop]) { + this.catchUp(loc[prop].line); } + return; + } + const pos = loc == null ? void 0 : loc[prop]; + if (pos != null) this._catchUpTo(pos); + } + _catchUpTo({ + line, + column, + index + }) { + const count = line - this._buf.getCurrentLine(); + if (count > 0 && this._noLineTerminator) { + return; + } + for (let i = 0; i < count; i++) { + this._newline(); + } + const spacesCount = count > 0 ? column : column - this._buf.getCurrentColumn(); + if (spacesCount > 0) { + const spaces = this._originalCode ? this._originalCode.slice(index - spacesCount, index).replace(/[^\t\x0B\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/gu, " ") : " ".repeat(spacesCount); + this._append(spaces, false); } } _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); - } - } + printTerminatorless(node) { + this._noLineTerminator = true; + this.print(node); } - print(node, parent, noLineTerminatorAfter, trailingCommentsLineOffset, forceParens) { - var _node$extra, _node$leadingComments; + print(node, noLineTerminatorAfter, trailingCommentsLineOffset) { + var _node$extra, _node$leadingComments, _node$leadingComments2; if (!node) return; this._endsWithInnerRaw = false; const nodeType = node.type; @@ -323,13 +347,13 @@ class Printer { if (printMethod === undefined) { throw new ReferenceError(`unknown node of type ${JSON.stringify(nodeType)} with constructor ${JSON.stringify(node.constructor.name)}`); } - const oldNode = this._currentNode; + const parent = this._currentNode; this._currentNode = node; const oldInAux = this._insideAux; this._insideAux = node.loc == null; this._maybeAddAuxComment(this._insideAux && !oldInAux); const parenthesized = (_node$extra = node.extra) == null ? void 0 : _node$extra.parenthesized; - let shouldPrintParens = forceParens || parenthesized && format.retainFunctionParens && nodeType === "FunctionExpression" || needsParens(node, parent, this.tokenContext, this.inForStatementInit); + let shouldPrintParens = parenthesized && format.preserveFormat || parenthesized && format.retainFunctionParens && nodeType === "FunctionExpression" || needsParens(node, parent, this.tokenContext, this.inForStatementInit, format.preserveFormat ? this._boundGetRawIdentifier : undefined); if (!shouldPrintParens && parenthesized && (_node$leadingComments = node.leadingComments) != null && _node$leadingComments.length && node.leadingComments[0].type === "CommentBlock") { const parentType = parent == null ? void 0 : parent.type; switch (parentType) { @@ -346,11 +370,35 @@ class Printer { shouldPrintParens = true; } } - let exitInForStatementInit; + let indentParenthesized = false; + if (!shouldPrintParens && this._noLineTerminator && ((_node$leadingComments2 = node.leadingComments) != null && _node$leadingComments2.some(commentIsNewline) || this.format.retainLines && node.loc && node.loc.start.line > this._buf.getCurrentLine())) { + shouldPrintParens = true; + indentParenthesized = true; + } + let oldNoLineTerminatorAfterNode; + let oldInForStatementInitWasTrue; + if (!shouldPrintParens) { + noLineTerminatorAfter || (noLineTerminatorAfter = parent && this._noLineTerminatorAfterNode === parent && n.isLastChild(parent, node)); + if (noLineTerminatorAfter) { + var _node$trailingComment; + if ((_node$trailingComment = node.trailingComments) != null && _node$trailingComment.some(commentIsNewline)) { + if (isExpression(node)) shouldPrintParens = true; + } else { + oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode; + this._noLineTerminatorAfterNode = node; + } + } + } if (shouldPrintParens) { this.tokenChar(40); + if (indentParenthesized) this.indent(); this._endsWithInnerRaw = false; - exitInForStatementInit = this.enterForStatementInit(false); + if (this.inForStatementInit) { + oldInForStatementInitWasTrue = true; + this.inForStatementInit = false; + } + oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode; + this._noLineTerminatorAfterNode = null; } this._lastCommentLine = 0; this._printLeadingComments(node, parent); @@ -358,18 +406,25 @@ class Printer { this.exactSource(loc, printMethod.bind(this, node, parent)); if (shouldPrintParens) { this._printTrailingComments(node, parent); + if (indentParenthesized) { + this.dedent(); + this.newline(); + } this.tokenChar(41); this._noLineTerminator = noLineTerminatorAfter; - exitInForStatementInit(); + if (oldInForStatementInitWasTrue) this.inForStatementInit = true; } else if (noLineTerminatorAfter && !this._noLineTerminator) { this._noLineTerminator = true; this._printTrailingComments(node, parent); } else { this._printTrailingComments(node, parent, trailingCommentsLineOffset); } - this._currentNode = oldNode; + this._currentNode = parent; format.concise = oldConcise; this._insideAux = oldInAux; + if (oldNoLineTerminatorAfterNode !== undefined) { + this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode; + } this._endsWithInnerRaw = false; } _maybeAddAuxComment(enteredPositionlessNode) { @@ -404,7 +459,7 @@ class Printer { return extra.raw; } } - printJoin(nodes, parent, opts = {}) { + printJoin(nodes, opts = {}) { if (!(nodes != null && nodes.length)) return; let { indent @@ -427,12 +482,14 @@ class Printer { const node = nodes[i]; if (!node) continue; if (opts.statement) this._printNewline(i === 0, newlineOpts); - this.print(node, parent, undefined, opts.trailingCommentsLineOffset || 0); + this.print(node, undefined, opts.trailingCommentsLineOffset || 0); opts.iterator == null || opts.iterator(node, i); - if (i < len - 1) separator == null || separator(); + if (separator != null) { + if (i < len - 1) separator(i, false);else if (opts.printTrailingSeparator) separator(i, true); + } if (opts.statement) { - var _node$trailingComment; - if (!((_node$trailingComment = node.trailingComments) != null && _node$trailingComment.length)) { + var _node$trailingComment2; + if (!((_node$trailingComment2 = node.trailingComments) != null && _node$trailingComment2.length)) { this._lastCommentLine = 0; } if (i + 1 === len) { @@ -447,10 +504,10 @@ class Printer { } if (indent) this.dedent(); } - printAndIndentOnComments(node, parent) { + printAndIndentOnComments(node) { const indent = node.leadingComments && node.leadingComments.length > 0; if (indent) this.indent(); - this.print(node, parent); + this.print(node); if (indent) this.dedent(); } printBlock(parent) { @@ -458,7 +515,7 @@ class Printer { if (node.type !== "EmptyStatement") { this.space(); } - this.print(node, parent); + this.print(node); } _printTrailingComments(node, parent, lineOffset) { const { @@ -477,12 +534,15 @@ class Printer { if (!(comments != null && comments.length)) return; this._printComments(0, comments, node, parent); } - _maybePrintInnerComments() { - if (this._endsWithInnerRaw) this.printInnerComments(); + _maybePrintInnerComments(nextTokenStr, nextTokenOccurrenceCount) { + if (this._endsWithInnerRaw) { + var _this$tokenMap; + this.printInnerComments((_this$tokenMap = this.tokenMap) == null ? void 0 : _this$tokenMap.findMatching(this._currentNode, nextTokenStr, nextTokenOccurrenceCount)); + } this._endsWithInnerRaw = true; this._indentInnerComments = true; } - printInnerComments() { + printInnerComments(nextToken) { const node = this._currentNode; const comments = node.innerComments; if (!(comments != null && comments.length)) return; @@ -490,7 +550,7 @@ class Printer { const indent = this._indentInnerComments; const printedCommentsCount = this._printedComments.size; if (indent) this.indent(); - this._printComments(1, comments, node); + this._printComments(1, comments, node, undefined, undefined, nextToken); if (hasSpace && printedCommentsCount !== this._printedComments.size) { this.space(); } @@ -499,17 +559,23 @@ class Printer { noIndentInnerCommentsHere() { this._indentInnerComments = false; } - printSequence(nodes, parent, opts = {}) { + printSequence(nodes, opts = {}) { var _opts$indent; opts.statement = true; (_opts$indent = opts.indent) != null ? _opts$indent : opts.indent = false; - this.printJoin(nodes, parent, opts); + this.printJoin(nodes, opts); } - printList(items, parent, opts = {}) { + printList(items, opts = {}) { if (opts.separator == null) { opts.separator = commaSeparator; } - this.printJoin(items, parent, opts); + this.printJoin(items, opts); + } + shouldPrintTrailingComma(listEnd) { + if (!this.tokenMap) return null; + const listEndIndex = this.tokenMap.findLastIndex(this._currentNode, token => this.tokenMap.matchesOriginal(token, listEnd)); + if (listEndIndex <= 0) return null; + return this.tokenMap.matchesOriginal(this._tokens[listEndIndex - 1], ","); } _printNewline(newLine, opts) { const format = this.format; @@ -534,12 +600,18 @@ class Printer { this.newline(1); } } - _shouldPrintComment(comment) { + _shouldPrintComment(comment, nextToken) { if (comment.ignore) return 0; if (this._printedComments.has(comment)) return 0; if (this._noLineTerminator && HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)) { return 2; } + if (nextToken && this.tokenMap) { + const commentTok = this.tokenMap.find(this._currentNode, token => token.value === comment.value); + if (commentTok && commentTok.start > nextToken.start) { + return 2; + } + } this._printedComments.add(comment); if (!this.format.shouldPrintComment(comment.value)) { return 0; @@ -554,19 +626,11 @@ class Printer { this.newline(1); } const lastCharCode = this.getLastChar(); - if (lastCharCode !== 91 && lastCharCode !== 123) { + if (lastCharCode !== 91 && lastCharCode !== 123 && lastCharCode !== 40) { this.space(); } let val; if (isBlockComment) { - const { - _parenPushNewlineState - } = this; - if ((_parenPushNewlineState == null ? void 0 : _parenPushNewlineState.printed) === false && HAS_NEWLINE.test(comment.value)) { - this.tokenChar(40); - this.indent(); - _parenPushNewlineState.printed = true; - } val = `/*${comment.value}*/`; if (this.format.indent.adjustMultilineComment) { var _comment$loc; @@ -590,7 +654,7 @@ class Printer { } else { val = `/*${comment.value}*/`; } - if (this.endsWith(47)) this._space(); + if (this._endsWithDiv) this._space(); this.source("start", comment.loc); this._append(val, isBlockComment); if (!isBlockComment && !noLineTerminator) { @@ -600,7 +664,7 @@ class Printer { this.newline(1); } } - _printComments(type, comments, node, parent, lineOffset = 0) { + _printComments(type, comments, node, parent, lineOffset = 0, nextToken) { const nodeLoc = node.loc; const len = comments.length; let hasLoc = !!nodeLoc; @@ -611,7 +675,7 @@ class Printer { 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); + const shouldPrint = this._shouldPrintComment(comment, nextToken); if (shouldPrint === 2) { hasLoc = false; break; @@ -684,9 +748,9 @@ Object.assign(Printer.prototype, generatorFunctions); Printer.prototype.Noop = function Noop() {}; } var _default = exports.default = Printer; -function commaSeparator() { - this.tokenChar(44); - this.space(); +function commaSeparator(occurrenceCount, last) { + this.token(",", false, occurrenceCount); + if (!last) 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 index 961e855..068bd78 100644 --- a/node_modules/@babel/generator/lib/printer.js.map +++ b/node_modules/@babel/generator/lib/printer.js.map @@ -1 +1 @@ -{"version":3,"names":["_buffer","require","n","_t","generatorFunctions","isFunction","isStatement","isClassBody","isTSInterfaceBody","isTSEnumDeclaration","SCIENTIFIC_NOTATION","ZERO_DECIMAL_INTEGER","HAS_NEWLINE","HAS_NEWLINE_OR_BlOCK_COMMENT_END","needsParens","Printer","constructor","format","map","inForStatementInit","tokenContext","_currentNode","_indent","_indentRepeat","_insideAux","_parenPushNewlineState","_noLineTerminator","_printAuxAfterOnNextUserNode","_printedComments","Set","_endsWithInteger","_endsWithWord","_lastCommentLine","_endsWithInnerRaw","_indentInnerComments","indent","style","length","_inputMap","_buf","Buffer","enterForStatementInit","val","old","generate","ast","print","_maybeAddAuxComment","get","compact","concise","dedent","semicolon","force","_appendChar","_queue","rightBrace","node","minified","removeLastSemicolon","sourceWithOffset","loc","token","rightParens","space","_space","hasContent","lastCp","getLastChar","word","str","noLineTerminatorAfter","_maybePrintInnerComments","charCodeAt","endsWith","_append","number","isNonDecimalLiteral","secondChar","Number","isInteger","test","maybeNewline","lastChar","strFirst","tokenChar","char","newline","i","retainLines","getNewlineCount","j","_newline","endsWithCharAndNewline","removeTrailingNewline","exactSource","cb","_catchUp","source","prop","columnOffset","sourceIdentifierName","identifierName","pos","_canMarkIdName","sourcePosition","_sourcePosition","identifierNamePos","_maybeAddParen","_maybeIndent","append","_maybeAddParenChar","appendChar","queue","firstChar","queueIndentation","_getIndent","_shouldIndent","parenPushNewlineState","printed","len","cha","chaPost","catchUp","line","count","getCurrentLine","_loc$prop","printTerminatorless","parent","isLabel","terminatorState","trailingCommentsLineOffset","forceParens","_node$extra","_node$leadingComments","nodeType","type","oldConcise","_compact","printMethod","undefined","ReferenceError","JSON","stringify","name","oldNode","oldInAux","parenthesized","extra","shouldPrintParens","retainFunctionParens","leadingComments","parentType","callee","exitInForStatementInit","_printLeadingComments","bind","_printTrailingComments","enteredPositionlessNode","_printAuxBeforeComment","_printAuxAfterComment","comment","auxiliaryCommentBefore","_printComment","value","auxiliaryCommentAfter","getPossibleRaw","raw","rawValue","printJoin","nodes","opts","_nodes$0$loc","startLine","start","newlineOpts","addNewlines","nextNodeStartLine","separator","statement","_printNewline","iterator","_node$trailingComment","trailingComments","_nextNode$loc","nextNode","printAndIndentOnComments","printBlock","body","lineOffset","innerComments","_printComments","comments","printInnerComments","hasSpace","printedCommentsCount","size","noIndentInnerCommentsHere","printSequence","_opts$indent","printList","items","commaSeparator","newLine","lastCommentLine","offset","_shouldPrintComment","ignore","has","add","shouldPrintComment","skipNewLines","noLineTerminator","isBlockComment","printNewLines","lastCharCode","adjustMultilineComment","_comment$loc","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","Noop","_default","exports","default"],"sources":["../src/printer.ts"],"sourcesContent":["import Buffer, { type Pos } from \"./buffer.ts\";\nimport type { Loc } from \"./buffer.ts\";\nimport * as n from \"./node/index.ts\";\nimport type * as t from \"@babel/types\";\nimport {\n isFunction,\n isStatement,\n isClassBody,\n isTSInterfaceBody,\n isTSEnumDeclaration,\n} from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\n\nimport type { GeneratorOptions } from \"./index.ts\";\nimport * as generatorFunctions from \"./generators/index.ts\";\nimport type SourceMap from \"./source-map.ts\";\nimport type { TraceMap } from \"@jridgewell/trace-mapping\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst HAS_NEWLINE = /[\\n\\r\\u2028\\u2029]/;\nconst HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\\n\\r\\u2028\\u2029]|\\*\\//;\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 /**\n * @deprecated Removed in Babel 8, syntax type is always 'hash'\n */\n recordAndTupleSyntaxType?: GeneratorOptions[\"recordAndTupleSyntaxType\"];\n jsescOption: jsescOptions;\n /**\n * @deprecated Removed in Babel 8, use `jsescOption` instead\n */\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?: GeneratorOptions[\"topicToken\"];\n /**\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\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\n this._indentRepeat = format.indent.style.length;\n\n this._inputMap = map?._inputMap;\n\n this._buf = new Buffer(map, format.indent.style[0]);\n }\n declare _inputMap: TraceMap;\n\n declare format: Format;\n\n inForStatementInit: boolean = false;\n enterForStatementInit(val: boolean) {\n const old = this.inForStatementInit;\n if (old === val) return () => {};\n this.inForStatementInit = val;\n return () => {\n this.inForStatementInit = old;\n };\n }\n\n tokenContext: number = 0;\n\n declare _buf: Buffer;\n _currentNode: t.Node = null;\n _indent: 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(node: t.Node): void {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\"}\");\n }\n\n rightParens(node: t.Node): void {\n this.sourceWithOffset(\"end\", node.loc, -1);\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.tokenContext = 0;\n\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, number?: number): void {\n // const NON_DECIMAL_LITERAL = /^0[box]/;\n function isNonDecimalLiteral(str: string) {\n if (str.length > 2 && str.charCodeAt(0) === charCodes.digit0) {\n const secondChar = str.charCodeAt(1);\n return (\n secondChar === charCodes.lowercaseB ||\n secondChar === charCodes.lowercaseO ||\n secondChar === charCodes.lowercaseX\n );\n }\n return false;\n }\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(number) &&\n !isNonDecimalLiteral(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 token(str: string, maybeNewline = false): void {\n this.tokenContext = 0;\n\n this._maybePrintInnerComments();\n\n const lastChar = this.getLastChar();\n const strFirst = str.charCodeAt(0);\n if (\n (lastChar === charCodes.exclamationMark &&\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 (\n ch === charCodes.lessThan &&\n !this.inModule &&\n this.options.annexB\n ) {\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 // `` 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 (\n ch === charCodes.lessThan &&\n !this.inModule &&\n this.options.annexB\n ) {\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 // ` + +## Sponsors + +The following companies, organizations, and individuals support ESLint's ongoing maintenance and development. [Become a Sponsor](https://eslint.org/donate) +to get your logo on our READMEs and [website](https://eslint.org/sponsors). + +

Platinum Sponsors

+

Automattic Airbnb

Gold Sponsors

+

trunk.io

Silver Sponsors

+

JetBrains Liftoff American Express Workleap

Bronze Sponsors

+

WordHint Anagram Solver Icons8 Discord GitBook Nx HeroCoders

+

Technology Sponsors

+Technology sponsors allow us to use their products and services for free as part of a contribution to the open source ecosystem and our work. +

Netlify Algolia 1Password

+ diff --git a/node_modules/eslint-scope/lib/definition.js b/node_modules/eslint-scope/lib/definition.js index 172bfe2..9744ef4 100644 --- a/node_modules/eslint-scope/lib/definition.js +++ b/node_modules/eslint-scope/lib/definition.js @@ -21,18 +21,17 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -"use strict"; -const Variable = require("./variable"); +import Variable from "./variable.js"; /** - * @class Definition + * @constructor Definition */ class Definition { constructor(type, name, node, parent, index, kind) { /** - * @member {String} Definition#type - type of the occurrence (e.g. "Parameter", "Variable", ...). + * @member {string} Definition#type - type of the occurrence (e.g. "Parameter", "Variable", ...). */ this.type = type; @@ -52,19 +51,19 @@ class Definition { this.parent = parent; /** - * @member {Number?} Definition#index - the index in the declaration statement. + * @member {number?} Definition#index - the index in the declaration statement. */ this.index = index; /** - * @member {String?} Definition#kind - the kind of the declaration statement. + * @member {string?} Definition#kind - the kind of the declaration statement. */ this.kind = kind; } } /** - * @class ParameterDefinition + * @constructor ParameterDefinition */ class ParameterDefinition extends Definition { constructor(name, node, index, rest) { @@ -78,7 +77,7 @@ class ParameterDefinition extends Definition { } } -module.exports = { +export { ParameterDefinition, Definition }; diff --git a/node_modules/eslint-scope/lib/index.js b/node_modules/eslint-scope/lib/index.js index 0f16fa4..7e79c92 100644 --- a/node_modules/eslint-scope/lib/index.js +++ b/node_modules/eslint-scope/lib/index.js @@ -45,18 +45,15 @@ * The main interface is the {@link analyze} function. * @module escope */ -"use strict"; -/* eslint no-underscore-dangle: ["error", { "allow": ["__currentScope"] }] */ +import { assert } from "./assert.js"; -const assert = require("assert"); +import ScopeManager from "./scope-manager.js"; +import Referencer from "./referencer.js"; +import Reference from "./reference.js"; +import Variable from "./variable.js"; -const ScopeManager = require("./scope-manager"); -const Referencer = require("./referencer"); -const Reference = require("./reference"); -const Variable = require("./variable"); -const Scope = require("./scope").Scope; -const version = require("../package.json").version; +import eslintScopeVersion from "./version.js"; /** * Set the default options @@ -65,10 +62,9 @@ const version = require("../package.json").version; function defaultOptions() { return { optimistic: false, - directive: false, nodejsScope: false, impliedStrict: false, - sourceType: "script", // one of ['script', 'module'] + sourceType: "script", // one of ['script', 'module', 'commonjs'] ecmaVersion: 5, childVisitorKeys: null, fallback: "iteration" @@ -77,15 +73,15 @@ function defaultOptions() { /** * Preform deep update on option object - * @param {Object} target - Options - * @param {Object} override - Updates + * @param {Object} target Options + * @param {Object} override Updates * @returns {Object} Updated options */ function updateDeeply(target, override) { /** * Is hash object - * @param {Object} value - Test value + * @param {Object} value Test value * @returns {boolean} Result */ function isHashObject(value) { @@ -93,7 +89,7 @@ function updateDeeply(target, override) { } for (const key in override) { - if (Object.prototype.hasOwnProperty.call(override, key)) { + if (Object.hasOwn(override, key)) { const val = override[key]; if (isHashObject(val)) { @@ -114,20 +110,19 @@ function updateDeeply(target, override) { * Main interface function. Takes an Espree syntax tree and returns the * analyzed scopes. * @function analyze - * @param {espree.Tree} tree - Abstract Syntax Tree - * @param {Object} providedOptions - Options that tailor the scope analysis - * @param {boolean} [providedOptions.optimistic=false] - the optimistic flag - * @param {boolean} [providedOptions.directive=false]- the directive flag - * @param {boolean} [providedOptions.ignoreEval=false]- whether to check 'eval()' calls - * @param {boolean} [providedOptions.nodejsScope=false]- whether the whole + * @param {espree.Tree} tree Abstract Syntax Tree + * @param {Object} providedOptions Options that tailor the scope analysis + * @param {boolean} [providedOptions.optimistic=false] the optimistic flag + * @param {boolean} [providedOptions.ignoreEval=false] whether to check 'eval()' calls + * @param {boolean} [providedOptions.nodejsScope=false] whether the whole * script is executed under node.js environment. When enabled, escope adds * a function scope immediately following the global scope. - * @param {boolean} [providedOptions.impliedStrict=false]- implied strict mode + * @param {boolean} [providedOptions.impliedStrict=false] implied strict mode * (if ecmaVersion >= 5). - * @param {string} [providedOptions.sourceType='script']- the source type of the script. one of 'script' and 'module' - * @param {number} [providedOptions.ecmaVersion=5]- which ECMAScript version is considered - * @param {Object} [providedOptions.childVisitorKeys=null] - Additional known visitor keys. See [esrecurse](https://github.com/estools/esrecurse)'s the `childVisitorKeys` option. - * @param {string} [providedOptions.fallback='iteration'] - A kind of the fallback in order to encounter with unknown node. See [esrecurse](https://github.com/estools/esrecurse)'s the `fallback` option. + * @param {string} [providedOptions.sourceType='script'] the source type of the script. one of 'script', 'module', and 'commonjs' + * @param {number} [providedOptions.ecmaVersion=5] which ECMAScript version is considered + * @param {Object} [providedOptions.childVisitorKeys=null] Additional known visitor keys. See [esrecurse](https://github.com/estools/esrecurse)'s the `childVisitorKeys` option. + * @param {string} [providedOptions.fallback='iteration'] A kind of the fallback in order to encounter with unknown node. See [esrecurse](https://github.com/estools/esrecurse)'s the `fallback` option. * @returns {ScopeManager} ScopeManager */ function analyze(tree, providedOptions) { @@ -142,10 +137,10 @@ function analyze(tree, providedOptions) { return scopeManager; } -module.exports = { +export { /** @name module:escope.version */ - version, + eslintScopeVersion as version, /** @name module:escope.Reference */ Reference, @@ -153,13 +148,22 @@ module.exports = { /** @name module:escope.Variable */ Variable, - /** @name module:escope.Scope */ - Scope, - /** @name module:escope.ScopeManager */ ScopeManager, + + /** @name module:escope.Referencer */ + Referencer, + analyze }; +/** @name module:escope.Definition */ +export { Definition } from "./definition.js"; + +/** @name module:escope.PatternVisitor */ +export { default as PatternVisitor } from "./pattern-visitor.js"; + +/** @name module:escope.Scope */ +export { Scope } from "./scope.js"; /* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/eslint-scope/lib/pattern-visitor.js b/node_modules/eslint-scope/lib/pattern-visitor.js index afa6291..367a377 100644 --- a/node_modules/eslint-scope/lib/pattern-visitor.js +++ b/node_modules/eslint-scope/lib/pattern-visitor.js @@ -21,22 +21,24 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -"use strict"; -/* eslint-disable no-undefined */ +import estraverse from "estraverse"; +import esrecurse from "esrecurse"; -const Syntax = require("estraverse").Syntax; -const esrecurse = require("esrecurse"); +const { Syntax } = estraverse; /** * Get last array element - * @param {array} xs - array + * @param {Array} xs array * @returns {any} Last elment */ function getLast(xs) { - return xs[xs.length - 1] || null; + return xs.at(-1) || null; } +/** + * Visitor for destructuring patterns. + */ class PatternVisitor extends esrecurse.Visitor { static isPattern(node) { const nodeType = node.type; @@ -65,7 +67,7 @@ class PatternVisitor extends esrecurse.Visitor { this.callback(pattern, { topLevel: pattern === this.rootPattern, - rest: lastRestElement !== null && lastRestElement !== undefined && lastRestElement.argument === pattern, + rest: lastRestElement !== null && lastRestElement !== void 0 && lastRestElement.argument === pattern, assignments: this.assignments }); } @@ -147,6 +149,6 @@ class PatternVisitor extends esrecurse.Visitor { } } -module.exports = PatternVisitor; +export default PatternVisitor; /* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/eslint-scope/lib/reference.js b/node_modules/eslint-scope/lib/reference.js index 9529827..e657d62 100644 --- a/node_modules/eslint-scope/lib/reference.js +++ b/node_modules/eslint-scope/lib/reference.js @@ -21,7 +21,6 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -"use strict"; const READ = 0x1; const WRITE = 0x2; @@ -29,7 +28,7 @@ const RW = READ | WRITE; /** * A Reference represents a single occurrence of an identifier in code. - * @class Reference + * @constructor Reference */ class Reference { constructor(ident, scope, flag, writeExpr, maybeImplicitGlobal, partial, init) { @@ -91,7 +90,7 @@ class Reference { /** * Whether the reference is static. - * @method Reference#isStatic + * @function Reference#isStatic * @returns {boolean} static */ isStatic() { @@ -100,7 +99,7 @@ class Reference { /** * Whether the reference is writeable. - * @method Reference#isWrite + * @function Reference#isWrite * @returns {boolean} write */ isWrite() { @@ -109,7 +108,7 @@ class Reference { /** * Whether the reference is readable. - * @method Reference#isRead + * @function Reference#isRead * @returns {boolean} read */ isRead() { @@ -118,7 +117,7 @@ class Reference { /** * Whether the reference is read-only. - * @method Reference#isReadOnly + * @function Reference#isReadOnly * @returns {boolean} read only */ isReadOnly() { @@ -127,7 +126,7 @@ class Reference { /** * Whether the reference is write-only. - * @method Reference#isWriteOnly + * @function Reference#isWriteOnly * @returns {boolean} write only */ isWriteOnly() { @@ -136,7 +135,7 @@ class Reference { /** * Whether the reference is read-write. - * @method Reference#isReadWrite + * @function Reference#isReadWrite * @returns {boolean} read write */ isReadWrite() { @@ -162,6 +161,6 @@ Reference.WRITE = WRITE; */ Reference.RW = RW; -module.exports = Reference; +export default Reference; /* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/eslint-scope/lib/referencer.js b/node_modules/eslint-scope/lib/referencer.js index 63d1935..f939aa8 100644 --- a/node_modules/eslint-scope/lib/referencer.js +++ b/node_modules/eslint-scope/lib/referencer.js @@ -21,28 +21,23 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -"use strict"; -/* eslint-disable no-underscore-dangle */ -/* eslint-disable no-undefined */ +import estraverse from "estraverse"; +import esrecurse from "esrecurse"; +import Reference from "./reference.js"; +import Variable from "./variable.js"; +import PatternVisitor from "./pattern-visitor.js"; +import { Definition, ParameterDefinition } from "./definition.js"; +import { assert } from "./assert.js"; -const Syntax = require("estraverse").Syntax; -const esrecurse = require("esrecurse"); -const Reference = require("./reference"); -const Variable = require("./variable"); -const PatternVisitor = require("./pattern-visitor"); -const definition = require("./definition"); -const assert = require("assert"); - -const ParameterDefinition = definition.ParameterDefinition; -const Definition = definition.Definition; +const { Syntax } = estraverse; /** * Traverse identifier in pattern - * @param {Object} options - options - * @param {pattern} rootPattern - root pattern - * @param {Refencer} referencer - referencer - * @param {callback} callback - callback + * @param {Object} options options + * @param {pattern} rootPattern root pattern + * @param {Refencer} referencer referencer + * @param {callback} callback callback * @returns {void} */ function traverseIdentifierInPattern(options, rootPattern, referencer, callback) { @@ -53,7 +48,7 @@ function traverseIdentifierInPattern(options, rootPattern, referencer, callback) visitor.visit(rootPattern); // Process the right hand nodes recursively. - if (referencer !== null && referencer !== undefined) { + if (referencer !== null && referencer !== void 0) { visitor.rightHandNodes.forEach(referencer.visit, referencer); } } @@ -64,6 +59,9 @@ function traverseIdentifierInPattern(options, rootPattern, referencer, callback) // FIXME: Now, we don't create module environment, because the context is // implementation dependent. +/** + * Visitor for import specifiers. + */ class Importer extends esrecurse.Visitor { constructor(declaration, referencer) { super(null, referencer.options); @@ -110,7 +108,9 @@ class Importer extends esrecurse.Visitor { } } -// Referencing variables and creating bindings. +/** + * Referencing variables and creating bindings. + */ class Referencer extends esrecurse.Visitor { constructor(options, scopeManager) { super(null, options); @@ -209,8 +209,8 @@ class Referencer extends esrecurse.Visitor { /** * Visit pattern callback - * @param {pattern} pattern - pattern - * @param {Object} info - info + * @param {pattern} pattern pattern + * @param {Object} info info * @returns {void} */ function visitPatternCallback(pattern, info) { @@ -274,8 +274,6 @@ class Referencer extends esrecurse.Visitor { )); } - this.visit(node.superClass); - this.scopeManager.__nestClassScope(node); if (node.id) { @@ -286,6 +284,8 @@ class Referencer extends esrecurse.Visitor { node )); } + + this.visit(node.superClass); this.visit(node.body); this.close(node); @@ -395,7 +395,7 @@ class Referencer extends esrecurse.Visitor { this.currentScope().__define(pattern, new Definition( Variable.CatchClause, - node.param, + pattern, node, null, null, @@ -411,7 +411,7 @@ class Referencer extends esrecurse.Visitor { Program(node) { this.scopeManager.__nestGlobalScope(node); - if (this.scopeManager.__isNodejsScope()) { + if (this.scopeManager.isGlobalReturn()) { // Force strictness of GlobalScope to false when using node.js scope. this.currentScope().isStrict = false; @@ -434,6 +434,12 @@ class Referencer extends esrecurse.Visitor { this.currentScope().__referencing(node); } + // eslint-disable-next-line class-methods-use-this -- Desired as instance method + PrivateIdentifier() { + + // Do nothing. + } + UpdateExpression(node) { if (PatternVisitor.isPattern(node.argument)) { this.currentScope().__referencing(node.argument, Reference.RW, null); @@ -453,13 +459,34 @@ class Referencer extends esrecurse.Visitor { this.visitProperty(node); } + PropertyDefinition(node) { + const { computed, key, value } = node; + + if (computed) { + this.visit(key); + } + if (value) { + this.scopeManager.__nestClassFieldInitializerScope(value); + this.visit(value); + this.close(value); + } + } + + StaticBlock(node) { + this.scopeManager.__nestClassStaticBlockScope(node); + + this.visitChildren(node); + + this.close(node); + } + MethodDefinition(node) { this.visitProperty(node); } - BreakStatement() {} // eslint-disable-line class-methods-use-this + BreakStatement() {} // eslint-disable-line class-methods-use-this -- Desired as instance method - ContinueStatement() {} // eslint-disable-line class-methods-use-this + ContinueStatement() {} // eslint-disable-line class-methods-use-this -- Desired as instance method LabeledStatement(node) { this.visit(node.body); @@ -618,12 +645,12 @@ class Referencer extends esrecurse.Visitor { this.visit(local); } - MetaProperty() { // eslint-disable-line class-methods-use-this + MetaProperty() { // eslint-disable-line class-methods-use-this -- Desired as instance method // do nothing. } } -module.exports = Referencer; +export default Referencer; /* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/eslint-scope/lib/scope-manager.js b/node_modules/eslint-scope/lib/scope-manager.js index c192799..a136648 100644 --- a/node_modules/eslint-scope/lib/scope-manager.js +++ b/node_modules/eslint-scope/lib/scope-manager.js @@ -21,26 +21,25 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -"use strict"; -/* eslint-disable no-underscore-dangle */ - -const Scope = require("./scope"); -const assert = require("assert"); - -const GlobalScope = Scope.GlobalScope; -const CatchScope = Scope.CatchScope; -const WithScope = Scope.WithScope; -const ModuleScope = Scope.ModuleScope; -const ClassScope = Scope.ClassScope; -const SwitchScope = Scope.SwitchScope; -const FunctionScope = Scope.FunctionScope; -const ForScope = Scope.ForScope; -const FunctionExpressionNameScope = Scope.FunctionExpressionNameScope; -const BlockScope = Scope.BlockScope; +import { + BlockScope, + CatchScope, + ClassFieldInitializerScope, + ClassStaticBlockScope, + ClassScope, + ForScope, + FunctionExpressionNameScope, + FunctionScope, + GlobalScope, + ModuleScope, + SwitchScope, + WithScope +} from "./scope.js"; +import { assert } from "./assert.js"; /** - * @class ScopeManager + * @constructor ScopeManager */ class ScopeManager { constructor(options) { @@ -52,10 +51,6 @@ class ScopeManager { this.__declaredVariables = new WeakMap(); } - __useDirective() { - return this.__options.directive; - } - __isOptimistic() { return this.__options.optimistic; } @@ -64,8 +59,8 @@ class ScopeManager { return this.__options.ignoreEval; } - __isNodejsScope() { - return this.__options.nodejsScope; + isGlobalReturn() { + return this.__options.nodejsScope || this.__options.sourceType === "commonjs"; } isModule() { @@ -91,8 +86,7 @@ class ScopeManager { * "are declared by the node" means the node is same as `Variable.defs[].node` or `Variable.defs[].parent`. * If the node declares nothing, this method returns an empty array. * CAUTION: This API is experimental. See https://github.com/estools/escope/pull/69 for more details. - * - * @param {Espree.Node} node - a node to get. + * @param {Espree.Node} node a node to get. * @returns {Variable[]} variables that declared by the node. */ getDeclaredVariables(node) { @@ -101,16 +95,16 @@ class ScopeManager { /** * acquire scope from node. - * @method ScopeManager#acquire - * @param {Espree.Node} node - node for the acquired scope. - * @param {boolean=} inner - look up the most inner scope, default value is false. + * @function ScopeManager#acquire + * @param {Espree.Node} node node for the acquired scope. + * @param {?boolean} [inner=false] look up the most inner scope, default value is false. * @returns {Scope?} Scope from node */ acquire(node, inner) { /** * predicate - * @param {Scope} testScope - scope to test + * @param {Scope} testScope scope to test * @returns {boolean} predicate */ function predicate(testScope) { @@ -155,8 +149,8 @@ class ScopeManager { /** * acquire all scopes from node. - * @method ScopeManager#acquireAll - * @param {Espree.Node} node - node for the acquired scope. + * @function ScopeManager#acquireAll + * @param {Espree.Node} node node for the acquired scope. * @returns {Scopes?} Scope array */ acquireAll(node) { @@ -165,9 +159,9 @@ class ScopeManager { /** * release the node. - * @method ScopeManager#release - * @param {Espree.Node} node - releasing node. - * @param {boolean=} inner - look up the most inner scope, default value is false. + * @function ScopeManager#release + * @param {Espree.Node} node releasing node. + * @param {?boolean} [inner=false] look up the most inner scope, default value is false. * @returns {Scope?} upper scope for the node. */ release(node, inner) { @@ -184,9 +178,9 @@ class ScopeManager { return null; } - attach() { } // eslint-disable-line class-methods-use-this + attach() { } // eslint-disable-line class-methods-use-this -- Desired as instance method - detach() { } // eslint-disable-line class-methods-use-this + detach() { } // eslint-disable-line class-methods-use-this -- Desired as instance method __nestScope(scope) { if (scope instanceof GlobalScope) { @@ -225,6 +219,14 @@ class ScopeManager { return this.__nestScope(new ClassScope(this, this.__currentScope, node)); } + __nestClassFieldInitializerScope(node) { + return this.__nestScope(new ClassFieldInitializerScope(this, this.__currentScope, node)); + } + + __nestClassStaticBlockScope(node) { + return this.__nestScope(new ClassStaticBlockScope(this, this.__currentScope, node)); + } + __nestSwitchScope(node) { return this.__nestScope(new SwitchScope(this, this.__currentScope, node)); } @@ -242,6 +244,6 @@ class ScopeManager { } } -module.exports = ScopeManager; +export default ScopeManager; /* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/eslint-scope/lib/scope.js b/node_modules/eslint-scope/lib/scope.js index bdb5f63..b3ef026 100644 --- a/node_modules/eslint-scope/lib/scope.js +++ b/node_modules/eslint-scope/lib/scope.js @@ -21,27 +21,24 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -"use strict"; -/* eslint-disable no-underscore-dangle */ -/* eslint-disable no-undefined */ +import estraverse from "estraverse"; -const Syntax = require("estraverse").Syntax; +import Reference from "./reference.js"; +import Variable from "./variable.js"; +import { Definition } from "./definition.js"; +import { assert } from "./assert.js"; -const Reference = require("./reference"); -const Variable = require("./variable"); -const Definition = require("./definition").Definition; -const assert = require("assert"); +const { Syntax } = estraverse; /** * Test if scope is struct - * @param {Scope} scope - scope - * @param {Block} block - block - * @param {boolean} isMethodDefinition - is method definition - * @param {boolean} useDirective - use directive + * @param {Scope} scope scope + * @param {Block} block block + * @param {boolean} isMethodDefinition is method definition * @returns {boolean} is strict scope */ -function isStrictScope(scope, block, isMethodDefinition, useDirective) { +function isStrictScope(scope, block, isMethodDefinition) { let body; // When upper scope is exists and strict, inner scope is also strict. @@ -81,48 +78,36 @@ function isStrictScope(scope, block, isMethodDefinition, useDirective) { return false; } - // Search 'use strict' directive. - if (useDirective) { - for (let i = 0, iz = body.body.length; i < iz; ++i) { - const stmt = body.body[i]; + // Search for a 'use strict' directive. + for (let i = 0, iz = body.body.length; i < iz; ++i) { + const stmt = body.body[i]; - if (stmt.type !== Syntax.DirectiveStatement) { - break; - } - if (stmt.raw === "\"use strict\"" || stmt.raw === "'use strict'") { - return true; - } + /* + * Check if the current statement is a directive. + * If it isn't, then we're past the directive prologue + * so stop the search because directives cannot + * appear after this point. + * + * Some parsers set `directive:null` on non-directive + * statements, so the `typeof` check is safer than + * checking for property existence. + */ + if (typeof stmt.directive !== "string") { + break; } - } else { - for (let i = 0, iz = body.body.length; i < iz; ++i) { - const stmt = body.body[i]; - if (stmt.type !== Syntax.ExpressionStatement) { - break; - } - const expr = stmt.expression; - - if (expr.type !== Syntax.Literal || typeof expr.value !== "string") { - break; - } - if (expr.raw !== null && expr.raw !== undefined) { - if (expr.raw === "\"use strict\"" || expr.raw === "'use strict'") { - return true; - } - } else { - if (expr.value === "use strict") { - return true; - } - } + if (stmt.directive === "use strict") { + return true; } } + return false; } /** * Register scope - * @param {ScopeManager} scopeManager - scope manager - * @param {Scope} scope - scope + * @param {ScopeManager} scopeManager scope manager + * @param {Scope} scope scope * @returns {void} */ function registerScope(scopeManager, scope) { @@ -139,7 +124,7 @@ function registerScope(scopeManager, scope) { /** * Should be statically - * @param {Object} def - def + * @param {Object} def def * @returns {boolean} should be statically */ function shouldBeStatically(def) { @@ -150,14 +135,15 @@ function shouldBeStatically(def) { } /** - * @class Scope + * @constructor Scope */ class Scope { constructor(scopeManager, type, upperScope, block, isMethodDefinition) { /** - * One of 'module', 'block', 'switch', 'function', 'catch', 'with', 'function', 'class', 'global'. - * @member {String} Scope#type + * One of "global", "module", "function", "function-expression-name", "block", "switch", "catch", "with", "for", + * "class", "class-field-initializer", "class-static-block". + * @member {string} Scope#type */ this.type = type; @@ -171,7 +157,8 @@ class Scope { /** * The tainted variables of this scope, as { Variable.name : * boolean }. - * @member {Map} Scope#taints */ + * @member {Map} Scope#taints + */ this.taints = new Map(); /** @@ -224,7 +211,13 @@ class Scope { * @member {Scope} Scope#variableScope */ this.variableScope = - (this.type === "global" || this.type === "function" || this.type === "module") ? this : upperScope.variableScope; + this.type === "global" || + this.type === "module" || + this.type === "function" || + this.type === "class-field-initializer" || + this.type === "class-static-block" + ? this + : upperScope.variableScope; /** * Whether this scope is created by a FunctionExpression. @@ -255,7 +248,9 @@ class Scope { * Whether 'use strict' is in effect in this scope. * @member {boolean} Scope#isStrict */ - this.isStrict = isStrictScope(this, block, isMethodDefinition, scopeManager.__useDirective()); + this.isStrict = scopeManager.isStrictModeSupported() + ? isStrictScope(this, block, isMethodDefinition) + : false; /** * List of nested {@link Scope}s. @@ -342,7 +337,7 @@ class Scope { // To override by function scopes. // References in default parameters isn't resolved to variables which are in their function body. - __isValidResolution(ref, variable) { // eslint-disable-line class-methods-use-this, no-unused-vars + __isValidResolution(ref, variable) { // eslint-disable-line class-methods-use-this, no-unused-vars -- Desired as instance method with signature return true; } @@ -376,17 +371,17 @@ class Scope { } __addDeclaredVariablesOfNode(variable, node) { - if (node === null || node === undefined) { + if (node === null || node === void 0) { return; } let variables = this.__declaredVariables.get(node); - if (variables === null || variables === undefined) { + if (variables === null || variables === void 0) { variables = []; this.__declaredVariables.set(node, variables); } - if (variables.indexOf(variable) === -1) { + if (!variables.includes(variable)) { variables.push(variable); } } @@ -461,8 +456,8 @@ class Scope { /** * returns resolved {Reference} - * @method Scope#resolve - * @param {Espree.Identifier} ident - identifier to be resolved. + * @function Scope#resolve + * @param {Espree.Identifier} ident identifier to be resolved. * @returns {Reference} reference */ resolve(ident) { @@ -481,7 +476,7 @@ class Scope { /** * returns this scope is static - * @method Scope#isStatic + * @function Scope#isStatic * @returns {boolean} static */ isStatic() { @@ -490,19 +485,19 @@ class Scope { /** * returns this scope has materialized arguments - * @method Scope#isArgumentsMaterialized + * @function Scope#isArgumentsMaterialized * @returns {boolean} arguemnts materialized */ - isArgumentsMaterialized() { // eslint-disable-line class-methods-use-this + isArgumentsMaterialized() { // eslint-disable-line class-methods-use-this -- Desired as instance method return true; } /** * returns this scope has materialized `this` reference - * @method Scope#isThisMaterialized + * @function Scope#isThisMaterialized * @returns {boolean} this materialized */ - isThisMaterialized() { // eslint-disable-line class-methods-use-this + isThisMaterialized() { // eslint-disable-line class-methods-use-this -- Desired as instance method return true; } @@ -519,6 +514,9 @@ class Scope { } } +/** + * Global scope. + */ class GlobalScope extends Scope { constructor(scopeManager, block) { super(scopeManager, "global", null, block, false); @@ -527,10 +525,10 @@ class GlobalScope extends Scope { variables: [], /** - * List of {@link Reference}s that are left to be resolved (i.e. which - * need to be linked to the variable they refer to). - * @member {Reference[]} Scope#implicit#left - */ + * List of {@link Reference}s that are left to be resolved (i.e. which + * need to be linked to the variable they refer to). + * @member {Reference[]} Scope#implicit#left + */ left: [] }; } @@ -580,12 +578,18 @@ class GlobalScope extends Scope { } } +/** + * Module scope. + */ class ModuleScope extends Scope { constructor(scopeManager, upperScope, block) { super(scopeManager, "module", upperScope, block, false); } } +/** + * Function expression name scope. + */ class FunctionExpressionNameScope extends Scope { constructor(scopeManager, upperScope, block) { super(scopeManager, "function-expression-name", upperScope, block, false); @@ -602,12 +606,18 @@ class FunctionExpressionNameScope extends Scope { } } +/** + * Catch scope. + */ class CatchScope extends Scope { constructor(scopeManager, upperScope, block) { super(scopeManager, "catch", upperScope, block, false); } } +/** + * With statement scope. + */ class WithScope extends Scope { constructor(scopeManager, upperScope, block) { super(scopeManager, "with", upperScope, block, false); @@ -630,18 +640,27 @@ class WithScope extends Scope { } } +/** + * Block scope. + */ class BlockScope extends Scope { constructor(scopeManager, upperScope, block) { super(scopeManager, "block", upperScope, block, false); } } +/** + * Switch scope. + */ class SwitchScope extends Scope { constructor(scopeManager, upperScope, block) { super(scopeManager, "switch", upperScope, block, false); } } +/** + * Function scope. + */ class FunctionScope extends Scope { constructor(scopeManager, upperScope, block, isMethodDefinition) { super(scopeManager, "function", upperScope, block, isMethodDefinition); @@ -719,19 +738,43 @@ class FunctionScope extends Scope { } } +/** + * Scope of for, for-in, and for-of statements. + */ class ForScope extends Scope { constructor(scopeManager, upperScope, block) { super(scopeManager, "for", upperScope, block, false); } } +/** + * Class scope. + */ class ClassScope extends Scope { constructor(scopeManager, upperScope, block) { super(scopeManager, "class", upperScope, block, false); } } -module.exports = { +/** + * Class field initializer scope. + */ +class ClassFieldInitializerScope extends Scope { + constructor(scopeManager, upperScope, block) { + super(scopeManager, "class-field-initializer", upperScope, block, true); + } +} + +/** + * Class static block scope. + */ +class ClassStaticBlockScope extends Scope { + constructor(scopeManager, upperScope, block) { + super(scopeManager, "class-static-block", upperScope, block, true); + } +} + +export { Scope, GlobalScope, ModuleScope, @@ -742,7 +785,9 @@ module.exports = { SwitchScope, FunctionScope, ForScope, - ClassScope + ClassScope, + ClassFieldInitializerScope, + ClassStaticBlockScope }; /* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/eslint-scope/lib/variable.js b/node_modules/eslint-scope/lib/variable.js index 702c478..286202f 100644 --- a/node_modules/eslint-scope/lib/variable.js +++ b/node_modules/eslint-scope/lib/variable.js @@ -21,19 +21,18 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -"use strict"; /** * A Variable represents a locally scoped identifier. These include arguments to * functions. - * @class Variable + * @constructor Variable */ class Variable { constructor(name, scope) { /** * The variable name, as given in the source code. - * @member {String} Variable#name + * @member {string} Variable#name */ this.name = name; @@ -83,6 +82,6 @@ Variable.Variable = "Variable"; Variable.ImportBinding = "ImportBinding"; Variable.ImplicitGlobalVariable = "ImplicitGlobalVariable"; -module.exports = Variable; +export default Variable; /* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/eslint-scope/package.json b/node_modules/eslint-scope/package.json index b700b92..759d8ec 100644 --- a/node_modules/eslint-scope/package.json +++ b/node_modules/eslint-scope/package.json @@ -1,48 +1,59 @@ { "name": "eslint-scope", "description": "ECMAScript scope analyzer for ESLint", - "homepage": "http://github.com/eslint/eslint-scope", - "main": "lib/index.js", - "version": "5.1.1", - "engines": { - "node": ">=8.0.0" + "homepage": "https://github.com/eslint/js/blob/main/packages/eslint-scope/README.md", + "main": "./dist/eslint-scope.cjs", + "type": "module", + "exports": { + ".": { + "import": "./lib/index.js", + "require": "./dist/eslint-scope.cjs" + }, + "./package.json": "./package.json" }, - "repository": "eslint/eslint-scope", + "version": "8.2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "repository": "eslint/js", + "funding": "https://opencollective.com/eslint", "bugs": { - "url": "https://github.com/eslint/eslint-scope/issues" + "url": "https://github.com/eslint/js/issues" }, "license": "BSD-2-Clause", "scripts": { - "test": "node Makefile.js test", - "lint": "node Makefile.js lint", - "generate-release": "eslint-generate-release", - "generate-alpharelease": "eslint-generate-prerelease alpha", - "generate-betarelease": "eslint-generate-prerelease beta", - "generate-rcrelease": "eslint-generate-prerelease rc", - "publish-release": "eslint-publish-release" + "build": "rollup -c", + "build:update-version": "node tools/update-version.js", + "prepublishOnly": "npm run build:update-version && npm run build", + "pretest": "npm run build", + "release:generate:latest": "eslint-generate-release", + "release:generate:alpha": "eslint-generate-prerelease alpha", + "release:generate:beta": "eslint-generate-prerelease beta", + "release:generate:rc": "eslint-generate-prerelease rc", + "release:publish": "eslint-publish-release", + "test": "node Makefile.js test" }, "files": [ "LICENSE", "README.md", - "lib" + "lib", + "dist/eslint-scope.cjs" ], "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "devDependencies": { - "@typescript-eslint/parser": "^1.11.0", - "chai": "^4.2.0", - "eslint": "^6.0.1", - "eslint-config-eslint": "^5.0.1", - "eslint-plugin-node": "^9.1.0", - "eslint-release": "^1.0.0", - "eslint-visitor-keys": "^1.2.0", - "espree": "^7.1.0", - "istanbul": "^0.4.5", - "mocha": "^6.1.4", + "@typescript-eslint/parser": "^8.7.0", + "c8": "^7.7.3", + "chai": "^4.3.4", + "eslint-release": "^3.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "mocha": "^9.0.1", "npm-license": "^0.3.3", - "shelljs": "^0.8.3", - "typescript": "^3.5.2" + "rollup": "^2.52.7", + "shelljs": "^0.8.5", + "typescript": "^5.4.2" } } diff --git a/node_modules/esrecurse/node_modules/estraverse/.jshintrc b/node_modules/esrecurse/node_modules/estraverse/.jshintrc deleted file mode 100644 index f642dae..0000000 --- a/node_modules/esrecurse/node_modules/estraverse/.jshintrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "curly": true, - "eqeqeq": true, - "immed": true, - "eqnull": true, - "latedef": true, - "noarg": true, - "noempty": true, - "quotmark": "single", - "undef": true, - "unused": true, - "strict": true, - "trailing": true, - - "node": true -} diff --git a/node_modules/esrecurse/node_modules/estraverse/LICENSE.BSD b/node_modules/esrecurse/node_modules/estraverse/LICENSE.BSD deleted file mode 100644 index 3e580c3..0000000 --- a/node_modules/esrecurse/node_modules/estraverse/LICENSE.BSD +++ /dev/null @@ -1,19 +0,0 @@ -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/esrecurse/node_modules/estraverse/README.md b/node_modules/esrecurse/node_modules/estraverse/README.md deleted file mode 100644 index ccd3377..0000000 --- a/node_modules/esrecurse/node_modules/estraverse/README.md +++ /dev/null @@ -1,153 +0,0 @@ -### Estraverse [![Build Status](https://secure.travis-ci.org/estools/estraverse.svg)](http://travis-ci.org/estools/estraverse) - -Estraverse ([estraverse](http://github.com/estools/estraverse)) is -[ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm) -traversal functions from [esmangle project](http://github.com/estools/esmangle). - -### Documentation - -You can find usage docs at [wiki page](https://github.com/estools/estraverse/wiki/Usage). - -### Example Usage - -The following code will output all variables declared at the root of a file. - -```javascript -estraverse.traverse(ast, { - enter: function (node, parent) { - if (node.type == 'FunctionExpression' || node.type == 'FunctionDeclaration') - return estraverse.VisitorOption.Skip; - }, - leave: function (node, parent) { - if (node.type == 'VariableDeclarator') - console.log(node.id.name); - } -}); -``` - -We can use `this.skip`, `this.remove` and `this.break` functions instead of using Skip, Remove and Break. - -```javascript -estraverse.traverse(ast, { - enter: function (node) { - this.break(); - } -}); -``` - -And estraverse provides `estraverse.replace` function. When returning node from `enter`/`leave`, current node is replaced with it. - -```javascript -result = estraverse.replace(tree, { - enter: function (node) { - // Replace it with replaced. - if (node.type === 'Literal') - return replaced; - } -}); -``` - -By passing `visitor.keys` mapping, we can extend estraverse traversing functionality. - -```javascript -// This tree contains a user-defined `TestExpression` node. -var tree = { - type: 'TestExpression', - - // This 'argument' is the property containing the other **node**. - argument: { - type: 'Literal', - value: 20 - }, - - // This 'extended' is the property not containing the other **node**. - extended: true -}; -estraverse.traverse(tree, { - enter: function (node) { }, - - // Extending the existing traversing rules. - keys: { - // TargetNodeName: [ 'keys', 'containing', 'the', 'other', '**node**' ] - TestExpression: ['argument'] - } -}); -``` - -By passing `visitor.fallback` option, we can control the behavior when encountering unknown nodes. - -```javascript -// This tree contains a user-defined `TestExpression` node. -var tree = { - type: 'TestExpression', - - // This 'argument' is the property containing the other **node**. - argument: { - type: 'Literal', - value: 20 - }, - - // This 'extended' is the property not containing the other **node**. - extended: true -}; -estraverse.traverse(tree, { - enter: function (node) { }, - - // Iterating the child **nodes** of unknown nodes. - fallback: 'iteration' -}); -``` - -When `visitor.fallback` is a function, we can determine which keys to visit on each node. - -```javascript -// This tree contains a user-defined `TestExpression` node. -var tree = { - type: 'TestExpression', - - // This 'argument' is the property containing the other **node**. - argument: { - type: 'Literal', - value: 20 - }, - - // This 'extended' is the property not containing the other **node**. - extended: true -}; -estraverse.traverse(tree, { - enter: function (node) { }, - - // Skip the `argument` property of each node - fallback: function(node) { - return Object.keys(node).filter(function(key) { - return key !== 'argument'; - }); - } -}); -``` - -### License - -Copyright (C) 2012-2016 [Yusuke Suzuki](http://github.com/Constellation) - (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/esrecurse/node_modules/estraverse/estraverse.js b/node_modules/esrecurse/node_modules/estraverse/estraverse.js deleted file mode 100644 index f0d9af9..0000000 --- a/node_modules/esrecurse/node_modules/estraverse/estraverse.js +++ /dev/null @@ -1,805 +0,0 @@ -/* - Copyright (C) 2012-2013 Yusuke Suzuki - Copyright (C) 2012 Ariya Hidayat - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -/*jslint vars:false, bitwise:true*/ -/*jshint indent:4*/ -/*global exports:true*/ -(function clone(exports) { - 'use strict'; - - var Syntax, - VisitorOption, - VisitorKeys, - BREAK, - SKIP, - REMOVE; - - function deepCopy(obj) { - var ret = {}, key, val; - for (key in obj) { - if (obj.hasOwnProperty(key)) { - val = obj[key]; - if (typeof val === 'object' && val !== null) { - ret[key] = deepCopy(val); - } else { - ret[key] = val; - } - } - } - return ret; - } - - // based on LLVM libc++ upper_bound / lower_bound - // MIT License - - function upperBound(array, func) { - var diff, len, i, current; - - len = array.length; - i = 0; - - while (len) { - diff = len >>> 1; - current = i + diff; - if (func(array[current])) { - len = diff; - } else { - i = current + 1; - len -= diff + 1; - } - } - return i; - } - - Syntax = { - AssignmentExpression: 'AssignmentExpression', - AssignmentPattern: 'AssignmentPattern', - ArrayExpression: 'ArrayExpression', - ArrayPattern: 'ArrayPattern', - ArrowFunctionExpression: 'ArrowFunctionExpression', - AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7. - BlockStatement: 'BlockStatement', - BinaryExpression: 'BinaryExpression', - BreakStatement: 'BreakStatement', - CallExpression: 'CallExpression', - CatchClause: 'CatchClause', - ChainExpression: 'ChainExpression', - ClassBody: 'ClassBody', - ClassDeclaration: 'ClassDeclaration', - ClassExpression: 'ClassExpression', - ComprehensionBlock: 'ComprehensionBlock', // CAUTION: It's deferred to ES7. - ComprehensionExpression: 'ComprehensionExpression', // CAUTION: It's deferred to ES7. - ConditionalExpression: 'ConditionalExpression', - ContinueStatement: 'ContinueStatement', - DebuggerStatement: 'DebuggerStatement', - DirectiveStatement: 'DirectiveStatement', - DoWhileStatement: 'DoWhileStatement', - EmptyStatement: 'EmptyStatement', - ExportAllDeclaration: 'ExportAllDeclaration', - ExportDefaultDeclaration: 'ExportDefaultDeclaration', - ExportNamedDeclaration: 'ExportNamedDeclaration', - ExportSpecifier: 'ExportSpecifier', - ExpressionStatement: 'ExpressionStatement', - ForStatement: 'ForStatement', - ForInStatement: 'ForInStatement', - ForOfStatement: 'ForOfStatement', - FunctionDeclaration: 'FunctionDeclaration', - FunctionExpression: 'FunctionExpression', - GeneratorExpression: 'GeneratorExpression', // CAUTION: It's deferred to ES7. - Identifier: 'Identifier', - IfStatement: 'IfStatement', - ImportExpression: 'ImportExpression', - ImportDeclaration: 'ImportDeclaration', - ImportDefaultSpecifier: 'ImportDefaultSpecifier', - ImportNamespaceSpecifier: 'ImportNamespaceSpecifier', - ImportSpecifier: 'ImportSpecifier', - Literal: 'Literal', - LabeledStatement: 'LabeledStatement', - LogicalExpression: 'LogicalExpression', - MemberExpression: 'MemberExpression', - MetaProperty: 'MetaProperty', - MethodDefinition: 'MethodDefinition', - ModuleSpecifier: 'ModuleSpecifier', - NewExpression: 'NewExpression', - ObjectExpression: 'ObjectExpression', - ObjectPattern: 'ObjectPattern', - PrivateIdentifier: 'PrivateIdentifier', - Program: 'Program', - Property: 'Property', - PropertyDefinition: 'PropertyDefinition', - RestElement: 'RestElement', - ReturnStatement: 'ReturnStatement', - SequenceExpression: 'SequenceExpression', - SpreadElement: 'SpreadElement', - Super: 'Super', - SwitchStatement: 'SwitchStatement', - SwitchCase: 'SwitchCase', - TaggedTemplateExpression: 'TaggedTemplateExpression', - TemplateElement: 'TemplateElement', - TemplateLiteral: 'TemplateLiteral', - ThisExpression: 'ThisExpression', - ThrowStatement: 'ThrowStatement', - TryStatement: 'TryStatement', - UnaryExpression: 'UnaryExpression', - UpdateExpression: 'UpdateExpression', - VariableDeclaration: 'VariableDeclaration', - VariableDeclarator: 'VariableDeclarator', - WhileStatement: 'WhileStatement', - WithStatement: 'WithStatement', - YieldExpression: 'YieldExpression' - }; - - VisitorKeys = { - AssignmentExpression: ['left', 'right'], - AssignmentPattern: ['left', 'right'], - ArrayExpression: ['elements'], - ArrayPattern: ['elements'], - ArrowFunctionExpression: ['params', 'body'], - AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7. - BlockStatement: ['body'], - BinaryExpression: ['left', 'right'], - BreakStatement: ['label'], - CallExpression: ['callee', 'arguments'], - CatchClause: ['param', 'body'], - ChainExpression: ['expression'], - ClassBody: ['body'], - ClassDeclaration: ['id', 'superClass', 'body'], - ClassExpression: ['id', 'superClass', 'body'], - ComprehensionBlock: ['left', 'right'], // CAUTION: It's deferred to ES7. - ComprehensionExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7. - ConditionalExpression: ['test', 'consequent', 'alternate'], - ContinueStatement: ['label'], - DebuggerStatement: [], - DirectiveStatement: [], - DoWhileStatement: ['body', 'test'], - EmptyStatement: [], - ExportAllDeclaration: ['source'], - ExportDefaultDeclaration: ['declaration'], - ExportNamedDeclaration: ['declaration', 'specifiers', 'source'], - ExportSpecifier: ['exported', 'local'], - ExpressionStatement: ['expression'], - ForStatement: ['init', 'test', 'update', 'body'], - ForInStatement: ['left', 'right', 'body'], - ForOfStatement: ['left', 'right', 'body'], - FunctionDeclaration: ['id', 'params', 'body'], - FunctionExpression: ['id', 'params', 'body'], - GeneratorExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7. - Identifier: [], - IfStatement: ['test', 'consequent', 'alternate'], - ImportExpression: ['source'], - ImportDeclaration: ['specifiers', 'source'], - ImportDefaultSpecifier: ['local'], - ImportNamespaceSpecifier: ['local'], - ImportSpecifier: ['imported', 'local'], - Literal: [], - LabeledStatement: ['label', 'body'], - LogicalExpression: ['left', 'right'], - MemberExpression: ['object', 'property'], - MetaProperty: ['meta', 'property'], - MethodDefinition: ['key', 'value'], - ModuleSpecifier: [], - NewExpression: ['callee', 'arguments'], - ObjectExpression: ['properties'], - ObjectPattern: ['properties'], - PrivateIdentifier: [], - Program: ['body'], - Property: ['key', 'value'], - PropertyDefinition: ['key', 'value'], - RestElement: [ 'argument' ], - ReturnStatement: ['argument'], - SequenceExpression: ['expressions'], - SpreadElement: ['argument'], - Super: [], - SwitchStatement: ['discriminant', 'cases'], - SwitchCase: ['test', 'consequent'], - TaggedTemplateExpression: ['tag', 'quasi'], - TemplateElement: [], - TemplateLiteral: ['quasis', 'expressions'], - ThisExpression: [], - ThrowStatement: ['argument'], - TryStatement: ['block', 'handler', 'finalizer'], - UnaryExpression: ['argument'], - UpdateExpression: ['argument'], - VariableDeclaration: ['declarations'], - VariableDeclarator: ['id', 'init'], - WhileStatement: ['test', 'body'], - WithStatement: ['object', 'body'], - YieldExpression: ['argument'] - }; - - // unique id - BREAK = {}; - SKIP = {}; - REMOVE = {}; - - VisitorOption = { - Break: BREAK, - Skip: SKIP, - Remove: REMOVE - }; - - function Reference(parent, key) { - this.parent = parent; - this.key = key; - } - - Reference.prototype.replace = function replace(node) { - this.parent[this.key] = node; - }; - - Reference.prototype.remove = function remove() { - if (Array.isArray(this.parent)) { - this.parent.splice(this.key, 1); - return true; - } else { - this.replace(null); - return false; - } - }; - - function Element(node, path, wrap, ref) { - this.node = node; - this.path = path; - this.wrap = wrap; - this.ref = ref; - } - - function Controller() { } - - // API: - // return property path array from root to current node - Controller.prototype.path = function path() { - var i, iz, j, jz, result, element; - - function addToPath(result, path) { - if (Array.isArray(path)) { - for (j = 0, jz = path.length; j < jz; ++j) { - result.push(path[j]); - } - } else { - result.push(path); - } - } - - // root node - if (!this.__current.path) { - return null; - } - - // first node is sentinel, second node is root element - result = []; - for (i = 2, iz = this.__leavelist.length; i < iz; ++i) { - element = this.__leavelist[i]; - addToPath(result, element.path); - } - addToPath(result, this.__current.path); - return result; - }; - - // API: - // return type of current node - Controller.prototype.type = function () { - var node = this.current(); - return node.type || this.__current.wrap; - }; - - // API: - // return array of parent elements - Controller.prototype.parents = function parents() { - var i, iz, result; - - // first node is sentinel - result = []; - for (i = 1, iz = this.__leavelist.length; i < iz; ++i) { - result.push(this.__leavelist[i].node); - } - - return result; - }; - - // API: - // return current node - Controller.prototype.current = function current() { - return this.__current.node; - }; - - Controller.prototype.__execute = function __execute(callback, element) { - var previous, result; - - result = undefined; - - previous = this.__current; - this.__current = element; - this.__state = null; - if (callback) { - result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node); - } - this.__current = previous; - - return result; - }; - - // API: - // notify control skip / break - Controller.prototype.notify = function notify(flag) { - this.__state = flag; - }; - - // API: - // skip child nodes of current node - Controller.prototype.skip = function () { - this.notify(SKIP); - }; - - // API: - // break traversals - Controller.prototype['break'] = function () { - this.notify(BREAK); - }; - - // API: - // remove node - Controller.prototype.remove = function () { - this.notify(REMOVE); - }; - - Controller.prototype.__initialize = function(root, visitor) { - this.visitor = visitor; - this.root = root; - this.__worklist = []; - this.__leavelist = []; - this.__current = null; - this.__state = null; - this.__fallback = null; - if (visitor.fallback === 'iteration') { - this.__fallback = Object.keys; - } else if (typeof visitor.fallback === 'function') { - this.__fallback = visitor.fallback; - } - - this.__keys = VisitorKeys; - if (visitor.keys) { - this.__keys = Object.assign(Object.create(this.__keys), visitor.keys); - } - }; - - function isNode(node) { - if (node == null) { - return false; - } - return typeof node === 'object' && typeof node.type === 'string'; - } - - function isProperty(nodeType, key) { - return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key; - } - - function candidateExistsInLeaveList(leavelist, candidate) { - for (var i = leavelist.length - 1; i >= 0; --i) { - if (leavelist[i].node === candidate) { - return true; - } - } - return false; - } - - Controller.prototype.traverse = function traverse(root, visitor) { - var worklist, - leavelist, - element, - node, - nodeType, - ret, - key, - current, - current2, - candidates, - candidate, - sentinel; - - this.__initialize(root, visitor); - - sentinel = {}; - - // reference - worklist = this.__worklist; - leavelist = this.__leavelist; - - // initialize - worklist.push(new Element(root, null, null, null)); - leavelist.push(new Element(null, null, null, null)); - - while (worklist.length) { - element = worklist.pop(); - - if (element === sentinel) { - element = leavelist.pop(); - - ret = this.__execute(visitor.leave, element); - - if (this.__state === BREAK || ret === BREAK) { - return; - } - continue; - } - - if (element.node) { - - ret = this.__execute(visitor.enter, element); - - if (this.__state === BREAK || ret === BREAK) { - return; - } - - worklist.push(sentinel); - leavelist.push(element); - - if (this.__state === SKIP || ret === SKIP) { - continue; - } - - node = element.node; - nodeType = node.type || element.wrap; - candidates = this.__keys[nodeType]; - if (!candidates) { - if (this.__fallback) { - candidates = this.__fallback(node); - } else { - throw new Error('Unknown node type ' + nodeType + '.'); - } - } - - current = candidates.length; - while ((current -= 1) >= 0) { - key = candidates[current]; - candidate = node[key]; - if (!candidate) { - continue; - } - - if (Array.isArray(candidate)) { - current2 = candidate.length; - while ((current2 -= 1) >= 0) { - if (!candidate[current2]) { - continue; - } - - if (candidateExistsInLeaveList(leavelist, candidate[current2])) { - continue; - } - - if (isProperty(nodeType, candidates[current])) { - element = new Element(candidate[current2], [key, current2], 'Property', null); - } else if (isNode(candidate[current2])) { - element = new Element(candidate[current2], [key, current2], null, null); - } else { - continue; - } - worklist.push(element); - } - } else if (isNode(candidate)) { - if (candidateExistsInLeaveList(leavelist, candidate)) { - continue; - } - - worklist.push(new Element(candidate, key, null, null)); - } - } - } - } - }; - - Controller.prototype.replace = function replace(root, visitor) { - var worklist, - leavelist, - node, - nodeType, - target, - element, - current, - current2, - candidates, - candidate, - sentinel, - outer, - key; - - function removeElem(element) { - var i, - key, - nextElem, - parent; - - if (element.ref.remove()) { - // When the reference is an element of an array. - key = element.ref.key; - parent = element.ref.parent; - - // If removed from array, then decrease following items' keys. - i = worklist.length; - while (i--) { - nextElem = worklist[i]; - if (nextElem.ref && nextElem.ref.parent === parent) { - if (nextElem.ref.key < key) { - break; - } - --nextElem.ref.key; - } - } - } - } - - this.__initialize(root, visitor); - - sentinel = {}; - - // reference - worklist = this.__worklist; - leavelist = this.__leavelist; - - // initialize - outer = { - root: root - }; - element = new Element(root, null, null, new Reference(outer, 'root')); - worklist.push(element); - leavelist.push(element); - - while (worklist.length) { - element = worklist.pop(); - - if (element === sentinel) { - element = leavelist.pop(); - - target = this.__execute(visitor.leave, element); - - // node may be replaced with null, - // so distinguish between undefined and null in this place - if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) { - // replace - element.ref.replace(target); - } - - if (this.__state === REMOVE || target === REMOVE) { - removeElem(element); - } - - if (this.__state === BREAK || target === BREAK) { - return outer.root; - } - continue; - } - - target = this.__execute(visitor.enter, element); - - // node may be replaced with null, - // so distinguish between undefined and null in this place - if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) { - // replace - element.ref.replace(target); - element.node = target; - } - - if (this.__state === REMOVE || target === REMOVE) { - removeElem(element); - element.node = null; - } - - if (this.__state === BREAK || target === BREAK) { - return outer.root; - } - - // node may be null - node = element.node; - if (!node) { - continue; - } - - worklist.push(sentinel); - leavelist.push(element); - - if (this.__state === SKIP || target === SKIP) { - continue; - } - - nodeType = node.type || element.wrap; - candidates = this.__keys[nodeType]; - if (!candidates) { - if (this.__fallback) { - candidates = this.__fallback(node); - } else { - throw new Error('Unknown node type ' + nodeType + '.'); - } - } - - current = candidates.length; - while ((current -= 1) >= 0) { - key = candidates[current]; - candidate = node[key]; - if (!candidate) { - continue; - } - - if (Array.isArray(candidate)) { - current2 = candidate.length; - while ((current2 -= 1) >= 0) { - if (!candidate[current2]) { - continue; - } - if (isProperty(nodeType, candidates[current])) { - element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2)); - } else if (isNode(candidate[current2])) { - element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2)); - } else { - continue; - } - worklist.push(element); - } - } else if (isNode(candidate)) { - worklist.push(new Element(candidate, key, null, new Reference(node, key))); - } - } - } - - return outer.root; - }; - - function traverse(root, visitor) { - var controller = new Controller(); - return controller.traverse(root, visitor); - } - - function replace(root, visitor) { - var controller = new Controller(); - return controller.replace(root, visitor); - } - - function extendCommentRange(comment, tokens) { - var target; - - target = upperBound(tokens, function search(token) { - return token.range[0] > comment.range[0]; - }); - - comment.extendedRange = [comment.range[0], comment.range[1]]; - - if (target !== tokens.length) { - comment.extendedRange[1] = tokens[target].range[0]; - } - - target -= 1; - if (target >= 0) { - comment.extendedRange[0] = tokens[target].range[1]; - } - - return comment; - } - - function attachComments(tree, providedComments, tokens) { - // At first, we should calculate extended comment ranges. - var comments = [], comment, len, i, cursor; - - if (!tree.range) { - throw new Error('attachComments needs range information'); - } - - // tokens array is empty, we attach comments to tree as 'leadingComments' - if (!tokens.length) { - if (providedComments.length) { - for (i = 0, len = providedComments.length; i < len; i += 1) { - comment = deepCopy(providedComments[i]); - comment.extendedRange = [0, tree.range[0]]; - comments.push(comment); - } - tree.leadingComments = comments; - } - return tree; - } - - for (i = 0, len = providedComments.length; i < len; i += 1) { - comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens)); - } - - // This is based on John Freeman's implementation. - cursor = 0; - traverse(tree, { - enter: function (node) { - var comment; - - while (cursor < comments.length) { - comment = comments[cursor]; - if (comment.extendedRange[1] > node.range[0]) { - break; - } - - if (comment.extendedRange[1] === node.range[0]) { - if (!node.leadingComments) { - node.leadingComments = []; - } - node.leadingComments.push(comment); - comments.splice(cursor, 1); - } else { - cursor += 1; - } - } - - // already out of owned node - if (cursor === comments.length) { - return VisitorOption.Break; - } - - if (comments[cursor].extendedRange[0] > node.range[1]) { - return VisitorOption.Skip; - } - } - }); - - cursor = 0; - traverse(tree, { - leave: function (node) { - var comment; - - while (cursor < comments.length) { - comment = comments[cursor]; - if (node.range[1] < comment.extendedRange[0]) { - break; - } - - if (node.range[1] === comment.extendedRange[0]) { - if (!node.trailingComments) { - node.trailingComments = []; - } - node.trailingComments.push(comment); - comments.splice(cursor, 1); - } else { - cursor += 1; - } - } - - // already out of owned node - if (cursor === comments.length) { - return VisitorOption.Break; - } - - if (comments[cursor].extendedRange[0] > node.range[1]) { - return VisitorOption.Skip; - } - } - }); - - return tree; - } - - exports.Syntax = Syntax; - exports.traverse = traverse; - exports.replace = replace; - exports.attachComments = attachComments; - exports.VisitorKeys = VisitorKeys; - exports.VisitorOption = VisitorOption; - exports.Controller = Controller; - exports.cloneEnvironment = function () { return clone({}); }; - - return exports; -}(exports)); -/* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/node_modules/esrecurse/node_modules/estraverse/gulpfile.js b/node_modules/esrecurse/node_modules/estraverse/gulpfile.js deleted file mode 100644 index 8772bbc..0000000 --- a/node_modules/esrecurse/node_modules/estraverse/gulpfile.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright (C) 2014 Yusuke Suzuki - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -'use strict'; - -var gulp = require('gulp'), - git = require('gulp-git'), - bump = require('gulp-bump'), - filter = require('gulp-filter'), - tagVersion = require('gulp-tag-version'); - -var TEST = [ 'test/*.js' ]; -var POWERED = [ 'powered-test/*.js' ]; -var SOURCE = [ 'src/**/*.js' ]; - -/** - * Bumping version number and tagging the repository with it. - * Please read http://semver.org/ - * - * You can use the commands - * - * gulp patch # makes v0.1.0 -> v0.1.1 - * gulp feature # makes v0.1.1 -> v0.2.0 - * gulp release # makes v0.2.1 -> v1.0.0 - * - * To bump the version numbers accordingly after you did a patch, - * introduced a feature or made a backwards-incompatible release. - */ - -function inc(importance) { - // get all the files to bump version in - return gulp.src(['./package.json']) - // bump the version number in those files - .pipe(bump({type: importance})) - // save it back to filesystem - .pipe(gulp.dest('./')) - // commit the changed version number - .pipe(git.commit('Bumps package version')) - // read only one file to get the version number - .pipe(filter('package.json')) - // **tag it in the repository** - .pipe(tagVersion({ - prefix: '' - })); -} - -gulp.task('patch', [ ], function () { return inc('patch'); }) -gulp.task('minor', [ ], function () { return inc('minor'); }) -gulp.task('major', [ ], function () { return inc('major'); }) diff --git a/node_modules/esrecurse/node_modules/estraverse/package.json b/node_modules/esrecurse/node_modules/estraverse/package.json deleted file mode 100644 index a863218..0000000 --- a/node_modules/esrecurse/node_modules/estraverse/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "estraverse", - "description": "ECMAScript JS AST traversal functions", - "homepage": "https://github.com/estools/estraverse", - "main": "estraverse.js", - "version": "5.3.0", - "engines": { - "node": ">=4.0" - }, - "maintainers": [ - { - "name": "Yusuke Suzuki", - "email": "utatane.tea@gmail.com", - "web": "http://github.com/Constellation" - } - ], - "repository": { - "type": "git", - "url": "http://github.com/estools/estraverse.git" - }, - "devDependencies": { - "babel-preset-env": "^1.6.1", - "babel-register": "^6.3.13", - "chai": "^2.1.1", - "espree": "^1.11.0", - "gulp": "^3.8.10", - "gulp-bump": "^0.2.2", - "gulp-filter": "^2.0.0", - "gulp-git": "^1.0.1", - "gulp-tag-version": "^1.3.0", - "jshint": "^2.5.6", - "mocha": "^2.1.0" - }, - "license": "BSD-2-Clause", - "scripts": { - "test": "npm run-script lint && npm run-script unit-test", - "lint": "jshint estraverse.js", - "unit-test": "mocha --compilers js:babel-register" - } -} diff --git a/node_modules/estraverse/estraverse.js b/node_modules/estraverse/estraverse.js index b106d38..f0d9af9 100644 --- a/node_modules/estraverse/estraverse.js +++ b/node_modules/estraverse/estraverse.js @@ -84,6 +84,7 @@ BreakStatement: 'BreakStatement', CallExpression: 'CallExpression', CatchClause: 'CatchClause', + ChainExpression: 'ChainExpression', ClassBody: 'ClassBody', ClassDeclaration: 'ClassDeclaration', ClassExpression: 'ClassExpression', @@ -123,8 +124,10 @@ NewExpression: 'NewExpression', ObjectExpression: 'ObjectExpression', ObjectPattern: 'ObjectPattern', + PrivateIdentifier: 'PrivateIdentifier', Program: 'Program', Property: 'Property', + PropertyDefinition: 'PropertyDefinition', RestElement: 'RestElement', ReturnStatement: 'ReturnStatement', SequenceExpression: 'SequenceExpression', @@ -159,6 +162,7 @@ BreakStatement: ['label'], CallExpression: ['callee', 'arguments'], CatchClause: ['param', 'body'], + ChainExpression: ['expression'], ClassBody: ['body'], ClassDeclaration: ['id', 'superClass', 'body'], ClassExpression: ['id', 'superClass', 'body'], @@ -198,8 +202,10 @@ NewExpression: ['callee', 'arguments'], ObjectExpression: ['properties'], ObjectPattern: ['properties'], + PrivateIdentifier: [], Program: ['body'], Property: ['key', 'value'], + PropertyDefinition: ['key', 'value'], RestElement: [ 'argument' ], ReturnStatement: ['argument'], SequenceExpression: ['expressions'], @@ -388,6 +394,15 @@ function isProperty(nodeType, key) { return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key; } + + function candidateExistsInLeaveList(leavelist, candidate) { + for (var i = leavelist.length - 1; i >= 0; --i) { + if (leavelist[i].node === candidate) { + return true; + } + } + return false; + } Controller.prototype.traverse = function traverse(root, visitor) { var worklist, @@ -469,6 +484,11 @@ if (!candidate[current2]) { continue; } + + if (candidateExistsInLeaveList(leavelist, candidate[current2])) { + continue; + } + if (isProperty(nodeType, candidates[current])) { element = new Element(candidate[current2], [key, current2], 'Property', null); } else if (isNode(candidate[current2])) { @@ -479,6 +499,10 @@ worklist.push(element); } } else if (isNode(candidate)) { + if (candidateExistsInLeaveList(leavelist, candidate)) { + continue; + } + worklist.push(new Element(candidate, key, null, null)); } } @@ -767,7 +791,6 @@ return tree; } - exports.version = require('./package.json').version; exports.Syntax = Syntax; exports.traverse = traverse; exports.replace = replace; diff --git a/node_modules/estraverse/package.json b/node_modules/estraverse/package.json index 1138238..a863218 100644 --- a/node_modules/estraverse/package.json +++ b/node_modules/estraverse/package.json @@ -3,7 +3,7 @@ "description": "ECMAScript JS AST traversal functions", "homepage": "https://github.com/estools/estraverse", "main": "estraverse.js", - "version": "4.3.0", + "version": "5.3.0", "engines": { "node": ">=4.0" }, diff --git a/node_modules/find-up/index.d.ts b/node_modules/find-up/index.d.ts index 41e3192..95029b4 100644 --- a/node_modules/find-up/index.d.ts +++ b/node_modules/find-up/index.d.ts @@ -1,137 +1,247 @@ -import {Options as LocatePathOptions} from 'locate-path'; +import {type Options as LocatePathOptions} from 'locate-path'; -declare const stop: unique symbol; +/** +Return this in a `matcher` function to stop the search and force `findUp` to immediately return `undefined`. +*/ +export const findUpStop: unique symbol; -declare namespace findUp { - interface Options extends LocatePathOptions {} +export type Match = string | typeof findUpStop | undefined; - type StopSymbol = typeof stop; - - type Match = string | StopSymbol | undefined; -} - -declare const findUp: { +export type Options = { /** - Find a file or directory by walking up parent directories. + A directory path where the search halts if no matches are found before reaching this point. - @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' - })(); - ``` + Default: Root directory */ - (name: string | string[], options?: findUp.Options): Promise; + readonly stopAt?: string; +} & LocatePathOptions; - /** - Find a file or directory by walking up parent directories. +/** +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. +@param name - The 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 - ``` - import path = require('path'); - import findUp = require('find-up'); +@example +``` +// / +// └── Users +// └── sindresorhus +// β”œβ”€β”€ unicorn.png +// └── foo +// └── bar +// β”œβ”€β”€ baz +// └── example.js - (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; +// example.js +import {findUp} from 'find-up'; - sync: { - /** - Synchronously find a file or directory by walking up parent directories. +console.log(await findUp('unicorn.png')); +//=> '/Users/sindresorhus/unicorn.png' - @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; +console.log(await findUp(['rainbow.png', 'unicorn.png'])); +//=> '/Users/sindresorhus/unicorn.png' +``` +*/ +export function findUp(name: string | readonly string[], options?: Options): Promise; - /** - Synchronously find a file or directory by walking up parent directories. +/** +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. +@param matcher - Called for each directory in the search. Return a path or `findUpStop` 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'); +@example +``` +import path from 'node:path'; +import {findUp, pathExists} from '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; +console.log(await findUp(async directory => { + const hasUnicorns = await pathExists(path.join(directory, 'unicorn.png')); + return hasUnicorns && directory; +}, {type: 'directory'})); +//=> '/Users/sindresorhus' +``` +*/ +export function findUp(matcher: (directory: string) => (Match | Promise), options?: Options): Promise; - /** - Synchronously check if a path exists. +/** +Synchronously find a file or directory by walking up parent directories. - @param path - Path to the file or directory. - @returns Whether the path exists. +@param name - The 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 - ``` - import findUp = require('find-up'); +@example +``` +// / +// └── Users +// └── sindresorhus +// β”œβ”€β”€ unicorn.png +// └── foo +// └── bar +// β”œβ”€β”€ baz +// └── example.js - console.log(findUp.sync.exists('/Users/sindresorhus/unicorn.png')); - //=> true - ``` - */ - exists(path: string): boolean; - } +// example.js +import {findUpSync} from 'find-up'; - /** - Check if a path exists. +console.log(findUpSync('unicorn.png')); +//=> '/Users/sindresorhus/unicorn.png' - @param path - Path to a file or directory. - @returns Whether the path exists. +console.log(findUpSync(['rainbow.png', 'unicorn.png'])); +//=> '/Users/sindresorhus/unicorn.png' +``` +*/ +export function findUpSync(name: string | readonly string[], options?: Options): string | undefined; - @example - ``` - import findUp = require('find-up'); +/** +Synchronously find a file or directory by walking up parent directories. - (async () => { - console.log(await findUp.exists('/Users/sindresorhus/unicorn.png')); - //=> true - })(); - ``` - */ - exists(path: string): Promise; +@param matcher - Called for each directory in the search. Return a path or `findUpStop` to stop the search. +@returns The first path found or `undefined` if none could be found. - /** - Return this in a `matcher` function to stop the search and force `findUp` to immediately return `undefined`. - */ - readonly stop: findUp.StopSymbol; -}; +@example +``` +import path from 'node:path'; +import {findUpSync, pathExistsSync} from 'find-up'; -export = findUp; +console.log(findUpSync(directory => { + const hasUnicorns = pathExistsSync(path.join(directory, 'unicorn.png')); + return hasUnicorns && directory; +}, {type: 'directory'})); +//=> '/Users/sindresorhus' +``` +*/ +export function findUpSync(matcher: (directory: string) => Match, options?: Options): string | undefined; + +/** +Find files or directories by walking up parent directories. + +@param name - The name of the file or directory to find. Can be multiple. +@returns All paths found (by respecting the order of `name`s) or an empty array if none could be found. + +@example +``` +// / +// └── Users +// └── sindresorhus +// β”œβ”€β”€ unicorn.png +// └── foo +// β”œβ”€β”€ unicorn.png +// └── bar +// β”œβ”€β”€ baz +// └── example.js + +// example.js +import {findUpMultiple} from 'find-up'; + +console.log(await findUpMultiple('unicorn.png')); +//=> ['/Users/sindresorhus/foo/unicorn.png', '/Users/sindresorhus/unicorn.png'] + +console.log(await findUpMultiple(['rainbow.png', 'unicorn.png'])); +//=> ['/Users/sindresorhus/foo/unicorn.png', '/Users/sindresorhus/unicorn.png'] +``` +*/ +export function findUpMultiple(name: string | readonly string[], options?: Options): Promise; + +/** +Find files or directories by walking up parent directories. + +@param matcher - Called for each directory in the search. Return a path or `findUpStop` to stop the search. +@returns All paths found or an empty array if none could be found. + +@example +``` +import path from 'node:path'; +import {findUpMultiple, pathExists} from 'find-up'; + +console.log(await findUpMultiple(async directory => { + const hasUnicorns = await pathExists(path.join(directory, 'unicorn.png')); + return hasUnicorns && directory; +}, {type: 'directory'})); +//=> ['/Users/sindresorhus/foo', '/Users/sindresorhus'] +``` +*/ +export function findUpMultiple(matcher: (directory: string) => (Match | Promise), options?: Options): Promise; + +/** +Synchronously find files or directories by walking up parent directories. + +@param name - The name of the file or directory to find. Can be multiple. +@returns All paths found (by respecting the order of `name`s) or an empty array if none could be found. + +@example +``` +// / +// └── Users +// └── sindresorhus +// β”œβ”€β”€ unicorn.png +// └── foo +// β”œβ”€β”€ unicorn.png +// └── bar +// β”œβ”€β”€ baz +// └── example.js + +// example.js +import {findUpMultipleSync} from 'find-up'; + +console.log(findUpMultipleSync('unicorn.png')); +//=> ['/Users/sindresorhus/foo/unicorn.png', '/Users/sindresorhus/unicorn.png'] + +console.log(findUpMultipleSync(['rainbow.png', 'unicorn.png'])); +//=> ['/Users/sindresorhus/foo/unicorn.png', '/Users/sindresorhus/unicorn.png'] +``` +*/ +export function findUpMultipleSync(name: string | readonly string[], options?: Options): string[]; + +/** +Synchronously find files or directories by walking up parent directories. + +@param matcher - Called for each directory in the search. Return a path or `findUpStop` to stop the search. +@returns All paths found or an empty array if none could be found. + +@example +``` +import path from 'node:path'; +import {findUpMultipleSync, pathExistsSync} from 'find-up'; + +console.log(findUpMultipleSync(directory => { + const hasUnicorns = pathExistsSync(path.join(directory, 'unicorn.png')); + return hasUnicorns && directory; +}, {type: 'directory'})); +//=> ['/Users/sindresorhus/foo', '/Users/sindresorhus'] +``` +*/ +export function findUpMultipleSync(matcher: (directory: string) => Match, options?: Options): string[]; + +/** +Check if a path exists. + +@param path - The path to a file or directory. +@returns Whether the path exists. + +@example +``` +import {pathExists} from 'find-up'; + +console.log(await pathExists('/Users/sindresorhus/unicorn.png')); +//=> true +``` +*/ +export function pathExists(path: string): Promise; + +/** +Synchronously check if a path exists. + +@param path - Path to the file or directory. +@returns Whether the path exists. + +@example +``` +import {pathExistsSync} from 'find-up'; + +console.log(pathExistsSync('/Users/sindresorhus/unicorn.png')); +//=> true +``` +*/ +export function pathExistsSync(path: string): boolean; diff --git a/node_modules/find-up/index.js b/node_modules/find-up/index.js index ce564e5..c49fef0 100644 --- a/node_modules/find-up/index.js +++ b/node_modules/find-up/index.js @@ -1,14 +1,15 @@ -'use strict'; -const path = require('path'); -const locatePath = require('locate-path'); -const pathExists = require('path-exists'); +import path from 'node:path'; +import {locatePath, locatePathSync} from 'locate-path'; +import {toPath} from 'unicorn-magic'; -const stop = Symbol('findUp.stop'); +export const findUpStop = Symbol('findUpStop'); -module.exports = async (name, options = {}) => { - let directory = path.resolve(options.cwd || ''); +export async function findUpMultiple(name, options = {}) { + let directory = path.resolve(toPath(options.cwd) ?? ''); const {root} = path.parse(directory); - const paths = [].concat(name); + const stopAt = path.resolve(directory, toPath(options.stopAt ?? root)); + const limit = options.limit ?? Number.POSITIVE_INFINITY; + const paths = [name].flat(); const runMatcher = async locateOptions => { if (typeof name !== 'function') { @@ -23,67 +24,84 @@ module.exports = async (name, options = {}) => { return foundPath; }; + const matches = []; // 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 === findUpStop) { + break; } if (foundPath) { - return path.resolve(directory, foundPath); + matches.push(path.resolve(directory, foundPath)); } - if (directory === root) { - return; + if (directory === stopAt || matches.length >= limit) { + break; } directory = path.dirname(directory); } -}; -module.exports.sync = (name, options = {}) => { - let directory = path.resolve(options.cwd || ''); + return matches; +} + +export function findUpMultipleSync(name, options = {}) { + let directory = path.resolve(toPath(options.cwd) ?? ''); const {root} = path.parse(directory); - const paths = [].concat(name); + const stopAt = path.resolve(directory, toPath(options.stopAt) ?? root); + const limit = options.limit ?? Number.POSITIVE_INFINITY; + const paths = [name].flat(); const runMatcher = locateOptions => { if (typeof name !== 'function') { - return locatePath.sync(paths, locateOptions); + return locatePathSync(paths, locateOptions); } const foundPath = name(locateOptions.cwd); if (typeof foundPath === 'string') { - return locatePath.sync([foundPath], locateOptions); + return locatePathSync([foundPath], locateOptions); } return foundPath; }; + const matches = []; // eslint-disable-next-line no-constant-condition while (true) { const foundPath = runMatcher({...options, cwd: directory}); - if (foundPath === stop) { - return; + if (foundPath === findUpStop) { + break; } if (foundPath) { - return path.resolve(directory, foundPath); + matches.push(path.resolve(directory, foundPath)); } - if (directory === root) { - return; + if (directory === stopAt || matches.length >= limit) { + break; } directory = path.dirname(directory); } -}; -module.exports.exists = pathExists; + return matches; +} -module.exports.sync.exists = pathExists.sync; +export async function findUp(name, options = {}) { + const matches = await findUpMultiple(name, {...options, limit: 1}); + return matches[0]; +} -module.exports.stop = stop; +export function findUpSync(name, options = {}) { + const matches = findUpMultipleSync(name, {...options, limit: 1}); + return matches[0]; +} + +export { + pathExists, + pathExistsSync, +} from 'path-exists'; diff --git a/node_modules/find-up/license b/node_modules/find-up/license index e7af2f7..fa7ceba 100644 --- a/node_modules/find-up/license +++ b/node_modules/find-up/license @@ -1,6 +1,6 @@ MIT License -Copyright (c) Sindre Sorhus (sindresorhus.com) +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: diff --git a/node_modules/find-up/package.json b/node_modules/find-up/package.json index cd50281..3d96002 100644 --- a/node_modules/find-up/package.json +++ b/node_modules/find-up/package.json @@ -1,16 +1,23 @@ { "name": "find-up", - "version": "4.1.0", + "version": "7.0.0", "description": "Find a file or directory by walking up parent directories", "license": "MIT", "repository": "sindresorhus/find-up", + "funding": "https://github.com/sponsors/sindresorhus", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" + "url": "https://sindresorhus.com" }, + "type": "module", + "exports": { + "types": "./index.d.ts", + "default": "./index.js" + }, + "sideEffects": false, "engines": { - "node": ">=8" + "node": ">=18" }, "scripts": { "test": "xo && ava && tsd" @@ -40,14 +47,15 @@ "path" ], "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" }, "devDependencies": { - "ava": "^2.1.0", - "is-path-inside": "^2.1.0", - "tempy": "^0.3.0", - "tsd": "^0.7.3", - "xo": "^0.24.0" + "ava": "^5.3.1", + "is-path-inside": "^4.0.0", + "tempy": "^3.1.0", + "tsd": "^0.29.0", + "xo": "^0.56.0" } } diff --git a/node_modules/find-up/readme.md b/node_modules/find-up/readme.md index d6a21e5..f7c40f4 100644 --- a/node_modules/find-up/readme.md +++ b/node_modules/find-up/readme.md @@ -1,14 +1,12 @@ -# find-up [![Build Status](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/sindresorhus/find-up) +# find-up > Find a file or directory by walking up parent directories - ## Install +```sh +npm install find-up ``` -$ npm install find-up -``` - ## Usage @@ -26,50 +24,65 @@ $ npm install find-up `example.js` ```js -const path = require('path'); -const findUp = require('find-up'); +import path from 'node:path'; +import {findUp, pathExists} from 'find-up'; -(async () => { - console.log(await findUp('unicorn.png')); - //=> '/Users/sindresorhus/unicorn.png' +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(['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' -})(); +console.log(await findUp(async directory => { + const hasUnicorns = await pathExists(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. +Returns a `Promise` for either the path or `undefined` if it could not 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?) +### findUpMultiple(name, options?) +### findUpMultiple(matcher, options?) -Returns a path or `undefined` if it couldn't be found. +Returns a `Promise` for either an array of paths or an empty array if none could be found. -### findUp.sync([...name], options?) +### findUpMultiple([...name], options?) + +Returns a `Promise` for either an array of the first paths found (by respecting the order of the array) or an empty array if none could be found. + +### findUpSync(name, options?) +### findUpSync(matcher, options?) + +Returns a path or `undefined` if it could not be found. + +### findUpSync([...name], options?) Returns the first path found (by respecting the order of the array) or `undefined` if none could be found. +### findUpMultipleSync(name, options?) +### findUpMultipleSync(matcher, options?) + +Returns an array of paths or an empty array if none could be found. + +### findUpMultipleSync([...name], options?) + +Returns an array of the first paths found (by respecting the order of the array) or an empty array if none could be found. + #### name Type: `string` -Name of the file or directory to find. +The name of the file or directory to find. #### matcher @@ -85,31 +98,38 @@ Type: `object` ##### cwd -Type: `string`
+Type: `URL | string`\ Default: `process.cwd()` -Directory to start from. +The directory to start from. ##### type -Type: `string`
-Default: `'file'`
-Values: `'file'` `'directory'` +Type: `string`\ +Default: `'file'`\ +Values: `'file' | 'directory'` -The type of paths that can match. +The type of path to match. ##### allowSymlinks -Type: `boolean`
+Type: `boolean`\ Default: `true` Allow symbolic links to match if they point to the chosen path type. -### findUp.exists(path) +##### stopAt + +Type: `URL | string`\ +Default: Root directory + +A directory path where the search halts if no matches are found before reaching this point. + +### pathExists(path) Returns a `Promise` of whether the path exists. -### findUp.sync.exists(path) +### pathExistsSync(path) Returns a `boolean` of whether the path exists. @@ -117,40 +137,24 @@ Returns a `boolean` of whether the path exists. Type: `string` -Path to a file or directory. +The path to a file or directory. -### findUp.stop +### findUpStop 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'); +import path from 'node:path'; +import {findUp, findUpStop} from 'find-up'; -(async () => { - await findUp(directory => { - return path.basename(directory) === 'work' ? findUp.stop : 'logo.png'; - }); -})(); +await findUp(directory => { + return path.basename(directory) === 'work' ? findUpStop : '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 +- [package-up](https://github.com/sindresorhus/package-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/is-core-module/CHANGELOG.md b/node_modules/is-core-module/CHANGELOG.md index 13251f6..ae847df 100644 --- a/node_modules/is-core-module/CHANGELOG.md +++ b/node_modules/is-core-module/CHANGELOG.md @@ -5,6 +5,16 @@ 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.15.1](https://github.com/inspect-js/is-core-module/compare/v2.15.0...v2.15.1) - 2024-08-21 + +### Commits + +- [Tests] add `process.getBuiltinModule` tests [`28c7791`](https://github.com/inspect-js/is-core-module/commit/28c7791c196d58c64cfdf638b7e68ed1b62a4da0) +- [Fix] `test/mock_loader` is no longer exposed as of v22.7 [`68b08b0`](https://github.com/inspect-js/is-core-module/commit/68b08b0d7963447dbffa5142e8810dca550383af) +- [Tests] replace `aud` with `npm audit` [`32f8060`](https://github.com/inspect-js/is-core-module/commit/32f806026dac14f9016be4401a643851240c76b9) +- [Dev Deps] update `mock-property` [`f7d3c8f`](https://github.com/inspect-js/is-core-module/commit/f7d3c8f01e922be49621683eb41477c4f50522e1) +- [Dev Deps] add missing peer dep [`eaee885`](https://github.com/inspect-js/is-core-module/commit/eaee885b67238819e9c8ed5bd2098766e1d05331) + ## [v2.15.0](https://github.com/inspect-js/is-core-module/compare/v2.14.0...v2.15.0) - 2024-07-17 ### Commits diff --git a/node_modules/is-core-module/core.json b/node_modules/is-core-module/core.json index c66eeec..91890be 100644 --- a/node_modules/is-core-module/core.json +++ b/node_modules/is-core-module/core.json @@ -117,8 +117,8 @@ "node:sys": [">= 14.18 && < 15", ">= 16"], "test/reporters": ">= 19.9 && < 20.2", "node:test/reporters": [">= 18.17 && < 19", ">= 19.9", ">= 20"], - "test/mock_loader": ">= 22.3", - "node:test/mock_loader": ">= 22.3", + "test/mock_loader": ">= 22.3 && < 22.7", + "node:test/mock_loader": ">= 22.3 && < 22.7", "node:test": [">= 16.17 && < 17", ">= 18"], "timers": true, "node:timers": [">= 14.18 && < 15", ">= 16"], diff --git a/node_modules/is-core-module/package.json b/node_modules/is-core-module/package.json index 7e98206..3aba4a0 100644 --- a/node_modules/is-core-module/package.json +++ b/node_modules/is-core-module/package.json @@ -1,6 +1,6 @@ { "name": "is-core-module", - "version": "2.15.0", + "version": "2.15.1", "description": "Is this specifier a node.js core module?", "main": "index.js", "sideEffects": false, @@ -16,7 +16,7 @@ "pretest": "npm run lint", "tests-only": "nyc tape 'test/**/*.js'", "test": "npm run tests-only", - "posttest": "aud --production", + "posttest": "npx npm@'>=10.2' audit --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)\")\"" }, @@ -46,11 +46,11 @@ }, "devDependencies": { "@ljharb/eslint-config": "^21.1.1", - "aud": "^2.0.4", "auto-changelog": "^2.4.0", + "encoding": "^0.1.13", "eslint": "=8.8.0", "in-publish": "^2.0.1", - "mock-property": "^1.0.3", + "mock-property": "^1.1.0", "npmignore": "^0.3.1", "nyc": "^10.3.2", "safe-publish-latest": "^2.0.0", diff --git a/node_modules/is-core-module/test/index.js b/node_modules/is-core-module/test/index.js index 9b35bc9..746e72a 100644 --- a/node_modules/is-core-module/test/index.js +++ b/node_modules/is-core-module/test/index.js @@ -72,7 +72,8 @@ test('core modules', function (t) { }); t.test('core via builtinModules list', { skip: !data.module }, function (st) { - var libs = require('module').builtinModules; + var Module = require('module'); + var libs = Module.builtinModules; if (!libs) { st.skip('module.builtinModules does not exist'); } else { @@ -96,10 +97,24 @@ test('core modules', function (t) { var mod = libs[i]; if (excludeList.indexOf(mod) === -1) { st.ok(data[mod], mod + ' is a core module'); + + if (Module.isBuiltin) { + st.ok(Module.isBuiltin(mod), 'module.isBuiltin(' + mod + ') is true'); + } + st.doesNotThrow( function () { require(mod); }, // eslint-disable-line no-loop-func 'requiring ' + mod + ' does not throw' ); + + if (process.getBuiltinModule) { + st.equal( + process.getBuiltinModule(mod), + require(mod), + 'process.getBuiltinModule(' + mod + ') === require(' + mod + ')' + ); + } + if (mod.slice(0, 5) !== 'node:') { if (supportsNodePrefix) { st.doesNotThrow( @@ -116,6 +131,7 @@ test('core modules', function (t) { } } } + st.end(); }); diff --git a/node_modules/js-yaml/CHANGELOG.md b/node_modules/js-yaml/CHANGELOG.md index b4baa4e..ff2375e 100644 --- a/node_modules/js-yaml/CHANGELOG.md +++ b/node_modules/js-yaml/CHANGELOG.md @@ -6,6 +6,64 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [4.1.0] - 2021-04-15 +### Added +- Types are now exported as `yaml.types.XXX`. +- Every type now has `options` property with original arguments kept as they were + (see `yaml.types.int.options` as an example). + +### Changed +- `Schema.extend()` now keeps old type order in case of conflicts + (e.g. Schema.extend([ a, b, c ]).extend([ b, a, d ]) is now ordered as `abcd` instead of `cbad`). + + +## [4.0.0] - 2021-01-03 +### Changed +- Check [migration guide](migrate_v3_to_v4.md) to see details for all breaking changes. +- Breaking: "unsafe" tags `!!js/function`, `!!js/regexp`, `!!js/undefined` are + moved to [js-yaml-js-types](https://github.com/nodeca/js-yaml-js-types) package. +- Breaking: removed `safe*` functions. Use `load`, `loadAll`, `dump` + instead which are all now safe by default. +- `yaml.DEFAULT_SAFE_SCHEMA` and `yaml.DEFAULT_FULL_SCHEMA` are removed, use + `yaml.DEFAULT_SCHEMA` instead. +- `yaml.Schema.create(schema, tags)` is removed, use `schema.extend(tags)` instead. +- `!!binary` now always mapped to `Uint8Array` on load. +- Reduced nesting of `/lib` folder. +- Parse numbers according to YAML 1.2 instead of YAML 1.1 (`01234` is now decimal, + `0o1234` is octal, `1:23` is parsed as string instead of base60). +- `dump()` no longer quotes `:`, `[`, `]`, `(`, `)` except when necessary, #470, #557. +- Line and column in exceptions are now formatted as `(X:Y)` instead of + `at line X, column Y` (also present in compact format), #332. +- Code snippet created in exceptions now contains multiple lines with line numbers. +- `dump()` now serializes `undefined` as `null` in collections and removes keys with + `undefined` in mappings, #571. +- `dump()` with `skipInvalid=true` now serializes invalid items in collections as null. +- Custom tags starting with `!` are now dumped as `!tag` instead of `!`, #576. +- Custom tags starting with `tag:yaml.org,2002:` are now shorthanded using `!!`, #258. + +### Added +- Added `.mjs` (es modules) support. +- Added `quotingType` and `forceQuotes` options for dumper to configure + string literal style, #290, #529. +- Added `styles: { '!!null': 'empty' }` option for dumper + (serializes `{ foo: null }` as "`foo: `"), #570. +- Added `replacer` option (similar to option in JSON.stringify), #339. +- Custom `Tag` can now handle all tags or multiple tags with the same prefix, #385. + +### Fixed +- Astral characters are no longer encoded by `dump()`, #587. +- "duplicate mapping key" exception now points at the correct column, #452. +- Extra commas in flow collections (e.g. `[foo,,bar]`) now throw an exception + instead of producing null, #321. +- `__proto__` key no longer overrides object prototype, #164. +- Removed `bower.json`. +- Tags are now url-decoded in `load()` and url-encoded in `dump()` + (previously usage of custom non-ascii tags may have led to invalid YAML that can't be parsed). +- Anchors now work correctly with empty nodes, #301. +- Fix incorrect parsing of invalid block mapping syntax, #418. +- Throw an error if block sequence/mapping indent contains a tab, #80. + + ## [3.14.1] - 2020-12-07 ### Security - Fix possible code execution in (already unsafe) `.load()` (in &anchor). @@ -484,7 +542,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - First public release -[3.14.1]: https://github.com/nodeca/js-yaml/compare/3.14.0...3.14.1 +[4.1.0]: https://github.com/nodeca/js-yaml/compare/4.0.0...4.1.0 +[4.0.0]: https://github.com/nodeca/js-yaml/compare/3.14.0...4.0.0 [3.14.0]: https://github.com/nodeca/js-yaml/compare/3.13.1...3.14.0 [3.13.1]: https://github.com/nodeca/js-yaml/compare/3.13.0...3.13.1 [3.13.0]: https://github.com/nodeca/js-yaml/compare/3.12.2...3.13.0 diff --git a/node_modules/js-yaml/README.md b/node_modules/js-yaml/README.md index 246e563..3cbc4bd 100644 --- a/node_modules/js-yaml/README.md +++ b/node_modules/js-yaml/README.md @@ -1,7 +1,7 @@ JS-YAML - YAML 1.2 parser / writer for JavaScript ================================================= -[![Build Status](https://travis-ci.org/nodeca/js-yaml.svg?branch=master)](https://travis-ci.org/nodeca/js-yaml) +[![CI](https://github.com/nodeca/js-yaml/workflows/CI/badge.svg?branch=master)](https://github.com/nodeca/js-yaml/actions) [![NPM version](https://img.shields.io/npm/v/js-yaml.svg)](https://www.npmjs.org/package/js-yaml) __[Online Demo](http://nodeca.github.com/js-yaml/)__ @@ -46,38 +46,12 @@ Optional arguments: ``` -### Bundled YAML library for browsers - -``` html - - - - -``` - -Browser support was done mostly for the online demo. If you find any errors - feel -free to send pull requests with fixes. Also note, that IE and other old browsers -needs [es5-shims](https://github.com/kriskowal/es5-shim) to operate. - -Notes: - -1. We have no resources to support browserified version. Don't expect it to be - well tested. Don't expect fast fixes if something goes wrong there. -2. `!!js/function` in browser bundle will not work by default. If you really need - it - load `esprima` parser first (via amd or directly). -3. `!!bin` in browser will return `Array`, because browsers do not support - node.js `Buffer` and adding Buffer shims is completely useless on practice. - - API --- Here we cover the most 'useful' methods. If you need advanced details (creating -your own tags), see [wiki](https://github.com/nodeca/js-yaml/wiki) and -[examples](https://github.com/nodeca/js-yaml/tree/master/examples) for more -info. +your own tags), see [examples](https://github.com/nodeca/js-yaml/tree/master/examples) +for more info. ``` javascript const yaml = require('js-yaml'); @@ -85,7 +59,7 @@ const fs = require('fs'); // Get document, or throw exception on error try { - const doc = yaml.safeLoad(fs.readFileSync('/home/ixti/example.yml', 'utf8')); + const doc = yaml.load(fs.readFileSync('/home/ixti/example.yml', 'utf8')); console.log(doc); } catch (e) { console.log(e); @@ -93,11 +67,11 @@ try { ``` -### safeLoad (string [ , options ]) +### load (string [ , options ]) -**Recommended loading way.** Parses `string` as single YAML document. Returns either a -plain object, a string or `undefined`, or throws `YAMLException` on error. By default, does -not support regexps, functions and undefined. This method is safe for untrusted data. +Parses `string` as single YAML document. Returns either a +plain object, a string, a number, `null` or `undefined`, or throws `YAMLException` on error. By default, does +not support regexps, functions and undefined. options: @@ -105,17 +79,14 @@ options: error/warning messages. - `onWarning` _(default: null)_ - function to call on warning messages. Loader will call this function with an instance of `YAMLException` for each warning. -- `schema` _(default: `DEFAULT_SAFE_SCHEMA`)_ - specifies a schema to use. +- `schema` _(default: `DEFAULT_SCHEMA`)_ - specifies a schema to use. - `FAILSAFE_SCHEMA` - only strings, arrays and plain objects: http://www.yaml.org/spec/1.2/spec.html#id2802346 - `JSON_SCHEMA` - all JSON-supported types: http://www.yaml.org/spec/1.2/spec.html#id2803231 - `CORE_SCHEMA` - same as `JSON_SCHEMA`: http://www.yaml.org/spec/1.2/spec.html#id2804923 - - `DEFAULT_SAFE_SCHEMA` - all supported YAML types, without unsafe ones - (`!!js/undefined`, `!!js/regexp` and `!!js/function`): - http://yaml.org/type/ - - `DEFAULT_FULL_SCHEMA` - all supported YAML types. + - `DEFAULT_SCHEMA` - all supported YAML types. - `json` _(default: false)_ - compatibility with JSON.parse behaviour. If true, then duplicate keys in a mapping will override values rather than throwing an error. NOTE: This function **does not** understand multi-document sources, it throws @@ -127,43 +98,23 @@ It allows numbers in any notation, use `Null` and `NULL` as `null`, etc. The core schema also has no such restrictions. It allows binary notation for integers. -### load (string [ , options ]) +### loadAll (string [, iterator] [, options ]) -**Use with care with untrusted sources**. The same as `safeLoad()` but uses -`DEFAULT_FULL_SCHEMA` by default - adds some JavaScript-specific types: -`!!js/function`, `!!js/regexp` and `!!js/undefined`. For untrusted sources, you -must additionally validate object structure to avoid injections: - -``` javascript -const untrusted_code = '"toString": ! "function (){very_evil_thing();}"'; - -// I'm just converting that string, what could possibly go wrong? -require('js-yaml').load(untrusted_code) + '' -``` - - -### safeLoadAll (string [, iterator] [, options ]) - -Same as `safeLoad()`, but understands multi-document sources. Applies +Same as `load()`, but understands multi-document sources. Applies `iterator` to each document if specified, or returns array of documents. ``` javascript const yaml = require('js-yaml'); -yaml.safeLoadAll(data, function (doc) { +yaml.loadAll(data, function (doc) { console.log(doc); }); ``` -### loadAll (string [, iterator] [ , options ]) +### dump (object [ , options ]) -Same as `safeLoadAll()` but uses `DEFAULT_FULL_SCHEMA` by default. - - -### safeDump (object [ , options ]) - -Serializes `object` as a YAML document. Uses `DEFAULT_SAFE_SCHEMA`, so it will +Serializes `object` as a YAML document. Uses `DEFAULT_SCHEMA`, so it will throw an exception if you try to dump regexps or functions. However, you can disable exceptions by setting the `skipInvalid` option to `true`. @@ -173,17 +124,20 @@ options: - `noArrayIndent` _(default: false)_ - when true, will not add an indentation level to array elements - `skipInvalid` _(default: false)_ - do not throw on invalid types (like function in the safe schema) and skip pairs and single values with such types. -- `flowLevel` (default: -1) - specifies level of nesting, when to switch from +- `flowLevel` _(default: -1)_ - specifies level of nesting, when to switch from block to flow style for collections. -1 means block style everwhere - `styles` - "tag" => "style" map. Each tag may have own set of styles. -- `schema` _(default: `DEFAULT_SAFE_SCHEMA`)_ specifies a schema to use. +- `schema` _(default: `DEFAULT_SCHEMA`)_ specifies a schema to use. - `sortKeys` _(default: `false`)_ - if `true`, sort keys when dumping YAML. If a function, use the function to sort the keys. -- `lineWidth` _(default: `80`)_ - set max line width. +- `lineWidth` _(default: `80`)_ - set max line width. Set `-1` for unlimited width. - `noRefs` _(default: `false`)_ - if `true`, don't convert duplicate objects into references - `noCompatMode` _(default: `false`)_ - if `true` don't try to be compatible with older yaml versions. Currently: don't quote "yes", "no" and so on, as required for YAML 1.1 - `condenseFlow` _(default: `false`)_ - if `true` flow sequences will be condensed, omitting the space between `a, b`. Eg. `'[a,b]'`, and omitting the space between `key: value` and quoting the key. Eg. `'{"a":b}'` Can be useful when using yaml for pretty URL query params as spaces are %-encoded. +- `quotingType` _(`'` or `"`, default: `'`)_ - strings will be quoted using this quoting style. If you specify single quotes, double quotes will still be used for non-printable characters. +- `forceQuotes` _(default: `false`)_ - if `true`, all non-key strings will be quoted even if they normally don't need to. +- `replacer` - callback `function (key, value)` called recursively on each key/value in source object (see `replacer` docs for `JSON.stringify`). The following table show availlable styles (e.g. "canonical", "binary"...) available for each tag (.e.g. !!null, !!int ...). Yaml @@ -198,7 +152,7 @@ output is shown on the right side after `=>` (default setting) or `->`: !!int "binary" -> "0b1", "0b101010", "0b1110001111010" - "octal" -> "01", "052", "016172" + "octal" -> "0o1", "0o52", "0o16172" "decimal" => "1", "42", "7290" "hexadecimal" -> "0x1", "0x2A", "0x1C7A" @@ -216,7 +170,7 @@ output is shown on the right side after `=>` (default setting) or `->`: Example: ``` javascript -safeDump (object, { +dump(object, { 'styles': { '!!null': 'canonical' // dump null as ~ }, @@ -224,15 +178,10 @@ safeDump (object, { }); ``` -### dump (object [ , options ]) - -Same as `safeDump()` but without limits (uses `DEFAULT_FULL_SCHEMA` by default). - - Supported YAML types -------------------- -The list of standard YAML tags and corresponding JavaScipt types. See also +The list of standard YAML tags and corresponding JavaScript types. See also [YAML tag discussion](http://pyyaml.org/wiki/YAMLTagDiscussion) and [YAML types repository](http://yaml.org/type/). @@ -253,11 +202,9 @@ The list of standard YAML tags and corresponding JavaScipt types. See also **JavaScript-specific tags** -``` -!!js/regexp /pattern/gim # RegExp -!!js/undefined '' # Undefined -!!js/function 'function () {...}' # Function -``` +See [js-yaml-js-types](https://github.com/nodeca/js-yaml-js-types) for +extra types. + Caveats ------- diff --git a/node_modules/js-yaml/bin/js-yaml.js b/node_modules/js-yaml/bin/js-yaml.js index e79186b..a182f1a 100755 --- a/node_modules/js-yaml/bin/js-yaml.js +++ b/node_modules/js-yaml/bin/js-yaml.js @@ -6,16 +6,9 @@ /*eslint-disable no-console*/ -// stdlib -var fs = require('fs'); - - -// 3rd-party +var fs = require('fs'); var argparse = require('argparse'); - - -// internal -var yaml = require('..'); +var yaml = require('..'); //////////////////////////////////////////////////////////////////////////////// @@ -23,42 +16,43 @@ var yaml = require('..'); var cli = new argparse.ArgumentParser({ prog: 'js-yaml', - version: require('../package.json').version, - addHelp: true + add_help: true }); +cli.add_argument('-v', '--version', { + action: 'version', + version: require('../package.json').version +}); -cli.addArgument([ '-c', '--compact' ], { +cli.add_argument('-c', '--compact', { help: 'Display errors in compact mode', - action: 'storeTrue' + action: 'store_true' }); - // deprecated (not needed after we removed output colors) // option suppressed, but not completely removed for compatibility -cli.addArgument([ '-j', '--to-json' ], { - help: argparse.Const.SUPPRESS, +cli.add_argument('-j', '--to-json', { + help: argparse.SUPPRESS, dest: 'json', - action: 'storeTrue' + action: 'store_true' }); - -cli.addArgument([ '-t', '--trace' ], { +cli.add_argument('-t', '--trace', { help: 'Show stack trace on error', - action: 'storeTrue' + action: 'store_true' }); -cli.addArgument([ 'file' ], { +cli.add_argument('file', { help: 'File to read, utf-8 encoded without BOM', nargs: '?', - defaultValue: '-' + default: '-' }); //////////////////////////////////////////////////////////////////////////////// -var options = cli.parseArgs(); +var options = cli.parse_args(); //////////////////////////////////////////////////////////////////////////////// diff --git a/node_modules/js-yaml/dist/js-yaml.js b/node_modules/js-yaml/dist/js-yaml.js index 7878320..4cc0ddf 100644 --- a/node_modules/js-yaml/dist/js-yaml.js +++ b/node_modules/js-yaml/dist/js-yaml.js @@ -1,2331 +1,2493 @@ -/*! js-yaml 3.14.1 https://github.com/nodeca/js-yaml */(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.jsyaml = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i */ -var CHAR_QUESTION = 0x3F; /* ? */ -var CHAR_COMMERCIAL_AT = 0x40; /* @ */ -var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ -var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ -var CHAR_GRAVE_ACCENT = 0x60; /* ` */ -var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ -var CHAR_VERTICAL_LINE = 0x7C; /* | */ -var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ - -var ESCAPE_SEQUENCES = {}; - -ESCAPE_SEQUENCES[0x00] = '\\0'; -ESCAPE_SEQUENCES[0x07] = '\\a'; -ESCAPE_SEQUENCES[0x08] = '\\b'; -ESCAPE_SEQUENCES[0x09] = '\\t'; -ESCAPE_SEQUENCES[0x0A] = '\\n'; -ESCAPE_SEQUENCES[0x0B] = '\\v'; -ESCAPE_SEQUENCES[0x0C] = '\\f'; -ESCAPE_SEQUENCES[0x0D] = '\\r'; -ESCAPE_SEQUENCES[0x1B] = '\\e'; -ESCAPE_SEQUENCES[0x22] = '\\"'; -ESCAPE_SEQUENCES[0x5C] = '\\\\'; -ESCAPE_SEQUENCES[0x85] = '\\N'; -ESCAPE_SEQUENCES[0xA0] = '\\_'; -ESCAPE_SEQUENCES[0x2028] = '\\L'; -ESCAPE_SEQUENCES[0x2029] = '\\P'; - -var DEPRECATED_BOOLEANS_SYNTAX = [ - 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', - 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' -]; - -function compileStyleMap(schema, map) { - var result, keys, index, length, tag, style, type; - - if (map === null) return {}; - - result = {}; - keys = Object.keys(map); - - for (index = 0, length = keys.length; index < length; index += 1) { - tag = keys[index]; - style = String(map[tag]); - - if (tag.slice(0, 2) === '!!') { - tag = 'tag:yaml.org,2002:' + tag.slice(2); - } - type = schema.compiledTypeMap['fallback'][tag]; - - if (type && _hasOwnProperty.call(type.styleAliases, style)) { - style = type.styleAliases[style]; + if (exception.mark.name) { + where += 'in "' + exception.mark.name + '" '; } - result[tag] = style; + where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')'; + + if (!compact && exception.mark.snippet) { + where += '\n\n' + exception.mark.snippet; + } + + return message + ' ' + where; } - return result; -} -function encodeHex(character) { - var string, handle, length; + function YAMLException$1(reason, mark) { + // Super constructor + Error.call(this); - string = character.toString(16).toUpperCase(); + this.name = 'YAMLException'; + this.reason = reason; + this.mark = mark; + this.message = formatError(this, false); - if (character <= 0xFF) { - handle = 'x'; - length = 2; - } else if (character <= 0xFFFF) { - handle = 'u'; - length = 4; - } else if (character <= 0xFFFFFFFF) { - handle = 'U'; - length = 8; - } else { - throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF'); - } - - return '\\' + handle + common.repeat('0', length - string.length) + string; -} - -function State(options) { - this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; - this.indent = Math.max(1, (options['indent'] || 2)); - this.noArrayIndent = options['noArrayIndent'] || false; - this.skipInvalid = options['skipInvalid'] || false; - this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); - this.styleMap = compileStyleMap(this.schema, options['styles'] || null); - this.sortKeys = options['sortKeys'] || false; - this.lineWidth = options['lineWidth'] || 80; - this.noRefs = options['noRefs'] || false; - this.noCompatMode = options['noCompatMode'] || false; - this.condenseFlow = options['condenseFlow'] || false; - - this.implicitTypes = this.schema.compiledImplicit; - this.explicitTypes = this.schema.compiledExplicit; - - this.tag = null; - this.result = ''; - - this.duplicates = []; - this.usedDuplicates = null; -} - -// Indents every line in a string. Empty lines (\n only) are not indented. -function indentString(string, spaces) { - var ind = common.repeat(' ', spaces), - position = 0, - next = -1, - result = '', - line, - length = string.length; - - while (position < length) { - next = string.indexOf('\n', position); - if (next === -1) { - line = string.slice(position); - position = length; + // Include stack trace in error object + if (Error.captureStackTrace) { + // Chrome and NodeJS + Error.captureStackTrace(this, this.constructor); } else { - line = string.slice(position, next + 1); - position = next + 1; - } - - if (line.length && line !== '\n') result += ind; - - result += line; - } - - return result; -} - -function generateNextLine(state, level) { - return '\n' + common.repeat(' ', state.indent * level); -} - -function testImplicitResolving(state, str) { - var index, length, type; - - for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { - type = state.implicitTypes[index]; - - if (type.resolve(str)) { - return true; + // FF, IE 10+ and Safari 6+. Fallback for others + this.stack = (new Error()).stack || ''; } } - return false; -} -// [33] s-white ::= s-space | s-tab -function isWhitespace(c) { - return c === CHAR_SPACE || c === CHAR_TAB; -} + // Inherit from Error + YAMLException$1.prototype = Object.create(Error.prototype); + YAMLException$1.prototype.constructor = YAMLException$1; -// Returns true if the character can be printed without escaping. -// From YAML 1.2: "any allowed characters known to be non-printable -// should also be escaped. [However,] This isn’t mandatory" -// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. -function isPrintable(c) { - return (0x00020 <= c && c <= 0x00007E) - || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) - || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */) - || (0x10000 <= c && c <= 0x10FFFF); -} -// [34] ns-char ::= nb-char - s-white -// [27] nb-char ::= c-printable - b-char - c-byte-order-mark -// [26] b-char ::= b-line-feed | b-carriage-return -// [24] b-line-feed ::= #xA /* LF */ -// [25] b-carriage-return ::= #xD /* CR */ -// [3] c-byte-order-mark ::= #xFEFF -function isNsChar(c) { - return isPrintable(c) && !isWhitespace(c) - // byte-order-mark - && c !== 0xFEFF - // b-char - && c !== CHAR_CARRIAGE_RETURN - && c !== CHAR_LINE_FEED; -} + YAMLException$1.prototype.toString = function toString(compact) { + return this.name + ': ' + formatError(this, compact); + }; -// Simplified test for values allowed after the first character in plain style. -function isPlainSafe(c, prev) { - // Uses a subset of nb-char - c-flow-indicator - ":" - "#" - // where nb-char ::= c-printable - b-char - c-byte-order-mark. - return isPrintable(c) && c !== 0xFEFF - // - c-flow-indicator - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET - // - ":" - "#" - // /* An ns-char preceding */ "#" - && c !== CHAR_COLON - && ((c !== CHAR_SHARP) || (prev && isNsChar(prev))); -} -// Simplified test for values allowed as the first character in plain style. -function isPlainSafeFirst(c) { - // Uses a subset of ns-char - c-indicator - // where ns-char = nb-char - s-white. - return isPrintable(c) && c !== 0xFEFF - && !isWhitespace(c) // - s-white - // - (c-indicator ::= - // β€œ-” | β€œ?” | β€œ:” | β€œ,” | β€œ[” | β€œ]” | β€œ{” | β€œ}” - && c !== CHAR_MINUS - && c !== CHAR_QUESTION - && c !== CHAR_COLON - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET - // | β€œ#” | β€œ&” | β€œ*” | β€œ!” | β€œ|” | β€œ=” | β€œ>” | β€œ'” | β€œ"” - && c !== CHAR_SHARP - && c !== CHAR_AMPERSAND - && c !== CHAR_ASTERISK - && c !== CHAR_EXCLAMATION - && c !== CHAR_VERTICAL_LINE - && c !== CHAR_EQUALS - && c !== CHAR_GREATER_THAN - && c !== CHAR_SINGLE_QUOTE - && c !== CHAR_DOUBLE_QUOTE - // | β€œ%” | β€œ@” | β€œ`”) - && c !== CHAR_PERCENT - && c !== CHAR_COMMERCIAL_AT - && c !== CHAR_GRAVE_ACCENT; -} + var exception = YAMLException$1; -// Determines whether block indentation indicator is required. -function needIndentIndicator(string) { - var leadingSpaceRe = /^\n* /; - return leadingSpaceRe.test(string); -} + // get snippet for a single line, respecting maxLength + function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { + var head = ''; + var tail = ''; + var maxHalfLength = Math.floor(maxLineLength / 2) - 1; -var STYLE_PLAIN = 1, - STYLE_SINGLE = 2, - STYLE_LITERAL = 3, - STYLE_FOLDED = 4, - STYLE_DOUBLE = 5; + if (position - lineStart > maxHalfLength) { + head = ' ... '; + lineStart = position - maxHalfLength + head.length; + } -// Determines which scalar styles are possible and returns the preferred style. -// lineWidth = -1 => no limit. -// Pre-conditions: str.length > 0. -// Post-conditions: -// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. -// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). -// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). -function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) { - var i; - var char, prev_char; - var hasLineBreak = false; - var hasFoldableLine = false; // only checked if shouldTrackWidth - var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; // count the first line correctly - var plain = isPlainSafeFirst(string.charCodeAt(0)) - && !isWhitespace(string.charCodeAt(string.length - 1)); + if (lineEnd - position > maxHalfLength) { + tail = ' ...'; + lineEnd = position + maxHalfLength - tail.length; + } - if (singleLineOnly) { - // Case: no block styles. - // Check for disallowed characters to rule out plain and single. - for (i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - if (!isPrintable(char)) { - return STYLE_DOUBLE; + return { + str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, 'β†’') + tail, + pos: position - lineStart + head.length // relative position + }; + } + + + function padStart(string, max) { + return common.repeat(' ', max - string.length) + string; + } + + + function makeSnippet(mark, options) { + options = Object.create(options || null); + + if (!mark.buffer) return null; + + if (!options.maxLength) options.maxLength = 79; + if (typeof options.indent !== 'number') options.indent = 1; + if (typeof options.linesBefore !== 'number') options.linesBefore = 3; + if (typeof options.linesAfter !== 'number') options.linesAfter = 2; + + var re = /\r?\n|\r|\0/g; + var lineStarts = [ 0 ]; + var lineEnds = []; + var match; + var foundLineNo = -1; + + while ((match = re.exec(mark.buffer))) { + lineEnds.push(match.index); + lineStarts.push(match.index + match[0].length); + + if (mark.position <= match.index && foundLineNo < 0) { + foundLineNo = lineStarts.length - 2; } - prev_char = i > 0 ? string.charCodeAt(i - 1) : null; - plain = plain && isPlainSafe(char, prev_char); } - } else { - // Case: block styles permitted. - for (i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - if (char === CHAR_LINE_FEED) { - hasLineBreak = true; - // Check if any line can be folded. - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || - // Foldable line = too long, and not more-indented. - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' '); - previousLineBreak = i; + + if (foundLineNo < 0) foundLineNo = lineStarts.length - 1; + + var result = '', i, line; + var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; + var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); + + for (i = 1; i <= options.linesBefore; i++) { + if (foundLineNo - i < 0) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo - i], + lineEnds[foundLineNo - i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), + maxLineLength + ); + result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n' + result; + } + + line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); + result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n'; + + for (i = 1; i <= options.linesAfter; i++) { + if (foundLineNo + i >= lineEnds.length) break; + line = getLine( + mark.buffer, + lineStarts[foundLineNo + i], + lineEnds[foundLineNo + i], + mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), + maxLineLength + ); + result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + + ' | ' + line.str + '\n'; + } + + return result.replace(/\n$/, ''); + } + + + var snippet = makeSnippet; + + var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'multi', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'representName', + 'defaultStyle', + 'styleAliases' + ]; + + var YAML_NODE_KINDS = [ + 'scalar', + 'sequence', + 'mapping' + ]; + + function compileStyleAliases(map) { + var result = {}; + + if (map !== null) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style; + }); + }); + } + + return result; + } + + function Type$1(tag, options) { + options = options || {}; + + Object.keys(options).forEach(function (name) { + if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { + throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + + // TODO: Add tag format check. + this.options = options; // keep original options in case user wants to extend this type later + this.tag = tag; + this.kind = options['kind'] || null; + this.resolve = options['resolve'] || function () { return true; }; + this.construct = options['construct'] || function (data) { return data; }; + this.instanceOf = options['instanceOf'] || null; + this.predicate = options['predicate'] || null; + this.represent = options['represent'] || null; + this.representName = options['representName'] || null; + this.defaultStyle = options['defaultStyle'] || null; + this.multi = options['multi'] || false; + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + + if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { + throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } + } + + var type = Type$1; + + /*eslint-disable max-len*/ + + + + + + function compileList(schema, name) { + var result = []; + + schema[name].forEach(function (currentType) { + var newIndex = result.length; + + result.forEach(function (previousType, previousIndex) { + if (previousType.tag === currentType.tag && + previousType.kind === currentType.kind && + previousType.multi === currentType.multi) { + + newIndex = previousIndex; } - } else if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - prev_char = i > 0 ? string.charCodeAt(i - 1) : null; - plain = plain && isPlainSafe(char, prev_char); - } - // in case the end is missing a \n - hasFoldableLine = hasFoldableLine || (shouldTrackWidth && - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' ')); - } - // Although every style can represent \n without escaping, prefer block styles - // for multiline, since they're more readable and they don't add empty lines. - // Also prefer folding a super-long line. - if (!hasLineBreak && !hasFoldableLine) { - // Strings interpretable as another type have to be quoted; - // e.g. the string 'true' vs. the boolean true. - return plain && !testAmbiguousType(string) - ? STYLE_PLAIN : STYLE_SINGLE; - } - // Edge case: block indentation indicator can only have one digit. - if (indentPerLevel > 9 && needIndentIndicator(string)) { - return STYLE_DOUBLE; - } - // At this point we know block styles are valid. - // Prefer literal style unless we want to fold. - return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; -} + }); -// Note: line breaking/folding is implemented for only the folded style. -// NB. We drop the last trailing newline (if any) of a returned block scalar -// since the dumper adds its own newline. This always works: -// β€’ No ending newline => unaffected; already using strip "-" chomping. -// β€’ Ending newline => removed then restored. -// Importantly, this keeps the "+" chomp indicator from gaining an extra line. -function writeScalar(state, string, level, iskey) { - state.dump = (function () { - if (string.length === 0) { - return "''"; - } - if (!state.noCompatMode && - DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) { - return "'" + string + "'"; - } + result[newIndex] = currentType; + }); - var indent = state.indent * Math.max(1, level); // no 0-indent scalars - // As indentation gets deeper, let the width decrease monotonically - // to the lower bound min(state.lineWidth, 40). - // Note that this implies - // state.lineWidth ≀ 40 + state.indent: width is fixed at the lower bound. - // state.lineWidth > 40 + state.indent: width decreases until the lower bound. - // This behaves better than a constant minimum width which disallows narrower options, - // or an indent threshold which causes the width to suddenly increase. - var lineWidth = state.lineWidth === -1 - ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); - - // Without knowing if keys are implicit/explicit, assume implicit for safety. - var singleLineOnly = iskey - // No block styles in flow mode. - || (state.flowLevel > -1 && level >= state.flowLevel); - function testAmbiguity(string) { - return testImplicitResolving(state, string); - } - - switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) { - case STYLE_PLAIN: - return string; - case STYLE_SINGLE: - return "'" + string.replace(/'/g, "''") + "'"; - case STYLE_LITERAL: - return '|' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(string, indent)); - case STYLE_FOLDED: - return '>' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); - case STYLE_DOUBLE: - return '"' + escapeString(string, lineWidth) + '"'; - default: - throw new YAMLException('impossible error: invalid scalar style'); - } - }()); -} - -// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. -function blockHeader(string, indentPerLevel) { - var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; - - // note the special case: the string '\n' counts as a "trailing" empty line. - var clip = string[string.length - 1] === '\n'; - var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); - var chomp = keep ? '+' : (clip ? '' : '-'); - - return indentIndicator + chomp + '\n'; -} - -// (See the note for writeScalar.) -function dropEndingNewline(string) { - return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; -} - -// Note: a long line without a suitable break point will exceed the width limit. -// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. -function foldString(string, width) { - // In folded style, $k$ consecutive newlines output as $k+1$ newlinesβ€” - // unless they're before or after a more-indented line, or at the very - // beginning or end, in which case $k$ maps to $k$. - // Therefore, parse each chunk as newline(s) followed by a content line. - var lineRe = /(\n+)([^\n]*)/g; - - // first line (possibly an empty line) - var result = (function () { - var nextLF = string.indexOf('\n'); - nextLF = nextLF !== -1 ? nextLF : string.length; - lineRe.lastIndex = nextLF; - return foldLine(string.slice(0, nextLF), width); - }()); - // If we haven't reached the first content line yet, don't add an extra \n. - var prevMoreIndented = string[0] === '\n' || string[0] === ' '; - var moreIndented; - - // rest of the lines - var match; - while ((match = lineRe.exec(string))) { - var prefix = match[1], line = match[2]; - moreIndented = (line[0] === ' '); - result += prefix - + (!prevMoreIndented && !moreIndented && line !== '' - ? '\n' : '') - + foldLine(line, width); - prevMoreIndented = moreIndented; + return result; } - return result; -} -// Greedy line breaking. -// Picks the longest line under the limit each time, -// otherwise settles for the shortest line over the limit. -// NB. More-indented lines *cannot* be folded, as that would add an extra \n. -function foldLine(line, width) { - if (line === '' || line[0] === ' ') return line; + function compileMap(/* lists... */) { + var result = { + scalar: {}, + sequence: {}, + mapping: {}, + fallback: {}, + multi: { + scalar: [], + sequence: [], + mapping: [], + fallback: [] + } + }, index, length; - // Since a more-indented line adds a \n, breaks can't be followed by a space. - var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. - var match; - // start is an inclusive index. end, curr, and next are exclusive. - var start = 0, end, curr = 0, next = 0; - var result = ''; - - // Invariants: 0 <= start <= length-1. - // 0 <= curr <= next <= max(0, length-2). curr - start <= width. - // Inside the loop: - // A match implies length >= 2, so curr and next are <= length-2. - while ((match = breakRe.exec(line))) { - next = match.index; - // maintain invariant: curr - start <= width - if (next - start > width) { - end = (curr > start) ? curr : next; // derive end <= length-2 - result += '\n' + line.slice(start, end); - // skip the space that was output as \n - start = end + 1; // derive start <= length-1 - } - curr = next; - } - - // By the invariants, start <= length-1, so there is something left over. - // It is either the whole string or a part starting from non-whitespace. - result += '\n'; - // Insert a break if the remainder is too long and there is a break available. - if (line.length - start > width && curr > start) { - result += line.slice(start, curr) + '\n' + line.slice(curr + 1); - } else { - result += line.slice(start); - } - - return result.slice(1); // drop extra \n joiner -} - -// Escapes a double-quoted string. -function escapeString(string) { - var result = ''; - var char, nextChar; - var escapeSeq; - - for (var i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - // Check for surrogate pairs (reference Unicode 3.0 section "3.7 Surrogates"). - if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) { - nextChar = string.charCodeAt(i + 1); - if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) { - // Combine the surrogate pair and store it escaped. - result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000); - // Advance index one extra since we already used that char here. - i++; continue; - } - } - escapeSeq = ESCAPE_SEQUENCES[char]; - result += !escapeSeq && isPrintable(char) - ? string[i] - : escapeSeq || encodeHex(char); - } - - return result; -} - -function writeFlowSequence(state, level, object) { - var _result = '', - _tag = state.tag, - index, - length; - - for (index = 0, length = object.length; index < length; index += 1) { - // Write only valid elements. - if (writeNode(state, level, object[index], false, false)) { - if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : ''); - _result += state.dump; - } - } - - state.tag = _tag; - state.dump = '[' + _result + ']'; -} - -function writeBlockSequence(state, level, object, compact) { - var _result = '', - _tag = state.tag, - index, - length; - - for (index = 0, length = object.length; index < length; index += 1) { - // Write only valid elements. - if (writeNode(state, level + 1, object[index], true, true)) { - if (!compact || index !== 0) { - _result += generateNextLine(state, level); - } - - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - _result += '-'; + function collectType(type) { + if (type.multi) { + result.multi[type.kind].push(type); + result.multi['fallback'].push(type); } else { - _result += '- '; - } - - _result += state.dump; - } - } - - state.tag = _tag; - state.dump = _result || '[]'; // Empty sequence if no valid values. -} - -function writeFlowMapping(state, level, object) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - pairBuffer; - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - - pairBuffer = ''; - if (index !== 0) pairBuffer += ', '; - - if (state.condenseFlow) pairBuffer += '"'; - - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - - if (!writeNode(state, level, objectKey, false, false)) { - continue; // Skip this pair because of invalid key; - } - - if (state.dump.length > 1024) pairBuffer += '? '; - - pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); - - if (!writeNode(state, level, objectValue, false, false)) { - continue; // Skip this pair because of invalid value. - } - - pairBuffer += state.dump; - - // Both key and value are valid. - _result += pairBuffer; - } - - state.tag = _tag; - state.dump = '{' + _result + '}'; -} - -function writeBlockMapping(state, level, object, compact) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - explicitPair, - pairBuffer; - - // Allow sorting keys so that the output file is deterministic - if (state.sortKeys === true) { - // Default sorting - objectKeyList.sort(); - } else if (typeof state.sortKeys === 'function') { - // Custom sort function - objectKeyList.sort(state.sortKeys); - } else if (state.sortKeys) { - // Something is wrong - throw new YAMLException('sortKeys must be a boolean or a function'); - } - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ''; - - if (!compact || index !== 0) { - pairBuffer += generateNextLine(state, level); - } - - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - - if (!writeNode(state, level + 1, objectKey, true, true, true)) { - continue; // Skip this pair because of invalid key. - } - - explicitPair = (state.tag !== null && state.tag !== '?') || - (state.dump && state.dump.length > 1024); - - if (explicitPair) { - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += '?'; - } else { - pairBuffer += '? '; + result[type.kind][type.tag] = result['fallback'][type.tag] = type; } } - pairBuffer += state.dump; - - if (explicitPair) { - pairBuffer += generateNextLine(state, level); + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); } + return result; + } - if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { - continue; // Skip this pair because of invalid value. - } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += ':'; + function Schema$1(definition) { + return this.extend(definition); + } + + + Schema$1.prototype.extend = function extend(definition) { + var implicit = []; + var explicit = []; + + if (definition instanceof type) { + // Schema.extend(type) + explicit.push(definition); + + } else if (Array.isArray(definition)) { + // Schema.extend([ type1, type2, ... ]) + explicit = explicit.concat(definition); + + } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { + // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] }) + if (definition.implicit) implicit = implicit.concat(definition.implicit); + if (definition.explicit) explicit = explicit.concat(definition.explicit); + } else { - pairBuffer += ': '; + throw new exception('Schema.extend argument should be a Type, [ Type ], ' + + 'or a schema definition ({ implicit: [...], explicit: [...] })'); } - pairBuffer += state.dump; + implicit.forEach(function (type$1) { + if (!(type$1 instanceof type)) { + throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } - // Both key and value are valid. - _result += pairBuffer; + if (type$1.loadKind && type$1.loadKind !== 'scalar') { + throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); + } + + if (type$1.multi) { + throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.'); + } + }); + + explicit.forEach(function (type$1) { + if (!(type$1 instanceof type)) { + throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + }); + + var result = Object.create(Schema$1.prototype); + + result.implicit = (this.implicit || []).concat(implicit); + result.explicit = (this.explicit || []).concat(explicit); + + result.compiledImplicit = compileList(result, 'implicit'); + result.compiledExplicit = compileList(result, 'explicit'); + result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); + + return result; + }; + + + var schema = Schema$1; + + var str = new type('tag:yaml.org,2002:str', { + kind: 'scalar', + construct: function (data) { return data !== null ? data : ''; } + }); + + var seq = new type('tag:yaml.org,2002:seq', { + kind: 'sequence', + construct: function (data) { return data !== null ? data : []; } + }); + + var map = new type('tag:yaml.org,2002:map', { + kind: 'mapping', + construct: function (data) { return data !== null ? data : {}; } + }); + + var failsafe = new schema({ + explicit: [ + str, + seq, + map + ] + }); + + function resolveYamlNull(data) { + if (data === null) return true; + + var max = data.length; + + return (max === 1 && data === '~') || + (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); } - state.tag = _tag; - state.dump = _result || '{}'; // Empty mapping if no valid pairs. -} + function constructYamlNull() { + return null; + } -function detectType(state, object, explicit) { - var _result, typeList, index, length, type, style; + function isNull(object) { + return object === null; + } - typeList = explicit ? state.explicitTypes : state.implicitTypes; + var _null = new type('tag:yaml.org,2002:null', { + kind: 'scalar', + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function () { return '~'; }, + lowercase: function () { return 'null'; }, + uppercase: function () { return 'NULL'; }, + camelcase: function () { return 'Null'; }, + empty: function () { return ''; } + }, + defaultStyle: 'lowercase' + }); - for (index = 0, length = typeList.length; index < length; index += 1) { - type = typeList[index]; + function resolveYamlBoolean(data) { + if (data === null) return false; - if ((type.instanceOf || type.predicate) && - (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && - (!type.predicate || type.predicate(object))) { + var max = data.length; - state.tag = explicit ? type.tag : '?'; + return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || + (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); + } - if (type.represent) { - style = state.styleMap[type.tag] || type.defaultStyle; + function constructYamlBoolean(data) { + return data === 'true' || + data === 'True' || + data === 'TRUE'; + } - if (_toString.call(type.represent) === '[object Function]') { - _result = type.represent(object, style); - } else if (_hasOwnProperty.call(type.represent, style)) { - _result = type.represent[style](object, style); - } else { - throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + function isBoolean(object) { + return Object.prototype.toString.call(object) === '[object Boolean]'; + } + + var bool = new type('tag:yaml.org,2002:bool', { + kind: 'scalar', + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function (object) { return object ? 'true' : 'false'; }, + uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, + camelcase: function (object) { return object ? 'True' : 'False'; } + }, + defaultStyle: 'lowercase' + }); + + function isHexCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || + ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || + ((0x61/* a */ <= c) && (c <= 0x66/* f */)); + } + + function isOctCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); + } + + function isDecCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); + } + + function resolveYamlInteger(data) { + if (data === null) return false; + + var max = data.length, + index = 0, + hasDigits = false, + ch; + + if (!max) return false; + + ch = data[index]; + + // sign + if (ch === '-' || ch === '+') { + ch = data[++index]; + } + + if (ch === '0') { + // 0 + if (index + 1 === max) return true; + ch = data[++index]; + + // base 2, base 8, base 16 + + if (ch === 'b') { + // base 2 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (ch !== '0' && ch !== '1') return false; + hasDigits = true; } - - state.dump = _result; + return hasDigits && ch !== '_'; } - return true; - } - } - return false; -} + if (ch === 'x') { + // base 16 + index++; -// Serializes `object` and writes it to global `result`. -// Returns true on success, or false on invalid object. -// -function writeNode(state, level, object, block, compact, iskey) { - state.tag = null; - state.dump = object; - - if (!detectType(state, object, false)) { - detectType(state, object, true); - } - - var type = _toString.call(state.dump); - - if (block) { - block = (state.flowLevel < 0 || state.flowLevel > level); - } - - var objectOrArray = type === '[object Object]' || type === '[object Array]', - duplicateIndex, - duplicate; - - if (objectOrArray) { - duplicateIndex = state.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; - } - - if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { - compact = false; - } - - if (duplicate && state.usedDuplicates[duplicateIndex]) { - state.dump = '*ref_' + duplicateIndex; - } else { - if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { - state.usedDuplicates[duplicateIndex] = true; - } - if (type === '[object Object]') { - if (block && (Object.keys(state.dump).length !== 0)) { - writeBlockMapping(state, level, state.dump, compact); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isHexCode(data.charCodeAt(index))) return false; + hasDigits = true; } - } else { - writeFlowMapping(state, level, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object Array]') { - var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level; - if (block && (state.dump.length !== 0)) { - writeBlockSequence(state, arrayLevel, state.dump, compact); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowSequence(state, arrayLevel, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object String]') { - if (state.tag !== '?') { - writeScalar(state, state.dump, level, iskey); - } - } else { - if (state.skipInvalid) return false; - throw new YAMLException('unacceptable kind of an object to dump ' + type); - } - - if (state.tag !== null && state.tag !== '?') { - state.dump = '!<' + state.tag + '> ' + state.dump; - } - } - - return true; -} - -function getDuplicateReferences(object, state) { - var objects = [], - duplicatesIndexes = [], - index, - length; - - inspectNode(object, objects, duplicatesIndexes); - - for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { - state.duplicates.push(objects[duplicatesIndexes[index]]); - } - state.usedDuplicates = new Array(length); -} - -function inspectNode(object, objects, duplicatesIndexes) { - var objectKeyList, - index, - length; - - if (object !== null && typeof object === 'object') { - index = objects.indexOf(object); - if (index !== -1) { - if (duplicatesIndexes.indexOf(index) === -1) { - duplicatesIndexes.push(index); - } - } else { - objects.push(object); - - if (Array.isArray(object)) { - for (index = 0, length = object.length; index < length; index += 1) { - inspectNode(object[index], objects, duplicatesIndexes); - } - } else { - objectKeyList = Object.keys(object); - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + return hasDigits && ch !== '_'; + } + + + if (ch === 'o') { + // base 8 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isOctCode(data.charCodeAt(index))) return false; + hasDigits = true; } + return hasDigits && ch !== '_'; } } - } -} -function dump(input, options) { - options = options || {}; + // base 10 (except 0) - var state = new State(options); + // value should not start with `_`; + if (ch === '_') return false; - if (!state.noRefs) getDuplicateReferences(input, state); - - if (writeNode(state, 0, input, true, true)) return state.dump + '\n'; - - return ''; -} - -function safeDump(input, options) { - return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); -} - -module.exports.dump = dump; -module.exports.safeDump = safeDump; - -},{"./common":2,"./exception":4,"./schema/default_full":9,"./schema/default_safe":10}],4:[function(require,module,exports){ -// YAML error class. http://stackoverflow.com/questions/8458984 -// -'use strict'; - -function YAMLException(reason, mark) { - // Super constructor - Error.call(this); - - this.name = 'YAMLException'; - this.reason = reason; - this.mark = mark; - this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : ''); - - // Include stack trace in error object - if (Error.captureStackTrace) { - // Chrome and NodeJS - Error.captureStackTrace(this, this.constructor); - } else { - // FF, IE 10+ and Safari 6+. Fallback for others - this.stack = (new Error()).stack || ''; - } -} - - -// Inherit from Error -YAMLException.prototype = Object.create(Error.prototype); -YAMLException.prototype.constructor = YAMLException; - - -YAMLException.prototype.toString = function toString(compact) { - var result = this.name + ': '; - - result += this.reason || '(unknown reason)'; - - if (!compact && this.mark) { - result += ' ' + this.mark.toString(); - } - - return result; -}; - - -module.exports = YAMLException; - -},{}],5:[function(require,module,exports){ -'use strict'; - -/*eslint-disable max-len,no-use-before-define*/ - -var common = require('./common'); -var YAMLException = require('./exception'); -var Mark = require('./mark'); -var DEFAULT_SAFE_SCHEMA = require('./schema/default_safe'); -var DEFAULT_FULL_SCHEMA = require('./schema/default_full'); - - -var _hasOwnProperty = Object.prototype.hasOwnProperty; - - -var CONTEXT_FLOW_IN = 1; -var CONTEXT_FLOW_OUT = 2; -var CONTEXT_BLOCK_IN = 3; -var CONTEXT_BLOCK_OUT = 4; - - -var CHOMPING_CLIP = 1; -var CHOMPING_STRIP = 2; -var CHOMPING_KEEP = 3; - - -var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; - - -function _class(obj) { return Object.prototype.toString.call(obj); } - -function is_EOL(c) { - return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); -} - -function is_WHITE_SPACE(c) { - return (c === 0x09/* Tab */) || (c === 0x20/* Space */); -} - -function is_WS_OR_EOL(c) { - return (c === 0x09/* Tab */) || - (c === 0x20/* Space */) || - (c === 0x0A/* LF */) || - (c === 0x0D/* CR */); -} - -function is_FLOW_INDICATOR(c) { - return c === 0x2C/* , */ || - c === 0x5B/* [ */ || - c === 0x5D/* ] */ || - c === 0x7B/* { */ || - c === 0x7D/* } */; -} - -function fromHexCode(c) { - var lc; - - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { - return c - 0x30; - } - - /*eslint-disable no-bitwise*/ - lc = c | 0x20; - - if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { - return lc - 0x61 + 10; - } - - return -1; -} - -function escapedHexLen(c) { - if (c === 0x78/* x */) { return 2; } - if (c === 0x75/* u */) { return 4; } - if (c === 0x55/* U */) { return 8; } - return 0; -} - -function fromDecimalCode(c) { - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { - return c - 0x30; - } - - return -1; -} - -function simpleEscapeSequence(c) { - /* eslint-disable indent */ - return (c === 0x30/* 0 */) ? '\x00' : - (c === 0x61/* a */) ? '\x07' : - (c === 0x62/* b */) ? '\x08' : - (c === 0x74/* t */) ? '\x09' : - (c === 0x09/* Tab */) ? '\x09' : - (c === 0x6E/* n */) ? '\x0A' : - (c === 0x76/* v */) ? '\x0B' : - (c === 0x66/* f */) ? '\x0C' : - (c === 0x72/* r */) ? '\x0D' : - (c === 0x65/* e */) ? '\x1B' : - (c === 0x20/* Space */) ? ' ' : - (c === 0x22/* " */) ? '\x22' : - (c === 0x2F/* / */) ? '/' : - (c === 0x5C/* \ */) ? '\x5C' : - (c === 0x4E/* N */) ? '\x85' : - (c === 0x5F/* _ */) ? '\xA0' : - (c === 0x4C/* L */) ? '\u2028' : - (c === 0x50/* P */) ? '\u2029' : ''; -} - -function charFromCodepoint(c) { - if (c <= 0xFFFF) { - return String.fromCharCode(c); - } - // Encode UTF-16 surrogate pair - // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF - return String.fromCharCode( - ((c - 0x010000) >> 10) + 0xD800, - ((c - 0x010000) & 0x03FF) + 0xDC00 - ); -} - -var simpleEscapeCheck = new Array(256); // integer, for fast access -var simpleEscapeMap = new Array(256); -for (var i = 0; i < 256; i++) { - simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; - simpleEscapeMap[i] = simpleEscapeSequence(i); -} - - -function State(input, options) { - this.input = input; - - this.filename = options['filename'] || null; - this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; - this.onWarning = options['onWarning'] || null; - this.legacy = options['legacy'] || false; - this.json = options['json'] || false; - this.listener = options['listener'] || null; - - this.implicitTypes = this.schema.compiledImplicit; - this.typeMap = this.schema.compiledTypeMap; - - this.length = input.length; - this.position = 0; - this.line = 0; - this.lineStart = 0; - this.lineIndent = 0; - - this.documents = []; - - /* - this.version; - this.checkLineBreaks; - this.tagMap; - this.anchorMap; - this.tag; - this.anchor; - this.kind; - this.result;*/ - -} - - -function generateError(state, message) { - return new YAMLException( - message, - new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart))); -} - -function throwError(state, message) { - throw generateError(state, message); -} - -function throwWarning(state, message) { - if (state.onWarning) { - state.onWarning.call(null, generateError(state, message)); - } -} - - -var directiveHandlers = { - - YAML: function handleYamlDirective(state, name, args) { - - var match, major, minor; - - if (state.version !== null) { - throwError(state, 'duplication of %YAML directive'); - } - - if (args.length !== 1) { - throwError(state, 'YAML directive accepts exactly one argument'); - } - - match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - - if (match === null) { - throwError(state, 'ill-formed argument of the YAML directive'); - } - - major = parseInt(match[1], 10); - minor = parseInt(match[2], 10); - - if (major !== 1) { - throwError(state, 'unacceptable YAML version of the document'); - } - - state.version = args[0]; - state.checkLineBreaks = (minor < 2); - - if (minor !== 1 && minor !== 2) { - throwWarning(state, 'unsupported YAML version of the document'); - } - }, - - TAG: function handleTagDirective(state, name, args) { - - var handle, prefix; - - if (args.length !== 2) { - throwError(state, 'TAG directive accepts exactly two arguments'); - } - - handle = args[0]; - prefix = args[1]; - - if (!PATTERN_TAG_HANDLE.test(handle)) { - throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); - } - - if (_hasOwnProperty.call(state.tagMap, handle)) { - throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); - } - - if (!PATTERN_TAG_URI.test(prefix)) { - throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); - } - - state.tagMap[handle] = prefix; - } -}; - - -function captureSegment(state, start, end, checkJson) { - var _position, _length, _character, _result; - - if (start < end) { - _result = state.input.slice(start, end); - - if (checkJson) { - for (_position = 0, _length = _result.length; _position < _length; _position += 1) { - _character = _result.charCodeAt(_position); - if (!(_character === 0x09 || - (0x20 <= _character && _character <= 0x10FFFF))) { - throwError(state, 'expected valid JSON character'); - } + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') continue; + if (!isDecCode(data.charCodeAt(index))) { + return false; } - } else if (PATTERN_NON_PRINTABLE.test(_result)) { - throwError(state, 'the stream contains non-printable characters'); + hasDigits = true; } - state.result += _result; - } -} + // Should have digits and should not end with `_` + if (!hasDigits || ch === '_') return false; -function mergeMappings(state, destination, source, overridableKeys) { - var sourceKeys, key, index, quantity; - - if (!common.isObject(source)) { - throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); + return true; } - sourceKeys = Object.keys(source); + function constructYamlInteger(data) { + var value = data, sign = 1, ch; - for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { - key = sourceKeys[index]; - - if (!_hasOwnProperty.call(destination, key)) { - destination[key] = source[key]; - overridableKeys[key] = true; + if (value.indexOf('_') !== -1) { + value = value.replace(/_/g, ''); } + + ch = value[0]; + + if (ch === '-' || ch === '+') { + if (ch === '-') sign = -1; + value = value.slice(1); + ch = value[0]; + } + + if (value === '0') return 0; + + if (ch === '0') { + if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); + if (value[1] === 'x') return sign * parseInt(value.slice(2), 16); + if (value[1] === 'o') return sign * parseInt(value.slice(2), 8); + } + + return sign * parseInt(value, 10); } -} -function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) { - var index, quantity; + function isInteger(object) { + return (Object.prototype.toString.call(object)) === '[object Number]' && + (object % 1 === 0 && !common.isNegativeZero(object)); + } - // The output is a plain object here, so keys can only be strings. - // We need to convert keyNode to a string, but doing so can hang the process - // (deeply nested arrays that explode exponentially using aliases). - if (Array.isArray(keyNode)) { - keyNode = Array.prototype.slice.call(keyNode); + var int = new type('tag:yaml.org,2002:int', { + kind: 'scalar', + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, + octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); }, + decimal: function (obj) { return obj.toString(10); }, + /* eslint-disable max-len */ + hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } + }, + defaultStyle: 'decimal', + styleAliases: { + binary: [ 2, 'bin' ], + octal: [ 8, 'oct' ], + decimal: [ 10, 'dec' ], + hexadecimal: [ 16, 'hex' ] + } + }); - for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { - if (Array.isArray(keyNode[index])) { - throwError(state, 'nested arrays are not supported inside keys'); + var YAML_FLOAT_PATTERN = new RegExp( + // 2.5e4, 2.5 and integers + '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + + // .2e4, .2 + // special case, seems not from spec + '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + + // .inf + '|[-+]?\\.(?:inf|Inf|INF)' + + // .nan + '|\\.(?:nan|NaN|NAN))$'); + + function resolveYamlFloat(data) { + if (data === null) return false; + + if (!YAML_FLOAT_PATTERN.test(data) || + // Quick hack to not allow integers end with `_` + // Probably should update regexp & check speed + data[data.length - 1] === '_') { + return false; + } + + return true; + } + + function constructYamlFloat(data) { + var value, sign; + + value = data.replace(/_/g, '').toLowerCase(); + sign = value[0] === '-' ? -1 : 1; + + if ('+-'.indexOf(value[0]) >= 0) { + value = value.slice(1); + } + + if (value === '.inf') { + return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + + } else if (value === '.nan') { + return NaN; + } + return sign * parseFloat(value, 10); + } + + + var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; + + function representYamlFloat(object, style) { + var res; + + if (isNaN(object)) { + switch (style) { + case 'lowercase': return '.nan'; + case 'uppercase': return '.NAN'; + case 'camelcase': return '.NaN'; } - - if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { - keyNode[index] = '[object Object]'; + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '.inf'; + case 'uppercase': return '.INF'; + case 'camelcase': return '.Inf'; } - } - } - - // Avoid code execution in load() via toString property - // (still use its own toString for arrays, timestamps, - // and whatever user schema extensions happen to have @@toStringTag) - if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { - keyNode = '[object Object]'; - } - - - keyNode = String(keyNode); - - if (_result === null) { - _result = {}; - } - - if (keyTag === 'tag:yaml.org,2002:merge') { - if (Array.isArray(valueNode)) { - for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { - mergeMappings(state, _result, valueNode[index], overridableKeys); + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case 'lowercase': return '-.inf'; + case 'uppercase': return '-.INF'; + case 'camelcase': return '-.Inf'; } - } else { - mergeMappings(state, _result, valueNode, overridableKeys); + } else if (common.isNegativeZero(object)) { + return '-0.0'; } - } else { - if (!state.json && - !_hasOwnProperty.call(overridableKeys, keyNode) && - _hasOwnProperty.call(_result, keyNode)) { - state.line = startLine || state.line; - state.position = startPos || state.position; - throwError(state, 'duplicated mapping key'); - } - _result[keyNode] = valueNode; - delete overridableKeys[keyNode]; + + res = object.toString(10); + + // JS stringifier can build scientific format without dots: 5e-100, + // while YAML requres dot: 5.e-100. Fix it with simple hack + + return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; } - return _result; -} - -function readLineBreak(state) { - var ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x0A/* LF */) { - state.position++; - } else if (ch === 0x0D/* CR */) { - state.position++; - if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { - state.position++; - } - } else { - throwError(state, 'a line break is expected'); + function isFloat(object) { + return (Object.prototype.toString.call(object) === '[object Number]') && + (object % 1 !== 0 || common.isNegativeZero(object)); } - state.line += 1; - state.lineStart = state.position; -} + var float = new type('tag:yaml.org,2002:float', { + kind: 'scalar', + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: 'lowercase' + }); -function skipSeparationSpace(state, allowComments, checkIndent) { - var lineBreaks = 0, - ch = state.input.charCodeAt(state.position); + var json = failsafe.extend({ + implicit: [ + _null, + bool, + int, + float + ] + }); - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } + var core = json; - if (allowComments && ch === 0x23/* # */) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); - } + var YAML_DATE_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9])' + // [2] month + '-([0-9][0-9])$'); // [3] day - if (is_EOL(ch)) { - readLineBreak(state); + var YAML_TIMESTAMP_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9]?)' + // [2] month + '-([0-9][0-9]?)' + // [3] day + '(?:[Tt]|[ \\t]+)' + // ... + '([0-9][0-9]?)' + // [4] hour + ':([0-9][0-9])' + // [5] minute + ':([0-9][0-9])' + // [6] second + '(?:\\.([0-9]*))?' + // [7] fraction + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour + '(?::([0-9][0-9]))?))?$'); // [11] tz_minute - ch = state.input.charCodeAt(state.position); - lineBreaks++; - state.lineIndent = 0; - - while (ch === 0x20/* Space */) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - } else { - break; - } - } - - if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { - throwWarning(state, 'deficient indentation'); - } - - return lineBreaks; -} - -function testDocumentSeparator(state) { - var _position = state.position, - ch; - - ch = state.input.charCodeAt(_position); - - // Condition state.position === state.lineStart is tested - // in parent on each call, for efficiency. No needs to test here again. - if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && - ch === state.input.charCodeAt(_position + 1) && - ch === state.input.charCodeAt(_position + 2)) { - - _position += 3; - - ch = state.input.charCodeAt(_position); - - if (ch === 0 || is_WS_OR_EOL(ch)) { - return true; - } - } - - return false; -} - -function writeFoldedLines(state, count) { - if (count === 1) { - state.result += ' '; - } else if (count > 1) { - state.result += common.repeat('\n', count - 1); - } -} - - -function readPlainScalar(state, nodeIndent, withinFlowCollection) { - var preceding, - following, - captureStart, - captureEnd, - hasPendingContent, - _line, - _lineStart, - _lineIndent, - _kind = state.kind, - _result = state.result, - ch; - - ch = state.input.charCodeAt(state.position); - - if (is_WS_OR_EOL(ch) || - is_FLOW_INDICATOR(ch) || - ch === 0x23/* # */ || - ch === 0x26/* & */ || - ch === 0x2A/* * */ || - ch === 0x21/* ! */ || - ch === 0x7C/* | */ || - ch === 0x3E/* > */ || - ch === 0x27/* ' */ || - ch === 0x22/* " */ || - ch === 0x25/* % */ || - ch === 0x40/* @ */ || - ch === 0x60/* ` */) { + function resolveYamlTimestamp(data) { + if (data === null) return false; + if (YAML_DATE_REGEXP.exec(data) !== null) return true; + if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; return false; } - if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { - following = state.input.charCodeAt(state.position + 1); + function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { - return false; + match = YAML_DATE_REGEXP.exec(data); + if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); + + if (match === null) throw new Error('Date resolve error'); + + // match: [1] year [2] month [3] day + + year = +(match[1]); + month = +(match[2]) - 1; // JS month starts with 0 + day = +(match[3]); + + if (!match[4]) { // no hour + return new Date(Date.UTC(year, month, day)); + } + + // match: [4] hour [5] minute [6] second [7] fraction + + hour = +(match[4]); + minute = +(match[5]); + second = +(match[6]); + + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { // milli-seconds + fraction += '0'; + } + fraction = +fraction; + } + + // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + + if (match[9]) { + tz_hour = +(match[10]); + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds + if (match[9] === '-') delta = -delta; + } + + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + + if (delta) date.setTime(date.getTime() - delta); + + return date; + } + + function representYamlTimestamp(object /*, style*/) { + return object.toISOString(); + } + + var timestamp = new type('tag:yaml.org,2002:timestamp', { + kind: 'scalar', + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp + }); + + function resolveYamlMerge(data) { + return data === '<<' || data === null; + } + + var merge = new type('tag:yaml.org,2002:merge', { + kind: 'scalar', + resolve: resolveYamlMerge + }); + + /*eslint-disable no-bitwise*/ + + + + + + // [ 64, 65, 66 ] -> [ padding, CR, LF ] + var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; + + + function resolveYamlBinary(data) { + if (data === null) return false; + + var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; + + // Convert one by one. + for (idx = 0; idx < max; idx++) { + code = map.indexOf(data.charAt(idx)); + + // Skip CR/LF + if (code > 64) continue; + + // Fail on illegal characters + if (code < 0) return false; + + bitlen += 6; + } + + // If there are any bits left, source was corrupted + return (bitlen % 8) === 0; + } + + function constructYamlBinary(data) { + var idx, tailbits, + input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + max = input.length, + map = BASE64_MAP, + bits = 0, + result = []; + + // Collect by 6*4 bits (3 bytes) + + for (idx = 0; idx < max; idx++) { + if ((idx % 4 === 0) && idx) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } + + bits = (bits << 6) | map.indexOf(input.charAt(idx)); + } + + // Dump tail + + tailbits = (max % 4) * 6; + + if (tailbits === 0) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } else if (tailbits === 18) { + result.push((bits >> 10) & 0xFF); + result.push((bits >> 2) & 0xFF); + } else if (tailbits === 12) { + result.push((bits >> 4) & 0xFF); + } + + return new Uint8Array(result); + } + + function representYamlBinary(object /*, style*/) { + var result = '', bits = 0, idx, tail, + max = object.length, + map = BASE64_MAP; + + // Convert every three bytes to 4 ASCII characters. + + for (idx = 0; idx < max; idx++) { + if ((idx % 3 === 0) && idx) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } + + bits = (bits << 8) + object[idx]; + } + + // Dump tail + + tail = max % 3; + + if (tail === 0) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } else if (tail === 2) { + result += map[(bits >> 10) & 0x3F]; + result += map[(bits >> 4) & 0x3F]; + result += map[(bits << 2) & 0x3F]; + result += map[64]; + } else if (tail === 1) { + result += map[(bits >> 2) & 0x3F]; + result += map[(bits << 4) & 0x3F]; + result += map[64]; + result += map[64]; + } + + return result; + } + + function isBinary(obj) { + return Object.prototype.toString.call(obj) === '[object Uint8Array]'; + } + + var binary = new type('tag:yaml.org,2002:binary', { + kind: 'scalar', + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary + }); + + var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; + var _toString$2 = Object.prototype.toString; + + function resolveYamlOmap(data) { + if (data === null) return true; + + var objectKeys = [], index, length, pair, pairKey, pairHasKey, + object = data; + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + + if (_toString$2.call(pair) !== '[object Object]') return false; + + for (pairKey in pair) { + if (_hasOwnProperty$3.call(pair, pairKey)) { + if (!pairHasKey) pairHasKey = true; + else return false; + } + } + + if (!pairHasKey) return false; + + if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); + else return false; + } + + return true; + } + + function constructYamlOmap(data) { + return data !== null ? data : []; + } + + var omap = new type('tag:yaml.org,2002:omap', { + kind: 'sequence', + resolve: resolveYamlOmap, + construct: constructYamlOmap + }); + + var _toString$1 = Object.prototype.toString; + + function resolveYamlPairs(data) { + if (data === null) return true; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + if (_toString$1.call(pair) !== '[object Object]') return false; + + keys = Object.keys(pair); + + if (keys.length !== 1) return false; + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return true; + } + + function constructYamlPairs(data) { + if (data === null) return []; + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + keys = Object.keys(pair); + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return result; + } + + var pairs = new type('tag:yaml.org,2002:pairs', { + kind: 'sequence', + resolve: resolveYamlPairs, + construct: constructYamlPairs + }); + + var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; + + function resolveYamlSet(data) { + if (data === null) return true; + + var key, object = data; + + for (key in object) { + if (_hasOwnProperty$2.call(object, key)) { + if (object[key] !== null) return false; + } + } + + return true; + } + + function constructYamlSet(data) { + return data !== null ? data : {}; + } + + var set = new type('tag:yaml.org,2002:set', { + kind: 'mapping', + resolve: resolveYamlSet, + construct: constructYamlSet + }); + + var _default = core.extend({ + implicit: [ + timestamp, + merge + ], + explicit: [ + binary, + omap, + pairs, + set + ] + }); + + /*eslint-disable max-len,no-use-before-define*/ + + + + + + + + var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; + + + var CONTEXT_FLOW_IN = 1; + var CONTEXT_FLOW_OUT = 2; + var CONTEXT_BLOCK_IN = 3; + var CONTEXT_BLOCK_OUT = 4; + + + var CHOMPING_CLIP = 1; + var CHOMPING_STRIP = 2; + var CHOMPING_KEEP = 3; + + + var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; + var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; + var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; + var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; + var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; + + + function _class(obj) { return Object.prototype.toString.call(obj); } + + function is_EOL(c) { + return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); + } + + function is_WHITE_SPACE(c) { + return (c === 0x09/* Tab */) || (c === 0x20/* Space */); + } + + function is_WS_OR_EOL(c) { + return (c === 0x09/* Tab */) || + (c === 0x20/* Space */) || + (c === 0x0A/* LF */) || + (c === 0x0D/* CR */); + } + + function is_FLOW_INDICATOR(c) { + return c === 0x2C/* , */ || + c === 0x5B/* [ */ || + c === 0x5D/* ] */ || + c === 0x7B/* { */ || + c === 0x7D/* } */; + } + + function fromHexCode(c) { + var lc; + + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + /*eslint-disable no-bitwise*/ + lc = c | 0x20; + + if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { + return lc - 0x61 + 10; + } + + return -1; + } + + function escapedHexLen(c) { + if (c === 0x78/* x */) { return 2; } + if (c === 0x75/* u */) { return 4; } + if (c === 0x55/* U */) { return 8; } + return 0; + } + + function fromDecimalCode(c) { + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + return -1; + } + + function simpleEscapeSequence(c) { + /* eslint-disable indent */ + return (c === 0x30/* 0 */) ? '\x00' : + (c === 0x61/* a */) ? '\x07' : + (c === 0x62/* b */) ? '\x08' : + (c === 0x74/* t */) ? '\x09' : + (c === 0x09/* Tab */) ? '\x09' : + (c === 0x6E/* n */) ? '\x0A' : + (c === 0x76/* v */) ? '\x0B' : + (c === 0x66/* f */) ? '\x0C' : + (c === 0x72/* r */) ? '\x0D' : + (c === 0x65/* e */) ? '\x1B' : + (c === 0x20/* Space */) ? ' ' : + (c === 0x22/* " */) ? '\x22' : + (c === 0x2F/* / */) ? '/' : + (c === 0x5C/* \ */) ? '\x5C' : + (c === 0x4E/* N */) ? '\x85' : + (c === 0x5F/* _ */) ? '\xA0' : + (c === 0x4C/* L */) ? '\u2028' : + (c === 0x50/* P */) ? '\u2029' : ''; + } + + function charFromCodepoint(c) { + if (c <= 0xFFFF) { + return String.fromCharCode(c); + } + // Encode UTF-16 surrogate pair + // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF + return String.fromCharCode( + ((c - 0x010000) >> 10) + 0xD800, + ((c - 0x010000) & 0x03FF) + 0xDC00 + ); + } + + var simpleEscapeCheck = new Array(256); // integer, for fast access + var simpleEscapeMap = new Array(256); + for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); + } + + + function State$1(input, options) { + this.input = input; + + this.filename = options['filename'] || null; + this.schema = options['schema'] || _default; + this.onWarning = options['onWarning'] || null; + // (Hidden) Remove? makes the loader to expect YAML 1.1 documents + // if such documents have no explicit %YAML directive + this.legacy = options['legacy'] || false; + + this.json = options['json'] || false; + this.listener = options['listener'] || null; + + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + + // position of first leading tab in the current line, + // used to make sure there are no tabs in the indentation + this.firstTabInLine = -1; + + this.documents = []; + + /* + this.version; + this.checkLineBreaks; + this.tagMap; + this.anchorMap; + this.tag; + this.anchor; + this.kind; + this.result;*/ + + } + + + function generateError(state, message) { + var mark = { + name: state.filename, + buffer: state.input.slice(0, -1), // omit trailing \0 + position: state.position, + line: state.line, + column: state.position - state.lineStart + }; + + mark.snippet = snippet(mark); + + return new exception(message, mark); + } + + function throwError(state, message) { + throw generateError(state, message); + } + + function throwWarning(state, message) { + if (state.onWarning) { + state.onWarning.call(null, generateError(state, message)); } } - state.kind = 'scalar'; - state.result = ''; - captureStart = captureEnd = state.position; - hasPendingContent = false; - while (ch !== 0) { - if (ch === 0x3A/* : */) { + var directiveHandlers = { + + YAML: function handleYamlDirective(state, name, args) { + + var match, major, minor; + + if (state.version !== null) { + throwError(state, 'duplication of %YAML directive'); + } + + if (args.length !== 1) { + throwError(state, 'YAML directive accepts exactly one argument'); + } + + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + + if (match === null) { + throwError(state, 'ill-formed argument of the YAML directive'); + } + + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); + + if (major !== 1) { + throwError(state, 'unacceptable YAML version of the document'); + } + + state.version = args[0]; + state.checkLineBreaks = (minor < 2); + + if (minor !== 1 && minor !== 2) { + throwWarning(state, 'unsupported YAML version of the document'); + } + }, + + TAG: function handleTagDirective(state, name, args) { + + var handle, prefix; + + if (args.length !== 2) { + throwError(state, 'TAG directive accepts exactly two arguments'); + } + + handle = args[0]; + prefix = args[1]; + + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); + } + + if (_hasOwnProperty$1.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + } + + try { + prefix = decodeURIComponent(prefix); + } catch (err) { + throwError(state, 'tag prefix is malformed: ' + prefix); + } + + state.tagMap[handle] = prefix; + } + }; + + + function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; + + if (start < end) { + _result = state.input.slice(start, end); + + if (checkJson) { + for (_position = 0, _length = _result.length; _position < _length; _position += 1) { + _character = _result.charCodeAt(_position); + if (!(_character === 0x09 || + (0x20 <= _character && _character <= 0x10FFFF))) { + throwError(state, 'expected valid JSON character'); + } + } + } else if (PATTERN_NON_PRINTABLE.test(_result)) { + throwError(state, 'the stream contains non-printable characters'); + } + + state.result += _result; + } + } + + function mergeMappings(state, destination, source, overridableKeys) { + var sourceKeys, key, index, quantity; + + if (!common.isObject(source)) { + throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); + } + + sourceKeys = Object.keys(source); + + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + + if (!_hasOwnProperty$1.call(destination, key)) { + destination[key] = source[key]; + overridableKeys[key] = true; + } + } + } + + function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, + startLine, startLineStart, startPos) { + + var index, quantity; + + // The output is a plain object here, so keys can only be strings. + // We need to convert keyNode to a string, but doing so can hang the process + // (deeply nested arrays that explode exponentially using aliases). + if (Array.isArray(keyNode)) { + keyNode = Array.prototype.slice.call(keyNode); + + for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { + if (Array.isArray(keyNode[index])) { + throwError(state, 'nested arrays are not supported inside keys'); + } + + if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { + keyNode[index] = '[object Object]'; + } + } + } + + // Avoid code execution in load() via toString property + // (still use its own toString for arrays, timestamps, + // and whatever user schema extensions happen to have @@toStringTag) + if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { + keyNode = '[object Object]'; + } + + + keyNode = String(keyNode); + + if (_result === null) { + _result = {}; + } + + if (keyTag === 'tag:yaml.org,2002:merge') { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index], overridableKeys); + } + } else { + mergeMappings(state, _result, valueNode, overridableKeys); + } + } else { + if (!state.json && + !_hasOwnProperty$1.call(overridableKeys, keyNode) && + _hasOwnProperty$1.call(_result, keyNode)) { + state.line = startLine || state.line; + state.lineStart = startLineStart || state.lineStart; + state.position = startPos || state.position; + throwError(state, 'duplicated mapping key'); + } + + // used for this specific key only because Object.defineProperty is slow + if (keyNode === '__proto__') { + Object.defineProperty(_result, keyNode, { + configurable: true, + enumerable: true, + writable: true, + value: valueNode + }); + } else { + _result[keyNode] = valueNode; + } + delete overridableKeys[keyNode]; + } + + return _result; + } + + function readLineBreak(state) { + var ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x0A/* LF */) { + state.position++; + } else if (ch === 0x0D/* CR */) { + state.position++; + if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { + state.position++; + } + } else { + throwError(state, 'a line break is expected'); + } + + state.line += 1; + state.lineStart = state.position; + state.firstTabInLine = -1; + } + + function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) { + state.firstTabInLine = state.position; + } + ch = state.input.charCodeAt(++state.position); + } + + if (allowComments && ch === 0x23/* # */) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); + } + + if (is_EOL(ch)) { + readLineBreak(state); + + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; + + while (ch === 0x20/* Space */) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } + + if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { + throwWarning(state, 'deficient indentation'); + } + + return lineBreaks; + } + + function testDocumentSeparator(state) { + var _position = state.position, + ch; + + ch = state.input.charCodeAt(_position); + + // Condition state.position === state.lineStart is tested + // in parent on each call, for efficiency. No needs to test here again. + if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && + ch === state.input.charCodeAt(_position + 1) && + ch === state.input.charCodeAt(_position + 2)) { + + _position += 3; + + ch = state.input.charCodeAt(_position); + + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + + return false; + } + + function writeFoldedLines(state, count) { + if (count === 1) { + state.result += ' '; + } else if (count > 1) { + state.result += common.repeat('\n', count - 1); + } + } + + + function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, + following, + captureStart, + captureEnd, + hasPendingContent, + _line, + _lineStart, + _lineIndent, + _kind = state.kind, + _result = state.result, + ch; + + ch = state.input.charCodeAt(state.position); + + if (is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || + ch === 0x23/* # */ || + ch === 0x26/* & */ || + ch === 0x2A/* * */ || + ch === 0x21/* ! */ || + ch === 0x7C/* | */ || + ch === 0x3E/* > */ || + ch === 0x27/* ' */ || + ch === 0x22/* " */ || + ch === 0x25/* % */ || + ch === 0x40/* @ */ || + ch === 0x60/* ` */) { + return false; + } + + if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { following = state.input.charCodeAt(state.position + 1); if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { - break; - } - - } else if (ch === 0x23/* # */) { - preceding = state.input.charCodeAt(state.position - 1); - - if (is_WS_OR_EOL(preceding)) { - break; - } - - } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || - withinFlowCollection && is_FLOW_INDICATOR(ch)) { - break; - - } else if (is_EOL(ch)) { - _line = state.line; - _lineStart = state.lineStart; - _lineIndent = state.lineIndent; - skipSeparationSpace(state, false, -1); - - if (state.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = state.input.charCodeAt(state.position); - continue; - } else { - state.position = captureEnd; - state.line = _line; - state.lineStart = _lineStart; - state.lineIndent = _lineIndent; - break; + return false; } } - if (hasPendingContent) { - captureSegment(state, captureStart, captureEnd, false); - writeFoldedLines(state, state.line - _line); - captureStart = captureEnd = state.position; - hasPendingContent = false; + state.kind = 'scalar'; + state.result = ''; + captureStart = captureEnd = state.position; + hasPendingContent = false; + + while (ch !== 0) { + if (ch === 0x3A/* : */) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + + } else if (ch === 0x23/* # */) { + preceding = state.input.charCodeAt(state.position - 1); + + if (is_WS_OR_EOL(preceding)) { + break; + } + + } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || + withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); + + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; + } + } + + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + + ch = state.input.charCodeAt(++state.position); } - if (!is_WHITE_SPACE(ch)) { - captureEnd = state.position + 1; + captureSegment(state, captureStart, captureEnd, false); + + if (state.result) { + return true; } - ch = state.input.charCodeAt(++state.position); - } - - captureSegment(state, captureStart, captureEnd, false); - - if (state.result) { - return true; - } - - state.kind = _kind; - state.result = _result; - return false; -} - -function readSingleQuotedScalar(state, nodeIndent) { - var ch, - captureStart, captureEnd; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x27/* ' */) { + state.kind = _kind; + state.result = _result; return false; } - state.kind = 'scalar'; - state.result = ''; - state.position++; - captureStart = captureEnd = state.position; + function readSingleQuotedScalar(state, nodeIndent) { + var ch, + captureStart, captureEnd; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x27/* ' */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); + ch = state.input.charCodeAt(state.position); + if (ch !== 0x27/* ' */) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while ((ch = state.input.charCodeAt(state.position)) !== 0) { if (ch === 0x27/* ' */) { - captureStart = state.position; + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x27/* ' */) { + captureStart = state.position; + state.position++; + captureEnd = state.position; + } else { + return true; + } + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a single quoted scalar'); + + } else { state.position++; captureEnd = state.position; - } else { - return true; } - - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a single quoted scalar'); - - } else { - state.position++; - captureEnd = state.position; } + + throwError(state, 'unexpected end of the stream within a single quoted scalar'); } - throwError(state, 'unexpected end of the stream within a single quoted scalar'); -} + function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, + captureEnd, + hexLength, + hexResult, + tmp, + ch; -function readDoubleQuotedScalar(state, nodeIndent) { - var captureStart, - captureEnd, - hexLength, - hexResult, - tmp, - ch; + ch = state.input.charCodeAt(state.position); - ch = state.input.charCodeAt(state.position); + if (ch !== 0x22/* " */) { + return false; + } - if (ch !== 0x22/* " */) { - return false; - } + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; - state.kind = 'scalar'; - state.result = ''; - state.position++; - captureStart = captureEnd = state.position; - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x22/* " */) { - captureSegment(state, captureStart, state.position, true); - state.position++; - return true; - - } else if (ch === 0x5C/* \ */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - - if (is_EOL(ch)) { - skipSeparationSpace(state, false, nodeIndent); - - // TODO: rework to inline fn with no type cast? - } else if (ch < 256 && simpleEscapeCheck[ch]) { - state.result += simpleEscapeMap[ch]; + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + if (ch === 0x22/* " */) { + captureSegment(state, captureStart, state.position, true); state.position++; + return true; - } else if ((tmp = escapedHexLen(ch)) > 0) { - hexLength = tmp; - hexResult = 0; + } else if (ch === 0x5C/* \ */) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); - for (; hexLength > 0; hexLength--) { - ch = state.input.charCodeAt(++state.position); + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); - if ((tmp = fromHexCode(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; + // TODO: rework to inline fn with no type cast? + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; - } else { - throwError(state, 'expected hexadecimal character'); + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); + + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + + } else { + throwError(state, 'expected hexadecimal character'); + } } + + state.result += charFromCodepoint(hexResult); + + state.position++; + + } else { + throwError(state, 'unknown escape sequence'); } - state.result += charFromCodepoint(hexResult); + captureStart = captureEnd = state.position; - state.position++; + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a double quoted scalar'); } else { - throwError(state, 'unknown escape sequence'); - } - - captureStart = captureEnd = state.position; - - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a double quoted scalar'); - - } else { - state.position++; - captureEnd = state.position; - } - } - - throwError(state, 'unexpected end of the stream within a double quoted scalar'); -} - -function readFlowCollection(state, nodeIndent) { - var readNext = true, - _line, - _tag = state.tag, - _result, - _anchor = state.anchor, - following, - terminator, - isPair, - isExplicitPair, - isMapping, - overridableKeys = {}, - keyNode, - keyTag, - valueNode, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x5B/* [ */) { - terminator = 0x5D;/* ] */ - isMapping = false; - _result = []; - } else if (ch === 0x7B/* { */) { - terminator = 0x7D;/* } */ - isMapping = true; - _result = {}; - } else { - return false; - } - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - - ch = state.input.charCodeAt(++state.position); - - while (ch !== 0) { - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if (ch === terminator) { - state.position++; - state.tag = _tag; - state.anchor = _anchor; - state.kind = isMapping ? 'mapping' : 'sequence'; - state.result = _result; - return true; - } else if (!readNext) { - throwError(state, 'missed comma between flow collection entries'); - } - - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; - - if (ch === 0x3F/* ? */) { - following = state.input.charCodeAt(state.position + 1); - - if (is_WS_OR_EOL(following)) { - isPair = isExplicitPair = true; state.position++; - skipSeparationSpace(state, true, nodeIndent); + captureEnd = state.position; } } - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = state.tag; - keyNode = state.result; - skipSeparationSpace(state, true, nodeIndent); + throwError(state, 'unexpected end of the stream within a double quoted scalar'); + } + + function readFlowCollection(state, nodeIndent) { + var readNext = true, + _line, + _lineStart, + _pos, + _tag = state.tag, + _result, + _anchor = state.anchor, + following, + terminator, + isPair, + isExplicitPair, + isMapping, + overridableKeys = Object.create(null), + keyNode, + keyTag, + valueNode, + ch; ch = state.input.charCodeAt(state.position); - if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { - isPair = true; - ch = state.input.charCodeAt(++state.position); - skipSeparationSpace(state, true, nodeIndent); - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = state.result; - } - - if (isMapping) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode); - } else if (isPair) { - _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode)); + if (ch === 0x5B/* [ */) { + terminator = 0x5D;/* ] */ + isMapping = false; + _result = []; + } else if (ch === 0x7B/* { */) { + terminator = 0x7D;/* } */ + isMapping = true; + _result = {}; } else { - _result.push(keyNode); + return false; } - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x2C/* , */) { - readNext = true; - ch = state.input.charCodeAt(++state.position); - } else { - readNext = false; + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; } - } - throwError(state, 'unexpected end of the stream within a flow collection'); -} - -function readBlockScalar(state, nodeIndent) { - var captureStart, - folding, - chomping = CHOMPING_CLIP, - didReadContent = false, - detectedIndent = false, - textIndent = nodeIndent, - emptyLines = 0, - atMoreIndented = false, - tmp, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x7C/* | */) { - folding = false; - } else if (ch === 0x3E/* > */) { - folding = true; - } else { - return false; - } - - state.kind = 'scalar'; - state.result = ''; - - while (ch !== 0) { ch = state.input.charCodeAt(++state.position); - if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { - if (CHOMPING_CLIP === chomping) { - chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - throwError(state, 'repeat of a chomping mode identifier'); + while (ch !== 0) { + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? 'mapping' : 'sequence'; + state.result = _result; + return true; + } else if (!readNext) { + throwError(state, 'missed comma between flow collection entries'); + } else if (ch === 0x2C/* , */) { + // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4 + throwError(state, "expected the node content, but found ','"); } - } else if ((tmp = fromDecimalCode(ch)) >= 0) { - if (tmp === 0) { - throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - throwError(state, 'repeat of an indentation width identifier'); - } - - } else { - break; - } - } - - if (is_WHITE_SPACE(ch)) { - do { ch = state.input.charCodeAt(++state.position); } - while (is_WHITE_SPACE(ch)); - - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (!is_EOL(ch) && (ch !== 0)); - } - } - - while (ch !== 0) { - readLineBreak(state); - state.lineIndent = 0; - - ch = state.input.charCodeAt(state.position); - - while ((!detectedIndent || state.lineIndent < textIndent) && - (ch === 0x20/* Space */)) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - - if (!detectedIndent && state.lineIndent > textIndent) { - textIndent = state.lineIndent; - } - - if (is_EOL(ch)) { - emptyLines++; - continue; - } - - // End of the scalar. - if (state.lineIndent < textIndent) { - - // Perform the chomping. - if (chomping === CHOMPING_KEEP) { - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { // i.e. only if the scalar is not empty. - state.result += '\n'; - } - } - - // Break this `while` cycle and go to the funciton's epilogue. - break; - } - - // Folded style: use fancy rules to handle line breaks. - if (folding) { - - // Lines starting with white space characters (more-indented lines) are not folded. - if (is_WHITE_SPACE(ch)) { - atMoreIndented = true; - // except for the first content line (cf. Example 8.1) - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - - // End of more-indented block. - } else if (atMoreIndented) { - atMoreIndented = false; - state.result += common.repeat('\n', emptyLines + 1); - - // Just one line break - perceive as the same line. - } else if (emptyLines === 0) { - if (didReadContent) { // i.e. only if we have already read some scalar content. - state.result += ' '; - } - - // Several line breaks - perceive as different lines. - } else { - state.result += common.repeat('\n', emptyLines); - } - - // Literal style: just add exact number of line breaks between content lines. - } else { - // Keep all line breaks except the header line break. - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } - - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state.position; - - while (!is_EOL(ch) && (ch !== 0)) { - ch = state.input.charCodeAt(++state.position); - } - - captureSegment(state, captureStart, state.position, false); - } - - return true; -} - -function readBlockSequence(state, nodeIndent) { - var _line, - _tag = state.tag, - _anchor = state.anchor, - _result = [], - following, - detected = false, - ch; - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - - if (ch !== 0x2D/* - */) { - break; - } - - following = state.input.charCodeAt(state.position + 1); - - if (!is_WS_OR_EOL(following)) { - break; - } - - detected = true; - state.position++; - - if (skipSeparationSpace(state, true, -1)) { - if (state.lineIndent <= nodeIndent) { - _result.push(null); - ch = state.input.charCodeAt(state.position); - continue; - } - } - - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); - _result.push(state.result); - skipSeparationSpace(state, true, -1); - - ch = state.input.charCodeAt(state.position); - - if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { - throwError(state, 'bad indentation of a sequence entry'); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'sequence'; - state.result = _result; - return true; - } - return false; -} - -function readBlockMapping(state, nodeIndent, flowIndent) { - var following, - allowCompact, - _line, - _pos, - _tag = state.tag, - _anchor = state.anchor, - _result = {}, - overridableKeys = {}, - keyTag = null, - keyNode = null, - valueNode = null, - atExplicitKey = false, - detected = false, - ch; - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - following = state.input.charCodeAt(state.position + 1); - _line = state.line; // Save the current line. - _pos = state.position; - - // - // Explicit notation case. There are two separate blocks: - // first for the key (denoted by "?") and second for the value (denoted by ":") - // - if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; if (ch === 0x3F/* ? */) { - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - keyTag = keyNode = valueNode = null; + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); } - - detected = true; - atExplicitKey = true; - allowCompact = true; - - } else if (atExplicitKey) { - // i.e. 0x3A/* : */ === character after the explicit key. - atExplicitKey = false; - allowCompact = true; - - } else { - throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); } - state.position += 1; - ch = following; + _line = state.line; // Save the current line. + _lineStart = state.lineStart; + _pos = state.position; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); - // - // Implicit notation case. Flow-style node as the key first, then ":", and the value. - // - } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + ch = state.input.charCodeAt(state.position); - if (state.line === _line) { - ch = state.input.charCodeAt(state.position); + if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; + } - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); + if (isMapping) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); + } else if (isPair) { + _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); + } else { + _result.push(keyNode); + } + + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x2C/* , */) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; + } + } + + throwError(state, 'unexpected end of the stream within a flow collection'); + } + + function readBlockScalar(state, nodeIndent) { + var captureStart, + folding, + chomping = CHOMPING_CLIP, + didReadContent = false, + detectedIndent = false, + textIndent = nodeIndent, + emptyLines = 0, + atMoreIndented = false, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x7C/* | */) { + folding = false; + } else if (ch === 0x3E/* > */) { + folding = true; + } else { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + + while (ch !== 0) { + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { + if (CHOMPING_CLIP === chomping) { + chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state, 'repeat of a chomping mode identifier'); } - if (ch === 0x3A/* : */) { - ch = state.input.charCodeAt(++state.position); + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state, 'repeat of an indentation width identifier'); + } - if (!is_WS_OR_EOL(ch)) { - throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } else { + break; + } + } + + if (is_WHITE_SPACE(ch)) { + do { ch = state.input.charCodeAt(++state.position); } + while (is_WHITE_SPACE(ch)); + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (!is_EOL(ch) && (ch !== 0)); + } + } + + while (ch !== 0) { + readLineBreak(state); + state.lineIndent = 0; + + ch = state.input.charCodeAt(state.position); + + while ((!detectedIndent || state.lineIndent < textIndent) && + (ch === 0x20/* Space */)) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } + + if (is_EOL(ch)) { + emptyLines++; + continue; + } + + // End of the scalar. + if (state.lineIndent < textIndent) { + + // Perform the chomping. + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (didReadContent) { // i.e. only if the scalar is not empty. + state.result += '\n'; + } + } + + // Break this `while` cycle and go to the funciton's epilogue. + break; + } + + // Folded style: use fancy rules to handle line breaks. + if (folding) { + + // Lines starting with white space characters (more-indented lines) are not folded. + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + // except for the first content line (cf. Example 8.1) + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + + // End of more-indented block. + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common.repeat('\n', emptyLines + 1); + + // Just one line break - perceive as the same line. + } else if (emptyLines === 0) { + if (didReadContent) { // i.e. only if we have already read some scalar content. + state.result += ' '; } + // Several line breaks - perceive as different lines. + } else { + state.result += common.repeat('\n', emptyLines); + } + + // Literal style: just add exact number of line breaks between content lines. + } else { + // Keep all line breaks except the header line break. + state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); + } + + didReadContent = true; + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; + + while (!is_EOL(ch) && (ch !== 0)) { + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, state.position, false); + } + + return true; + } + + function readBlockSequence(state, nodeIndent) { + var _line, + _tag = state.tag, + _anchor = state.anchor, + _result = [], + following, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + if (ch !== 0x2D/* - */) { + break; + } + + following = state.input.charCodeAt(state.position + 1); + + if (!is_WS_OR_EOL(following)) { + break; + } + + detected = true; + state.position++; + + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a sequence entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'sequence'; + state.result = _result; + return true; + } + return false; + } + + function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _keyLine, + _keyLineStart, + _keyPos, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + overridableKeys = Object.create(null), + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch; + + // there is a leading tab before this token, so it can't be a block sequence/mapping; + // it can still be flow sequence/mapping or a scalar + if (state.firstTabInLine !== -1) return false; + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (ch !== 0) { + if (!atExplicitKey && state.firstTabInLine !== -1) { + state.position = state.firstTabInLine; + throwError(state, 'tab characters must not be used in indentation'); + } + + following = state.input.charCodeAt(state.position + 1); + _line = state.line; // Save the current line. + + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { + + if (ch === 0x3F/* ? */) { if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); keyTag = keyNode = valueNode = null; } detected = true; + atExplicitKey = true; + allowCompact = true; + + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. atExplicitKey = false; - allowCompact = false; - keyTag = state.tag; - keyNode = state.result; + allowCompact = true; + + } else { + throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); + } + + state.position += 1; + ch = following; + + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else { + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; + + if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + // Neither implicit nor explicit notation. + // Reading is done. Go to the epilogue. + break; + } + + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x3A/* : */) { + ch = state.input.charCodeAt(++state.position); + + if (!is_WS_OR_EOL(ch)) { + throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } + + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + + } else if (detected) { + throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } } else if (detected) { - throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); } else { state.tag = _tag; state.anchor = _anchor; return true; // Keep the result of `composeNode`. } - - } else if (detected) { - throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); - - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. } - } else { - break; // Reading is done. Go to the epilogue. - } - - // - // Common reading code for both explicit and implicit notations. - // - if (state.line === _line || state.lineIndent > nodeIndent) { - if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { if (atExplicitKey) { - keyNode = state.result; - } else { - valueNode = state.result; + _keyLine = state.line; + _keyLineStart = state.lineStart; + _keyPos = state.position; } - } - if (!atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos); - keyTag = keyNode = valueNode = null; - } - - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - } - - if (state.lineIndent > nodeIndent && (ch !== 0)) { - throwError(state, 'bad indentation of a mapping entry'); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - - // - // Epilogue. - // - - // Special case: last mapping's node contains only the key in explicit notation. - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - } - - // Expose the resulting mapping. - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'mapping'; - state.result = _result; - } - - return detected; -} - -function readTagProperty(state) { - var _position, - isVerbatim = false, - isNamed = false, - tagHandle, - tagName, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x21/* ! */) return false; - - if (state.tag !== null) { - throwError(state, 'duplication of a tag property'); - } - - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x3C/* < */) { - isVerbatim = true; - ch = state.input.charCodeAt(++state.position); - - } else if (ch === 0x21/* ! */) { - isNamed = true; - tagHandle = '!!'; - ch = state.input.charCodeAt(++state.position); - - } else { - tagHandle = '!'; - } - - _position = state.position; - - if (isVerbatim) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && ch !== 0x3E/* > */); - - if (state.position < state.length) { - tagName = state.input.slice(_position, state.position); - ch = state.input.charCodeAt(++state.position); - } else { - throwError(state, 'unexpected end of the stream within a verbatim tag'); - } - } else { - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - - if (ch === 0x21/* ! */) { - if (!isNamed) { - tagHandle = state.input.slice(_position - 1, state.position + 1); - - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - throwError(state, 'named tag handle cannot contain such characters'); + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; } - - isNamed = true; - _position = state.position + 1; - } else { - throwError(state, 'tag suffix cannot contain exclamation marks'); } + + if (!atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); + keyTag = keyNode = valueNode = null; + } + + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); } + if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { + throwError(state, 'bad indentation of a mapping entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + // + // Epilogue. + // + + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); + } + + // Expose the resulting mapping. + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'mapping'; + state.result = _result; + } + + return detected; + } + + function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x21/* ! */) return false; + + if (state.tag !== null) { + throwError(state, 'duplication of a tag property'); + } + + ch = state.input.charCodeAt(++state.position); + + if (ch === 0x3C/* < */) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + + } else if (ch === 0x21/* ! */) { + isNamed = true; + tagHandle = '!!'; + ch = state.input.charCodeAt(++state.position); + + } else { + tagHandle = '!'; + } + + _position = state.position; + + if (isVerbatim) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && ch !== 0x3E/* > */); + + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, 'unexpected end of the stream within a verbatim tag'); + } + } else { + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + + if (ch === 0x21/* ! */) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, 'named tag handle cannot contain such characters'); + } + + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, 'tag suffix cannot contain exclamation marks'); + } + } + + ch = state.input.charCodeAt(++state.position); + } + + tagName = state.input.slice(_position, state.position); + + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, 'tag suffix cannot contain flow indicator characters'); + } + } + + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, 'tag name cannot contain such characters: ' + tagName); + } + + try { + tagName = decodeURIComponent(tagName); + } catch (err) { + throwError(state, 'tag name is malformed: ' + tagName); + } + + if (isVerbatim) { + state.tag = tagName; + + } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + + } else if (tagHandle === '!') { + state.tag = '!' + tagName; + + } else if (tagHandle === '!!') { + state.tag = 'tag:yaml.org,2002:' + tagName; + + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + + return true; + } + + function readAnchorProperty(state) { + var _position, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch !== 0x26/* & */) return false; + + if (state.anchor !== null) { + throwError(state, 'duplication of an anchor property'); + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { ch = state.input.charCodeAt(++state.position); } - tagName = state.input.slice(_position, state.position); - - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - throwError(state, 'tag suffix cannot contain flow indicator characters'); + if (state.position === _position) { + throwError(state, 'name of an anchor node must contain at least one character'); } + + state.anchor = state.input.slice(_position, state.position); + return true; } - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - throwError(state, 'tag name cannot contain such characters: ' + tagName); - } + function readAlias(state) { + var _position, alias, + ch; - if (isVerbatim) { - state.tag = tagName; + ch = state.input.charCodeAt(state.position); - } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { - state.tag = state.tagMap[tagHandle] + tagName; + if (ch !== 0x2A/* * */) return false; - } else if (tagHandle === '!') { - state.tag = '!' + tagName; - - } else if (tagHandle === '!!') { - state.tag = 'tag:yaml.org,2002:' + tagName; - - } else { - throwError(state, 'undeclared tag handle "' + tagHandle + '"'); - } - - return true; -} - -function readAnchorProperty(state) { - var _position, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x26/* & */) return false; - - if (state.anchor !== null) { - throwError(state, 'duplication of an anchor property'); - } - - ch = state.input.charCodeAt(++state.position); - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { ch = state.input.charCodeAt(++state.position); - } + _position = state.position; - if (state.position === _position) { - throwError(state, 'name of an anchor node must contain at least one character'); - } - - state.anchor = state.input.slice(_position, state.position); - return true; -} - -function readAlias(state) { - var _position, alias, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x2A/* * */) return false; - - ch = state.input.charCodeAt(++state.position); - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (state.position === _position) { - throwError(state, 'name of an alias node must contain at least one character'); - } - - alias = state.input.slice(_position, state.position); - - if (!_hasOwnProperty.call(state.anchorMap, alias)) { - throwError(state, 'unidentified alias "' + alias + '"'); - } - - state.result = state.anchorMap[alias]; - skipSeparationSpace(state, true, -1); - return true; -} - -function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, - allowBlockScalars, - allowBlockCollections, - indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } + while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); } + + if (state.position === _position) { + throwError(state, 'name of an alias node must contain at least one character'); + } + + alias = state.input.slice(_position, state.position); + + if (!_hasOwnProperty$1.call(state.anchorMap, alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; } - if (indentStatus === 1) { - while (readTagProperty(state) || readAnchorProperty(state)) { + function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { indentStatus = 1; @@ -2334,65 +2496,85 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact } else if (state.lineIndent < parentIndent) { indentStatus = -1; } - } else { - allowBlockCollections = false; } } - } - - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } - - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; - } - - blockIndent = state.position - state.lineStart; if (indentStatus === 1) { - if (allowBlockCollections && - (readBlockSequence(state, blockIndent) || - readBlockMapping(state, blockIndent, flowIndent)) || - readFlowCollection(state, flowIndent)) { - hasContent = true; - } else { - if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || - readSingleQuotedScalar(state, flowIndent) || - readDoubleQuotedScalar(state, flowIndent)) { - hasContent = true; + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; - } else if (readAlias(state)) { - hasContent = true; - - if (state.tag !== null || state.anchor !== null) { - throwError(state, 'alias node should not have any properties'); + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; } - - } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { - hasContent = true; - - if (state.tag === null) { - state.tag = '?'; - } - } - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; + } else { + allowBlockCollections = false; } } - } else if (indentStatus === 0) { - // Special case: block sequences are allowed to have same indentation level as the parent. - // http://www.yaml.org/spec/1.2/spec.html#id2799784 - hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); } - } - if (state.tag !== null && state.tag !== '!') { - if (state.tag === '?') { + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + + if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + + blockIndent = state.position - state.lineStart; + + if (indentStatus === 1) { + if (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent)) || + readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + + } else if (readAlias(state)) { + hasContent = true; + + if (state.tag !== null || state.anchor !== null) { + throwError(state, 'alias node should not have any properties'); + } + + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + + if (state.tag === null) { + state.tag = '?'; + } + } + + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (indentStatus === 0) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + + if (state.tag === null) { + if (state.anchor !== null) { + state.anchorMap[state.anchor] = state.result; + } + + } else if (state.tag === '?') { // Implicit resolving is not allowed for non-scalar types, and '?' // non-specific tag is only automatically assigned to plain scalars. // @@ -2415,1575 +2597,1278 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact break; } } - } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) { - type = state.typeMap[state.kind || 'fallback'][state.tag]; + } else if (state.tag !== '!') { + if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) { + type = state.typeMap[state.kind || 'fallback'][state.tag]; + } else { + // looking for multi type + type = null; + typeList = state.typeMap.multi[state.kind || 'fallback']; + + for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { + if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { + type = typeList[typeIndex]; + break; + } + } + } + + if (!type) { + throwError(state, 'unknown tag !<' + state.tag + '>'); + } if (state.result !== null && type.kind !== state.kind) { throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); } - if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched + if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); } else { - state.result = type.construct(state.result); + state.result = type.construct(state.result, state.tag); if (state.anchor !== null) { state.anchorMap[state.anchor] = state.result; } } - } else { - throwError(state, 'unknown tag !<' + state.tag + '>'); } + + if (state.listener !== null) { + state.listener('close', state); + } + return state.tag !== null || state.anchor !== null || hasContent; } - if (state.listener !== null) { - state.listener('close', state); - } - return state.tag !== null || state.anchor !== null || hasContent; -} + function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, + ch; -function readDocument(state) { - var documentStart = state.position, - _position, - directiveName, - directiveArgs, - hasDirectives = false, - ch; + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = Object.create(null); + state.anchorMap = Object.create(null); - state.version = null; - state.checkLineBreaks = state.legacy; - state.tagMap = {}; - state.anchorMap = {}; + while ((ch = state.input.charCodeAt(state.position)) !== 0) { + skipSeparationSpace(state, true, -1); - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); - ch = state.input.charCodeAt(state.position); - - if (state.lineIndent > 0 || ch !== 0x25/* % */) { - break; - } - - hasDirectives = true; - ch = state.input.charCodeAt(++state.position); - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - directiveName = state.input.slice(_position, state.position); - directiveArgs = []; - - if (directiveName.length < 1) { - throwError(state, 'directive name must not be less than one character in length'); - } - - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && !is_EOL(ch)); + if (state.lineIndent > 0 || ch !== 0x25/* % */) { break; } - if (is_EOL(ch)) break; - + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); _position = state.position; while (ch !== 0 && !is_WS_OR_EOL(ch)) { ch = state.input.charCodeAt(++state.position); } - directiveArgs.push(state.input.slice(_position, state.position)); + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; + + if (directiveName.length < 1) { + throwError(state, 'directive name must not be less than one character in length'); + } + + while (ch !== 0) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (ch === 0x23/* # */) { + do { ch = state.input.charCodeAt(++state.position); } + while (ch !== 0 && !is_EOL(ch)); + break; + } + + if (is_EOL(ch)) break; + + _position = state.position; + + while (ch !== 0 && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveArgs.push(state.input.slice(_position, state.position)); + } + + if (ch !== 0) readLineBreak(state); + + if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } } - if (ch !== 0) readLineBreak(state); - - if (_hasOwnProperty.call(directiveHandlers, directiveName)) { - directiveHandlers[directiveName](state, directiveName, directiveArgs); - } else { - throwWarning(state, 'unknown document directive "' + directiveName + '"'); - } - } - - skipSeparationSpace(state, true, -1); - - if (state.lineIndent === 0 && - state.input.charCodeAt(state.position) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { - state.position += 3; skipSeparationSpace(state, true, -1); - } else if (hasDirectives) { - throwError(state, 'directives end mark is expected'); - } - - composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state, true, -1); - - if (state.checkLineBreaks && - PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { - throwWarning(state, 'non-ASCII line breaks are interpreted as content'); - } - - state.documents.push(state.result); - - if (state.position === state.lineStart && testDocumentSeparator(state)) { - - if (state.input.charCodeAt(state.position) === 0x2E/* . */) { + if (state.lineIndent === 0 && + state.input.charCodeAt(state.position) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && + state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { state.position += 3; skipSeparationSpace(state, true, -1); - } - return; - } - if (state.position < (state.length - 1)) { - throwError(state, 'end of the stream or a document separator is expected'); - } else { - return; - } -} - - -function loadDocuments(input, options) { - input = String(input); - options = options || {}; - - if (input.length !== 0) { - - // Add tailing `\n` if not exists - if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && - input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { - input += '\n'; + } else if (hasDirectives) { + throwError(state, 'directives end mark is expected'); } - // Strip BOM - if (input.charCodeAt(0) === 0xFEFF) { - input = input.slice(1); + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + + if (state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, 'non-ASCII line breaks are interpreted as content'); } - } - var state = new State(input, options); + state.documents.push(state.result); - var nullpos = input.indexOf('\0'); + if (state.position === state.lineStart && testDocumentSeparator(state)) { - if (nullpos !== -1) { - state.position = nullpos; - throwError(state, 'null byte is not allowed in input'); - } - - // Use 0 as string terminator. That significantly simplifies bounds check. - state.input += '\0'; - - while (state.input.charCodeAt(state.position) === 0x20/* Space */) { - state.lineIndent += 1; - state.position += 1; - } - - while (state.position < (state.length - 1)) { - readDocument(state); - } - - return state.documents; -} - - -function loadAll(input, iterator, options) { - if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { - options = iterator; - iterator = null; - } - - var documents = loadDocuments(input, options); - - if (typeof iterator !== 'function') { - return documents; - } - - for (var index = 0, length = documents.length; index < length; index += 1) { - iterator(documents[index]); - } -} - - -function load(input, options) { - var documents = loadDocuments(input, options); - - if (documents.length === 0) { - /*eslint-disable no-undefined*/ - return undefined; - } else if (documents.length === 1) { - return documents[0]; - } - throw new YAMLException('expected a single document in the stream, but found more'); -} - - -function safeLoadAll(input, iterator, options) { - if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') { - options = iterator; - iterator = null; - } - - return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); -} - - -function safeLoad(input, options) { - return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); -} - - -module.exports.loadAll = loadAll; -module.exports.load = load; -module.exports.safeLoadAll = safeLoadAll; -module.exports.safeLoad = safeLoad; - -},{"./common":2,"./exception":4,"./mark":6,"./schema/default_full":9,"./schema/default_safe":10}],6:[function(require,module,exports){ -'use strict'; - - -var common = require('./common'); - - -function Mark(name, buffer, position, line, column) { - this.name = name; - this.buffer = buffer; - this.position = position; - this.line = line; - this.column = column; -} - - -Mark.prototype.getSnippet = function getSnippet(indent, maxLength) { - var head, start, tail, end, snippet; - - if (!this.buffer) return null; - - indent = indent || 4; - maxLength = maxLength || 75; - - head = ''; - start = this.position; - - while (start > 0 && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) { - start -= 1; - if (this.position - start > (maxLength / 2 - 1)) { - head = ' ... '; - start += 5; - break; - } - } - - tail = ''; - end = this.position; - - while (end < this.buffer.length && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(end)) === -1) { - end += 1; - if (end - this.position > (maxLength / 2 - 1)) { - tail = ' ... '; - end -= 5; - break; - } - } - - snippet = this.buffer.slice(start, end); - - return common.repeat(' ', indent) + head + snippet + tail + '\n' + - common.repeat(' ', indent + this.position - start + head.length) + '^'; -}; - - -Mark.prototype.toString = function toString(compact) { - var snippet, where = ''; - - if (this.name) { - where += 'in "' + this.name + '" '; - } - - where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1); - - if (!compact) { - snippet = this.getSnippet(); - - if (snippet) { - where += ':\n' + snippet; - } - } - - return where; -}; - - -module.exports = Mark; - -},{"./common":2}],7:[function(require,module,exports){ -'use strict'; - -/*eslint-disable max-len*/ - -var common = require('./common'); -var YAMLException = require('./exception'); -var Type = require('./type'); - - -function compileList(schema, name, result) { - var exclude = []; - - schema.include.forEach(function (includedSchema) { - result = compileList(includedSchema, name, result); - }); - - schema[name].forEach(function (currentType) { - result.forEach(function (previousType, previousIndex) { - if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) { - exclude.push(previousIndex); + if (state.input.charCodeAt(state.position) === 0x2E/* . */) { + state.position += 3; + skipSeparationSpace(state, true, -1); } - }); - - result.push(currentType); - }); - - return result.filter(function (type, index) { - return exclude.indexOf(index) === -1; - }); -} - - -function compileMap(/* lists... */) { - var result = { - scalar: {}, - sequence: {}, - mapping: {}, - fallback: {} - }, index, length; - - function collectType(type) { - result[type.kind][type.tag] = result['fallback'][type.tag] = type; - } - - for (index = 0, length = arguments.length; index < length; index += 1) { - arguments[index].forEach(collectType); - } - return result; -} - - -function Schema(definition) { - this.include = definition.include || []; - this.implicit = definition.implicit || []; - this.explicit = definition.explicit || []; - - this.implicit.forEach(function (type) { - if (type.loadKind && type.loadKind !== 'scalar') { - throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); - } - }); - - this.compiledImplicit = compileList(this, 'implicit', []); - this.compiledExplicit = compileList(this, 'explicit', []); - this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit); -} - - -Schema.DEFAULT = null; - - -Schema.create = function createSchema() { - var schemas, types; - - switch (arguments.length) { - case 1: - schemas = Schema.DEFAULT; - types = arguments[0]; - break; - - case 2: - schemas = arguments[0]; - types = arguments[1]; - break; - - default: - throw new YAMLException('Wrong number of arguments for Schema.create function'); - } - - schemas = common.toArray(schemas); - types = common.toArray(types); - - if (!schemas.every(function (schema) { return schema instanceof Schema; })) { - throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.'); - } - - if (!types.every(function (type) { return type instanceof Type; })) { - throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); - } - - return new Schema({ - include: schemas, - explicit: types - }); -}; - - -module.exports = Schema; - -},{"./common":2,"./exception":4,"./type":13}],8:[function(require,module,exports){ -// Standard YAML's Core schema. -// http://www.yaml.org/spec/1.2/spec.html#id2804923 -// -// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. -// So, Core schema has no distinctions from JSON schema is JS-YAML. - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - include: [ - require('./json') - ] -}); - -},{"../schema":7,"./json":12}],9:[function(require,module,exports){ -// JS-YAML's default schema for `load` function. -// It is not described in the YAML specification. -// -// This schema is based on JS-YAML's default safe schema and includes -// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function. -// -// Also this schema is used as default base schema at `Schema.create` function. - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = Schema.DEFAULT = new Schema({ - include: [ - require('./default_safe') - ], - explicit: [ - require('../type/js/undefined'), - require('../type/js/regexp'), - require('../type/js/function') - ] -}); - -},{"../schema":7,"../type/js/function":18,"../type/js/regexp":19,"../type/js/undefined":20,"./default_safe":10}],10:[function(require,module,exports){ -// JS-YAML's default schema for `safeLoad` function. -// It is not described in the YAML specification. -// -// This schema is based on standard YAML's Core schema and includes most of -// extra types described at YAML tag repository. (http://yaml.org/type/) - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - include: [ - require('./core') - ], - implicit: [ - require('../type/timestamp'), - require('../type/merge') - ], - explicit: [ - require('../type/binary'), - require('../type/omap'), - require('../type/pairs'), - require('../type/set') - ] -}); - -},{"../schema":7,"../type/binary":14,"../type/merge":22,"../type/omap":24,"../type/pairs":25,"../type/set":27,"../type/timestamp":29,"./core":8}],11:[function(require,module,exports){ -// Standard YAML's Failsafe schema. -// http://www.yaml.org/spec/1.2/spec.html#id2802346 - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - explicit: [ - require('../type/str'), - require('../type/seq'), - require('../type/map') - ] -}); - -},{"../schema":7,"../type/map":21,"../type/seq":26,"../type/str":28}],12:[function(require,module,exports){ -// Standard YAML's JSON schema. -// http://www.yaml.org/spec/1.2/spec.html#id2803231 -// -// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. -// So, this schema is not such strict as defined in the YAML specification. -// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc. - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - include: [ - require('./failsafe') - ], - implicit: [ - require('../type/null'), - require('../type/bool'), - require('../type/int'), - require('../type/float') - ] -}); - -},{"../schema":7,"../type/bool":15,"../type/float":16,"../type/int":17,"../type/null":23,"./failsafe":11}],13:[function(require,module,exports){ -'use strict'; - -var YAMLException = require('./exception'); - -var TYPE_CONSTRUCTOR_OPTIONS = [ - 'kind', - 'resolve', - 'construct', - 'instanceOf', - 'predicate', - 'represent', - 'defaultStyle', - 'styleAliases' -]; - -var YAML_NODE_KINDS = [ - 'scalar', - 'sequence', - 'mapping' -]; - -function compileStyleAliases(map) { - var result = {}; - - if (map !== null) { - Object.keys(map).forEach(function (style) { - map[style].forEach(function (alias) { - result[String(alias)] = style; - }); - }); - } - - return result; -} - -function Type(tag, options) { - options = options || {}; - - Object.keys(options).forEach(function (name) { - if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { - throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); - } - }); - - // TODO: Add tag format check. - this.tag = tag; - this.kind = options['kind'] || null; - this.resolve = options['resolve'] || function () { return true; }; - this.construct = options['construct'] || function (data) { return data; }; - this.instanceOf = options['instanceOf'] || null; - this.predicate = options['predicate'] || null; - this.represent = options['represent'] || null; - this.defaultStyle = options['defaultStyle'] || null; - this.styleAliases = compileStyleAliases(options['styleAliases'] || null); - - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { - throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); - } -} - -module.exports = Type; - -},{"./exception":4}],14:[function(require,module,exports){ -'use strict'; - -/*eslint-disable no-bitwise*/ - -var NodeBuffer; - -try { - // A trick for browserified version, to not include `Buffer` shim - var _require = require; - NodeBuffer = _require('buffer').Buffer; -} catch (__) {} - -var Type = require('../type'); - - -// [ 64, 65, 66 ] -> [ padding, CR, LF ] -var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; - - -function resolveYamlBinary(data) { - if (data === null) return false; - - var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; - - // Convert one by one. - for (idx = 0; idx < max; idx++) { - code = map.indexOf(data.charAt(idx)); - - // Skip CR/LF - if (code > 64) continue; - - // Fail on illegal characters - if (code < 0) return false; - - bitlen += 6; - } - - // If there are any bits left, source was corrupted - return (bitlen % 8) === 0; -} - -function constructYamlBinary(data) { - var idx, tailbits, - input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan - max = input.length, - map = BASE64_MAP, - bits = 0, - result = []; - - // Collect by 6*4 bits (3 bytes) - - for (idx = 0; idx < max; idx++) { - if ((idx % 4 === 0) && idx) { - result.push((bits >> 16) & 0xFF); - result.push((bits >> 8) & 0xFF); - result.push(bits & 0xFF); + return; } - bits = (bits << 6) | map.indexOf(input.charAt(idx)); + if (state.position < (state.length - 1)) { + throwError(state, 'end of the stream or a document separator is expected'); + } else { + return; + } } - // Dump tail - tailbits = (max % 4) * 6; + function loadDocuments(input, options) { + input = String(input); + options = options || {}; - if (tailbits === 0) { - result.push((bits >> 16) & 0xFF); - result.push((bits >> 8) & 0xFF); - result.push(bits & 0xFF); - } else if (tailbits === 18) { - result.push((bits >> 10) & 0xFF); - result.push((bits >> 2) & 0xFF); - } else if (tailbits === 12) { - result.push((bits >> 4) & 0xFF); - } + if (input.length !== 0) { - // Wrap into Buffer for NodeJS and leave Array for browser - if (NodeBuffer) { - // Support node 6.+ Buffer API when available - return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result); - } + // Add tailing `\n` if not exists + if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && + input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { + input += '\n'; + } - return result; -} - -function representYamlBinary(object /*, style*/) { - var result = '', bits = 0, idx, tail, - max = object.length, - map = BASE64_MAP; - - // Convert every three bytes to 4 ASCII characters. - - for (idx = 0; idx < max; idx++) { - if ((idx % 3 === 0) && idx) { - result += map[(bits >> 18) & 0x3F]; - result += map[(bits >> 12) & 0x3F]; - result += map[(bits >> 6) & 0x3F]; - result += map[bits & 0x3F]; + // Strip BOM + if (input.charCodeAt(0) === 0xFEFF) { + input = input.slice(1); + } } - bits = (bits << 8) + object[idx]; + var state = new State$1(input, options); + + var nullpos = input.indexOf('\0'); + + if (nullpos !== -1) { + state.position = nullpos; + throwError(state, 'null byte is not allowed in input'); + } + + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0'; + + while (state.input.charCodeAt(state.position) === 0x20/* Space */) { + state.lineIndent += 1; + state.position += 1; + } + + while (state.position < (state.length - 1)) { + readDocument(state); + } + + return state.documents; } - // Dump tail - tail = max % 3; + function loadAll$1(input, iterator, options) { + if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { + options = iterator; + iterator = null; + } - if (tail === 0) { - result += map[(bits >> 18) & 0x3F]; - result += map[(bits >> 12) & 0x3F]; - result += map[(bits >> 6) & 0x3F]; - result += map[bits & 0x3F]; - } else if (tail === 2) { - result += map[(bits >> 10) & 0x3F]; - result += map[(bits >> 4) & 0x3F]; - result += map[(bits << 2) & 0x3F]; - result += map[64]; - } else if (tail === 1) { - result += map[(bits >> 2) & 0x3F]; - result += map[(bits << 4) & 0x3F]; - result += map[64]; - result += map[64]; + var documents = loadDocuments(input, options); + + if (typeof iterator !== 'function') { + return documents; + } + + for (var index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } } - return result; -} -function isBinary(object) { - return NodeBuffer && NodeBuffer.isBuffer(object); -} + function load$1(input, options) { + var documents = loadDocuments(input, options); -module.exports = new Type('tag:yaml.org,2002:binary', { - kind: 'scalar', - resolve: resolveYamlBinary, - construct: constructYamlBinary, - predicate: isBinary, - represent: representYamlBinary -}); + if (documents.length === 0) { + /*eslint-disable no-undefined*/ + return undefined; + } else if (documents.length === 1) { + return documents[0]; + } + throw new exception('expected a single document in the stream, but found more'); + } -},{"../type":13}],15:[function(require,module,exports){ -'use strict'; -var Type = require('../type'); + var loadAll_1 = loadAll$1; + var load_1 = load$1; -function resolveYamlBoolean(data) { - if (data === null) return false; + var loader = { + loadAll: loadAll_1, + load: load_1 + }; - var max = data.length; + /*eslint-disable no-use-before-define*/ - return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || - (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); -} -function constructYamlBoolean(data) { - return data === 'true' || - data === 'True' || - data === 'TRUE'; -} -function isBoolean(object) { - return Object.prototype.toString.call(object) === '[object Boolean]'; -} -module.exports = new Type('tag:yaml.org,2002:bool', { - kind: 'scalar', - resolve: resolveYamlBoolean, - construct: constructYamlBoolean, - predicate: isBoolean, - represent: { - lowercase: function (object) { return object ? 'true' : 'false'; }, - uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, - camelcase: function (object) { return object ? 'True' : 'False'; } - }, - defaultStyle: 'lowercase' -}); -},{"../type":13}],16:[function(require,module,exports){ -'use strict'; + var _toString = Object.prototype.toString; + var _hasOwnProperty = Object.prototype.hasOwnProperty; -var common = require('../common'); -var Type = require('../type'); + var CHAR_BOM = 0xFEFF; + var CHAR_TAB = 0x09; /* Tab */ + var CHAR_LINE_FEED = 0x0A; /* LF */ + var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ + var CHAR_SPACE = 0x20; /* Space */ + var CHAR_EXCLAMATION = 0x21; /* ! */ + var CHAR_DOUBLE_QUOTE = 0x22; /* " */ + var CHAR_SHARP = 0x23; /* # */ + var CHAR_PERCENT = 0x25; /* % */ + var CHAR_AMPERSAND = 0x26; /* & */ + var CHAR_SINGLE_QUOTE = 0x27; /* ' */ + var CHAR_ASTERISK = 0x2A; /* * */ + var CHAR_COMMA = 0x2C; /* , */ + var CHAR_MINUS = 0x2D; /* - */ + var CHAR_COLON = 0x3A; /* : */ + var CHAR_EQUALS = 0x3D; /* = */ + var CHAR_GREATER_THAN = 0x3E; /* > */ + var CHAR_QUESTION = 0x3F; /* ? */ + var CHAR_COMMERCIAL_AT = 0x40; /* @ */ + var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ + var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ + var CHAR_GRAVE_ACCENT = 0x60; /* ` */ + var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ + var CHAR_VERTICAL_LINE = 0x7C; /* | */ + var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ -var YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers - '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + - // .2e4, .2 - // special case, seems not from spec - '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + - // 20:59 - '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*' + - // .inf - '|[-+]?\\.(?:inf|Inf|INF)' + - // .nan - '|\\.(?:nan|NaN|NAN))$'); + var ESCAPE_SEQUENCES = {}; -function resolveYamlFloat(data) { - if (data === null) return false; + ESCAPE_SEQUENCES[0x00] = '\\0'; + ESCAPE_SEQUENCES[0x07] = '\\a'; + ESCAPE_SEQUENCES[0x08] = '\\b'; + ESCAPE_SEQUENCES[0x09] = '\\t'; + ESCAPE_SEQUENCES[0x0A] = '\\n'; + ESCAPE_SEQUENCES[0x0B] = '\\v'; + ESCAPE_SEQUENCES[0x0C] = '\\f'; + ESCAPE_SEQUENCES[0x0D] = '\\r'; + ESCAPE_SEQUENCES[0x1B] = '\\e'; + ESCAPE_SEQUENCES[0x22] = '\\"'; + ESCAPE_SEQUENCES[0x5C] = '\\\\'; + ESCAPE_SEQUENCES[0x85] = '\\N'; + ESCAPE_SEQUENCES[0xA0] = '\\_'; + ESCAPE_SEQUENCES[0x2028] = '\\L'; + ESCAPE_SEQUENCES[0x2029] = '\\P'; + + var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', + 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' + ]; + + var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; + + function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type; + + if (map === null) return {}; + + result = {}; + keys = Object.keys(map); + + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map[tag]); + + if (tag.slice(0, 2) === '!!') { + tag = 'tag:yaml.org,2002:' + tag.slice(2); + } + type = schema.compiledTypeMap['fallback'][tag]; + + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style]; + } + + result[tag] = style; + } + + return result; + } + + function encodeHex(character) { + var string, handle, length; + + string = character.toString(16).toUpperCase(); + + if (character <= 0xFF) { + handle = 'x'; + length = 2; + } else if (character <= 0xFFFF) { + handle = 'u'; + length = 4; + } else if (character <= 0xFFFFFFFF) { + handle = 'U'; + length = 8; + } else { + throw new exception('code point within a string may not be greater than 0xFFFFFFFF'); + } + + return '\\' + handle + common.repeat('0', length - string.length) + string; + } + + + var QUOTING_TYPE_SINGLE = 1, + QUOTING_TYPE_DOUBLE = 2; + + function State(options) { + this.schema = options['schema'] || _default; + this.indent = Math.max(1, (options['indent'] || 2)); + this.noArrayIndent = options['noArrayIndent'] || false; + this.skipInvalid = options['skipInvalid'] || false; + this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.sortKeys = options['sortKeys'] || false; + this.lineWidth = options['lineWidth'] || 80; + this.noRefs = options['noRefs'] || false; + this.noCompatMode = options['noCompatMode'] || false; + this.condenseFlow = options['condenseFlow'] || false; + this.quotingType = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; + this.forceQuotes = options['forceQuotes'] || false; + this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null; + + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + + this.tag = null; + this.result = ''; + + this.duplicates = []; + this.usedDuplicates = null; + } + + // Indents every line in a string. Empty lines (\n only) are not indented. + function indentString(string, spaces) { + var ind = common.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length; + + while (position < length) { + next = string.indexOf('\n', position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } + + if (line.length && line !== '\n') result += ind; + + result += line; + } + + return result; + } + + function generateNextLine(state, level) { + return '\n' + common.repeat(' ', state.indent * level); + } + + function testImplicitResolving(state, str) { + var index, length, type; + + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type = state.implicitTypes[index]; + + if (type.resolve(str)) { + return true; + } + } - if (!YAML_FLOAT_PATTERN.test(data) || - // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data[data.length - 1] === '_') { return false; } - return true; -} - -function constructYamlFloat(data) { - var value, sign, base, digits; - - value = data.replace(/_/g, '').toLowerCase(); - sign = value[0] === '-' ? -1 : 1; - digits = []; - - if ('+-'.indexOf(value[0]) >= 0) { - value = value.slice(1); + // [33] s-white ::= s-space | s-tab + function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; } - if (value === '.inf') { - return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - - } else if (value === '.nan') { - return NaN; - - } else if (value.indexOf(':') >= 0) { - value.split(':').forEach(function (v) { - digits.unshift(parseFloat(v, 10)); - }); - - value = 0.0; - base = 1; - - digits.forEach(function (d) { - value += d * base; - base *= 60; - }); - - return sign * value; - - } - return sign * parseFloat(value, 10); -} - - -var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; - -function representYamlFloat(object, style) { - var res; - - if (isNaN(object)) { - switch (style) { - case 'lowercase': return '.nan'; - case 'uppercase': return '.NAN'; - case 'camelcase': return '.NaN'; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case 'lowercase': return '.inf'; - case 'uppercase': return '.INF'; - case 'camelcase': return '.Inf'; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case 'lowercase': return '-.inf'; - case 'uppercase': return '-.INF'; - case 'camelcase': return '-.Inf'; - } - } else if (common.isNegativeZero(object)) { - return '-0.0'; + // Returns true if the character can be printed without escaping. + // From YAML 1.2: "any allowed characters known to be non-printable + // should also be escaped. [However,] This isn’t mandatory" + // Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. + function isPrintable(c) { + return (0x00020 <= c && c <= 0x00007E) + || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) + || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM) + || (0x10000 <= c && c <= 0x10FFFF); } - res = object.toString(10); - - // JS stringifier can build scientific format without dots: 5e-100, - // while YAML requres dot: 5.e-100. Fix it with simple hack - - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; -} - -function isFloat(object) { - return (Object.prototype.toString.call(object) === '[object Number]') && - (object % 1 !== 0 || common.isNegativeZero(object)); -} - -module.exports = new Type('tag:yaml.org,2002:float', { - kind: 'scalar', - resolve: resolveYamlFloat, - construct: constructYamlFloat, - predicate: isFloat, - represent: representYamlFloat, - defaultStyle: 'lowercase' -}); - -},{"../common":2,"../type":13}],17:[function(require,module,exports){ -'use strict'; - -var common = require('../common'); -var Type = require('../type'); - -function isHexCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || - ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || - ((0x61/* a */ <= c) && (c <= 0x66/* f */)); -} - -function isOctCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); -} - -function isDecCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); -} - -function resolveYamlInteger(data) { - if (data === null) return false; - - var max = data.length, - index = 0, - hasDigits = false, - ch; - - if (!max) return false; - - ch = data[index]; - - // sign - if (ch === '-' || ch === '+') { - ch = data[++index]; + // [34] ns-char ::= nb-char - s-white + // [27] nb-char ::= c-printable - b-char - c-byte-order-mark + // [26] b-char ::= b-line-feed | b-carriage-return + // Including s-white (for some reason, examples doesn't match specs in this aspect) + // ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark + function isNsCharOrWhitespace(c) { + return isPrintable(c) + && c !== CHAR_BOM + // - b-char + && c !== CHAR_CARRIAGE_RETURN + && c !== CHAR_LINE_FEED; } - if (ch === '0') { - // 0 - if (index + 1 === max) return true; - ch = data[++index]; + // [127] ns-plain-safe(c) ::= c = flow-out β‡’ ns-plain-safe-out + // c = flow-in β‡’ ns-plain-safe-in + // c = block-key β‡’ ns-plain-safe-out + // c = flow-key β‡’ ns-plain-safe-in + // [128] ns-plain-safe-out ::= ns-char + // [129] ns-plain-safe-in ::= ns-char - c-flow-indicator + // [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - β€œ:” - β€œ#” ) + // | ( /* An ns-char preceding */ β€œ#” ) + // | ( β€œ:” /* Followed by an ns-plain-safe(c) */ ) + function isPlainSafe(c, prev, inblock) { + var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); + var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); + return ( + // ns-plain-safe + inblock ? // c = flow-in + cIsNsCharOrWhitespace + : cIsNsCharOrWhitespace + // - c-flow-indicator + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + ) + // ns-plain-char + && c !== CHAR_SHARP // false on '#' + && !(prev === CHAR_COLON && !cIsNsChar) // false on ': ' + || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#' + || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]' + } - // base 2, base 8, base 16 + // Simplified test for values allowed as the first character in plain style. + function isPlainSafeFirst(c) { + // Uses a subset of ns-char - c-indicator + // where ns-char = nb-char - s-white. + // No support of ( ( β€œ?” | β€œ:” | β€œ-” ) /* Followed by an ns-plain-safe(c)) */ ) part + return isPrintable(c) && c !== CHAR_BOM + && !isWhitespace(c) // - s-white + // - (c-indicator ::= + // β€œ-” | β€œ?” | β€œ:” | β€œ,” | β€œ[” | β€œ]” | β€œ{” | β€œ}” + && c !== CHAR_MINUS + && c !== CHAR_QUESTION + && c !== CHAR_COLON + && c !== CHAR_COMMA + && c !== CHAR_LEFT_SQUARE_BRACKET + && c !== CHAR_RIGHT_SQUARE_BRACKET + && c !== CHAR_LEFT_CURLY_BRACKET + && c !== CHAR_RIGHT_CURLY_BRACKET + // | β€œ#” | β€œ&” | β€œ*” | β€œ!” | β€œ|” | β€œ=” | β€œ>” | β€œ'” | β€œ"” + && c !== CHAR_SHARP + && c !== CHAR_AMPERSAND + && c !== CHAR_ASTERISK + && c !== CHAR_EXCLAMATION + && c !== CHAR_VERTICAL_LINE + && c !== CHAR_EQUALS + && c !== CHAR_GREATER_THAN + && c !== CHAR_SINGLE_QUOTE + && c !== CHAR_DOUBLE_QUOTE + // | β€œ%” | β€œ@” | β€œ`”) + && c !== CHAR_PERCENT + && c !== CHAR_COMMERCIAL_AT + && c !== CHAR_GRAVE_ACCENT; + } - if (ch === 'b') { - // base 2 - index++; + // Simplified test for values allowed as the last character in plain style. + function isPlainSafeLast(c) { + // just not whitespace or colon, it will be checked to be plain character later + return !isWhitespace(c) && c !== CHAR_COLON; + } - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (ch !== '0' && ch !== '1') return false; - hasDigits = true; + // Same as 'string'.codePointAt(pos), but works in older browsers. + function codePointAt(string, pos) { + var first = string.charCodeAt(pos), second; + if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) { + second = string.charCodeAt(pos + 1); + if (second >= 0xDC00 && second <= 0xDFFF) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; } - return hasDigits && ch !== '_'; } + return first; + } + // Determines whether block indentation indicator is required. + function needIndentIndicator(string) { + var leadingSpaceRe = /^\n* /; + return leadingSpaceRe.test(string); + } - if (ch === 'x') { - // base 16 - index++; + var STYLE_PLAIN = 1, + STYLE_SINGLE = 2, + STYLE_LITERAL = 3, + STYLE_FOLDED = 4, + STYLE_DOUBLE = 5; - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isHexCode(data.charCodeAt(index))) return false; - hasDigits = true; + // Determines which scalar styles are possible and returns the preferred style. + // lineWidth = -1 => no limit. + // Pre-conditions: str.length > 0. + // Post-conditions: + // STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. + // STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). + // STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). + function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, + testAmbiguousType, quotingType, forceQuotes, inblock) { + + var i; + var char = 0; + var prevChar = null; + var hasLineBreak = false; + var hasFoldableLine = false; // only checked if shouldTrackWidth + var shouldTrackWidth = lineWidth !== -1; + var previousLineBreak = -1; // count the first line correctly + var plain = isPlainSafeFirst(codePointAt(string, 0)) + && isPlainSafeLast(codePointAt(string, string.length - 1)); + + if (singleLineOnly || forceQuotes) { + // Case: no block styles. + // Check for disallowed characters to rule out plain and single. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; } - return hasDigits && ch !== '_'; + } else { + // Case: block styles permitted. + for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + if (char === CHAR_LINE_FEED) { + hasLineBreak = true; + // Check if any line can be folded. + if (shouldTrackWidth) { + hasFoldableLine = hasFoldableLine || + // Foldable line = too long, and not more-indented. + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' '); + previousLineBreak = i; + } + } else if (!isPrintable(char)) { + return STYLE_DOUBLE; + } + plain = plain && isPlainSafe(char, prevChar, inblock); + prevChar = char; + } + // in case the end is missing a \n + hasFoldableLine = hasFoldableLine || (shouldTrackWidth && + (i - previousLineBreak - 1 > lineWidth && + string[previousLineBreak + 1] !== ' ')); + } + // Although every style can represent \n without escaping, prefer block styles + // for multiline, since they're more readable and they don't add empty lines. + // Also prefer folding a super-long line. + if (!hasLineBreak && !hasFoldableLine) { + // Strings interpretable as another type have to be quoted; + // e.g. the string 'true' vs. the boolean true. + if (plain && !forceQuotes && !testAmbiguousType(string)) { + return STYLE_PLAIN; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + // Edge case: block indentation indicator can only have one digit. + if (indentPerLevel > 9 && needIndentIndicator(string)) { + return STYLE_DOUBLE; + } + // At this point we know block styles are valid. + // Prefer literal style unless we want to fold. + if (!forceQuotes) { + return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; + } + return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; + } + + // Note: line breaking/folding is implemented for only the folded style. + // NB. We drop the last trailing newline (if any) of a returned block scalar + // since the dumper adds its own newline. This always works: + // β€’ No ending newline => unaffected; already using strip "-" chomping. + // β€’ Ending newline => removed then restored. + // Importantly, this keeps the "+" chomp indicator from gaining an extra line. + function writeScalar(state, string, level, iskey, inblock) { + state.dump = (function () { + if (string.length === 0) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; + } + if (!state.noCompatMode) { + if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { + return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'"); + } + } + + var indent = state.indent * Math.max(1, level); // no 0-indent scalars + // As indentation gets deeper, let the width decrease monotonically + // to the lower bound min(state.lineWidth, 40). + // Note that this implies + // state.lineWidth ≀ 40 + state.indent: width is fixed at the lower bound. + // state.lineWidth > 40 + state.indent: width decreases until the lower bound. + // This behaves better than a constant minimum width which disallows narrower options, + // or an indent threshold which causes the width to suddenly increase. + var lineWidth = state.lineWidth === -1 + ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); + + // Without knowing if keys are implicit/explicit, assume implicit for safety. + var singleLineOnly = iskey + // No block styles in flow mode. + || (state.flowLevel > -1 && level >= state.flowLevel); + function testAmbiguity(string) { + return testImplicitResolving(state, string); + } + + switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, + testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) { + + case STYLE_PLAIN: + return string; + case STYLE_SINGLE: + return "'" + string.replace(/'/g, "''") + "'"; + case STYLE_LITERAL: + return '|' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(string, indent)); + case STYLE_FOLDED: + return '>' + blockHeader(string, state.indent) + + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); + case STYLE_DOUBLE: + return '"' + escapeString(string) + '"'; + default: + throw new exception('impossible error: invalid scalar style'); + } + }()); + } + + // Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. + function blockHeader(string, indentPerLevel) { + var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; + + // note the special case: the string '\n' counts as a "trailing" empty line. + var clip = string[string.length - 1] === '\n'; + var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); + var chomp = keep ? '+' : (clip ? '' : '-'); + + return indentIndicator + chomp + '\n'; + } + + // (See the note for writeScalar.) + function dropEndingNewline(string) { + return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; + } + + // Note: a long line without a suitable break point will exceed the width limit. + // Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. + function foldString(string, width) { + // In folded style, $k$ consecutive newlines output as $k+1$ newlinesβ€” + // unless they're before or after a more-indented line, or at the very + // beginning or end, in which case $k$ maps to $k$. + // Therefore, parse each chunk as newline(s) followed by a content line. + var lineRe = /(\n+)([^\n]*)/g; + + // first line (possibly an empty line) + var result = (function () { + var nextLF = string.indexOf('\n'); + nextLF = nextLF !== -1 ? nextLF : string.length; + lineRe.lastIndex = nextLF; + return foldLine(string.slice(0, nextLF), width); + }()); + // If we haven't reached the first content line yet, don't add an extra \n. + var prevMoreIndented = string[0] === '\n' || string[0] === ' '; + var moreIndented; + + // rest of the lines + var match; + while ((match = lineRe.exec(string))) { + var prefix = match[1], line = match[2]; + moreIndented = (line[0] === ' '); + result += prefix + + (!prevMoreIndented && !moreIndented && line !== '' + ? '\n' : '') + + foldLine(line, width); + prevMoreIndented = moreIndented; } - // base 8 - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isOctCode(data.charCodeAt(index))) return false; - hasDigits = true; + return result; + } + + // Greedy line breaking. + // Picks the longest line under the limit each time, + // otherwise settles for the shortest line over the limit. + // NB. More-indented lines *cannot* be folded, as that would add an extra \n. + function foldLine(line, width) { + if (line === '' || line[0] === ' ') return line; + + // Since a more-indented line adds a \n, breaks can't be followed by a space. + var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. + var match; + // start is an inclusive index. end, curr, and next are exclusive. + var start = 0, end, curr = 0, next = 0; + var result = ''; + + // Invariants: 0 <= start <= length-1. + // 0 <= curr <= next <= max(0, length-2). curr - start <= width. + // Inside the loop: + // A match implies length >= 2, so curr and next are <= length-2. + while ((match = breakRe.exec(line))) { + next = match.index; + // maintain invariant: curr - start <= width + if (next - start > width) { + end = (curr > start) ? curr : next; // derive end <= length-2 + result += '\n' + line.slice(start, end); + // skip the space that was output as \n + start = end + 1; // derive start <= length-1 + } + curr = next; } - return hasDigits && ch !== '_'; - } - // base 10 (except 0) or base 60 - - // value should not start with `_`; - if (ch === '_') return false; - - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (ch === ':') break; - if (!isDecCode(data.charCodeAt(index))) { - return false; + // By the invariants, start <= length-1, so there is something left over. + // It is either the whole string or a part starting from non-whitespace. + result += '\n'; + // Insert a break if the remainder is too long and there is a break available. + if (line.length - start > width && curr > start) { + result += line.slice(start, curr) + '\n' + line.slice(curr + 1); + } else { + result += line.slice(start); } - hasDigits = true; + + return result.slice(1); // drop extra \n joiner } - // Should have digits and should not end with `_` - if (!hasDigits || ch === '_') return false; + // Escapes a double-quoted string. + function escapeString(string) { + var result = ''; + var char = 0; + var escapeSeq; - // if !base60 - done; - if (ch !== ':') return true; + for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { + char = codePointAt(string, i); + escapeSeq = ESCAPE_SEQUENCES[char]; - // base60 almost not used, no needs to optimize - return /^(:[0-5]?[0-9])+$/.test(data.slice(index)); -} + if (!escapeSeq && isPrintable(char)) { + result += string[i]; + if (char >= 0x10000) result += string[i + 1]; + } else { + result += escapeSeq || encodeHex(char); + } + } -function constructYamlInteger(data) { - var value = data, sign = 1, ch, base, digits = []; - - if (value.indexOf('_') !== -1) { - value = value.replace(/_/g, ''); + return result; } - ch = value[0]; + function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length, + value; - if (ch === '-' || ch === '+') { - if (ch === '-') sign = -1; - value = value.slice(1); - ch = value[0]; + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level, value, false, false) || + (typeof value === 'undefined' && + writeNode(state, level, null, false, false))) { + + if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : ''); + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = '[' + _result + ']'; } - if (value === '0') return 0; + function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length, + value; - if (ch === '0') { - if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); - if (value[1] === 'x') return sign * parseInt(value, 16); - return sign * parseInt(value, 8); + for (index = 0, length = object.length; index < length; index += 1) { + value = object[index]; + + if (state.replacer) { + value = state.replacer.call(object, String(index), value); + } + + // Write only valid elements, put null instead of invalid elements. + if (writeNode(state, level + 1, value, true, true, false, true) || + (typeof value === 'undefined' && + writeNode(state, level + 1, null, true, true, false, true))) { + + if (!compact || _result !== '') { + _result += generateNextLine(state, level); + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + _result += '-'; + } else { + _result += '- '; + } + + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = _result || '[]'; // Empty sequence if no valid values. } - if (value.indexOf(':') !== -1) { - value.split(':').forEach(function (v) { - digits.unshift(parseInt(v, 10)); - }); + function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer; - value = 0; - base = 1; + for (index = 0, length = objectKeyList.length; index < length; index += 1) { - digits.forEach(function (d) { - value += (d * base); - base *= 60; - }); + pairBuffer = ''; + if (_result !== '') pairBuffer += ', '; - return sign * value; + if (state.condenseFlow) pairBuffer += '"'; + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + + if (!writeNode(state, level, objectKey, false, false)) { + continue; // Skip this pair because of invalid key; + } + + if (state.dump.length > 1024) pairBuffer += '? '; + + pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); + + if (!writeNode(state, level, objectValue, false, false)) { + continue; // Skip this pair because of invalid value. + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = '{' + _result + '}'; } - return sign * parseInt(value, 10); -} + function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer; -function isInteger(object) { - return (Object.prototype.toString.call(object)) === '[object Number]' && - (object % 1 === 0 && !common.isNegativeZero(object)); -} + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort(); + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + // Something is wrong + throw new exception('sortKeys must be a boolean or a function'); + } -module.exports = new Type('tag:yaml.org,2002:int', { - kind: 'scalar', - resolve: resolveYamlInteger, - construct: constructYamlInteger, - predicate: isInteger, - represent: { - binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, - octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); }, - decimal: function (obj) { return obj.toString(10); }, - /* eslint-disable max-len */ - hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } - }, - defaultStyle: 'decimal', - styleAliases: { - binary: [ 2, 'bin' ], - octal: [ 8, 'oct' ], - decimal: [ 10, 'dec' ], - hexadecimal: [ 16, 'hex' ] + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; + + if (!compact || _result !== '') { + pairBuffer += generateNextLine(state, level); + } + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (state.replacer) { + objectValue = state.replacer.call(object, objectKey, objectValue); + } + + if (!writeNode(state, level + 1, objectKey, true, true, true)) { + continue; // Skip this pair because of invalid key. + } + + explicitPair = (state.tag !== null && state.tag !== '?') || + (state.dump && state.dump.length > 1024); + + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?'; + } else { + pairBuffer += '? '; + } + } + + pairBuffer += state.dump; + + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } + + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; // Skip this pair because of invalid value. + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':'; + } else { + pairBuffer += ': '; + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = _result || '{}'; // Empty mapping if no valid pairs. } -}); -},{"../common":2,"../type":13}],18:[function(require,module,exports){ -'use strict'; + function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style; -var esprima; + typeList = explicit ? state.explicitTypes : state.implicitTypes; -// Browserified version does not have esprima -// -// 1. For node.js just require module as deps -// 2. For browser try to require mudule via external AMD system. -// If not found - try to fallback to window.esprima. If not -// found too - then fail to parse. -// -try { - // workaround to exclude package from browserify list. - var _require = require; - esprima = _require('esprima'); -} catch (_) { - /* eslint-disable no-redeclare */ - /* global window */ - if (typeof window !== 'undefined') esprima = window.esprima; -} + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index]; -var Type = require('../../type'); + if ((type.instanceOf || type.predicate) && + (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && + (!type.predicate || type.predicate(object))) { -function resolveJavascriptFunction(data) { - if (data === null) return false; + if (explicit) { + if (type.multi && type.representName) { + state.tag = type.representName(object); + } else { + state.tag = type.tag; + } + } else { + state.tag = '?'; + } - try { - var source = '(' + data + ')', - ast = esprima.parse(source, { range: true }); + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle; - if (ast.type !== 'Program' || - ast.body.length !== 1 || - ast.body[0].type !== 'ExpressionStatement' || - (ast.body[0].expression.type !== 'ArrowFunctionExpression' && - ast.body[0].expression.type !== 'FunctionExpression')) { - return false; + if (_toString.call(type.represent) === '[object Function]') { + _result = type.represent(object, style); + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style); + } else { + throw new exception('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + } + + state.dump = _result; + } + + return true; + } + } + + return false; + } + + // Serializes `object` and writes it to global `result`. + // Returns true on success, or false on invalid object. + // + function writeNode(state, level, object, block, compact, iskey, isblockseq) { + state.tag = null; + state.dump = object; + + if (!detectType(state, object, false)) { + detectType(state, object, true); + } + + var type = _toString.call(state.dump); + var inblock = block; + var tagStr; + + if (block) { + block = (state.flowLevel < 0 || state.flowLevel > level); + } + + var objectOrArray = type === '[object Object]' || type === '[object Array]', + duplicateIndex, + duplicate; + + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } + + if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { + compact = false; + } + + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if (type === '[object Object]') { + if (block && (Object.keys(state.dump).length !== 0)) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object Array]') { + if (block && (state.dump.length !== 0)) { + if (state.noArrayIndent && !isblockseq && level > 0) { + writeBlockSequence(state, level - 1, state.dump, compact); + } else { + writeBlockSequence(state, level, state.dump, compact); + } + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + state.dump; + } + } else { + writeFlowSequence(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if (type === '[object String]') { + if (state.tag !== '?') { + writeScalar(state, state.dump, level, iskey, inblock); + } + } else if (type === '[object Undefined]') { + return false; + } else { + if (state.skipInvalid) return false; + throw new exception('unacceptable kind of an object to dump ' + type); + } + + if (state.tag !== null && state.tag !== '?') { + // Need to encode all characters except those allowed by the spec: + // + // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */ + // [36] ns-hex-digit ::= ns-dec-digit + // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */ + // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */ + // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | β€œ-” + // [39] ns-uri-char ::= β€œ%” ns-hex-digit ns-hex-digit | ns-word-char | β€œ#” + // | β€œ;” | β€œ/” | β€œ?” | β€œ:” | β€œ@” | β€œ&” | β€œ=” | β€œ+” | β€œ$” | β€œ,” + // | β€œ_” | β€œ.” | β€œ!” | β€œ~” | β€œ*” | β€œ'” | β€œ(” | β€œ)” | β€œ[” | β€œ]” + // + // Also need to encode '!' because it has special meaning (end of tag prefix). + // + tagStr = encodeURI( + state.tag[0] === '!' ? state.tag.slice(1) : state.tag + ).replace(/!/g, '%21'); + + if (state.tag[0] === '!') { + tagStr = '!' + tagStr; + } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') { + tagStr = '!!' + tagStr.slice(18); + } else { + tagStr = '!<' + tagStr + '>'; + } + + state.dump = tagStr + ' ' + state.dump; + } } return true; - } catch (err) { - return false; - } -} - -function constructJavascriptFunction(data) { - /*jslint evil:true*/ - - var source = '(' + data + ')', - ast = esprima.parse(source, { range: true }), - params = [], - body; - - if (ast.type !== 'Program' || - ast.body.length !== 1 || - ast.body[0].type !== 'ExpressionStatement' || - (ast.body[0].expression.type !== 'ArrowFunctionExpression' && - ast.body[0].expression.type !== 'FunctionExpression')) { - throw new Error('Failed to resolve function'); } - ast.body[0].expression.params.forEach(function (param) { - params.push(param.name); - }); + function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length; - body = ast.body[0].expression.body.range; + inspectNode(object, objects, duplicatesIndexes); - // Esprima's ranges include the first '{' and the last '}' characters on - // function expressions. So cut them out. - if (ast.body[0].expression.body.type === 'BlockStatement') { - /*eslint-disable no-new-func*/ - return new Function(params, source.slice(body[0] + 1, body[1] - 1)); - } - // ES6 arrow functions can omit the BlockStatement. In that case, just return - // the body. - /*eslint-disable no-new-func*/ - return new Function(params, 'return ' + source.slice(body[0], body[1])); -} - -function representJavascriptFunction(object /*, style*/) { - return object.toString(); -} - -function isFunction(object) { - return Object.prototype.toString.call(object) === '[object Function]'; -} - -module.exports = new Type('tag:yaml.org,2002:js/function', { - kind: 'scalar', - resolve: resolveJavascriptFunction, - construct: constructJavascriptFunction, - predicate: isFunction, - represent: representJavascriptFunction -}); - -},{"../../type":13}],19:[function(require,module,exports){ -'use strict'; - -var Type = require('../../type'); - -function resolveJavascriptRegExp(data) { - if (data === null) return false; - if (data.length === 0) return false; - - var regexp = data, - tail = /\/([gim]*)$/.exec(data), - modifiers = ''; - - // if regexp starts with '/' it can have modifiers and must be properly closed - // `/foo/gim` - modifiers tail can be maximum 3 chars - if (regexp[0] === '/') { - if (tail) modifiers = tail[1]; - - if (modifiers.length > 3) return false; - // if expression starts with /, is should be properly terminated - if (regexp[regexp.length - modifiers.length - 1] !== '/') return false; + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); } - return true; -} + function inspectNode(object, objects, duplicatesIndexes) { + var objectKeyList, + index, + length; -function constructJavascriptRegExp(data) { - var regexp = data, - tail = /\/([gim]*)$/.exec(data), - modifiers = ''; + if (object !== null && typeof object === 'object') { + index = objects.indexOf(object); + if (index !== -1) { + if (duplicatesIndexes.indexOf(index) === -1) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); - // `/foo/gim` - tail can be maximum 4 chars - if (regexp[0] === '/') { - if (tail) modifiers = tail[1]; - regexp = regexp.slice(1, regexp.length - modifiers.length - 1); - } + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); - return new RegExp(regexp, modifiers); -} - -function representJavascriptRegExp(object /*, style*/) { - var result = '/' + object.source + '/'; - - if (object.global) result += 'g'; - if (object.multiline) result += 'm'; - if (object.ignoreCase) result += 'i'; - - return result; -} - -function isRegExp(object) { - return Object.prototype.toString.call(object) === '[object RegExp]'; -} - -module.exports = new Type('tag:yaml.org,2002:js/regexp', { - kind: 'scalar', - resolve: resolveJavascriptRegExp, - construct: constructJavascriptRegExp, - predicate: isRegExp, - represent: representJavascriptRegExp -}); - -},{"../../type":13}],20:[function(require,module,exports){ -'use strict'; - -var Type = require('../../type'); - -function resolveJavascriptUndefined() { - return true; -} - -function constructJavascriptUndefined() { - /*eslint-disable no-undefined*/ - return undefined; -} - -function representJavascriptUndefined() { - return ''; -} - -function isUndefined(object) { - return typeof object === 'undefined'; -} - -module.exports = new Type('tag:yaml.org,2002:js/undefined', { - kind: 'scalar', - resolve: resolveJavascriptUndefined, - construct: constructJavascriptUndefined, - predicate: isUndefined, - represent: representJavascriptUndefined -}); - -},{"../../type":13}],21:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -module.exports = new Type('tag:yaml.org,2002:map', { - kind: 'mapping', - construct: function (data) { return data !== null ? data : {}; } -}); - -},{"../type":13}],22:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -function resolveYamlMerge(data) { - return data === '<<' || data === null; -} - -module.exports = new Type('tag:yaml.org,2002:merge', { - kind: 'scalar', - resolve: resolveYamlMerge -}); - -},{"../type":13}],23:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -function resolveYamlNull(data) { - if (data === null) return true; - - var max = data.length; - - return (max === 1 && data === '~') || - (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); -} - -function constructYamlNull() { - return null; -} - -function isNull(object) { - return object === null; -} - -module.exports = new Type('tag:yaml.org,2002:null', { - kind: 'scalar', - resolve: resolveYamlNull, - construct: constructYamlNull, - predicate: isNull, - represent: { - canonical: function () { return '~'; }, - lowercase: function () { return 'null'; }, - uppercase: function () { return 'NULL'; }, - camelcase: function () { return 'Null'; } - }, - defaultStyle: 'lowercase' -}); - -},{"../type":13}],24:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -var _hasOwnProperty = Object.prototype.hasOwnProperty; -var _toString = Object.prototype.toString; - -function resolveYamlOmap(data) { - if (data === null) return true; - - var objectKeys = [], index, length, pair, pairKey, pairHasKey, - object = data; - - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - pairHasKey = false; - - if (_toString.call(pair) !== '[object Object]') return false; - - for (pairKey in pair) { - if (_hasOwnProperty.call(pair, pairKey)) { - if (!pairHasKey) pairHasKey = true; - else return false; + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } } } - - if (!pairHasKey) return false; - - if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); - else return false; } - return true; -} + function dump$1(input, options) { + options = options || {}; -function constructYamlOmap(data) { - return data !== null ? data : []; -} + var state = new State(options); -module.exports = new Type('tag:yaml.org,2002:omap', { - kind: 'sequence', - resolve: resolveYamlOmap, - construct: constructYamlOmap -}); + if (!state.noRefs) getDuplicateReferences(input, state); -},{"../type":13}],25:[function(require,module,exports){ -'use strict'; + var value = input; -var Type = require('../type'); - -var _toString = Object.prototype.toString; - -function resolveYamlPairs(data) { - if (data === null) return true; - - var index, length, pair, keys, result, - object = data; - - result = new Array(object.length); - - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - - if (_toString.call(pair) !== '[object Object]') return false; - - keys = Object.keys(pair); - - if (keys.length !== 1) return false; - - result[index] = [ keys[0], pair[keys[0]] ]; - } - - return true; -} - -function constructYamlPairs(data) { - if (data === null) return []; - - var index, length, pair, keys, result, - object = data; - - result = new Array(object.length); - - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - - keys = Object.keys(pair); - - result[index] = [ keys[0], pair[keys[0]] ]; - } - - return result; -} - -module.exports = new Type('tag:yaml.org,2002:pairs', { - kind: 'sequence', - resolve: resolveYamlPairs, - construct: constructYamlPairs -}); - -},{"../type":13}],26:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -module.exports = new Type('tag:yaml.org,2002:seq', { - kind: 'sequence', - construct: function (data) { return data !== null ? data : []; } -}); - -},{"../type":13}],27:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -var _hasOwnProperty = Object.prototype.hasOwnProperty; - -function resolveYamlSet(data) { - if (data === null) return true; - - var key, object = data; - - for (key in object) { - if (_hasOwnProperty.call(object, key)) { - if (object[key] !== null) return false; + if (state.replacer) { + value = state.replacer.call({ '': value }, '', value); } + + if (writeNode(state, 0, value, true, true)) return state.dump + '\n'; + + return ''; } - return true; -} + var dump_1 = dump$1; -function constructYamlSet(data) { - return data !== null ? data : {}; -} + var dumper = { + dump: dump_1 + }; -module.exports = new Type('tag:yaml.org,2002:set', { - kind: 'mapping', - resolve: resolveYamlSet, - construct: constructYamlSet -}); - -},{"../type":13}],28:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -module.exports = new Type('tag:yaml.org,2002:str', { - kind: 'scalar', - construct: function (data) { return data !== null ? data : ''; } -}); - -},{"../type":13}],29:[function(require,module,exports){ -'use strict'; - -var Type = require('../type'); - -var YAML_DATE_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9])' + // [2] month - '-([0-9][0-9])$'); // [3] day - -var YAML_TIMESTAMP_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9]?)' + // [2] month - '-([0-9][0-9]?)' + // [3] day - '(?:[Tt]|[ \\t]+)' + // ... - '([0-9][0-9]?)' + // [4] hour - ':([0-9][0-9])' + // [5] minute - ':([0-9][0-9])' + // [6] second - '(?:\\.([0-9]*))?' + // [7] fraction - '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour - '(?::([0-9][0-9]))?))?$'); // [11] tz_minute - -function resolveYamlTimestamp(data) { - if (data === null) return false; - if (YAML_DATE_REGEXP.exec(data) !== null) return true; - if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; - return false; -} - -function constructYamlTimestamp(data) { - var match, year, month, day, hour, minute, second, fraction = 0, - delta = null, tz_hour, tz_minute, date; - - match = YAML_DATE_REGEXP.exec(data); - if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); - - if (match === null) throw new Error('Date resolve error'); - - // match: [1] year [2] month [3] day - - year = +(match[1]); - month = +(match[2]) - 1; // JS month starts with 0 - day = +(match[3]); - - if (!match[4]) { // no hour - return new Date(Date.UTC(year, month, day)); + function renamed(from, to) { + return function () { + throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + + 'Use yaml.' + to + ' instead, which is now safe by default.'); + }; } - // match: [4] hour [5] minute [6] second [7] fraction - hour = +(match[4]); - minute = +(match[5]); - second = +(match[6]); + var Type = type; + var Schema = schema; + var FAILSAFE_SCHEMA = failsafe; + var JSON_SCHEMA = json; + var CORE_SCHEMA = core; + var DEFAULT_SCHEMA = _default; + var load = loader.load; + var loadAll = loader.loadAll; + var dump = dumper.dump; + var YAMLException = exception; - if (match[7]) { - fraction = match[7].slice(0, 3); - while (fraction.length < 3) { // milli-seconds - fraction += '0'; - } - fraction = +fraction; - } + // Re-export all types in case user wants to create custom schema + var types = { + binary: binary, + float: float, + map: map, + null: _null, + pairs: pairs, + set: set, + timestamp: timestamp, + bool: bool, + int: int, + merge: merge, + omap: omap, + seq: seq, + str: str + }; - // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + // Removed functions from JS-YAML 3.0.x + var safeLoad = renamed('safeLoad', 'load'); + var safeLoadAll = renamed('safeLoadAll', 'loadAll'); + var safeDump = renamed('safeDump', 'dump'); - if (match[9]) { - tz_hour = +(match[10]); - tz_minute = +(match[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds - if (match[9] === '-') delta = -delta; - } + var jsYaml = { + Type: Type, + Schema: Schema, + FAILSAFE_SCHEMA: FAILSAFE_SCHEMA, + JSON_SCHEMA: JSON_SCHEMA, + CORE_SCHEMA: CORE_SCHEMA, + DEFAULT_SCHEMA: DEFAULT_SCHEMA, + load: load, + loadAll: loadAll, + dump: dump, + YAMLException: YAMLException, + types: types, + safeLoad: safeLoad, + safeLoadAll: safeLoadAll, + safeDump: safeDump + }; - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + exports.CORE_SCHEMA = CORE_SCHEMA; + exports.DEFAULT_SCHEMA = DEFAULT_SCHEMA; + exports.FAILSAFE_SCHEMA = FAILSAFE_SCHEMA; + exports.JSON_SCHEMA = JSON_SCHEMA; + exports.Schema = Schema; + exports.Type = Type; + exports.YAMLException = YAMLException; + exports.default = jsYaml; + exports.dump = dump; + exports.load = load; + exports.loadAll = loadAll; + exports.safeDump = safeDump; + exports.safeLoad = safeLoad; + exports.safeLoadAll = safeLoadAll; + exports.types = types; - if (delta) date.setTime(date.getTime() - delta); + Object.defineProperty(exports, '__esModule', { value: true }); - return date; -} - -function representYamlTimestamp(object /*, style*/) { - return object.toISOString(); -} - -module.exports = new Type('tag:yaml.org,2002:timestamp', { - kind: 'scalar', - resolve: resolveYamlTimestamp, - construct: constructYamlTimestamp, - instanceOf: Date, - represent: representYamlTimestamp -}); - -},{"../type":13}],"/":[function(require,module,exports){ -'use strict'; - - -var yaml = require('./lib/js-yaml.js'); - - -module.exports = yaml; - -},{"./lib/js-yaml.js":1}]},{},[])("/") -}); +}))); diff --git a/node_modules/js-yaml/dist/js-yaml.min.js b/node_modules/js-yaml/dist/js-yaml.min.js index 1b6ecc1..bdd8eef 100644 --- a/node_modules/js-yaml/dist/js-yaml.min.js +++ b/node_modules/js-yaml/dist/js-yaml.min.js @@ -1 +1,2 @@ -/*! js-yaml 3.14.1 https://github.com/nodeca/js-yaml */!function(e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).jsyaml=e()}(function(){return function i(r,o,a){function s(t,e){if(!o[t]){if(!r[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(c)return c(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=o[t]={exports:{}},r[t][0].call(n.exports,function(e){return s(r[t][1][e]||e)},n,n.exports,i,r,o,a)}return o[t].exports}for(var c="function"==typeof require&&require,e=0;e=i.flowLevel;switch(V(r,n,i.indent,t,function(e){return function(e,t){for(var n=0,i=e.implicitTypes.length;n"+z(r,i.indent)+J(U(function(t,n){var e,i=/(\n+)([^\n]*)/g,r=function(){var e=-1!==(e=t.indexOf("\n"))?e:t.length;return i.lastIndex=e,Q(t.slice(0,e),n)}(),o="\n"===t[0]||" "===t[0];for(;e=i.exec(t);){var a=e[1],s=e[2];e=" "===s[0],r+=a+(o||e||""===s?"":"\n")+Q(s,n),o=e}return r}(r,t),e));case G:return'"'+function(e){for(var t,n,i,r="",o=0;ot&&o tag resolver accepts not "'+o+'" style');i=r.represent[o](t,o)}e.dump=i}return 1}}function ee(e,t,n,i,r,o){e.tag=null,e.dump=n,X(e,n,!1)||X(e,n,!0);var a=l.call(e.dump);i=i&&(e.flowLevel<0||e.flowLevel>t);var s,c,u="[object Object]"===a||"[object Array]"===a;if(u&&(c=-1!==(s=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&0 "+e.dump)}return 1}function te(e,t){var n,i,r=[],o=[];for(!function e(t,n,i){var r,o,a;if(null!==t&&"object"==typeof t)if(-1!==(o=n.indexOf(t)))-1===i.indexOf(o)&&i.push(o);else if(n.push(t),Array.isArray(t))for(o=0,a=t.length;o>10),56320+(c-65536&1023)),e.position++}else N(e,"unknown escape sequence");n=i=e.position}else S(u)?(L(e,n,i,!0),B(e,Y(e,!1,t)),n=i=e.position):e.position===e.lineStart&&R(e)?N(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}N(e,"unexpected end of the stream within a double quoted scalar")}}function K(e,t){var n,i,r=e.tag,o=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),i=e.input.charCodeAt(e.position);0!==i&&45===i&&O(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,Y(e,!0,-1)&&e.lineIndent<=t)a.push(null),i=e.input.charCodeAt(e.position);else if(n=e.line,P(e,t,x,!1,!0),a.push(e.result),Y(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==i)N(e,"bad indentation of a sequence entry");else if(e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndentt)&&(P(e,t,A,!0,r)&&(m?d=e.result:h=e.result),m||(U(e,l,p,f,d,h,o,a),f=d=h=null),Y(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)N(e,"bad indentation of a mapping entry");else if(e.lineIndentc&&(c=e.lineIndent),S(p))u++;else{if(e.lineIndent=t){a=!0,f=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=c,e.lineIndent=u;break}}a&&(L(e,r,o,!1),B(e,e.line-s),r=o=e.position,a=!1),I(f)||(o=e.position+1),f=e.input.charCodeAt(++e.position)}if(L(e,r,o,!1),e.result)return 1;e.kind=l,e.result=p}}(e,i,g===n)&&(d=!0,null===e.tag&&(e.tag="?")):(d=!0,null===e.tag&&null===e.anchor||N(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===p&&(d=s&&K(e,r))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&N(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,u=e.implicitTypes.length;c tag; it should be "'+l.kind+'", not "'+e.kind+'"'),l.resolve(e.result)?(e.result=l.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):N(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):N(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||d}function $(e,t){t=t||{},0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var n=new F(e,t),e=e.indexOf("\0");for(-1!==e&&(n.position=e,N(n,"null byte is not allowed in input")),n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.positiont/2-1){n=" ... ",i+=5;break}for(r="",o=this.position;ot/2-1){r=" ... ",o-=5;break}return a=this.buffer.slice(i,o),s.repeat(" ",e)+n+a+r+"\n"+s.repeat(" ",e+this.position-i+n.length)+"^"},i.prototype.toString=function(e){var t="";return this.name&&(t+='in "'+this.name+'" '),t+="at line "+(this.line+1)+", column "+(this.column+1),e||(e=this.getSnippet())&&(t+=":\n"+e),t},t.exports=i},{"./common":2}],7:[function(e,t,n){"use strict";var r=e("./common"),o=e("./exception"),a=e("./type");function s(e,t,i){var r=[];return e.include.forEach(function(e){i=s(e,t,i)}),e[t].forEach(function(n){i.forEach(function(e,t){e.tag===n.tag&&e.kind===n.kind&&r.push(t)}),i.push(n)}),i.filter(function(e,t){return-1===r.indexOf(t)})}function c(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new o("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=s(this,"implicit",[]),this.compiledExplicit=s(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{}};function i(e){n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e>16&255),o.push(r>>8&255),o.push(255&r)),r=r<<6|i.indexOf(t.charAt(a));return 0==(e=n%4*6)?(o.push(r>>16&255),o.push(r>>8&255),o.push(255&r)):18==e?(o.push(r>>10&255),o.push(r>>2&255)):12==e&&o.push(r>>4&255),s?s.from?s.from(o):new s(o):o},predicate:function(e){return s&&s.isBuffer(e)},represent:function(e){for(var t,n="",i=0,r=e.length,o=c,a=0;a>18&63],n+=o[i>>12&63],n+=o[i>>6&63],n+=o[63&i]),i=(i<<8)+e[a];return 0==(t=r%3)?(n+=o[i>>18&63],n+=o[i>>12&63],n+=o[i>>6&63],n+=o[63&i]):2==t?(n+=o[i>>10&63],n+=o[i>>4&63],n+=o[i<<2&63],n+=o[64]):1==t&&(n+=o[i>>2&63],n+=o[i<<4&63],n+=o[64],n+=o[64]),n}})},{"../type":13}],15:[function(e,t,n){"use strict";e=e("../type");t.exports=new e("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},{"../type":13}],16:[function(e,t,n){"use strict";var i=e("../common"),e=e("../type"),r=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var o=/^[-+]?[0-9]+e/;t.exports=new e("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!r.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n=e.replace(/_/g,"").toLowerCase(),e="-"===n[0]?-1:1,i=[];return 0<="+-".indexOf(n[0])&&(n=n.slice(1)),".inf"===n?1==e?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===n?NaN:0<=n.indexOf(":")?(n.split(":").forEach(function(e){i.unshift(parseFloat(e,10))}),n=0,t=1,i.forEach(function(e){n+=e*t,t*=60}),e*n):e*parseFloat(n,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||i.isNegativeZero(e))},represent:function(e,t){if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(i.isNegativeZero(e))return"-0.0";return e=e.toString(10),o.test(e)?e.replace("e",".e"):e},defaultStyle:"lowercase"})},{"../common":2,"../type":13}],17:[function(e,t,n){"use strict";var i=e("../common"),e=e("../type");t.exports=new e("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i,r,o=e.length,a=0,s=!1;if(!o)return!1;if("-"!==(t=e[a])&&"+"!==t||(t=e[++a]),"0"===t){if(a+1===o)return!0;if("b"===(t=e[++a])){for(a++;al&&(t=i-l+(o=" ... ").length),n-i>l&&(n=i+l-(a=" ...").length),{str:o+e.slice(t,n).replace(/\t/g,"β†’")+a,pos:i-t+o.length}}function l(e,t){return n.repeat(" ",t-e.length)+e}var c=function(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!=typeof t.indent&&(t.indent=1),"number"!=typeof t.linesBefore&&(t.linesBefore=3),"number"!=typeof t.linesAfter&&(t.linesAfter=2);for(var i,r=/\r?\n|\r|\0/g,o=[0],c=[],s=-1;i=r.exec(e.buffer);)c.push(i.index),o.push(i.index+i[0].length),e.position<=i.index&&s<0&&(s=o.length-2);s<0&&(s=o.length-1);var u,p,f="",d=Math.min(e.line+t.linesAfter,c.length).toString().length,h=t.maxLength-(t.indent+d+3);for(u=1;u<=t.linesBefore&&!(s-u<0);u++)p=a(e.buffer,o[s-u],c[s-u],e.position-(o[s]-o[s-u]),h),f=n.repeat(" ",t.indent)+l((e.line-u+1).toString(),d)+" | "+p.str+"\n"+f;for(p=a(e.buffer,o[s],c[s],e.position,h),f+=n.repeat(" ",t.indent)+l((e.line+1).toString(),d)+" | "+p.str+"\n",f+=n.repeat("-",t.indent+d+3+p.pos)+"^\n",u=1;u<=t.linesAfter&&!(s+u>=c.length);u++)p=a(e.buffer,o[s+u],c[s+u],e.position-(o[s]-o[s+u]),h),f+=n.repeat(" ",t.indent)+l((e.line+u+1).toString(),d)+" | "+p.str+"\n";return f.replace(/\n$/,"")},s=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],u=["scalar","sequence","mapping"];var p=function(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===s.indexOf(t))throw new o('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=function(e){var t={};return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}(t.styleAliases||null),-1===u.indexOf(this.kind))throw new o('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')};function f(e,t){var n=[];return e[t].forEach((function(e){var t=n.length;n.forEach((function(n,i){n.tag===e.tag&&n.kind===e.kind&&n.multi===e.multi&&(t=i)})),n[t]=e})),n}function d(e){return this.extend(e)}d.prototype.extend=function(e){var t=[],n=[];if(e instanceof p)n.push(e);else if(Array.isArray(e))n=n.concat(e);else{if(!e||!Array.isArray(e.implicit)&&!Array.isArray(e.explicit))throw new o("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");e.implicit&&(t=t.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit))}t.forEach((function(e){if(!(e instanceof p))throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(e.loadKind&&"scalar"!==e.loadKind)throw new o("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(e.multi)throw new o("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(e){if(!(e instanceof p))throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var i=Object.create(d.prototype);return i.implicit=(this.implicit||[]).concat(t),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=f(i,"implicit"),i.compiledExplicit=f(i,"explicit"),i.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),x=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var I=/^[-+]?[0-9]+e/;var S=new p("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!x.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||n.isNegativeZero(e))},represent:function(e,t){var i;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(n.isNegativeZero(e))return"-0.0";return i=e.toString(10),I.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"}),O=b.extend({implicit:[A,v,C,S]}),j=O,T=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),N=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var F=new p("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==T.exec(e)||null!==N.exec(e))},construct:function(e){var t,n,i,r,o,a,l,c,s=0,u=null;if(null===(t=T.exec(e))&&(t=N.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],i=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(n,i,r));if(o=+t[4],a=+t[5],l=+t[6],t[7]){for(s=t[7].slice(0,3);s.length<3;)s+="0";s=+s}return t[9]&&(u=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(u=-u)),c=new Date(Date.UTC(n,i,r,o,a,l,s)),u&&c.setTime(c.getTime()-u),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var E=new p("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}}),M="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var L=new p("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i=0,r=e.length,o=M;for(n=0;n64)){if(t<0)return!1;i+=6}return i%8==0},construct:function(e){var t,n,i=e.replace(/[\r\n=]/g,""),r=i.length,o=M,a=0,l=[];for(t=0;t>16&255),l.push(a>>8&255),l.push(255&a)),a=a<<6|o.indexOf(i.charAt(t));return 0===(n=r%4*6)?(l.push(a>>16&255),l.push(a>>8&255),l.push(255&a)):18===n?(l.push(a>>10&255),l.push(a>>2&255)):12===n&&l.push(a>>4&255),new Uint8Array(l)},predicate:function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)},represent:function(e){var t,n,i="",r=0,o=e.length,a=M;for(t=0;t>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]),r=(r<<8)+e[t];return 0===(n=o%3)?(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]):2===n?(i+=a[r>>10&63],i+=a[r>>4&63],i+=a[r<<2&63],i+=a[64]):1===n&&(i+=a[r>>2&63],i+=a[r<<4&63],i+=a[64],i+=a[64]),i}}),_=Object.prototype.hasOwnProperty,D=Object.prototype.toString;var U=new p("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,i,r,o,a=[],l=e;for(t=0,n=l.length;t>10),56320+(e-65536&1023))}for(var ie=new Array(256),re=new Array(256),oe=0;oe<256;oe++)ie[oe]=te(oe)?1:0,re[oe]=te(oe);function ae(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||K,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function le(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=c(n),new o(t,n)}function ce(e,t){throw le(e,t)}function se(e,t){e.onWarning&&e.onWarning.call(null,le(e,t))}var ue={YAML:function(e,t,n){var i,r,o;null!==e.version&&ce(e,"duplication of %YAML directive"),1!==n.length&&ce(e,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&ce(e,"ill-formed argument of the YAML directive"),r=parseInt(i[1],10),o=parseInt(i[2],10),1!==r&&ce(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&se(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var i,r;2!==n.length&&ce(e,"TAG directive accepts exactly two arguments"),i=n[0],r=n[1],G.test(i)||ce(e,"ill-formed tag handle (first argument) of the TAG directive"),P.call(e.tagMap,i)&&ce(e,'there is a previously declared suffix for "'+i+'" tag handle'),V.test(r)||ce(e,"ill-formed tag prefix (second argument) of the TAG directive");try{r=decodeURIComponent(r)}catch(t){ce(e,"tag prefix is malformed: "+r)}e.tagMap[i]=r}};function pe(e,t,n,i){var r,o,a,l;if(t1&&(e.result+=n.repeat("\n",t-1))}function be(e,t){var n,i,r=e.tag,o=e.anchor,a=[],l=!1;if(-1!==e.firstTabInLine)return!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),i=e.input.charCodeAt(e.position);0!==i&&(-1!==e.firstTabInLine&&(e.position=e.firstTabInLine,ce(e,"tab characters must not be used in indentation")),45===i)&&z(e.input.charCodeAt(e.position+1));)if(l=!0,e.position++,ge(e,!0,-1)&&e.lineIndent<=t)a.push(null),i=e.input.charCodeAt(e.position);else if(n=e.line,we(e,t,3,!1,!0),a.push(e.result),ge(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==i)ce(e,"bad indentation of a sequence entry");else if(e.lineIndentt?g=1:e.lineIndent===t?g=0:e.lineIndentt?g=1:e.lineIndent===t?g=0:e.lineIndentt)&&(y&&(a=e.line,l=e.lineStart,c=e.position),we(e,t,4,!0,r)&&(y?g=e.result:m=e.result),y||(de(e,f,d,h,g,m,a,l,c),h=g=m=null),ge(e,!0,-1),s=e.input.charCodeAt(e.position)),(e.line===o||e.lineIndent>t)&&0!==s)ce(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===o?ce(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?ce(e,"repeat of an indentation width identifier"):(p=t+o-1,u=!0)}if(Q(a)){do{a=e.input.charCodeAt(++e.position)}while(Q(a));if(35===a)do{a=e.input.charCodeAt(++e.position)}while(!J(a)&&0!==a)}for(;0!==a;){for(he(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!u||e.lineIndentp&&(p=e.lineIndent),J(a))f++;else{if(e.lineIndent0){for(r=a,o=0;r>0;r--)(a=ee(l=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:ce(e,"expected hexadecimal character");e.result+=ne(o),e.position++}else ce(e,"unknown escape sequence");n=i=e.position}else J(l)?(pe(e,n,i,!0),ye(e,ge(e,!1,t)),n=i=e.position):e.position===e.lineStart&&me(e)?ce(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}ce(e,"unexpected end of the stream within a double quoted scalar")}(e,d)?y=!0:!function(e){var t,n,i;if(42!==(i=e.input.charCodeAt(e.position)))return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!z(i)&&!X(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&ce(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),P.call(e.anchorMap,n)||ce(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],ge(e,!0,-1),!0}(e)?function(e,t,n){var i,r,o,a,l,c,s,u,p=e.kind,f=e.result;if(z(u=e.input.charCodeAt(e.position))||X(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(z(i=e.input.charCodeAt(e.position+1))||n&&X(i)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==u;){if(58===u){if(z(i=e.input.charCodeAt(e.position+1))||n&&X(i))break}else if(35===u){if(z(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&me(e)||n&&X(u))break;if(J(u)){if(l=e.line,c=e.lineStart,s=e.lineIndent,ge(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=l,e.lineStart=c,e.lineIndent=s;break}}a&&(pe(e,r,o,!1),ye(e,e.line-l),r=o=e.position,a=!1),Q(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return pe(e,r,o,!1),!!e.result||(e.kind=p,e.result=f,!1)}(e,d,1===i)&&(y=!0,null===e.tag&&(e.tag="?")):(y=!0,null===e.tag&&null===e.anchor||ce(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===g&&(y=c&&be(e,h))),null===e.tag)null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);else if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&ce(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),s=0,u=e.implicitTypes.length;s"),null!==e.result&&f.kind!==e.kind&&ce(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+f.kind+'", not "'+e.kind+'"'),f.resolve(e.result,e.tag)?(e.result=f.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):ce(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||y}function ke(e){var t,n,i,r,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(r=e.input.charCodeAt(e.position))&&(ge(e,!0,-1),r=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==r));){for(a=!0,r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!z(r);)r=e.input.charCodeAt(++e.position);for(i=[],(n=e.input.slice(t,e.position)).length<1&&ce(e,"directive name must not be less than one character in length");0!==r;){for(;Q(r);)r=e.input.charCodeAt(++e.position);if(35===r){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&!J(r));break}if(J(r))break;for(t=e.position;0!==r&&!z(r);)r=e.input.charCodeAt(++e.position);i.push(e.input.slice(t,e.position))}0!==r&&he(e),P.call(ue,n)?ue[n](e,n,i):se(e,'unknown document directive "'+n+'"')}ge(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,ge(e,!0,-1)):a&&ce(e,"directives end mark is expected"),we(e,e.lineIndent-1,4,!1,!0),ge(e,!0,-1),e.checkLineBreaks&&H.test(e.input.slice(o,e.position))&&se(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&me(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,ge(e,!0,-1)):e.position=55296&&i<=56319&&t+1=56320&&n<=57343?1024*(i-55296)+n-56320+65536:i}function Re(e){return/^\n* /.test(e)}function Be(e,t,n,i,r,o,a,l){var c,s,u=0,p=null,f=!1,d=!1,h=-1!==i,g=-1,m=De(s=Ye(e,0))&&s!==Oe&&!_e(s)&&45!==s&&63!==s&&58!==s&&44!==s&&91!==s&&93!==s&&123!==s&&125!==s&&35!==s&&38!==s&&42!==s&&33!==s&&124!==s&&61!==s&&62!==s&&39!==s&&34!==s&&37!==s&&64!==s&&96!==s&&function(e){return!_e(e)&&58!==e}(Ye(e,e.length-1));if(t||a)for(c=0;c=65536?c+=2:c++){if(!De(u=Ye(e,c)))return 5;m=m&&qe(u,p,l),p=u}else{for(c=0;c=65536?c+=2:c++){if(10===(u=Ye(e,c)))f=!0,h&&(d=d||c-g-1>i&&" "!==e[g+1],g=c);else if(!De(u))return 5;m=m&&qe(u,p,l),p=u}d=d||h&&c-g-1>i&&" "!==e[g+1]}return f||d?n>9&&Re(e)?5:a?2===o?5:2:d?4:3:!m||a||r(e)?2===o?5:2:1}function Ke(e,t,n,i,r){e.dump=function(){if(0===t.length)return 2===e.quotingType?'""':"''";if(!e.noCompatMode&&(-1!==Te.indexOf(t)||Ne.test(t)))return 2===e.quotingType?'"'+t+'"':"'"+t+"'";var a=e.indent*Math.max(1,n),l=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),c=i||e.flowLevel>-1&&n>=e.flowLevel;switch(Be(t,c,e.indent,l,(function(t){return function(e,t){var n,i;for(n=0,i=e.implicitTypes.length;n"+Pe(t,e.indent)+We(Me(function(e,t){var n,i,r=/(\n+)([^\n]*)/g,o=(l=e.indexOf("\n"),l=-1!==l?l:e.length,r.lastIndex=l,He(e.slice(0,l),t)),a="\n"===e[0]||" "===e[0];var l;for(;i=r.exec(e);){var c=i[1],s=i[2];n=" "===s[0],o+=c+(a||n||""===s?"":"\n")+He(s,t),a=n}return o}(t,l),a));case 5:return'"'+function(e){for(var t,n="",i=0,r=0;r=65536?r+=2:r++)i=Ye(e,r),!(t=je[i])&&De(i)?(n+=e[r],i>=65536&&(n+=e[r+1])):n+=t||Fe(i);return n}(t)+'"';default:throw new o("impossible error: invalid scalar style")}}()}function Pe(e,t){var n=Re(e)?String(t):"",i="\n"===e[e.length-1];return n+(i&&("\n"===e[e.length-2]||"\n"===e)?"+":i?"":"-")+"\n"}function We(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function He(e,t){if(""===e||" "===e[0])return e;for(var n,i,r=/ [^ ]/g,o=0,a=0,l=0,c="";n=r.exec(e);)(l=n.index)-o>t&&(i=a>o?a:l,c+="\n"+e.slice(o,i),o=i+1),a=l;return c+="\n",e.length-o>t&&a>o?c+=e.slice(o,a)+"\n"+e.slice(a+1):c+=e.slice(o),c.slice(1)}function $e(e,t,n,i){var r,o,a,l="",c=e.tag;for(r=0,o=n.length;r tag resolver accepts not "'+s+'" style');i=c.represent[s](t,s)}e.dump=i}return!0}return!1}function Ve(e,t,n,i,r,a,l){e.tag=null,e.dump=n,Ge(e,n,!1)||Ge(e,n,!0);var c,s=Ie.call(e.dump),u=i;i&&(i=e.flowLevel<0||e.flowLevel>t);var p,f,d="[object Object]"===s||"[object Array]"===s;if(d&&(f=-1!==(p=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||f||2!==e.indent&&t>0)&&(r=!1),f&&e.usedDuplicates[p])e.dump="*ref_"+p;else{if(d&&f&&!e.usedDuplicates[p]&&(e.usedDuplicates[p]=!0),"[object Object]"===s)i&&0!==Object.keys(e.dump).length?(!function(e,t,n,i){var r,a,l,c,s,u,p="",f=e.tag,d=Object.keys(n);if(!0===e.sortKeys)d.sort();else if("function"==typeof e.sortKeys)d.sort(e.sortKeys);else if(e.sortKeys)throw new o("sortKeys must be a boolean or a function");for(r=0,a=d.length;r1024)&&(e.dump&&10===e.dump.charCodeAt(0)?u+="?":u+="? "),u+=e.dump,s&&(u+=Le(e,t)),Ve(e,t+1,c,!0,s)&&(e.dump&&10===e.dump.charCodeAt(0)?u+=":":u+=": ",p+=u+=e.dump));e.tag=f,e.dump=p||"{}"}(e,t,e.dump,r),f&&(e.dump="&ref_"+p+e.dump)):(!function(e,t,n){var i,r,o,a,l,c="",s=e.tag,u=Object.keys(n);for(i=0,r=u.length;i1024&&(l+="? "),l+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Ve(e,t,a,!1,!1)&&(c+=l+=e.dump));e.tag=s,e.dump="{"+c+"}"}(e,t,e.dump),f&&(e.dump="&ref_"+p+" "+e.dump));else if("[object Array]"===s)i&&0!==e.dump.length?(e.noArrayIndent&&!l&&t>0?$e(e,t-1,e.dump,r):$e(e,t,e.dump,r),f&&(e.dump="&ref_"+p+e.dump)):(!function(e,t,n){var i,r,o,a="",l=e.tag;for(i=0,r=n.length;i",e.dump=c+" "+e.dump)}return!0}function Ze(e,t){var n,i,r=[],o=[];for(Je(e,r,o),n=0,i=o.length;n */ -var CHAR_QUESTION = 0x3F; /* ? */ -var CHAR_COMMERCIAL_AT = 0x40; /* @ */ -var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ -var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ -var CHAR_GRAVE_ACCENT = 0x60; /* ` */ -var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ -var CHAR_VERTICAL_LINE = 0x7C; /* | */ -var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ - -var ESCAPE_SEQUENCES = {}; - -ESCAPE_SEQUENCES[0x00] = '\\0'; -ESCAPE_SEQUENCES[0x07] = '\\a'; -ESCAPE_SEQUENCES[0x08] = '\\b'; -ESCAPE_SEQUENCES[0x09] = '\\t'; -ESCAPE_SEQUENCES[0x0A] = '\\n'; -ESCAPE_SEQUENCES[0x0B] = '\\v'; -ESCAPE_SEQUENCES[0x0C] = '\\f'; -ESCAPE_SEQUENCES[0x0D] = '\\r'; -ESCAPE_SEQUENCES[0x1B] = '\\e'; -ESCAPE_SEQUENCES[0x22] = '\\"'; -ESCAPE_SEQUENCES[0x5C] = '\\\\'; -ESCAPE_SEQUENCES[0x85] = '\\N'; -ESCAPE_SEQUENCES[0xA0] = '\\_'; -ESCAPE_SEQUENCES[0x2028] = '\\L'; -ESCAPE_SEQUENCES[0x2029] = '\\P'; - -var DEPRECATED_BOOLEANS_SYNTAX = [ - 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', - 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' -]; - -function compileStyleMap(schema, map) { - var result, keys, index, length, tag, style, type; - - if (map === null) return {}; - - result = {}; - keys = Object.keys(map); - - for (index = 0, length = keys.length; index < length; index += 1) { - tag = keys[index]; - style = String(map[tag]); - - if (tag.slice(0, 2) === '!!') { - tag = 'tag:yaml.org,2002:' + tag.slice(2); - } - type = schema.compiledTypeMap['fallback'][tag]; - - if (type && _hasOwnProperty.call(type.styleAliases, style)) { - style = type.styleAliases[style]; - } - - result[tag] = style; - } - - return result; -} - -function encodeHex(character) { - var string, handle, length; - - string = character.toString(16).toUpperCase(); - - if (character <= 0xFF) { - handle = 'x'; - length = 2; - } else if (character <= 0xFFFF) { - handle = 'u'; - length = 4; - } else if (character <= 0xFFFFFFFF) { - handle = 'U'; - length = 8; - } else { - throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF'); - } - - return '\\' + handle + common.repeat('0', length - string.length) + string; -} - -function State(options) { - this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; - this.indent = Math.max(1, (options['indent'] || 2)); - this.noArrayIndent = options['noArrayIndent'] || false; - this.skipInvalid = options['skipInvalid'] || false; - this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); - this.styleMap = compileStyleMap(this.schema, options['styles'] || null); - this.sortKeys = options['sortKeys'] || false; - this.lineWidth = options['lineWidth'] || 80; - this.noRefs = options['noRefs'] || false; - this.noCompatMode = options['noCompatMode'] || false; - this.condenseFlow = options['condenseFlow'] || false; - - this.implicitTypes = this.schema.compiledImplicit; - this.explicitTypes = this.schema.compiledExplicit; - - this.tag = null; - this.result = ''; - - this.duplicates = []; - this.usedDuplicates = null; -} - -// Indents every line in a string. Empty lines (\n only) are not indented. -function indentString(string, spaces) { - var ind = common.repeat(' ', spaces), - position = 0, - next = -1, - result = '', - line, - length = string.length; - - while (position < length) { - next = string.indexOf('\n', position); - if (next === -1) { - line = string.slice(position); - position = length; - } else { - line = string.slice(position, next + 1); - position = next + 1; - } - - if (line.length && line !== '\n') result += ind; - - result += line; - } - - return result; -} - -function generateNextLine(state, level) { - return '\n' + common.repeat(' ', state.indent * level); -} - -function testImplicitResolving(state, str) { - var index, length, type; - - for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { - type = state.implicitTypes[index]; - - if (type.resolve(str)) { - return true; - } - } - - return false; -} - -// [33] s-white ::= s-space | s-tab -function isWhitespace(c) { - return c === CHAR_SPACE || c === CHAR_TAB; -} - -// Returns true if the character can be printed without escaping. -// From YAML 1.2: "any allowed characters known to be non-printable -// should also be escaped. [However,] This isn’t mandatory" -// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. -function isPrintable(c) { - return (0x00020 <= c && c <= 0x00007E) - || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) - || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */) - || (0x10000 <= c && c <= 0x10FFFF); -} - -// [34] ns-char ::= nb-char - s-white -// [27] nb-char ::= c-printable - b-char - c-byte-order-mark -// [26] b-char ::= b-line-feed | b-carriage-return -// [24] b-line-feed ::= #xA /* LF */ -// [25] b-carriage-return ::= #xD /* CR */ -// [3] c-byte-order-mark ::= #xFEFF -function isNsChar(c) { - return isPrintable(c) && !isWhitespace(c) - // byte-order-mark - && c !== 0xFEFF - // b-char - && c !== CHAR_CARRIAGE_RETURN - && c !== CHAR_LINE_FEED; -} - -// Simplified test for values allowed after the first character in plain style. -function isPlainSafe(c, prev) { - // Uses a subset of nb-char - c-flow-indicator - ":" - "#" - // where nb-char ::= c-printable - b-char - c-byte-order-mark. - return isPrintable(c) && c !== 0xFEFF - // - c-flow-indicator - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET - // - ":" - "#" - // /* An ns-char preceding */ "#" - && c !== CHAR_COLON - && ((c !== CHAR_SHARP) || (prev && isNsChar(prev))); -} - -// Simplified test for values allowed as the first character in plain style. -function isPlainSafeFirst(c) { - // Uses a subset of ns-char - c-indicator - // where ns-char = nb-char - s-white. - return isPrintable(c) && c !== 0xFEFF - && !isWhitespace(c) // - s-white - // - (c-indicator ::= - // β€œ-” | β€œ?” | β€œ:” | β€œ,” | β€œ[” | β€œ]” | β€œ{” | β€œ}” - && c !== CHAR_MINUS - && c !== CHAR_QUESTION - && c !== CHAR_COLON - && c !== CHAR_COMMA - && c !== CHAR_LEFT_SQUARE_BRACKET - && c !== CHAR_RIGHT_SQUARE_BRACKET - && c !== CHAR_LEFT_CURLY_BRACKET - && c !== CHAR_RIGHT_CURLY_BRACKET - // | β€œ#” | β€œ&” | β€œ*” | β€œ!” | β€œ|” | β€œ=” | β€œ>” | β€œ'” | β€œ"” - && c !== CHAR_SHARP - && c !== CHAR_AMPERSAND - && c !== CHAR_ASTERISK - && c !== CHAR_EXCLAMATION - && c !== CHAR_VERTICAL_LINE - && c !== CHAR_EQUALS - && c !== CHAR_GREATER_THAN - && c !== CHAR_SINGLE_QUOTE - && c !== CHAR_DOUBLE_QUOTE - // | β€œ%” | β€œ@” | β€œ`”) - && c !== CHAR_PERCENT - && c !== CHAR_COMMERCIAL_AT - && c !== CHAR_GRAVE_ACCENT; -} - -// Determines whether block indentation indicator is required. -function needIndentIndicator(string) { - var leadingSpaceRe = /^\n* /; - return leadingSpaceRe.test(string); -} - -var STYLE_PLAIN = 1, - STYLE_SINGLE = 2, - STYLE_LITERAL = 3, - STYLE_FOLDED = 4, - STYLE_DOUBLE = 5; - -// Determines which scalar styles are possible and returns the preferred style. -// lineWidth = -1 => no limit. -// Pre-conditions: str.length > 0. -// Post-conditions: -// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. -// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). -// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). -function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) { - var i; - var char, prev_char; - var hasLineBreak = false; - var hasFoldableLine = false; // only checked if shouldTrackWidth - var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; // count the first line correctly - var plain = isPlainSafeFirst(string.charCodeAt(0)) - && !isWhitespace(string.charCodeAt(string.length - 1)); - - if (singleLineOnly) { - // Case: no block styles. - // Check for disallowed characters to rule out plain and single. - for (i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - prev_char = i > 0 ? string.charCodeAt(i - 1) : null; - plain = plain && isPlainSafe(char, prev_char); - } - } else { - // Case: block styles permitted. - for (i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - if (char === CHAR_LINE_FEED) { - hasLineBreak = true; - // Check if any line can be folded. - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || - // Foldable line = too long, and not more-indented. - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' '); - previousLineBreak = i; - } - } else if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - prev_char = i > 0 ? string.charCodeAt(i - 1) : null; - plain = plain && isPlainSafe(char, prev_char); - } - // in case the end is missing a \n - hasFoldableLine = hasFoldableLine || (shouldTrackWidth && - (i - previousLineBreak - 1 > lineWidth && - string[previousLineBreak + 1] !== ' ')); - } - // Although every style can represent \n without escaping, prefer block styles - // for multiline, since they're more readable and they don't add empty lines. - // Also prefer folding a super-long line. - if (!hasLineBreak && !hasFoldableLine) { - // Strings interpretable as another type have to be quoted; - // e.g. the string 'true' vs. the boolean true. - return plain && !testAmbiguousType(string) - ? STYLE_PLAIN : STYLE_SINGLE; - } - // Edge case: block indentation indicator can only have one digit. - if (indentPerLevel > 9 && needIndentIndicator(string)) { - return STYLE_DOUBLE; - } - // At this point we know block styles are valid. - // Prefer literal style unless we want to fold. - return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; -} - -// Note: line breaking/folding is implemented for only the folded style. -// NB. We drop the last trailing newline (if any) of a returned block scalar -// since the dumper adds its own newline. This always works: -// β€’ No ending newline => unaffected; already using strip "-" chomping. -// β€’ Ending newline => removed then restored. -// Importantly, this keeps the "+" chomp indicator from gaining an extra line. -function writeScalar(state, string, level, iskey) { - state.dump = (function () { - if (string.length === 0) { - return "''"; - } - if (!state.noCompatMode && - DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) { - return "'" + string + "'"; - } - - var indent = state.indent * Math.max(1, level); // no 0-indent scalars - // As indentation gets deeper, let the width decrease monotonically - // to the lower bound min(state.lineWidth, 40). - // Note that this implies - // state.lineWidth ≀ 40 + state.indent: width is fixed at the lower bound. - // state.lineWidth > 40 + state.indent: width decreases until the lower bound. - // This behaves better than a constant minimum width which disallows narrower options, - // or an indent threshold which causes the width to suddenly increase. - var lineWidth = state.lineWidth === -1 - ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); - - // Without knowing if keys are implicit/explicit, assume implicit for safety. - var singleLineOnly = iskey - // No block styles in flow mode. - || (state.flowLevel > -1 && level >= state.flowLevel); - function testAmbiguity(string) { - return testImplicitResolving(state, string); - } - - switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) { - case STYLE_PLAIN: - return string; - case STYLE_SINGLE: - return "'" + string.replace(/'/g, "''") + "'"; - case STYLE_LITERAL: - return '|' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(string, indent)); - case STYLE_FOLDED: - return '>' + blockHeader(string, state.indent) - + dropEndingNewline(indentString(foldString(string, lineWidth), indent)); - case STYLE_DOUBLE: - return '"' + escapeString(string, lineWidth) + '"'; - default: - throw new YAMLException('impossible error: invalid scalar style'); - } - }()); -} - -// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. -function blockHeader(string, indentPerLevel) { - var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; - - // note the special case: the string '\n' counts as a "trailing" empty line. - var clip = string[string.length - 1] === '\n'; - var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); - var chomp = keep ? '+' : (clip ? '' : '-'); - - return indentIndicator + chomp + '\n'; -} - -// (See the note for writeScalar.) -function dropEndingNewline(string) { - return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; -} - -// Note: a long line without a suitable break point will exceed the width limit. -// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. -function foldString(string, width) { - // In folded style, $k$ consecutive newlines output as $k+1$ newlinesβ€” - // unless they're before or after a more-indented line, or at the very - // beginning or end, in which case $k$ maps to $k$. - // Therefore, parse each chunk as newline(s) followed by a content line. - var lineRe = /(\n+)([^\n]*)/g; - - // first line (possibly an empty line) - var result = (function () { - var nextLF = string.indexOf('\n'); - nextLF = nextLF !== -1 ? nextLF : string.length; - lineRe.lastIndex = nextLF; - return foldLine(string.slice(0, nextLF), width); - }()); - // If we haven't reached the first content line yet, don't add an extra \n. - var prevMoreIndented = string[0] === '\n' || string[0] === ' '; - var moreIndented; - - // rest of the lines - var match; - while ((match = lineRe.exec(string))) { - var prefix = match[1], line = match[2]; - moreIndented = (line[0] === ' '); - result += prefix - + (!prevMoreIndented && !moreIndented && line !== '' - ? '\n' : '') - + foldLine(line, width); - prevMoreIndented = moreIndented; - } - - return result; -} - -// Greedy line breaking. -// Picks the longest line under the limit each time, -// otherwise settles for the shortest line over the limit. -// NB. More-indented lines *cannot* be folded, as that would add an extra \n. -function foldLine(line, width) { - if (line === '' || line[0] === ' ') return line; - - // Since a more-indented line adds a \n, breaks can't be followed by a space. - var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. - var match; - // start is an inclusive index. end, curr, and next are exclusive. - var start = 0, end, curr = 0, next = 0; - var result = ''; - - // Invariants: 0 <= start <= length-1. - // 0 <= curr <= next <= max(0, length-2). curr - start <= width. - // Inside the loop: - // A match implies length >= 2, so curr and next are <= length-2. - while ((match = breakRe.exec(line))) { - next = match.index; - // maintain invariant: curr - start <= width - if (next - start > width) { - end = (curr > start) ? curr : next; // derive end <= length-2 - result += '\n' + line.slice(start, end); - // skip the space that was output as \n - start = end + 1; // derive start <= length-1 - } - curr = next; - } - - // By the invariants, start <= length-1, so there is something left over. - // It is either the whole string or a part starting from non-whitespace. - result += '\n'; - // Insert a break if the remainder is too long and there is a break available. - if (line.length - start > width && curr > start) { - result += line.slice(start, curr) + '\n' + line.slice(curr + 1); - } else { - result += line.slice(start); - } - - return result.slice(1); // drop extra \n joiner -} - -// Escapes a double-quoted string. -function escapeString(string) { - var result = ''; - var char, nextChar; - var escapeSeq; - - for (var i = 0; i < string.length; i++) { - char = string.charCodeAt(i); - // Check for surrogate pairs (reference Unicode 3.0 section "3.7 Surrogates"). - if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) { - nextChar = string.charCodeAt(i + 1); - if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) { - // Combine the surrogate pair and store it escaped. - result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000); - // Advance index one extra since we already used that char here. - i++; continue; - } - } - escapeSeq = ESCAPE_SEQUENCES[char]; - result += !escapeSeq && isPrintable(char) - ? string[i] - : escapeSeq || encodeHex(char); - } - - return result; -} - -function writeFlowSequence(state, level, object) { - var _result = '', - _tag = state.tag, - index, - length; - - for (index = 0, length = object.length; index < length; index += 1) { - // Write only valid elements. - if (writeNode(state, level, object[index], false, false)) { - if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : ''); - _result += state.dump; - } - } - - state.tag = _tag; - state.dump = '[' + _result + ']'; -} - -function writeBlockSequence(state, level, object, compact) { - var _result = '', - _tag = state.tag, - index, - length; - - for (index = 0, length = object.length; index < length; index += 1) { - // Write only valid elements. - if (writeNode(state, level + 1, object[index], true, true)) { - if (!compact || index !== 0) { - _result += generateNextLine(state, level); - } - - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - _result += '-'; - } else { - _result += '- '; - } - - _result += state.dump; - } - } - - state.tag = _tag; - state.dump = _result || '[]'; // Empty sequence if no valid values. -} - -function writeFlowMapping(state, level, object) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - pairBuffer; - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - - pairBuffer = ''; - if (index !== 0) pairBuffer += ', '; - - if (state.condenseFlow) pairBuffer += '"'; - - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - - if (!writeNode(state, level, objectKey, false, false)) { - continue; // Skip this pair because of invalid key; - } - - if (state.dump.length > 1024) pairBuffer += '? '; - - pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); - - if (!writeNode(state, level, objectValue, false, false)) { - continue; // Skip this pair because of invalid value. - } - - pairBuffer += state.dump; - - // Both key and value are valid. - _result += pairBuffer; - } - - state.tag = _tag; - state.dump = '{' + _result + '}'; -} - -function writeBlockMapping(state, level, object, compact) { - var _result = '', - _tag = state.tag, - objectKeyList = Object.keys(object), - index, - length, - objectKey, - objectValue, - explicitPair, - pairBuffer; - - // Allow sorting keys so that the output file is deterministic - if (state.sortKeys === true) { - // Default sorting - objectKeyList.sort(); - } else if (typeof state.sortKeys === 'function') { - // Custom sort function - objectKeyList.sort(state.sortKeys); - } else if (state.sortKeys) { - // Something is wrong - throw new YAMLException('sortKeys must be a boolean or a function'); - } - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ''; - - if (!compact || index !== 0) { - pairBuffer += generateNextLine(state, level); - } - - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - - if (!writeNode(state, level + 1, objectKey, true, true, true)) { - continue; // Skip this pair because of invalid key. - } - - explicitPair = (state.tag !== null && state.tag !== '?') || - (state.dump && state.dump.length > 1024); - - if (explicitPair) { - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += '?'; - } else { - pairBuffer += '? '; - } - } - - pairBuffer += state.dump; - - if (explicitPair) { - pairBuffer += generateNextLine(state, level); - } - - if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { - continue; // Skip this pair because of invalid value. - } - - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += ':'; - } else { - pairBuffer += ': '; - } - - pairBuffer += state.dump; - - // Both key and value are valid. - _result += pairBuffer; - } - - state.tag = _tag; - state.dump = _result || '{}'; // Empty mapping if no valid pairs. -} - -function detectType(state, object, explicit) { - var _result, typeList, index, length, type, style; - - typeList = explicit ? state.explicitTypes : state.implicitTypes; - - for (index = 0, length = typeList.length; index < length; index += 1) { - type = typeList[index]; - - if ((type.instanceOf || type.predicate) && - (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && - (!type.predicate || type.predicate(object))) { - - state.tag = explicit ? type.tag : '?'; - - if (type.represent) { - style = state.styleMap[type.tag] || type.defaultStyle; - - if (_toString.call(type.represent) === '[object Function]') { - _result = type.represent(object, style); - } else if (_hasOwnProperty.call(type.represent, style)) { - _result = type.represent[style](object, style); - } else { - throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); - } - - state.dump = _result; - } - - return true; - } - } - - return false; -} - -// Serializes `object` and writes it to global `result`. -// Returns true on success, or false on invalid object. -// -function writeNode(state, level, object, block, compact, iskey) { - state.tag = null; - state.dump = object; - - if (!detectType(state, object, false)) { - detectType(state, object, true); - } - - var type = _toString.call(state.dump); - - if (block) { - block = (state.flowLevel < 0 || state.flowLevel > level); - } - - var objectOrArray = type === '[object Object]' || type === '[object Array]', - duplicateIndex, - duplicate; - - if (objectOrArray) { - duplicateIndex = state.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; - } - - if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { - compact = false; - } - - if (duplicate && state.usedDuplicates[duplicateIndex]) { - state.dump = '*ref_' + duplicateIndex; - } else { - if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { - state.usedDuplicates[duplicateIndex] = true; - } - if (type === '[object Object]') { - if (block && (Object.keys(state.dump).length !== 0)) { - writeBlockMapping(state, level, state.dump, compact); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowMapping(state, level, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object Array]') { - var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level; - if (block && (state.dump.length !== 0)) { - writeBlockSequence(state, arrayLevel, state.dump, compact); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + state.dump; - } - } else { - writeFlowSequence(state, arrayLevel, state.dump); - if (duplicate) { - state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; - } - } - } else if (type === '[object String]') { - if (state.tag !== '?') { - writeScalar(state, state.dump, level, iskey); - } - } else { - if (state.skipInvalid) return false; - throw new YAMLException('unacceptable kind of an object to dump ' + type); - } - - if (state.tag !== null && state.tag !== '?') { - state.dump = '!<' + state.tag + '> ' + state.dump; - } - } - - return true; -} - -function getDuplicateReferences(object, state) { - var objects = [], - duplicatesIndexes = [], - index, - length; - - inspectNode(object, objects, duplicatesIndexes); - - for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { - state.duplicates.push(objects[duplicatesIndexes[index]]); - } - state.usedDuplicates = new Array(length); -} - -function inspectNode(object, objects, duplicatesIndexes) { - var objectKeyList, - index, - length; - - if (object !== null && typeof object === 'object') { - index = objects.indexOf(object); - if (index !== -1) { - if (duplicatesIndexes.indexOf(index) === -1) { - duplicatesIndexes.push(index); - } - } else { - objects.push(object); - - if (Array.isArray(object)) { - for (index = 0, length = object.length; index < length; index += 1) { - inspectNode(object[index], objects, duplicatesIndexes); - } - } else { - objectKeyList = Object.keys(object); - - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); - } - } - } - } -} - -function dump(input, options) { - options = options || {}; - - var state = new State(options); - - if (!state.noRefs) getDuplicateReferences(input, state); - - if (writeNode(state, 0, input, true, true)) return state.dump + '\n'; - - return ''; -} - -function safeDump(input, options) { - return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); -} - -module.exports.dump = dump; -module.exports.safeDump = safeDump; diff --git a/node_modules/js-yaml/lib/js-yaml/exception.js b/node_modules/js-yaml/lib/js-yaml/exception.js deleted file mode 100644 index b744a1e..0000000 --- a/node_modules/js-yaml/lib/js-yaml/exception.js +++ /dev/null @@ -1,43 +0,0 @@ -// YAML error class. http://stackoverflow.com/questions/8458984 -// -'use strict'; - -function YAMLException(reason, mark) { - // Super constructor - Error.call(this); - - this.name = 'YAMLException'; - this.reason = reason; - this.mark = mark; - this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : ''); - - // Include stack trace in error object - if (Error.captureStackTrace) { - // Chrome and NodeJS - Error.captureStackTrace(this, this.constructor); - } else { - // FF, IE 10+ and Safari 6+. Fallback for others - this.stack = (new Error()).stack || ''; - } -} - - -// Inherit from Error -YAMLException.prototype = Object.create(Error.prototype); -YAMLException.prototype.constructor = YAMLException; - - -YAMLException.prototype.toString = function toString(compact) { - var result = this.name + ': '; - - result += this.reason || '(unknown reason)'; - - if (!compact && this.mark) { - result += ' ' + this.mark.toString(); - } - - return result; -}; - - -module.exports = YAMLException; diff --git a/node_modules/js-yaml/lib/js-yaml/loader.js b/node_modules/js-yaml/lib/js-yaml/loader.js deleted file mode 100644 index d7484a5..0000000 --- a/node_modules/js-yaml/lib/js-yaml/loader.js +++ /dev/null @@ -1,1644 +0,0 @@ -'use strict'; - -/*eslint-disable max-len,no-use-before-define*/ - -var common = require('./common'); -var YAMLException = require('./exception'); -var Mark = require('./mark'); -var DEFAULT_SAFE_SCHEMA = require('./schema/default_safe'); -var DEFAULT_FULL_SCHEMA = require('./schema/default_full'); - - -var _hasOwnProperty = Object.prototype.hasOwnProperty; - - -var CONTEXT_FLOW_IN = 1; -var CONTEXT_FLOW_OUT = 2; -var CONTEXT_BLOCK_IN = 3; -var CONTEXT_BLOCK_OUT = 4; - - -var CHOMPING_CLIP = 1; -var CHOMPING_STRIP = 2; -var CHOMPING_KEEP = 3; - - -var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; - - -function _class(obj) { return Object.prototype.toString.call(obj); } - -function is_EOL(c) { - return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); -} - -function is_WHITE_SPACE(c) { - return (c === 0x09/* Tab */) || (c === 0x20/* Space */); -} - -function is_WS_OR_EOL(c) { - return (c === 0x09/* Tab */) || - (c === 0x20/* Space */) || - (c === 0x0A/* LF */) || - (c === 0x0D/* CR */); -} - -function is_FLOW_INDICATOR(c) { - return c === 0x2C/* , */ || - c === 0x5B/* [ */ || - c === 0x5D/* ] */ || - c === 0x7B/* { */ || - c === 0x7D/* } */; -} - -function fromHexCode(c) { - var lc; - - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { - return c - 0x30; - } - - /*eslint-disable no-bitwise*/ - lc = c | 0x20; - - if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { - return lc - 0x61 + 10; - } - - return -1; -} - -function escapedHexLen(c) { - if (c === 0x78/* x */) { return 2; } - if (c === 0x75/* u */) { return 4; } - if (c === 0x55/* U */) { return 8; } - return 0; -} - -function fromDecimalCode(c) { - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { - return c - 0x30; - } - - return -1; -} - -function simpleEscapeSequence(c) { - /* eslint-disable indent */ - return (c === 0x30/* 0 */) ? '\x00' : - (c === 0x61/* a */) ? '\x07' : - (c === 0x62/* b */) ? '\x08' : - (c === 0x74/* t */) ? '\x09' : - (c === 0x09/* Tab */) ? '\x09' : - (c === 0x6E/* n */) ? '\x0A' : - (c === 0x76/* v */) ? '\x0B' : - (c === 0x66/* f */) ? '\x0C' : - (c === 0x72/* r */) ? '\x0D' : - (c === 0x65/* e */) ? '\x1B' : - (c === 0x20/* Space */) ? ' ' : - (c === 0x22/* " */) ? '\x22' : - (c === 0x2F/* / */) ? '/' : - (c === 0x5C/* \ */) ? '\x5C' : - (c === 0x4E/* N */) ? '\x85' : - (c === 0x5F/* _ */) ? '\xA0' : - (c === 0x4C/* L */) ? '\u2028' : - (c === 0x50/* P */) ? '\u2029' : ''; -} - -function charFromCodepoint(c) { - if (c <= 0xFFFF) { - return String.fromCharCode(c); - } - // Encode UTF-16 surrogate pair - // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF - return String.fromCharCode( - ((c - 0x010000) >> 10) + 0xD800, - ((c - 0x010000) & 0x03FF) + 0xDC00 - ); -} - -var simpleEscapeCheck = new Array(256); // integer, for fast access -var simpleEscapeMap = new Array(256); -for (var i = 0; i < 256; i++) { - simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; - simpleEscapeMap[i] = simpleEscapeSequence(i); -} - - -function State(input, options) { - this.input = input; - - this.filename = options['filename'] || null; - this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; - this.onWarning = options['onWarning'] || null; - this.legacy = options['legacy'] || false; - this.json = options['json'] || false; - this.listener = options['listener'] || null; - - this.implicitTypes = this.schema.compiledImplicit; - this.typeMap = this.schema.compiledTypeMap; - - this.length = input.length; - this.position = 0; - this.line = 0; - this.lineStart = 0; - this.lineIndent = 0; - - this.documents = []; - - /* - this.version; - this.checkLineBreaks; - this.tagMap; - this.anchorMap; - this.tag; - this.anchor; - this.kind; - this.result;*/ - -} - - -function generateError(state, message) { - return new YAMLException( - message, - new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart))); -} - -function throwError(state, message) { - throw generateError(state, message); -} - -function throwWarning(state, message) { - if (state.onWarning) { - state.onWarning.call(null, generateError(state, message)); - } -} - - -var directiveHandlers = { - - YAML: function handleYamlDirective(state, name, args) { - - var match, major, minor; - - if (state.version !== null) { - throwError(state, 'duplication of %YAML directive'); - } - - if (args.length !== 1) { - throwError(state, 'YAML directive accepts exactly one argument'); - } - - match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - - if (match === null) { - throwError(state, 'ill-formed argument of the YAML directive'); - } - - major = parseInt(match[1], 10); - minor = parseInt(match[2], 10); - - if (major !== 1) { - throwError(state, 'unacceptable YAML version of the document'); - } - - state.version = args[0]; - state.checkLineBreaks = (minor < 2); - - if (minor !== 1 && minor !== 2) { - throwWarning(state, 'unsupported YAML version of the document'); - } - }, - - TAG: function handleTagDirective(state, name, args) { - - var handle, prefix; - - if (args.length !== 2) { - throwError(state, 'TAG directive accepts exactly two arguments'); - } - - handle = args[0]; - prefix = args[1]; - - if (!PATTERN_TAG_HANDLE.test(handle)) { - throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); - } - - if (_hasOwnProperty.call(state.tagMap, handle)) { - throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); - } - - if (!PATTERN_TAG_URI.test(prefix)) { - throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); - } - - state.tagMap[handle] = prefix; - } -}; - - -function captureSegment(state, start, end, checkJson) { - var _position, _length, _character, _result; - - if (start < end) { - _result = state.input.slice(start, end); - - if (checkJson) { - for (_position = 0, _length = _result.length; _position < _length; _position += 1) { - _character = _result.charCodeAt(_position); - if (!(_character === 0x09 || - (0x20 <= _character && _character <= 0x10FFFF))) { - throwError(state, 'expected valid JSON character'); - } - } - } else if (PATTERN_NON_PRINTABLE.test(_result)) { - throwError(state, 'the stream contains non-printable characters'); - } - - state.result += _result; - } -} - -function mergeMappings(state, destination, source, overridableKeys) { - var sourceKeys, key, index, quantity; - - if (!common.isObject(source)) { - throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); - } - - sourceKeys = Object.keys(source); - - for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { - key = sourceKeys[index]; - - if (!_hasOwnProperty.call(destination, key)) { - destination[key] = source[key]; - overridableKeys[key] = true; - } - } -} - -function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) { - var index, quantity; - - // The output is a plain object here, so keys can only be strings. - // We need to convert keyNode to a string, but doing so can hang the process - // (deeply nested arrays that explode exponentially using aliases). - if (Array.isArray(keyNode)) { - keyNode = Array.prototype.slice.call(keyNode); - - for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { - if (Array.isArray(keyNode[index])) { - throwError(state, 'nested arrays are not supported inside keys'); - } - - if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { - keyNode[index] = '[object Object]'; - } - } - } - - // Avoid code execution in load() via toString property - // (still use its own toString for arrays, timestamps, - // and whatever user schema extensions happen to have @@toStringTag) - if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { - keyNode = '[object Object]'; - } - - - keyNode = String(keyNode); - - if (_result === null) { - _result = {}; - } - - if (keyTag === 'tag:yaml.org,2002:merge') { - if (Array.isArray(valueNode)) { - for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { - mergeMappings(state, _result, valueNode[index], overridableKeys); - } - } else { - mergeMappings(state, _result, valueNode, overridableKeys); - } - } else { - if (!state.json && - !_hasOwnProperty.call(overridableKeys, keyNode) && - _hasOwnProperty.call(_result, keyNode)) { - state.line = startLine || state.line; - state.position = startPos || state.position; - throwError(state, 'duplicated mapping key'); - } - _result[keyNode] = valueNode; - delete overridableKeys[keyNode]; - } - - return _result; -} - -function readLineBreak(state) { - var ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x0A/* LF */) { - state.position++; - } else if (ch === 0x0D/* CR */) { - state.position++; - if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { - state.position++; - } - } else { - throwError(state, 'a line break is expected'); - } - - state.line += 1; - state.lineStart = state.position; -} - -function skipSeparationSpace(state, allowComments, checkIndent) { - var lineBreaks = 0, - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (allowComments && ch === 0x23/* # */) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); - } - - if (is_EOL(ch)) { - readLineBreak(state); - - ch = state.input.charCodeAt(state.position); - lineBreaks++; - state.lineIndent = 0; - - while (ch === 0x20/* Space */) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - } else { - break; - } - } - - if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { - throwWarning(state, 'deficient indentation'); - } - - return lineBreaks; -} - -function testDocumentSeparator(state) { - var _position = state.position, - ch; - - ch = state.input.charCodeAt(_position); - - // Condition state.position === state.lineStart is tested - // in parent on each call, for efficiency. No needs to test here again. - if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && - ch === state.input.charCodeAt(_position + 1) && - ch === state.input.charCodeAt(_position + 2)) { - - _position += 3; - - ch = state.input.charCodeAt(_position); - - if (ch === 0 || is_WS_OR_EOL(ch)) { - return true; - } - } - - return false; -} - -function writeFoldedLines(state, count) { - if (count === 1) { - state.result += ' '; - } else if (count > 1) { - state.result += common.repeat('\n', count - 1); - } -} - - -function readPlainScalar(state, nodeIndent, withinFlowCollection) { - var preceding, - following, - captureStart, - captureEnd, - hasPendingContent, - _line, - _lineStart, - _lineIndent, - _kind = state.kind, - _result = state.result, - ch; - - ch = state.input.charCodeAt(state.position); - - if (is_WS_OR_EOL(ch) || - is_FLOW_INDICATOR(ch) || - ch === 0x23/* # */ || - ch === 0x26/* & */ || - ch === 0x2A/* * */ || - ch === 0x21/* ! */ || - ch === 0x7C/* | */ || - ch === 0x3E/* > */ || - ch === 0x27/* ' */ || - ch === 0x22/* " */ || - ch === 0x25/* % */ || - ch === 0x40/* @ */ || - ch === 0x60/* ` */) { - return false; - } - - if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { - following = state.input.charCodeAt(state.position + 1); - - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { - return false; - } - } - - state.kind = 'scalar'; - state.result = ''; - captureStart = captureEnd = state.position; - hasPendingContent = false; - - while (ch !== 0) { - if (ch === 0x3A/* : */) { - following = state.input.charCodeAt(state.position + 1); - - if (is_WS_OR_EOL(following) || - withinFlowCollection && is_FLOW_INDICATOR(following)) { - break; - } - - } else if (ch === 0x23/* # */) { - preceding = state.input.charCodeAt(state.position - 1); - - if (is_WS_OR_EOL(preceding)) { - break; - } - - } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || - withinFlowCollection && is_FLOW_INDICATOR(ch)) { - break; - - } else if (is_EOL(ch)) { - _line = state.line; - _lineStart = state.lineStart; - _lineIndent = state.lineIndent; - skipSeparationSpace(state, false, -1); - - if (state.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = state.input.charCodeAt(state.position); - continue; - } else { - state.position = captureEnd; - state.line = _line; - state.lineStart = _lineStart; - state.lineIndent = _lineIndent; - break; - } - } - - if (hasPendingContent) { - captureSegment(state, captureStart, captureEnd, false); - writeFoldedLines(state, state.line - _line); - captureStart = captureEnd = state.position; - hasPendingContent = false; - } - - if (!is_WHITE_SPACE(ch)) { - captureEnd = state.position + 1; - } - - ch = state.input.charCodeAt(++state.position); - } - - captureSegment(state, captureStart, captureEnd, false); - - if (state.result) { - return true; - } - - state.kind = _kind; - state.result = _result; - return false; -} - -function readSingleQuotedScalar(state, nodeIndent) { - var ch, - captureStart, captureEnd; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x27/* ' */) { - return false; - } - - state.kind = 'scalar'; - state.result = ''; - state.position++; - captureStart = captureEnd = state.position; - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x27/* ' */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x27/* ' */) { - captureStart = state.position; - state.position++; - captureEnd = state.position; - } else { - return true; - } - - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a single quoted scalar'); - - } else { - state.position++; - captureEnd = state.position; - } - } - - throwError(state, 'unexpected end of the stream within a single quoted scalar'); -} - -function readDoubleQuotedScalar(state, nodeIndent) { - var captureStart, - captureEnd, - hexLength, - hexResult, - tmp, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x22/* " */) { - return false; - } - - state.kind = 'scalar'; - state.result = ''; - state.position++; - captureStart = captureEnd = state.position; - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x22/* " */) { - captureSegment(state, captureStart, state.position, true); - state.position++; - return true; - - } else if (ch === 0x5C/* \ */) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - - if (is_EOL(ch)) { - skipSeparationSpace(state, false, nodeIndent); - - // TODO: rework to inline fn with no type cast? - } else if (ch < 256 && simpleEscapeCheck[ch]) { - state.result += simpleEscapeMap[ch]; - state.position++; - - } else if ((tmp = escapedHexLen(ch)) > 0) { - hexLength = tmp; - hexResult = 0; - - for (; hexLength > 0; hexLength--) { - ch = state.input.charCodeAt(++state.position); - - if ((tmp = fromHexCode(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; - - } else { - throwError(state, 'expected hexadecimal character'); - } - } - - state.result += charFromCodepoint(hexResult); - - state.position++; - - } else { - throwError(state, 'unknown escape sequence'); - } - - captureStart = captureEnd = state.position; - - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, 'unexpected end of the document within a double quoted scalar'); - - } else { - state.position++; - captureEnd = state.position; - } - } - - throwError(state, 'unexpected end of the stream within a double quoted scalar'); -} - -function readFlowCollection(state, nodeIndent) { - var readNext = true, - _line, - _tag = state.tag, - _result, - _anchor = state.anchor, - following, - terminator, - isPair, - isExplicitPair, - isMapping, - overridableKeys = {}, - keyNode, - keyTag, - valueNode, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x5B/* [ */) { - terminator = 0x5D;/* ] */ - isMapping = false; - _result = []; - } else if (ch === 0x7B/* { */) { - terminator = 0x7D;/* } */ - isMapping = true; - _result = {}; - } else { - return false; - } - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - - ch = state.input.charCodeAt(++state.position); - - while (ch !== 0) { - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if (ch === terminator) { - state.position++; - state.tag = _tag; - state.anchor = _anchor; - state.kind = isMapping ? 'mapping' : 'sequence'; - state.result = _result; - return true; - } else if (!readNext) { - throwError(state, 'missed comma between flow collection entries'); - } - - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; - - if (ch === 0x3F/* ? */) { - following = state.input.charCodeAt(state.position + 1); - - if (is_WS_OR_EOL(following)) { - isPair = isExplicitPair = true; - state.position++; - skipSeparationSpace(state, true, nodeIndent); - } - } - - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = state.tag; - keyNode = state.result; - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { - isPair = true; - ch = state.input.charCodeAt(++state.position); - skipSeparationSpace(state, true, nodeIndent); - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = state.result; - } - - if (isMapping) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode); - } else if (isPair) { - _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode)); - } else { - _result.push(keyNode); - } - - skipSeparationSpace(state, true, nodeIndent); - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x2C/* , */) { - readNext = true; - ch = state.input.charCodeAt(++state.position); - } else { - readNext = false; - } - } - - throwError(state, 'unexpected end of the stream within a flow collection'); -} - -function readBlockScalar(state, nodeIndent) { - var captureStart, - folding, - chomping = CHOMPING_CLIP, - didReadContent = false, - detectedIndent = false, - textIndent = nodeIndent, - emptyLines = 0, - atMoreIndented = false, - tmp, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch === 0x7C/* | */) { - folding = false; - } else if (ch === 0x3E/* > */) { - folding = true; - } else { - return false; - } - - state.kind = 'scalar'; - state.result = ''; - - while (ch !== 0) { - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { - if (CHOMPING_CLIP === chomping) { - chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - throwError(state, 'repeat of a chomping mode identifier'); - } - - } else if ((tmp = fromDecimalCode(ch)) >= 0) { - if (tmp === 0) { - throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - throwError(state, 'repeat of an indentation width identifier'); - } - - } else { - break; - } - } - - if (is_WHITE_SPACE(ch)) { - do { ch = state.input.charCodeAt(++state.position); } - while (is_WHITE_SPACE(ch)); - - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (!is_EOL(ch) && (ch !== 0)); - } - } - - while (ch !== 0) { - readLineBreak(state); - state.lineIndent = 0; - - ch = state.input.charCodeAt(state.position); - - while ((!detectedIndent || state.lineIndent < textIndent) && - (ch === 0x20/* Space */)) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - - if (!detectedIndent && state.lineIndent > textIndent) { - textIndent = state.lineIndent; - } - - if (is_EOL(ch)) { - emptyLines++; - continue; - } - - // End of the scalar. - if (state.lineIndent < textIndent) { - - // Perform the chomping. - if (chomping === CHOMPING_KEEP) { - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { // i.e. only if the scalar is not empty. - state.result += '\n'; - } - } - - // Break this `while` cycle and go to the funciton's epilogue. - break; - } - - // Folded style: use fancy rules to handle line breaks. - if (folding) { - - // Lines starting with white space characters (more-indented lines) are not folded. - if (is_WHITE_SPACE(ch)) { - atMoreIndented = true; - // except for the first content line (cf. Example 8.1) - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - - // End of more-indented block. - } else if (atMoreIndented) { - atMoreIndented = false; - state.result += common.repeat('\n', emptyLines + 1); - - // Just one line break - perceive as the same line. - } else if (emptyLines === 0) { - if (didReadContent) { // i.e. only if we have already read some scalar content. - state.result += ' '; - } - - // Several line breaks - perceive as different lines. - } else { - state.result += common.repeat('\n', emptyLines); - } - - // Literal style: just add exact number of line breaks between content lines. - } else { - // Keep all line breaks except the header line break. - state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - } - - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state.position; - - while (!is_EOL(ch) && (ch !== 0)) { - ch = state.input.charCodeAt(++state.position); - } - - captureSegment(state, captureStart, state.position, false); - } - - return true; -} - -function readBlockSequence(state, nodeIndent) { - var _line, - _tag = state.tag, - _anchor = state.anchor, - _result = [], - following, - detected = false, - ch; - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - - if (ch !== 0x2D/* - */) { - break; - } - - following = state.input.charCodeAt(state.position + 1); - - if (!is_WS_OR_EOL(following)) { - break; - } - - detected = true; - state.position++; - - if (skipSeparationSpace(state, true, -1)) { - if (state.lineIndent <= nodeIndent) { - _result.push(null); - ch = state.input.charCodeAt(state.position); - continue; - } - } - - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); - _result.push(state.result); - skipSeparationSpace(state, true, -1); - - ch = state.input.charCodeAt(state.position); - - if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { - throwError(state, 'bad indentation of a sequence entry'); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'sequence'; - state.result = _result; - return true; - } - return false; -} - -function readBlockMapping(state, nodeIndent, flowIndent) { - var following, - allowCompact, - _line, - _pos, - _tag = state.tag, - _anchor = state.anchor, - _result = {}, - overridableKeys = {}, - keyTag = null, - keyNode = null, - valueNode = null, - atExplicitKey = false, - detected = false, - ch; - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - - ch = state.input.charCodeAt(state.position); - - while (ch !== 0) { - following = state.input.charCodeAt(state.position + 1); - _line = state.line; // Save the current line. - _pos = state.position; - - // - // Explicit notation case. There are two separate blocks: - // first for the key (denoted by "?") and second for the value (denoted by ":") - // - if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { - - if (ch === 0x3F/* ? */) { - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - keyTag = keyNode = valueNode = null; - } - - detected = true; - atExplicitKey = true; - allowCompact = true; - - } else if (atExplicitKey) { - // i.e. 0x3A/* : */ === character after the explicit key. - atExplicitKey = false; - allowCompact = true; - - } else { - throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); - } - - state.position += 1; - ch = following; - - // - // Implicit notation case. Flow-style node as the key first, then ":", and the value. - // - } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { - - if (state.line === _line) { - ch = state.input.charCodeAt(state.position); - - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (ch === 0x3A/* : */) { - ch = state.input.charCodeAt(++state.position); - - if (!is_WS_OR_EOL(ch)) { - throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); - } - - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - keyTag = keyNode = valueNode = null; - } - - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state.tag; - keyNode = state.result; - - } else if (detected) { - throwError(state, 'can not read an implicit mapping pair; a colon is missed'); - - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. - } - - } else if (detected) { - throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); - - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; // Keep the result of `composeNode`. - } - - } else { - break; // Reading is done. Go to the epilogue. - } - - // - // Common reading code for both explicit and implicit notations. - // - if (state.line === _line || state.lineIndent > nodeIndent) { - if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { - if (atExplicitKey) { - keyNode = state.result; - } else { - valueNode = state.result; - } - } - - if (!atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos); - keyTag = keyNode = valueNode = null; - } - - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - } - - if (state.lineIndent > nodeIndent && (ch !== 0)) { - throwError(state, 'bad indentation of a mapping entry'); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - - // - // Epilogue. - // - - // Special case: last mapping's node contains only the key in explicit notation. - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null); - } - - // Expose the resulting mapping. - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = 'mapping'; - state.result = _result; - } - - return detected; -} - -function readTagProperty(state) { - var _position, - isVerbatim = false, - isNamed = false, - tagHandle, - tagName, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x21/* ! */) return false; - - if (state.tag !== null) { - throwError(state, 'duplication of a tag property'); - } - - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x3C/* < */) { - isVerbatim = true; - ch = state.input.charCodeAt(++state.position); - - } else if (ch === 0x21/* ! */) { - isNamed = true; - tagHandle = '!!'; - ch = state.input.charCodeAt(++state.position); - - } else { - tagHandle = '!'; - } - - _position = state.position; - - if (isVerbatim) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && ch !== 0x3E/* > */); - - if (state.position < state.length) { - tagName = state.input.slice(_position, state.position); - ch = state.input.charCodeAt(++state.position); - } else { - throwError(state, 'unexpected end of the stream within a verbatim tag'); - } - } else { - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - - if (ch === 0x21/* ! */) { - if (!isNamed) { - tagHandle = state.input.slice(_position - 1, state.position + 1); - - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - throwError(state, 'named tag handle cannot contain such characters'); - } - - isNamed = true; - _position = state.position + 1; - } else { - throwError(state, 'tag suffix cannot contain exclamation marks'); - } - } - - ch = state.input.charCodeAt(++state.position); - } - - tagName = state.input.slice(_position, state.position); - - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - throwError(state, 'tag suffix cannot contain flow indicator characters'); - } - } - - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - throwError(state, 'tag name cannot contain such characters: ' + tagName); - } - - if (isVerbatim) { - state.tag = tagName; - - } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { - state.tag = state.tagMap[tagHandle] + tagName; - - } else if (tagHandle === '!') { - state.tag = '!' + tagName; - - } else if (tagHandle === '!!') { - state.tag = 'tag:yaml.org,2002:' + tagName; - - } else { - throwError(state, 'undeclared tag handle "' + tagHandle + '"'); - } - - return true; -} - -function readAnchorProperty(state) { - var _position, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x26/* & */) return false; - - if (state.anchor !== null) { - throwError(state, 'duplication of an anchor property'); - } - - ch = state.input.charCodeAt(++state.position); - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (state.position === _position) { - throwError(state, 'name of an anchor node must contain at least one character'); - } - - state.anchor = state.input.slice(_position, state.position); - return true; -} - -function readAlias(state) { - var _position, alias, - ch; - - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x2A/* * */) return false; - - ch = state.input.charCodeAt(++state.position); - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (state.position === _position) { - throwError(state, 'name of an alias node must contain at least one character'); - } - - alias = state.input.slice(_position, state.position); - - if (!_hasOwnProperty.call(state.anchorMap, alias)) { - throwError(state, 'unidentified alias "' + alias + '"'); - } - - state.result = state.anchorMap[alias]; - skipSeparationSpace(state, true, -1); - return true; -} - -function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, - allowBlockScalars, - allowBlockCollections, - indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } - } - - if (indentStatus === 1) { - while (readTagProperty(state) || readAnchorProperty(state)) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; - - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; - } - } - } - - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } - - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; - } - - blockIndent = state.position - state.lineStart; - - if (indentStatus === 1) { - if (allowBlockCollections && - (readBlockSequence(state, blockIndent) || - readBlockMapping(state, blockIndent, flowIndent)) || - readFlowCollection(state, flowIndent)) { - hasContent = true; - } else { - if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || - readSingleQuotedScalar(state, flowIndent) || - readDoubleQuotedScalar(state, flowIndent)) { - hasContent = true; - - } else if (readAlias(state)) { - hasContent = true; - - if (state.tag !== null || state.anchor !== null) { - throwError(state, 'alias node should not have any properties'); - } - - } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { - hasContent = true; - - if (state.tag === null) { - state.tag = '?'; - } - } - - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } else if (indentStatus === 0) { - // Special case: block sequences are allowed to have same indentation level as the parent. - // http://www.yaml.org/spec/1.2/spec.html#id2799784 - hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); - } - } - - if (state.tag !== null && state.tag !== '!') { - if (state.tag === '?') { - // Implicit resolving is not allowed for non-scalar types, and '?' - // non-specific tag is only automatically assigned to plain scalars. - // - // We only need to check kind conformity in case user explicitly assigns '?' - // tag, for example like this: "! [0]" - // - if (state.result !== null && state.kind !== 'scalar') { - throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); - } - - for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { - type = state.implicitTypes[typeIndex]; - - if (type.resolve(state.result)) { // `state.result` updated in resolver if matched - state.result = type.construct(state.result); - state.tag = type.tag; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - break; - } - } - } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) { - type = state.typeMap[state.kind || 'fallback'][state.tag]; - - if (state.result !== null && type.kind !== state.kind) { - throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); - } - - if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched - throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); - } else { - state.result = type.construct(state.result); - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } else { - throwError(state, 'unknown tag !<' + state.tag + '>'); - } - } - - if (state.listener !== null) { - state.listener('close', state); - } - return state.tag !== null || state.anchor !== null || hasContent; -} - -function readDocument(state) { - var documentStart = state.position, - _position, - directiveName, - directiveArgs, - hasDirectives = false, - ch; - - state.version = null; - state.checkLineBreaks = state.legacy; - state.tagMap = {}; - state.anchorMap = {}; - - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace(state, true, -1); - - ch = state.input.charCodeAt(state.position); - - if (state.lineIndent > 0 || ch !== 0x25/* % */) { - break; - } - - hasDirectives = true; - ch = state.input.charCodeAt(++state.position); - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - directiveName = state.input.slice(_position, state.position); - directiveArgs = []; - - if (directiveName.length < 1) { - throwError(state, 'directive name must not be less than one character in length'); - } - - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - if (ch === 0x23/* # */) { - do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && !is_EOL(ch)); - break; - } - - if (is_EOL(ch)) break; - - _position = state.position; - - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - - directiveArgs.push(state.input.slice(_position, state.position)); - } - - if (ch !== 0) readLineBreak(state); - - if (_hasOwnProperty.call(directiveHandlers, directiveName)) { - directiveHandlers[directiveName](state, directiveName, directiveArgs); - } else { - throwWarning(state, 'unknown document directive "' + directiveName + '"'); - } - } - - skipSeparationSpace(state, true, -1); - - if (state.lineIndent === 0 && - state.input.charCodeAt(state.position) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { - state.position += 3; - skipSeparationSpace(state, true, -1); - - } else if (hasDirectives) { - throwError(state, 'directives end mark is expected'); - } - - composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state, true, -1); - - if (state.checkLineBreaks && - PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { - throwWarning(state, 'non-ASCII line breaks are interpreted as content'); - } - - state.documents.push(state.result); - - if (state.position === state.lineStart && testDocumentSeparator(state)) { - - if (state.input.charCodeAt(state.position) === 0x2E/* . */) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } - return; - } - - if (state.position < (state.length - 1)) { - throwError(state, 'end of the stream or a document separator is expected'); - } else { - return; - } -} - - -function loadDocuments(input, options) { - input = String(input); - options = options || {}; - - if (input.length !== 0) { - - // Add tailing `\n` if not exists - if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && - input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { - input += '\n'; - } - - // Strip BOM - if (input.charCodeAt(0) === 0xFEFF) { - input = input.slice(1); - } - } - - var state = new State(input, options); - - var nullpos = input.indexOf('\0'); - - if (nullpos !== -1) { - state.position = nullpos; - throwError(state, 'null byte is not allowed in input'); - } - - // Use 0 as string terminator. That significantly simplifies bounds check. - state.input += '\0'; - - while (state.input.charCodeAt(state.position) === 0x20/* Space */) { - state.lineIndent += 1; - state.position += 1; - } - - while (state.position < (state.length - 1)) { - readDocument(state); - } - - return state.documents; -} - - -function loadAll(input, iterator, options) { - if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { - options = iterator; - iterator = null; - } - - var documents = loadDocuments(input, options); - - if (typeof iterator !== 'function') { - return documents; - } - - for (var index = 0, length = documents.length; index < length; index += 1) { - iterator(documents[index]); - } -} - - -function load(input, options) { - var documents = loadDocuments(input, options); - - if (documents.length === 0) { - /*eslint-disable no-undefined*/ - return undefined; - } else if (documents.length === 1) { - return documents[0]; - } - throw new YAMLException('expected a single document in the stream, but found more'); -} - - -function safeLoadAll(input, iterator, options) { - if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') { - options = iterator; - iterator = null; - } - - return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); -} - - -function safeLoad(input, options) { - return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); -} - - -module.exports.loadAll = loadAll; -module.exports.load = load; -module.exports.safeLoadAll = safeLoadAll; -module.exports.safeLoad = safeLoad; diff --git a/node_modules/js-yaml/lib/js-yaml/mark.js b/node_modules/js-yaml/lib/js-yaml/mark.js deleted file mode 100644 index 47b265c..0000000 --- a/node_modules/js-yaml/lib/js-yaml/mark.js +++ /dev/null @@ -1,76 +0,0 @@ -'use strict'; - - -var common = require('./common'); - - -function Mark(name, buffer, position, line, column) { - this.name = name; - this.buffer = buffer; - this.position = position; - this.line = line; - this.column = column; -} - - -Mark.prototype.getSnippet = function getSnippet(indent, maxLength) { - var head, start, tail, end, snippet; - - if (!this.buffer) return null; - - indent = indent || 4; - maxLength = maxLength || 75; - - head = ''; - start = this.position; - - while (start > 0 && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) { - start -= 1; - if (this.position - start > (maxLength / 2 - 1)) { - head = ' ... '; - start += 5; - break; - } - } - - tail = ''; - end = this.position; - - while (end < this.buffer.length && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(end)) === -1) { - end += 1; - if (end - this.position > (maxLength / 2 - 1)) { - tail = ' ... '; - end -= 5; - break; - } - } - - snippet = this.buffer.slice(start, end); - - return common.repeat(' ', indent) + head + snippet + tail + '\n' + - common.repeat(' ', indent + this.position - start + head.length) + '^'; -}; - - -Mark.prototype.toString = function toString(compact) { - var snippet, where = ''; - - if (this.name) { - where += 'in "' + this.name + '" '; - } - - where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1); - - if (!compact) { - snippet = this.getSnippet(); - - if (snippet) { - where += ':\n' + snippet; - } - } - - return where; -}; - - -module.exports = Mark; diff --git a/node_modules/js-yaml/lib/js-yaml/schema.js b/node_modules/js-yaml/lib/js-yaml/schema.js deleted file mode 100644 index ca7cf47..0000000 --- a/node_modules/js-yaml/lib/js-yaml/schema.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict'; - -/*eslint-disable max-len*/ - -var common = require('./common'); -var YAMLException = require('./exception'); -var Type = require('./type'); - - -function compileList(schema, name, result) { - var exclude = []; - - schema.include.forEach(function (includedSchema) { - result = compileList(includedSchema, name, result); - }); - - schema[name].forEach(function (currentType) { - result.forEach(function (previousType, previousIndex) { - if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) { - exclude.push(previousIndex); - } - }); - - result.push(currentType); - }); - - return result.filter(function (type, index) { - return exclude.indexOf(index) === -1; - }); -} - - -function compileMap(/* lists... */) { - var result = { - scalar: {}, - sequence: {}, - mapping: {}, - fallback: {} - }, index, length; - - function collectType(type) { - result[type.kind][type.tag] = result['fallback'][type.tag] = type; - } - - for (index = 0, length = arguments.length; index < length; index += 1) { - arguments[index].forEach(collectType); - } - return result; -} - - -function Schema(definition) { - this.include = definition.include || []; - this.implicit = definition.implicit || []; - this.explicit = definition.explicit || []; - - this.implicit.forEach(function (type) { - if (type.loadKind && type.loadKind !== 'scalar') { - throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); - } - }); - - this.compiledImplicit = compileList(this, 'implicit', []); - this.compiledExplicit = compileList(this, 'explicit', []); - this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit); -} - - -Schema.DEFAULT = null; - - -Schema.create = function createSchema() { - var schemas, types; - - switch (arguments.length) { - case 1: - schemas = Schema.DEFAULT; - types = arguments[0]; - break; - - case 2: - schemas = arguments[0]; - types = arguments[1]; - break; - - default: - throw new YAMLException('Wrong number of arguments for Schema.create function'); - } - - schemas = common.toArray(schemas); - types = common.toArray(types); - - if (!schemas.every(function (schema) { return schema instanceof Schema; })) { - throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.'); - } - - if (!types.every(function (type) { return type instanceof Type; })) { - throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); - } - - return new Schema({ - include: schemas, - explicit: types - }); -}; - - -module.exports = Schema; diff --git a/node_modules/js-yaml/lib/js-yaml/schema/core.js b/node_modules/js-yaml/lib/js-yaml/schema/core.js deleted file mode 100644 index 206daab..0000000 --- a/node_modules/js-yaml/lib/js-yaml/schema/core.js +++ /dev/null @@ -1,18 +0,0 @@ -// Standard YAML's Core schema. -// http://www.yaml.org/spec/1.2/spec.html#id2804923 -// -// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. -// So, Core schema has no distinctions from JSON schema is JS-YAML. - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - include: [ - require('./json') - ] -}); diff --git a/node_modules/js-yaml/lib/js-yaml/schema/default_full.js b/node_modules/js-yaml/lib/js-yaml/schema/default_full.js deleted file mode 100644 index a55ef42..0000000 --- a/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +++ /dev/null @@ -1,25 +0,0 @@ -// JS-YAML's default schema for `load` function. -// It is not described in the YAML specification. -// -// This schema is based on JS-YAML's default safe schema and includes -// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function. -// -// Also this schema is used as default base schema at `Schema.create` function. - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = Schema.DEFAULT = new Schema({ - include: [ - require('./default_safe') - ], - explicit: [ - require('../type/js/undefined'), - require('../type/js/regexp'), - require('../type/js/function') - ] -}); diff --git a/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js b/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js deleted file mode 100644 index 11d89bb..0000000 --- a/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +++ /dev/null @@ -1,28 +0,0 @@ -// JS-YAML's default schema for `safeLoad` function. -// It is not described in the YAML specification. -// -// This schema is based on standard YAML's Core schema and includes most of -// extra types described at YAML tag repository. (http://yaml.org/type/) - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - include: [ - require('./core') - ], - implicit: [ - require('../type/timestamp'), - require('../type/merge') - ], - explicit: [ - require('../type/binary'), - require('../type/omap'), - require('../type/pairs'), - require('../type/set') - ] -}); diff --git a/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js b/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js deleted file mode 100644 index b7a33eb..0000000 --- a/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +++ /dev/null @@ -1,17 +0,0 @@ -// Standard YAML's Failsafe schema. -// http://www.yaml.org/spec/1.2/spec.html#id2802346 - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - explicit: [ - require('../type/str'), - require('../type/seq'), - require('../type/map') - ] -}); diff --git a/node_modules/js-yaml/lib/js-yaml/schema/json.js b/node_modules/js-yaml/lib/js-yaml/schema/json.js deleted file mode 100644 index 5be3dbf..0000000 --- a/node_modules/js-yaml/lib/js-yaml/schema/json.js +++ /dev/null @@ -1,25 +0,0 @@ -// Standard YAML's JSON schema. -// http://www.yaml.org/spec/1.2/spec.html#id2803231 -// -// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. -// So, this schema is not such strict as defined in the YAML specification. -// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc. - - -'use strict'; - - -var Schema = require('../schema'); - - -module.exports = new Schema({ - include: [ - require('./failsafe') - ], - implicit: [ - require('../type/null'), - require('../type/bool'), - require('../type/int'), - require('../type/float') - ] -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type.js b/node_modules/js-yaml/lib/js-yaml/type.js deleted file mode 100644 index 90b702a..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var YAMLException = require('./exception'); - -var TYPE_CONSTRUCTOR_OPTIONS = [ - 'kind', - 'resolve', - 'construct', - 'instanceOf', - 'predicate', - 'represent', - 'defaultStyle', - 'styleAliases' -]; - -var YAML_NODE_KINDS = [ - 'scalar', - 'sequence', - 'mapping' -]; - -function compileStyleAliases(map) { - var result = {}; - - if (map !== null) { - Object.keys(map).forEach(function (style) { - map[style].forEach(function (alias) { - result[String(alias)] = style; - }); - }); - } - - return result; -} - -function Type(tag, options) { - options = options || {}; - - Object.keys(options).forEach(function (name) { - if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { - throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); - } - }); - - // TODO: Add tag format check. - this.tag = tag; - this.kind = options['kind'] || null; - this.resolve = options['resolve'] || function () { return true; }; - this.construct = options['construct'] || function (data) { return data; }; - this.instanceOf = options['instanceOf'] || null; - this.predicate = options['predicate'] || null; - this.represent = options['represent'] || null; - this.defaultStyle = options['defaultStyle'] || null; - this.styleAliases = compileStyleAliases(options['styleAliases'] || null); - - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { - throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); - } -} - -module.exports = Type; diff --git a/node_modules/js-yaml/lib/js-yaml/type/binary.js b/node_modules/js-yaml/lib/js-yaml/type/binary.js deleted file mode 100644 index 10b1875..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/binary.js +++ /dev/null @@ -1,138 +0,0 @@ -'use strict'; - -/*eslint-disable no-bitwise*/ - -var NodeBuffer; - -try { - // A trick for browserified version, to not include `Buffer` shim - var _require = require; - NodeBuffer = _require('buffer').Buffer; -} catch (__) {} - -var Type = require('../type'); - - -// [ 64, 65, 66 ] -> [ padding, CR, LF ] -var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; - - -function resolveYamlBinary(data) { - if (data === null) return false; - - var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; - - // Convert one by one. - for (idx = 0; idx < max; idx++) { - code = map.indexOf(data.charAt(idx)); - - // Skip CR/LF - if (code > 64) continue; - - // Fail on illegal characters - if (code < 0) return false; - - bitlen += 6; - } - - // If there are any bits left, source was corrupted - return (bitlen % 8) === 0; -} - -function constructYamlBinary(data) { - var idx, tailbits, - input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan - max = input.length, - map = BASE64_MAP, - bits = 0, - result = []; - - // Collect by 6*4 bits (3 bytes) - - for (idx = 0; idx < max; idx++) { - if ((idx % 4 === 0) && idx) { - result.push((bits >> 16) & 0xFF); - result.push((bits >> 8) & 0xFF); - result.push(bits & 0xFF); - } - - bits = (bits << 6) | map.indexOf(input.charAt(idx)); - } - - // Dump tail - - tailbits = (max % 4) * 6; - - if (tailbits === 0) { - result.push((bits >> 16) & 0xFF); - result.push((bits >> 8) & 0xFF); - result.push(bits & 0xFF); - } else if (tailbits === 18) { - result.push((bits >> 10) & 0xFF); - result.push((bits >> 2) & 0xFF); - } else if (tailbits === 12) { - result.push((bits >> 4) & 0xFF); - } - - // Wrap into Buffer for NodeJS and leave Array for browser - if (NodeBuffer) { - // Support node 6.+ Buffer API when available - return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result); - } - - return result; -} - -function representYamlBinary(object /*, style*/) { - var result = '', bits = 0, idx, tail, - max = object.length, - map = BASE64_MAP; - - // Convert every three bytes to 4 ASCII characters. - - for (idx = 0; idx < max; idx++) { - if ((idx % 3 === 0) && idx) { - result += map[(bits >> 18) & 0x3F]; - result += map[(bits >> 12) & 0x3F]; - result += map[(bits >> 6) & 0x3F]; - result += map[bits & 0x3F]; - } - - bits = (bits << 8) + object[idx]; - } - - // Dump tail - - tail = max % 3; - - if (tail === 0) { - result += map[(bits >> 18) & 0x3F]; - result += map[(bits >> 12) & 0x3F]; - result += map[(bits >> 6) & 0x3F]; - result += map[bits & 0x3F]; - } else if (tail === 2) { - result += map[(bits >> 10) & 0x3F]; - result += map[(bits >> 4) & 0x3F]; - result += map[(bits << 2) & 0x3F]; - result += map[64]; - } else if (tail === 1) { - result += map[(bits >> 2) & 0x3F]; - result += map[(bits << 4) & 0x3F]; - result += map[64]; - result += map[64]; - } - - return result; -} - -function isBinary(object) { - return NodeBuffer && NodeBuffer.isBuffer(object); -} - -module.exports = new Type('tag:yaml.org,2002:binary', { - kind: 'scalar', - resolve: resolveYamlBinary, - construct: constructYamlBinary, - predicate: isBinary, - represent: representYamlBinary -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/bool.js b/node_modules/js-yaml/lib/js-yaml/type/bool.js deleted file mode 100644 index cb77459..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/bool.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -function resolveYamlBoolean(data) { - if (data === null) return false; - - var max = data.length; - - return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || - (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); -} - -function constructYamlBoolean(data) { - return data === 'true' || - data === 'True' || - data === 'TRUE'; -} - -function isBoolean(object) { - return Object.prototype.toString.call(object) === '[object Boolean]'; -} - -module.exports = new Type('tag:yaml.org,2002:bool', { - kind: 'scalar', - resolve: resolveYamlBoolean, - construct: constructYamlBoolean, - predicate: isBoolean, - represent: { - lowercase: function (object) { return object ? 'true' : 'false'; }, - uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, - camelcase: function (object) { return object ? 'True' : 'False'; } - }, - defaultStyle: 'lowercase' -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/float.js b/node_modules/js-yaml/lib/js-yaml/type/float.js deleted file mode 100644 index 127671b..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/float.js +++ /dev/null @@ -1,116 +0,0 @@ -'use strict'; - -var common = require('../common'); -var Type = require('../type'); - -var YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers - '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + - // .2e4, .2 - // special case, seems not from spec - '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + - // 20:59 - '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*' + - // .inf - '|[-+]?\\.(?:inf|Inf|INF)' + - // .nan - '|\\.(?:nan|NaN|NAN))$'); - -function resolveYamlFloat(data) { - if (data === null) return false; - - if (!YAML_FLOAT_PATTERN.test(data) || - // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data[data.length - 1] === '_') { - return false; - } - - return true; -} - -function constructYamlFloat(data) { - var value, sign, base, digits; - - value = data.replace(/_/g, '').toLowerCase(); - sign = value[0] === '-' ? -1 : 1; - digits = []; - - if ('+-'.indexOf(value[0]) >= 0) { - value = value.slice(1); - } - - if (value === '.inf') { - return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - - } else if (value === '.nan') { - return NaN; - - } else if (value.indexOf(':') >= 0) { - value.split(':').forEach(function (v) { - digits.unshift(parseFloat(v, 10)); - }); - - value = 0.0; - base = 1; - - digits.forEach(function (d) { - value += d * base; - base *= 60; - }); - - return sign * value; - - } - return sign * parseFloat(value, 10); -} - - -var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; - -function representYamlFloat(object, style) { - var res; - - if (isNaN(object)) { - switch (style) { - case 'lowercase': return '.nan'; - case 'uppercase': return '.NAN'; - case 'camelcase': return '.NaN'; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case 'lowercase': return '.inf'; - case 'uppercase': return '.INF'; - case 'camelcase': return '.Inf'; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case 'lowercase': return '-.inf'; - case 'uppercase': return '-.INF'; - case 'camelcase': return '-.Inf'; - } - } else if (common.isNegativeZero(object)) { - return '-0.0'; - } - - res = object.toString(10); - - // JS stringifier can build scientific format without dots: 5e-100, - // while YAML requres dot: 5.e-100. Fix it with simple hack - - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; -} - -function isFloat(object) { - return (Object.prototype.toString.call(object) === '[object Number]') && - (object % 1 !== 0 || common.isNegativeZero(object)); -} - -module.exports = new Type('tag:yaml.org,2002:float', { - kind: 'scalar', - resolve: resolveYamlFloat, - construct: constructYamlFloat, - predicate: isFloat, - represent: representYamlFloat, - defaultStyle: 'lowercase' -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/int.js b/node_modules/js-yaml/lib/js-yaml/type/int.js deleted file mode 100644 index ba61c5f..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/int.js +++ /dev/null @@ -1,173 +0,0 @@ -'use strict'; - -var common = require('../common'); -var Type = require('../type'); - -function isHexCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || - ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || - ((0x61/* a */ <= c) && (c <= 0x66/* f */)); -} - -function isOctCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); -} - -function isDecCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); -} - -function resolveYamlInteger(data) { - if (data === null) return false; - - var max = data.length, - index = 0, - hasDigits = false, - ch; - - if (!max) return false; - - ch = data[index]; - - // sign - if (ch === '-' || ch === '+') { - ch = data[++index]; - } - - if (ch === '0') { - // 0 - if (index + 1 === max) return true; - ch = data[++index]; - - // base 2, base 8, base 16 - - if (ch === 'b') { - // base 2 - index++; - - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (ch !== '0' && ch !== '1') return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } - - - if (ch === 'x') { - // base 16 - index++; - - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isHexCode(data.charCodeAt(index))) return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } - - // base 8 - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (!isOctCode(data.charCodeAt(index))) return false; - hasDigits = true; - } - return hasDigits && ch !== '_'; - } - - // base 10 (except 0) or base 60 - - // value should not start with `_`; - if (ch === '_') return false; - - for (; index < max; index++) { - ch = data[index]; - if (ch === '_') continue; - if (ch === ':') break; - if (!isDecCode(data.charCodeAt(index))) { - return false; - } - hasDigits = true; - } - - // Should have digits and should not end with `_` - if (!hasDigits || ch === '_') return false; - - // if !base60 - done; - if (ch !== ':') return true; - - // base60 almost not used, no needs to optimize - return /^(:[0-5]?[0-9])+$/.test(data.slice(index)); -} - -function constructYamlInteger(data) { - var value = data, sign = 1, ch, base, digits = []; - - if (value.indexOf('_') !== -1) { - value = value.replace(/_/g, ''); - } - - ch = value[0]; - - if (ch === '-' || ch === '+') { - if (ch === '-') sign = -1; - value = value.slice(1); - ch = value[0]; - } - - if (value === '0') return 0; - - if (ch === '0') { - if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); - if (value[1] === 'x') return sign * parseInt(value, 16); - return sign * parseInt(value, 8); - } - - if (value.indexOf(':') !== -1) { - value.split(':').forEach(function (v) { - digits.unshift(parseInt(v, 10)); - }); - - value = 0; - base = 1; - - digits.forEach(function (d) { - value += (d * base); - base *= 60; - }); - - return sign * value; - - } - - return sign * parseInt(value, 10); -} - -function isInteger(object) { - return (Object.prototype.toString.call(object)) === '[object Number]' && - (object % 1 === 0 && !common.isNegativeZero(object)); -} - -module.exports = new Type('tag:yaml.org,2002:int', { - kind: 'scalar', - resolve: resolveYamlInteger, - construct: constructYamlInteger, - predicate: isInteger, - represent: { - binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, - octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); }, - decimal: function (obj) { return obj.toString(10); }, - /* eslint-disable max-len */ - hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } - }, - defaultStyle: 'decimal', - styleAliases: { - binary: [ 2, 'bin' ], - octal: [ 8, 'oct' ], - decimal: [ 10, 'dec' ], - hexadecimal: [ 16, 'hex' ] - } -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/js/function.js b/node_modules/js-yaml/lib/js-yaml/type/js/function.js deleted file mode 100644 index 8fab8c4..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/js/function.js +++ /dev/null @@ -1,93 +0,0 @@ -'use strict'; - -var esprima; - -// Browserified version does not have esprima -// -// 1. For node.js just require module as deps -// 2. For browser try to require mudule via external AMD system. -// If not found - try to fallback to window.esprima. If not -// found too - then fail to parse. -// -try { - // workaround to exclude package from browserify list. - var _require = require; - esprima = _require('esprima'); -} catch (_) { - /* eslint-disable no-redeclare */ - /* global window */ - if (typeof window !== 'undefined') esprima = window.esprima; -} - -var Type = require('../../type'); - -function resolveJavascriptFunction(data) { - if (data === null) return false; - - try { - var source = '(' + data + ')', - ast = esprima.parse(source, { range: true }); - - if (ast.type !== 'Program' || - ast.body.length !== 1 || - ast.body[0].type !== 'ExpressionStatement' || - (ast.body[0].expression.type !== 'ArrowFunctionExpression' && - ast.body[0].expression.type !== 'FunctionExpression')) { - return false; - } - - return true; - } catch (err) { - return false; - } -} - -function constructJavascriptFunction(data) { - /*jslint evil:true*/ - - var source = '(' + data + ')', - ast = esprima.parse(source, { range: true }), - params = [], - body; - - if (ast.type !== 'Program' || - ast.body.length !== 1 || - ast.body[0].type !== 'ExpressionStatement' || - (ast.body[0].expression.type !== 'ArrowFunctionExpression' && - ast.body[0].expression.type !== 'FunctionExpression')) { - throw new Error('Failed to resolve function'); - } - - ast.body[0].expression.params.forEach(function (param) { - params.push(param.name); - }); - - body = ast.body[0].expression.body.range; - - // Esprima's ranges include the first '{' and the last '}' characters on - // function expressions. So cut them out. - if (ast.body[0].expression.body.type === 'BlockStatement') { - /*eslint-disable no-new-func*/ - return new Function(params, source.slice(body[0] + 1, body[1] - 1)); - } - // ES6 arrow functions can omit the BlockStatement. In that case, just return - // the body. - /*eslint-disable no-new-func*/ - return new Function(params, 'return ' + source.slice(body[0], body[1])); -} - -function representJavascriptFunction(object /*, style*/) { - return object.toString(); -} - -function isFunction(object) { - return Object.prototype.toString.call(object) === '[object Function]'; -} - -module.exports = new Type('tag:yaml.org,2002:js/function', { - kind: 'scalar', - resolve: resolveJavascriptFunction, - construct: constructJavascriptFunction, - predicate: isFunction, - represent: representJavascriptFunction -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js b/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js deleted file mode 100644 index 43fa470..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; - -var Type = require('../../type'); - -function resolveJavascriptRegExp(data) { - if (data === null) return false; - if (data.length === 0) return false; - - var regexp = data, - tail = /\/([gim]*)$/.exec(data), - modifiers = ''; - - // if regexp starts with '/' it can have modifiers and must be properly closed - // `/foo/gim` - modifiers tail can be maximum 3 chars - if (regexp[0] === '/') { - if (tail) modifiers = tail[1]; - - if (modifiers.length > 3) return false; - // if expression starts with /, is should be properly terminated - if (regexp[regexp.length - modifiers.length - 1] !== '/') return false; - } - - return true; -} - -function constructJavascriptRegExp(data) { - var regexp = data, - tail = /\/([gim]*)$/.exec(data), - modifiers = ''; - - // `/foo/gim` - tail can be maximum 4 chars - if (regexp[0] === '/') { - if (tail) modifiers = tail[1]; - regexp = regexp.slice(1, regexp.length - modifiers.length - 1); - } - - return new RegExp(regexp, modifiers); -} - -function representJavascriptRegExp(object /*, style*/) { - var result = '/' + object.source + '/'; - - if (object.global) result += 'g'; - if (object.multiline) result += 'm'; - if (object.ignoreCase) result += 'i'; - - return result; -} - -function isRegExp(object) { - return Object.prototype.toString.call(object) === '[object RegExp]'; -} - -module.exports = new Type('tag:yaml.org,2002:js/regexp', { - kind: 'scalar', - resolve: resolveJavascriptRegExp, - construct: constructJavascriptRegExp, - predicate: isRegExp, - represent: representJavascriptRegExp -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js b/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js deleted file mode 100644 index 95b5569..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var Type = require('../../type'); - -function resolveJavascriptUndefined() { - return true; -} - -function constructJavascriptUndefined() { - /*eslint-disable no-undefined*/ - return undefined; -} - -function representJavascriptUndefined() { - return ''; -} - -function isUndefined(object) { - return typeof object === 'undefined'; -} - -module.exports = new Type('tag:yaml.org,2002:js/undefined', { - kind: 'scalar', - resolve: resolveJavascriptUndefined, - construct: constructJavascriptUndefined, - predicate: isUndefined, - represent: representJavascriptUndefined -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/map.js b/node_modules/js-yaml/lib/js-yaml/type/map.js deleted file mode 100644 index f327bee..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/map.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -module.exports = new Type('tag:yaml.org,2002:map', { - kind: 'mapping', - construct: function (data) { return data !== null ? data : {}; } -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/merge.js b/node_modules/js-yaml/lib/js-yaml/type/merge.js deleted file mode 100644 index ae08a86..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/merge.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -function resolveYamlMerge(data) { - return data === '<<' || data === null; -} - -module.exports = new Type('tag:yaml.org,2002:merge', { - kind: 'scalar', - resolve: resolveYamlMerge -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/null.js b/node_modules/js-yaml/lib/js-yaml/type/null.js deleted file mode 100644 index 6874daa..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/null.js +++ /dev/null @@ -1,34 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -function resolveYamlNull(data) { - if (data === null) return true; - - var max = data.length; - - return (max === 1 && data === '~') || - (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); -} - -function constructYamlNull() { - return null; -} - -function isNull(object) { - return object === null; -} - -module.exports = new Type('tag:yaml.org,2002:null', { - kind: 'scalar', - resolve: resolveYamlNull, - construct: constructYamlNull, - predicate: isNull, - represent: { - canonical: function () { return '~'; }, - lowercase: function () { return 'null'; }, - uppercase: function () { return 'NULL'; }, - camelcase: function () { return 'Null'; } - }, - defaultStyle: 'lowercase' -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/omap.js b/node_modules/js-yaml/lib/js-yaml/type/omap.js deleted file mode 100644 index b2b5323..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/omap.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -var _hasOwnProperty = Object.prototype.hasOwnProperty; -var _toString = Object.prototype.toString; - -function resolveYamlOmap(data) { - if (data === null) return true; - - var objectKeys = [], index, length, pair, pairKey, pairHasKey, - object = data; - - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - pairHasKey = false; - - if (_toString.call(pair) !== '[object Object]') return false; - - for (pairKey in pair) { - if (_hasOwnProperty.call(pair, pairKey)) { - if (!pairHasKey) pairHasKey = true; - else return false; - } - } - - if (!pairHasKey) return false; - - if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); - else return false; - } - - return true; -} - -function constructYamlOmap(data) { - return data !== null ? data : []; -} - -module.exports = new Type('tag:yaml.org,2002:omap', { - kind: 'sequence', - resolve: resolveYamlOmap, - construct: constructYamlOmap -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/pairs.js b/node_modules/js-yaml/lib/js-yaml/type/pairs.js deleted file mode 100644 index 74b5240..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/pairs.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -var _toString = Object.prototype.toString; - -function resolveYamlPairs(data) { - if (data === null) return true; - - var index, length, pair, keys, result, - object = data; - - result = new Array(object.length); - - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - - if (_toString.call(pair) !== '[object Object]') return false; - - keys = Object.keys(pair); - - if (keys.length !== 1) return false; - - result[index] = [ keys[0], pair[keys[0]] ]; - } - - return true; -} - -function constructYamlPairs(data) { - if (data === null) return []; - - var index, length, pair, keys, result, - object = data; - - result = new Array(object.length); - - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - - keys = Object.keys(pair); - - result[index] = [ keys[0], pair[keys[0]] ]; - } - - return result; -} - -module.exports = new Type('tag:yaml.org,2002:pairs', { - kind: 'sequence', - resolve: resolveYamlPairs, - construct: constructYamlPairs -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/seq.js b/node_modules/js-yaml/lib/js-yaml/type/seq.js deleted file mode 100644 index be8f77f..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/seq.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -module.exports = new Type('tag:yaml.org,2002:seq', { - kind: 'sequence', - construct: function (data) { return data !== null ? data : []; } -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/set.js b/node_modules/js-yaml/lib/js-yaml/type/set.js deleted file mode 100644 index f885a32..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/set.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -var _hasOwnProperty = Object.prototype.hasOwnProperty; - -function resolveYamlSet(data) { - if (data === null) return true; - - var key, object = data; - - for (key in object) { - if (_hasOwnProperty.call(object, key)) { - if (object[key] !== null) return false; - } - } - - return true; -} - -function constructYamlSet(data) { - return data !== null ? data : {}; -} - -module.exports = new Type('tag:yaml.org,2002:set', { - kind: 'mapping', - resolve: resolveYamlSet, - construct: constructYamlSet -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/str.js b/node_modules/js-yaml/lib/js-yaml/type/str.js deleted file mode 100644 index 27acc10..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/str.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -module.exports = new Type('tag:yaml.org,2002:str', { - kind: 'scalar', - construct: function (data) { return data !== null ? data : ''; } -}); diff --git a/node_modules/js-yaml/lib/js-yaml/type/timestamp.js b/node_modules/js-yaml/lib/js-yaml/type/timestamp.js deleted file mode 100644 index 8fa9c58..0000000 --- a/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +++ /dev/null @@ -1,88 +0,0 @@ -'use strict'; - -var Type = require('../type'); - -var YAML_DATE_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9])' + // [2] month - '-([0-9][0-9])$'); // [3] day - -var YAML_TIMESTAMP_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9]?)' + // [2] month - '-([0-9][0-9]?)' + // [3] day - '(?:[Tt]|[ \\t]+)' + // ... - '([0-9][0-9]?)' + // [4] hour - ':([0-9][0-9])' + // [5] minute - ':([0-9][0-9])' + // [6] second - '(?:\\.([0-9]*))?' + // [7] fraction - '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour - '(?::([0-9][0-9]))?))?$'); // [11] tz_minute - -function resolveYamlTimestamp(data) { - if (data === null) return false; - if (YAML_DATE_REGEXP.exec(data) !== null) return true; - if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; - return false; -} - -function constructYamlTimestamp(data) { - var match, year, month, day, hour, minute, second, fraction = 0, - delta = null, tz_hour, tz_minute, date; - - match = YAML_DATE_REGEXP.exec(data); - if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); - - if (match === null) throw new Error('Date resolve error'); - - // match: [1] year [2] month [3] day - - year = +(match[1]); - month = +(match[2]) - 1; // JS month starts with 0 - day = +(match[3]); - - if (!match[4]) { // no hour - return new Date(Date.UTC(year, month, day)); - } - - // match: [4] hour [5] minute [6] second [7] fraction - - hour = +(match[4]); - minute = +(match[5]); - second = +(match[6]); - - if (match[7]) { - fraction = match[7].slice(0, 3); - while (fraction.length < 3) { // milli-seconds - fraction += '0'; - } - fraction = +fraction; - } - - // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute - - if (match[9]) { - tz_hour = +(match[10]); - tz_minute = +(match[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds - if (match[9] === '-') delta = -delta; - } - - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); - - if (delta) date.setTime(date.getTime() - delta); - - return date; -} - -function representYamlTimestamp(object /*, style*/) { - return object.toISOString(); -} - -module.exports = new Type('tag:yaml.org,2002:timestamp', { - kind: 'scalar', - resolve: resolveYamlTimestamp, - construct: constructYamlTimestamp, - instanceOf: Date, - represent: representYamlTimestamp -}); diff --git a/node_modules/js-yaml/package.json b/node_modules/js-yaml/package.json index 0d23667..17574da 100644 --- a/node_modules/js-yaml/package.json +++ b/node_modules/js-yaml/package.json @@ -1,6 +1,6 @@ { "name": "js-yaml", - "version": "3.14.1", + "version": "4.1.0", "description": "YAML 1.2 parser and serializer", "keywords": [ "yaml", @@ -8,7 +8,6 @@ "serializer", "pyyaml" ], - "homepage": "https://github.com/nodeca/js-yaml", "author": "Vladimir Zapparov ", "contributors": [ "Aleksey V Zapparov (http://www.ixti.net/)", @@ -26,24 +25,42 @@ "bin": { "js-yaml": "bin/js-yaml.js" }, + "module": "./dist/js-yaml.mjs", + "exports": { + ".": { + "import": "./dist/js-yaml.mjs", + "require": "./index.js" + }, + "./package.json": "./package.json" + }, + "scripts": { + "lint": "eslint .", + "test": "npm run lint && mocha", + "coverage": "npm run lint && nyc mocha && nyc report --reporter html", + "demo": "npm run lint && node support/build_demo.js", + "gh-demo": "npm run demo && gh-pages -d demo -f", + "browserify": "rollup -c support/rollup.config.js", + "prepublishOnly": "npm run gh-demo" + }, "unpkg": "dist/js-yaml.min.js", "jsdelivr": "dist/js-yaml.min.js", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "devDependencies": { + "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-node-resolve": "^11.0.0", "ansi": "^0.3.1", "benchmark": "^2.1.4", - "browserify": "^16.2.2", "codemirror": "^5.13.4", "eslint": "^7.0.0", - "fast-check": "^1.24.2", - "istanbul": "^0.4.5", - "mocha": "^7.1.2", - "uglify-js": "^3.0.1" - }, - "scripts": { - "test": "make test" + "fast-check": "^2.8.0", + "gh-pages": "^3.1.0", + "mocha": "^8.2.1", + "nyc": "^15.1.0", + "rollup": "^2.34.1", + "rollup-plugin-node-polyfills": "^0.2.1", + "rollup-plugin-terser": "^7.0.2", + "shelljs": "^0.8.4" } } diff --git a/node_modules/jsesc/README.md b/node_modules/jsesc/README.md index aae2b13..5b62224 100644 --- a/node_modules/jsesc/README.md +++ b/node_modules/jsesc/README.md @@ -1,4 +1,4 @@ -# jsesc [![Build status](https://travis-ci.org/mathiasbynens/jsesc.svg?branch=master)](https://travis-ci.org/mathiasbynens/jsesc) [![Code coverage status](https://coveralls.io/repos/mathiasbynens/jsesc/badge.svg)](https://coveralls.io/r/mathiasbynens/jsesc) [![Dependency status](https://gemnasium.com/mathiasbynens/jsesc.svg)](https://gemnasium.com/mathiasbynens/jsesc) +# jsesc [![Build status](https://travis-ci.org/mathiasbynens/jsesc.svg?branch=master)](https://travis-ci.org/mathiasbynens/jsesc) [![Code coverage status](https://coveralls.io/repos/mathiasbynens/jsesc/badge.svg)](https://coveralls.io/r/mathiasbynens/jsesc) Given some data, _jsesc_ returns a stringified representation of that data. jsesc is similar to `JSON.stringify()` except: @@ -202,6 +202,7 @@ The `minimal` option takes a boolean value (`true` or `false`), and defaults to * U+2028 `\u2028` * U+2029 `\u2029` * whatever symbol is being used for wrapping string literals (based on [the `quotes` option](#quotes)) +* [lone surrogates](https://esdiscuss.org/topic/code-points-vs-unicode-scalar-values#content-14) Note: with this option enabled, jsesc output is no longer guaranteed to be ASCII-safe. @@ -248,7 +249,7 @@ This setting has no effect on the output for strings. #### `indent` -The `indent` option takes a string value, and defaults to `'\t'`. When the `compact` setting is enabled (`true`), the value of the `indent` option is used to format the output for arrays and objects. +The `indent` option takes a string value, and defaults to `'\t'`. When the `compact` setting is disabled (`false`), the value of the `indent` option is used to format the output for arrays and objects. ```js jsesc({ 'Ich β™₯ BΓΌcher': 'foo πŒ† bar' }, { @@ -406,7 +407,7 @@ See `jsesc --help` for the full list of options. ## Support -As of v2.0.0, jsesc supports Node.js v4+ only. +As of v3.0.0, jsesc supports Node.js v6+ only. Older versions (up to jsesc v1.3.0) support Chrome 27, Firefox 3, Safari 4, Opera 10, IE 6, Node.js v6.0.0, Narwhal 0.3.2, RingoJS 0.8-0.11, PhantomJS 1.9.0, and Rhino 1.7RC4. **Note:** Using the `json` option on objects or arrays that contain non-string values relies on `JSON.parse()`. For legacy environments like IE ≀ 7, use [a `JSON` polyfill](https://bestiejs.github.io/json3/). diff --git a/node_modules/jsesc/jsesc.js b/node_modules/jsesc/jsesc.js index 7b8b923..0f6a4b6 100644 --- a/node_modules/jsesc/jsesc.js +++ b/node_modules/jsesc/jsesc.js @@ -28,9 +28,21 @@ const forEach = (array, callback) => { } }; +const fourHexEscape = (hex) => { + return '\\u' + ('0000' + hex).slice(-4); +} + +const hexadecimal = (code, lowercase) => { + let hexadecimal = code.toString(16); + if (lowercase) return hexadecimal; + return hexadecimal.toUpperCase(); +}; + const toString = object.toString; const isArray = Array.isArray; -const isBuffer = Buffer.isBuffer; +const isBuffer = (value) => { + return typeof Buffer === 'function' && Buffer.isBuffer(value); +}; const isObject = (value) => { // This is a very simple check, but it’s good enough for what we need. return toString.call(value) == '[object Object]'; @@ -57,8 +69,6 @@ const isSet = (value) => { // https://mathiasbynens.be/notes/javascript-escapes#single const singleEscapes = { - '"': '\\"', - '\'': '\\\'', '\\': '\\\\', '\b': '\\b', '\f': '\\f', @@ -68,10 +78,13 @@ const singleEscapes = { // `\v` is omitted intentionally, because in IE < 9, '\v' == 'v'. // '\v': '\\x0B' }; -const regexSingleEscape = /["'\\\b\f\n\r\t]/; +const regexSingleEscape = /[\\\b\f\n\r\t]/; const regexDigit = /[0-9]/; -const regexWhitelist = /[ !#-&\(-\[\]-_a-~]/; +const regexWhitespace = /[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/; + +const escapeEverythingRegex = /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^]/g; +const escapeNonAsciiRegex = /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^ !#-&\(-\[\]-_a-~]/g; const jsesc = (argument, options) => { const increaseIndentation = () => { @@ -234,96 +247,72 @@ const jsesc = (argument, options) => { } } - const string = argument; - // Loop over each code unit in the string and escape it - let index = -1; - const length = string.length; - result = ''; - while (++index < length) { - const character = string.charAt(index); - if (options.es6) { - const first = string.charCodeAt(index); - if ( // check if it’s the start of a surrogate pair - first >= 0xD800 && first <= 0xDBFF && // high surrogate - length > index + 1 // there is a next code unit - ) { - const second = string.charCodeAt(index + 1); - if (second >= 0xDC00 && second <= 0xDFFF) { // low surrogate - // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - const codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; - let hexadecimal = codePoint.toString(16); - if (!lowercaseHex) { - hexadecimal = hexadecimal.toUpperCase(); - } - result += '\\u{' + hexadecimal + '}'; - ++index; - continue; - } + const regex = options.escapeEverything ? escapeEverythingRegex : escapeNonAsciiRegex; + result = argument.replace(regex, (char, pair, lone, quoteChar, index, string) => { + if (pair) { + if (options.minimal) return pair; + const first = pair.charCodeAt(0); + const second = pair.charCodeAt(1); + if (options.es6) { + // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + const codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; + const hex = hexadecimal(codePoint, lowercaseHex); + return '\\u{' + hex + '}'; } + return fourHexEscape(hexadecimal(first, lowercaseHex)) + fourHexEscape(hexadecimal(second, lowercaseHex)); } - if (!options.escapeEverything) { - if (regexWhitelist.test(character)) { - // It’s a printable ASCII character that is not `"`, `'` or `\`, - // so don’t escape it. - result += character; - continue; - } - if (character == '"') { - result += quote == character ? '\\"' : character; - continue; - } - if (character == '`') { - result += quote == character ? '\\`' : character; - continue; - } - if (character == '\'') { - result += quote == character ? '\\\'' : character; - continue; - } + + if (lone) { + return fourHexEscape(hexadecimal(lone.charCodeAt(0), lowercaseHex)); } + if ( - character == '\0' && + char == '\0' && !json && !regexDigit.test(string.charAt(index + 1)) ) { - result += '\\0'; - continue; + return '\\0'; } - if (regexSingleEscape.test(character)) { + + if (quoteChar) { + if (quoteChar == quote || options.escapeEverything) { + return '\\' + quoteChar; + } + return quoteChar; + } + + if (regexSingleEscape.test(char)) { // no need for a `hasOwnProperty` check here - result += singleEscapes[character]; - continue; + return singleEscapes[char]; } - const charCode = character.charCodeAt(0); - if (options.minimal && charCode != 0x2028 && charCode != 0x2029) { - result += character; - continue; + + if (options.minimal && !regexWhitespace.test(char)) { + return char; } - let hexadecimal = charCode.toString(16); - if (!lowercaseHex) { - hexadecimal = hexadecimal.toUpperCase(); + + const hex = hexadecimal(char.charCodeAt(0), lowercaseHex); + if (json || hex.length > 2) { + return fourHexEscape(hex); } - const longhand = hexadecimal.length > 2 || json; - const escaped = '\\' + (longhand ? 'u' : 'x') + - ('0000' + hexadecimal).slice(longhand ? -4 : -2); - result += escaped; - continue; + + return '\\x' + ('00' + hex).slice(-2); + }); + + if (quote == '`') { + result = result.replace(/\$\{/g, '\\${'); + } + if (options.isScriptContext) { + // https://mathiasbynens.be/notes/etago + result = result + .replace(/<\/(script|style)/gi, '<\\/$1') + .replace(/ ```css .foo { ... } /* => */ :local(.foo) { ... } @@ -28,6 +30,45 @@ Transformation examples: ``` +Declarations (mode `local`, by default): + + +```css +.foo { + animation-name: fadeInOut, global(moveLeft300px), local(bounce); +} + +.bar { + animation: rotate 1s, global(spin) 3s, local(fly) 6s; +} + +/* => */ + +:local(.foo) { + animation-name: :local(fadeInOut), moveLeft300px, :local(bounce); +} + +:local(.bar) { + animation: :local(rotate) 1s, spin 3s, :local(fly) 6s; +} +``` + + +## Pure Mode + +In pure mode, all selectors must contain at least one local class or id +selector + +To ignore this rule for a specific selector, add the following comment in front +of the selector: + +```css +/* cssmodules-pure-ignore */ +:global(#modal-backdrop) { + ...; +} +``` + ## Building ```bash diff --git a/node_modules/postcss-modules-local-by-default/package.json b/node_modules/postcss-modules-local-by-default/package.json index b53af93..9867e32 100644 --- a/node_modules/postcss-modules-local-by-default/package.json +++ b/node_modules/postcss-modules-local-by-default/package.json @@ -1,6 +1,6 @@ { "name": "postcss-modules-local-by-default", - "version": "4.0.5", + "version": "4.1.0", "description": "A CSS Modules transform to make local scope the default", "main": "src/index.js", "author": "Mark Dalgleish", @@ -33,7 +33,7 @@ }, "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "devDependencies": { diff --git a/node_modules/postcss-modules-local-by-default/src/index.js b/node_modules/postcss-modules-local-by-default/src/index.js index eeaef93..0b93b0c 100644 --- a/node_modules/postcss-modules-local-by-default/src/index.js +++ b/node_modules/postcss-modules-local-by-default/src/index.js @@ -4,8 +4,29 @@ const selectorParser = require("postcss-selector-parser"); const valueParser = require("postcss-value-parser"); const { extractICSS } = require("icss-utils"); +const IGNORE_MARKER = "cssmodules-pure-ignore"; + const isSpacing = (node) => node.type === "combinator" && node.value === " "; +function getIgnoreComment(node) { + if (!node.parent) { + return; + } + + const indexInParent = node.parent.index(node); + + for (let i = indexInParent - 1; i >= 0; i--) { + const prevNode = node.parent.nodes[i]; + if (prevNode.type === "comment") { + if (prevNode.text.trimStart().startsWith(IGNORE_MARKER)) { + return prevNode; + } + } else { + break; + } + } +} + function normalizeNodeArray(nodes) { const array = []; @@ -25,6 +46,8 @@ function normalizeNodeArray(nodes) { return array; } +const isPureSelectorSymbol = Symbol("is-pure-selector"); + function localizeNode(rule, mode, localAliasMap) { const transform = (node, context) => { if (context.ignoreNextSpacing && !isSpacing(node)) { @@ -232,7 +255,7 @@ function localizeNode(rule, mode, localAliasMap) { } case "nesting": { if (node.value === "&") { - context.hasLocals = true; + context.hasLocals = rule.parent[isPureSelectorSymbol]; } } } @@ -347,24 +370,20 @@ function localizeDeclarationValues(localize, declaration, context) { declaration.value = valueNodes.toString(); } -function localizeDeclaration(declaration, context) { - const isAnimation = /animation$/i.test(declaration.prop); +// letter +// An uppercase letter or a lowercase letter. +// +// ident-start code point +// A letter, a non-ASCII code point, or U+005F LOW LINE (_). +// +// ident code point +// An ident-start code point, a digit, or U+002D HYPHEN-MINUS (-). - if (isAnimation) { - // letter - // An uppercase letter or a lowercase letter. - // - // ident-start code point - // A letter, a non-ASCII code point, or U+005F LOW LINE (_). - // - // ident code point - // An ident-start code point, a digit, or U+002D HYPHEN-MINUS (-). +// We don't validate `hex digits`, because we don't need it, it is work of linters. +const validIdent = + /^-?([a-z\u0080-\uFFFF_]|(\\[^\r\n\f])|-(?![0-9]))((\\[^\r\n\f])|[a-z\u0080-\uFFFF_0-9-])*$/i; - // We don't validate `hex digits`, because we don't need it, it is work of linters. - const validIdent = - /^-?([a-z\u0080-\uFFFF_]|(\\[^\r\n\f])|-(?![0-9]))((\\[^\r\n\f])|[a-z\u0080-\uFFFF_0-9-])*$/i; - - /* +/* The spec defines some keywords that you can use to describe properties such as the timing function. These are still valid animation names, so as long as there is a property that accepts a keyword, it is given priority. Only when all the properties that can take a keyword are @@ -375,38 +394,43 @@ function localizeDeclaration(declaration, context) { The animation will repeat an infinite number of times from the first argument, and will have an animation name of infinite from the second. */ - const animationKeywords = { - // animation-direction - $normal: 1, - $reverse: 1, - $alternate: 1, - "$alternate-reverse": 1, - // animation-fill-mode - $forwards: 1, - $backwards: 1, - $both: 1, - // animation-iteration-count - $infinite: 1, - // animation-play-state - $paused: 1, - $running: 1, - // animation-timing-function - $ease: 1, - "$ease-in": 1, - "$ease-out": 1, - "$ease-in-out": 1, - $linear: 1, - "$step-end": 1, - "$step-start": 1, - // Special - $none: Infinity, // No matter how many times you write none, it will never be an animation name - // Global values - $initial: Infinity, - $inherit: Infinity, - $unset: Infinity, - $revert: Infinity, - "$revert-layer": Infinity, - }; +const animationKeywords = { + // animation-direction + $normal: 1, + $reverse: 1, + $alternate: 1, + "$alternate-reverse": 1, + // animation-fill-mode + $forwards: 1, + $backwards: 1, + $both: 1, + // animation-iteration-count + $infinite: 1, + // animation-play-state + $paused: 1, + $running: 1, + // animation-timing-function + $ease: 1, + "$ease-in": 1, + "$ease-out": 1, + "$ease-in-out": 1, + $linear: 1, + "$step-end": 1, + "$step-start": 1, + // Special + $none: Infinity, // No matter how many times you write none, it will never be an animation name + // Global values + $initial: Infinity, + $inherit: Infinity, + $unset: Infinity, + $revert: Infinity, + "$revert-layer": Infinity, +}; + +function localizeDeclaration(declaration, context) { + const isAnimation = /animation(-name)?$/i.test(declaration.prop); + + if (isAnimation) { let parsedAnimationKeywords = {}; const valueNodes = valueParser(declaration.value).walk((node) => { // If div-token appeared (represents as comma ','), a possibility of an animation-keywords should be reflesh. @@ -414,9 +438,28 @@ function localizeDeclaration(declaration, context) { parsedAnimationKeywords = {}; return; - } - // Do not handle nested functions - else if (node.type === "function") { + } else if ( + node.type === "function" && + node.value.toLowerCase() === "local" && + node.nodes.length === 1 + ) { + node.type = "word"; + node.value = node.nodes[0].value; + + return localizeDeclNode(node, { + options: context.options, + global: context.global, + localizeNextItem: true, + localAliasMap: context.localAliasMap, + }); + } else if (node.type === "function") { + // replace `animation: global(example)` with `animation-name: example` + if (node.value.toLowerCase() === "global" && node.nodes.length === 1) { + node.type = "word"; + node.value = node.nodes[0].value; + } + + // Do not handle nested functions return false; } // Ignore all except word @@ -443,14 +486,12 @@ function localizeDeclaration(declaration, context) { } } - const subContext = { + return localizeDeclNode(node, { options: context.options, global: context.global, localizeNextItem: shouldParseAnimationName && !context.global, localAliasMap: context.localAliasMap, - }; - - return localizeDeclNode(node, subContext); + }); }); declaration.value = valueNodes.toString(); @@ -458,19 +499,35 @@ function localizeDeclaration(declaration, context) { return; } - const isAnimationName = /animation(-name)?$/i.test(declaration.prop); - - if (isAnimationName) { - return localizeDeclarationValues(true, declaration, context); - } - - const hasUrl = /url\(/i.test(declaration.value); - - if (hasUrl) { + if (/url\(/i.test(declaration.value)) { return localizeDeclarationValues(false, declaration, context); } } +const isPureSelector = (context, rule) => { + if (!rule.parent || rule.type === "root") { + return !context.hasPureGlobals; + } + + if (rule.type === "rule" && rule[isPureSelectorSymbol]) { + return rule[isPureSelectorSymbol] || isPureSelector(context, rule.parent); + } + + return !context.hasPureGlobals || isPureSelector(context, rule.parent); +}; + +const isNodeWithoutDeclarations = (rule) => { + if (rule.nodes.length > 0) { + return !rule.nodes.every( + (item) => + item.type === "rule" || + (item.type === "atrule" && !isNodeWithoutDeclarations(item)) + ); + } + + return true; +}; + module.exports = (options = {}) => { if ( options && @@ -515,10 +572,17 @@ module.exports = (options = {}) => { if (globalMatch) { if (pureMode) { - throw atRule.error( - "@keyframes :global(...) is not allowed in pure mode" - ); + const ignoreComment = getIgnoreComment(atRule); + + if (!ignoreComment) { + throw atRule.error( + "@keyframes :global(...) is not allowed in pure mode" + ); + } else { + ignoreComment.remove(); + } } + atRule.params = globalMatch[1]; globalKeyframes = true; } else if (localMatch) { @@ -541,6 +605,14 @@ module.exports = (options = {}) => { }); } else if (/scope$/i.test(atRule.name)) { if (atRule.params) { + const ignoreComment = pureMode + ? getIgnoreComment(atRule) + : undefined; + + if (ignoreComment) { + ignoreComment.remove(); + } + atRule.params = atRule.params .split("to") .map((item) => { @@ -554,7 +626,7 @@ module.exports = (options = {}) => { context.options = options; context.localAliasMap = localAliasMap; - if (pureMode && context.hasPureGlobals) { + if (pureMode && context.hasPureGlobals && !ignoreComment) { throw atRule.error( 'Selector in at-rule"' + selector + @@ -605,13 +677,26 @@ module.exports = (options = {}) => { context.options = options; context.localAliasMap = localAliasMap; - if (pureMode && context.hasPureGlobals) { + const ignoreComment = pureMode ? getIgnoreComment(rule) : undefined; + const isNotPure = pureMode && !isPureSelector(context, rule); + + if ( + isNotPure && + isNodeWithoutDeclarations(rule) && + !ignoreComment + ) { throw rule.error( 'Selector "' + rule.selector + '" is not pure ' + "(pure selectors must contain at least one local class or id)" ); + } else if (ignoreComment) { + ignoreComment.remove(); + } + + if (pureMode) { + rule[isPureSelectorSymbol] = !isNotPure; } rule.selector = context.selector; diff --git a/node_modules/postcss-modules-scope/package.json b/node_modules/postcss-modules-scope/package.json index 1dd8e42..1e4ce4a 100644 --- a/node_modules/postcss-modules-scope/package.json +++ b/node_modules/postcss-modules-scope/package.json @@ -1,6 +1,6 @@ { "name": "postcss-modules-scope", - "version": "3.2.0", + "version": "3.2.1", "description": "A CSS Modules transform to extract export statements from local-scope classes", "main": "src/index.js", "engines": { @@ -36,7 +36,7 @@ }, "homepage": "https://github.com/css-modules/postcss-modules-scope", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "devDependencies": { "coveralls": "^3.1.0", diff --git a/node_modules/postcss-selector-parser/CHANGELOG.md b/node_modules/postcss-selector-parser/CHANGELOG.md index 14ffadc..3c0d1fb 100644 --- a/node_modules/postcss-selector-parser/CHANGELOG.md +++ b/node_modules/postcss-selector-parser/CHANGELOG.md @@ -1,3 +1,7 @@ +# 7.0.0 + +- Feat: make insertions during iteration safe (major) + # 6.1.2 - Fixed: erroneous trailing combinators in pseudos diff --git a/node_modules/postcss-selector-parser/dist/selectors/container.js b/node_modules/postcss-selector-parser/dist/selectors/container.js index 8600c54..8c6a4ed 100644 --- a/node_modules/postcss-selector-parser/dist/selectors/container.js +++ b/node_modules/postcss-selector-parser/dist/selectors/container.js @@ -33,6 +33,9 @@ var Container = /*#__PURE__*/function (_Node) { _proto.prepend = function prepend(selector) { selector.parent = this; this.nodes.unshift(selector); + for (var id in this.indexes) { + this.indexes[id]++; + } return this; }; _proto.at = function at(index) { @@ -76,7 +79,7 @@ var Container = /*#__PURE__*/function (_Node) { var index; for (var id in this.indexes) { index = this.indexes[id]; - if (oldIndex <= index) { + if (oldIndex < index) { this.indexes[id] = index + 1; } } @@ -90,7 +93,7 @@ var Container = /*#__PURE__*/function (_Node) { var index; for (var id in this.indexes) { index = this.indexes[id]; - if (index <= oldIndex) { + if (index >= oldIndex) { this.indexes[id] = index + 1; } } diff --git a/node_modules/postcss-selector-parser/package.json b/node_modules/postcss-selector-parser/package.json index 0b074d0..0483942 100644 --- a/node_modules/postcss-selector-parser/package.json +++ b/node_modules/postcss-selector-parser/package.json @@ -1,6 +1,6 @@ { "name": "postcss-selector-parser", - "version": "6.1.2", + "version": "7.0.0", "devDependencies": { "@babel/cli": "^7.11.6", "@babel/core": "^7.11.6", diff --git a/node_modules/postcss/lib/container.d.ts b/node_modules/postcss/lib/container.d.ts index dfe55f2..692bd69 100644 --- a/node_modules/postcss/lib/container.d.ts +++ b/node_modules/postcss/lib/container.d.ts @@ -20,13 +20,26 @@ declare namespace Container { /** * An array of property names. */ - props?: string[] + props?: readonly string[] } export interface ContainerProps extends NodeProps { - nodes?: (Node | ChildProps)[] + nodes?: readonly (ChildProps | Node)[] } + /** + * All types that can be passed into container methods to create or add a new + * child node. + */ + export type NewChild = + | ChildProps + | Node + | readonly ChildProps[] + | readonly Node[] + | readonly string[] + | string + | undefined + // eslint-disable-next-line @typescript-eslint/no-use-before-define export { Container_ as default } } @@ -51,6 +64,26 @@ declare abstract class Container_ extends Node { */ nodes: Child[] | undefined + /** + * An internal method that converts a {@link NewChild} into a list of actual + * child nodes that can then be added to this container. + * + * This ensures that the nodes' parent is set to this container, that they use + * the correct prototype chain, and that they're marked as dirty. + * + * @param mnodes The new node or nodes to add. + * @param sample A node from whose raws the new node's `before` raw should be + * taken. + * @param type This should be set to `'prepend'` if the new nodes will be + * inserted at the beginning of the container. + * @hidden + */ + protected normalize( + nodes: Container.NewChild, + sample: Node | undefined, + type?: 'prepend' | false + ): Child[] + /** * Inserts new nodes to the end of the container. * @@ -71,21 +104,11 @@ declare abstract class Container_ extends Node { * @param nodes New nodes. * @return This node for methods chain. */ - append( - ...nodes: ( - | ChildProps - | ChildProps[] - | Node - | Node[] - | string - | string[] - | undefined - )[] - ): this - + append(...nodes: Container.NewChild[]): this assign(overrides: Container.ContainerProps | object): this clone(overrides?: Partial): this cloneAfter(overrides?: Partial): this + cloneBefore(overrides?: Partial): this /** @@ -124,7 +147,6 @@ declare abstract class Container_ extends Node { each( callback: (node: Child, index: number) => false | void ): false | undefined - /** * Returns `true` if callback returns `true` * for all of the container’s children. @@ -139,6 +161,7 @@ declare abstract class Container_ extends Node { every( condition: (node: Child, index: number, nodes: Child[]) => boolean ): boolean + /** * Returns a `child`’s index within the `Container#nodes` array. * @@ -150,7 +173,6 @@ declare abstract class Container_ extends Node { * @return Child index. */ index(child: Child | number): number - /** * Insert new node after old node within the container. * @@ -158,17 +180,8 @@ declare abstract class Container_ extends Node { * @param newNode New node. * @return This node for methods chain. */ - insertAfter( - oldNode: Child | number, - newNode: - | Node - | Node[] - | ChildProps - | ChildProps[] - | string - | string[] - | undefined - ): this + insertAfter(oldNode: Child | number, newNode: Container.NewChild): this + /** * Insert new node before old node within the container. * @@ -180,17 +193,7 @@ declare abstract class Container_ extends Node { * @param newNode New node. * @return This node for methods chain. */ - insertBefore( - oldNode: Child | number, - newNode: - | Node - | Node[] - | ChildProps - | ChildProps[] - | string - | string[] - | undefined - ): this + insertBefore(oldNode: Child | number, newNode: Container.NewChild): this /** * Traverses the container’s descendant nodes, calling callback @@ -229,17 +232,7 @@ declare abstract class Container_ extends Node { * @param nodes New nodes. * @return This node for methods chain. */ - prepend( - ...nodes: ( - | ChildProps - | ChildProps[] - | Node - | Node[] - | string - | string[] - | undefined - )[] - ): this + prepend(...nodes: Container.NewChild[]): this /** * Add child to the end of the node. * @@ -301,8 +294,8 @@ declare abstract class Container_ extends Node { * ``` * * @param pattern Replace pattern. - * @param {object} opts Options to speed up the search. - * @param callback String to replace pattern or callback + * @param {object} options Options to speed up the search. + * @param replaced String to replace pattern or callback * that returns a new value. The callback * will receive the same arguments * as those passed to a function parameter diff --git a/node_modules/postcss/lib/container.js b/node_modules/postcss/lib/container.js index 8a18207..8b9e1ef 100644 --- a/node_modules/postcss/lib/container.js +++ b/node_modules/postcss/lib/container.js @@ -1,11 +1,11 @@ 'use strict' -let { isClean, my } = require('./symbols') -let Declaration = require('./declaration') let Comment = require('./comment') +let Declaration = require('./declaration') let Node = require('./node') +let { isClean, my } = require('./symbols') -let parse, Rule, AtRule, Root +let AtRule, parse, Root, Rule function cleanSource(nodes) { return nodes.map(i => { @@ -214,6 +214,8 @@ class Container extends Node { i = i.proxyOf if (i.parent) i.parent.removeChild(i) if (i[isClean]) markTreeDirty(i) + + if (!i.raws) i.raws = {} if (typeof i.raws.before === 'undefined') { if (sample && typeof sample.raws.before !== 'undefined') { i.raws.before = sample.raws.before.replace(/\S/g, '') diff --git a/node_modules/postcss/lib/css-syntax-error.js b/node_modules/postcss/lib/css-syntax-error.js index 1693033..275a4f6 100644 --- a/node_modules/postcss/lib/css-syntax-error.js +++ b/node_modules/postcss/lib/css-syntax-error.js @@ -52,37 +52,70 @@ class CssSyntaxError extends Error { let css = this.source if (color == null) color = pico.isColorSupported - if (terminalHighlight) { - if (color) css = terminalHighlight(css) + + let aside = text => text + let mark = text => text + let highlight = text => text + if (color) { + let { bold, gray, red } = pico.createColors(true) + mark = text => bold(red(text)) + aside = text => gray(text) + if (terminalHighlight) { + highlight = text => terminalHighlight(text) + } } let lines = css.split(/\r?\n/) let start = Math.max(this.line - 3, 0) let end = Math.min(this.line + 2, lines.length) - let maxWidth = String(end).length - let mark, aside - if (color) { - let { bold, gray, red } = pico.createColors(true) - mark = text => bold(red(text)) - aside = text => gray(text) - } else { - mark = aside = str => str - } - return lines .slice(start, end) .map((line, index) => { let number = start + 1 + index let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | ' if (number === this.line) { + if (line.length > 160) { + let padding = 20 + let subLineStart = Math.max(0, this.column - padding) + let subLineEnd = Math.max( + this.column + padding, + this.endColumn + padding + ) + let subLine = line.slice(subLineStart, subLineEnd) + + let spacing = + aside(gutter.replace(/\d/g, ' ')) + + line + .slice(0, Math.min(this.column - 1, padding - 1)) + .replace(/[^\t]/g, ' ') + + return ( + mark('>') + + aside(gutter) + + highlight(subLine) + + '\n ' + + spacing + + mark('^') + ) + } + let spacing = aside(gutter.replace(/\d/g, ' ')) + line.slice(0, this.column - 1).replace(/[^\t]/g, ' ') - return mark('>') + aside(gutter) + line + '\n ' + spacing + mark('^') + + return ( + mark('>') + + aside(gutter) + + highlight(line) + + '\n ' + + spacing + + mark('^') + ) } - return ' ' + aside(gutter) + line + + return ' ' + aside(gutter) + highlight(line) }) .join('\n') } diff --git a/node_modules/postcss/lib/document.d.ts b/node_modules/postcss/lib/document.d.ts index 79f948a..f9e8063 100644 --- a/node_modules/postcss/lib/document.d.ts +++ b/node_modules/postcss/lib/document.d.ts @@ -5,7 +5,7 @@ import Root from './root.js' declare namespace Document { export interface DocumentProps extends ContainerProps { - nodes?: Root[] + nodes?: readonly Root[] /** * Information to generate byte-to-byte equal node string as it was diff --git a/node_modules/postcss/lib/fromJSON.js b/node_modules/postcss/lib/fromJSON.js index 09f2b89..c9ac1a8 100644 --- a/node_modules/postcss/lib/fromJSON.js +++ b/node_modules/postcss/lib/fromJSON.js @@ -1,10 +1,10 @@ 'use strict' -let Declaration = require('./declaration') -let PreviousMap = require('./previous-map') -let Comment = require('./comment') let AtRule = require('./at-rule') +let Comment = require('./comment') +let Declaration = require('./declaration') let Input = require('./input') +let PreviousMap = require('./previous-map') let Root = require('./root') let Rule = require('./rule') diff --git a/node_modules/postcss/lib/input.d.ts b/node_modules/postcss/lib/input.d.ts index ce8e463..46ded09 100644 --- a/node_modules/postcss/lib/input.d.ts +++ b/node_modules/postcss/lib/input.d.ts @@ -174,6 +174,9 @@ declare class Input_ { endLine?: number, endColumn?: number ): false | Input.FilePosition + /** Converts this to a JSON-friendly object representation. */ + toJSON(): object + /** * The CSS source identifier. Contains `Input#file` if the user * set the `from` option, or `Input#id` if they did not. @@ -187,9 +190,6 @@ declare class Input_ { * ``` */ get from(): string - - /** Converts this to a JSON-friendly object representation. */ - toJSON(): object } declare class Input extends Input_ {} diff --git a/node_modules/postcss/lib/input.js b/node_modules/postcss/lib/input.js index 4b5ee5e..685bce7 100644 --- a/node_modules/postcss/lib/input.js +++ b/node_modules/postcss/lib/input.js @@ -1,13 +1,13 @@ 'use strict' +let { nanoid } = require('nanoid/non-secure') +let { isAbsolute, resolve } = require('path') let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') let { fileURLToPath, pathToFileURL } = require('url') -let { isAbsolute, resolve } = require('path') -let { nanoid } = require('nanoid/non-secure') -let terminalHighlight = require('./terminal-highlight') let CssSyntaxError = require('./css-syntax-error') let PreviousMap = require('./previous-map') +let terminalHighlight = require('./terminal-highlight') let fromOffsetCache = Symbol('fromOffsetCache') @@ -61,7 +61,7 @@ class Input { } error(message, line, column, opts = {}) { - let result, endLine, endColumn + let endColumn, endLine, result if (line && typeof line === 'object') { let start = line diff --git a/node_modules/postcss/lib/lazy-result.js b/node_modules/postcss/lib/lazy-result.js index 126f40c..e27701d 100644 --- a/node_modules/postcss/lib/lazy-result.js +++ b/node_modules/postcss/lib/lazy-result.js @@ -1,14 +1,14 @@ 'use strict' -let { isClean, my } = require('./symbols') -let MapGenerator = require('./map-generator') -let stringify = require('./stringify') let Container = require('./container') let Document = require('./document') -let warnOnce = require('./warn-once') -let Result = require('./result') +let MapGenerator = require('./map-generator') let parse = require('./parse') +let Result = require('./result') let Root = require('./root') +let stringify = require('./stringify') +let { isClean, my } = require('./symbols') +let warnOnce = require('./warn-once') const TYPE_TO_CLASS_NAME = { atrule: 'AtRule', diff --git a/node_modules/postcss/lib/list.d.ts b/node_modules/postcss/lib/list.d.ts index d77e181..e262ad3 100644 --- a/node_modules/postcss/lib/list.d.ts +++ b/node_modules/postcss/lib/list.d.ts @@ -47,7 +47,11 @@ declare namespace list { * @param last boolean indicator. * @return Split values. */ - split(string: string, separators: string[], last: boolean): string[] + split( + string: string, + separators: readonly string[], + last: boolean + ): string[] } } diff --git a/node_modules/postcss/lib/map-generator.js b/node_modules/postcss/lib/map-generator.js index fd93b06..89069d3 100644 --- a/node_modules/postcss/lib/map-generator.js +++ b/node_modules/postcss/lib/map-generator.js @@ -1,7 +1,7 @@ 'use strict' -let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') let { dirname, relative, resolve, sep } = require('path') +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') let { pathToFileURL } = require('url') let Input = require('./input') @@ -70,7 +70,7 @@ class MapGenerator { for (let i = this.root.nodes.length - 1; i >= 0; i--) { node = this.root.nodes[i] if (node.type !== 'comment') continue - if (node.text.indexOf('# sourceMappingURL=') === 0) { + if (node.text.startsWith('# sourceMappingURL=')) { this.root.removeChild(i) } } @@ -143,7 +143,7 @@ class MapGenerator { source: '' } - let lines, last + let last, lines this.stringify(this.root, (str, node, type) => { this.css += str diff --git a/node_modules/postcss/lib/no-work-result.js b/node_modules/postcss/lib/no-work-result.js index 05821b7..a84d843 100644 --- a/node_modules/postcss/lib/no-work-result.js +++ b/node_modules/postcss/lib/no-work-result.js @@ -1,10 +1,10 @@ 'use strict' let MapGenerator = require('./map-generator') -let stringify = require('./stringify') -let warnOnce = require('./warn-once') let parse = require('./parse') const Result = require('./result') +let stringify = require('./stringify') +let warnOnce = require('./warn-once') class NoWorkResult { constructor(processor, css, opts) { diff --git a/node_modules/postcss/lib/node.d.ts b/node_modules/postcss/lib/node.d.ts index 8cc3cdb..3597670 100644 --- a/node_modules/postcss/lib/node.d.ts +++ b/node_modules/postcss/lib/node.d.ts @@ -2,7 +2,7 @@ import AtRule = require('./at-rule.js') import { AtRuleProps } from './at-rule.js' import Comment, { CommentProps } from './comment.js' -import Container from './container.js' +import Container, { NewChild } from './container.js' import CssSyntaxError from './css-syntax-error.js' import Declaration, { DeclarationProps } from './declaration.js' import Document from './document.js' @@ -234,6 +234,14 @@ declare abstract class Node_ { constructor(defaults?: object) + /** + * If this node isn't already dirty, marks it and its ancestors as such. This + * indicates to the LazyResult processor that the {@link Root} has been + * modified by the current plugin and may need to be processed again by other + * plugins. + */ + protected markDirty(): void + /** * Insert new node after current node to current node’s parent. * @@ -246,7 +254,9 @@ declare abstract class Node_ { * @param newNode New node. * @return This node for methods chain. */ - after(newNode: Node | Node.ChildProps | Node[] | string | undefined): this + after( + newNode: Node | Node.ChildProps | readonly Node[] | string | undefined + ): this /** * It assigns properties to an existing node instance. @@ -273,7 +283,9 @@ declare abstract class Node_ { * @param newNode New node. * @return This node for methods chain. */ - before(newNode: Node | Node.ChildProps | Node[] | string | undefined): this + before( + newNode: Node | Node.ChildProps | readonly Node[] | string | undefined + ): this /** * Clear the code style properties for the node and its children. @@ -470,14 +482,7 @@ declare abstract class Node_ { * @param nodes Mode(s) to replace current one. * @return Current node to methods chain. */ - replaceWith( - ...nodes: ( - | Node - | Node[] - | Node.ChildProps - | Node.ChildProps[] - )[] - ): this + replaceWith(...nodes: NewChild[]): this /** * Finds the Root instance of the node’s tree. diff --git a/node_modules/postcss/lib/node.js b/node_modules/postcss/lib/node.js index 9e747ca..9949be7 100644 --- a/node_modules/postcss/lib/node.js +++ b/node_modules/postcss/lib/node.js @@ -1,9 +1,9 @@ 'use strict' -let { isClean, my } = require('./symbols') let CssSyntaxError = require('./css-syntax-error') let Stringifier = require('./stringifier') let stringify = require('./stringify') +let { isClean, my } = require('./symbols') function cloneNode(obj, parent) { let cloned = new obj.constructor() @@ -32,6 +32,36 @@ function cloneNode(obj, parent) { return cloned } +function sourceOffset(inputCSS, position) { + // Not all custom syntaxes support `offset` in `source.start` and `source.end` + if ( + position && + typeof position.offset !== 'undefined' + ) { + return position.offset; + } + + let column = 1 + let line = 1 + let offset = 0 + + for (let i = 0; i < inputCSS.length; i++) { + if (line === position.line && column === position.column) { + offset = i + break + } + + if (inputCSS[i] === '\n') { + column = 1 + line += 1 + } else { + column += 1 + } + } + + return offset +} + class Node { constructor(defaults = {}) { this.raws = {} @@ -153,6 +183,11 @@ class Node { } } + /* c8 ignore next 3 */ + markClean() { + this[isClean] = true + } + markDirty() { if (this[isClean]) { this[isClean] = false @@ -169,25 +204,29 @@ class Node { return this.parent.nodes[index + 1] } - positionBy(opts, stringRepresentation) { + positionBy(opts) { let pos = this.source.start if (opts.index) { - pos = this.positionInside(opts.index, stringRepresentation) + pos = this.positionInside(opts.index) } else if (opts.word) { - stringRepresentation = this.toString() + let stringRepresentation = this.source.input.css.slice( + sourceOffset(this.source.input.css, this.source.start), + sourceOffset(this.source.input.css, this.source.end) + ) let index = stringRepresentation.indexOf(opts.word) - if (index !== -1) pos = this.positionInside(index, stringRepresentation) + if (index !== -1) pos = this.positionInside(index) } return pos } - positionInside(index, stringRepresentation) { - let string = stringRepresentation || this.toString() + positionInside(index) { let column = this.source.start.column let line = this.source.start.line + let offset = sourceOffset(this.source.input.css, this.source.start) + let end = offset + index - for (let i = 0; i < index; i++) { - if (string[i] === '\n') { + for (let i = offset; i < end; i++) { + if (this.source.input.css[i] === '\n') { column = 1 line += 1 } else { @@ -211,20 +250,25 @@ class Node { } let end = this.source.end ? { - column: this.source.end.column + 1, - line: this.source.end.line - } + column: this.source.end.column + 1, + line: this.source.end.line + } : { - column: start.column + 1, - line: start.line - } + column: start.column + 1, + line: start.line + } if (opts.word) { - let stringRepresentation = this.toString() + let stringRepresentation = this.source.input.css.slice( + sourceOffset(this.source.input.css, this.source.start), + sourceOffset(this.source.input.css, this.source.end) + ) let index = stringRepresentation.indexOf(opts.word) if (index !== -1) { - start = this.positionInside(index, stringRepresentation) - end = this.positionInside(index + opts.word.length, stringRepresentation) + start = this.positionInside(index) + end = this.positionInside( + index + opts.word.length, + ) } } else { if (opts.start) { diff --git a/node_modules/postcss/lib/parse.js b/node_modules/postcss/lib/parse.js index 971431f..00a1037 100644 --- a/node_modules/postcss/lib/parse.js +++ b/node_modules/postcss/lib/parse.js @@ -1,8 +1,8 @@ 'use strict' let Container = require('./container') -let Parser = require('./parser') let Input = require('./input') +let Parser = require('./parser') function parse(css, opts) { let input = new Input(css, opts) diff --git a/node_modules/postcss/lib/parser.js b/node_modules/postcss/lib/parser.js index bc761de..8a04411 100644 --- a/node_modules/postcss/lib/parser.js +++ b/node_modules/postcss/lib/parser.js @@ -1,11 +1,11 @@ 'use strict' -let Declaration = require('./declaration') -let tokenizer = require('./tokenize') -let Comment = require('./comment') let AtRule = require('./at-rule') +let Comment = require('./comment') +let Declaration = require('./declaration') let Root = require('./root') let Rule = require('./rule') +let tokenizer = require('./tokenize') const SAFE_COMMENT_NEIGHBOR = { empty: true, @@ -143,7 +143,7 @@ class Parser { colon(tokens) { let brackets = 0 - let token, type, prev + let prev, token, type for (let [i, element] of tokens.entries()) { token = element type = token[0] @@ -267,12 +267,12 @@ class Parser { let str = '' for (let j = i; j > 0; j--) { let type = cache[j][0] - if (str.trim().indexOf('!') === 0 && type !== 'space') { + if (str.trim().startsWith('!') && type !== 'space') { break } str = cache.pop()[1] + str } - if (str.trim().indexOf('!') === 0) { + if (str.trim().startsWith('!')) { node.important = true node.raws.important = str tokens = cache diff --git a/node_modules/postcss/lib/postcss.d.ts b/node_modules/postcss/lib/postcss.d.ts index 603fdfd..d0b8b53 100644 --- a/node_modules/postcss/lib/postcss.d.ts +++ b/node_modules/postcss/lib/postcss.d.ts @@ -2,7 +2,7 @@ import { RawSourceMap, SourceMapGenerator } from 'source-map-js' import AtRule, { AtRuleProps } from './at-rule.js' import Comment, { CommentProps } from './comment.js' -import Container, { ContainerProps } from './container.js' +import Container, { ContainerProps, NewChild } from './container.js' import CssSyntaxError from './css-syntax-error.js' import Declaration, { DeclarationProps } from './declaration.js' import Document, { DocumentProps } from './document.js' @@ -170,6 +170,7 @@ declare namespace postcss { LazyResult, list, Message, + NewChild, Node, NodeErrorOptions, NodeProps, @@ -444,7 +445,9 @@ declare namespace postcss { * @param plugins PostCSS plugins. * @return Processor to process multiple CSS. */ -declare function postcss(plugins?: postcss.AcceptedPlugin[]): Processor +declare function postcss( + plugins?: readonly postcss.AcceptedPlugin[] +): Processor declare function postcss(...plugins: postcss.AcceptedPlugin[]): Processor export = postcss diff --git a/node_modules/postcss/lib/postcss.js b/node_modules/postcss/lib/postcss.js index 080ee83..8f0773b 100644 --- a/node_modules/postcss/lib/postcss.js +++ b/node_modules/postcss/lib/postcss.js @@ -1,23 +1,23 @@ 'use strict' +let AtRule = require('./at-rule') +let Comment = require('./comment') +let Container = require('./container') let CssSyntaxError = require('./css-syntax-error') let Declaration = require('./declaration') -let LazyResult = require('./lazy-result') -let Container = require('./container') -let Processor = require('./processor') -let stringify = require('./stringify') -let fromJSON = require('./fromJSON') let Document = require('./document') -let Warning = require('./warning') -let Comment = require('./comment') -let AtRule = require('./at-rule') -let Result = require('./result.js') +let fromJSON = require('./fromJSON') let Input = require('./input') -let parse = require('./parse') +let LazyResult = require('./lazy-result') let list = require('./list') -let Rule = require('./rule') -let Root = require('./root') let Node = require('./node') +let parse = require('./parse') +let Processor = require('./processor') +let Result = require('./result.js') +let Root = require('./root') +let Rule = require('./rule') +let stringify = require('./stringify') +let Warning = require('./warning') function postcss(...plugins) { if (plugins.length === 1 && Array.isArray(plugins[0])) { diff --git a/node_modules/postcss/lib/previous-map.js b/node_modules/postcss/lib/previous-map.js index 8eba9ad..b123dcd 100644 --- a/node_modules/postcss/lib/previous-map.js +++ b/node_modules/postcss/lib/previous-map.js @@ -1,8 +1,8 @@ 'use strict' -let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') let { existsSync, readFileSync } = require('fs') let { dirname, join } = require('path') +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') function fromBase64(str) { if (Buffer) { diff --git a/node_modules/postcss/lib/processor.d.ts b/node_modules/postcss/lib/processor.d.ts index 50c9a07..aa2942c 100644 --- a/node_modules/postcss/lib/processor.d.ts +++ b/node_modules/postcss/lib/processor.d.ts @@ -51,7 +51,7 @@ declare class Processor_ { /** * @param plugins PostCSS plugins */ - constructor(plugins?: AcceptedPlugin[]) + constructor(plugins?: readonly AcceptedPlugin[]) /** * Parses source CSS and returns a `LazyResult` Promise proxy. diff --git a/node_modules/postcss/lib/processor.js b/node_modules/postcss/lib/processor.js index 08a4095..d6192ab 100644 --- a/node_modules/postcss/lib/processor.js +++ b/node_modules/postcss/lib/processor.js @@ -1,13 +1,13 @@ 'use strict' -let NoWorkResult = require('./no-work-result') -let LazyResult = require('./lazy-result') let Document = require('./document') +let LazyResult = require('./lazy-result') +let NoWorkResult = require('./no-work-result') let Root = require('./root') class Processor { constructor(plugins = []) { - this.version = '8.4.41' + this.version = '8.4.49' this.plugins = this.normalize(plugins) } diff --git a/node_modules/postcss/lib/root.d.ts b/node_modules/postcss/lib/root.d.ts index 248b704..5c91139 100644 --- a/node_modules/postcss/lib/root.d.ts +++ b/node_modules/postcss/lib/root.d.ts @@ -76,7 +76,7 @@ declare class Root_ extends Container { * const result = root1.toResult({ to: 'all.css', map: true }) * ``` * - * @param opts Options. + * @param options Options. * @return Result with current root’s CSS. */ toResult(options?: ProcessOptions): Result diff --git a/node_modules/postcss/lib/rule.d.ts b/node_modules/postcss/lib/rule.d.ts index 5e873b4..da8aae7 100644 --- a/node_modules/postcss/lib/rule.d.ts +++ b/node_modules/postcss/lib/rule.d.ts @@ -40,7 +40,7 @@ declare namespace Rule { semicolon?: boolean } - export type RuleProps = ContainerProps & { + export type RuleProps = { /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ raws?: RuleRaws } & ( @@ -50,11 +50,11 @@ declare namespace Rule { selectors?: never } | { - /** Selectors of the rule represented as an array of strings. */ - selectors: string[] selector?: never + /** Selectors of the rule represented as an array of strings. */ + selectors: readonly string[] } - ) + ) & ContainerProps // eslint-disable-next-line @typescript-eslint/no-use-before-define export { Rule_ as default } diff --git a/node_modules/postcss/lib/tokenize.js b/node_modules/postcss/lib/tokenize.js index 39a20a3..1d41284 100644 --- a/node_modules/postcss/lib/tokenize.js +++ b/node_modules/postcss/lib/tokenize.js @@ -29,8 +29,8 @@ module.exports = function tokenizer(input, options = {}) { let css = input.css.valueOf() let ignore = options.ignoreErrors - let code, next, quote, content, escape - let escaped, escapePos, prev, n, currentToken + let code, content, escape, next, quote + let currentToken, escaped, escapePos, n, prev let length = css.length let pos = 0 diff --git a/node_modules/postcss/package.json b/node_modules/postcss/package.json index 991d040..4890c36 100755 --- a/node_modules/postcss/package.json +++ b/node_modules/postcss/package.json @@ -1,6 +1,6 @@ { "name": "postcss", - "version": "8.4.41", + "version": "8.4.49", "description": "Tool for transforming styles with JS plugins", "engines": { "node": "^10 || ^12 || >=14" @@ -75,8 +75,8 @@ }, "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "browser": { "./lib/terminal-highlight": false, diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Alphabetic.js b/node_modules/regenerate-unicode-properties/Binary_Property/Alphabetic.js index 1dc7e48..d5cfa4f 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Alphabetic.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Alphabetic.js @@ -1,15 +1,15 @@ -const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x345, 0x37F, 0x386, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x9B2, 0x9CE, 0x9D7, 0x9FC, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xD4E, 0xDBD, 0xDD6, 0xE4D, 0xE84, 0xEA5, 0xEC6, 0xECD, 0xF00, 0x1038, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0x2E2F, 0xA7D3, 0xA8C5, 0xA8FB, 0xA9CF, 0xAAC0, 0xAAC2, 0xFB3E, 0x10808, 0x1083C, 0x10F27, 0x110C2, 0x11176, 0x111DA, 0x111DC, 0x11237, 0x11288, 0x11350, 0x11357, 0x114C7, 0x11640, 0x11644, 0x116B8, 0x11909, 0x119E1, 0x11A9D, 0x11C40, 0x11D3A, 0x11D43, 0x11D98, 0x11FB0, 0x16FE3, 0x1B132, 0x1B155, 0x1BC9E, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E08F, 0x1E14E, 0x1E947, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); -set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5B0, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x657).addRange(0x659, 0x65F).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6E1, 0x6E8).addRange(0x6ED, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x710, 0x73F).addRange(0x74D, 0x7B1).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x817).addRange(0x81A, 0x82C).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x8D4, 0x8DF).addRange(0x8E3, 0x8E9).addRange(0x8F0, 0x93B).addRange(0x93D, 0x94C).addRange(0x94E, 0x950).addRange(0x955, 0x963).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8); +const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x345, 0x37F, 0x386, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x897, 0x9B2, 0x9CE, 0x9D7, 0x9FC, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xD4E, 0xDBD, 0xDD6, 0xE4D, 0xE84, 0xEA5, 0xEC6, 0xECD, 0xF00, 0x1038, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0x2E2F, 0xA7D3, 0xA8C5, 0xA8FB, 0xA9CF, 0xAAC0, 0xAAC2, 0xFB3E, 0x10808, 0x1083C, 0x10D69, 0x10EFC, 0x10F27, 0x110C2, 0x11176, 0x111DA, 0x111DC, 0x11237, 0x11288, 0x11350, 0x11357, 0x1138B, 0x1138E, 0x113C2, 0x113C5, 0x113D1, 0x113D3, 0x114C7, 0x11640, 0x11644, 0x116B8, 0x11909, 0x119E1, 0x11A9D, 0x11C40, 0x11D3A, 0x11D43, 0x11D98, 0x11FB0, 0x16FE3, 0x1B132, 0x1B155, 0x1BC9E, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E08F, 0x1E14E, 0x1E5F0, 0x1E947, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); +set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x363, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5B0, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x657).addRange(0x659, 0x65F).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6E1, 0x6E8).addRange(0x6ED, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x710, 0x73F).addRange(0x74D, 0x7B1).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x817).addRange(0x81A, 0x82C).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x8D4, 0x8DF).addRange(0x8E3, 0x8E9).addRange(0x8F0, 0x93B).addRange(0x93D, 0x94C).addRange(0x94E, 0x950).addRange(0x955, 0x963).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8); set.addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BD, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CC).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9F0, 0x9F1).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4C).addRange(0xA59, 0xA5C).addRange(0xA70, 0xA75).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABD, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACC).addRange(0xAE0, 0xAE3).addRange(0xAF9, 0xAFC).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3D, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4C).addRange(0xB56, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A); set.addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCC).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3D, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4C).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC80, 0xC83).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBD, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCC).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCF1, 0xCF3).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD3D, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD54, 0xD57).addRange(0xD5F, 0xD63).addRange(0xD7A, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDF2, 0xDF3).addRange(0xE01, 0xE3A).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A); set.addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB9).addRange(0xEBB, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF83).addRange(0xF88, 0xF97).addRange(0xF99, 0xFBC).addRange(0x1000, 0x1036).addRange(0x103B, 0x103F).addRange(0x1050, 0x108F).addRange(0x109A, 0x109D).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1713).addRange(0x171F, 0x1733).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17B3).addRange(0x17B6, 0x17C8).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B); -set.addRange(0x1930, 0x1938).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A61, 0x1A74).addRange(0x1ABF, 0x1AC0).addRange(0x1ACC, 0x1ACE).addRange(0x1B00, 0x1B33).addRange(0x1B35, 0x1B43).addRange(0x1B45, 0x1B4C).addRange(0x1B80, 0x1BA9).addRange(0x1BAC, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1BE7, 0x1BF1).addRange(0x1C00, 0x1C36).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1DE7, 0x1DF4).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188); -set.addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA674, 0xA67B).addRange(0xA67F, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA805).addRange(0xA807, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FF).addRange(0xA90A, 0xA92A).addRange(0xA930, 0xA952).addRange(0xA960, 0xA97C); +set.addRange(0x1930, 0x1938).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A61, 0x1A74).addRange(0x1ABF, 0x1AC0).addRange(0x1ACC, 0x1ACE).addRange(0x1B00, 0x1B33).addRange(0x1B35, 0x1B43).addRange(0x1B45, 0x1B4C).addRange(0x1B80, 0x1BA9).addRange(0x1BAC, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1BE7, 0x1BF1).addRange(0x1C00, 0x1C36).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C8A).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1DD3, 0x1DF4).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188); +set.addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA674, 0xA67B).addRange(0xA67F, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7DC).addRange(0xA7F2, 0xA805).addRange(0xA807, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FF).addRange(0xA90A, 0xA92A).addRange(0xA930, 0xA952).addRange(0xA960, 0xA97C); set.addRange(0xA980, 0xA9B2).addRange(0xA9B4, 0xA9BF).addRange(0xA9E0, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA60, 0xAA76).addRange(0xAA7A, 0xAABE).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEF).addRange(0xAAF2, 0xAAF5).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABEA).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D); -set.addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4); -set.addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11045).addRange(0x11071, 0x11075).addRange(0x11080, 0x110B8).addRange(0x110D0, 0x110E8).addRange(0x11100, 0x11132).addRange(0x11144, 0x11147).addRange(0x11150, 0x11172).addRange(0x11180, 0x111BF).addRange(0x111C1, 0x111C4).addRange(0x111CE, 0x111CF).addRange(0x11200, 0x11211).addRange(0x11213, 0x11234).addRange(0x1123E, 0x11241).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112E8).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133D, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134C).addRange(0x1135D, 0x11363).addRange(0x11400, 0x11441).addRange(0x11443, 0x11445).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114C1).addRange(0x114C4, 0x114C5); -set.addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115BE).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x1163E).addRange(0x11680, 0x116B5).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172A).addRange(0x11740, 0x11746).addRange(0x11800, 0x11838).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x1193C).addRange(0x1193F, 0x11942).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119DF).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A32).addRange(0x11A35, 0x11A3E).addRange(0x11A50, 0x11A97).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C3E).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D41).addRange(0x11D46, 0x11D47).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D96).addRange(0x11EE0, 0x11EF6).addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F40).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F); -set.addRange(0x13441, 0x13446).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734); -set.addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D); -set.addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); +set.addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x105C0, 0x105F3).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7); +set.addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10D4A, 0x10D65).addRange(0x10D6F, 0x10D85).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10EC2, 0x10EC4).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11045).addRange(0x11071, 0x11075).addRange(0x11080, 0x110B8).addRange(0x110D0, 0x110E8).addRange(0x11100, 0x11132).addRange(0x11144, 0x11147).addRange(0x11150, 0x11172).addRange(0x11180, 0x111BF).addRange(0x111C1, 0x111C4).addRange(0x111CE, 0x111CF).addRange(0x11200, 0x11211).addRange(0x11213, 0x11234).addRange(0x1123E, 0x11241).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112E8).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133D, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134C).addRange(0x1135D, 0x11363).addRange(0x11380, 0x11389).addRange(0x11390, 0x113B5); +set.addRange(0x113B7, 0x113C0).addRange(0x113C7, 0x113CA).addRange(0x113CC, 0x113CD).addRange(0x11400, 0x11441).addRange(0x11443, 0x11445).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114C1).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115BE).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x1163E).addRange(0x11680, 0x116B5).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172A).addRange(0x11740, 0x11746).addRange(0x11800, 0x11838).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x1193C).addRange(0x1193F, 0x11942).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119DF).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A32).addRange(0x11A35, 0x11A3E).addRange(0x11A50, 0x11A97).addRange(0x11AB0, 0x11AF8).addRange(0x11BC0, 0x11BE0).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C3E).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D41).addRange(0x11D46, 0x11D47).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91); +set.addRange(0x11D93, 0x11D96).addRange(0x11EE0, 0x11EF6).addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F40).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x13460, 0x143FA).addRange(0x14400, 0x14646).addRange(0x16100, 0x1612E).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16D40, 0x16D6C).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18CFF, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505); +set.addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E5D0, 0x1E5ED).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C); +set.addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Assigned.js b/node_modules/regenerate-unicode-properties/Binary_Property/Assigned.js index f4cddef..ffc1e99 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Assigned.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Assigned.js @@ -1,15 +1,15 @@ -const set = require('regenerate')(0x38C, 0x85E, 0x9B2, 0x9D7, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x1940, 0x1F59, 0x1F5B, 0x1F5D, 0x2D27, 0x2D2D, 0xA7D3, 0xFB3E, 0xFDCF, 0xFEFF, 0x101A0, 0x10808, 0x1083C, 0x1093F, 0x110CD, 0x11288, 0x11350, 0x11357, 0x11909, 0x11D3A, 0x11FB0, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E08F, 0x1E2FF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F7F0, 0xE0001); -set.addRange(0x0, 0x377).addRange(0x37A, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x52F).addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0x600, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7FA).addRange(0x7FD, 0x82D).addRange(0x830, 0x83E).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x898, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9FE).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA76).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0); +const set = require('regenerate')(0x38C, 0x85E, 0x9B2, 0x9D7, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x1940, 0x1F59, 0x1F5B, 0x1F5D, 0x2D27, 0x2D2D, 0xA7D3, 0xFB3E, 0xFDCF, 0xFEFF, 0x101A0, 0x10808, 0x1083C, 0x1093F, 0x110CD, 0x11288, 0x11350, 0x11357, 0x1138B, 0x1138E, 0x113C2, 0x113C5, 0x11909, 0x11D3A, 0x11FB0, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E08F, 0x1E2FF, 0x1E5FF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F7F0, 0xE0001); +set.addRange(0x0, 0x377).addRange(0x37A, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x52F).addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0x600, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7FA).addRange(0x7FD, 0x82D).addRange(0x830, 0x83E).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x897, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9FE).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA76).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0); set.addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAF1).addRange(0xAF9, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB77).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBFA).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC77, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9); set.addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4F).addRange(0xD54, 0xD63).addRange(0xD66, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0xE01, 0xE3A).addRange(0xE3F, 0xE5B).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECE).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF00, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF97).addRange(0xF99, 0xFBC).addRange(0xFBE, 0xFCC).addRange(0xFCE, 0xFDA).addRange(0x1000, 0x10C5).addRange(0x10D0, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5); -set.addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x137C).addRange(0x1380, 0x1399).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1400, 0x169C).addRange(0x16A0, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1736).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17DD).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1800, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1944, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x1A1B).addRange(0x1A1E, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B7E).addRange(0x1B80, 0x1BF3).addRange(0x1BFC, 0x1C37).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CC7).addRange(0x1CD0, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D); -set.addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x2000, 0x2064).addRange(0x2066, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x20A0, 0x20C0).addRange(0x20D0, 0x20F0).addRange(0x2100, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2CF3).addRange(0x2CF9, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2E5D).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x303F).addRange(0x3041, 0x3096).addRange(0x3099, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x3190, 0x31E3).addRange(0x31EF, 0x321E).addRange(0x3220, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xA4D0, 0xA62B).addRange(0xA640, 0xA6F7).addRange(0xA700, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9); -set.addRange(0xA7F2, 0xA82C).addRange(0xA830, 0xA839).addRange(0xA840, 0xA877).addRange(0xA880, 0xA8C5).addRange(0xA8CE, 0xA8D9).addRange(0xA8E0, 0xA953).addRange(0xA95F, 0xA97C).addRange(0xA980, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAAC2).addRange(0xAADB, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB6B).addRange(0xAB70, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xD800, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFE19).addRange(0xFE20, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF9, 0xFFFD); -set.addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FD).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x102E0, 0x102FB).addRange(0x10300, 0x10323).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x1039F, 0x103C3).addRange(0x103C8, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x1056F, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10857, 0x1089E).addRange(0x108A7, 0x108AF).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x1091B).addRange(0x1091F, 0x10939); -set.addRange(0x10980, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A3F, 0x10A48).addRange(0x10A50, 0x10A58).addRange(0x10A60, 0x10A9F).addRange(0x10AC0, 0x10AE6).addRange(0x10AEB, 0x10AF6).addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B55).addRange(0x10B58, 0x10B72).addRange(0x10B78, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10E60, 0x10E7E).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAD).addRange(0x10EB0, 0x10EB1).addRange(0x10EFD, 0x10F27).addRange(0x10F30, 0x10F59).addRange(0x10F70, 0x10F89).addRange(0x10FB0, 0x10FCB).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x1104D).addRange(0x11052, 0x11075).addRange(0x1107F, 0x110C2).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x11147).addRange(0x11150, 0x11176).addRange(0x11180, 0x111DF).addRange(0x111E1, 0x111F4).addRange(0x11200, 0x11211).addRange(0x11213, 0x11241).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9); -set.addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11400, 0x1145B).addRange(0x1145D, 0x11461).addRange(0x11480, 0x114C7).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115DD).addRange(0x11600, 0x11644).addRange(0x11650, 0x11659).addRange(0x11660, 0x1166C).addRange(0x11680, 0x116B9).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11746).addRange(0x11800, 0x1183B).addRange(0x118A0, 0x118F2).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11946).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E4).addRange(0x11A00, 0x11A47).addRange(0x11A50, 0x11AA2).addRange(0x11AB0, 0x11AF8).addRange(0x11B00, 0x11B09).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C45).addRange(0x11C50, 0x11C6C).addRange(0x11C70, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06); -set.addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF8).addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F59).addRange(0x11FC0, 0x11FF1).addRange(0x11FFF, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF2).addRange(0x13000, 0x13455).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF5).addRange(0x16B00, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E9A).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB); -set.addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BCA3).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D1EA).addRange(0x1D200, 0x1D245).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1DA8B).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9).addRange(0x1E4D0, 0x1E4F9); -set.addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887); -set.addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF).addRange(0xF0000, 0xFFFFD).addRange(0x100000, 0x10FFFD); +set.addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x137C).addRange(0x1380, 0x1399).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1400, 0x169C).addRange(0x16A0, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1736).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17DD).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1800, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1944, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x1A1B).addRange(0x1A1E, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B4E, 0x1BF3).addRange(0x1BFC, 0x1C37).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C8A).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CC7).addRange(0x1CD0, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57); +set.addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x2000, 0x2064).addRange(0x2066, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x20A0, 0x20C0).addRange(0x20D0, 0x20F0).addRange(0x2100, 0x218B).addRange(0x2190, 0x2429).addRange(0x2440, 0x244A).addRange(0x2460, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2CF3).addRange(0x2CF9, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2E5D).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x303F).addRange(0x3041, 0x3096).addRange(0x3099, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x3190, 0x31E5).addRange(0x31EF, 0x321E).addRange(0x3220, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xA4D0, 0xA62B).addRange(0xA640, 0xA6F7).addRange(0xA700, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7DC).addRange(0xA7F2, 0xA82C); +set.addRange(0xA830, 0xA839).addRange(0xA840, 0xA877).addRange(0xA880, 0xA8C5).addRange(0xA8CE, 0xA8D9).addRange(0xA8E0, 0xA953).addRange(0xA95F, 0xA97C).addRange(0xA980, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAAC2).addRange(0xAADB, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB6B).addRange(0xAB70, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xD800, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFE19).addRange(0xFE20, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF9, 0xFFFD).addRange(0x10000, 0x1000B); +set.addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FD).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x102E0, 0x102FB).addRange(0x10300, 0x10323).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x1039F, 0x103C3).addRange(0x103C8, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x1056F, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x105C0, 0x105F3).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10857, 0x1089E).addRange(0x108A7, 0x108AF).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x1091B).addRange(0x1091F, 0x10939); +set.addRange(0x10980, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A3F, 0x10A48).addRange(0x10A50, 0x10A58).addRange(0x10A60, 0x10A9F).addRange(0x10AC0, 0x10AE6).addRange(0x10AEB, 0x10AF6).addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B55).addRange(0x10B58, 0x10B72).addRange(0x10B78, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10D40, 0x10D65).addRange(0x10D69, 0x10D85).addRange(0x10D8E, 0x10D8F).addRange(0x10E60, 0x10E7E).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAD).addRange(0x10EB0, 0x10EB1).addRange(0x10EC2, 0x10EC4).addRange(0x10EFC, 0x10F27).addRange(0x10F30, 0x10F59).addRange(0x10F70, 0x10F89).addRange(0x10FB0, 0x10FCB).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x1104D).addRange(0x11052, 0x11075).addRange(0x1107F, 0x110C2).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x11147).addRange(0x11150, 0x11176).addRange(0x11180, 0x111DF).addRange(0x111E1, 0x111F4).addRange(0x11200, 0x11211).addRange(0x11213, 0x11241).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D); +set.addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11380, 0x11389).addRange(0x11390, 0x113B5).addRange(0x113B7, 0x113C0).addRange(0x113C7, 0x113CA).addRange(0x113CC, 0x113D5).addRange(0x113D7, 0x113D8).addRange(0x113E1, 0x113E2).addRange(0x11400, 0x1145B).addRange(0x1145D, 0x11461).addRange(0x11480, 0x114C7).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115DD).addRange(0x11600, 0x11644).addRange(0x11650, 0x11659).addRange(0x11660, 0x1166C).addRange(0x11680, 0x116B9).addRange(0x116C0, 0x116C9).addRange(0x116D0, 0x116E3).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11746).addRange(0x11800, 0x1183B).addRange(0x118A0, 0x118F2).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11946).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E4); +set.addRange(0x11A00, 0x11A47).addRange(0x11A50, 0x11AA2).addRange(0x11AB0, 0x11AF8).addRange(0x11B00, 0x11B09).addRange(0x11BC0, 0x11BE1).addRange(0x11BF0, 0x11BF9).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C45).addRange(0x11C50, 0x11C6C).addRange(0x11C70, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF8).addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F5A).addRange(0x11FC0, 0x11FF1).addRange(0x11FFF, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF2).addRange(0x13000, 0x13455).addRange(0x13460, 0x143FA).addRange(0x14400, 0x14646).addRange(0x16100, 0x16139).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF5).addRange(0x16B00, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F); +set.addRange(0x16D40, 0x16D79).addRange(0x16E40, 0x16E9A).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18CFF, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BCA3).addRange(0x1CC00, 0x1CCF9).addRange(0x1CD00, 0x1CEB3).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D1EA).addRange(0x1D200, 0x1D245).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5); +set.addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1DA8B).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9).addRange(0x1E4D0, 0x1E4F9).addRange(0x1E5D0, 0x1E5FA).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093); +set.addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8BB).addRange(0x1F8C0, 0x1F8C1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA89).addRange(0x1FA8F, 0x1FAC6).addRange(0x1FACE, 0x1FADC).addRange(0x1FADF, 0x1FAE9).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF).addRange(0xF0000, 0xFFFFD).addRange(0x100000, 0x10FFFD); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Bidi_Mirrored.js b/node_modules/regenerate-unicode-properties/Binary_Property/Bidi_Mirrored.js index 2dc0f51..b071116 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Bidi_Mirrored.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Bidi_Mirrored.js @@ -1,4 +1,4 @@ const set = require('regenerate')(0x3C, 0x3E, 0x5B, 0x5D, 0x7B, 0x7D, 0xAB, 0xBB, 0x2140, 0x2211, 0x2224, 0x2226, 0x2239, 0x2262, 0x2298, 0x27C0, 0x29B8, 0x29C9, 0x29E1, 0x2A24, 0x2A26, 0x2A29, 0x2ADC, 0x2ADE, 0x2AF3, 0x2AFD, 0x2BFE, 0xFF1C, 0xFF1E, 0xFF3B, 0xFF3D, 0xFF5B, 0xFF5D, 0x1D6DB, 0x1D715, 0x1D74F, 0x1D789, 0x1D7C3); -set.addRange(0x28, 0x29).addRange(0xF3A, 0xF3D).addRange(0x169B, 0x169C).addRange(0x2039, 0x203A).addRange(0x2045, 0x2046).addRange(0x207D, 0x207E).addRange(0x208D, 0x208E).addRange(0x2201, 0x2204).addRange(0x2208, 0x220D).addRange(0x2215, 0x2216).addRange(0x221A, 0x221D).addRange(0x221F, 0x2222).addRange(0x222B, 0x2233).addRange(0x223B, 0x224C).addRange(0x2252, 0x2255).addRange(0x225F, 0x2260).addRange(0x2264, 0x226B).addRange(0x226E, 0x228C).addRange(0x228F, 0x2292).addRange(0x22A2, 0x22A3).addRange(0x22A6, 0x22B8).addRange(0x22BE, 0x22BF).addRange(0x22C9, 0x22CD).addRange(0x22D0, 0x22D1).addRange(0x22D6, 0x22ED).addRange(0x22F0, 0x22FF).addRange(0x2308, 0x230B).addRange(0x2320, 0x2321).addRange(0x2329, 0x232A).addRange(0x2768, 0x2775).addRange(0x27C3, 0x27C6).addRange(0x27C8, 0x27C9).addRange(0x27CB, 0x27CD).addRange(0x27D3, 0x27D6).addRange(0x27DC, 0x27DE).addRange(0x27E2, 0x27EF).addRange(0x2983, 0x2998).addRange(0x299B, 0x29A0).addRange(0x29A2, 0x29AF).addRange(0x29C0, 0x29C5).addRange(0x29CE, 0x29D2).addRange(0x29D4, 0x29D5).addRange(0x29D8, 0x29DC).addRange(0x29E3, 0x29E5).addRange(0x29E8, 0x29E9).addRange(0x29F4, 0x29F9).addRange(0x29FC, 0x29FD).addRange(0x2A0A, 0x2A1C).addRange(0x2A1E, 0x2A21).addRange(0x2A2B, 0x2A2E).addRange(0x2A34, 0x2A35); +set.addRange(0x28, 0x29).addRange(0xF3A, 0xF3D).addRange(0x169B, 0x169C).addRange(0x2039, 0x203A).addRange(0x2045, 0x2046).addRange(0x207D, 0x207E).addRange(0x208D, 0x208E).addRange(0x2201, 0x2204).addRange(0x2208, 0x220D).addRange(0x2215, 0x2216).addRange(0x221A, 0x221D).addRange(0x221F, 0x2222).addRange(0x222B, 0x2233).addRange(0x223B, 0x224C).addRange(0x2252, 0x2255).addRange(0x225F, 0x2260).addRange(0x2264, 0x226B).addRange(0x226D, 0x228C).addRange(0x228F, 0x2292).addRange(0x22A2, 0x22A3).addRange(0x22A6, 0x22B8).addRange(0x22BE, 0x22BF).addRange(0x22C9, 0x22CD).addRange(0x22D0, 0x22D1).addRange(0x22D6, 0x22ED).addRange(0x22F0, 0x22FF).addRange(0x2308, 0x230B).addRange(0x2320, 0x2321).addRange(0x2329, 0x232A).addRange(0x2768, 0x2775).addRange(0x27C3, 0x27C6).addRange(0x27C8, 0x27C9).addRange(0x27CB, 0x27CD).addRange(0x27D3, 0x27D6).addRange(0x27DC, 0x27DE).addRange(0x27E2, 0x27EF).addRange(0x2983, 0x2998).addRange(0x299B, 0x29A0).addRange(0x29A2, 0x29AF).addRange(0x29C0, 0x29C5).addRange(0x29CE, 0x29D2).addRange(0x29D4, 0x29D5).addRange(0x29D8, 0x29DC).addRange(0x29E3, 0x29E5).addRange(0x29E8, 0x29E9).addRange(0x29F4, 0x29F9).addRange(0x29FC, 0x29FD).addRange(0x2A0A, 0x2A1C).addRange(0x2A1E, 0x2A21).addRange(0x2A2B, 0x2A2E).addRange(0x2A34, 0x2A35); set.addRange(0x2A3C, 0x2A3E).addRange(0x2A57, 0x2A58).addRange(0x2A64, 0x2A65).addRange(0x2A6A, 0x2A6D).addRange(0x2A6F, 0x2A70).addRange(0x2A73, 0x2A74).addRange(0x2A79, 0x2AA3).addRange(0x2AA6, 0x2AAD).addRange(0x2AAF, 0x2AD6).addRange(0x2AE2, 0x2AE6).addRange(0x2AEC, 0x2AEE).addRange(0x2AF7, 0x2AFB).addRange(0x2E02, 0x2E05).addRange(0x2E09, 0x2E0A).addRange(0x2E0C, 0x2E0D).addRange(0x2E1C, 0x2E1D).addRange(0x2E20, 0x2E29).addRange(0x2E55, 0x2E5C).addRange(0x3008, 0x3011).addRange(0x3014, 0x301B).addRange(0xFE59, 0xFE5E).addRange(0xFE64, 0xFE65).addRange(0xFF08, 0xFF09).addRange(0xFF5F, 0xFF60).addRange(0xFF62, 0xFF63); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Case_Ignorable.js b/node_modules/regenerate-unicode-properties/Binary_Property/Case_Ignorable.js index 5e0087a..77c626f 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Case_Ignorable.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Case_Ignorable.js @@ -1,8 +1,8 @@ -const set = require('regenerate')(0x27, 0x2E, 0x3A, 0x5E, 0x60, 0xA8, 0xAD, 0xAF, 0xB4, 0x37A, 0x387, 0x559, 0x55F, 0x5BF, 0x5C7, 0x5F4, 0x61C, 0x640, 0x670, 0x70F, 0x711, 0x7FA, 0x7FD, 0x888, 0x93A, 0x93C, 0x94D, 0x971, 0x981, 0x9BC, 0x9CD, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB3F, 0xB4D, 0xB82, 0xBC0, 0xBCD, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC6, 0xD4D, 0xD81, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xEC6, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x10FC, 0x17C6, 0x17D7, 0x17DD, 0x1843, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1AA7, 0x1B34, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x1D78, 0x1FBD, 0x2024, 0x2027, 0x2071, 0x207F, 0x2D6F, 0x2D7F, 0x2E2F, 0x3005, 0x303B, 0xA015, 0xA60C, 0xA67F, 0xA770, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9CF, 0xAA43, 0xAA4C, 0xAA70, 0xAA7C, 0xAAB0, 0xAAC1, 0xAADD, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0xFE13, 0xFE52, 0xFE55, 0xFEFF, 0xFF07, 0xFF0E, 0xFF1A, 0xFF3E, 0xFF40, 0xFF70, 0xFFE3, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110BD, 0x110C2, 0x110CD, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x11241, 0x112DF, 0x11340, 0x11446, 0x1145E, 0x114BA, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x11F40, 0x11F42, 0x16F4F, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E2AE, 0xE0001); -set.addRange(0xB7, 0xB8).addRange(0x2B0, 0x36F).addRange(0x374, 0x375).addRange(0x384, 0x385).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x600, 0x605).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DD).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F5).addRange(0x816, 0x82D).addRange(0x859, 0x85B).addRange(0x890, 0x891).addRange(0x898, 0x89F).addRange(0x8C9, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB41, 0xB44).addRange(0xB55, 0xB56).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C).addRange(0xD41, 0xD44).addRange(0xD62, 0xD63); +const set = require('regenerate')(0x27, 0x2E, 0x3A, 0x5E, 0x60, 0xA8, 0xAD, 0xAF, 0xB4, 0x37A, 0x387, 0x559, 0x55F, 0x5BF, 0x5C7, 0x5F4, 0x61C, 0x640, 0x670, 0x70F, 0x711, 0x7FA, 0x7FD, 0x888, 0x93A, 0x93C, 0x94D, 0x971, 0x981, 0x9BC, 0x9CD, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB3F, 0xB4D, 0xB82, 0xBC0, 0xBCD, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC6, 0xD4D, 0xD81, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xEC6, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x10FC, 0x17C6, 0x17D7, 0x17DD, 0x1843, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1AA7, 0x1B34, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x1D78, 0x1FBD, 0x2024, 0x2027, 0x2071, 0x207F, 0x2D6F, 0x2D7F, 0x2E2F, 0x3005, 0x303B, 0xA015, 0xA60C, 0xA67F, 0xA770, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9CF, 0xAA43, 0xAA4C, 0xAA70, 0xAA7C, 0xAAB0, 0xAAC1, 0xAADD, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0xFE13, 0xFE52, 0xFE55, 0xFEFF, 0xFF07, 0xFF0E, 0xFF1A, 0xFF3E, 0xFF40, 0xFF70, 0xFFE3, 0x101FD, 0x102E0, 0x10A3F, 0x10D4E, 0x10D6F, 0x11001, 0x11070, 0x110BD, 0x110C2, 0x110CD, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x11241, 0x112DF, 0x11340, 0x113CE, 0x113D0, 0x113D2, 0x11446, 0x1145E, 0x114BA, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x1171D, 0x1171F, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x11F40, 0x11F42, 0x11F5A, 0x16F4F, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E2AE, 0xE0001); +set.addRange(0xB7, 0xB8).addRange(0x2B0, 0x36F).addRange(0x374, 0x375).addRange(0x384, 0x385).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x600, 0x605).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DD).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F5).addRange(0x816, 0x82D).addRange(0x859, 0x85B).addRange(0x890, 0x891).addRange(0x897, 0x89F).addRange(0x8C9, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB41, 0xB44).addRange(0xB55, 0xB56).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C).addRange(0xD41, 0xD44).addRange(0xD62, 0xD63); set.addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE46, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECE).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1714).addRange(0x1732, 0x1733).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180F).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B36, 0x1B3A).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BA9).addRange(0x1BAB, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF1).addRange(0x1C2C, 0x1C33).addRange(0x1C36, 0x1C37).addRange(0x1C78, 0x1C7D).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE0); set.addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1D2C, 0x1D6A).addRange(0x1D9B, 0x1DFF).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x200B, 0x200F).addRange(0x2018, 0x2019).addRange(0x202A, 0x202E).addRange(0x2060, 0x2064).addRange(0x2066, 0x206F).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20F0).addRange(0x2C7C, 0x2C7D).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302D).addRange(0x3031, 0x3035).addRange(0x3099, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xA4F8, 0xA4FD).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69C, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA7F2, 0xA7F4).addRange(0xA7F8, 0xA7F9).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xA9E5, 0xA9E6).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xAAF3, 0xAAF4).addRange(0xAB5B, 0xAB5F).addRange(0xAB69, 0xAB6B); -set.addRange(0xFBB2, 0xFBC2).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0xFFF9, 0xFFFB).addRange(0x10376, 0x1037A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC).addRange(0x10EFD, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE).addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231).addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x1171D, 0x1171F).addRange(0x11722, 0x11725); -set.addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x11F00, 0x11F01).addRange(0x11F36, 0x11F3A).addRange(0x13430, 0x13440).addRange(0x13447, 0x13455).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1BC9D, 0x1BC9E).addRange(0x1BCA0, 0x1BCA3).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D173, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006); -set.addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E130, 0x1E13D).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E4EB, 0x1E4EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94B).addRange(0x1F3FB, 0x1F3FF).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF); +set.addRange(0xFBB2, 0xFBC2).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0xFFF9, 0xFFFB).addRange(0x10376, 0x1037A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10D69, 0x10D6D).addRange(0x10EAB, 0x10EAC).addRange(0x10EFC, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE).addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231).addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x113BB, 0x113C0).addRange(0x113E1, 0x113E2).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640); +set.addRange(0x116B0, 0x116B5).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x11F00, 0x11F01).addRange(0x11F36, 0x11F3A).addRange(0x13430, 0x13440).addRange(0x13447, 0x13455).addRange(0x1611E, 0x16129).addRange(0x1612D, 0x1612F).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16D40, 0x16D42).addRange(0x16D6B, 0x16D6C).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1BC9D, 0x1BC9E).addRange(0x1BCA0, 0x1BCA3).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D173, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD); +set.addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E130, 0x1E13D).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E4EB, 0x1E4EF).addRange(0x1E5EE, 0x1E5EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94B).addRange(0x1F3FB, 0x1F3FF).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Cased.js b/node_modules/regenerate-unicode-properties/Binary_Property/Cased.js index 2d455fe..0f81695 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Cased.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Cased.js @@ -1,5 +1,5 @@ const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x345, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2139, 0x214E, 0x2D27, 0x2D2D, 0xA7D3, 0x10780, 0x1D4A2, 0x1D4BB, 0x1D546); -set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x1BA).addRange(0x1BC, 0x1BF).addRange(0x1C4, 0x293).addRange(0x295, 0x2B8).addRange(0x2C0, 0x2C1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2134).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149); -set.addRange(0x2160, 0x217F).addRange(0x2183, 0x2184).addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69D).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA78E).addRange(0xA790, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA7F6).addRange(0xA7F8, 0xA7FA).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10783, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514); -set.addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E900, 0x1E943).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189); +set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x1BA).addRange(0x1BC, 0x1BF).addRange(0x1C4, 0x293).addRange(0x295, 0x2B8).addRange(0x2C0, 0x2C1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C8A).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2134).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149); +set.addRange(0x2160, 0x217F).addRange(0x2183, 0x2184).addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69D).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA78E).addRange(0xA790, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7DC).addRange(0xA7F2, 0xA7F6).addRange(0xA7F8, 0xA7FA).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10783, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D50, 0x10D65).addRange(0x10D70, 0x10D85).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505); +set.addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E900, 0x1E943).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Casefolded.js b/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Casefolded.js index 3aab240..112ef4d 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Casefolded.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Casefolded.js @@ -1,4 +1,4 @@ -const set = require('regenerate')(0xB5, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x17F, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x345, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3C2, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x587, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2126, 0x2132, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5); -set.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDF).addRange(0x149, 0x14A).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1C5).addRange(0x1C7, 0x1C8).addRange(0x1CA, 0x1CB).addRange(0x1F1, 0x1F2).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3CF, 0x3D1).addRange(0x3D5, 0x3D6).addRange(0x3F0, 0x3F1).addRange(0x3F4, 0x3F5).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1E9A, 0x1E9B).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F80, 0x1FAF).addRange(0x1FB2, 0x1FB4); -set.addRange(0x1FB7, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC7, 0x1FCC).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF7, 0x1FFC).addRange(0x212A, 0x212B).addRange(0x2160, 0x216F).addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1E900, 0x1E921); +const set = require('regenerate')(0xB5, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x17F, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x345, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3C2, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x587, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2126, 0x2132, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7DA, 0xA7DC, 0xA7F5); +set.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDF).addRange(0x149, 0x14A).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1C5).addRange(0x1C7, 0x1C8).addRange(0x1CA, 0x1CB).addRange(0x1F1, 0x1F2).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3CF, 0x3D1).addRange(0x3D5, 0x3D6).addRange(0x3F0, 0x3F1).addRange(0x3F4, 0x3F5).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C89).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1E9A, 0x1E9B).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F80, 0x1FAF).addRange(0x1FB2, 0x1FB4); +set.addRange(0x1FB7, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC7, 0x1FCC).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF7, 0x1FFC).addRange(0x212A, 0x212B).addRange(0x2160, 0x216F).addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xA7CB, 0xA7CC).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x10D50, 0x10D65).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1E900, 0x1E921); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Casemapped.js b/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Casemapped.js index 7bcaa87..5d96ff2 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Casemapped.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Casemapped.js @@ -1,5 +1,5 @@ -const set = require('regenerate')(0xB5, 0x1BF, 0x259, 0x263, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1D79, 0x1D7D, 0x1D8E, 0x1E9E, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2126, 0x2132, 0x214E, 0x2D27, 0x2D2D, 0xAB53); -set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x137).addRange(0x139, 0x18C).addRange(0x18E, 0x19A).addRange(0x19C, 0x1A9).addRange(0x1AC, 0x1B9).addRange(0x1BC, 0x1BD).addRange(0x1C4, 0x220).addRange(0x222, 0x233).addRange(0x23A, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x265, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3D1).addRange(0x3D5, 0x3F5).addRange(0x3F7, 0x3FB).addRange(0x3FD, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x561, 0x587).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1E00, 0x1E9B).addRange(0x1EA0, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC); -set.addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x212A, 0x212B).addRange(0x2160, 0x217F).addRange(0x2183, 0x2184).addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2C70).addRange(0x2C72, 0x2C73).addRange(0x2C75, 0x2C76).addRange(0x2C7E, 0x2CE3).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69B).addRange(0xA722, 0xA72F).addRange(0xA732, 0xA76F).addRange(0xA779, 0xA787).addRange(0xA78B, 0xA78D).addRange(0xA790, 0xA794).addRange(0xA796, 0xA7AE).addRange(0xA7B0, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D6, 0xA7D9).addRange(0xA7F5, 0xA7F6).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1E900, 0x1E943); -set; +const set = require('regenerate')(0xB5, 0x1BF, 0x259, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1D79, 0x1D7D, 0x1D8E, 0x1E9E, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2126, 0x2132, 0x214E, 0x2D27, 0x2D2D, 0xAB53); +set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x137).addRange(0x139, 0x18C).addRange(0x18E, 0x1A9).addRange(0x1AC, 0x1B9).addRange(0x1BC, 0x1BD).addRange(0x1C4, 0x220).addRange(0x222, 0x233).addRange(0x23A, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x263, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3D1).addRange(0x3D5, 0x3F5).addRange(0x3F7, 0x3FB).addRange(0x3FD, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x561, 0x587).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C8A).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1E00, 0x1E9B).addRange(0x1EA0, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4); +set.addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x212A, 0x212B).addRange(0x2160, 0x217F).addRange(0x2183, 0x2184).addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2C70).addRange(0x2C72, 0x2C73).addRange(0x2C75, 0x2C76).addRange(0x2C7E, 0x2CE3).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69B).addRange(0xA722, 0xA72F).addRange(0xA732, 0xA76F).addRange(0xA779, 0xA787).addRange(0xA78B, 0xA78D).addRange(0xA790, 0xA794).addRange(0xA796, 0xA7AE).addRange(0xA7B0, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D6, 0xA7DC).addRange(0xA7F5, 0xA7F6).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D50, 0x10D65).addRange(0x10D70, 0x10D85).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F); +set.addRange(0x1E900, 0x1E943); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Lowercased.js b/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Lowercased.js index ea6308e..fb08943 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Lowercased.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Lowercased.js @@ -1,4 +1,4 @@ -const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2126, 0x2132, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5); +const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1C89, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2126, 0x2132, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7DA, 0xA7DC, 0xA7F5); set.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDE).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1C5).addRange(0x1C7, 0x1C8).addRange(0x1CA, 0x1CB).addRange(0x1F1, 0x1F2).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13A0, 0x13F5).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F88, 0x1F8F).addRange(0x1F98, 0x1F9F).addRange(0x1FA8, 0x1FAF).addRange(0x1FB8, 0x1FBC).addRange(0x1FC8, 0x1FCC).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF8, 0x1FFC).addRange(0x212A, 0x212B); -set.addRange(0x2160, 0x216F).addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1E900, 0x1E921); +set.addRange(0x2160, 0x216F).addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xA7CB, 0xA7CC).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x10D50, 0x10D65).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1E900, 0x1E921); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_NFKC_Casefolded.js b/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_NFKC_Casefolded.js index 4cfa608..97660be 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_NFKC_Casefolded.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_NFKC_Casefolded.js @@ -1,7 +1,7 @@ -const set = require('regenerate')(0xA0, 0xA8, 0xAA, 0xAD, 0xAF, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x136, 0x139, 0x13B, 0x13D, 0x143, 0x145, 0x147, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x17F, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x34F, 0x370, 0x372, 0x374, 0x376, 0x37A, 0x38C, 0x3C2, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x587, 0x61C, 0x9DF, 0xA33, 0xA36, 0xA5E, 0xE33, 0xEB3, 0xF0C, 0xF43, 0xF4D, 0xF52, 0xF57, 0xF5C, 0xF69, 0xF73, 0xF81, 0xF93, 0xF9D, 0xFA2, 0xFA7, 0xFAC, 0xFB9, 0x10C7, 0x10CD, 0x10FC, 0x1D78, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x1F71, 0x1F73, 0x1F75, 0x1F77, 0x1F79, 0x1F7B, 0x1F7D, 0x1FD3, 0x1FE3, 0x2011, 0x2017, 0x203C, 0x203E, 0x2057, 0x20A8, 0x2124, 0x2126, 0x2128, 0x2183, 0x2189, 0x2A0C, 0x2ADC, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0x2D6F, 0x2E9F, 0x2EF3, 0x3000, 0x3036, 0x309F, 0x30FF, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA770, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xAB69, 0xFA10, 0xFA12, 0xFA20, 0xFA22, 0xFB1D, 0xFB3E, 0xFE74, 0xFEFF, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F190); +const set = require('regenerate')(0xA0, 0xA8, 0xAA, 0xAD, 0xAF, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x136, 0x139, 0x13B, 0x13D, 0x143, 0x145, 0x147, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x17F, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x34F, 0x370, 0x372, 0x374, 0x376, 0x37A, 0x38C, 0x3C2, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x587, 0x61C, 0x9DF, 0xA33, 0xA36, 0xA5E, 0xE33, 0xEB3, 0xF0C, 0xF43, 0xF4D, 0xF52, 0xF57, 0xF5C, 0xF69, 0xF73, 0xF81, 0xF93, 0xF9D, 0xFA2, 0xFA7, 0xFAC, 0xFB9, 0x10C7, 0x10CD, 0x10FC, 0x1D78, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x1F71, 0x1F73, 0x1F75, 0x1F77, 0x1F79, 0x1F7B, 0x1F7D, 0x1FD3, 0x1FE3, 0x2011, 0x2017, 0x203C, 0x203E, 0x2057, 0x20A8, 0x2124, 0x2126, 0x2128, 0x2183, 0x2189, 0x2A0C, 0x2ADC, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0x2D6F, 0x2E9F, 0x2EF3, 0x3000, 0x3036, 0x309F, 0x30FF, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA770, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7DA, 0xA7DC, 0xAB69, 0xFA10, 0xFA12, 0xFA20, 0xFA22, 0xFB1D, 0xFB3E, 0xFE74, 0xFEFF, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F190); set.addRange(0x41, 0x5A).addRange(0xB2, 0xB5).addRange(0xB8, 0xBA).addRange(0xBC, 0xBE).addRange(0xC0, 0xD6).addRange(0xD8, 0xDF).addRange(0x132, 0x134).addRange(0x13F, 0x141).addRange(0x149, 0x14A).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1CD).addRange(0x1F1, 0x1F4).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x2B0, 0x2B8).addRange(0x2D8, 0x2DD).addRange(0x2E0, 0x2E4).addRange(0x340, 0x341).addRange(0x343, 0x345).addRange(0x37E, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3CF, 0x3D6).addRange(0x3F0, 0x3F2).addRange(0x3F4, 0x3F5).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x675, 0x678).addRange(0x958, 0x95F).addRange(0x9DC, 0x9DD).addRange(0xA59, 0xA5B).addRange(0xB5C, 0xB5D).addRange(0xEDC, 0xEDD); -set.addRange(0xF75, 0xF79).addRange(0x10A0, 0x10C5).addRange(0x115F, 0x1160).addRange(0x13F8, 0x13FD).addRange(0x17B4, 0x17B5).addRange(0x180B, 0x180F).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D2C, 0x1D2E).addRange(0x1D30, 0x1D3A).addRange(0x1D3C, 0x1D4D).addRange(0x1D4F, 0x1D6A).addRange(0x1D9B, 0x1DBF).addRange(0x1E9A, 0x1E9B).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F80, 0x1FAF).addRange(0x1FB2, 0x1FB4).addRange(0x1FB7, 0x1FC4).addRange(0x1FC7, 0x1FCF).addRange(0x1FD8, 0x1FDB).addRange(0x1FDD, 0x1FDF).addRange(0x1FE8, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF7, 0x1FFE).addRange(0x2000, 0x200F).addRange(0x2024, 0x2026).addRange(0x202A, 0x202F).addRange(0x2033, 0x2034).addRange(0x2036, 0x2037).addRange(0x2047, 0x2049).addRange(0x205F, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x2100, 0x2103).addRange(0x2105, 0x2107).addRange(0x2109, 0x2113).addRange(0x2115, 0x2116).addRange(0x2119, 0x211D).addRange(0x2120, 0x2122).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213B, 0x2140).addRange(0x2145, 0x2149).addRange(0x2150, 0x217F).addRange(0x222C, 0x222D); -set.addRange(0x222F, 0x2230).addRange(0x2329, 0x232A).addRange(0x2460, 0x24EA).addRange(0x2A74, 0x2A76).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7C, 0x2C80).addRange(0x2F00, 0x2FD5).addRange(0x3038, 0x303A).addRange(0x309B, 0x309C).addRange(0x3131, 0x318E).addRange(0x3192, 0x319F).addRange(0x3200, 0x321E).addRange(0x3220, 0x3247).addRange(0x3250, 0x327E).addRange(0x3280, 0x33FF).addRange(0xA69C, 0xA69D).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xA7F2, 0xA7F5).addRange(0xA7F8, 0xA7F9).addRange(0xAB5C, 0xAB5F).addRange(0xAB70, 0xABBF).addRange(0xF900, 0xFA0D).addRange(0xFA15, 0xFA1E).addRange(0xFA25, 0xFA26).addRange(0xFA2A, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFC).addRange(0xFE00, 0xFE19).addRange(0xFE30, 0xFE44).addRange(0xFE47, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE72).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFFBE).addRange(0xFFC2, 0xFFC7); -set.addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF0, 0xFFF8).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10781, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1BCA0, 0x1BCA3).addRange(0x1D15E, 0x1D164).addRange(0x1D173, 0x1D17A).addRange(0x1D1BB, 0x1D1C0).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E030, 0x1E06D).addRange(0x1E900, 0x1E921).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A); -set.addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1F100, 0x1F10A).addRange(0x1F110, 0x1F12E).addRange(0x1F130, 0x1F14F).addRange(0x1F16A, 0x1F16C).addRange(0x1F200, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1FBF0, 0x1FBF9).addRange(0x2F800, 0x2FA1D).addRange(0xE0000, 0xE0FFF); +set.addRange(0xF75, 0xF79).addRange(0x10A0, 0x10C5).addRange(0x115F, 0x1160).addRange(0x13F8, 0x13FD).addRange(0x17B4, 0x17B5).addRange(0x180B, 0x180F).addRange(0x1C80, 0x1C89).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D2C, 0x1D2E).addRange(0x1D30, 0x1D3A).addRange(0x1D3C, 0x1D4D).addRange(0x1D4F, 0x1D6A).addRange(0x1D9B, 0x1DBF).addRange(0x1E9A, 0x1E9B).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F80, 0x1FAF).addRange(0x1FB2, 0x1FB4).addRange(0x1FB7, 0x1FC4).addRange(0x1FC7, 0x1FCF).addRange(0x1FD8, 0x1FDB).addRange(0x1FDD, 0x1FDF).addRange(0x1FE8, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF7, 0x1FFE).addRange(0x2000, 0x200F).addRange(0x2024, 0x2026).addRange(0x202A, 0x202F).addRange(0x2033, 0x2034).addRange(0x2036, 0x2037).addRange(0x2047, 0x2049).addRange(0x205F, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x2100, 0x2103).addRange(0x2105, 0x2107).addRange(0x2109, 0x2113).addRange(0x2115, 0x2116).addRange(0x2119, 0x211D).addRange(0x2120, 0x2122).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213B, 0x2140).addRange(0x2145, 0x2149).addRange(0x2150, 0x217F).addRange(0x222C, 0x222D); +set.addRange(0x222F, 0x2230).addRange(0x2329, 0x232A).addRange(0x2460, 0x24EA).addRange(0x2A74, 0x2A76).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7C, 0x2C80).addRange(0x2F00, 0x2FD5).addRange(0x3038, 0x303A).addRange(0x309B, 0x309C).addRange(0x3131, 0x318E).addRange(0x3192, 0x319F).addRange(0x3200, 0x321E).addRange(0x3220, 0x3247).addRange(0x3250, 0x327E).addRange(0x3280, 0x33FF).addRange(0xA69C, 0xA69D).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xA7CB, 0xA7CC).addRange(0xA7F2, 0xA7F5).addRange(0xA7F8, 0xA7F9).addRange(0xAB5C, 0xAB5F).addRange(0xAB70, 0xABBF).addRange(0xF900, 0xFA0D).addRange(0xFA15, 0xFA1E).addRange(0xFA25, 0xFA26).addRange(0xFA2A, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFC).addRange(0xFE00, 0xFE19).addRange(0xFE30, 0xFE44).addRange(0xFE47, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE72).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFFBE); +set.addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF0, 0xFFF8).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10781, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10C80, 0x10CB2).addRange(0x10D50, 0x10D65).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1BCA0, 0x1BCA3).addRange(0x1CCD6, 0x1CCF9).addRange(0x1D15E, 0x1D164).addRange(0x1D173, 0x1D17A).addRange(0x1D1BB, 0x1D1C0).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E030, 0x1E06D).addRange(0x1E900, 0x1E921).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F); +set.addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1F100, 0x1F10A).addRange(0x1F110, 0x1F12E).addRange(0x1F130, 0x1F14F).addRange(0x1F16A, 0x1F16C).addRange(0x1F200, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1FBF0, 0x1FBF9).addRange(0x2F800, 0x2FA1D).addRange(0xE0000, 0xE0FFF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Titlecased.js b/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Titlecased.js index e7e7ac8..6f3b18c 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Titlecased.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Titlecased.js @@ -1,4 +1,4 @@ -const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x18C, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1B9, 0x1BD, 0x1BF, 0x1C4, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x233, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x259, 0x263, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x3FB, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1D79, 0x1D7D, 0x1D8E, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C73, 0x2C76, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CE3, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA72F, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D7, 0xA7D9, 0xA7F6, 0xAB53); -set.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x199, 0x19A).addRange(0x1C6, 0x1C7).addRange(0x1C9, 0x1CA).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F1).addRange(0x23F, 0x240).addRange(0x24F, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x265, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x561, 0x587).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1E95, 0x1E9B).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7).addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4); -set.addRange(0x1FF6, 0x1FF7).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2D00, 0x2D25).addRange(0xA793, 0xA794).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1E922, 0x1E943); +const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x18C, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1B9, 0x1BD, 0x1BF, 0x1C4, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x233, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x259, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x3FB, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1C8A, 0x1D79, 0x1D7D, 0x1D8E, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C73, 0x2C76, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CE3, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA72F, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7CD, 0xA7D1, 0xA7D7, 0xA7D9, 0xA7DB, 0xA7F6, 0xAB53); +set.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x199, 0x19B).addRange(0x1C6, 0x1C7).addRange(0x1C9, 0x1CA).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F1).addRange(0x23F, 0x240).addRange(0x24F, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x263, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x561, 0x587).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1E95, 0x1E9B).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7).addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4); +set.addRange(0x1FF6, 0x1FF7).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2D00, 0x2D25).addRange(0xA793, 0xA794).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x10D70, 0x10D85).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1E922, 0x1E943); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Uppercased.js b/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Uppercased.js index 5c1c493..fd5980b 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Uppercased.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Uppercased.js @@ -1,4 +1,4 @@ -const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x18C, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1B9, 0x1BD, 0x1BF, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x233, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x259, 0x263, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x3FB, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1D79, 0x1D7D, 0x1D8E, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBC, 0x1FBE, 0x1FCC, 0x1FFC, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C73, 0x2C76, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CE3, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA72F, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D7, 0xA7D9, 0xA7F6, 0xAB53); -set.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x199, 0x19A).addRange(0x1C5, 0x1C6).addRange(0x1C8, 0x1C9).addRange(0x1CB, 0x1CC).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x1F2, 0x1F3).addRange(0x23F, 0x240).addRange(0x24F, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x265, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x561, 0x587).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1E95, 0x1E9B).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7).addRange(0x1FE0, 0x1FE7); -set.addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2D00, 0x2D25).addRange(0xA793, 0xA794).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1E922, 0x1E943); +const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x18C, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1B9, 0x1BD, 0x1BF, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x233, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x259, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x3FB, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1C8A, 0x1D79, 0x1D7D, 0x1D8E, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBC, 0x1FBE, 0x1FCC, 0x1FFC, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C73, 0x2C76, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CE3, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA72F, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7CD, 0xA7D1, 0xA7D7, 0xA7D9, 0xA7DB, 0xA7F6, 0xAB53); +set.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x199, 0x19B).addRange(0x1C5, 0x1C6).addRange(0x1C8, 0x1C9).addRange(0x1CB, 0x1CC).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x1F2, 0x1F3).addRange(0x23F, 0x240).addRange(0x24F, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x263, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x561, 0x587).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1E95, 0x1E9B).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7).addRange(0x1FE0, 0x1FE7); +set.addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2D00, 0x2D25).addRange(0xA793, 0xA794).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x10D70, 0x10D85).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1E922, 0x1E943); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Dash.js b/node_modules/regenerate-unicode-properties/Binary_Property/Dash.js index b70a471..ce8f164 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Dash.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Dash.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x2D, 0x58A, 0x5BE, 0x1400, 0x1806, 0x2053, 0x207B, 0x208B, 0x2212, 0x2E17, 0x2E1A, 0x2E40, 0x2E5D, 0x301C, 0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D, 0x10EAD); +const set = require('regenerate')(0x2D, 0x58A, 0x5BE, 0x1400, 0x1806, 0x2053, 0x207B, 0x208B, 0x2212, 0x2E17, 0x2E1A, 0x2E40, 0x2E5D, 0x301C, 0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D, 0x10D6E, 0x10EAD); set.addRange(0x2010, 0x2015).addRange(0x2E3A, 0x2E3B).addRange(0xFE31, 0xFE32); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Diacritic.js b/node_modules/regenerate-unicode-properties/Binary_Property/Diacritic.js index 9e22637..6cf4815 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Diacritic.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Diacritic.js @@ -1,5 +1,5 @@ -const set = require('regenerate')(0x5E, 0x60, 0xA8, 0xAF, 0xB4, 0x37A, 0x559, 0x5BF, 0x5C4, 0x93C, 0x94D, 0x971, 0x9BC, 0x9CD, 0xA3C, 0xA4D, 0xABC, 0xACD, 0xB3C, 0xB4D, 0xB55, 0xBCD, 0xC3C, 0xC4D, 0xCBC, 0xCCD, 0xD4D, 0xDCA, 0xE4E, 0xEBA, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1037, 0x108F, 0x17DD, 0x1A7F, 0x1B34, 0x1B44, 0x1CED, 0x1CF4, 0x1FBD, 0x2E2F, 0x30FC, 0xA66F, 0xA67F, 0xA8C4, 0xA953, 0xA9B3, 0xA9C0, 0xA9E5, 0xAAF6, 0xFB1E, 0xFF3E, 0xFF40, 0xFF70, 0xFFE3, 0x102E0, 0x11046, 0x11070, 0x11173, 0x111C0, 0x1133C, 0x1134D, 0x11442, 0x11446, 0x1163F, 0x1172B, 0x11943, 0x119E0, 0x11A34, 0x11A47, 0x11A99, 0x11C3F, 0x11D42, 0x11D97, 0x1E2AE); -set.addRange(0xB7, 0xB8).addRange(0x2B0, 0x34E).addRange(0x350, 0x357).addRange(0x35D, 0x362).addRange(0x374, 0x375).addRange(0x384, 0x385).addRange(0x483, 0x487).addRange(0x591, 0x5A1).addRange(0x5A3, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x64B, 0x652).addRange(0x657, 0x658).addRange(0x6DF, 0x6E0).addRange(0x6E5, 0x6E6).addRange(0x6EA, 0x6EC).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F5).addRange(0x818, 0x819).addRange(0x898, 0x89F).addRange(0x8C9, 0x8D2).addRange(0x8E3, 0x8FE).addRange(0x951, 0x954).addRange(0xAFD, 0xAFF).addRange(0xD3B, 0xD3C).addRange(0xE47, 0xE4C).addRange(0xEC8, 0xECC).addRange(0xF18, 0xF19).addRange(0xF3E, 0xF3F).addRange(0xF82, 0xF84).addRange(0xF86, 0xF87).addRange(0x1039, 0x103A).addRange(0x1063, 0x1064).addRange(0x1069, 0x106D).addRange(0x1087, 0x108D).addRange(0x109A, 0x109B).addRange(0x135D, 0x135F).addRange(0x1714, 0x1715).addRange(0x17C9, 0x17D3).addRange(0x1939, 0x193B).addRange(0x1A75, 0x1A7C).addRange(0x1AB0, 0x1ABE).addRange(0x1AC1, 0x1ACB).addRange(0x1B6B, 0x1B73).addRange(0x1BAA, 0x1BAB).addRange(0x1C36, 0x1C37).addRange(0x1C78, 0x1C7D).addRange(0x1CD0, 0x1CE8).addRange(0x1CF7, 0x1CF9).addRange(0x1D2C, 0x1D6A).addRange(0x1DC4, 0x1DCF); -set.addRange(0x1DF5, 0x1DFF).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x2CEF, 0x2CF1).addRange(0x302A, 0x302F).addRange(0x3099, 0x309C).addRange(0xA67C, 0xA67D).addRange(0xA69C, 0xA69D).addRange(0xA6F0, 0xA6F1).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA7F8, 0xA7F9).addRange(0xA8E0, 0xA8F1).addRange(0xA92B, 0xA92E).addRange(0xAA7B, 0xAA7D).addRange(0xAABF, 0xAAC2).addRange(0xAB5B, 0xAB5F).addRange(0xAB69, 0xAB6B).addRange(0xABEC, 0xABED).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10AE5, 0x10AE6).addRange(0x10D22, 0x10D27).addRange(0x10EFD, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x110B9, 0x110BA).addRange(0x11133, 0x11134).addRange(0x111CA, 0x111CC).addRange(0x11235, 0x11236).addRange(0x112E9, 0x112EA).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x114C2, 0x114C3).addRange(0x115BF, 0x115C0).addRange(0x116B6, 0x116B7).addRange(0x11839, 0x1183A).addRange(0x1193D, 0x1193E).addRange(0x11D44, 0x11D45).addRange(0x13447, 0x13455).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F9F).addRange(0x16FF0, 0x16FF1).addRange(0x1AFF0, 0x1AFF3); -set.addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1E030, 0x1E06D).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E946).addRange(0x1E948, 0x1E94A); +const set = require('regenerate')(0x5E, 0x60, 0xA8, 0xAF, 0xB4, 0x37A, 0x559, 0x5BF, 0x5C4, 0x93C, 0x94D, 0x971, 0x9BC, 0x9CD, 0xA3C, 0xA4D, 0xABC, 0xACD, 0xB3C, 0xB4D, 0xB55, 0xBCD, 0xC3C, 0xC4D, 0xCBC, 0xCCD, 0xD4D, 0xDCA, 0xE3A, 0xE4E, 0xEBA, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1037, 0x108F, 0x1734, 0x17DD, 0x1A60, 0x1A7F, 0x1B34, 0x1B44, 0x1BE6, 0x1CED, 0x1CF4, 0x1FBD, 0x2E2F, 0x30FC, 0xA66F, 0xA67F, 0xA806, 0xA82C, 0xA8C4, 0xA953, 0xA9B3, 0xA9C0, 0xA9E5, 0xAAF6, 0xFB1E, 0xFF3E, 0xFF40, 0xFF70, 0xFFE3, 0x102E0, 0x10A3F, 0x10D4E, 0x11046, 0x11070, 0x11173, 0x111C0, 0x1134D, 0x11442, 0x11446, 0x1163F, 0x1172B, 0x11943, 0x119E0, 0x11A34, 0x11A47, 0x11A99, 0x11C3F, 0x11D42, 0x11D97, 0x11F5A, 0x1612F, 0x1E2AE); +set.addRange(0xB7, 0xB8).addRange(0x2B0, 0x34E).addRange(0x350, 0x357).addRange(0x35D, 0x362).addRange(0x374, 0x375).addRange(0x384, 0x385).addRange(0x483, 0x487).addRange(0x591, 0x5A1).addRange(0x5A3, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x64B, 0x652).addRange(0x657, 0x658).addRange(0x6DF, 0x6E0).addRange(0x6E5, 0x6E6).addRange(0x6EA, 0x6EC).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F5).addRange(0x818, 0x819).addRange(0x898, 0x89F).addRange(0x8C9, 0x8D2).addRange(0x8E3, 0x8FE).addRange(0x951, 0x954).addRange(0xAFD, 0xAFF).addRange(0xD3B, 0xD3C).addRange(0xE47, 0xE4C).addRange(0xEC8, 0xECC).addRange(0xF18, 0xF19).addRange(0xF3E, 0xF3F).addRange(0xF82, 0xF84).addRange(0xF86, 0xF87).addRange(0x1039, 0x103A).addRange(0x1063, 0x1064).addRange(0x1069, 0x106D).addRange(0x1087, 0x108D).addRange(0x109A, 0x109B).addRange(0x135D, 0x135F).addRange(0x1714, 0x1715).addRange(0x17C9, 0x17D3).addRange(0x1939, 0x193B).addRange(0x1A75, 0x1A7C).addRange(0x1AB0, 0x1ABE).addRange(0x1AC1, 0x1ACB).addRange(0x1B6B, 0x1B73).addRange(0x1BAA, 0x1BAB).addRange(0x1BF2, 0x1BF3).addRange(0x1C36, 0x1C37).addRange(0x1C78, 0x1C7D).addRange(0x1CD0, 0x1CE8).addRange(0x1CF7, 0x1CF9).addRange(0x1D2C, 0x1D6A); +set.addRange(0x1DC4, 0x1DCF).addRange(0x1DF5, 0x1DFF).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x2CEF, 0x2CF1).addRange(0x302A, 0x302F).addRange(0x3099, 0x309C).addRange(0xA67C, 0xA67D).addRange(0xA69C, 0xA69D).addRange(0xA6F0, 0xA6F1).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA7F8, 0xA7F9).addRange(0xA8E0, 0xA8F1).addRange(0xA92B, 0xA92E).addRange(0xAA7B, 0xAA7D).addRange(0xAABF, 0xAAC2).addRange(0xAB5B, 0xAB5F).addRange(0xAB69, 0xAB6B).addRange(0xABEC, 0xABED).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D22, 0x10D27).addRange(0x10D69, 0x10D6D).addRange(0x10EFD, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x110B9, 0x110BA).addRange(0x11133, 0x11134).addRange(0x111CA, 0x111CC).addRange(0x11235, 0x11236).addRange(0x112E9, 0x112EA).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x113CE, 0x113D0).addRange(0x113D2, 0x113D3).addRange(0x113E1, 0x113E2).addRange(0x114C2, 0x114C3).addRange(0x115BF, 0x115C0).addRange(0x116B6, 0x116B7).addRange(0x11839, 0x1183A).addRange(0x1193D, 0x1193E); +set.addRange(0x11D44, 0x11D45).addRange(0x11F41, 0x11F42).addRange(0x13447, 0x13455).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16D6B, 0x16D6C).addRange(0x16F8F, 0x16F9F).addRange(0x16FF0, 0x16FF1).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1E030, 0x1E06D).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E5EE, 0x1E5EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E946).addRange(0x1E948, 0x1E94A); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Emoji.js b/node_modules/regenerate-unicode-properties/Binary_Property/Emoji.js index b6ffc36..ddf62a6 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Emoji.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Emoji.js @@ -1,4 +1,4 @@ const set = require('regenerate')(0x23, 0x2A, 0xA9, 0xAE, 0x203C, 0x2049, 0x2122, 0x2139, 0x2328, 0x23CF, 0x24C2, 0x25B6, 0x25C0, 0x260E, 0x2611, 0x2618, 0x261D, 0x2620, 0x2626, 0x262A, 0x2640, 0x2642, 0x2663, 0x2668, 0x267B, 0x2699, 0x26A7, 0x26C8, 0x26D1, 0x26FD, 0x2702, 0x2705, 0x270F, 0x2712, 0x2714, 0x2716, 0x271D, 0x2721, 0x2728, 0x2744, 0x2747, 0x274C, 0x274E, 0x2757, 0x27A1, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x3030, 0x303D, 0x3297, 0x3299, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F21A, 0x1F22F, 0x1F587, 0x1F590, 0x1F5A8, 0x1F5BC, 0x1F5E1, 0x1F5E3, 0x1F5E8, 0x1F5EF, 0x1F5F3, 0x1F6E9, 0x1F6F0, 0x1F7F0); set.addRange(0x30, 0x39).addRange(0x2194, 0x2199).addRange(0x21A9, 0x21AA).addRange(0x231A, 0x231B).addRange(0x23E9, 0x23F3).addRange(0x23F8, 0x23FA).addRange(0x25AA, 0x25AB).addRange(0x25FB, 0x25FE).addRange(0x2600, 0x2604).addRange(0x2614, 0x2615).addRange(0x2622, 0x2623).addRange(0x262E, 0x262F).addRange(0x2638, 0x263A).addRange(0x2648, 0x2653).addRange(0x265F, 0x2660).addRange(0x2665, 0x2666).addRange(0x267E, 0x267F).addRange(0x2692, 0x2697).addRange(0x269B, 0x269C).addRange(0x26A0, 0x26A1).addRange(0x26AA, 0x26AB).addRange(0x26B0, 0x26B1).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26CE, 0x26CF).addRange(0x26D3, 0x26D4).addRange(0x26E9, 0x26EA).addRange(0x26F0, 0x26F5).addRange(0x26F7, 0x26FA).addRange(0x2708, 0x270D).addRange(0x2733, 0x2734).addRange(0x2753, 0x2755).addRange(0x2763, 0x2764).addRange(0x2795, 0x2797).addRange(0x2934, 0x2935).addRange(0x2B05, 0x2B07).addRange(0x2B1B, 0x2B1C).addRange(0x1F170, 0x1F171).addRange(0x1F17E, 0x1F17F).addRange(0x1F191, 0x1F19A).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F232, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F321).addRange(0x1F324, 0x1F393).addRange(0x1F396, 0x1F397).addRange(0x1F399, 0x1F39B).addRange(0x1F39E, 0x1F3F0).addRange(0x1F3F3, 0x1F3F5).addRange(0x1F3F7, 0x1F4FD); -set.addRange(0x1F4FF, 0x1F53D).addRange(0x1F549, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F56F, 0x1F570).addRange(0x1F573, 0x1F57A).addRange(0x1F58A, 0x1F58D).addRange(0x1F595, 0x1F596).addRange(0x1F5A4, 0x1F5A5).addRange(0x1F5B1, 0x1F5B2).addRange(0x1F5C2, 0x1F5C4).addRange(0x1F5D1, 0x1F5D3).addRange(0x1F5DC, 0x1F5DE).addRange(0x1F5FA, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6CB, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6E5).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F3, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8); +set.addRange(0x1F4FF, 0x1F53D).addRange(0x1F549, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F56F, 0x1F570).addRange(0x1F573, 0x1F57A).addRange(0x1F58A, 0x1F58D).addRange(0x1F595, 0x1F596).addRange(0x1F5A4, 0x1F5A5).addRange(0x1F5B1, 0x1F5B2).addRange(0x1F5C2, 0x1F5C4).addRange(0x1F5D1, 0x1F5D3).addRange(0x1F5DC, 0x1F5DE).addRange(0x1F5FA, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6CB, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6E5).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F3, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA89).addRange(0x1FA8F, 0x1FAC6).addRange(0x1FACE, 0x1FADC).addRange(0x1FADF, 0x1FAE9).addRange(0x1FAF0, 0x1FAF8); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Emoji_Presentation.js b/node_modules/regenerate-unicode-properties/Binary_Property/Emoji_Presentation.js index 62c1447..2c78441 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Emoji_Presentation.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Emoji_Presentation.js @@ -1,3 +1,3 @@ const set = require('regenerate')(0x23F0, 0x23F3, 0x267F, 0x2693, 0x26A1, 0x26CE, 0x26D4, 0x26EA, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x2728, 0x274C, 0x274E, 0x2757, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F201, 0x1F21A, 0x1F22F, 0x1F3F4, 0x1F440, 0x1F57A, 0x1F5A4, 0x1F6CC, 0x1F7F0); -set.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8); +set.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA89).addRange(0x1FA8F, 0x1FAC6).addRange(0x1FACE, 0x1FADC).addRange(0x1FADF, 0x1FAE9).addRange(0x1FAF0, 0x1FAF8); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Extender.js b/node_modules/regenerate-unicode-properties/Binary_Property/Extender.js index eee3bcd..d8f1cf7 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Extender.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Extender.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0xB7, 0x640, 0x7FA, 0xB55, 0xE46, 0xEC6, 0x180A, 0x1843, 0x1AA7, 0x1C36, 0x1C7B, 0x3005, 0xA015, 0xA60C, 0xA9CF, 0xA9E6, 0xAA70, 0xAADD, 0xFF70, 0x1135D, 0x11A98, 0x16FE3); -set.addRange(0x2D0, 0x2D1).addRange(0x3031, 0x3035).addRange(0x309D, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xAAF3, 0xAAF4).addRange(0x10781, 0x10782).addRange(0x115C6, 0x115C8).addRange(0x16B42, 0x16B43).addRange(0x16FE0, 0x16FE1).addRange(0x1E13C, 0x1E13D).addRange(0x1E944, 0x1E946); +const set = require('regenerate')(0xB7, 0x640, 0x7FA, 0xA71, 0xAFB, 0xB55, 0xE46, 0xEC6, 0x180A, 0x1843, 0x1AA7, 0x1C36, 0x1C7B, 0x3005, 0xA015, 0xA60C, 0xA9CF, 0xA9E6, 0xAA70, 0xAADD, 0xFF70, 0x10D4E, 0x10D6A, 0x10D6F, 0x11237, 0x1135D, 0x11A98, 0x16FE3, 0x1E5EF); +set.addRange(0x2D0, 0x2D1).addRange(0x3031, 0x3035).addRange(0x309D, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xAAF3, 0xAAF4).addRange(0x10781, 0x10782).addRange(0x113D2, 0x113D3).addRange(0x115C6, 0x115C8).addRange(0x16B42, 0x16B43).addRange(0x16FE0, 0x16FE1).addRange(0x1E13C, 0x1E13D).addRange(0x1E944, 0x1E946); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Grapheme_Base.js b/node_modules/regenerate-unicode-properties/Binary_Property/Grapheme_Base.js index ebddbda..b7e07c2 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Grapheme_Base.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Grapheme_Base.js @@ -1,17 +1,17 @@ -const set = require('regenerate')(0x38C, 0x5BE, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6DE, 0x6E9, 0x710, 0x7B1, 0x81A, 0x824, 0x828, 0x85E, 0x93B, 0x9B2, 0x9BD, 0x9CE, 0xA03, 0xA5E, 0xA76, 0xA83, 0xAC9, 0xAD0, 0xAF9, 0xB3D, 0xB40, 0xB83, 0xB9C, 0xBBF, 0xBD0, 0xC3D, 0xC5D, 0xD3D, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF36, 0xF38, 0xF7F, 0xF85, 0x1031, 0x1038, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x1715, 0x17B6, 0x18AA, 0x1940, 0x1A57, 0x1A61, 0x1B3B, 0x1BAA, 0x1BE7, 0x1BEE, 0x1CD3, 0x1CE1, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x2D27, 0x2D2D, 0xA673, 0xA7D3, 0xAA4D, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0xFDCF, 0x101A0, 0x10808, 0x1083C, 0x1093F, 0x10EAD, 0x11000, 0x11075, 0x1112C, 0x11235, 0x11288, 0x1133D, 0x1133F, 0x11350, 0x11445, 0x1145D, 0x114B9, 0x114BE, 0x114C1, 0x115BE, 0x1163E, 0x116AC, 0x116B6, 0x11726, 0x11838, 0x1183B, 0x11909, 0x1193D, 0x11A00, 0x11A50, 0x11A97, 0x11C3E, 0x11CA9, 0x11CB1, 0x11CB4, 0x11D46, 0x11D96, 0x11D98, 0x11F41, 0x11FB0, 0x16AF5, 0x1B132, 0x1B155, 0x1BC9C, 0x1BC9F, 0x1D166, 0x1D245, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E2FF, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F7F0); +const set = require('regenerate')(0x38C, 0x5BE, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6DE, 0x6E9, 0x710, 0x7B1, 0x81A, 0x824, 0x828, 0x85E, 0x93B, 0x9B2, 0x9BD, 0x9CE, 0xA03, 0xA5E, 0xA76, 0xA83, 0xAC9, 0xAD0, 0xAF9, 0xB3D, 0xB40, 0xB83, 0xB9C, 0xBBF, 0xBD0, 0xC3D, 0xC5D, 0xCC1, 0xD3D, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF36, 0xF38, 0xF7F, 0xF85, 0x1031, 0x1038, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17B6, 0x18AA, 0x1940, 0x1A57, 0x1A61, 0x1BE7, 0x1BEE, 0x1CD3, 0x1CE1, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x2D27, 0x2D2D, 0xA673, 0xA7D3, 0xA952, 0xAA4D, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0xFDCF, 0x101A0, 0x10808, 0x1083C, 0x1093F, 0x10EAD, 0x11000, 0x11075, 0x1112C, 0x111BF, 0x11288, 0x1133D, 0x1133F, 0x11350, 0x1138B, 0x1138E, 0x113B7, 0x113CA, 0x113D1, 0x11445, 0x1145D, 0x114B9, 0x114BE, 0x114C1, 0x115BE, 0x1163E, 0x116AC, 0x1171E, 0x11726, 0x11838, 0x1183B, 0x11909, 0x11A00, 0x11A50, 0x11A97, 0x11C3E, 0x11CA9, 0x11CB1, 0x11CB4, 0x11D46, 0x11D96, 0x11D98, 0x11FB0, 0x16AF5, 0x1B132, 0x1B155, 0x1BC9C, 0x1BC9F, 0x1D245, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E2FF, 0x1E5FF, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F7F0); set.addRange(0x20, 0x7E).addRange(0xA0, 0xAC).addRange(0xAE, 0x2FF).addRange(0x370, 0x377).addRange(0x37A, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x482).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0x606, 0x60F).addRange(0x61D, 0x64A).addRange(0x660, 0x66F).addRange(0x671, 0x6D5).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x70D).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7C0, 0x7EA).addRange(0x7F4, 0x7FA).addRange(0x7FE, 0x815).addRange(0x830, 0x83E).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x903, 0x939).addRange(0x93D, 0x940).addRange(0x949, 0x94C).addRange(0x94E, 0x950).addRange(0x958, 0x961).addRange(0x964, 0x980).addRange(0x982, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BF, 0x9C0).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CC).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9E6, 0x9FD).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28); set.addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA40).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA6F).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABD, 0xAC0).addRange(0xACB, 0xACC).addRange(0xAE0, 0xAE1).addRange(0xAE6, 0xAF1).addRange(0xB02, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4C).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB66, 0xB77).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBC1, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCC).addRange(0xBE6, 0xBFA).addRange(0xC01, 0xC03).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC41, 0xC44).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC66, 0xC6F); -set.addRange(0xC77, 0xC80).addRange(0xC82, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBD, 0xCBE).addRange(0xCC0, 0xCC1).addRange(0xCC3, 0xCC4).addRange(0xCC7, 0xCC8).addRange(0xCCA, 0xCCB).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3).addRange(0xD02, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD3F, 0xD40).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD4E, 0xD4F).addRange(0xD54, 0xD56).addRange(0xD58, 0xD61).addRange(0xD66, 0xD7F).addRange(0xD82, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDD0, 0xDD1).addRange(0xDD8, 0xDDE).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE3F, 0xE46).addRange(0xE4F, 0xE5B).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF00, 0xF17).addRange(0xF1A, 0xF34).addRange(0xF3A, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C); -set.addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFDA).addRange(0x1000, 0x102C).addRange(0x103B, 0x103C).addRange(0x103F, 0x1057).addRange(0x105A, 0x105D).addRange(0x1061, 0x1070).addRange(0x1075, 0x1081).addRange(0x1083, 0x1084).addRange(0x1087, 0x108C).addRange(0x108E, 0x109C).addRange(0x109E, 0x10C5).addRange(0x10D0, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1360, 0x137C).addRange(0x1380, 0x1399).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1400, 0x169C).addRange(0x16A0, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1734, 0x1736).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x17BE, 0x17C5).addRange(0x17C7, 0x17C8).addRange(0x17D4, 0x17DC).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1800, 0x180A).addRange(0x1810, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x1884).addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5); -set.addRange(0x1900, 0x191E).addRange(0x1923, 0x1926).addRange(0x1929, 0x192B).addRange(0x1930, 0x1931).addRange(0x1933, 0x1938).addRange(0x1944, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x1A16).addRange(0x1A19, 0x1A1A).addRange(0x1A1E, 0x1A55).addRange(0x1A63, 0x1A64).addRange(0x1A6D, 0x1A72).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD).addRange(0x1B04, 0x1B33).addRange(0x1B3D, 0x1B41).addRange(0x1B43, 0x1B4C).addRange(0x1B50, 0x1B6A).addRange(0x1B74, 0x1B7E).addRange(0x1B82, 0x1BA1).addRange(0x1BA6, 0x1BA7).addRange(0x1BAE, 0x1BE5).addRange(0x1BEA, 0x1BEC).addRange(0x1BF2, 0x1BF3).addRange(0x1BFC, 0x1C2B).addRange(0x1C34, 0x1C35).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CC7).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF7).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE); -set.addRange(0x2000, 0x200A).addRange(0x2010, 0x2027).addRange(0x202F, 0x205F).addRange(0x2070, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2CF9, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2E00, 0x2E5D).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x3029).addRange(0x3030, 0x303F).addRange(0x3041, 0x3096).addRange(0x309B, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x3190, 0x31E3).addRange(0x31EF, 0x321E).addRange(0x3220, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xA4D0, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67E, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA6F2, 0xA6F7).addRange(0xA700, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A); -set.addRange(0xA80C, 0xA824).addRange(0xA827, 0xA82B).addRange(0xA830, 0xA839).addRange(0xA840, 0xA877).addRange(0xA880, 0xA8C3).addRange(0xA8CE, 0xA8D9).addRange(0xA8F2, 0xA8FE).addRange(0xA900, 0xA925).addRange(0xA92E, 0xA946).addRange(0xA952, 0xA953).addRange(0xA95F, 0xA97C).addRange(0xA983, 0xA9B2).addRange(0xA9B4, 0xA9B5).addRange(0xA9BA, 0xA9BB).addRange(0xA9BE, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9E4).addRange(0xA9E6, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA2F, 0xAA30).addRange(0xAA33, 0xAA34).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAA7B).addRange(0xAA7D, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAAEB).addRange(0xAAEE, 0xAAF5).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB6B).addRange(0xAB70, 0xABE4).addRange(0xABE6, 0xABE7).addRange(0xABE9, 0xABEC).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44); -set.addRange(0xFB46, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x102E1, 0x102FB).addRange(0x10300, 0x10323).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x1039F, 0x103C3).addRange(0x103C8, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x1056F, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1); -set.addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10857, 0x1089E).addRange(0x108A7, 0x108AF).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x1091B).addRange(0x1091F, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x10A00).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A40, 0x10A48).addRange(0x10A50, 0x10A58).addRange(0x10A60, 0x10A9F).addRange(0x10AC0, 0x10AE4).addRange(0x10AEB, 0x10AF6).addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B55).addRange(0x10B58, 0x10B72).addRange(0x10B78, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10D23).addRange(0x10D30, 0x10D39).addRange(0x10E60, 0x10E7E).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F27).addRange(0x10F30, 0x10F45).addRange(0x10F51, 0x10F59).addRange(0x10F70, 0x10F81).addRange(0x10F86, 0x10F89).addRange(0x10FB0, 0x10FCB).addRange(0x10FE0, 0x10FF6); -set.addRange(0x11002, 0x11037).addRange(0x11047, 0x1104D).addRange(0x11052, 0x1106F).addRange(0x11071, 0x11072).addRange(0x11082, 0x110B2).addRange(0x110B7, 0x110B8).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11103, 0x11126).addRange(0x11136, 0x11147).addRange(0x11150, 0x11172).addRange(0x11174, 0x11176).addRange(0x11182, 0x111B5).addRange(0x111BF, 0x111C8).addRange(0x111CD, 0x111CE).addRange(0x111D0, 0x111DF).addRange(0x111E1, 0x111F4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122E).addRange(0x11232, 0x11233).addRange(0x11238, 0x1123D).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9).addRange(0x112B0, 0x112DE).addRange(0x112E0, 0x112E2).addRange(0x112F0, 0x112F9).addRange(0x11302, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x11341, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11400, 0x11437).addRange(0x11440, 0x11441).addRange(0x11447, 0x1145B).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114B1, 0x114B2).addRange(0x114BB, 0x114BC).addRange(0x114C4, 0x114C7).addRange(0x114D0, 0x114D9); -set.addRange(0x11580, 0x115AE).addRange(0x115B0, 0x115B1).addRange(0x115B8, 0x115BB).addRange(0x115C1, 0x115DB).addRange(0x11600, 0x11632).addRange(0x1163B, 0x1163C).addRange(0x11641, 0x11644).addRange(0x11650, 0x11659).addRange(0x11660, 0x1166C).addRange(0x11680, 0x116AA).addRange(0x116AE, 0x116AF).addRange(0x116B8, 0x116B9).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x11720, 0x11721).addRange(0x11730, 0x11746).addRange(0x11800, 0x1182E).addRange(0x118A0, 0x118F2).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x11931, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193F, 0x11942).addRange(0x11944, 0x11946).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D3).addRange(0x119DC, 0x119DF).addRange(0x119E1, 0x119E4).addRange(0x11A0B, 0x11A32).addRange(0x11A39, 0x11A3A).addRange(0x11A3F, 0x11A46).addRange(0x11A57, 0x11A58).addRange(0x11A5C, 0x11A89).addRange(0x11A9A, 0x11AA2).addRange(0x11AB0, 0x11AF8).addRange(0x11B00, 0x11B09).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2F).addRange(0x11C40, 0x11C45).addRange(0x11C50, 0x11C6C).addRange(0x11C70, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E); -set.addRange(0x11D93, 0x11D94).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF2).addRange(0x11EF5, 0x11EF8).addRange(0x11F02, 0x11F10).addRange(0x11F12, 0x11F35).addRange(0x11F3E, 0x11F3F).addRange(0x11F43, 0x11F59).addRange(0x11FC0, 0x11FF1).addRange(0x11FFF, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF2).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B37, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E9A).addRange(0x16F00, 0x16F4A).addRange(0x16F50, 0x16F87).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE3).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5); -set.addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16D).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83).addRange(0x1DA85, 0x1DA8B).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E4F0, 0x1E4F9).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8CF); -set.addRange(0x1E900, 0x1E943).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88); -set.addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); +set.addRange(0xC77, 0xC80).addRange(0xC82, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBD, 0xCBE).addRange(0xCC3, 0xCC4).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3).addRange(0xD02, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD3F, 0xD40).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD4E, 0xD4F).addRange(0xD54, 0xD56).addRange(0xD58, 0xD61).addRange(0xD66, 0xD7F).addRange(0xD82, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDD0, 0xDD1).addRange(0xDD8, 0xDDE).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE3F, 0xE46).addRange(0xE4F, 0xE5B).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF00, 0xF17).addRange(0xF1A, 0xF34).addRange(0xF3A, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFDA); +set.addRange(0x1000, 0x102C).addRange(0x103B, 0x103C).addRange(0x103F, 0x1057).addRange(0x105A, 0x105D).addRange(0x1061, 0x1070).addRange(0x1075, 0x1081).addRange(0x1083, 0x1084).addRange(0x1087, 0x108C).addRange(0x108E, 0x109C).addRange(0x109E, 0x10C5).addRange(0x10D0, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1360, 0x137C).addRange(0x1380, 0x1399).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1400, 0x169C).addRange(0x16A0, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1735, 0x1736).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x17BE, 0x17C5).addRange(0x17C7, 0x17C8).addRange(0x17D4, 0x17DC).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1800, 0x180A).addRange(0x1810, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x1884).addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1923, 0x1926).addRange(0x1929, 0x192B); +set.addRange(0x1930, 0x1931).addRange(0x1933, 0x1938).addRange(0x1944, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x1A16).addRange(0x1A19, 0x1A1A).addRange(0x1A1E, 0x1A55).addRange(0x1A63, 0x1A64).addRange(0x1A6D, 0x1A72).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD).addRange(0x1B04, 0x1B33).addRange(0x1B3E, 0x1B41).addRange(0x1B45, 0x1B4C).addRange(0x1B4E, 0x1B6A).addRange(0x1B74, 0x1B7F).addRange(0x1B82, 0x1BA1).addRange(0x1BA6, 0x1BA7).addRange(0x1BAE, 0x1BE5).addRange(0x1BEA, 0x1BEC).addRange(0x1BFC, 0x1C2B).addRange(0x1C34, 0x1C35).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C8A).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CC7).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF7).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x2000, 0x200A).addRange(0x2010, 0x2027).addRange(0x202F, 0x205F).addRange(0x2070, 0x2071); +set.addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x218B).addRange(0x2190, 0x2429).addRange(0x2440, 0x244A).addRange(0x2460, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2CF9, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2E00, 0x2E5D).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x3029).addRange(0x3030, 0x303F).addRange(0x3041, 0x3096).addRange(0x309B, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x3190, 0x31E5).addRange(0x31EF, 0x321E).addRange(0x3220, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xA4D0, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67E, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA6F2, 0xA6F7).addRange(0xA700, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7DC).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA824).addRange(0xA827, 0xA82B).addRange(0xA830, 0xA839).addRange(0xA840, 0xA877); +set.addRange(0xA880, 0xA8C3).addRange(0xA8CE, 0xA8D9).addRange(0xA8F2, 0xA8FE).addRange(0xA900, 0xA925).addRange(0xA92E, 0xA946).addRange(0xA95F, 0xA97C).addRange(0xA983, 0xA9B2).addRange(0xA9B4, 0xA9B5).addRange(0xA9BA, 0xA9BB).addRange(0xA9BE, 0xA9BF).addRange(0xA9C1, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9E4).addRange(0xA9E6, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA2F, 0xAA30).addRange(0xAA33, 0xAA34).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAA7B).addRange(0xAA7D, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAAEB).addRange(0xAAEE, 0xAAF5).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB6B).addRange(0xAB70, 0xABE4).addRange(0xABE6, 0xABE7).addRange(0xABE9, 0xABEC).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF); +set.addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x102E1, 0x102FB).addRange(0x10300, 0x10323).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x1039F, 0x103C3).addRange(0x103C8, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x1056F, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x105C0, 0x105F3); +set.addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10857, 0x1089E).addRange(0x108A7, 0x108AF).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x1091B).addRange(0x1091F, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x10A00).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A40, 0x10A48).addRange(0x10A50, 0x10A58).addRange(0x10A60, 0x10A9F).addRange(0x10AC0, 0x10AE4).addRange(0x10AEB, 0x10AF6).addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B55).addRange(0x10B58, 0x10B72).addRange(0x10B78, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10D23).addRange(0x10D30, 0x10D39).addRange(0x10D40, 0x10D65).addRange(0x10D6E, 0x10D85).addRange(0x10D8E, 0x10D8F).addRange(0x10E60, 0x10E7E).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10EC2, 0x10EC4).addRange(0x10F00, 0x10F27).addRange(0x10F30, 0x10F45).addRange(0x10F51, 0x10F59).addRange(0x10F70, 0x10F81).addRange(0x10F86, 0x10F89).addRange(0x10FB0, 0x10FCB); +set.addRange(0x10FE0, 0x10FF6).addRange(0x11002, 0x11037).addRange(0x11047, 0x1104D).addRange(0x11052, 0x1106F).addRange(0x11071, 0x11072).addRange(0x11082, 0x110B2).addRange(0x110B7, 0x110B8).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11103, 0x11126).addRange(0x11136, 0x11147).addRange(0x11150, 0x11172).addRange(0x11174, 0x11176).addRange(0x11182, 0x111B5).addRange(0x111C1, 0x111C8).addRange(0x111CD, 0x111CE).addRange(0x111D0, 0x111DF).addRange(0x111E1, 0x111F4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122E).addRange(0x11232, 0x11233).addRange(0x11238, 0x1123D).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9).addRange(0x112B0, 0x112DE).addRange(0x112E0, 0x112E2).addRange(0x112F0, 0x112F9).addRange(0x11302, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x11341, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134C).addRange(0x1135D, 0x11363).addRange(0x11380, 0x11389).addRange(0x11390, 0x113B5).addRange(0x113B9, 0x113BA).addRange(0x113CC, 0x113CD).addRange(0x113D3, 0x113D5).addRange(0x113D7, 0x113D8).addRange(0x11400, 0x11437).addRange(0x11440, 0x11441); +set.addRange(0x11447, 0x1145B).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114B1, 0x114B2).addRange(0x114BB, 0x114BC).addRange(0x114C4, 0x114C7).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115AE).addRange(0x115B0, 0x115B1).addRange(0x115B8, 0x115BB).addRange(0x115C1, 0x115DB).addRange(0x11600, 0x11632).addRange(0x1163B, 0x1163C).addRange(0x11641, 0x11644).addRange(0x11650, 0x11659).addRange(0x11660, 0x1166C).addRange(0x11680, 0x116AA).addRange(0x116AE, 0x116AF).addRange(0x116B8, 0x116B9).addRange(0x116C0, 0x116C9).addRange(0x116D0, 0x116E3).addRange(0x11700, 0x1171A).addRange(0x11720, 0x11721).addRange(0x11730, 0x11746).addRange(0x11800, 0x1182E).addRange(0x118A0, 0x118F2).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x11931, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193F, 0x11942).addRange(0x11944, 0x11946).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D3).addRange(0x119DC, 0x119DF).addRange(0x119E1, 0x119E4).addRange(0x11A0B, 0x11A32).addRange(0x11A39, 0x11A3A).addRange(0x11A3F, 0x11A46).addRange(0x11A57, 0x11A58).addRange(0x11A5C, 0x11A89).addRange(0x11A9A, 0x11AA2).addRange(0x11AB0, 0x11AF8).addRange(0x11B00, 0x11B09).addRange(0x11BC0, 0x11BE1).addRange(0x11BF0, 0x11BF9).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2F); +set.addRange(0x11C40, 0x11C45).addRange(0x11C50, 0x11C6C).addRange(0x11C70, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D93, 0x11D94).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF2).addRange(0x11EF5, 0x11EF8).addRange(0x11F02, 0x11F10).addRange(0x11F12, 0x11F35).addRange(0x11F3E, 0x11F3F).addRange(0x11F43, 0x11F59).addRange(0x11FC0, 0x11FF1).addRange(0x11FFF, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF2).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x13460, 0x143FA).addRange(0x14400, 0x14646).addRange(0x16100, 0x1611D).addRange(0x1612A, 0x1612C).addRange(0x16130, 0x16139).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B37, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16D40, 0x16D79).addRange(0x16E40, 0x16E9A).addRange(0x16F00, 0x16F4A).addRange(0x16F50, 0x16F87).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE3).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5); +set.addRange(0x18CFF, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1CC00, 0x1CCF9).addRange(0x1CD00, 0x1CEB3).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16C).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83).addRange(0x1DA85, 0x1DA8B).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A); +set.addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E4F0, 0x1E4F9).addRange(0x1E5D0, 0x1E5ED).addRange(0x1E5F0, 0x1E5FA).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8CF).addRange(0x1E900, 0x1E943).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248); +set.addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8BB).addRange(0x1F8C0, 0x1F8C1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA89).addRange(0x1FA8F, 0x1FAC6).addRange(0x1FACE, 0x1FADC).addRange(0x1FADF, 0x1FAE9).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Grapheme_Extend.js b/node_modules/regenerate-unicode-properties/Binary_Property/Grapheme_Extend.js index 25ccc83..4209649 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Grapheme_Extend.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Grapheme_Extend.js @@ -1,7 +1,7 @@ -const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x93A, 0x93C, 0x94D, 0x981, 0x9BC, 0x9BE, 0x9CD, 0x9D7, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB4D, 0xB82, 0xBBE, 0xBC0, 0xBCD, 0xBD7, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC2, 0xCC6, 0xD3E, 0xD4D, 0xD57, 0xD81, 0xDCA, 0xDCF, 0xDD6, 0xDDF, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x17C6, 0x17DD, 0x180F, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x200C, 0x2D7F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9E5, 0xAA43, 0xAA4C, 0xAA7C, 0xAAB0, 0xAAC1, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110C2, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x11241, 0x112DF, 0x1133E, 0x11340, 0x11357, 0x11446, 0x1145E, 0x114B0, 0x114BA, 0x114BD, 0x115AF, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x11930, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x11F40, 0x11F42, 0x13440, 0x16F4F, 0x16FE4, 0x1D165, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E2AE); -set.addRange(0x300, 0x36F).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x898, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB3E, 0xB3F).addRange(0xB41, 0xB44).addRange(0xB55, 0xB57).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C); -set.addRange(0xD41, 0xD44).addRange(0xD62, 0xD63).addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECE).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1714).addRange(0x1732, 0x1733).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B34, 0x1B3A).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BA9).addRange(0x1BAB, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF1).addRange(0x1C2C, 0x1C33).addRange(0x1C36, 0x1C37).addRange(0x1CD0, 0x1CD2); -set.addRange(0x1CD4, 0x1CE0).addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302F).addRange(0x3099, 0x309A).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC).addRange(0x10EFD, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181); -set.addRange(0x111B6, 0x111BE).addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231).addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x1171D, 0x1171F).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x11F00, 0x11F01).addRange(0x11F36, 0x11F3A).addRange(0x13447, 0x13455).addRange(0x16AF0, 0x16AF4); -set.addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F92).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D16E, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E4EC, 0x1E4EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF); +const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x93A, 0x93C, 0x94D, 0x981, 0x9BC, 0x9BE, 0x9CD, 0x9D7, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB4D, 0xB82, 0xBBE, 0xBC0, 0xBCD, 0xBD7, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCC2, 0xD3E, 0xD4D, 0xD57, 0xD81, 0xDCA, 0xDCF, 0xDD6, 0xDDF, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x17C6, 0x17DD, 0x180F, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x200C, 0x2D7F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA953, 0xA9B3, 0xA9C0, 0xA9E5, 0xAA43, 0xAA4C, 0xAA7C, 0xAAB0, 0xAAC1, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110C2, 0x11173, 0x111C0, 0x111CF, 0x1123E, 0x11241, 0x112DF, 0x1133E, 0x11340, 0x1134D, 0x11357, 0x113B8, 0x113C2, 0x113C5, 0x113D2, 0x11446, 0x1145E, 0x114B0, 0x114BA, 0x114BD, 0x115AF, 0x1163D, 0x116AB, 0x116AD, 0x1171D, 0x1171F, 0x11930, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x11F5A, 0x13440, 0x16F4F, 0x16FE4, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E2AE); +set.addRange(0x300, 0x36F).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x897, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB3E, 0xB3F).addRange(0xB41, 0xB44).addRange(0xB55, 0xB57).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCBF, 0xCC0).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCE2, 0xCE3); +set.addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C).addRange(0xD41, 0xD44).addRange(0xD62, 0xD63).addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECE).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1715).addRange(0x1732, 0x1734).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B34, 0x1B3D).addRange(0x1B42, 0x1B44).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF3).addRange(0x1C2C, 0x1C33); +set.addRange(0x1C36, 0x1C37).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE0).addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302F).addRange(0x3099, 0x309A).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10D69, 0x10D6D).addRange(0x10EAB, 0x10EAC).addRange(0x10EFC, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102); +set.addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE).addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231).addRange(0x11234, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x113BB, 0x113C0).addRange(0x113C7, 0x113C9).addRange(0x113CE, 0x113D0).addRange(0x113E1, 0x113E2).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B7).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193E).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45); +set.addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x11F00, 0x11F01).addRange(0x11F36, 0x11F3A).addRange(0x11F40, 0x11F42).addRange(0x13447, 0x13455).addRange(0x1611E, 0x16129).addRange(0x1612D, 0x1612F).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F92).addRange(0x16FF0, 0x16FF1).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E4EC, 0x1E4EF).addRange(0x1E5EE, 0x1E5EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/ID_Continue.js b/node_modules/regenerate-unicode-properties/Binary_Property/ID_Continue.js index f497027..371e65e 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/ID_Continue.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/ID_Continue.js @@ -1,15 +1,16 @@ -const set = require('regenerate')(0x5F, 0xAA, 0xB5, 0xB7, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x7FD, 0x9B2, 0x9D7, 0x9FC, 0x9FE, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0xF00, 0xF35, 0xF37, 0xF39, 0xFC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x1AA7, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2054, 0x2071, 0x207F, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA82C, 0xA8FB, 0xFB3E, 0xFF3F, 0x101FD, 0x102E0, 0x10808, 0x1083C, 0x10A3F, 0x10F27, 0x110C2, 0x11176, 0x111DC, 0x11288, 0x11350, 0x11357, 0x114C7, 0x11644, 0x11909, 0x11A47, 0x11A9D, 0x11D3A, 0x11FB0, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); -set.addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x300, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x386, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x483, 0x487).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x669).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6FC).addRange(0x710, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7F5).addRange(0x800, 0x82D).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x898, 0x8E1).addRange(0x8E3, 0x963).addRange(0x966, 0x96F).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD); +const set = require('regenerate')(0x5F, 0xAA, 0xB5, 0xB7, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x7FD, 0x9B2, 0x9D7, 0x9FC, 0x9FE, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0xF00, 0xF35, 0xF37, 0xF39, 0xFC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x1AA7, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2054, 0x2071, 0x207F, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA82C, 0xA8FB, 0xFB3E, 0xFF3F, 0x101FD, 0x102E0, 0x10808, 0x1083C, 0x10A3F, 0x10F27, 0x110C2, 0x11176, 0x111DC, 0x11288, 0x11350, 0x11357, 0x1138B, 0x1138E, 0x113C2, 0x113C5, 0x114C7, 0x11644, 0x11909, 0x11A47, 0x11A9D, 0x11D3A, 0x11FB0, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); +set.addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x300, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x386, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x483, 0x487).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x669).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6FC).addRange(0x710, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7F5).addRange(0x800, 0x82D).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x897, 0x8E1).addRange(0x8E3, 0x963).addRange(0x966, 0x96F).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD); set.addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9F1).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA75).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAEF).addRange(0xAF9, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB6F).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9); set.addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBEF).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC80, 0xC83).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4E).addRange(0xD54, 0xD57).addRange(0xD5F, 0xD63).addRange(0xD66, 0xD6F).addRange(0xD7A, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF3).addRange(0xE01, 0xE3A).addRange(0xE40, 0xE4E).addRange(0xE50, 0xE59).addRange(0xE81, 0xE82); set.addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECE).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF18, 0xF19).addRange(0xF20, 0xF29).addRange(0xF3E, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF84).addRange(0xF86, 0xF97).addRange(0xF99, 0xFBC).addRange(0x1000, 0x1049).addRange(0x1050, 0x109D).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x135F).addRange(0x1369, 0x1371).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1734).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17D3).addRange(0x17DC, 0x17DD).addRange(0x17E0, 0x17E9); -set.addRange(0x180B, 0x180D).addRange(0x180F, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1946, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B59).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1BF3).addRange(0x1C00, 0x1C37).addRange(0x1C40, 0x1C49).addRange(0x1C4D, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x200C, 0x200D).addRange(0x203F, 0x2040).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20DC); -set.addRange(0x20E5, 0x20F0).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x302F).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x3099, 0x309F).addRange(0x30A1, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA62B).addRange(0xA640, 0xA66F).addRange(0xA674, 0xA67D).addRange(0xA67F, 0xA6F1).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C5).addRange(0xA8D0, 0xA8D9).addRange(0xA8E0, 0xA8F7).addRange(0xA8FD, 0xA92D); +set.addRange(0x180B, 0x180D).addRange(0x180F, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1946, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B59).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1BF3).addRange(0x1C00, 0x1C37).addRange(0x1C40, 0x1C49).addRange(0x1C4D, 0x1C7D).addRange(0x1C80, 0x1C8A).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x200C, 0x200D).addRange(0x203F, 0x2040).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20DC); +set.addRange(0x20E5, 0x20F0).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x302F).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x3099, 0x309F).addRange(0x30A1, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA62B).addRange(0xA640, 0xA66F).addRange(0xA674, 0xA67D).addRange(0xA67F, 0xA6F1).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7DC).addRange(0xA7F2, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C5).addRange(0xA8D0, 0xA8D9).addRange(0xA8E0, 0xA8F7).addRange(0xA8FD, 0xA92D); set.addRange(0xA930, 0xA953).addRange(0xA960, 0xA97C).addRange(0xA980, 0xA9C0).addRange(0xA9CF, 0xA9D9).addRange(0xA9E0, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA60, 0xAA76).addRange(0xAA7A, 0xAAC2).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEF).addRange(0xAAF2, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFE33, 0xFE34).addRange(0xFE4D, 0xFE4F).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF10, 0xFF19).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF65, 0xFFBE).addRange(0xFFC2, 0xFFC7); -set.addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7); -set.addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE6).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10EFD, 0x10F1C).addRange(0x10F30, 0x10F50).addRange(0x10F70, 0x10F85).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11046).addRange(0x11066, 0x11075).addRange(0x1107F, 0x110BA).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x1113F).addRange(0x11144, 0x11147).addRange(0x11150, 0x11173).addRange(0x11180, 0x111C4).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111DA).addRange(0x11200, 0x11211).addRange(0x11213, 0x11237).addRange(0x1123E, 0x11241).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C); -set.addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11400, 0x1144A).addRange(0x11450, 0x11459).addRange(0x1145E, 0x11461).addRange(0x11480, 0x114C5).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x11640).addRange(0x11650, 0x11659).addRange(0x11680, 0x116B8).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11739).addRange(0x11740, 0x11746).addRange(0x11800, 0x1183A).addRange(0x118A0, 0x118E9).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11943).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E1).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A3E).addRange(0x11A50, 0x11A99).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C40).addRange(0x11C50, 0x11C59).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06); -set.addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF6).addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F42).addRange(0x11F50, 0x11F59).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13440, 0x13455).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF4).addRange(0x16B00, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16B50, 0x16B59).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167); -set.addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021); -set.addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9).addRange(0x1E4D0, 0x1E4F9).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF).addRange(0xE0100, 0xE01EF); +set.addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x105C0, 0x105F3).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939); +set.addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE6).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10D40, 0x10D65).addRange(0x10D69, 0x10D6D).addRange(0x10D6F, 0x10D85).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10EC2, 0x10EC4).addRange(0x10EFC, 0x10F1C).addRange(0x10F30, 0x10F50).addRange(0x10F70, 0x10F85).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11046).addRange(0x11066, 0x11075).addRange(0x1107F, 0x110BA).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x1113F).addRange(0x11144, 0x11147).addRange(0x11150, 0x11173).addRange(0x11180, 0x111C4).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111DA).addRange(0x11200, 0x11211).addRange(0x11213, 0x11237).addRange(0x1123E, 0x11241).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D); +set.addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11380, 0x11389).addRange(0x11390, 0x113B5).addRange(0x113B7, 0x113C0).addRange(0x113C7, 0x113CA).addRange(0x113CC, 0x113D3).addRange(0x113E1, 0x113E2).addRange(0x11400, 0x1144A).addRange(0x11450, 0x11459).addRange(0x1145E, 0x11461).addRange(0x11480, 0x114C5).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x11640).addRange(0x11650, 0x11659).addRange(0x11680, 0x116B8).addRange(0x116C0, 0x116C9).addRange(0x116D0, 0x116E3).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11739).addRange(0x11740, 0x11746).addRange(0x11800, 0x1183A).addRange(0x118A0, 0x118E9).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11943).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E1); +set.addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A3E).addRange(0x11A50, 0x11A99).addRange(0x11AB0, 0x11AF8).addRange(0x11BC0, 0x11BE0).addRange(0x11BF0, 0x11BF9).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C40).addRange(0x11C50, 0x11C59).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF6).addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F42).addRange(0x11F50, 0x11F5A).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13440, 0x13455).addRange(0x13460, 0x143FA).addRange(0x14400, 0x14646).addRange(0x16100, 0x16139).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF4).addRange(0x16B00, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16B50, 0x16B59).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F); +set.addRange(0x16D40, 0x16D6C).addRange(0x16D70, 0x16D79).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18CFF, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CCF0, 0x1CCF9).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA); +set.addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9).addRange(0x1E4D0, 0x1E4F9).addRange(0x1E5D0, 0x1E5FA).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B); +set.addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF).addRange(0xE0100, 0xE01EF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/ID_Start.js b/node_modules/regenerate-unicode-properties/Binary_Property/ID_Start.js index 940f5b6..853edc3 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/ID_Start.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/ID_Start.js @@ -1,13 +1,13 @@ -const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11F02, 0x11FB0, 0x16F50, 0x16FE3, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); +const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x1138B, 0x1138E, 0x113B7, 0x113D1, 0x113D3, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11F02, 0x11FB0, 0x16F50, 0x16FE3, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E5F0, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x971, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33); set.addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6); set.addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066).addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1878).addRange(0x1880, 0x18A8); -set.addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96); -set.addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309B, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42); +set.addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C8A).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96); +set.addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309B, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7DC).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42); set.addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76).addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEA).addRange(0xAAF2, 0xAAF4).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C); -set.addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48); -set.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7); -set.addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x11F04, 0x11F10).addRange(0x11F12, 0x11F33).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C); -set.addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C); -set.addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); +set.addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x105C0, 0x105F3).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91); +set.addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10D4A, 0x10D65).addRange(0x10D6F, 0x10D85).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10EC2, 0x10EC4).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11380, 0x11389).addRange(0x11390, 0x113B5).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B); +set.addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11BC0, 0x11BE0).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x11F04, 0x11F10).addRange(0x11F12, 0x11F33).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x13460, 0x143FA).addRange(0x14400, 0x14646).addRange(0x16100, 0x1611D).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16D40, 0x16D6C).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18CFF, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE); +set.addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E5D0, 0x1E5ED).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03); +set.addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Ideographic.js b/node_modules/regenerate-unicode-properties/Binary_Property/Ideographic.js index feffe8b..ec485b3 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Ideographic.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Ideographic.js @@ -1,3 +1,3 @@ const set = require('regenerate')(0x16FE4); -set.addRange(0x3006, 0x3007).addRange(0x3021, 0x3029).addRange(0x3038, 0x303A).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1B170, 0x1B2FB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); +set.addRange(0x3006, 0x3007).addRange(0x3021, 0x3029).addRange(0x3038, 0x303A).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18CFF, 0x18D08).addRange(0x1B170, 0x1B2FB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Lowercase.js b/node_modules/regenerate-unicode-properties/Binary_Property/Lowercase.js index e80f36e..b1af887 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Lowercase.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Lowercase.js @@ -1,5 +1,5 @@ -const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1C6, 0x1C9, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x221, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1E9F, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x2071, 0x207F, 0x210A, 0x2113, 0x212F, 0x2134, 0x2139, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C71, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D3, 0xA7D5, 0xA7D7, 0xA7D9, 0xA7F6, 0x10780, 0x1D4BB, 0x1D7CB); +const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1C6, 0x1C9, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x221, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1C8A, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1E9F, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x2071, 0x207F, 0x210A, 0x2113, 0x212F, 0x2134, 0x2139, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C71, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7CD, 0xA7D1, 0xA7D3, 0xA7D5, 0xA7D7, 0xA7D9, 0xA7DB, 0xA7F6, 0x10780, 0x1D4BB, 0x1D7CB); set.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x137, 0x138).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x18C, 0x18D).addRange(0x199, 0x19B).addRange(0x1AA, 0x1AB).addRange(0x1B9, 0x1BA).addRange(0x1BD, 0x1BF).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x233, 0x239).addRange(0x23F, 0x240).addRange(0x24F, 0x293).addRange(0x295, 0x2B8).addRange(0x2C0, 0x2C1).addRange(0x2E0, 0x2E4).addRange(0x37A, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x3FB, 0x3FC).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x560, 0x588).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1D00, 0x1DBF).addRange(0x1E95, 0x1E9D).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7); -set.addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x2090, 0x209C).addRange(0x210E, 0x210F).addRange(0x213C, 0x213D).addRange(0x2146, 0x2149).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2C73, 0x2C74).addRange(0x2C76, 0x2C7D).addRange(0x2CE3, 0x2CE4).addRange(0x2D00, 0x2D25).addRange(0xA69B, 0xA69D).addRange(0xA72F, 0xA731).addRange(0xA76F, 0xA778).addRange(0xA793, 0xA795).addRange(0xA7F2, 0xA7F4).addRange(0xA7F8, 0xA7FA).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10783, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1D41A, 0x1D433).addRange(0x1D44E, 0x1D454).addRange(0x1D456, 0x1D467).addRange(0x1D482, 0x1D49B).addRange(0x1D4B6, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D4CF).addRange(0x1D4EA, 0x1D503).addRange(0x1D51E, 0x1D537).addRange(0x1D552, 0x1D56B).addRange(0x1D586, 0x1D59F).addRange(0x1D5BA, 0x1D5D3); -set.addRange(0x1D5EE, 0x1D607).addRange(0x1D622, 0x1D63B).addRange(0x1D656, 0x1D66F).addRange(0x1D68A, 0x1D6A5).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6E1).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D71B).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D755).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D78F).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7C9).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E922, 0x1E943); +set.addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x2090, 0x209C).addRange(0x210E, 0x210F).addRange(0x213C, 0x213D).addRange(0x2146, 0x2149).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2C73, 0x2C74).addRange(0x2C76, 0x2C7D).addRange(0x2CE3, 0x2CE4).addRange(0x2D00, 0x2D25).addRange(0xA69B, 0xA69D).addRange(0xA72F, 0xA731).addRange(0xA76F, 0xA778).addRange(0xA793, 0xA795).addRange(0xA7F2, 0xA7F4).addRange(0xA7F8, 0xA7FA).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10783, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10CC0, 0x10CF2).addRange(0x10D70, 0x10D85).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1D41A, 0x1D433).addRange(0x1D44E, 0x1D454).addRange(0x1D456, 0x1D467).addRange(0x1D482, 0x1D49B).addRange(0x1D4B6, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D4CF).addRange(0x1D4EA, 0x1D503).addRange(0x1D51E, 0x1D537).addRange(0x1D552, 0x1D56B).addRange(0x1D586, 0x1D59F); +set.addRange(0x1D5BA, 0x1D5D3).addRange(0x1D5EE, 0x1D607).addRange(0x1D622, 0x1D63B).addRange(0x1D656, 0x1D66F).addRange(0x1D68A, 0x1D6A5).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6E1).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D71B).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D755).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D78F).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7C9).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E922, 0x1E943); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Math.js b/node_modules/regenerate-unicode-properties/Binary_Property/Math.js index 1a35bd8..55e71fb 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Math.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Math.js @@ -1,4 +1,4 @@ const set = require('regenerate')(0x2B, 0x5E, 0x7C, 0x7E, 0xAC, 0xB1, 0xD7, 0xF7, 0x3D5, 0x2016, 0x2040, 0x2044, 0x2052, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x214B, 0x21DD, 0x237C, 0x23B7, 0x23D0, 0x25E2, 0x25E4, 0x2640, 0x2642, 0xFB29, 0xFE68, 0xFF0B, 0xFF3C, 0xFF3E, 0xFF5C, 0xFF5E, 0xFFE2, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); -set.addRange(0x3C, 0x3E).addRange(0x3D0, 0x3D2).addRange(0x3F0, 0x3F1).addRange(0x3F4, 0x3F6).addRange(0x606, 0x608).addRange(0x2032, 0x2034).addRange(0x2061, 0x2064).addRange(0x207A, 0x207E).addRange(0x208A, 0x208E).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20E6).addRange(0x20EB, 0x20EF).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x2128, 0x2129).addRange(0x212C, 0x212D).addRange(0x212F, 0x2131).addRange(0x2133, 0x2138).addRange(0x213C, 0x2149).addRange(0x2190, 0x21A7).addRange(0x21A9, 0x21AE).addRange(0x21B0, 0x21B1).addRange(0x21B6, 0x21B7).addRange(0x21BC, 0x21DB).addRange(0x21E4, 0x21E5).addRange(0x21F4, 0x22FF).addRange(0x2308, 0x230B).addRange(0x2320, 0x2321).addRange(0x239B, 0x23B5).addRange(0x23DC, 0x23E2).addRange(0x25A0, 0x25A1).addRange(0x25AE, 0x25B7).addRange(0x25BC, 0x25C1).addRange(0x25C6, 0x25C7).addRange(0x25CA, 0x25CB).addRange(0x25CF, 0x25D3).addRange(0x25E7, 0x25EC).addRange(0x25F8, 0x25FF).addRange(0x2605, 0x2606).addRange(0x2660, 0x2663).addRange(0x266D, 0x266F).addRange(0x27C0, 0x27FF).addRange(0x2900, 0x2AFF).addRange(0x2B30, 0x2B44).addRange(0x2B47, 0x2B4C).addRange(0xFE61, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE9, 0xFFEC).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F); -set.addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1); +set.addRange(0x3C, 0x3E).addRange(0x3D0, 0x3D2).addRange(0x3F0, 0x3F1).addRange(0x3F4, 0x3F6).addRange(0x606, 0x608).addRange(0x2032, 0x2034).addRange(0x2061, 0x2064).addRange(0x207A, 0x207E).addRange(0x208A, 0x208E).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20E6).addRange(0x20EB, 0x20EF).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x2128, 0x2129).addRange(0x212C, 0x212D).addRange(0x212F, 0x2131).addRange(0x2133, 0x2138).addRange(0x213C, 0x2149).addRange(0x2190, 0x21A7).addRange(0x21A9, 0x21AE).addRange(0x21B0, 0x21B1).addRange(0x21B6, 0x21B7).addRange(0x21BC, 0x21DB).addRange(0x21E4, 0x21E5).addRange(0x21F4, 0x22FF).addRange(0x2308, 0x230B).addRange(0x2320, 0x2321).addRange(0x239B, 0x23B5).addRange(0x23DC, 0x23E2).addRange(0x25A0, 0x25A1).addRange(0x25AE, 0x25B7).addRange(0x25BC, 0x25C1).addRange(0x25C6, 0x25C7).addRange(0x25CA, 0x25CB).addRange(0x25CF, 0x25D3).addRange(0x25E7, 0x25EC).addRange(0x25F8, 0x25FF).addRange(0x2605, 0x2606).addRange(0x2660, 0x2663).addRange(0x266D, 0x266F).addRange(0x27C0, 0x27FF).addRange(0x2900, 0x2AFF).addRange(0x2B30, 0x2B44).addRange(0x2B47, 0x2B4C).addRange(0xFE61, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE9, 0xFFEC).addRange(0x10D8E, 0x10D8F).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C); +set.addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Sentence_Terminal.js b/node_modules/regenerate-unicode-properties/Binary_Property/Sentence_Terminal.js index b5cb465..814a6fd 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Sentence_Terminal.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Sentence_Terminal.js @@ -1,3 +1,4 @@ -const set = require('regenerate')(0x21, 0x2E, 0x3F, 0x589, 0x6D4, 0x7F9, 0x837, 0x839, 0x1362, 0x166E, 0x1803, 0x1809, 0x2E2E, 0x2E3C, 0x3002, 0xA4FF, 0xA6F3, 0xA6F7, 0xA92F, 0xABEB, 0xFE52, 0xFF01, 0xFF0E, 0xFF1F, 0xFF61, 0x111CD, 0x112A9, 0x11944, 0x11946, 0x16AF5, 0x16B44, 0x16E98, 0x1BC9F, 0x1DA88); -set.addRange(0x61D, 0x61F).addRange(0x700, 0x702).addRange(0x83D, 0x83E).addRange(0x964, 0x965).addRange(0x104A, 0x104B).addRange(0x1367, 0x1368).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D5).addRange(0x1944, 0x1945).addRange(0x1AA8, 0x1AAB).addRange(0x1B5A, 0x1B5B).addRange(0x1B5E, 0x1B5F).addRange(0x1B7D, 0x1B7E).addRange(0x1C3B, 0x1C3C).addRange(0x1C7E, 0x1C7F).addRange(0x203C, 0x203D).addRange(0x2047, 0x2049).addRange(0x2E53, 0x2E54).addRange(0xA60E, 0xA60F).addRange(0xA876, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA9C8, 0xA9C9).addRange(0xAA5D, 0xAA5F).addRange(0xAAF0, 0xAAF1).addRange(0xFE56, 0xFE57).addRange(0x10A56, 0x10A57).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x11048).addRange(0x110BE, 0x110C1).addRange(0x11141, 0x11143).addRange(0x111C5, 0x111C6).addRange(0x111DE, 0x111DF).addRange(0x11238, 0x11239).addRange(0x1123B, 0x1123C).addRange(0x1144B, 0x1144C).addRange(0x115C2, 0x115C3).addRange(0x115C9, 0x115D7).addRange(0x11641, 0x11642).addRange(0x1173C, 0x1173E).addRange(0x11A42, 0x11A43).addRange(0x11A9B, 0x11A9C).addRange(0x11C41, 0x11C42).addRange(0x11EF7, 0x11EF8).addRange(0x11F43, 0x11F44).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B38); +const set = require('regenerate')(0x21, 0x2E, 0x3F, 0x589, 0x6D4, 0x7F9, 0x837, 0x839, 0x1362, 0x166E, 0x1803, 0x1809, 0x2024, 0x2E2E, 0x2E3C, 0x3002, 0xA4FF, 0xA6F3, 0xA6F7, 0xA92F, 0xABEB, 0xFE12, 0xFE52, 0xFF01, 0xFF0E, 0xFF1F, 0xFF61, 0x111CD, 0x112A9, 0x11944, 0x11946, 0x16AF5, 0x16B44, 0x16E98, 0x1BC9F, 0x1DA88); +set.addRange(0x61D, 0x61F).addRange(0x700, 0x702).addRange(0x83D, 0x83E).addRange(0x964, 0x965).addRange(0x104A, 0x104B).addRange(0x1367, 0x1368).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D5).addRange(0x1944, 0x1945).addRange(0x1AA8, 0x1AAB).addRange(0x1B4E, 0x1B4F).addRange(0x1B5A, 0x1B5B).addRange(0x1B5E, 0x1B5F).addRange(0x1B7D, 0x1B7F).addRange(0x1C3B, 0x1C3C).addRange(0x1C7E, 0x1C7F).addRange(0x203C, 0x203D).addRange(0x2047, 0x2049).addRange(0x2CF9, 0x2CFB).addRange(0x2E53, 0x2E54).addRange(0xA60E, 0xA60F).addRange(0xA876, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA9C8, 0xA9C9).addRange(0xAA5D, 0xAA5F).addRange(0xAAF0, 0xAAF1).addRange(0xFE15, 0xFE16).addRange(0xFE56, 0xFE57).addRange(0x10A56, 0x10A57).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x11048).addRange(0x110BE, 0x110C1).addRange(0x11141, 0x11143).addRange(0x111C5, 0x111C6).addRange(0x111DE, 0x111DF).addRange(0x11238, 0x11239).addRange(0x1123B, 0x1123C).addRange(0x113D4, 0x113D5).addRange(0x1144B, 0x1144C).addRange(0x115C2, 0x115C3).addRange(0x115C9, 0x115D7).addRange(0x11641, 0x11642).addRange(0x1173C, 0x1173E).addRange(0x11A42, 0x11A43).addRange(0x11A9B, 0x11A9C).addRange(0x11C41, 0x11C42).addRange(0x11EF7, 0x11EF8).addRange(0x11F43, 0x11F44).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B38); +set.addRange(0x16D6E, 0x16D6F); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Terminal_Punctuation.js b/node_modules/regenerate-unicode-properties/Binary_Property/Terminal_Punctuation.js index 715c158..c5fadab 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Terminal_Punctuation.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Terminal_Punctuation.js @@ -1,4 +1,4 @@ -const set = require('regenerate')(0x21, 0x2C, 0x2E, 0x3F, 0x37E, 0x387, 0x589, 0x5C3, 0x60C, 0x61B, 0x6D4, 0x70C, 0x85E, 0xF08, 0x166E, 0x17DA, 0x2E2E, 0x2E3C, 0x2E41, 0x2E4C, 0xA92F, 0xAADF, 0xABEB, 0xFF01, 0xFF0C, 0xFF0E, 0xFF1F, 0xFF61, 0xFF64, 0x1039F, 0x103D0, 0x10857, 0x1091F, 0x111CD, 0x112A9, 0x11944, 0x11946, 0x11C71, 0x16AF5, 0x16B44, 0x1BC9F); -set.addRange(0x3A, 0x3B).addRange(0x61D, 0x61F).addRange(0x700, 0x70A).addRange(0x7F8, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF0D, 0xF12).addRange(0x104A, 0x104B).addRange(0x1361, 0x1368).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x1802, 0x1805).addRange(0x1808, 0x1809).addRange(0x1944, 0x1945).addRange(0x1AA8, 0x1AAB).addRange(0x1B5A, 0x1B5B).addRange(0x1B5D, 0x1B5F).addRange(0x1B7D, 0x1B7E).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x203C, 0x203D).addRange(0x2047, 0x2049).addRange(0x2E4E, 0x2E4F).addRange(0x2E53, 0x2E54).addRange(0x3001, 0x3002).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F3, 0xA6F7).addRange(0xA876, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA9C7, 0xA9C9).addRange(0xAA5D, 0xAA5F).addRange(0xAAF0, 0xAAF1).addRange(0xFE50, 0xFE52).addRange(0xFE54, 0xFE57).addRange(0xFF1A, 0xFF1B).addRange(0x10A56, 0x10A57).addRange(0x10AF0, 0x10AF5).addRange(0x10B3A, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BE, 0x110C1).addRange(0x11141, 0x11143).addRange(0x111C5, 0x111C6).addRange(0x111DE, 0x111DF).addRange(0x11238, 0x1123C).addRange(0x1144B, 0x1144D); -set.addRange(0x1145A, 0x1145B).addRange(0x115C2, 0x115C5).addRange(0x115C9, 0x115D7).addRange(0x11641, 0x11642).addRange(0x1173C, 0x1173E).addRange(0x11A42, 0x11A43).addRange(0x11A9B, 0x11A9C).addRange(0x11AA1, 0x11AA2).addRange(0x11C41, 0x11C43).addRange(0x11EF7, 0x11EF8).addRange(0x11F43, 0x11F44).addRange(0x12470, 0x12474).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B39).addRange(0x16E97, 0x16E98).addRange(0x1DA87, 0x1DA8A); +const set = require('regenerate')(0x21, 0x2C, 0x2E, 0x3F, 0x37E, 0x387, 0x589, 0x5C3, 0x60C, 0x61B, 0x6D4, 0x70C, 0x85E, 0xF08, 0x166E, 0x17DA, 0x2024, 0x2E2E, 0x2E3C, 0x2E41, 0x2E4C, 0xA92F, 0xAADF, 0xABEB, 0xFE12, 0xFF01, 0xFF0C, 0xFF0E, 0xFF1F, 0xFF61, 0xFF64, 0x1039F, 0x103D0, 0x10857, 0x1091F, 0x111CD, 0x112A9, 0x11944, 0x11946, 0x11C71, 0x16AF5, 0x16B44, 0x1BC9F); +set.addRange(0x3A, 0x3B).addRange(0x61D, 0x61F).addRange(0x700, 0x70A).addRange(0x7F8, 0x7F9).addRange(0x830, 0x835).addRange(0x837, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF0D, 0xF12).addRange(0x104A, 0x104B).addRange(0x1361, 0x1368).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x1802, 0x1805).addRange(0x1808, 0x1809).addRange(0x1944, 0x1945).addRange(0x1AA8, 0x1AAB).addRange(0x1B4E, 0x1B4F).addRange(0x1B5A, 0x1B5B).addRange(0x1B5D, 0x1B5F).addRange(0x1B7D, 0x1B7F).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x203C, 0x203D).addRange(0x2047, 0x2049).addRange(0x2CF9, 0x2CFB).addRange(0x2E4E, 0x2E4F).addRange(0x2E53, 0x2E54).addRange(0x3001, 0x3002).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F3, 0xA6F7).addRange(0xA876, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA9C7, 0xA9C9).addRange(0xAA5D, 0xAA5F).addRange(0xAAF0, 0xAAF1).addRange(0xFE15, 0xFE16).addRange(0xFE50, 0xFE52).addRange(0xFE54, 0xFE57).addRange(0xFF1A, 0xFF1B).addRange(0x10A56, 0x10A57).addRange(0x10AF0, 0x10AF5).addRange(0x10B3A, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BE, 0x110C1).addRange(0x11141, 0x11143); +set.addRange(0x111C5, 0x111C6).addRange(0x111DE, 0x111DF).addRange(0x11238, 0x1123C).addRange(0x113D4, 0x113D5).addRange(0x1144B, 0x1144D).addRange(0x1145A, 0x1145B).addRange(0x115C2, 0x115C5).addRange(0x115C9, 0x115D7).addRange(0x11641, 0x11642).addRange(0x1173C, 0x1173E).addRange(0x11A42, 0x11A43).addRange(0x11A9B, 0x11A9C).addRange(0x11AA1, 0x11AA2).addRange(0x11C41, 0x11C43).addRange(0x11EF7, 0x11EF8).addRange(0x11F43, 0x11F44).addRange(0x12470, 0x12474).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B39).addRange(0x16D6E, 0x16D6F).addRange(0x16E97, 0x16E98).addRange(0x1DA87, 0x1DA8A); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/Uppercase.js b/node_modules/regenerate-unicode-properties/Binary_Property/Uppercase.js index ec7889d..ff180a6 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/Uppercase.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/Uppercase.js @@ -1,4 +1,5 @@ -const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1C4, 0x1C7, 0x1CA, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F1, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2145, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5, 0x1D49C, 0x1D4A2, 0x1D546, 0x1D7CA); +const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1C4, 0x1C7, 0x1CA, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F1, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1C89, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2145, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7DA, 0xA7DC, 0xA7F5, 0x1D49C, 0x1D4A2, 0x1D546, 0x1D7CA); set.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDE).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3D2, 0x3D4).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13A0, 0x13F5).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1FB8, 0x1FBB).addRange(0x1FC8, 0x1FCB).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF8, 0x1FFB).addRange(0x210B, 0x210D).addRange(0x2110, 0x2112).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x2130, 0x2133).addRange(0x213E, 0x213F).addRange(0x2160, 0x216F); -set.addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1D400, 0x1D419).addRange(0x1D434, 0x1D44D).addRange(0x1D468, 0x1D481).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B5).addRange(0x1D4D0, 0x1D4E9).addRange(0x1D504, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D538, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D56C, 0x1D585).addRange(0x1D5A0, 0x1D5B9).addRange(0x1D5D4, 0x1D5ED).addRange(0x1D608, 0x1D621).addRange(0x1D63C, 0x1D655).addRange(0x1D670, 0x1D689).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6E2, 0x1D6FA).addRange(0x1D71C, 0x1D734).addRange(0x1D756, 0x1D76E).addRange(0x1D790, 0x1D7A8).addRange(0x1E900, 0x1E921).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189); +set.addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xA7CB, 0xA7CC).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x10D50, 0x10D65).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1D400, 0x1D419).addRange(0x1D434, 0x1D44D).addRange(0x1D468, 0x1D481).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B5).addRange(0x1D4D0, 0x1D4E9).addRange(0x1D504, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D538, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D56C, 0x1D585).addRange(0x1D5A0, 0x1D5B9).addRange(0x1D5D4, 0x1D5ED).addRange(0x1D608, 0x1D621).addRange(0x1D63C, 0x1D655).addRange(0x1D670, 0x1D689).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6E2, 0x1D6FA).addRange(0x1D71C, 0x1D734).addRange(0x1D756, 0x1D76E).addRange(0x1D790, 0x1D7A8).addRange(0x1E900, 0x1E921).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169); +set.addRange(0x1F170, 0x1F189); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/XID_Continue.js b/node_modules/regenerate-unicode-properties/Binary_Property/XID_Continue.js index 53d714b..4a6b333 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/XID_Continue.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/XID_Continue.js @@ -1,15 +1,16 @@ -const set = require('regenerate')(0x5F, 0xAA, 0xB5, 0xB7, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x7FD, 0x9B2, 0x9D7, 0x9FC, 0x9FE, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0xF00, 0xF35, 0xF37, 0xF39, 0xFC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x1AA7, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2054, 0x2071, 0x207F, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA82C, 0xA8FB, 0xFB3E, 0xFE71, 0xFE73, 0xFE77, 0xFE79, 0xFE7B, 0xFE7D, 0xFF3F, 0x101FD, 0x102E0, 0x10808, 0x1083C, 0x10A3F, 0x10F27, 0x110C2, 0x11176, 0x111DC, 0x11288, 0x11350, 0x11357, 0x114C7, 0x11644, 0x11909, 0x11A47, 0x11A9D, 0x11D3A, 0x11FB0, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); -set.addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x300, 0x374).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x386, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x483, 0x487).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x669).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6FC).addRange(0x710, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7F5).addRange(0x800, 0x82D).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x898, 0x8E1).addRange(0x8E3, 0x963).addRange(0x966, 0x96F).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD); +const set = require('regenerate')(0x5F, 0xAA, 0xB5, 0xB7, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x7FD, 0x9B2, 0x9D7, 0x9FC, 0x9FE, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0xF00, 0xF35, 0xF37, 0xF39, 0xFC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x1AA7, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2054, 0x2071, 0x207F, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA82C, 0xA8FB, 0xFB3E, 0xFE71, 0xFE73, 0xFE77, 0xFE79, 0xFE7B, 0xFE7D, 0xFF3F, 0x101FD, 0x102E0, 0x10808, 0x1083C, 0x10A3F, 0x10F27, 0x110C2, 0x11176, 0x111DC, 0x11288, 0x11350, 0x11357, 0x1138B, 0x1138E, 0x113C2, 0x113C5, 0x114C7, 0x11644, 0x11909, 0x11A47, 0x11A9D, 0x11D3A, 0x11FB0, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); +set.addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x300, 0x374).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x386, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x483, 0x487).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x669).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6FC).addRange(0x710, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7F5).addRange(0x800, 0x82D).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x897, 0x8E1).addRange(0x8E3, 0x963).addRange(0x966, 0x96F).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD); set.addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9F1).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA75).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAEF).addRange(0xAF9, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB6F).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9); set.addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBEF).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC80, 0xC83).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4E).addRange(0xD54, 0xD57).addRange(0xD5F, 0xD63).addRange(0xD66, 0xD6F).addRange(0xD7A, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF3).addRange(0xE01, 0xE3A).addRange(0xE40, 0xE4E).addRange(0xE50, 0xE59).addRange(0xE81, 0xE82); set.addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECE).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF18, 0xF19).addRange(0xF20, 0xF29).addRange(0xF3E, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF84).addRange(0xF86, 0xF97).addRange(0xF99, 0xFBC).addRange(0x1000, 0x1049).addRange(0x1050, 0x109D).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x135F).addRange(0x1369, 0x1371).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1734).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17D3).addRange(0x17DC, 0x17DD).addRange(0x17E0, 0x17E9); -set.addRange(0x180B, 0x180D).addRange(0x180F, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1946, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B59).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1BF3).addRange(0x1C00, 0x1C37).addRange(0x1C40, 0x1C49).addRange(0x1C4D, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x200C, 0x200D).addRange(0x203F, 0x2040).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20DC); -set.addRange(0x20E5, 0x20F0).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x302F).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x3099, 0x309A).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA62B).addRange(0xA640, 0xA66F).addRange(0xA674, 0xA67D).addRange(0xA67F, 0xA6F1).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C5).addRange(0xA8D0, 0xA8D9).addRange(0xA8E0, 0xA8F7); +set.addRange(0x180B, 0x180D).addRange(0x180F, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1946, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B59).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1BF3).addRange(0x1C00, 0x1C37).addRange(0x1C40, 0x1C49).addRange(0x1C4D, 0x1C7D).addRange(0x1C80, 0x1C8A).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x200C, 0x200D).addRange(0x203F, 0x2040).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20DC); +set.addRange(0x20E5, 0x20F0).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x302F).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x3099, 0x309A).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA62B).addRange(0xA640, 0xA66F).addRange(0xA674, 0xA67D).addRange(0xA67F, 0xA6F1).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7DC).addRange(0xA7F2, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C5).addRange(0xA8D0, 0xA8D9).addRange(0xA8E0, 0xA8F7); set.addRange(0xA8FD, 0xA92D).addRange(0xA930, 0xA953).addRange(0xA960, 0xA97C).addRange(0xA980, 0xA9C0).addRange(0xA9CF, 0xA9D9).addRange(0xA9E0, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA60, 0xAA76).addRange(0xAA7A, 0xAAC2).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEF).addRange(0xAAF2, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFC5D).addRange(0xFC64, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDF9).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFE33, 0xFE34).addRange(0xFE4D, 0xFE4F).addRange(0xFE7F, 0xFEFC).addRange(0xFF10, 0xFF19).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF65, 0xFFBE); -set.addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939); -set.addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE6).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10EFD, 0x10F1C).addRange(0x10F30, 0x10F50).addRange(0x10F70, 0x10F85).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11046).addRange(0x11066, 0x11075).addRange(0x1107F, 0x110BA).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x1113F).addRange(0x11144, 0x11147).addRange(0x11150, 0x11173).addRange(0x11180, 0x111C4).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111DA).addRange(0x11200, 0x11211).addRange(0x11213, 0x11237).addRange(0x1123E, 0x11241).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303); -set.addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11400, 0x1144A).addRange(0x11450, 0x11459).addRange(0x1145E, 0x11461).addRange(0x11480, 0x114C5).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x11640).addRange(0x11650, 0x11659).addRange(0x11680, 0x116B8).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11739).addRange(0x11740, 0x11746).addRange(0x11800, 0x1183A).addRange(0x118A0, 0x118E9).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11943).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E1).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A3E).addRange(0x11A50, 0x11A99).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C40).addRange(0x11C50, 0x11C59).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6); -set.addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF6).addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F42).addRange(0x11F50, 0x11F59).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13440, 0x13455).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF4).addRange(0x16B00, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16B50, 0x16B59).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152); -set.addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018); -set.addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9).addRange(0x1E4D0, 0x1E4F9).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF).addRange(0xE0100, 0xE01EF); +set.addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x105C0, 0x105F3).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915); +set.addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE6).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10D40, 0x10D65).addRange(0x10D69, 0x10D6D).addRange(0x10D6F, 0x10D85).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10EC2, 0x10EC4).addRange(0x10EFC, 0x10F1C).addRange(0x10F30, 0x10F50).addRange(0x10F70, 0x10F85).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11046).addRange(0x11066, 0x11075).addRange(0x1107F, 0x110BA).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x1113F).addRange(0x11144, 0x11147).addRange(0x11150, 0x11173).addRange(0x11180, 0x111C4).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111DA).addRange(0x11200, 0x11211).addRange(0x11213, 0x11237).addRange(0x1123E, 0x11241).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D); +set.addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11380, 0x11389).addRange(0x11390, 0x113B5).addRange(0x113B7, 0x113C0).addRange(0x113C7, 0x113CA).addRange(0x113CC, 0x113D3).addRange(0x113E1, 0x113E2).addRange(0x11400, 0x1144A).addRange(0x11450, 0x11459).addRange(0x1145E, 0x11461).addRange(0x11480, 0x114C5).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x11640).addRange(0x11650, 0x11659).addRange(0x11680, 0x116B8).addRange(0x116C0, 0x116C9).addRange(0x116D0, 0x116E3).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11739).addRange(0x11740, 0x11746).addRange(0x11800, 0x1183A).addRange(0x118A0, 0x118E9).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11943).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7); +set.addRange(0x119DA, 0x119E1).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A3E).addRange(0x11A50, 0x11A99).addRange(0x11AB0, 0x11AF8).addRange(0x11BC0, 0x11BE0).addRange(0x11BF0, 0x11BF9).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C40).addRange(0x11C50, 0x11C59).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF6).addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F42).addRange(0x11F50, 0x11F5A).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13440, 0x13455).addRange(0x13460, 0x143FA).addRange(0x14400, 0x14646).addRange(0x16100, 0x16139).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF4).addRange(0x16B00, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16B50, 0x16B59).addRange(0x16B63, 0x16B77); +set.addRange(0x16B7D, 0x16B8F).addRange(0x16D40, 0x16D6C).addRange(0x16D70, 0x16D79).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18CFF, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CCF0, 0x1CCF9).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0); +set.addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9).addRange(0x1E4D0, 0x1E4F9).addRange(0x1E5D0, 0x1E5FA).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89); +set.addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF).addRange(0xE0100, 0xE01EF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Binary_Property/XID_Start.js b/node_modules/regenerate-unicode-properties/Binary_Property/XID_Start.js index 35f7b9b..e314885 100644 --- a/node_modules/regenerate-unicode-properties/Binary_Property/XID_Start.js +++ b/node_modules/regenerate-unicode-properties/Binary_Property/XID_Start.js @@ -1,13 +1,13 @@ -const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE32, 0xE84, 0xEA5, 0xEB2, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0xFE71, 0xFE73, 0xFE77, 0xFE79, 0xFE7B, 0xFE7D, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11F02, 0x11FB0, 0x16F50, 0x16FE3, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); +const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE32, 0xE84, 0xEA5, 0xEB2, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0xFE71, 0xFE73, 0xFE77, 0xFE79, 0xFE7B, 0xFE7D, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x1138B, 0x1138E, 0x113B7, 0x113D1, 0x113D3, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11F02, 0x11FB0, 0x16F50, 0x16FE3, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E5F0, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x971, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33); set.addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6); set.addRange(0xE01, 0xE30).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066).addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1878).addRange(0x1880, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E); -set.addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE); -set.addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76); +set.addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C8A).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE); +set.addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7DC).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76); set.addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEA).addRange(0xAAF2, 0xAAF4).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFC5D).addRange(0xFC64, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDF9).addRange(0xFE7F, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0); -set.addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2); -set.addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0); -set.addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x11F04, 0x11F10).addRange(0x11F12, 0x11F33).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F); -set.addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89); -set.addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); +set.addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x105C0, 0x105F3).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48); +set.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10D4A, 0x10D65).addRange(0x10D6F, 0x10D85).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10EC2, 0x10EC4).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11380, 0x11389).addRange(0x11390, 0x113B5).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF); +set.addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11BC0, 0x11BE0).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x11F04, 0x11F10).addRange(0x11F12, 0x11F33).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x13460, 0x143FA).addRange(0x14400, 0x14646).addRange(0x16100, 0x1611D).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16D40, 0x16D6C).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18CFF, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122); +set.addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E5D0, 0x1E5ED).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F); +set.addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Cased_Letter.js b/node_modules/regenerate-unicode-properties/General_Category/Cased_Letter.js index 1c48bf3..cbb6fe3 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Cased_Letter.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Cased_Letter.js @@ -1,5 +1,5 @@ const set = require('regenerate')(0xB5, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2139, 0x214E, 0x2D27, 0x2D2D, 0xA7D3, 0xA7FA, 0x1D4A2, 0x1D4BB, 0x1D546); -set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x1BA).addRange(0x1BC, 0x1BF).addRange(0x1C4, 0x293).addRange(0x295, 0x2AF).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D00, 0x1D2B).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1D9A).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2134).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2183, 0x2184); -set.addRange(0x2C00, 0x2C7B).addRange(0x2C7E, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69B).addRange(0xA722, 0xA76F).addRange(0xA771, 0xA787).addRange(0xA78B, 0xA78E).addRange(0xA790, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F5, 0xA7F6).addRange(0xAB30, 0xAB5A).addRange(0xAB60, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550); -set.addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E900, 0x1E943); +set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x1BA).addRange(0x1BC, 0x1BF).addRange(0x1C4, 0x293).addRange(0x295, 0x2AF).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C8A).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D00, 0x1D2B).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1D9A).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2134).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2183, 0x2184); +set.addRange(0x2C00, 0x2C7B).addRange(0x2C7E, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69B).addRange(0xA722, 0xA76F).addRange(0xA771, 0xA787).addRange(0xA78B, 0xA78E).addRange(0xA790, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7DC).addRange(0xA7F5, 0xA7F6).addRange(0xAB30, 0xAB5A).addRange(0xAB60, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D50, 0x10D65).addRange(0x10D70, 0x10D85).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E); +set.addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E900, 0x1E943); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Dash_Punctuation.js b/node_modules/regenerate-unicode-properties/General_Category/Dash_Punctuation.js index 3228b3c..d19191c 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Dash_Punctuation.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Dash_Punctuation.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x2D, 0x58A, 0x5BE, 0x1400, 0x1806, 0x2E17, 0x2E1A, 0x2E40, 0x2E5D, 0x301C, 0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D, 0x10EAD); +const set = require('regenerate')(0x2D, 0x58A, 0x5BE, 0x1400, 0x1806, 0x2E17, 0x2E1A, 0x2E40, 0x2E5D, 0x301C, 0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D, 0x10D6E, 0x10EAD); set.addRange(0x2010, 0x2015).addRange(0x2E3A, 0x2E3B).addRange(0xFE31, 0xFE32); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Decimal_Number.js b/node_modules/regenerate-unicode-properties/General_Category/Decimal_Number.js index 418148d..deebaa6 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Decimal_Number.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Decimal_Number.js @@ -1,4 +1,4 @@ const set = require('regenerate')(); -set.addRange(0x30, 0x39).addRange(0x660, 0x669).addRange(0x6F0, 0x6F9).addRange(0x7C0, 0x7C9).addRange(0x966, 0x96F).addRange(0x9E6, 0x9EF).addRange(0xA66, 0xA6F).addRange(0xAE6, 0xAEF).addRange(0xB66, 0xB6F).addRange(0xBE6, 0xBEF).addRange(0xC66, 0xC6F).addRange(0xCE6, 0xCEF).addRange(0xD66, 0xD6F).addRange(0xDE6, 0xDEF).addRange(0xE50, 0xE59).addRange(0xED0, 0xED9).addRange(0xF20, 0xF29).addRange(0x1040, 0x1049).addRange(0x1090, 0x1099).addRange(0x17E0, 0x17E9).addRange(0x1810, 0x1819).addRange(0x1946, 0x194F).addRange(0x19D0, 0x19D9).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1B50, 0x1B59).addRange(0x1BB0, 0x1BB9).addRange(0x1C40, 0x1C49).addRange(0x1C50, 0x1C59).addRange(0xA620, 0xA629).addRange(0xA8D0, 0xA8D9).addRange(0xA900, 0xA909).addRange(0xA9D0, 0xA9D9).addRange(0xA9F0, 0xA9F9).addRange(0xAA50, 0xAA59).addRange(0xABF0, 0xABF9).addRange(0xFF10, 0xFF19).addRange(0x104A0, 0x104A9).addRange(0x10D30, 0x10D39).addRange(0x11066, 0x1106F).addRange(0x110F0, 0x110F9).addRange(0x11136, 0x1113F).addRange(0x111D0, 0x111D9).addRange(0x112F0, 0x112F9).addRange(0x11450, 0x11459).addRange(0x114D0, 0x114D9).addRange(0x11650, 0x11659).addRange(0x116C0, 0x116C9).addRange(0x11730, 0x11739).addRange(0x118E0, 0x118E9).addRange(0x11950, 0x11959); -set.addRange(0x11C50, 0x11C59).addRange(0x11D50, 0x11D59).addRange(0x11DA0, 0x11DA9).addRange(0x11F50, 0x11F59).addRange(0x16A60, 0x16A69).addRange(0x16AC0, 0x16AC9).addRange(0x16B50, 0x16B59).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E140, 0x1E149).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E4F0, 0x1E4F9).addRange(0x1E950, 0x1E959).addRange(0x1FBF0, 0x1FBF9); +set.addRange(0x30, 0x39).addRange(0x660, 0x669).addRange(0x6F0, 0x6F9).addRange(0x7C0, 0x7C9).addRange(0x966, 0x96F).addRange(0x9E6, 0x9EF).addRange(0xA66, 0xA6F).addRange(0xAE6, 0xAEF).addRange(0xB66, 0xB6F).addRange(0xBE6, 0xBEF).addRange(0xC66, 0xC6F).addRange(0xCE6, 0xCEF).addRange(0xD66, 0xD6F).addRange(0xDE6, 0xDEF).addRange(0xE50, 0xE59).addRange(0xED0, 0xED9).addRange(0xF20, 0xF29).addRange(0x1040, 0x1049).addRange(0x1090, 0x1099).addRange(0x17E0, 0x17E9).addRange(0x1810, 0x1819).addRange(0x1946, 0x194F).addRange(0x19D0, 0x19D9).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1B50, 0x1B59).addRange(0x1BB0, 0x1BB9).addRange(0x1C40, 0x1C49).addRange(0x1C50, 0x1C59).addRange(0xA620, 0xA629).addRange(0xA8D0, 0xA8D9).addRange(0xA900, 0xA909).addRange(0xA9D0, 0xA9D9).addRange(0xA9F0, 0xA9F9).addRange(0xAA50, 0xAA59).addRange(0xABF0, 0xABF9).addRange(0xFF10, 0xFF19).addRange(0x104A0, 0x104A9).addRange(0x10D30, 0x10D39).addRange(0x10D40, 0x10D49).addRange(0x11066, 0x1106F).addRange(0x110F0, 0x110F9).addRange(0x11136, 0x1113F).addRange(0x111D0, 0x111D9).addRange(0x112F0, 0x112F9).addRange(0x11450, 0x11459).addRange(0x114D0, 0x114D9).addRange(0x11650, 0x11659).addRange(0x116C0, 0x116C9).addRange(0x116D0, 0x116E3).addRange(0x11730, 0x11739); +set.addRange(0x118E0, 0x118E9).addRange(0x11950, 0x11959).addRange(0x11BF0, 0x11BF9).addRange(0x11C50, 0x11C59).addRange(0x11D50, 0x11D59).addRange(0x11DA0, 0x11DA9).addRange(0x11F50, 0x11F59).addRange(0x16130, 0x16139).addRange(0x16A60, 0x16A69).addRange(0x16AC0, 0x16AC9).addRange(0x16B50, 0x16B59).addRange(0x16D70, 0x16D79).addRange(0x1CCF0, 0x1CCF9).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E140, 0x1E149).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E4F0, 0x1E4F9).addRange(0x1E5F1, 0x1E5FA).addRange(0x1E950, 0x1E959).addRange(0x1FBF0, 0x1FBF9); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Letter.js b/node_modules/regenerate-unicode-properties/General_Category/Letter.js index 159d90c..6026606 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Letter.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Letter.js @@ -1,13 +1,13 @@ -const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0x2E2F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11F02, 0x11FB0, 0x16F50, 0x16FE3, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); +const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0x2E2F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x1138B, 0x1138E, 0x113B7, 0x113D1, 0x113D3, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11F02, 0x11FB0, 0x16F50, 0x16FE3, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E5F0, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x971, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33); set.addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6); set.addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066).addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16F1, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1878).addRange(0x1880, 0x1884); -set.addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2183, 0x2184).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25); -set.addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3006).addRange(0x3031, 0x3035).addRange(0x303B, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6E5).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28); +set.addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C8A).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2183, 0x2184).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25); +set.addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3006).addRange(0x3031, 0x3035).addRange(0x303B, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6E5).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7DC).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28); set.addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76).addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEA).addRange(0xAAF2, 0xAAF4).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10280, 0x1029C); -set.addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x10340).addRange(0x10342, 0x10349).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48); -set.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7); -set.addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x11F04, 0x11F10).addRange(0x11F12, 0x11F33).addRange(0x12000, 0x12399).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F); -set.addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89); -set.addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); +set.addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x10340).addRange(0x10342, 0x10349).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x105C0, 0x105F3).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91); +set.addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10D4A, 0x10D65).addRange(0x10D6F, 0x10D85).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10EC2, 0x10EC4).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11380, 0x11389).addRange(0x11390, 0x113B5).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B); +set.addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11BC0, 0x11BE0).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x11F04, 0x11F10).addRange(0x11F12, 0x11F33).addRange(0x12000, 0x12399).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x13460, 0x143FA).addRange(0x14400, 0x14646).addRange(0x16100, 0x1611D).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16D40, 0x16D6C).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18CFF, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122); +set.addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E5D0, 0x1E5ED).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F); +set.addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Lowercase_Letter.js b/node_modules/regenerate-unicode-properties/General_Category/Lowercase_Letter.js index eebf0ac..22ff0a7 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Lowercase_Letter.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Lowercase_Letter.js @@ -1,5 +1,5 @@ -const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1C6, 0x1C9, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x221, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1E9F, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x210A, 0x2113, 0x212F, 0x2134, 0x2139, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C71, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D3, 0xA7D5, 0xA7D7, 0xA7D9, 0xA7F6, 0xA7FA, 0x1D4BB, 0x1D7CB); +const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1C6, 0x1C9, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x221, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1C8A, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1E9F, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x210A, 0x2113, 0x212F, 0x2134, 0x2139, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C71, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7CD, 0xA7D1, 0xA7D3, 0xA7D5, 0xA7D7, 0xA7D9, 0xA7DB, 0xA7F6, 0xA7FA, 0x1D4BB, 0x1D7CB); set.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x137, 0x138).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x18C, 0x18D).addRange(0x199, 0x19B).addRange(0x1AA, 0x1AB).addRange(0x1B9, 0x1BA).addRange(0x1BD, 0x1BF).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x233, 0x239).addRange(0x23F, 0x240).addRange(0x24F, 0x293).addRange(0x295, 0x2AF).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x3FB, 0x3FC).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x560, 0x588).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1D00, 0x1D2B).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1D9A).addRange(0x1E95, 0x1E9D).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7); -set.addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x210E, 0x210F).addRange(0x213C, 0x213D).addRange(0x2146, 0x2149).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2C73, 0x2C74).addRange(0x2C76, 0x2C7B).addRange(0x2CE3, 0x2CE4).addRange(0x2D00, 0x2D25).addRange(0xA72F, 0xA731).addRange(0xA771, 0xA778).addRange(0xA793, 0xA795).addRange(0xAB30, 0xAB5A).addRange(0xAB60, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1D41A, 0x1D433).addRange(0x1D44E, 0x1D454).addRange(0x1D456, 0x1D467).addRange(0x1D482, 0x1D49B).addRange(0x1D4B6, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D4CF).addRange(0x1D4EA, 0x1D503).addRange(0x1D51E, 0x1D537).addRange(0x1D552, 0x1D56B).addRange(0x1D586, 0x1D59F).addRange(0x1D5BA, 0x1D5D3).addRange(0x1D5EE, 0x1D607).addRange(0x1D622, 0x1D63B).addRange(0x1D656, 0x1D66F).addRange(0x1D68A, 0x1D6A5).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6E1).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D71B).addRange(0x1D736, 0x1D74E); -set.addRange(0x1D750, 0x1D755).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D78F).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7C9).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E922, 0x1E943); +set.addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x210E, 0x210F).addRange(0x213C, 0x213D).addRange(0x2146, 0x2149).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2C73, 0x2C74).addRange(0x2C76, 0x2C7B).addRange(0x2CE3, 0x2CE4).addRange(0x2D00, 0x2D25).addRange(0xA72F, 0xA731).addRange(0xA771, 0xA778).addRange(0xA793, 0xA795).addRange(0xAB30, 0xAB5A).addRange(0xAB60, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x10D70, 0x10D85).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1D41A, 0x1D433).addRange(0x1D44E, 0x1D454).addRange(0x1D456, 0x1D467).addRange(0x1D482, 0x1D49B).addRange(0x1D4B6, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D4CF).addRange(0x1D4EA, 0x1D503).addRange(0x1D51E, 0x1D537).addRange(0x1D552, 0x1D56B).addRange(0x1D586, 0x1D59F).addRange(0x1D5BA, 0x1D5D3).addRange(0x1D5EE, 0x1D607).addRange(0x1D622, 0x1D63B).addRange(0x1D656, 0x1D66F).addRange(0x1D68A, 0x1D6A5).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6E1).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D71B); +set.addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D755).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D78F).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7C9).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E922, 0x1E943); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Mark.js b/node_modules/regenerate-unicode-properties/General_Category/Mark.js index 8371d80..f3b0157 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Mark.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Mark.js @@ -1,7 +1,7 @@ -const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x9BC, 0x9D7, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xB3C, 0xB82, 0xBD7, 0xC3C, 0xCBC, 0xCF3, 0xD57, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x108F, 0x17DD, 0x180F, 0x18A9, 0x1A7F, 0x1CED, 0x1CF4, 0x2D7F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9E5, 0xAA43, 0xAAB0, 0xAAC1, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11070, 0x110C2, 0x11173, 0x1123E, 0x11241, 0x11357, 0x1145E, 0x11940, 0x119E4, 0x11A47, 0x11D3A, 0x11D47, 0x11F03, 0x13440, 0x16F4F, 0x16FE4, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E2AE); -set.addRange(0x300, 0x36F).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x898, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x903).addRange(0x93A, 0x93C).addRange(0x93E, 0x94F).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x981, 0x983).addRange(0x9BE, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CD).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA03).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA83).addRange(0xABE, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB3E, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB62, 0xB63).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD); +const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x9BC, 0x9D7, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xB3C, 0xB82, 0xBD7, 0xC3C, 0xCBC, 0xCF3, 0xD57, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x108F, 0x17DD, 0x180F, 0x18A9, 0x1A7F, 0x1CED, 0x1CF4, 0x2D7F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9E5, 0xAA43, 0xAAB0, 0xAAC1, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11070, 0x110C2, 0x11173, 0x1123E, 0x11241, 0x11357, 0x113C2, 0x113C5, 0x113D2, 0x1145E, 0x11940, 0x119E4, 0x11A47, 0x11D3A, 0x11D47, 0x11F03, 0x11F5A, 0x13440, 0x16F4F, 0x16FE4, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E2AE); +set.addRange(0x300, 0x36F).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x897, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x903).addRange(0x93A, 0x93C).addRange(0x93E, 0x94F).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x981, 0x983).addRange(0x9BE, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CD).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA03).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA83).addRange(0xABE, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB3E, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB62, 0xB63).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD); set.addRange(0xC00, 0xC04).addRange(0xC3E, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xC81, 0xC83).addRange(0xCBE, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD03).addRange(0xD3B, 0xD3C).addRange(0xD3E, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4D).addRange(0xD62, 0xD63).addRange(0xD81, 0xD83).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDF2, 0xDF3).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECE).addRange(0xF18, 0xF19).addRange(0xF3E, 0xF3F).addRange(0xF71, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102B, 0x103E).addRange(0x1056, 0x1059).addRange(0x105E, 0x1060).addRange(0x1062, 0x1064).addRange(0x1067, 0x106D).addRange(0x1071, 0x1074).addRange(0x1082, 0x108D).addRange(0x109A, 0x109D).addRange(0x135D, 0x135F).addRange(0x1712, 0x1715).addRange(0x1732, 0x1734).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1A17, 0x1A1B); -set.addRange(0x1A55, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B04).addRange(0x1B34, 0x1B44).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B82).addRange(0x1BA1, 0x1BAD).addRange(0x1BE6, 0x1BF3).addRange(0x1C24, 0x1C37).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE8).addRange(0x1CF7, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302F).addRange(0x3099, 0x309A).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA823, 0xA827).addRange(0xA880, 0xA881).addRange(0xA8B4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA953).addRange(0xA980, 0xA983).addRange(0xA9B3, 0xA9C0).addRange(0xAA29, 0xAA36).addRange(0xAA4C, 0xAA4D).addRange(0xAA7B, 0xAA7D).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEB, 0xAAEF).addRange(0xAAF5, 0xAAF6).addRange(0xABE3, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC); -set.addRange(0x10EFD, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11000, 0x11002).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11082).addRange(0x110B0, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x11134).addRange(0x11145, 0x11146).addRange(0x11180, 0x11182).addRange(0x111B3, 0x111C0).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111CF).addRange(0x1122C, 0x11237).addRange(0x112DF, 0x112EA).addRange(0x11300, 0x11303).addRange(0x1133B, 0x1133C).addRange(0x1133E, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x11362, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11435, 0x11446).addRange(0x114B0, 0x114C3).addRange(0x115AF, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11630, 0x11640).addRange(0x116AB, 0x116B7).addRange(0x1171D, 0x1172B).addRange(0x1182C, 0x1183A).addRange(0x11930, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x1193E).addRange(0x11942, 0x11943).addRange(0x119D1, 0x119D7).addRange(0x119DA, 0x119E0).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A39).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A5B).addRange(0x11A8A, 0x11A99).addRange(0x11C2F, 0x11C36).addRange(0x11C38, 0x11C3F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D); -set.addRange(0x11D3F, 0x11D45).addRange(0x11D8A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D97).addRange(0x11EF3, 0x11EF6).addRange(0x11F00, 0x11F01).addRange(0x11F34, 0x11F3A).addRange(0x11F3E, 0x11F42).addRange(0x13447, 0x13455).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F51, 0x16F87).addRange(0x16F8F, 0x16F92).addRange(0x16FF0, 0x16FF1).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E4EC, 0x1E4EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0100, 0xE01EF); +set.addRange(0x1A55, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B04).addRange(0x1B34, 0x1B44).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B82).addRange(0x1BA1, 0x1BAD).addRange(0x1BE6, 0x1BF3).addRange(0x1C24, 0x1C37).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE8).addRange(0x1CF7, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302F).addRange(0x3099, 0x309A).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA823, 0xA827).addRange(0xA880, 0xA881).addRange(0xA8B4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA953).addRange(0xA980, 0xA983).addRange(0xA9B3, 0xA9C0).addRange(0xAA29, 0xAA36).addRange(0xAA4C, 0xAA4D).addRange(0xAA7B, 0xAA7D).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEB, 0xAAEF).addRange(0xAAF5, 0xAAF6).addRange(0xABE3, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10D69, 0x10D6D); +set.addRange(0x10EAB, 0x10EAC).addRange(0x10EFC, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11000, 0x11002).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11082).addRange(0x110B0, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x11134).addRange(0x11145, 0x11146).addRange(0x11180, 0x11182).addRange(0x111B3, 0x111C0).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111CF).addRange(0x1122C, 0x11237).addRange(0x112DF, 0x112EA).addRange(0x11300, 0x11303).addRange(0x1133B, 0x1133C).addRange(0x1133E, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x11362, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x113B8, 0x113C0).addRange(0x113C7, 0x113CA).addRange(0x113CC, 0x113D0).addRange(0x113E1, 0x113E2).addRange(0x11435, 0x11446).addRange(0x114B0, 0x114C3).addRange(0x115AF, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11630, 0x11640).addRange(0x116AB, 0x116B7).addRange(0x1171D, 0x1172B).addRange(0x1182C, 0x1183A).addRange(0x11930, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x1193E).addRange(0x11942, 0x11943).addRange(0x119D1, 0x119D7).addRange(0x119DA, 0x119E0).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A39).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A5B).addRange(0x11A8A, 0x11A99).addRange(0x11C2F, 0x11C36); +set.addRange(0x11C38, 0x11C3F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D8A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D97).addRange(0x11EF3, 0x11EF6).addRange(0x11F00, 0x11F01).addRange(0x11F34, 0x11F3A).addRange(0x11F3E, 0x11F42).addRange(0x13447, 0x13455).addRange(0x1611E, 0x1612F).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F51, 0x16F87).addRange(0x16F8F, 0x16F92).addRange(0x16FF0, 0x16FF1).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E4EC, 0x1E4EF).addRange(0x1E5EE, 0x1E5EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0100, 0xE01EF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Math_Symbol.js b/node_modules/regenerate-unicode-properties/General_Category/Math_Symbol.js index f36038c..c3197da 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Math_Symbol.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Math_Symbol.js @@ -1,3 +1,3 @@ const set = require('regenerate')(0x2B, 0x7C, 0x7E, 0xAC, 0xB1, 0xD7, 0xF7, 0x3F6, 0x2044, 0x2052, 0x2118, 0x214B, 0x21A0, 0x21A3, 0x21A6, 0x21AE, 0x21D2, 0x21D4, 0x237C, 0x25B7, 0x25C1, 0x266F, 0xFB29, 0xFE62, 0xFF0B, 0xFF5C, 0xFF5E, 0xFFE2, 0x1D6C1, 0x1D6DB, 0x1D6FB, 0x1D715, 0x1D735, 0x1D74F, 0x1D76F, 0x1D789, 0x1D7A9, 0x1D7C3); -set.addRange(0x3C, 0x3E).addRange(0x606, 0x608).addRange(0x207A, 0x207C).addRange(0x208A, 0x208C).addRange(0x2140, 0x2144).addRange(0x2190, 0x2194).addRange(0x219A, 0x219B).addRange(0x21CE, 0x21CF).addRange(0x21F4, 0x22FF).addRange(0x2320, 0x2321).addRange(0x239B, 0x23B3).addRange(0x23DC, 0x23E1).addRange(0x25F8, 0x25FF).addRange(0x27C0, 0x27C4).addRange(0x27C7, 0x27E5).addRange(0x27F0, 0x27FF).addRange(0x2900, 0x2982).addRange(0x2999, 0x29D7).addRange(0x29DC, 0x29FB).addRange(0x29FE, 0x2AFF).addRange(0x2B30, 0x2B44).addRange(0x2B47, 0x2B4C).addRange(0xFE64, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE9, 0xFFEC).addRange(0x1EEF0, 0x1EEF1); +set.addRange(0x3C, 0x3E).addRange(0x606, 0x608).addRange(0x207A, 0x207C).addRange(0x208A, 0x208C).addRange(0x2140, 0x2144).addRange(0x2190, 0x2194).addRange(0x219A, 0x219B).addRange(0x21CE, 0x21CF).addRange(0x21F4, 0x22FF).addRange(0x2320, 0x2321).addRange(0x239B, 0x23B3).addRange(0x23DC, 0x23E1).addRange(0x25F8, 0x25FF).addRange(0x27C0, 0x27C4).addRange(0x27C7, 0x27E5).addRange(0x27F0, 0x27FF).addRange(0x2900, 0x2982).addRange(0x2999, 0x29D7).addRange(0x29DC, 0x29FB).addRange(0x29FE, 0x2AFF).addRange(0x2B30, 0x2B44).addRange(0x2B47, 0x2B4C).addRange(0xFE64, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE9, 0xFFEC).addRange(0x10D8E, 0x10D8F).addRange(0x1EEF0, 0x1EEF1); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Modifier_Letter.js b/node_modules/regenerate-unicode-properties/General_Category/Modifier_Letter.js index b20e400..6ccd928 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Modifier_Letter.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Modifier_Letter.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x2EC, 0x2EE, 0x374, 0x37A, 0x559, 0x640, 0x7FA, 0x81A, 0x824, 0x828, 0x8C9, 0x971, 0xE46, 0xEC6, 0x10FC, 0x17D7, 0x1843, 0x1AA7, 0x1D78, 0x2071, 0x207F, 0x2D6F, 0x2E2F, 0x3005, 0x303B, 0xA015, 0xA60C, 0xA67F, 0xA770, 0xA788, 0xA9CF, 0xA9E6, 0xAA70, 0xAADD, 0xAB69, 0xFF70, 0x16FE3, 0x1E4EB, 0x1E94B); -set.addRange(0x2B0, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x6E5, 0x6E6).addRange(0x7F4, 0x7F5).addRange(0x1C78, 0x1C7D).addRange(0x1D2C, 0x1D6A).addRange(0x1D9B, 0x1DBF).addRange(0x2090, 0x209C).addRange(0x2C7C, 0x2C7D).addRange(0x3031, 0x3035).addRange(0x309D, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xA4F8, 0xA4FD).addRange(0xA69C, 0xA69D).addRange(0xA717, 0xA71F).addRange(0xA7F2, 0xA7F4).addRange(0xA7F8, 0xA7F9).addRange(0xAAF3, 0xAAF4).addRange(0xAB5C, 0xAB5F).addRange(0xFF9E, 0xFF9F).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x16B40, 0x16B43).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1E030, 0x1E06D).addRange(0x1E137, 0x1E13D); +const set = require('regenerate')(0x2EC, 0x2EE, 0x374, 0x37A, 0x559, 0x640, 0x7FA, 0x81A, 0x824, 0x828, 0x8C9, 0x971, 0xE46, 0xEC6, 0x10FC, 0x17D7, 0x1843, 0x1AA7, 0x1D78, 0x2071, 0x207F, 0x2D6F, 0x2E2F, 0x3005, 0x303B, 0xA015, 0xA60C, 0xA67F, 0xA770, 0xA788, 0xA9CF, 0xA9E6, 0xAA70, 0xAADD, 0xAB69, 0xFF70, 0x10D4E, 0x10D6F, 0x16FE3, 0x1E4EB, 0x1E94B); +set.addRange(0x2B0, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x6E5, 0x6E6).addRange(0x7F4, 0x7F5).addRange(0x1C78, 0x1C7D).addRange(0x1D2C, 0x1D6A).addRange(0x1D9B, 0x1DBF).addRange(0x2090, 0x209C).addRange(0x2C7C, 0x2C7D).addRange(0x3031, 0x3035).addRange(0x309D, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xA4F8, 0xA4FD).addRange(0xA69C, 0xA69D).addRange(0xA717, 0xA71F).addRange(0xA7F2, 0xA7F4).addRange(0xA7F8, 0xA7F9).addRange(0xAAF3, 0xAAF4).addRange(0xAB5C, 0xAB5F).addRange(0xFF9E, 0xFF9F).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x16B40, 0x16B43).addRange(0x16D40, 0x16D42).addRange(0x16D6B, 0x16D6C).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1E030, 0x1E06D).addRange(0x1E137, 0x1E13D); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Nonspacing_Mark.js b/node_modules/regenerate-unicode-properties/General_Category/Nonspacing_Mark.js index 73117ca..a6ee32a 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Nonspacing_Mark.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Nonspacing_Mark.js @@ -1,7 +1,7 @@ -const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x93A, 0x93C, 0x94D, 0x981, 0x9BC, 0x9CD, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB3F, 0xB4D, 0xB82, 0xBC0, 0xBCD, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC6, 0xD4D, 0xD81, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x17C6, 0x17DD, 0x180F, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1B34, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x20E1, 0x2D7F, 0xA66F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9E5, 0xAA43, 0xAA4C, 0xAA7C, 0xAAB0, 0xAAC1, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110C2, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x11241, 0x112DF, 0x11340, 0x11446, 0x1145E, 0x114BA, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x11F40, 0x11F42, 0x13440, 0x16F4F, 0x16FE4, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E2AE); -set.addRange(0x300, 0x36F).addRange(0x483, 0x487).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x898, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB41, 0xB44).addRange(0xB55, 0xB56).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C).addRange(0xD41, 0xD44).addRange(0xD62, 0xD63); +const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x93A, 0x93C, 0x94D, 0x981, 0x9BC, 0x9CD, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB3F, 0xB4D, 0xB82, 0xBC0, 0xBCD, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC6, 0xD4D, 0xD81, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x17C6, 0x17DD, 0x180F, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1B34, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x20E1, 0x2D7F, 0xA66F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9E5, 0xAA43, 0xAA4C, 0xAA7C, 0xAAB0, 0xAAC1, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110C2, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x11241, 0x112DF, 0x11340, 0x113CE, 0x113D0, 0x113D2, 0x11446, 0x1145E, 0x114BA, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x1171D, 0x1171F, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x11F40, 0x11F42, 0x11F5A, 0x13440, 0x16F4F, 0x16FE4, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E2AE); +set.addRange(0x300, 0x36F).addRange(0x483, 0x487).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x897, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB41, 0xB44).addRange(0xB55, 0xB56).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C).addRange(0xD41, 0xD44).addRange(0xD62, 0xD63); set.addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECE).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1714).addRange(0x1732, 0x1733).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B36, 0x1B3A).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BA9).addRange(0x1BAB, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF1).addRange(0x1C2C, 0x1C33).addRange(0x1C36, 0x1C37).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE0); -set.addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302D).addRange(0x3099, 0x309A).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC).addRange(0x10EFD, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE).addRange(0x111C9, 0x111CC); -set.addRange(0x1122F, 0x11231).addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x1171D, 0x1171F).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x11F00, 0x11F01).addRange(0x11F36, 0x11F3A).addRange(0x13447, 0x13455).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F92); -set.addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E4EC, 0x1E4EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0100, 0xE01EF); +set.addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302D).addRange(0x3099, 0x309A).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10D69, 0x10D6D).addRange(0x10EAB, 0x10EAC).addRange(0x10EFC, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE); +set.addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231).addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x113BB, 0x113C0).addRange(0x113E1, 0x113E2).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x11F00, 0x11F01).addRange(0x11F36, 0x11F3A).addRange(0x13447, 0x13455).addRange(0x1611E, 0x16129); +set.addRange(0x1612D, 0x1612F).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F92).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E4EC, 0x1E4EF).addRange(0x1E5EE, 0x1E5EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0100, 0xE01EF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Number.js b/node_modules/regenerate-unicode-properties/General_Category/Number.js index 55c50ad..19c6567 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Number.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Number.js @@ -1,5 +1,5 @@ const set = require('regenerate')(0xB9, 0x2070, 0x2CFD, 0x3007, 0x10341, 0x1034A); set.addRange(0x30, 0x39).addRange(0xB2, 0xB3).addRange(0xBC, 0xBE).addRange(0x660, 0x669).addRange(0x6F0, 0x6F9).addRange(0x7C0, 0x7C9).addRange(0x966, 0x96F).addRange(0x9E6, 0x9EF).addRange(0x9F4, 0x9F9).addRange(0xA66, 0xA6F).addRange(0xAE6, 0xAEF).addRange(0xB66, 0xB6F).addRange(0xB72, 0xB77).addRange(0xBE6, 0xBF2).addRange(0xC66, 0xC6F).addRange(0xC78, 0xC7E).addRange(0xCE6, 0xCEF).addRange(0xD58, 0xD5E).addRange(0xD66, 0xD78).addRange(0xDE6, 0xDEF).addRange(0xE50, 0xE59).addRange(0xED0, 0xED9).addRange(0xF20, 0xF33).addRange(0x1040, 0x1049).addRange(0x1090, 0x1099).addRange(0x1369, 0x137C).addRange(0x16EE, 0x16F0).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1810, 0x1819).addRange(0x1946, 0x194F).addRange(0x19D0, 0x19DA).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1B50, 0x1B59).addRange(0x1BB0, 0x1BB9).addRange(0x1C40, 0x1C49).addRange(0x1C50, 0x1C59).addRange(0x2074, 0x2079).addRange(0x2080, 0x2089).addRange(0x2150, 0x2182).addRange(0x2185, 0x2189).addRange(0x2460, 0x249B).addRange(0x24EA, 0x24FF).addRange(0x2776, 0x2793).addRange(0x3021, 0x3029).addRange(0x3038, 0x303A).addRange(0x3192, 0x3195).addRange(0x3220, 0x3229).addRange(0x3248, 0x324F).addRange(0x3251, 0x325F); -set.addRange(0x3280, 0x3289).addRange(0x32B1, 0x32BF).addRange(0xA620, 0xA629).addRange(0xA6E6, 0xA6EF).addRange(0xA830, 0xA835).addRange(0xA8D0, 0xA8D9).addRange(0xA900, 0xA909).addRange(0xA9D0, 0xA9D9).addRange(0xA9F0, 0xA9F9).addRange(0xAA50, 0xAA59).addRange(0xABF0, 0xABF9).addRange(0xFF10, 0xFF19).addRange(0x10107, 0x10133).addRange(0x10140, 0x10178).addRange(0x1018A, 0x1018B).addRange(0x102E1, 0x102FB).addRange(0x10320, 0x10323).addRange(0x103D1, 0x103D5).addRange(0x104A0, 0x104A9).addRange(0x10858, 0x1085F).addRange(0x10879, 0x1087F).addRange(0x108A7, 0x108AF).addRange(0x108FB, 0x108FF).addRange(0x10916, 0x1091B).addRange(0x109BC, 0x109BD).addRange(0x109C0, 0x109CF).addRange(0x109D2, 0x109FF).addRange(0x10A40, 0x10A48).addRange(0x10A7D, 0x10A7E).addRange(0x10A9D, 0x10A9F).addRange(0x10AEB, 0x10AEF).addRange(0x10B58, 0x10B5F).addRange(0x10B78, 0x10B7F).addRange(0x10BA9, 0x10BAF).addRange(0x10CFA, 0x10CFF).addRange(0x10D30, 0x10D39).addRange(0x10E60, 0x10E7E).addRange(0x10F1D, 0x10F26).addRange(0x10F51, 0x10F54).addRange(0x10FC5, 0x10FCB).addRange(0x11052, 0x1106F).addRange(0x110F0, 0x110F9).addRange(0x11136, 0x1113F).addRange(0x111D0, 0x111D9).addRange(0x111E1, 0x111F4).addRange(0x112F0, 0x112F9).addRange(0x11450, 0x11459).addRange(0x114D0, 0x114D9).addRange(0x11650, 0x11659).addRange(0x116C0, 0x116C9).addRange(0x11730, 0x1173B); -set.addRange(0x118E0, 0x118F2).addRange(0x11950, 0x11959).addRange(0x11C50, 0x11C6C).addRange(0x11D50, 0x11D59).addRange(0x11DA0, 0x11DA9).addRange(0x11F50, 0x11F59).addRange(0x11FC0, 0x11FD4).addRange(0x12400, 0x1246E).addRange(0x16A60, 0x16A69).addRange(0x16AC0, 0x16AC9).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16E80, 0x16E96).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D360, 0x1D378).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E140, 0x1E149).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E4F0, 0x1E4F9).addRange(0x1E8C7, 0x1E8CF).addRange(0x1E950, 0x1E959).addRange(0x1EC71, 0x1ECAB).addRange(0x1ECAD, 0x1ECAF).addRange(0x1ECB1, 0x1ECB4).addRange(0x1ED01, 0x1ED2D).addRange(0x1ED2F, 0x1ED3D).addRange(0x1F100, 0x1F10C).addRange(0x1FBF0, 0x1FBF9); +set.addRange(0x3280, 0x3289).addRange(0x32B1, 0x32BF).addRange(0xA620, 0xA629).addRange(0xA6E6, 0xA6EF).addRange(0xA830, 0xA835).addRange(0xA8D0, 0xA8D9).addRange(0xA900, 0xA909).addRange(0xA9D0, 0xA9D9).addRange(0xA9F0, 0xA9F9).addRange(0xAA50, 0xAA59).addRange(0xABF0, 0xABF9).addRange(0xFF10, 0xFF19).addRange(0x10107, 0x10133).addRange(0x10140, 0x10178).addRange(0x1018A, 0x1018B).addRange(0x102E1, 0x102FB).addRange(0x10320, 0x10323).addRange(0x103D1, 0x103D5).addRange(0x104A0, 0x104A9).addRange(0x10858, 0x1085F).addRange(0x10879, 0x1087F).addRange(0x108A7, 0x108AF).addRange(0x108FB, 0x108FF).addRange(0x10916, 0x1091B).addRange(0x109BC, 0x109BD).addRange(0x109C0, 0x109CF).addRange(0x109D2, 0x109FF).addRange(0x10A40, 0x10A48).addRange(0x10A7D, 0x10A7E).addRange(0x10A9D, 0x10A9F).addRange(0x10AEB, 0x10AEF).addRange(0x10B58, 0x10B5F).addRange(0x10B78, 0x10B7F).addRange(0x10BA9, 0x10BAF).addRange(0x10CFA, 0x10CFF).addRange(0x10D30, 0x10D39).addRange(0x10D40, 0x10D49).addRange(0x10E60, 0x10E7E).addRange(0x10F1D, 0x10F26).addRange(0x10F51, 0x10F54).addRange(0x10FC5, 0x10FCB).addRange(0x11052, 0x1106F).addRange(0x110F0, 0x110F9).addRange(0x11136, 0x1113F).addRange(0x111D0, 0x111D9).addRange(0x111E1, 0x111F4).addRange(0x112F0, 0x112F9).addRange(0x11450, 0x11459).addRange(0x114D0, 0x114D9).addRange(0x11650, 0x11659).addRange(0x116C0, 0x116C9); +set.addRange(0x116D0, 0x116E3).addRange(0x11730, 0x1173B).addRange(0x118E0, 0x118F2).addRange(0x11950, 0x11959).addRange(0x11BF0, 0x11BF9).addRange(0x11C50, 0x11C6C).addRange(0x11D50, 0x11D59).addRange(0x11DA0, 0x11DA9).addRange(0x11F50, 0x11F59).addRange(0x11FC0, 0x11FD4).addRange(0x12400, 0x1246E).addRange(0x16130, 0x16139).addRange(0x16A60, 0x16A69).addRange(0x16AC0, 0x16AC9).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16D70, 0x16D79).addRange(0x16E80, 0x16E96).addRange(0x1CCF0, 0x1CCF9).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D360, 0x1D378).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E140, 0x1E149).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E4F0, 0x1E4F9).addRange(0x1E5F1, 0x1E5FA).addRange(0x1E8C7, 0x1E8CF).addRange(0x1E950, 0x1E959).addRange(0x1EC71, 0x1ECAB).addRange(0x1ECAD, 0x1ECAF).addRange(0x1ECB1, 0x1ECB4).addRange(0x1ED01, 0x1ED2D).addRange(0x1ED2F, 0x1ED3D).addRange(0x1F100, 0x1F10C).addRange(0x1FBF0, 0x1FBF9); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Other.js b/node_modules/regenerate-unicode-properties/General_Category/Other.js index bb42c70..5967f8f 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Other.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Other.js @@ -1,12 +1,12 @@ -const set = require('regenerate')(0xAD, 0x38B, 0x38D, 0x3A2, 0x530, 0x590, 0x61C, 0x6DD, 0x83F, 0x85F, 0x8E2, 0x984, 0x9A9, 0x9B1, 0x9DE, 0xA04, 0xA29, 0xA31, 0xA34, 0xA37, 0xA3D, 0xA5D, 0xA84, 0xA8E, 0xA92, 0xAA9, 0xAB1, 0xAB4, 0xAC6, 0xACA, 0xB00, 0xB04, 0xB29, 0xB31, 0xB34, 0xB5E, 0xB84, 0xB91, 0xB9B, 0xB9D, 0xBC9, 0xC0D, 0xC11, 0xC29, 0xC45, 0xC49, 0xC57, 0xC8D, 0xC91, 0xCA9, 0xCB4, 0xCC5, 0xCC9, 0xCDF, 0xCF0, 0xD0D, 0xD11, 0xD45, 0xD49, 0xD80, 0xD84, 0xDB2, 0xDBC, 0xDD5, 0xDD7, 0xE83, 0xE85, 0xE8B, 0xEA4, 0xEA6, 0xEC5, 0xEC7, 0xECF, 0xF48, 0xF98, 0xFBD, 0xFCD, 0x10C6, 0x1249, 0x1257, 0x1259, 0x1289, 0x12B1, 0x12BF, 0x12C1, 0x12D7, 0x1311, 0x176D, 0x1771, 0x180E, 0x191F, 0x1A5F, 0x1B7F, 0x1F58, 0x1F5A, 0x1F5C, 0x1F5E, 0x1FB5, 0x1FC5, 0x1FDC, 0x1FF5, 0x1FFF, 0x208F, 0x2B96, 0x2D26, 0x2DA7, 0x2DAF, 0x2DB7, 0x2DBF, 0x2DC7, 0x2DCF, 0x2DD7, 0x2DDF, 0x2E9A, 0x3040, 0x3130, 0x318F, 0x321F, 0xA7D2, 0xA7D4, 0xA9CE, 0xA9FF, 0xAB27, 0xAB2F, 0xFB37, 0xFB3D, 0xFB3F, 0xFB42, 0xFB45, 0xFE53, 0xFE67, 0xFE75, 0xFFE7, 0x1000C, 0x10027, 0x1003B, 0x1003E, 0x1018F, 0x1039E, 0x1057B, 0x1058B, 0x10593, 0x10596, 0x105A2, 0x105B2, 0x105BA, 0x10786, 0x107B1, 0x10809, 0x10836, 0x10856, 0x108F3, 0x10A04, 0x10A14, 0x10A18, 0x10E7F, 0x10EAA, 0x110BD, 0x11135, 0x111E0, 0x11212, 0x11287, 0x11289, 0x1128E, 0x1129E, 0x11304, 0x11329, 0x11331, 0x11334, 0x1133A, 0x1145C, 0x11914, 0x11917, 0x11936, 0x11C09, 0x11C37, 0x11CA8, 0x11D07, 0x11D0A, 0x11D3B, 0x11D3E, 0x11D66, 0x11D69, 0x11D8F, 0x11D92, 0x11F11, 0x1246F, 0x16A5F, 0x16ABF, 0x16B5A, 0x16B62, 0x1AFF4, 0x1AFFC, 0x1AFFF, 0x1D455, 0x1D49D, 0x1D4AD, 0x1D4BA, 0x1D4BC, 0x1D4C4, 0x1D506, 0x1D515, 0x1D51D, 0x1D53A, 0x1D53F, 0x1D545, 0x1D551, 0x1DAA0, 0x1E007, 0x1E022, 0x1E025, 0x1E7E7, 0x1E7EC, 0x1E7EF, 0x1E7FF, 0x1EE04, 0x1EE20, 0x1EE23, 0x1EE28, 0x1EE33, 0x1EE38, 0x1EE3A, 0x1EE48, 0x1EE4A, 0x1EE4C, 0x1EE50, 0x1EE53, 0x1EE58, 0x1EE5A, 0x1EE5C, 0x1EE5E, 0x1EE60, 0x1EE63, 0x1EE6B, 0x1EE73, 0x1EE78, 0x1EE7D, 0x1EE7F, 0x1EE8A, 0x1EEA4, 0x1EEAA, 0x1F0C0, 0x1F0D0, 0x1FABE, 0x1FB93); -set.addRange(0x0, 0x1F).addRange(0x7F, 0x9F).addRange(0x378, 0x379).addRange(0x380, 0x383).addRange(0x557, 0x558).addRange(0x58B, 0x58C).addRange(0x5C8, 0x5CF).addRange(0x5EB, 0x5EE).addRange(0x5F5, 0x605).addRange(0x70E, 0x70F).addRange(0x74B, 0x74C).addRange(0x7B2, 0x7BF).addRange(0x7FB, 0x7FC).addRange(0x82E, 0x82F).addRange(0x85C, 0x85D).addRange(0x86B, 0x86F).addRange(0x88F, 0x897).addRange(0x98D, 0x98E).addRange(0x991, 0x992).addRange(0x9B3, 0x9B5).addRange(0x9BA, 0x9BB).addRange(0x9C5, 0x9C6).addRange(0x9C9, 0x9CA).addRange(0x9CF, 0x9D6).addRange(0x9D8, 0x9DB).addRange(0x9E4, 0x9E5).addRange(0x9FF, 0xA00).addRange(0xA0B, 0xA0E).addRange(0xA11, 0xA12).addRange(0xA3A, 0xA3B).addRange(0xA43, 0xA46).addRange(0xA49, 0xA4A).addRange(0xA4E, 0xA50).addRange(0xA52, 0xA58).addRange(0xA5F, 0xA65).addRange(0xA77, 0xA80).addRange(0xABA, 0xABB).addRange(0xACE, 0xACF).addRange(0xAD1, 0xADF).addRange(0xAE4, 0xAE5).addRange(0xAF2, 0xAF8).addRange(0xB0D, 0xB0E).addRange(0xB11, 0xB12).addRange(0xB3A, 0xB3B).addRange(0xB45, 0xB46).addRange(0xB49, 0xB4A).addRange(0xB4E, 0xB54).addRange(0xB58, 0xB5B).addRange(0xB64, 0xB65).addRange(0xB78, 0xB81).addRange(0xB8B, 0xB8D); +const set = require('regenerate')(0xAD, 0x38B, 0x38D, 0x3A2, 0x530, 0x590, 0x61C, 0x6DD, 0x83F, 0x85F, 0x8E2, 0x984, 0x9A9, 0x9B1, 0x9DE, 0xA04, 0xA29, 0xA31, 0xA34, 0xA37, 0xA3D, 0xA5D, 0xA84, 0xA8E, 0xA92, 0xAA9, 0xAB1, 0xAB4, 0xAC6, 0xACA, 0xB00, 0xB04, 0xB29, 0xB31, 0xB34, 0xB5E, 0xB84, 0xB91, 0xB9B, 0xB9D, 0xBC9, 0xC0D, 0xC11, 0xC29, 0xC45, 0xC49, 0xC57, 0xC8D, 0xC91, 0xCA9, 0xCB4, 0xCC5, 0xCC9, 0xCDF, 0xCF0, 0xD0D, 0xD11, 0xD45, 0xD49, 0xD80, 0xD84, 0xDB2, 0xDBC, 0xDD5, 0xDD7, 0xE83, 0xE85, 0xE8B, 0xEA4, 0xEA6, 0xEC5, 0xEC7, 0xECF, 0xF48, 0xF98, 0xFBD, 0xFCD, 0x10C6, 0x1249, 0x1257, 0x1259, 0x1289, 0x12B1, 0x12BF, 0x12C1, 0x12D7, 0x1311, 0x176D, 0x1771, 0x180E, 0x191F, 0x1A5F, 0x1B4D, 0x1F58, 0x1F5A, 0x1F5C, 0x1F5E, 0x1FB5, 0x1FC5, 0x1FDC, 0x1FF5, 0x1FFF, 0x208F, 0x2B96, 0x2D26, 0x2DA7, 0x2DAF, 0x2DB7, 0x2DBF, 0x2DC7, 0x2DCF, 0x2DD7, 0x2DDF, 0x2E9A, 0x3040, 0x3130, 0x318F, 0x321F, 0xA7D2, 0xA7D4, 0xA9CE, 0xA9FF, 0xAB27, 0xAB2F, 0xFB37, 0xFB3D, 0xFB3F, 0xFB42, 0xFB45, 0xFE53, 0xFE67, 0xFE75, 0xFFE7, 0x1000C, 0x10027, 0x1003B, 0x1003E, 0x1018F, 0x1039E, 0x1057B, 0x1058B, 0x10593, 0x10596, 0x105A2, 0x105B2, 0x105BA, 0x10786, 0x107B1, 0x10809, 0x10836, 0x10856, 0x108F3, 0x10A04, 0x10A14, 0x10A18, 0x10E7F, 0x10EAA, 0x110BD, 0x11135, 0x111E0, 0x11212, 0x11287, 0x11289, 0x1128E, 0x1129E, 0x11304, 0x11329, 0x11331, 0x11334, 0x1133A, 0x1138A, 0x1138F, 0x113B6, 0x113C1, 0x113C6, 0x113CB, 0x113D6, 0x1145C, 0x11914, 0x11917, 0x11936, 0x11C09, 0x11C37, 0x11CA8, 0x11D07, 0x11D0A, 0x11D3B, 0x11D3E, 0x11D66, 0x11D69, 0x11D8F, 0x11D92, 0x11F11, 0x1246F, 0x16A5F, 0x16ABF, 0x16B5A, 0x16B62, 0x1AFF4, 0x1AFFC, 0x1AFFF, 0x1D455, 0x1D49D, 0x1D4AD, 0x1D4BA, 0x1D4BC, 0x1D4C4, 0x1D506, 0x1D515, 0x1D51D, 0x1D53A, 0x1D53F, 0x1D545, 0x1D551, 0x1DAA0, 0x1E007, 0x1E022, 0x1E025, 0x1E7E7, 0x1E7EC, 0x1E7EF, 0x1E7FF, 0x1EE04, 0x1EE20, 0x1EE23, 0x1EE28, 0x1EE33, 0x1EE38, 0x1EE3A, 0x1EE48, 0x1EE4A, 0x1EE4C, 0x1EE50, 0x1EE53, 0x1EE58, 0x1EE5A, 0x1EE5C, 0x1EE5E, 0x1EE60, 0x1EE63, 0x1EE6B, 0x1EE73, 0x1EE78, 0x1EE7D, 0x1EE7F, 0x1EE8A, 0x1EEA4, 0x1EEAA, 0x1F0C0, 0x1F0D0, 0x1FB93); +set.addRange(0x0, 0x1F).addRange(0x7F, 0x9F).addRange(0x378, 0x379).addRange(0x380, 0x383).addRange(0x557, 0x558).addRange(0x58B, 0x58C).addRange(0x5C8, 0x5CF).addRange(0x5EB, 0x5EE).addRange(0x5F5, 0x605).addRange(0x70E, 0x70F).addRange(0x74B, 0x74C).addRange(0x7B2, 0x7BF).addRange(0x7FB, 0x7FC).addRange(0x82E, 0x82F).addRange(0x85C, 0x85D).addRange(0x86B, 0x86F).addRange(0x88F, 0x896).addRange(0x98D, 0x98E).addRange(0x991, 0x992).addRange(0x9B3, 0x9B5).addRange(0x9BA, 0x9BB).addRange(0x9C5, 0x9C6).addRange(0x9C9, 0x9CA).addRange(0x9CF, 0x9D6).addRange(0x9D8, 0x9DB).addRange(0x9E4, 0x9E5).addRange(0x9FF, 0xA00).addRange(0xA0B, 0xA0E).addRange(0xA11, 0xA12).addRange(0xA3A, 0xA3B).addRange(0xA43, 0xA46).addRange(0xA49, 0xA4A).addRange(0xA4E, 0xA50).addRange(0xA52, 0xA58).addRange(0xA5F, 0xA65).addRange(0xA77, 0xA80).addRange(0xABA, 0xABB).addRange(0xACE, 0xACF).addRange(0xAD1, 0xADF).addRange(0xAE4, 0xAE5).addRange(0xAF2, 0xAF8).addRange(0xB0D, 0xB0E).addRange(0xB11, 0xB12).addRange(0xB3A, 0xB3B).addRange(0xB45, 0xB46).addRange(0xB49, 0xB4A).addRange(0xB4E, 0xB54).addRange(0xB58, 0xB5B).addRange(0xB64, 0xB65).addRange(0xB78, 0xB81).addRange(0xB8B, 0xB8D); set.addRange(0xB96, 0xB98).addRange(0xBA0, 0xBA2).addRange(0xBA5, 0xBA7).addRange(0xBAB, 0xBAD).addRange(0xBBA, 0xBBD).addRange(0xBC3, 0xBC5).addRange(0xBCE, 0xBCF).addRange(0xBD1, 0xBD6).addRange(0xBD8, 0xBE5).addRange(0xBFB, 0xBFF).addRange(0xC3A, 0xC3B).addRange(0xC4E, 0xC54).addRange(0xC5B, 0xC5C).addRange(0xC5E, 0xC5F).addRange(0xC64, 0xC65).addRange(0xC70, 0xC76).addRange(0xCBA, 0xCBB).addRange(0xCCE, 0xCD4).addRange(0xCD7, 0xCDC).addRange(0xCE4, 0xCE5).addRange(0xCF4, 0xCFF).addRange(0xD50, 0xD53).addRange(0xD64, 0xD65).addRange(0xD97, 0xD99).addRange(0xDBE, 0xDBF).addRange(0xDC7, 0xDC9).addRange(0xDCB, 0xDCE).addRange(0xDE0, 0xDE5).addRange(0xDF0, 0xDF1).addRange(0xDF5, 0xE00).addRange(0xE3B, 0xE3E).addRange(0xE5C, 0xE80).addRange(0xEBE, 0xEBF).addRange(0xEDA, 0xEDB).addRange(0xEE0, 0xEFF).addRange(0xF6D, 0xF70).addRange(0xFDB, 0xFFF).addRange(0x10C8, 0x10CC).addRange(0x10CE, 0x10CF).addRange(0x124E, 0x124F).addRange(0x125E, 0x125F).addRange(0x128E, 0x128F).addRange(0x12B6, 0x12B7).addRange(0x12C6, 0x12C7).addRange(0x1316, 0x1317).addRange(0x135B, 0x135C).addRange(0x137D, 0x137F).addRange(0x139A, 0x139F).addRange(0x13F6, 0x13F7).addRange(0x13FE, 0x13FF).addRange(0x169D, 0x169F); -set.addRange(0x16F9, 0x16FF).addRange(0x1716, 0x171E).addRange(0x1737, 0x173F).addRange(0x1754, 0x175F).addRange(0x1774, 0x177F).addRange(0x17DE, 0x17DF).addRange(0x17EA, 0x17EF).addRange(0x17FA, 0x17FF).addRange(0x181A, 0x181F).addRange(0x1879, 0x187F).addRange(0x18AB, 0x18AF).addRange(0x18F6, 0x18FF).addRange(0x192C, 0x192F).addRange(0x193C, 0x193F).addRange(0x1941, 0x1943).addRange(0x196E, 0x196F).addRange(0x1975, 0x197F).addRange(0x19AC, 0x19AF).addRange(0x19CA, 0x19CF).addRange(0x19DB, 0x19DD).addRange(0x1A1C, 0x1A1D).addRange(0x1A7D, 0x1A7E).addRange(0x1A8A, 0x1A8F).addRange(0x1A9A, 0x1A9F).addRange(0x1AAE, 0x1AAF).addRange(0x1ACF, 0x1AFF).addRange(0x1B4D, 0x1B4F).addRange(0x1BF4, 0x1BFB).addRange(0x1C38, 0x1C3A).addRange(0x1C4A, 0x1C4C).addRange(0x1C89, 0x1C8F).addRange(0x1CBB, 0x1CBC).addRange(0x1CC8, 0x1CCF).addRange(0x1CFB, 0x1CFF).addRange(0x1F16, 0x1F17).addRange(0x1F1E, 0x1F1F).addRange(0x1F46, 0x1F47).addRange(0x1F4E, 0x1F4F).addRange(0x1F7E, 0x1F7F).addRange(0x1FD4, 0x1FD5).addRange(0x1FF0, 0x1FF1).addRange(0x200B, 0x200F).addRange(0x202A, 0x202E).addRange(0x2060, 0x206F).addRange(0x2072, 0x2073).addRange(0x209D, 0x209F).addRange(0x20C1, 0x20CF).addRange(0x20F1, 0x20FF).addRange(0x218C, 0x218F).addRange(0x2427, 0x243F).addRange(0x244B, 0x245F); -set.addRange(0x2B74, 0x2B75).addRange(0x2CF4, 0x2CF8).addRange(0x2D28, 0x2D2C).addRange(0x2D2E, 0x2D2F).addRange(0x2D68, 0x2D6E).addRange(0x2D71, 0x2D7E).addRange(0x2D97, 0x2D9F).addRange(0x2E5E, 0x2E7F).addRange(0x2EF4, 0x2EFF).addRange(0x2FD6, 0x2FEF).addRange(0x3097, 0x3098).addRange(0x3100, 0x3104).addRange(0x31E4, 0x31EE).addRange(0xA48D, 0xA48F).addRange(0xA4C7, 0xA4CF).addRange(0xA62C, 0xA63F).addRange(0xA6F8, 0xA6FF).addRange(0xA7CB, 0xA7CF).addRange(0xA7DA, 0xA7F1).addRange(0xA82D, 0xA82F).addRange(0xA83A, 0xA83F).addRange(0xA878, 0xA87F).addRange(0xA8C6, 0xA8CD).addRange(0xA8DA, 0xA8DF).addRange(0xA954, 0xA95E).addRange(0xA97D, 0xA97F).addRange(0xA9DA, 0xA9DD).addRange(0xAA37, 0xAA3F).addRange(0xAA4E, 0xAA4F).addRange(0xAA5A, 0xAA5B).addRange(0xAAC3, 0xAADA).addRange(0xAAF7, 0xAB00).addRange(0xAB07, 0xAB08).addRange(0xAB0F, 0xAB10).addRange(0xAB17, 0xAB1F).addRange(0xAB6C, 0xAB6F).addRange(0xABEE, 0xABEF).addRange(0xABFA, 0xABFF).addRange(0xD7A4, 0xD7AF).addRange(0xD7C7, 0xD7CA).addRange(0xD7FC, 0xF8FF).addRange(0xFA6E, 0xFA6F).addRange(0xFADA, 0xFAFF).addRange(0xFB07, 0xFB12).addRange(0xFB18, 0xFB1C).addRange(0xFBC3, 0xFBD2).addRange(0xFD90, 0xFD91).addRange(0xFDC8, 0xFDCE).addRange(0xFDD0, 0xFDEF).addRange(0xFE1A, 0xFE1F).addRange(0xFE6C, 0xFE6F); -set.addRange(0xFEFD, 0xFF00).addRange(0xFFBF, 0xFFC1).addRange(0xFFC8, 0xFFC9).addRange(0xFFD0, 0xFFD1).addRange(0xFFD8, 0xFFD9).addRange(0xFFDD, 0xFFDF).addRange(0xFFEF, 0xFFFB).addRange(0xFFFE, 0xFFFF).addRange(0x1004E, 0x1004F).addRange(0x1005E, 0x1007F).addRange(0x100FB, 0x100FF).addRange(0x10103, 0x10106).addRange(0x10134, 0x10136).addRange(0x1019D, 0x1019F).addRange(0x101A1, 0x101CF).addRange(0x101FE, 0x1027F).addRange(0x1029D, 0x1029F).addRange(0x102D1, 0x102DF).addRange(0x102FC, 0x102FF).addRange(0x10324, 0x1032C).addRange(0x1034B, 0x1034F).addRange(0x1037B, 0x1037F).addRange(0x103C4, 0x103C7).addRange(0x103D6, 0x103FF).addRange(0x1049E, 0x1049F).addRange(0x104AA, 0x104AF).addRange(0x104D4, 0x104D7).addRange(0x104FC, 0x104FF).addRange(0x10528, 0x1052F).addRange(0x10564, 0x1056E).addRange(0x105BD, 0x105FF).addRange(0x10737, 0x1073F).addRange(0x10756, 0x1075F).addRange(0x10768, 0x1077F).addRange(0x107BB, 0x107FF).addRange(0x10806, 0x10807).addRange(0x10839, 0x1083B).addRange(0x1083D, 0x1083E).addRange(0x1089F, 0x108A6).addRange(0x108B0, 0x108DF).addRange(0x108F6, 0x108FA).addRange(0x1091C, 0x1091E).addRange(0x1093A, 0x1093E).addRange(0x10940, 0x1097F).addRange(0x109B8, 0x109BB).addRange(0x109D0, 0x109D1).addRange(0x10A07, 0x10A0B).addRange(0x10A36, 0x10A37).addRange(0x10A3B, 0x10A3E).addRange(0x10A49, 0x10A4F).addRange(0x10A59, 0x10A5F); -set.addRange(0x10AA0, 0x10ABF).addRange(0x10AE7, 0x10AEA).addRange(0x10AF7, 0x10AFF).addRange(0x10B36, 0x10B38).addRange(0x10B56, 0x10B57).addRange(0x10B73, 0x10B77).addRange(0x10B92, 0x10B98).addRange(0x10B9D, 0x10BA8).addRange(0x10BB0, 0x10BFF).addRange(0x10C49, 0x10C7F).addRange(0x10CB3, 0x10CBF).addRange(0x10CF3, 0x10CF9).addRange(0x10D28, 0x10D2F).addRange(0x10D3A, 0x10E5F).addRange(0x10EAE, 0x10EAF).addRange(0x10EB2, 0x10EFC).addRange(0x10F28, 0x10F2F).addRange(0x10F5A, 0x10F6F).addRange(0x10F8A, 0x10FAF).addRange(0x10FCC, 0x10FDF).addRange(0x10FF7, 0x10FFF).addRange(0x1104E, 0x11051).addRange(0x11076, 0x1107E).addRange(0x110C3, 0x110CF).addRange(0x110E9, 0x110EF).addRange(0x110FA, 0x110FF).addRange(0x11148, 0x1114F).addRange(0x11177, 0x1117F).addRange(0x111F5, 0x111FF).addRange(0x11242, 0x1127F).addRange(0x112AA, 0x112AF).addRange(0x112EB, 0x112EF).addRange(0x112FA, 0x112FF).addRange(0x1130D, 0x1130E).addRange(0x11311, 0x11312).addRange(0x11345, 0x11346).addRange(0x11349, 0x1134A).addRange(0x1134E, 0x1134F).addRange(0x11351, 0x11356).addRange(0x11358, 0x1135C).addRange(0x11364, 0x11365).addRange(0x1136D, 0x1136F).addRange(0x11375, 0x113FF).addRange(0x11462, 0x1147F).addRange(0x114C8, 0x114CF).addRange(0x114DA, 0x1157F).addRange(0x115B6, 0x115B7).addRange(0x115DE, 0x115FF).addRange(0x11645, 0x1164F).addRange(0x1165A, 0x1165F).addRange(0x1166D, 0x1167F); -set.addRange(0x116BA, 0x116BF).addRange(0x116CA, 0x116FF).addRange(0x1171B, 0x1171C).addRange(0x1172C, 0x1172F).addRange(0x11747, 0x117FF).addRange(0x1183C, 0x1189F).addRange(0x118F3, 0x118FE).addRange(0x11907, 0x11908).addRange(0x1190A, 0x1190B).addRange(0x11939, 0x1193A).addRange(0x11947, 0x1194F).addRange(0x1195A, 0x1199F).addRange(0x119A8, 0x119A9).addRange(0x119D8, 0x119D9).addRange(0x119E5, 0x119FF).addRange(0x11A48, 0x11A4F).addRange(0x11AA3, 0x11AAF).addRange(0x11AF9, 0x11AFF).addRange(0x11B0A, 0x11BFF).addRange(0x11C46, 0x11C4F).addRange(0x11C6D, 0x11C6F).addRange(0x11C90, 0x11C91).addRange(0x11CB7, 0x11CFF).addRange(0x11D37, 0x11D39).addRange(0x11D48, 0x11D4F).addRange(0x11D5A, 0x11D5F).addRange(0x11D99, 0x11D9F).addRange(0x11DAA, 0x11EDF).addRange(0x11EF9, 0x11EFF).addRange(0x11F3B, 0x11F3D).addRange(0x11F5A, 0x11FAF).addRange(0x11FB1, 0x11FBF).addRange(0x11FF2, 0x11FFE).addRange(0x1239A, 0x123FF).addRange(0x12475, 0x1247F).addRange(0x12544, 0x12F8F).addRange(0x12FF3, 0x12FFF).addRange(0x13430, 0x1343F).addRange(0x13456, 0x143FF).addRange(0x14647, 0x167FF).addRange(0x16A39, 0x16A3F).addRange(0x16A6A, 0x16A6D).addRange(0x16ACA, 0x16ACF).addRange(0x16AEE, 0x16AEF).addRange(0x16AF6, 0x16AFF).addRange(0x16B46, 0x16B4F).addRange(0x16B78, 0x16B7C).addRange(0x16B90, 0x16E3F).addRange(0x16E9B, 0x16EFF).addRange(0x16F4B, 0x16F4E).addRange(0x16F88, 0x16F8E); -set.addRange(0x16FA0, 0x16FDF).addRange(0x16FE5, 0x16FEF).addRange(0x16FF2, 0x16FFF).addRange(0x187F8, 0x187FF).addRange(0x18CD6, 0x18CFF).addRange(0x18D09, 0x1AFEF).addRange(0x1B123, 0x1B131).addRange(0x1B133, 0x1B14F).addRange(0x1B153, 0x1B154).addRange(0x1B156, 0x1B163).addRange(0x1B168, 0x1B16F).addRange(0x1B2FC, 0x1BBFF).addRange(0x1BC6B, 0x1BC6F).addRange(0x1BC7D, 0x1BC7F).addRange(0x1BC89, 0x1BC8F).addRange(0x1BC9A, 0x1BC9B).addRange(0x1BCA0, 0x1CEFF).addRange(0x1CF2E, 0x1CF2F).addRange(0x1CF47, 0x1CF4F).addRange(0x1CFC4, 0x1CFFF).addRange(0x1D0F6, 0x1D0FF).addRange(0x1D127, 0x1D128).addRange(0x1D173, 0x1D17A).addRange(0x1D1EB, 0x1D1FF).addRange(0x1D246, 0x1D2BF).addRange(0x1D2D4, 0x1D2DF).addRange(0x1D2F4, 0x1D2FF).addRange(0x1D357, 0x1D35F).addRange(0x1D379, 0x1D3FF).addRange(0x1D4A0, 0x1D4A1).addRange(0x1D4A3, 0x1D4A4).addRange(0x1D4A7, 0x1D4A8).addRange(0x1D50B, 0x1D50C).addRange(0x1D547, 0x1D549).addRange(0x1D6A6, 0x1D6A7).addRange(0x1D7CC, 0x1D7CD).addRange(0x1DA8C, 0x1DA9A).addRange(0x1DAB0, 0x1DEFF).addRange(0x1DF1F, 0x1DF24).addRange(0x1DF2B, 0x1DFFF).addRange(0x1E019, 0x1E01A).addRange(0x1E02B, 0x1E02F).addRange(0x1E06E, 0x1E08E).addRange(0x1E090, 0x1E0FF).addRange(0x1E12D, 0x1E12F).addRange(0x1E13E, 0x1E13F).addRange(0x1E14A, 0x1E14D).addRange(0x1E150, 0x1E28F).addRange(0x1E2AF, 0x1E2BF).addRange(0x1E2FA, 0x1E2FE).addRange(0x1E300, 0x1E4CF); -set.addRange(0x1E4FA, 0x1E7DF).addRange(0x1E8C5, 0x1E8C6).addRange(0x1E8D7, 0x1E8FF).addRange(0x1E94C, 0x1E94F).addRange(0x1E95A, 0x1E95D).addRange(0x1E960, 0x1EC70).addRange(0x1ECB5, 0x1ED00).addRange(0x1ED3E, 0x1EDFF).addRange(0x1EE25, 0x1EE26).addRange(0x1EE3C, 0x1EE41).addRange(0x1EE43, 0x1EE46).addRange(0x1EE55, 0x1EE56).addRange(0x1EE65, 0x1EE66).addRange(0x1EE9C, 0x1EEA0).addRange(0x1EEBC, 0x1EEEF).addRange(0x1EEF2, 0x1EFFF).addRange(0x1F02C, 0x1F02F).addRange(0x1F094, 0x1F09F).addRange(0x1F0AF, 0x1F0B0).addRange(0x1F0F6, 0x1F0FF).addRange(0x1F1AE, 0x1F1E5).addRange(0x1F203, 0x1F20F).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F24F).addRange(0x1F252, 0x1F25F).addRange(0x1F266, 0x1F2FF).addRange(0x1F6D8, 0x1F6DB).addRange(0x1F6ED, 0x1F6EF).addRange(0x1F6FD, 0x1F6FF).addRange(0x1F777, 0x1F77A).addRange(0x1F7DA, 0x1F7DF).addRange(0x1F7EC, 0x1F7EF).addRange(0x1F7F1, 0x1F7FF).addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8AF).addRange(0x1F8B2, 0x1F8FF).addRange(0x1FA54, 0x1FA5F).addRange(0x1FA6E, 0x1FA6F).addRange(0x1FA7D, 0x1FA7F).addRange(0x1FA89, 0x1FA8F).addRange(0x1FAC6, 0x1FACD).addRange(0x1FADC, 0x1FADF).addRange(0x1FAE9, 0x1FAEF).addRange(0x1FAF9, 0x1FAFF).addRange(0x1FBCB, 0x1FBEF).addRange(0x1FBFA, 0x1FFFF).addRange(0x2A6E0, 0x2A6FF).addRange(0x2B73A, 0x2B73F); -set.addRange(0x2B81E, 0x2B81F).addRange(0x2CEA2, 0x2CEAF).addRange(0x2EBE1, 0x2EBEF).addRange(0x2EE5E, 0x2F7FF).addRange(0x2FA1E, 0x2FFFF).addRange(0x3134B, 0x3134F).addRange(0x323B0, 0xE00FF).addRange(0xE01F0, 0x10FFFF); +set.addRange(0x16F9, 0x16FF).addRange(0x1716, 0x171E).addRange(0x1737, 0x173F).addRange(0x1754, 0x175F).addRange(0x1774, 0x177F).addRange(0x17DE, 0x17DF).addRange(0x17EA, 0x17EF).addRange(0x17FA, 0x17FF).addRange(0x181A, 0x181F).addRange(0x1879, 0x187F).addRange(0x18AB, 0x18AF).addRange(0x18F6, 0x18FF).addRange(0x192C, 0x192F).addRange(0x193C, 0x193F).addRange(0x1941, 0x1943).addRange(0x196E, 0x196F).addRange(0x1975, 0x197F).addRange(0x19AC, 0x19AF).addRange(0x19CA, 0x19CF).addRange(0x19DB, 0x19DD).addRange(0x1A1C, 0x1A1D).addRange(0x1A7D, 0x1A7E).addRange(0x1A8A, 0x1A8F).addRange(0x1A9A, 0x1A9F).addRange(0x1AAE, 0x1AAF).addRange(0x1ACF, 0x1AFF).addRange(0x1BF4, 0x1BFB).addRange(0x1C38, 0x1C3A).addRange(0x1C4A, 0x1C4C).addRange(0x1C8B, 0x1C8F).addRange(0x1CBB, 0x1CBC).addRange(0x1CC8, 0x1CCF).addRange(0x1CFB, 0x1CFF).addRange(0x1F16, 0x1F17).addRange(0x1F1E, 0x1F1F).addRange(0x1F46, 0x1F47).addRange(0x1F4E, 0x1F4F).addRange(0x1F7E, 0x1F7F).addRange(0x1FD4, 0x1FD5).addRange(0x1FF0, 0x1FF1).addRange(0x200B, 0x200F).addRange(0x202A, 0x202E).addRange(0x2060, 0x206F).addRange(0x2072, 0x2073).addRange(0x209D, 0x209F).addRange(0x20C1, 0x20CF).addRange(0x20F1, 0x20FF).addRange(0x218C, 0x218F).addRange(0x242A, 0x243F).addRange(0x244B, 0x245F).addRange(0x2B74, 0x2B75); +set.addRange(0x2CF4, 0x2CF8).addRange(0x2D28, 0x2D2C).addRange(0x2D2E, 0x2D2F).addRange(0x2D68, 0x2D6E).addRange(0x2D71, 0x2D7E).addRange(0x2D97, 0x2D9F).addRange(0x2E5E, 0x2E7F).addRange(0x2EF4, 0x2EFF).addRange(0x2FD6, 0x2FEF).addRange(0x3097, 0x3098).addRange(0x3100, 0x3104).addRange(0x31E6, 0x31EE).addRange(0xA48D, 0xA48F).addRange(0xA4C7, 0xA4CF).addRange(0xA62C, 0xA63F).addRange(0xA6F8, 0xA6FF).addRange(0xA7CE, 0xA7CF).addRange(0xA7DD, 0xA7F1).addRange(0xA82D, 0xA82F).addRange(0xA83A, 0xA83F).addRange(0xA878, 0xA87F).addRange(0xA8C6, 0xA8CD).addRange(0xA8DA, 0xA8DF).addRange(0xA954, 0xA95E).addRange(0xA97D, 0xA97F).addRange(0xA9DA, 0xA9DD).addRange(0xAA37, 0xAA3F).addRange(0xAA4E, 0xAA4F).addRange(0xAA5A, 0xAA5B).addRange(0xAAC3, 0xAADA).addRange(0xAAF7, 0xAB00).addRange(0xAB07, 0xAB08).addRange(0xAB0F, 0xAB10).addRange(0xAB17, 0xAB1F).addRange(0xAB6C, 0xAB6F).addRange(0xABEE, 0xABEF).addRange(0xABFA, 0xABFF).addRange(0xD7A4, 0xD7AF).addRange(0xD7C7, 0xD7CA).addRange(0xD7FC, 0xF8FF).addRange(0xFA6E, 0xFA6F).addRange(0xFADA, 0xFAFF).addRange(0xFB07, 0xFB12).addRange(0xFB18, 0xFB1C).addRange(0xFBC3, 0xFBD2).addRange(0xFD90, 0xFD91).addRange(0xFDC8, 0xFDCE).addRange(0xFDD0, 0xFDEF).addRange(0xFE1A, 0xFE1F).addRange(0xFE6C, 0xFE6F).addRange(0xFEFD, 0xFF00); +set.addRange(0xFFBF, 0xFFC1).addRange(0xFFC8, 0xFFC9).addRange(0xFFD0, 0xFFD1).addRange(0xFFD8, 0xFFD9).addRange(0xFFDD, 0xFFDF).addRange(0xFFEF, 0xFFFB).addRange(0xFFFE, 0xFFFF).addRange(0x1004E, 0x1004F).addRange(0x1005E, 0x1007F).addRange(0x100FB, 0x100FF).addRange(0x10103, 0x10106).addRange(0x10134, 0x10136).addRange(0x1019D, 0x1019F).addRange(0x101A1, 0x101CF).addRange(0x101FE, 0x1027F).addRange(0x1029D, 0x1029F).addRange(0x102D1, 0x102DF).addRange(0x102FC, 0x102FF).addRange(0x10324, 0x1032C).addRange(0x1034B, 0x1034F).addRange(0x1037B, 0x1037F).addRange(0x103C4, 0x103C7).addRange(0x103D6, 0x103FF).addRange(0x1049E, 0x1049F).addRange(0x104AA, 0x104AF).addRange(0x104D4, 0x104D7).addRange(0x104FC, 0x104FF).addRange(0x10528, 0x1052F).addRange(0x10564, 0x1056E).addRange(0x105BD, 0x105BF).addRange(0x105F4, 0x105FF).addRange(0x10737, 0x1073F).addRange(0x10756, 0x1075F).addRange(0x10768, 0x1077F).addRange(0x107BB, 0x107FF).addRange(0x10806, 0x10807).addRange(0x10839, 0x1083B).addRange(0x1083D, 0x1083E).addRange(0x1089F, 0x108A6).addRange(0x108B0, 0x108DF).addRange(0x108F6, 0x108FA).addRange(0x1091C, 0x1091E).addRange(0x1093A, 0x1093E).addRange(0x10940, 0x1097F).addRange(0x109B8, 0x109BB).addRange(0x109D0, 0x109D1).addRange(0x10A07, 0x10A0B).addRange(0x10A36, 0x10A37).addRange(0x10A3B, 0x10A3E).addRange(0x10A49, 0x10A4F).addRange(0x10A59, 0x10A5F); +set.addRange(0x10AA0, 0x10ABF).addRange(0x10AE7, 0x10AEA).addRange(0x10AF7, 0x10AFF).addRange(0x10B36, 0x10B38).addRange(0x10B56, 0x10B57).addRange(0x10B73, 0x10B77).addRange(0x10B92, 0x10B98).addRange(0x10B9D, 0x10BA8).addRange(0x10BB0, 0x10BFF).addRange(0x10C49, 0x10C7F).addRange(0x10CB3, 0x10CBF).addRange(0x10CF3, 0x10CF9).addRange(0x10D28, 0x10D2F).addRange(0x10D3A, 0x10D3F).addRange(0x10D66, 0x10D68).addRange(0x10D86, 0x10D8D).addRange(0x10D90, 0x10E5F).addRange(0x10EAE, 0x10EAF).addRange(0x10EB2, 0x10EC1).addRange(0x10EC5, 0x10EFB).addRange(0x10F28, 0x10F2F).addRange(0x10F5A, 0x10F6F).addRange(0x10F8A, 0x10FAF).addRange(0x10FCC, 0x10FDF).addRange(0x10FF7, 0x10FFF).addRange(0x1104E, 0x11051).addRange(0x11076, 0x1107E).addRange(0x110C3, 0x110CF).addRange(0x110E9, 0x110EF).addRange(0x110FA, 0x110FF).addRange(0x11148, 0x1114F).addRange(0x11177, 0x1117F).addRange(0x111F5, 0x111FF).addRange(0x11242, 0x1127F).addRange(0x112AA, 0x112AF).addRange(0x112EB, 0x112EF).addRange(0x112FA, 0x112FF).addRange(0x1130D, 0x1130E).addRange(0x11311, 0x11312).addRange(0x11345, 0x11346).addRange(0x11349, 0x1134A).addRange(0x1134E, 0x1134F).addRange(0x11351, 0x11356).addRange(0x11358, 0x1135C).addRange(0x11364, 0x11365).addRange(0x1136D, 0x1136F).addRange(0x11375, 0x1137F).addRange(0x1138C, 0x1138D).addRange(0x113C3, 0x113C4).addRange(0x113D9, 0x113E0).addRange(0x113E3, 0x113FF); +set.addRange(0x11462, 0x1147F).addRange(0x114C8, 0x114CF).addRange(0x114DA, 0x1157F).addRange(0x115B6, 0x115B7).addRange(0x115DE, 0x115FF).addRange(0x11645, 0x1164F).addRange(0x1165A, 0x1165F).addRange(0x1166D, 0x1167F).addRange(0x116BA, 0x116BF).addRange(0x116CA, 0x116CF).addRange(0x116E4, 0x116FF).addRange(0x1171B, 0x1171C).addRange(0x1172C, 0x1172F).addRange(0x11747, 0x117FF).addRange(0x1183C, 0x1189F).addRange(0x118F3, 0x118FE).addRange(0x11907, 0x11908).addRange(0x1190A, 0x1190B).addRange(0x11939, 0x1193A).addRange(0x11947, 0x1194F).addRange(0x1195A, 0x1199F).addRange(0x119A8, 0x119A9).addRange(0x119D8, 0x119D9).addRange(0x119E5, 0x119FF).addRange(0x11A48, 0x11A4F).addRange(0x11AA3, 0x11AAF).addRange(0x11AF9, 0x11AFF).addRange(0x11B0A, 0x11BBF).addRange(0x11BE2, 0x11BEF).addRange(0x11BFA, 0x11BFF).addRange(0x11C46, 0x11C4F).addRange(0x11C6D, 0x11C6F).addRange(0x11C90, 0x11C91).addRange(0x11CB7, 0x11CFF).addRange(0x11D37, 0x11D39).addRange(0x11D48, 0x11D4F).addRange(0x11D5A, 0x11D5F).addRange(0x11D99, 0x11D9F).addRange(0x11DAA, 0x11EDF).addRange(0x11EF9, 0x11EFF).addRange(0x11F3B, 0x11F3D).addRange(0x11F5B, 0x11FAF).addRange(0x11FB1, 0x11FBF).addRange(0x11FF2, 0x11FFE).addRange(0x1239A, 0x123FF).addRange(0x12475, 0x1247F).addRange(0x12544, 0x12F8F).addRange(0x12FF3, 0x12FFF).addRange(0x13430, 0x1343F).addRange(0x13456, 0x1345F).addRange(0x143FB, 0x143FF); +set.addRange(0x14647, 0x160FF).addRange(0x1613A, 0x167FF).addRange(0x16A39, 0x16A3F).addRange(0x16A6A, 0x16A6D).addRange(0x16ACA, 0x16ACF).addRange(0x16AEE, 0x16AEF).addRange(0x16AF6, 0x16AFF).addRange(0x16B46, 0x16B4F).addRange(0x16B78, 0x16B7C).addRange(0x16B90, 0x16D3F).addRange(0x16D7A, 0x16E3F).addRange(0x16E9B, 0x16EFF).addRange(0x16F4B, 0x16F4E).addRange(0x16F88, 0x16F8E).addRange(0x16FA0, 0x16FDF).addRange(0x16FE5, 0x16FEF).addRange(0x16FF2, 0x16FFF).addRange(0x187F8, 0x187FF).addRange(0x18CD6, 0x18CFE).addRange(0x18D09, 0x1AFEF).addRange(0x1B123, 0x1B131).addRange(0x1B133, 0x1B14F).addRange(0x1B153, 0x1B154).addRange(0x1B156, 0x1B163).addRange(0x1B168, 0x1B16F).addRange(0x1B2FC, 0x1BBFF).addRange(0x1BC6B, 0x1BC6F).addRange(0x1BC7D, 0x1BC7F).addRange(0x1BC89, 0x1BC8F).addRange(0x1BC9A, 0x1BC9B).addRange(0x1BCA0, 0x1CBFF).addRange(0x1CCFA, 0x1CCFF).addRange(0x1CEB4, 0x1CEFF).addRange(0x1CF2E, 0x1CF2F).addRange(0x1CF47, 0x1CF4F).addRange(0x1CFC4, 0x1CFFF).addRange(0x1D0F6, 0x1D0FF).addRange(0x1D127, 0x1D128).addRange(0x1D173, 0x1D17A).addRange(0x1D1EB, 0x1D1FF).addRange(0x1D246, 0x1D2BF).addRange(0x1D2D4, 0x1D2DF).addRange(0x1D2F4, 0x1D2FF).addRange(0x1D357, 0x1D35F).addRange(0x1D379, 0x1D3FF).addRange(0x1D4A0, 0x1D4A1).addRange(0x1D4A3, 0x1D4A4).addRange(0x1D4A7, 0x1D4A8).addRange(0x1D50B, 0x1D50C).addRange(0x1D547, 0x1D549).addRange(0x1D6A6, 0x1D6A7); +set.addRange(0x1D7CC, 0x1D7CD).addRange(0x1DA8C, 0x1DA9A).addRange(0x1DAB0, 0x1DEFF).addRange(0x1DF1F, 0x1DF24).addRange(0x1DF2B, 0x1DFFF).addRange(0x1E019, 0x1E01A).addRange(0x1E02B, 0x1E02F).addRange(0x1E06E, 0x1E08E).addRange(0x1E090, 0x1E0FF).addRange(0x1E12D, 0x1E12F).addRange(0x1E13E, 0x1E13F).addRange(0x1E14A, 0x1E14D).addRange(0x1E150, 0x1E28F).addRange(0x1E2AF, 0x1E2BF).addRange(0x1E2FA, 0x1E2FE).addRange(0x1E300, 0x1E4CF).addRange(0x1E4FA, 0x1E5CF).addRange(0x1E5FB, 0x1E5FE).addRange(0x1E600, 0x1E7DF).addRange(0x1E8C5, 0x1E8C6).addRange(0x1E8D7, 0x1E8FF).addRange(0x1E94C, 0x1E94F).addRange(0x1E95A, 0x1E95D).addRange(0x1E960, 0x1EC70).addRange(0x1ECB5, 0x1ED00).addRange(0x1ED3E, 0x1EDFF).addRange(0x1EE25, 0x1EE26).addRange(0x1EE3C, 0x1EE41).addRange(0x1EE43, 0x1EE46).addRange(0x1EE55, 0x1EE56).addRange(0x1EE65, 0x1EE66).addRange(0x1EE9C, 0x1EEA0).addRange(0x1EEBC, 0x1EEEF).addRange(0x1EEF2, 0x1EFFF).addRange(0x1F02C, 0x1F02F).addRange(0x1F094, 0x1F09F).addRange(0x1F0AF, 0x1F0B0).addRange(0x1F0F6, 0x1F0FF).addRange(0x1F1AE, 0x1F1E5).addRange(0x1F203, 0x1F20F).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F24F).addRange(0x1F252, 0x1F25F).addRange(0x1F266, 0x1F2FF).addRange(0x1F6D8, 0x1F6DB).addRange(0x1F6ED, 0x1F6EF).addRange(0x1F6FD, 0x1F6FF).addRange(0x1F777, 0x1F77A).addRange(0x1F7DA, 0x1F7DF).addRange(0x1F7EC, 0x1F7EF).addRange(0x1F7F1, 0x1F7FF); +set.addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8AF).addRange(0x1F8BC, 0x1F8BF).addRange(0x1F8C2, 0x1F8FF).addRange(0x1FA54, 0x1FA5F).addRange(0x1FA6E, 0x1FA6F).addRange(0x1FA7D, 0x1FA7F).addRange(0x1FA8A, 0x1FA8E).addRange(0x1FAC7, 0x1FACD).addRange(0x1FADD, 0x1FADE).addRange(0x1FAEA, 0x1FAEF).addRange(0x1FAF9, 0x1FAFF).addRange(0x1FBFA, 0x1FFFF).addRange(0x2A6E0, 0x2A6FF).addRange(0x2B73A, 0x2B73F).addRange(0x2B81E, 0x2B81F).addRange(0x2CEA2, 0x2CEAF).addRange(0x2EBE1, 0x2EBEF).addRange(0x2EE5E, 0x2F7FF).addRange(0x2FA1E, 0x2FFFF).addRange(0x3134B, 0x3134F).addRange(0x323B0, 0xE00FF).addRange(0xE01F0, 0x10FFFF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Other_Letter.js b/node_modules/regenerate-unicode-properties/General_Category/Other_Letter.js index 72fad8e..a9d1fe7 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Other_Letter.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Other_Letter.js @@ -1,10 +1,11 @@ -const set = require('regenerate')(0xAA, 0xBA, 0x1BB, 0x294, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xF00, 0x103F, 0x1061, 0x108E, 0x1258, 0x12C0, 0x17DC, 0x18AA, 0x1CFA, 0x3006, 0x303C, 0x309F, 0x30FF, 0xA66E, 0xA78F, 0xA7F7, 0xA8FB, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xAAF2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11F02, 0x11FB0, 0x16F50, 0x1B132, 0x1B155, 0x1DF0A, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); +const set = require('regenerate')(0xAA, 0xBA, 0x1BB, 0x294, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xF00, 0x103F, 0x1061, 0x108E, 0x1258, 0x12C0, 0x17DC, 0x18AA, 0x1CFA, 0x3006, 0x303C, 0x309F, 0x30FF, 0xA66E, 0xA78F, 0xA7F7, 0xA8FB, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xAAF2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10D4F, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x1138B, 0x1138E, 0x113B7, 0x113D1, 0x113D3, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11F02, 0x11FB0, 0x16F50, 0x1B132, 0x1B155, 0x1DF0A, 0x1E14E, 0x1E5F0, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); set.addRange(0x1C0, 0x1C3).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x63F).addRange(0x641, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C8).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x972, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39); set.addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE40, 0xE45).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066); set.addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x1100, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16F1, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1842).addRange(0x1844, 0x1878).addRange(0x1880, 0x1884).addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C77).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6); set.addRange(0x2135, 0x2138).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3041, 0x3096).addRange(0x30A1, 0x30FA).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA014).addRange(0xA016, 0xA48C).addRange(0xA4D0, 0xA4F7).addRange(0xA500, 0xA60B).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA6A0, 0xA6E5).addRange(0xA7FB, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E7, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA6F).addRange(0xAA71, 0xAA76).addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADC).addRange(0xAAE0, 0xAAEA).addRange(0xAB01, 0xAB06); -set.addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xABC0, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF66, 0xFF6F).addRange(0xFF71, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x10340).addRange(0x10342, 0x10349).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x10450, 0x1049D).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767); -set.addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328); -set.addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x11F04, 0x11F10).addRange(0x11F12, 0x11F33).addRange(0x12000, 0x12399).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16F00, 0x16F4A); -set.addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1E100, 0x1E12C).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EA).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); +set.addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xABC0, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF66, 0xFF6F).addRange(0xFF71, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x10340).addRange(0x10342, 0x10349).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x10450, 0x1049D).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x105C0, 0x105F3).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755); +set.addRange(0x10760, 0x10767).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10D00, 0x10D23).addRange(0x10D4A, 0x10D4D).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10EC2, 0x10EC4).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE); +set.addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11380, 0x11389).addRange(0x11390, 0x113B5).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11BC0, 0x11BE0).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x11F04, 0x11F10).addRange(0x11F12, 0x11F33).addRange(0x12000, 0x12399).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x13460, 0x143FA).addRange(0x14400, 0x14646).addRange(0x16100, 0x1611D); +set.addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16D43, 0x16D6A).addRange(0x16F00, 0x16F4A).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18CFF, 0x18D08).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1E100, 0x1E12C).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EA).addRange(0x1E5D0, 0x1E5ED).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1); +set.addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Other_Punctuation.js b/node_modules/regenerate-unicode-properties/General_Category/Other_Punctuation.js index e0c0215..c3a3e8a 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Other_Punctuation.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Other_Punctuation.js @@ -1,5 +1,5 @@ -const set = require('regenerate')(0x2A, 0x2C, 0x5C, 0xA1, 0xA7, 0xBF, 0x37E, 0x387, 0x589, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6D4, 0x85E, 0x970, 0x9FD, 0xA76, 0xAF0, 0xC77, 0xC84, 0xDF4, 0xE4F, 0xF14, 0xF85, 0x10FB, 0x166E, 0x1CD3, 0x2053, 0x2D70, 0x2E0B, 0x2E1B, 0x2E41, 0x303D, 0x30FB, 0xA673, 0xA67E, 0xA8FC, 0xA95F, 0xABEB, 0xFE19, 0xFE30, 0xFE68, 0xFF0A, 0xFF0C, 0xFF3C, 0xFF61, 0x1039F, 0x103D0, 0x1056F, 0x10857, 0x1091F, 0x1093F, 0x10A7F, 0x111CD, 0x111DB, 0x112A9, 0x1145D, 0x114C6, 0x116B9, 0x1183B, 0x119E2, 0x11FFF, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F); -set.addRange(0x21, 0x23).addRange(0x25, 0x27).addRange(0x2E, 0x2F).addRange(0x3A, 0x3B).addRange(0x3F, 0x40).addRange(0xB6, 0xB7).addRange(0x55A, 0x55F).addRange(0x5F3, 0x5F4).addRange(0x609, 0x60A).addRange(0x60C, 0x60D).addRange(0x61D, 0x61F).addRange(0x66A, 0x66D).addRange(0x700, 0x70D).addRange(0x7F7, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF04, 0xF12).addRange(0xFD0, 0xFD4).addRange(0xFD9, 0xFDA).addRange(0x104A, 0x104F).addRange(0x1360, 0x1368).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x17D8, 0x17DA).addRange(0x1800, 0x1805).addRange(0x1807, 0x180A).addRange(0x1944, 0x1945).addRange(0x1A1E, 0x1A1F).addRange(0x1AA0, 0x1AA6).addRange(0x1AA8, 0x1AAD).addRange(0x1B5A, 0x1B60).addRange(0x1B7D, 0x1B7E).addRange(0x1BFC, 0x1BFF).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x1CC0, 0x1CC7).addRange(0x2016, 0x2017).addRange(0x2020, 0x2027).addRange(0x2030, 0x2038).addRange(0x203B, 0x203E).addRange(0x2041, 0x2043).addRange(0x2047, 0x2051).addRange(0x2055, 0x205E).addRange(0x2CF9, 0x2CFC).addRange(0x2CFE, 0x2CFF).addRange(0x2E00, 0x2E01).addRange(0x2E06, 0x2E08).addRange(0x2E0E, 0x2E16).addRange(0x2E18, 0x2E19); -set.addRange(0x2E1E, 0x2E1F).addRange(0x2E2A, 0x2E2E).addRange(0x2E30, 0x2E39).addRange(0x2E3C, 0x2E3F).addRange(0x2E43, 0x2E4F).addRange(0x2E52, 0x2E54).addRange(0x3001, 0x3003).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F2, 0xA6F7).addRange(0xA874, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA8F8, 0xA8FA).addRange(0xA92E, 0xA92F).addRange(0xA9C1, 0xA9CD).addRange(0xA9DE, 0xA9DF).addRange(0xAA5C, 0xAA5F).addRange(0xAADE, 0xAADF).addRange(0xAAF0, 0xAAF1).addRange(0xFE10, 0xFE16).addRange(0xFE45, 0xFE46).addRange(0xFE49, 0xFE4C).addRange(0xFE50, 0xFE52).addRange(0xFE54, 0xFE57).addRange(0xFE5F, 0xFE61).addRange(0xFE6A, 0xFE6B).addRange(0xFF01, 0xFF03).addRange(0xFF05, 0xFF07).addRange(0xFF0E, 0xFF0F).addRange(0xFF1A, 0xFF1B).addRange(0xFF1F, 0xFF20).addRange(0xFF64, 0xFF65).addRange(0x10100, 0x10102).addRange(0x10A50, 0x10A58).addRange(0x10AF0, 0x10AF6).addRange(0x10B39, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x11140, 0x11143).addRange(0x11174, 0x11175).addRange(0x111C5, 0x111C8).addRange(0x111DD, 0x111DF).addRange(0x11238, 0x1123D).addRange(0x1144B, 0x1144F).addRange(0x1145A, 0x1145B).addRange(0x115C1, 0x115D7).addRange(0x11641, 0x11643); -set.addRange(0x11660, 0x1166C).addRange(0x1173C, 0x1173E).addRange(0x11944, 0x11946).addRange(0x11A3F, 0x11A46).addRange(0x11A9A, 0x11A9C).addRange(0x11A9E, 0x11AA2).addRange(0x11B00, 0x11B09).addRange(0x11C41, 0x11C45).addRange(0x11C70, 0x11C71).addRange(0x11EF7, 0x11EF8).addRange(0x11F43, 0x11F4F).addRange(0x12470, 0x12474).addRange(0x12FF1, 0x12FF2).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B3B).addRange(0x16E97, 0x16E9A).addRange(0x1DA87, 0x1DA8B).addRange(0x1E95E, 0x1E95F); +const set = require('regenerate')(0x2A, 0x2C, 0x5C, 0xA1, 0xA7, 0xBF, 0x37E, 0x387, 0x589, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6D4, 0x85E, 0x970, 0x9FD, 0xA76, 0xAF0, 0xC77, 0xC84, 0xDF4, 0xE4F, 0xF14, 0xF85, 0x10FB, 0x166E, 0x1CD3, 0x2053, 0x2D70, 0x2E0B, 0x2E1B, 0x2E41, 0x303D, 0x30FB, 0xA673, 0xA67E, 0xA8FC, 0xA95F, 0xABEB, 0xFE19, 0xFE30, 0xFE68, 0xFF0A, 0xFF0C, 0xFF3C, 0xFF61, 0x1039F, 0x103D0, 0x1056F, 0x10857, 0x1091F, 0x1093F, 0x10A7F, 0x111CD, 0x111DB, 0x112A9, 0x1145D, 0x114C6, 0x116B9, 0x1183B, 0x119E2, 0x11BE1, 0x11FFF, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F, 0x1E5FF); +set.addRange(0x21, 0x23).addRange(0x25, 0x27).addRange(0x2E, 0x2F).addRange(0x3A, 0x3B).addRange(0x3F, 0x40).addRange(0xB6, 0xB7).addRange(0x55A, 0x55F).addRange(0x5F3, 0x5F4).addRange(0x609, 0x60A).addRange(0x60C, 0x60D).addRange(0x61D, 0x61F).addRange(0x66A, 0x66D).addRange(0x700, 0x70D).addRange(0x7F7, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF04, 0xF12).addRange(0xFD0, 0xFD4).addRange(0xFD9, 0xFDA).addRange(0x104A, 0x104F).addRange(0x1360, 0x1368).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x17D8, 0x17DA).addRange(0x1800, 0x1805).addRange(0x1807, 0x180A).addRange(0x1944, 0x1945).addRange(0x1A1E, 0x1A1F).addRange(0x1AA0, 0x1AA6).addRange(0x1AA8, 0x1AAD).addRange(0x1B4E, 0x1B4F).addRange(0x1B5A, 0x1B60).addRange(0x1B7D, 0x1B7F).addRange(0x1BFC, 0x1BFF).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x1CC0, 0x1CC7).addRange(0x2016, 0x2017).addRange(0x2020, 0x2027).addRange(0x2030, 0x2038).addRange(0x203B, 0x203E).addRange(0x2041, 0x2043).addRange(0x2047, 0x2051).addRange(0x2055, 0x205E).addRange(0x2CF9, 0x2CFC).addRange(0x2CFE, 0x2CFF).addRange(0x2E00, 0x2E01).addRange(0x2E06, 0x2E08).addRange(0x2E0E, 0x2E16); +set.addRange(0x2E18, 0x2E19).addRange(0x2E1E, 0x2E1F).addRange(0x2E2A, 0x2E2E).addRange(0x2E30, 0x2E39).addRange(0x2E3C, 0x2E3F).addRange(0x2E43, 0x2E4F).addRange(0x2E52, 0x2E54).addRange(0x3001, 0x3003).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F2, 0xA6F7).addRange(0xA874, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA8F8, 0xA8FA).addRange(0xA92E, 0xA92F).addRange(0xA9C1, 0xA9CD).addRange(0xA9DE, 0xA9DF).addRange(0xAA5C, 0xAA5F).addRange(0xAADE, 0xAADF).addRange(0xAAF0, 0xAAF1).addRange(0xFE10, 0xFE16).addRange(0xFE45, 0xFE46).addRange(0xFE49, 0xFE4C).addRange(0xFE50, 0xFE52).addRange(0xFE54, 0xFE57).addRange(0xFE5F, 0xFE61).addRange(0xFE6A, 0xFE6B).addRange(0xFF01, 0xFF03).addRange(0xFF05, 0xFF07).addRange(0xFF0E, 0xFF0F).addRange(0xFF1A, 0xFF1B).addRange(0xFF1F, 0xFF20).addRange(0xFF64, 0xFF65).addRange(0x10100, 0x10102).addRange(0x10A50, 0x10A58).addRange(0x10AF0, 0x10AF6).addRange(0x10B39, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x11140, 0x11143).addRange(0x11174, 0x11175).addRange(0x111C5, 0x111C8).addRange(0x111DD, 0x111DF).addRange(0x11238, 0x1123D).addRange(0x113D4, 0x113D5).addRange(0x113D7, 0x113D8).addRange(0x1144B, 0x1144F); +set.addRange(0x1145A, 0x1145B).addRange(0x115C1, 0x115D7).addRange(0x11641, 0x11643).addRange(0x11660, 0x1166C).addRange(0x1173C, 0x1173E).addRange(0x11944, 0x11946).addRange(0x11A3F, 0x11A46).addRange(0x11A9A, 0x11A9C).addRange(0x11A9E, 0x11AA2).addRange(0x11B00, 0x11B09).addRange(0x11C41, 0x11C45).addRange(0x11C70, 0x11C71).addRange(0x11EF7, 0x11EF8).addRange(0x11F43, 0x11F4F).addRange(0x12470, 0x12474).addRange(0x12FF1, 0x12FF2).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B3B).addRange(0x16D6D, 0x16D6F).addRange(0x16E97, 0x16E9A).addRange(0x1DA87, 0x1DA8B).addRange(0x1E95E, 0x1E95F); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Other_Symbol.js b/node_modules/regenerate-unicode-properties/General_Category/Other_Symbol.js index 1903521..7ddd552 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Other_Symbol.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Other_Symbol.js @@ -1,5 +1,5 @@ const set = require('regenerate')(0xA6, 0xA9, 0xAE, 0xB0, 0x482, 0x6DE, 0x6E9, 0x7F6, 0x9FA, 0xB70, 0xBFA, 0xC7F, 0xD4F, 0xD79, 0xF13, 0xF34, 0xF36, 0xF38, 0x166D, 0x1940, 0x2114, 0x2125, 0x2127, 0x2129, 0x212E, 0x214A, 0x214F, 0x21D3, 0x3004, 0x3020, 0x31EF, 0x3250, 0xA839, 0xFDCF, 0xFFE4, 0xFFE8, 0x101A0, 0x10AC8, 0x1173F, 0x16B45, 0x1BC9C, 0x1D245, 0x1E14F, 0x1ECAC, 0x1ED2E, 0x1F7F0); -set.addRange(0x58D, 0x58E).addRange(0x60E, 0x60F).addRange(0x6FD, 0x6FE).addRange(0xBF3, 0xBF8).addRange(0xF01, 0xF03).addRange(0xF15, 0xF17).addRange(0xF1A, 0xF1F).addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFCF).addRange(0xFD5, 0xFD8).addRange(0x109E, 0x109F).addRange(0x1390, 0x1399).addRange(0x19DE, 0x19FF).addRange(0x1B61, 0x1B6A).addRange(0x1B74, 0x1B7C).addRange(0x2100, 0x2101).addRange(0x2103, 0x2106).addRange(0x2108, 0x2109).addRange(0x2116, 0x2117).addRange(0x211E, 0x2123).addRange(0x213A, 0x213B).addRange(0x214C, 0x214D).addRange(0x218A, 0x218B).addRange(0x2195, 0x2199).addRange(0x219C, 0x219F).addRange(0x21A1, 0x21A2).addRange(0x21A4, 0x21A5).addRange(0x21A7, 0x21AD).addRange(0x21AF, 0x21CD).addRange(0x21D0, 0x21D1).addRange(0x21D5, 0x21F3).addRange(0x2300, 0x2307).addRange(0x230C, 0x231F).addRange(0x2322, 0x2328).addRange(0x232B, 0x237B).addRange(0x237D, 0x239A).addRange(0x23B4, 0x23DB).addRange(0x23E2, 0x2426).addRange(0x2440, 0x244A).addRange(0x249C, 0x24E9).addRange(0x2500, 0x25B6).addRange(0x25B8, 0x25C0).addRange(0x25C2, 0x25F7).addRange(0x2600, 0x266E).addRange(0x2670, 0x2767).addRange(0x2794, 0x27BF).addRange(0x2800, 0x28FF).addRange(0x2B00, 0x2B2F).addRange(0x2B45, 0x2B46).addRange(0x2B4D, 0x2B73); -set.addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2CE5, 0x2CEA).addRange(0x2E50, 0x2E51).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFF).addRange(0x3012, 0x3013).addRange(0x3036, 0x3037).addRange(0x303E, 0x303F).addRange(0x3190, 0x3191).addRange(0x3196, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3200, 0x321E).addRange(0x322A, 0x3247).addRange(0x3260, 0x327F).addRange(0x328A, 0x32B0).addRange(0x32C0, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA490, 0xA4C6).addRange(0xA828, 0xA82B).addRange(0xA836, 0xA837).addRange(0xAA77, 0xAA79).addRange(0xFD40, 0xFD4F).addRange(0xFDFD, 0xFDFF).addRange(0xFFED, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10137, 0x1013F).addRange(0x10179, 0x10189).addRange(0x1018C, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10877, 0x10878).addRange(0x11FD5, 0x11FDC).addRange(0x11FE1, 0x11FF1).addRange(0x16B3C, 0x16B3F).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16C).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D300, 0x1D356).addRange(0x1D800, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83); -set.addRange(0x1DA85, 0x1DA86).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F10D, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F3FA).addRange(0x1F400, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA); +set.addRange(0x58D, 0x58E).addRange(0x60E, 0x60F).addRange(0x6FD, 0x6FE).addRange(0xBF3, 0xBF8).addRange(0xF01, 0xF03).addRange(0xF15, 0xF17).addRange(0xF1A, 0xF1F).addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFCF).addRange(0xFD5, 0xFD8).addRange(0x109E, 0x109F).addRange(0x1390, 0x1399).addRange(0x19DE, 0x19FF).addRange(0x1B61, 0x1B6A).addRange(0x1B74, 0x1B7C).addRange(0x2100, 0x2101).addRange(0x2103, 0x2106).addRange(0x2108, 0x2109).addRange(0x2116, 0x2117).addRange(0x211E, 0x2123).addRange(0x213A, 0x213B).addRange(0x214C, 0x214D).addRange(0x218A, 0x218B).addRange(0x2195, 0x2199).addRange(0x219C, 0x219F).addRange(0x21A1, 0x21A2).addRange(0x21A4, 0x21A5).addRange(0x21A7, 0x21AD).addRange(0x21AF, 0x21CD).addRange(0x21D0, 0x21D1).addRange(0x21D5, 0x21F3).addRange(0x2300, 0x2307).addRange(0x230C, 0x231F).addRange(0x2322, 0x2328).addRange(0x232B, 0x237B).addRange(0x237D, 0x239A).addRange(0x23B4, 0x23DB).addRange(0x23E2, 0x2429).addRange(0x2440, 0x244A).addRange(0x249C, 0x24E9).addRange(0x2500, 0x25B6).addRange(0x25B8, 0x25C0).addRange(0x25C2, 0x25F7).addRange(0x2600, 0x266E).addRange(0x2670, 0x2767).addRange(0x2794, 0x27BF).addRange(0x2800, 0x28FF).addRange(0x2B00, 0x2B2F).addRange(0x2B45, 0x2B46).addRange(0x2B4D, 0x2B73); +set.addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2CE5, 0x2CEA).addRange(0x2E50, 0x2E51).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFF).addRange(0x3012, 0x3013).addRange(0x3036, 0x3037).addRange(0x303E, 0x303F).addRange(0x3190, 0x3191).addRange(0x3196, 0x319F).addRange(0x31C0, 0x31E5).addRange(0x3200, 0x321E).addRange(0x322A, 0x3247).addRange(0x3260, 0x327F).addRange(0x328A, 0x32B0).addRange(0x32C0, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA490, 0xA4C6).addRange(0xA828, 0xA82B).addRange(0xA836, 0xA837).addRange(0xAA77, 0xAA79).addRange(0xFD40, 0xFD4F).addRange(0xFDFD, 0xFDFF).addRange(0xFFED, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10137, 0x1013F).addRange(0x10179, 0x10189).addRange(0x1018C, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10877, 0x10878).addRange(0x11FD5, 0x11FDC).addRange(0x11FE1, 0x11FF1).addRange(0x16B3C, 0x16B3F).addRange(0x1CC00, 0x1CCEF).addRange(0x1CD00, 0x1CEB3).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16C).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D300, 0x1D356).addRange(0x1D800, 0x1D9FF).addRange(0x1DA37, 0x1DA3A); +set.addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83).addRange(0x1DA85, 0x1DA86).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F10D, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F3FA).addRange(0x1F400, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8BB).addRange(0x1F8C0, 0x1F8C1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA89).addRange(0x1FA8F, 0x1FAC6).addRange(0x1FACE, 0x1FADC).addRange(0x1FADF, 0x1FAE9).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBEF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Punctuation.js b/node_modules/regenerate-unicode-properties/General_Category/Punctuation.js index e750086..916a132 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Punctuation.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Punctuation.js @@ -1,5 +1,5 @@ -const set = require('regenerate')(0x5F, 0x7B, 0x7D, 0xA1, 0xA7, 0xAB, 0xBB, 0xBF, 0x37E, 0x387, 0x5BE, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6D4, 0x85E, 0x970, 0x9FD, 0xA76, 0xAF0, 0xC77, 0xC84, 0xDF4, 0xE4F, 0xF14, 0xF85, 0x10FB, 0x1400, 0x166E, 0x1CD3, 0x2D70, 0x3030, 0x303D, 0x30A0, 0x30FB, 0xA673, 0xA67E, 0xA8FC, 0xA95F, 0xABEB, 0xFE63, 0xFE68, 0xFF3F, 0xFF5B, 0xFF5D, 0x1039F, 0x103D0, 0x1056F, 0x10857, 0x1091F, 0x1093F, 0x10A7F, 0x10EAD, 0x111CD, 0x111DB, 0x112A9, 0x1145D, 0x114C6, 0x116B9, 0x1183B, 0x119E2, 0x11FFF, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F); -set.addRange(0x21, 0x23).addRange(0x25, 0x2A).addRange(0x2C, 0x2F).addRange(0x3A, 0x3B).addRange(0x3F, 0x40).addRange(0x5B, 0x5D).addRange(0xB6, 0xB7).addRange(0x55A, 0x55F).addRange(0x589, 0x58A).addRange(0x5F3, 0x5F4).addRange(0x609, 0x60A).addRange(0x60C, 0x60D).addRange(0x61D, 0x61F).addRange(0x66A, 0x66D).addRange(0x700, 0x70D).addRange(0x7F7, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF04, 0xF12).addRange(0xF3A, 0xF3D).addRange(0xFD0, 0xFD4).addRange(0xFD9, 0xFDA).addRange(0x104A, 0x104F).addRange(0x1360, 0x1368).addRange(0x169B, 0x169C).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x17D8, 0x17DA).addRange(0x1800, 0x180A).addRange(0x1944, 0x1945).addRange(0x1A1E, 0x1A1F).addRange(0x1AA0, 0x1AA6).addRange(0x1AA8, 0x1AAD).addRange(0x1B5A, 0x1B60).addRange(0x1B7D, 0x1B7E).addRange(0x1BFC, 0x1BFF).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x1CC0, 0x1CC7).addRange(0x2010, 0x2027).addRange(0x2030, 0x2043).addRange(0x2045, 0x2051).addRange(0x2053, 0x205E).addRange(0x207D, 0x207E).addRange(0x208D, 0x208E).addRange(0x2308, 0x230B).addRange(0x2329, 0x232A).addRange(0x2768, 0x2775).addRange(0x27C5, 0x27C6); -set.addRange(0x27E6, 0x27EF).addRange(0x2983, 0x2998).addRange(0x29D8, 0x29DB).addRange(0x29FC, 0x29FD).addRange(0x2CF9, 0x2CFC).addRange(0x2CFE, 0x2CFF).addRange(0x2E00, 0x2E2E).addRange(0x2E30, 0x2E4F).addRange(0x2E52, 0x2E5D).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3014, 0x301F).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F2, 0xA6F7).addRange(0xA874, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA8F8, 0xA8FA).addRange(0xA92E, 0xA92F).addRange(0xA9C1, 0xA9CD).addRange(0xA9DE, 0xA9DF).addRange(0xAA5C, 0xAA5F).addRange(0xAADE, 0xAADF).addRange(0xAAF0, 0xAAF1).addRange(0xFD3E, 0xFD3F).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE61).addRange(0xFE6A, 0xFE6B).addRange(0xFF01, 0xFF03).addRange(0xFF05, 0xFF0A).addRange(0xFF0C, 0xFF0F).addRange(0xFF1A, 0xFF1B).addRange(0xFF1F, 0xFF20).addRange(0xFF3B, 0xFF3D).addRange(0xFF5F, 0xFF65).addRange(0x10100, 0x10102).addRange(0x10A50, 0x10A58).addRange(0x10AF0, 0x10AF6).addRange(0x10B39, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x11140, 0x11143).addRange(0x11174, 0x11175).addRange(0x111C5, 0x111C8).addRange(0x111DD, 0x111DF).addRange(0x11238, 0x1123D); -set.addRange(0x1144B, 0x1144F).addRange(0x1145A, 0x1145B).addRange(0x115C1, 0x115D7).addRange(0x11641, 0x11643).addRange(0x11660, 0x1166C).addRange(0x1173C, 0x1173E).addRange(0x11944, 0x11946).addRange(0x11A3F, 0x11A46).addRange(0x11A9A, 0x11A9C).addRange(0x11A9E, 0x11AA2).addRange(0x11B00, 0x11B09).addRange(0x11C41, 0x11C45).addRange(0x11C70, 0x11C71).addRange(0x11EF7, 0x11EF8).addRange(0x11F43, 0x11F4F).addRange(0x12470, 0x12474).addRange(0x12FF1, 0x12FF2).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B3B).addRange(0x16E97, 0x16E9A).addRange(0x1DA87, 0x1DA8B).addRange(0x1E95E, 0x1E95F); +const set = require('regenerate')(0x5F, 0x7B, 0x7D, 0xA1, 0xA7, 0xAB, 0xBB, 0xBF, 0x37E, 0x387, 0x5BE, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6D4, 0x85E, 0x970, 0x9FD, 0xA76, 0xAF0, 0xC77, 0xC84, 0xDF4, 0xE4F, 0xF14, 0xF85, 0x10FB, 0x1400, 0x166E, 0x1CD3, 0x2D70, 0x3030, 0x303D, 0x30A0, 0x30FB, 0xA673, 0xA67E, 0xA8FC, 0xA95F, 0xABEB, 0xFE63, 0xFE68, 0xFF3F, 0xFF5B, 0xFF5D, 0x1039F, 0x103D0, 0x1056F, 0x10857, 0x1091F, 0x1093F, 0x10A7F, 0x10D6E, 0x10EAD, 0x111CD, 0x111DB, 0x112A9, 0x1145D, 0x114C6, 0x116B9, 0x1183B, 0x119E2, 0x11BE1, 0x11FFF, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F, 0x1E5FF); +set.addRange(0x21, 0x23).addRange(0x25, 0x2A).addRange(0x2C, 0x2F).addRange(0x3A, 0x3B).addRange(0x3F, 0x40).addRange(0x5B, 0x5D).addRange(0xB6, 0xB7).addRange(0x55A, 0x55F).addRange(0x589, 0x58A).addRange(0x5F3, 0x5F4).addRange(0x609, 0x60A).addRange(0x60C, 0x60D).addRange(0x61D, 0x61F).addRange(0x66A, 0x66D).addRange(0x700, 0x70D).addRange(0x7F7, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF04, 0xF12).addRange(0xF3A, 0xF3D).addRange(0xFD0, 0xFD4).addRange(0xFD9, 0xFDA).addRange(0x104A, 0x104F).addRange(0x1360, 0x1368).addRange(0x169B, 0x169C).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x17D8, 0x17DA).addRange(0x1800, 0x180A).addRange(0x1944, 0x1945).addRange(0x1A1E, 0x1A1F).addRange(0x1AA0, 0x1AA6).addRange(0x1AA8, 0x1AAD).addRange(0x1B4E, 0x1B4F).addRange(0x1B5A, 0x1B60).addRange(0x1B7D, 0x1B7F).addRange(0x1BFC, 0x1BFF).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x1CC0, 0x1CC7).addRange(0x2010, 0x2027).addRange(0x2030, 0x2043).addRange(0x2045, 0x2051).addRange(0x2053, 0x205E).addRange(0x207D, 0x207E).addRange(0x208D, 0x208E).addRange(0x2308, 0x230B).addRange(0x2329, 0x232A).addRange(0x2768, 0x2775); +set.addRange(0x27C5, 0x27C6).addRange(0x27E6, 0x27EF).addRange(0x2983, 0x2998).addRange(0x29D8, 0x29DB).addRange(0x29FC, 0x29FD).addRange(0x2CF9, 0x2CFC).addRange(0x2CFE, 0x2CFF).addRange(0x2E00, 0x2E2E).addRange(0x2E30, 0x2E4F).addRange(0x2E52, 0x2E5D).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3014, 0x301F).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F2, 0xA6F7).addRange(0xA874, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA8F8, 0xA8FA).addRange(0xA92E, 0xA92F).addRange(0xA9C1, 0xA9CD).addRange(0xA9DE, 0xA9DF).addRange(0xAA5C, 0xAA5F).addRange(0xAADE, 0xAADF).addRange(0xAAF0, 0xAAF1).addRange(0xFD3E, 0xFD3F).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE61).addRange(0xFE6A, 0xFE6B).addRange(0xFF01, 0xFF03).addRange(0xFF05, 0xFF0A).addRange(0xFF0C, 0xFF0F).addRange(0xFF1A, 0xFF1B).addRange(0xFF1F, 0xFF20).addRange(0xFF3B, 0xFF3D).addRange(0xFF5F, 0xFF65).addRange(0x10100, 0x10102).addRange(0x10A50, 0x10A58).addRange(0x10AF0, 0x10AF6).addRange(0x10B39, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x11140, 0x11143).addRange(0x11174, 0x11175).addRange(0x111C5, 0x111C8).addRange(0x111DD, 0x111DF); +set.addRange(0x11238, 0x1123D).addRange(0x113D4, 0x113D5).addRange(0x113D7, 0x113D8).addRange(0x1144B, 0x1144F).addRange(0x1145A, 0x1145B).addRange(0x115C1, 0x115D7).addRange(0x11641, 0x11643).addRange(0x11660, 0x1166C).addRange(0x1173C, 0x1173E).addRange(0x11944, 0x11946).addRange(0x11A3F, 0x11A46).addRange(0x11A9A, 0x11A9C).addRange(0x11A9E, 0x11AA2).addRange(0x11B00, 0x11B09).addRange(0x11C41, 0x11C45).addRange(0x11C70, 0x11C71).addRange(0x11EF7, 0x11EF8).addRange(0x11F43, 0x11F4F).addRange(0x12470, 0x12474).addRange(0x12FF1, 0x12FF2).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B3B).addRange(0x16D6D, 0x16D6F).addRange(0x16E97, 0x16E9A).addRange(0x1DA87, 0x1DA8B).addRange(0x1E95E, 0x1E95F); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Spacing_Mark.js b/node_modules/regenerate-unicode-properties/General_Category/Spacing_Mark.js index eed425f..e9f609d 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Spacing_Mark.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Spacing_Mark.js @@ -1,5 +1,5 @@ -const set = require('regenerate')(0x903, 0x93B, 0x9D7, 0xA03, 0xA83, 0xAC9, 0xB3E, 0xB40, 0xB57, 0xBD7, 0xCBE, 0xCF3, 0xD57, 0xF7F, 0x1031, 0x1038, 0x108F, 0x1715, 0x1734, 0x17B6, 0x1A55, 0x1A57, 0x1A61, 0x1B04, 0x1B35, 0x1B3B, 0x1B82, 0x1BA1, 0x1BAA, 0x1BE7, 0x1BEE, 0x1CE1, 0x1CF7, 0xA827, 0xA983, 0xAA4D, 0xAA7B, 0xAA7D, 0xAAEB, 0xAAF5, 0xABEC, 0x11000, 0x11002, 0x11082, 0x1112C, 0x11182, 0x111CE, 0x11235, 0x11357, 0x11445, 0x114B9, 0x114C1, 0x115BE, 0x1163E, 0x116AC, 0x116B6, 0x11726, 0x11838, 0x1193D, 0x11940, 0x11942, 0x119E4, 0x11A39, 0x11A97, 0x11C2F, 0x11C3E, 0x11CA9, 0x11CB1, 0x11CB4, 0x11D96, 0x11F03, 0x11F41); +const set = require('regenerate')(0x903, 0x93B, 0x9D7, 0xA03, 0xA83, 0xAC9, 0xB3E, 0xB40, 0xB57, 0xBD7, 0xCBE, 0xCF3, 0xD57, 0xF7F, 0x1031, 0x1038, 0x108F, 0x1715, 0x1734, 0x17B6, 0x1A55, 0x1A57, 0x1A61, 0x1B04, 0x1B35, 0x1B3B, 0x1B82, 0x1BA1, 0x1BAA, 0x1BE7, 0x1BEE, 0x1CE1, 0x1CF7, 0xA827, 0xA983, 0xAA4D, 0xAA7B, 0xAA7D, 0xAAEB, 0xAAF5, 0xABEC, 0x11000, 0x11002, 0x11082, 0x1112C, 0x11182, 0x111CE, 0x11235, 0x11357, 0x113C2, 0x113C5, 0x113CF, 0x11445, 0x114B9, 0x114C1, 0x115BE, 0x1163E, 0x116AC, 0x116B6, 0x1171E, 0x11726, 0x11838, 0x1193D, 0x11940, 0x11942, 0x119E4, 0x11A39, 0x11A97, 0x11C2F, 0x11C3E, 0x11CA9, 0x11CB1, 0x11CB4, 0x11D96, 0x11F03, 0x11F41); set.addRange(0x93E, 0x940).addRange(0x949, 0x94C).addRange(0x94E, 0x94F).addRange(0x982, 0x983).addRange(0x9BE, 0x9C0).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CC).addRange(0xA3E, 0xA40).addRange(0xABE, 0xAC0).addRange(0xACB, 0xACC).addRange(0xB02, 0xB03).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4C).addRange(0xBBE, 0xBBF).addRange(0xBC1, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCC).addRange(0xC01, 0xC03).addRange(0xC41, 0xC44).addRange(0xC82, 0xC83).addRange(0xCC0, 0xCC4).addRange(0xCC7, 0xCC8).addRange(0xCCA, 0xCCB).addRange(0xCD5, 0xCD6).addRange(0xD02, 0xD03).addRange(0xD3E, 0xD40).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD82, 0xD83).addRange(0xDCF, 0xDD1).addRange(0xDD8, 0xDDF).addRange(0xDF2, 0xDF3).addRange(0xF3E, 0xF3F).addRange(0x102B, 0x102C).addRange(0x103B, 0x103C).addRange(0x1056, 0x1057).addRange(0x1062, 0x1064).addRange(0x1067, 0x106D).addRange(0x1083, 0x1084).addRange(0x1087, 0x108C).addRange(0x109A, 0x109C).addRange(0x17BE, 0x17C5).addRange(0x17C7, 0x17C8).addRange(0x1923, 0x1926).addRange(0x1929, 0x192B).addRange(0x1930, 0x1931).addRange(0x1933, 0x1938).addRange(0x1A19, 0x1A1A).addRange(0x1A63, 0x1A64).addRange(0x1A6D, 0x1A72).addRange(0x1B3D, 0x1B41); -set.addRange(0x1B43, 0x1B44).addRange(0x1BA6, 0x1BA7).addRange(0x1BEA, 0x1BEC).addRange(0x1BF2, 0x1BF3).addRange(0x1C24, 0x1C2B).addRange(0x1C34, 0x1C35).addRange(0x302E, 0x302F).addRange(0xA823, 0xA824).addRange(0xA880, 0xA881).addRange(0xA8B4, 0xA8C3).addRange(0xA952, 0xA953).addRange(0xA9B4, 0xA9B5).addRange(0xA9BA, 0xA9BB).addRange(0xA9BE, 0xA9C0).addRange(0xAA2F, 0xAA30).addRange(0xAA33, 0xAA34).addRange(0xAAEE, 0xAAEF).addRange(0xABE3, 0xABE4).addRange(0xABE6, 0xABE7).addRange(0xABE9, 0xABEA).addRange(0x110B0, 0x110B2).addRange(0x110B7, 0x110B8).addRange(0x11145, 0x11146).addRange(0x111B3, 0x111B5).addRange(0x111BF, 0x111C0).addRange(0x1122C, 0x1122E).addRange(0x11232, 0x11233).addRange(0x112E0, 0x112E2).addRange(0x11302, 0x11303).addRange(0x1133E, 0x1133F).addRange(0x11341, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x11362, 0x11363).addRange(0x11435, 0x11437).addRange(0x11440, 0x11441).addRange(0x114B0, 0x114B2).addRange(0x114BB, 0x114BE).addRange(0x115AF, 0x115B1).addRange(0x115B8, 0x115BB).addRange(0x11630, 0x11632).addRange(0x1163B, 0x1163C).addRange(0x116AE, 0x116AF).addRange(0x11720, 0x11721).addRange(0x1182C, 0x1182E).addRange(0x11930, 0x11935).addRange(0x11937, 0x11938).addRange(0x119D1, 0x119D3).addRange(0x119DC, 0x119DF).addRange(0x11A57, 0x11A58).addRange(0x11D8A, 0x11D8E); -set.addRange(0x11D93, 0x11D94).addRange(0x11EF5, 0x11EF6).addRange(0x11F34, 0x11F35).addRange(0x11F3E, 0x11F3F).addRange(0x16F51, 0x16F87).addRange(0x16FF0, 0x16FF1).addRange(0x1D165, 0x1D166).addRange(0x1D16D, 0x1D172); +set.addRange(0x1B43, 0x1B44).addRange(0x1BA6, 0x1BA7).addRange(0x1BEA, 0x1BEC).addRange(0x1BF2, 0x1BF3).addRange(0x1C24, 0x1C2B).addRange(0x1C34, 0x1C35).addRange(0x302E, 0x302F).addRange(0xA823, 0xA824).addRange(0xA880, 0xA881).addRange(0xA8B4, 0xA8C3).addRange(0xA952, 0xA953).addRange(0xA9B4, 0xA9B5).addRange(0xA9BA, 0xA9BB).addRange(0xA9BE, 0xA9C0).addRange(0xAA2F, 0xAA30).addRange(0xAA33, 0xAA34).addRange(0xAAEE, 0xAAEF).addRange(0xABE3, 0xABE4).addRange(0xABE6, 0xABE7).addRange(0xABE9, 0xABEA).addRange(0x110B0, 0x110B2).addRange(0x110B7, 0x110B8).addRange(0x11145, 0x11146).addRange(0x111B3, 0x111B5).addRange(0x111BF, 0x111C0).addRange(0x1122C, 0x1122E).addRange(0x11232, 0x11233).addRange(0x112E0, 0x112E2).addRange(0x11302, 0x11303).addRange(0x1133E, 0x1133F).addRange(0x11341, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x11362, 0x11363).addRange(0x113B8, 0x113BA).addRange(0x113C7, 0x113CA).addRange(0x113CC, 0x113CD).addRange(0x11435, 0x11437).addRange(0x11440, 0x11441).addRange(0x114B0, 0x114B2).addRange(0x114BB, 0x114BE).addRange(0x115AF, 0x115B1).addRange(0x115B8, 0x115BB).addRange(0x11630, 0x11632).addRange(0x1163B, 0x1163C).addRange(0x116AE, 0x116AF).addRange(0x11720, 0x11721).addRange(0x1182C, 0x1182E).addRange(0x11930, 0x11935).addRange(0x11937, 0x11938).addRange(0x119D1, 0x119D3); +set.addRange(0x119DC, 0x119DF).addRange(0x11A57, 0x11A58).addRange(0x11D8A, 0x11D8E).addRange(0x11D93, 0x11D94).addRange(0x11EF5, 0x11EF6).addRange(0x11F34, 0x11F35).addRange(0x11F3E, 0x11F3F).addRange(0x1612A, 0x1612C).addRange(0x16F51, 0x16F87).addRange(0x16FF0, 0x16FF1).addRange(0x1D165, 0x1D166).addRange(0x1D16D, 0x1D172); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Symbol.js b/node_modules/regenerate-unicode-properties/General_Category/Symbol.js index 341d9f7..5402e3a 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Symbol.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Symbol.js @@ -1,6 +1,6 @@ const set = require('regenerate')(0x24, 0x2B, 0x5E, 0x60, 0x7C, 0x7E, 0xAC, 0xB4, 0xB8, 0xD7, 0xF7, 0x2ED, 0x375, 0x3F6, 0x482, 0x60B, 0x6DE, 0x6E9, 0x7F6, 0x888, 0xAF1, 0xB70, 0xC7F, 0xD4F, 0xD79, 0xE3F, 0xF13, 0xF34, 0xF36, 0xF38, 0x166D, 0x17DB, 0x1940, 0x1FBD, 0x2044, 0x2052, 0x2114, 0x2125, 0x2127, 0x2129, 0x212E, 0x214F, 0x3004, 0x3020, 0x31EF, 0x3250, 0xAB5B, 0xFB29, 0xFDCF, 0xFE62, 0xFE69, 0xFF04, 0xFF0B, 0xFF3E, 0xFF40, 0xFF5C, 0xFF5E, 0x101A0, 0x10AC8, 0x1173F, 0x16B45, 0x1BC9C, 0x1D245, 0x1D6C1, 0x1D6DB, 0x1D6FB, 0x1D715, 0x1D735, 0x1D74F, 0x1D76F, 0x1D789, 0x1D7A9, 0x1D7C3, 0x1E14F, 0x1E2FF, 0x1ECAC, 0x1ECB0, 0x1ED2E, 0x1F7F0); -set.addRange(0x3C, 0x3E).addRange(0xA2, 0xA6).addRange(0xA8, 0xA9).addRange(0xAE, 0xB1).addRange(0x2C2, 0x2C5).addRange(0x2D2, 0x2DF).addRange(0x2E5, 0x2EB).addRange(0x2EF, 0x2FF).addRange(0x384, 0x385).addRange(0x58D, 0x58F).addRange(0x606, 0x608).addRange(0x60E, 0x60F).addRange(0x6FD, 0x6FE).addRange(0x7FE, 0x7FF).addRange(0x9F2, 0x9F3).addRange(0x9FA, 0x9FB).addRange(0xBF3, 0xBFA).addRange(0xF01, 0xF03).addRange(0xF15, 0xF17).addRange(0xF1A, 0xF1F).addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFCF).addRange(0xFD5, 0xFD8).addRange(0x109E, 0x109F).addRange(0x1390, 0x1399).addRange(0x19DE, 0x19FF).addRange(0x1B61, 0x1B6A).addRange(0x1B74, 0x1B7C).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x207A, 0x207C).addRange(0x208A, 0x208C).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2101).addRange(0x2103, 0x2106).addRange(0x2108, 0x2109).addRange(0x2116, 0x2118).addRange(0x211E, 0x2123).addRange(0x213A, 0x213B).addRange(0x2140, 0x2144).addRange(0x214A, 0x214D).addRange(0x218A, 0x218B).addRange(0x2190, 0x2307).addRange(0x230C, 0x2328).addRange(0x232B, 0x2426).addRange(0x2440, 0x244A).addRange(0x249C, 0x24E9); -set.addRange(0x2500, 0x2767).addRange(0x2794, 0x27C4).addRange(0x27C7, 0x27E5).addRange(0x27F0, 0x2982).addRange(0x2999, 0x29D7).addRange(0x29DC, 0x29FB).addRange(0x29FE, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2CE5, 0x2CEA).addRange(0x2E50, 0x2E51).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFF).addRange(0x3012, 0x3013).addRange(0x3036, 0x3037).addRange(0x303E, 0x303F).addRange(0x309B, 0x309C).addRange(0x3190, 0x3191).addRange(0x3196, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3200, 0x321E).addRange(0x322A, 0x3247).addRange(0x3260, 0x327F).addRange(0x328A, 0x32B0).addRange(0x32C0, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA490, 0xA4C6).addRange(0xA700, 0xA716).addRange(0xA720, 0xA721).addRange(0xA789, 0xA78A).addRange(0xA828, 0xA82B).addRange(0xA836, 0xA839).addRange(0xAA77, 0xAA79).addRange(0xAB6A, 0xAB6B).addRange(0xFBB2, 0xFBC2).addRange(0xFD40, 0xFD4F).addRange(0xFDFC, 0xFDFF).addRange(0xFE64, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10137, 0x1013F).addRange(0x10179, 0x10189).addRange(0x1018C, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10877, 0x10878).addRange(0x11FD5, 0x11FF1); -set.addRange(0x16B3C, 0x16B3F).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16C).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D300, 0x1D356).addRange(0x1D800, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83).addRange(0x1DA85, 0x1DA86).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F10D, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92); -set.addRange(0x1FB94, 0x1FBCA); +set.addRange(0x3C, 0x3E).addRange(0xA2, 0xA6).addRange(0xA8, 0xA9).addRange(0xAE, 0xB1).addRange(0x2C2, 0x2C5).addRange(0x2D2, 0x2DF).addRange(0x2E5, 0x2EB).addRange(0x2EF, 0x2FF).addRange(0x384, 0x385).addRange(0x58D, 0x58F).addRange(0x606, 0x608).addRange(0x60E, 0x60F).addRange(0x6FD, 0x6FE).addRange(0x7FE, 0x7FF).addRange(0x9F2, 0x9F3).addRange(0x9FA, 0x9FB).addRange(0xBF3, 0xBFA).addRange(0xF01, 0xF03).addRange(0xF15, 0xF17).addRange(0xF1A, 0xF1F).addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFCF).addRange(0xFD5, 0xFD8).addRange(0x109E, 0x109F).addRange(0x1390, 0x1399).addRange(0x19DE, 0x19FF).addRange(0x1B61, 0x1B6A).addRange(0x1B74, 0x1B7C).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x207A, 0x207C).addRange(0x208A, 0x208C).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2101).addRange(0x2103, 0x2106).addRange(0x2108, 0x2109).addRange(0x2116, 0x2118).addRange(0x211E, 0x2123).addRange(0x213A, 0x213B).addRange(0x2140, 0x2144).addRange(0x214A, 0x214D).addRange(0x218A, 0x218B).addRange(0x2190, 0x2307).addRange(0x230C, 0x2328).addRange(0x232B, 0x2429).addRange(0x2440, 0x244A).addRange(0x249C, 0x24E9); +set.addRange(0x2500, 0x2767).addRange(0x2794, 0x27C4).addRange(0x27C7, 0x27E5).addRange(0x27F0, 0x2982).addRange(0x2999, 0x29D7).addRange(0x29DC, 0x29FB).addRange(0x29FE, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2CE5, 0x2CEA).addRange(0x2E50, 0x2E51).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFF).addRange(0x3012, 0x3013).addRange(0x3036, 0x3037).addRange(0x303E, 0x303F).addRange(0x309B, 0x309C).addRange(0x3190, 0x3191).addRange(0x3196, 0x319F).addRange(0x31C0, 0x31E5).addRange(0x3200, 0x321E).addRange(0x322A, 0x3247).addRange(0x3260, 0x327F).addRange(0x328A, 0x32B0).addRange(0x32C0, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA490, 0xA4C6).addRange(0xA700, 0xA716).addRange(0xA720, 0xA721).addRange(0xA789, 0xA78A).addRange(0xA828, 0xA82B).addRange(0xA836, 0xA839).addRange(0xAA77, 0xAA79).addRange(0xAB6A, 0xAB6B).addRange(0xFBB2, 0xFBC2).addRange(0xFD40, 0xFD4F).addRange(0xFDFC, 0xFDFF).addRange(0xFE64, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10137, 0x1013F).addRange(0x10179, 0x10189).addRange(0x1018C, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10877, 0x10878).addRange(0x10D8E, 0x10D8F); +set.addRange(0x11FD5, 0x11FF1).addRange(0x16B3C, 0x16B3F).addRange(0x1CC00, 0x1CCEF).addRange(0x1CD00, 0x1CEB3).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16C).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D300, 0x1D356).addRange(0x1D800, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83).addRange(0x1DA85, 0x1DA86).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F10D, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8BB).addRange(0x1F8C0, 0x1F8C1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA89).addRange(0x1FA8F, 0x1FAC6).addRange(0x1FACE, 0x1FADC); +set.addRange(0x1FADF, 0x1FAE9).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBEF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Unassigned.js b/node_modules/regenerate-unicode-properties/General_Category/Unassigned.js index 380f399..5a7f62b 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Unassigned.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Unassigned.js @@ -1,12 +1,12 @@ -const set = require('regenerate')(0x38B, 0x38D, 0x3A2, 0x530, 0x590, 0x70E, 0x83F, 0x85F, 0x88F, 0x984, 0x9A9, 0x9B1, 0x9DE, 0xA04, 0xA29, 0xA31, 0xA34, 0xA37, 0xA3D, 0xA5D, 0xA84, 0xA8E, 0xA92, 0xAA9, 0xAB1, 0xAB4, 0xAC6, 0xACA, 0xB00, 0xB04, 0xB29, 0xB31, 0xB34, 0xB5E, 0xB84, 0xB91, 0xB9B, 0xB9D, 0xBC9, 0xC0D, 0xC11, 0xC29, 0xC45, 0xC49, 0xC57, 0xC8D, 0xC91, 0xCA9, 0xCB4, 0xCC5, 0xCC9, 0xCDF, 0xCF0, 0xD0D, 0xD11, 0xD45, 0xD49, 0xD80, 0xD84, 0xDB2, 0xDBC, 0xDD5, 0xDD7, 0xE83, 0xE85, 0xE8B, 0xEA4, 0xEA6, 0xEC5, 0xEC7, 0xECF, 0xF48, 0xF98, 0xFBD, 0xFCD, 0x10C6, 0x1249, 0x1257, 0x1259, 0x1289, 0x12B1, 0x12BF, 0x12C1, 0x12D7, 0x1311, 0x176D, 0x1771, 0x191F, 0x1A5F, 0x1B7F, 0x1F58, 0x1F5A, 0x1F5C, 0x1F5E, 0x1FB5, 0x1FC5, 0x1FDC, 0x1FF5, 0x1FFF, 0x2065, 0x208F, 0x2B96, 0x2D26, 0x2DA7, 0x2DAF, 0x2DB7, 0x2DBF, 0x2DC7, 0x2DCF, 0x2DD7, 0x2DDF, 0x2E9A, 0x3040, 0x3130, 0x318F, 0x321F, 0xA7D2, 0xA7D4, 0xA9CE, 0xA9FF, 0xAB27, 0xAB2F, 0xFB37, 0xFB3D, 0xFB3F, 0xFB42, 0xFB45, 0xFE53, 0xFE67, 0xFE75, 0xFF00, 0xFFE7, 0x1000C, 0x10027, 0x1003B, 0x1003E, 0x1018F, 0x1039E, 0x1057B, 0x1058B, 0x10593, 0x10596, 0x105A2, 0x105B2, 0x105BA, 0x10786, 0x107B1, 0x10809, 0x10836, 0x10856, 0x108F3, 0x10A04, 0x10A14, 0x10A18, 0x10E7F, 0x10EAA, 0x11135, 0x111E0, 0x11212, 0x11287, 0x11289, 0x1128E, 0x1129E, 0x11304, 0x11329, 0x11331, 0x11334, 0x1133A, 0x1145C, 0x11914, 0x11917, 0x11936, 0x11C09, 0x11C37, 0x11CA8, 0x11D07, 0x11D0A, 0x11D3B, 0x11D3E, 0x11D66, 0x11D69, 0x11D8F, 0x11D92, 0x11F11, 0x1246F, 0x16A5F, 0x16ABF, 0x16B5A, 0x16B62, 0x1AFF4, 0x1AFFC, 0x1AFFF, 0x1D455, 0x1D49D, 0x1D4AD, 0x1D4BA, 0x1D4BC, 0x1D4C4, 0x1D506, 0x1D515, 0x1D51D, 0x1D53A, 0x1D53F, 0x1D545, 0x1D551, 0x1DAA0, 0x1E007, 0x1E022, 0x1E025, 0x1E7E7, 0x1E7EC, 0x1E7EF, 0x1E7FF, 0x1EE04, 0x1EE20, 0x1EE23, 0x1EE28, 0x1EE33, 0x1EE38, 0x1EE3A, 0x1EE48, 0x1EE4A, 0x1EE4C, 0x1EE50, 0x1EE53, 0x1EE58, 0x1EE5A, 0x1EE5C, 0x1EE5E, 0x1EE60, 0x1EE63, 0x1EE6B, 0x1EE73, 0x1EE78, 0x1EE7D, 0x1EE7F, 0x1EE8A, 0x1EEA4, 0x1EEAA, 0x1F0C0, 0x1F0D0, 0x1FABE, 0x1FB93); -set.addRange(0x378, 0x379).addRange(0x380, 0x383).addRange(0x557, 0x558).addRange(0x58B, 0x58C).addRange(0x5C8, 0x5CF).addRange(0x5EB, 0x5EE).addRange(0x5F5, 0x5FF).addRange(0x74B, 0x74C).addRange(0x7B2, 0x7BF).addRange(0x7FB, 0x7FC).addRange(0x82E, 0x82F).addRange(0x85C, 0x85D).addRange(0x86B, 0x86F).addRange(0x892, 0x897).addRange(0x98D, 0x98E).addRange(0x991, 0x992).addRange(0x9B3, 0x9B5).addRange(0x9BA, 0x9BB).addRange(0x9C5, 0x9C6).addRange(0x9C9, 0x9CA).addRange(0x9CF, 0x9D6).addRange(0x9D8, 0x9DB).addRange(0x9E4, 0x9E5).addRange(0x9FF, 0xA00).addRange(0xA0B, 0xA0E).addRange(0xA11, 0xA12).addRange(0xA3A, 0xA3B).addRange(0xA43, 0xA46).addRange(0xA49, 0xA4A).addRange(0xA4E, 0xA50).addRange(0xA52, 0xA58).addRange(0xA5F, 0xA65).addRange(0xA77, 0xA80).addRange(0xABA, 0xABB).addRange(0xACE, 0xACF).addRange(0xAD1, 0xADF).addRange(0xAE4, 0xAE5).addRange(0xAF2, 0xAF8).addRange(0xB0D, 0xB0E).addRange(0xB11, 0xB12).addRange(0xB3A, 0xB3B).addRange(0xB45, 0xB46).addRange(0xB49, 0xB4A).addRange(0xB4E, 0xB54).addRange(0xB58, 0xB5B).addRange(0xB64, 0xB65).addRange(0xB78, 0xB81).addRange(0xB8B, 0xB8D).addRange(0xB96, 0xB98).addRange(0xBA0, 0xBA2).addRange(0xBA5, 0xBA7); +const set = require('regenerate')(0x38B, 0x38D, 0x3A2, 0x530, 0x590, 0x70E, 0x83F, 0x85F, 0x88F, 0x984, 0x9A9, 0x9B1, 0x9DE, 0xA04, 0xA29, 0xA31, 0xA34, 0xA37, 0xA3D, 0xA5D, 0xA84, 0xA8E, 0xA92, 0xAA9, 0xAB1, 0xAB4, 0xAC6, 0xACA, 0xB00, 0xB04, 0xB29, 0xB31, 0xB34, 0xB5E, 0xB84, 0xB91, 0xB9B, 0xB9D, 0xBC9, 0xC0D, 0xC11, 0xC29, 0xC45, 0xC49, 0xC57, 0xC8D, 0xC91, 0xCA9, 0xCB4, 0xCC5, 0xCC9, 0xCDF, 0xCF0, 0xD0D, 0xD11, 0xD45, 0xD49, 0xD80, 0xD84, 0xDB2, 0xDBC, 0xDD5, 0xDD7, 0xE83, 0xE85, 0xE8B, 0xEA4, 0xEA6, 0xEC5, 0xEC7, 0xECF, 0xF48, 0xF98, 0xFBD, 0xFCD, 0x10C6, 0x1249, 0x1257, 0x1259, 0x1289, 0x12B1, 0x12BF, 0x12C1, 0x12D7, 0x1311, 0x176D, 0x1771, 0x191F, 0x1A5F, 0x1B4D, 0x1F58, 0x1F5A, 0x1F5C, 0x1F5E, 0x1FB5, 0x1FC5, 0x1FDC, 0x1FF5, 0x1FFF, 0x2065, 0x208F, 0x2B96, 0x2D26, 0x2DA7, 0x2DAF, 0x2DB7, 0x2DBF, 0x2DC7, 0x2DCF, 0x2DD7, 0x2DDF, 0x2E9A, 0x3040, 0x3130, 0x318F, 0x321F, 0xA7D2, 0xA7D4, 0xA9CE, 0xA9FF, 0xAB27, 0xAB2F, 0xFB37, 0xFB3D, 0xFB3F, 0xFB42, 0xFB45, 0xFE53, 0xFE67, 0xFE75, 0xFF00, 0xFFE7, 0x1000C, 0x10027, 0x1003B, 0x1003E, 0x1018F, 0x1039E, 0x1057B, 0x1058B, 0x10593, 0x10596, 0x105A2, 0x105B2, 0x105BA, 0x10786, 0x107B1, 0x10809, 0x10836, 0x10856, 0x108F3, 0x10A04, 0x10A14, 0x10A18, 0x10E7F, 0x10EAA, 0x11135, 0x111E0, 0x11212, 0x11287, 0x11289, 0x1128E, 0x1129E, 0x11304, 0x11329, 0x11331, 0x11334, 0x1133A, 0x1138A, 0x1138F, 0x113B6, 0x113C1, 0x113C6, 0x113CB, 0x113D6, 0x1145C, 0x11914, 0x11917, 0x11936, 0x11C09, 0x11C37, 0x11CA8, 0x11D07, 0x11D0A, 0x11D3B, 0x11D3E, 0x11D66, 0x11D69, 0x11D8F, 0x11D92, 0x11F11, 0x1246F, 0x16A5F, 0x16ABF, 0x16B5A, 0x16B62, 0x1AFF4, 0x1AFFC, 0x1AFFF, 0x1D455, 0x1D49D, 0x1D4AD, 0x1D4BA, 0x1D4BC, 0x1D4C4, 0x1D506, 0x1D515, 0x1D51D, 0x1D53A, 0x1D53F, 0x1D545, 0x1D551, 0x1DAA0, 0x1E007, 0x1E022, 0x1E025, 0x1E7E7, 0x1E7EC, 0x1E7EF, 0x1E7FF, 0x1EE04, 0x1EE20, 0x1EE23, 0x1EE28, 0x1EE33, 0x1EE38, 0x1EE3A, 0x1EE48, 0x1EE4A, 0x1EE4C, 0x1EE50, 0x1EE53, 0x1EE58, 0x1EE5A, 0x1EE5C, 0x1EE5E, 0x1EE60, 0x1EE63, 0x1EE6B, 0x1EE73, 0x1EE78, 0x1EE7D, 0x1EE7F, 0x1EE8A, 0x1EEA4, 0x1EEAA, 0x1F0C0, 0x1F0D0, 0x1FB93); +set.addRange(0x378, 0x379).addRange(0x380, 0x383).addRange(0x557, 0x558).addRange(0x58B, 0x58C).addRange(0x5C8, 0x5CF).addRange(0x5EB, 0x5EE).addRange(0x5F5, 0x5FF).addRange(0x74B, 0x74C).addRange(0x7B2, 0x7BF).addRange(0x7FB, 0x7FC).addRange(0x82E, 0x82F).addRange(0x85C, 0x85D).addRange(0x86B, 0x86F).addRange(0x892, 0x896).addRange(0x98D, 0x98E).addRange(0x991, 0x992).addRange(0x9B3, 0x9B5).addRange(0x9BA, 0x9BB).addRange(0x9C5, 0x9C6).addRange(0x9C9, 0x9CA).addRange(0x9CF, 0x9D6).addRange(0x9D8, 0x9DB).addRange(0x9E4, 0x9E5).addRange(0x9FF, 0xA00).addRange(0xA0B, 0xA0E).addRange(0xA11, 0xA12).addRange(0xA3A, 0xA3B).addRange(0xA43, 0xA46).addRange(0xA49, 0xA4A).addRange(0xA4E, 0xA50).addRange(0xA52, 0xA58).addRange(0xA5F, 0xA65).addRange(0xA77, 0xA80).addRange(0xABA, 0xABB).addRange(0xACE, 0xACF).addRange(0xAD1, 0xADF).addRange(0xAE4, 0xAE5).addRange(0xAF2, 0xAF8).addRange(0xB0D, 0xB0E).addRange(0xB11, 0xB12).addRange(0xB3A, 0xB3B).addRange(0xB45, 0xB46).addRange(0xB49, 0xB4A).addRange(0xB4E, 0xB54).addRange(0xB58, 0xB5B).addRange(0xB64, 0xB65).addRange(0xB78, 0xB81).addRange(0xB8B, 0xB8D).addRange(0xB96, 0xB98).addRange(0xBA0, 0xBA2).addRange(0xBA5, 0xBA7); set.addRange(0xBAB, 0xBAD).addRange(0xBBA, 0xBBD).addRange(0xBC3, 0xBC5).addRange(0xBCE, 0xBCF).addRange(0xBD1, 0xBD6).addRange(0xBD8, 0xBE5).addRange(0xBFB, 0xBFF).addRange(0xC3A, 0xC3B).addRange(0xC4E, 0xC54).addRange(0xC5B, 0xC5C).addRange(0xC5E, 0xC5F).addRange(0xC64, 0xC65).addRange(0xC70, 0xC76).addRange(0xCBA, 0xCBB).addRange(0xCCE, 0xCD4).addRange(0xCD7, 0xCDC).addRange(0xCE4, 0xCE5).addRange(0xCF4, 0xCFF).addRange(0xD50, 0xD53).addRange(0xD64, 0xD65).addRange(0xD97, 0xD99).addRange(0xDBE, 0xDBF).addRange(0xDC7, 0xDC9).addRange(0xDCB, 0xDCE).addRange(0xDE0, 0xDE5).addRange(0xDF0, 0xDF1).addRange(0xDF5, 0xE00).addRange(0xE3B, 0xE3E).addRange(0xE5C, 0xE80).addRange(0xEBE, 0xEBF).addRange(0xEDA, 0xEDB).addRange(0xEE0, 0xEFF).addRange(0xF6D, 0xF70).addRange(0xFDB, 0xFFF).addRange(0x10C8, 0x10CC).addRange(0x10CE, 0x10CF).addRange(0x124E, 0x124F).addRange(0x125E, 0x125F).addRange(0x128E, 0x128F).addRange(0x12B6, 0x12B7).addRange(0x12C6, 0x12C7).addRange(0x1316, 0x1317).addRange(0x135B, 0x135C).addRange(0x137D, 0x137F).addRange(0x139A, 0x139F).addRange(0x13F6, 0x13F7).addRange(0x13FE, 0x13FF).addRange(0x169D, 0x169F).addRange(0x16F9, 0x16FF).addRange(0x1716, 0x171E).addRange(0x1737, 0x173F); -set.addRange(0x1754, 0x175F).addRange(0x1774, 0x177F).addRange(0x17DE, 0x17DF).addRange(0x17EA, 0x17EF).addRange(0x17FA, 0x17FF).addRange(0x181A, 0x181F).addRange(0x1879, 0x187F).addRange(0x18AB, 0x18AF).addRange(0x18F6, 0x18FF).addRange(0x192C, 0x192F).addRange(0x193C, 0x193F).addRange(0x1941, 0x1943).addRange(0x196E, 0x196F).addRange(0x1975, 0x197F).addRange(0x19AC, 0x19AF).addRange(0x19CA, 0x19CF).addRange(0x19DB, 0x19DD).addRange(0x1A1C, 0x1A1D).addRange(0x1A7D, 0x1A7E).addRange(0x1A8A, 0x1A8F).addRange(0x1A9A, 0x1A9F).addRange(0x1AAE, 0x1AAF).addRange(0x1ACF, 0x1AFF).addRange(0x1B4D, 0x1B4F).addRange(0x1BF4, 0x1BFB).addRange(0x1C38, 0x1C3A).addRange(0x1C4A, 0x1C4C).addRange(0x1C89, 0x1C8F).addRange(0x1CBB, 0x1CBC).addRange(0x1CC8, 0x1CCF).addRange(0x1CFB, 0x1CFF).addRange(0x1F16, 0x1F17).addRange(0x1F1E, 0x1F1F).addRange(0x1F46, 0x1F47).addRange(0x1F4E, 0x1F4F).addRange(0x1F7E, 0x1F7F).addRange(0x1FD4, 0x1FD5).addRange(0x1FF0, 0x1FF1).addRange(0x2072, 0x2073).addRange(0x209D, 0x209F).addRange(0x20C1, 0x20CF).addRange(0x20F1, 0x20FF).addRange(0x218C, 0x218F).addRange(0x2427, 0x243F).addRange(0x244B, 0x245F).addRange(0x2B74, 0x2B75).addRange(0x2CF4, 0x2CF8).addRange(0x2D28, 0x2D2C).addRange(0x2D2E, 0x2D2F).addRange(0x2D68, 0x2D6E).addRange(0x2D71, 0x2D7E); -set.addRange(0x2D97, 0x2D9F).addRange(0x2E5E, 0x2E7F).addRange(0x2EF4, 0x2EFF).addRange(0x2FD6, 0x2FEF).addRange(0x3097, 0x3098).addRange(0x3100, 0x3104).addRange(0x31E4, 0x31EE).addRange(0xA48D, 0xA48F).addRange(0xA4C7, 0xA4CF).addRange(0xA62C, 0xA63F).addRange(0xA6F8, 0xA6FF).addRange(0xA7CB, 0xA7CF).addRange(0xA7DA, 0xA7F1).addRange(0xA82D, 0xA82F).addRange(0xA83A, 0xA83F).addRange(0xA878, 0xA87F).addRange(0xA8C6, 0xA8CD).addRange(0xA8DA, 0xA8DF).addRange(0xA954, 0xA95E).addRange(0xA97D, 0xA97F).addRange(0xA9DA, 0xA9DD).addRange(0xAA37, 0xAA3F).addRange(0xAA4E, 0xAA4F).addRange(0xAA5A, 0xAA5B).addRange(0xAAC3, 0xAADA).addRange(0xAAF7, 0xAB00).addRange(0xAB07, 0xAB08).addRange(0xAB0F, 0xAB10).addRange(0xAB17, 0xAB1F).addRange(0xAB6C, 0xAB6F).addRange(0xABEE, 0xABEF).addRange(0xABFA, 0xABFF).addRange(0xD7A4, 0xD7AF).addRange(0xD7C7, 0xD7CA).addRange(0xD7FC, 0xD7FF).addRange(0xFA6E, 0xFA6F).addRange(0xFADA, 0xFAFF).addRange(0xFB07, 0xFB12).addRange(0xFB18, 0xFB1C).addRange(0xFBC3, 0xFBD2).addRange(0xFD90, 0xFD91).addRange(0xFDC8, 0xFDCE).addRange(0xFDD0, 0xFDEF).addRange(0xFE1A, 0xFE1F).addRange(0xFE6C, 0xFE6F).addRange(0xFEFD, 0xFEFE).addRange(0xFFBF, 0xFFC1).addRange(0xFFC8, 0xFFC9).addRange(0xFFD0, 0xFFD1).addRange(0xFFD8, 0xFFD9).addRange(0xFFDD, 0xFFDF); -set.addRange(0xFFEF, 0xFFF8).addRange(0xFFFE, 0xFFFF).addRange(0x1004E, 0x1004F).addRange(0x1005E, 0x1007F).addRange(0x100FB, 0x100FF).addRange(0x10103, 0x10106).addRange(0x10134, 0x10136).addRange(0x1019D, 0x1019F).addRange(0x101A1, 0x101CF).addRange(0x101FE, 0x1027F).addRange(0x1029D, 0x1029F).addRange(0x102D1, 0x102DF).addRange(0x102FC, 0x102FF).addRange(0x10324, 0x1032C).addRange(0x1034B, 0x1034F).addRange(0x1037B, 0x1037F).addRange(0x103C4, 0x103C7).addRange(0x103D6, 0x103FF).addRange(0x1049E, 0x1049F).addRange(0x104AA, 0x104AF).addRange(0x104D4, 0x104D7).addRange(0x104FC, 0x104FF).addRange(0x10528, 0x1052F).addRange(0x10564, 0x1056E).addRange(0x105BD, 0x105FF).addRange(0x10737, 0x1073F).addRange(0x10756, 0x1075F).addRange(0x10768, 0x1077F).addRange(0x107BB, 0x107FF).addRange(0x10806, 0x10807).addRange(0x10839, 0x1083B).addRange(0x1083D, 0x1083E).addRange(0x1089F, 0x108A6).addRange(0x108B0, 0x108DF).addRange(0x108F6, 0x108FA).addRange(0x1091C, 0x1091E).addRange(0x1093A, 0x1093E).addRange(0x10940, 0x1097F).addRange(0x109B8, 0x109BB).addRange(0x109D0, 0x109D1).addRange(0x10A07, 0x10A0B).addRange(0x10A36, 0x10A37).addRange(0x10A3B, 0x10A3E).addRange(0x10A49, 0x10A4F).addRange(0x10A59, 0x10A5F).addRange(0x10AA0, 0x10ABF).addRange(0x10AE7, 0x10AEA).addRange(0x10AF7, 0x10AFF).addRange(0x10B36, 0x10B38).addRange(0x10B56, 0x10B57).addRange(0x10B73, 0x10B77); -set.addRange(0x10B92, 0x10B98).addRange(0x10B9D, 0x10BA8).addRange(0x10BB0, 0x10BFF).addRange(0x10C49, 0x10C7F).addRange(0x10CB3, 0x10CBF).addRange(0x10CF3, 0x10CF9).addRange(0x10D28, 0x10D2F).addRange(0x10D3A, 0x10E5F).addRange(0x10EAE, 0x10EAF).addRange(0x10EB2, 0x10EFC).addRange(0x10F28, 0x10F2F).addRange(0x10F5A, 0x10F6F).addRange(0x10F8A, 0x10FAF).addRange(0x10FCC, 0x10FDF).addRange(0x10FF7, 0x10FFF).addRange(0x1104E, 0x11051).addRange(0x11076, 0x1107E).addRange(0x110C3, 0x110CC).addRange(0x110CE, 0x110CF).addRange(0x110E9, 0x110EF).addRange(0x110FA, 0x110FF).addRange(0x11148, 0x1114F).addRange(0x11177, 0x1117F).addRange(0x111F5, 0x111FF).addRange(0x11242, 0x1127F).addRange(0x112AA, 0x112AF).addRange(0x112EB, 0x112EF).addRange(0x112FA, 0x112FF).addRange(0x1130D, 0x1130E).addRange(0x11311, 0x11312).addRange(0x11345, 0x11346).addRange(0x11349, 0x1134A).addRange(0x1134E, 0x1134F).addRange(0x11351, 0x11356).addRange(0x11358, 0x1135C).addRange(0x11364, 0x11365).addRange(0x1136D, 0x1136F).addRange(0x11375, 0x113FF).addRange(0x11462, 0x1147F).addRange(0x114C8, 0x114CF).addRange(0x114DA, 0x1157F).addRange(0x115B6, 0x115B7).addRange(0x115DE, 0x115FF).addRange(0x11645, 0x1164F).addRange(0x1165A, 0x1165F).addRange(0x1166D, 0x1167F).addRange(0x116BA, 0x116BF).addRange(0x116CA, 0x116FF).addRange(0x1171B, 0x1171C).addRange(0x1172C, 0x1172F).addRange(0x11747, 0x117FF); -set.addRange(0x1183C, 0x1189F).addRange(0x118F3, 0x118FE).addRange(0x11907, 0x11908).addRange(0x1190A, 0x1190B).addRange(0x11939, 0x1193A).addRange(0x11947, 0x1194F).addRange(0x1195A, 0x1199F).addRange(0x119A8, 0x119A9).addRange(0x119D8, 0x119D9).addRange(0x119E5, 0x119FF).addRange(0x11A48, 0x11A4F).addRange(0x11AA3, 0x11AAF).addRange(0x11AF9, 0x11AFF).addRange(0x11B0A, 0x11BFF).addRange(0x11C46, 0x11C4F).addRange(0x11C6D, 0x11C6F).addRange(0x11C90, 0x11C91).addRange(0x11CB7, 0x11CFF).addRange(0x11D37, 0x11D39).addRange(0x11D48, 0x11D4F).addRange(0x11D5A, 0x11D5F).addRange(0x11D99, 0x11D9F).addRange(0x11DAA, 0x11EDF).addRange(0x11EF9, 0x11EFF).addRange(0x11F3B, 0x11F3D).addRange(0x11F5A, 0x11FAF).addRange(0x11FB1, 0x11FBF).addRange(0x11FF2, 0x11FFE).addRange(0x1239A, 0x123FF).addRange(0x12475, 0x1247F).addRange(0x12544, 0x12F8F).addRange(0x12FF3, 0x12FFF).addRange(0x13456, 0x143FF).addRange(0x14647, 0x167FF).addRange(0x16A39, 0x16A3F).addRange(0x16A6A, 0x16A6D).addRange(0x16ACA, 0x16ACF).addRange(0x16AEE, 0x16AEF).addRange(0x16AF6, 0x16AFF).addRange(0x16B46, 0x16B4F).addRange(0x16B78, 0x16B7C).addRange(0x16B90, 0x16E3F).addRange(0x16E9B, 0x16EFF).addRange(0x16F4B, 0x16F4E).addRange(0x16F88, 0x16F8E).addRange(0x16FA0, 0x16FDF).addRange(0x16FE5, 0x16FEF).addRange(0x16FF2, 0x16FFF).addRange(0x187F8, 0x187FF).addRange(0x18CD6, 0x18CFF).addRange(0x18D09, 0x1AFEF); -set.addRange(0x1B123, 0x1B131).addRange(0x1B133, 0x1B14F).addRange(0x1B153, 0x1B154).addRange(0x1B156, 0x1B163).addRange(0x1B168, 0x1B16F).addRange(0x1B2FC, 0x1BBFF).addRange(0x1BC6B, 0x1BC6F).addRange(0x1BC7D, 0x1BC7F).addRange(0x1BC89, 0x1BC8F).addRange(0x1BC9A, 0x1BC9B).addRange(0x1BCA4, 0x1CEFF).addRange(0x1CF2E, 0x1CF2F).addRange(0x1CF47, 0x1CF4F).addRange(0x1CFC4, 0x1CFFF).addRange(0x1D0F6, 0x1D0FF).addRange(0x1D127, 0x1D128).addRange(0x1D1EB, 0x1D1FF).addRange(0x1D246, 0x1D2BF).addRange(0x1D2D4, 0x1D2DF).addRange(0x1D2F4, 0x1D2FF).addRange(0x1D357, 0x1D35F).addRange(0x1D379, 0x1D3FF).addRange(0x1D4A0, 0x1D4A1).addRange(0x1D4A3, 0x1D4A4).addRange(0x1D4A7, 0x1D4A8).addRange(0x1D50B, 0x1D50C).addRange(0x1D547, 0x1D549).addRange(0x1D6A6, 0x1D6A7).addRange(0x1D7CC, 0x1D7CD).addRange(0x1DA8C, 0x1DA9A).addRange(0x1DAB0, 0x1DEFF).addRange(0x1DF1F, 0x1DF24).addRange(0x1DF2B, 0x1DFFF).addRange(0x1E019, 0x1E01A).addRange(0x1E02B, 0x1E02F).addRange(0x1E06E, 0x1E08E).addRange(0x1E090, 0x1E0FF).addRange(0x1E12D, 0x1E12F).addRange(0x1E13E, 0x1E13F).addRange(0x1E14A, 0x1E14D).addRange(0x1E150, 0x1E28F).addRange(0x1E2AF, 0x1E2BF).addRange(0x1E2FA, 0x1E2FE).addRange(0x1E300, 0x1E4CF).addRange(0x1E4FA, 0x1E7DF).addRange(0x1E8C5, 0x1E8C6).addRange(0x1E8D7, 0x1E8FF).addRange(0x1E94C, 0x1E94F).addRange(0x1E95A, 0x1E95D).addRange(0x1E960, 0x1EC70).addRange(0x1ECB5, 0x1ED00); -set.addRange(0x1ED3E, 0x1EDFF).addRange(0x1EE25, 0x1EE26).addRange(0x1EE3C, 0x1EE41).addRange(0x1EE43, 0x1EE46).addRange(0x1EE55, 0x1EE56).addRange(0x1EE65, 0x1EE66).addRange(0x1EE9C, 0x1EEA0).addRange(0x1EEBC, 0x1EEEF).addRange(0x1EEF2, 0x1EFFF).addRange(0x1F02C, 0x1F02F).addRange(0x1F094, 0x1F09F).addRange(0x1F0AF, 0x1F0B0).addRange(0x1F0F6, 0x1F0FF).addRange(0x1F1AE, 0x1F1E5).addRange(0x1F203, 0x1F20F).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F24F).addRange(0x1F252, 0x1F25F).addRange(0x1F266, 0x1F2FF).addRange(0x1F6D8, 0x1F6DB).addRange(0x1F6ED, 0x1F6EF).addRange(0x1F6FD, 0x1F6FF).addRange(0x1F777, 0x1F77A).addRange(0x1F7DA, 0x1F7DF).addRange(0x1F7EC, 0x1F7EF).addRange(0x1F7F1, 0x1F7FF).addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8AF).addRange(0x1F8B2, 0x1F8FF).addRange(0x1FA54, 0x1FA5F).addRange(0x1FA6E, 0x1FA6F).addRange(0x1FA7D, 0x1FA7F).addRange(0x1FA89, 0x1FA8F).addRange(0x1FAC6, 0x1FACD).addRange(0x1FADC, 0x1FADF).addRange(0x1FAE9, 0x1FAEF).addRange(0x1FAF9, 0x1FAFF).addRange(0x1FBCB, 0x1FBEF).addRange(0x1FBFA, 0x1FFFF).addRange(0x2A6E0, 0x2A6FF).addRange(0x2B73A, 0x2B73F).addRange(0x2B81E, 0x2B81F).addRange(0x2CEA2, 0x2CEAF).addRange(0x2EBE1, 0x2EBEF).addRange(0x2EE5E, 0x2F7FF).addRange(0x2FA1E, 0x2FFFF).addRange(0x3134B, 0x3134F).addRange(0x323B0, 0xE0000); -set.addRange(0xE0002, 0xE001F).addRange(0xE0080, 0xE00FF).addRange(0xE01F0, 0xEFFFF).addRange(0xFFFFE, 0xFFFFF).addRange(0x10FFFE, 0x10FFFF); +set.addRange(0x1754, 0x175F).addRange(0x1774, 0x177F).addRange(0x17DE, 0x17DF).addRange(0x17EA, 0x17EF).addRange(0x17FA, 0x17FF).addRange(0x181A, 0x181F).addRange(0x1879, 0x187F).addRange(0x18AB, 0x18AF).addRange(0x18F6, 0x18FF).addRange(0x192C, 0x192F).addRange(0x193C, 0x193F).addRange(0x1941, 0x1943).addRange(0x196E, 0x196F).addRange(0x1975, 0x197F).addRange(0x19AC, 0x19AF).addRange(0x19CA, 0x19CF).addRange(0x19DB, 0x19DD).addRange(0x1A1C, 0x1A1D).addRange(0x1A7D, 0x1A7E).addRange(0x1A8A, 0x1A8F).addRange(0x1A9A, 0x1A9F).addRange(0x1AAE, 0x1AAF).addRange(0x1ACF, 0x1AFF).addRange(0x1BF4, 0x1BFB).addRange(0x1C38, 0x1C3A).addRange(0x1C4A, 0x1C4C).addRange(0x1C8B, 0x1C8F).addRange(0x1CBB, 0x1CBC).addRange(0x1CC8, 0x1CCF).addRange(0x1CFB, 0x1CFF).addRange(0x1F16, 0x1F17).addRange(0x1F1E, 0x1F1F).addRange(0x1F46, 0x1F47).addRange(0x1F4E, 0x1F4F).addRange(0x1F7E, 0x1F7F).addRange(0x1FD4, 0x1FD5).addRange(0x1FF0, 0x1FF1).addRange(0x2072, 0x2073).addRange(0x209D, 0x209F).addRange(0x20C1, 0x20CF).addRange(0x20F1, 0x20FF).addRange(0x218C, 0x218F).addRange(0x242A, 0x243F).addRange(0x244B, 0x245F).addRange(0x2B74, 0x2B75).addRange(0x2CF4, 0x2CF8).addRange(0x2D28, 0x2D2C).addRange(0x2D2E, 0x2D2F).addRange(0x2D68, 0x2D6E).addRange(0x2D71, 0x2D7E).addRange(0x2D97, 0x2D9F); +set.addRange(0x2E5E, 0x2E7F).addRange(0x2EF4, 0x2EFF).addRange(0x2FD6, 0x2FEF).addRange(0x3097, 0x3098).addRange(0x3100, 0x3104).addRange(0x31E6, 0x31EE).addRange(0xA48D, 0xA48F).addRange(0xA4C7, 0xA4CF).addRange(0xA62C, 0xA63F).addRange(0xA6F8, 0xA6FF).addRange(0xA7CE, 0xA7CF).addRange(0xA7DD, 0xA7F1).addRange(0xA82D, 0xA82F).addRange(0xA83A, 0xA83F).addRange(0xA878, 0xA87F).addRange(0xA8C6, 0xA8CD).addRange(0xA8DA, 0xA8DF).addRange(0xA954, 0xA95E).addRange(0xA97D, 0xA97F).addRange(0xA9DA, 0xA9DD).addRange(0xAA37, 0xAA3F).addRange(0xAA4E, 0xAA4F).addRange(0xAA5A, 0xAA5B).addRange(0xAAC3, 0xAADA).addRange(0xAAF7, 0xAB00).addRange(0xAB07, 0xAB08).addRange(0xAB0F, 0xAB10).addRange(0xAB17, 0xAB1F).addRange(0xAB6C, 0xAB6F).addRange(0xABEE, 0xABEF).addRange(0xABFA, 0xABFF).addRange(0xD7A4, 0xD7AF).addRange(0xD7C7, 0xD7CA).addRange(0xD7FC, 0xD7FF).addRange(0xFA6E, 0xFA6F).addRange(0xFADA, 0xFAFF).addRange(0xFB07, 0xFB12).addRange(0xFB18, 0xFB1C).addRange(0xFBC3, 0xFBD2).addRange(0xFD90, 0xFD91).addRange(0xFDC8, 0xFDCE).addRange(0xFDD0, 0xFDEF).addRange(0xFE1A, 0xFE1F).addRange(0xFE6C, 0xFE6F).addRange(0xFEFD, 0xFEFE).addRange(0xFFBF, 0xFFC1).addRange(0xFFC8, 0xFFC9).addRange(0xFFD0, 0xFFD1).addRange(0xFFD8, 0xFFD9).addRange(0xFFDD, 0xFFDF).addRange(0xFFEF, 0xFFF8); +set.addRange(0xFFFE, 0xFFFF).addRange(0x1004E, 0x1004F).addRange(0x1005E, 0x1007F).addRange(0x100FB, 0x100FF).addRange(0x10103, 0x10106).addRange(0x10134, 0x10136).addRange(0x1019D, 0x1019F).addRange(0x101A1, 0x101CF).addRange(0x101FE, 0x1027F).addRange(0x1029D, 0x1029F).addRange(0x102D1, 0x102DF).addRange(0x102FC, 0x102FF).addRange(0x10324, 0x1032C).addRange(0x1034B, 0x1034F).addRange(0x1037B, 0x1037F).addRange(0x103C4, 0x103C7).addRange(0x103D6, 0x103FF).addRange(0x1049E, 0x1049F).addRange(0x104AA, 0x104AF).addRange(0x104D4, 0x104D7).addRange(0x104FC, 0x104FF).addRange(0x10528, 0x1052F).addRange(0x10564, 0x1056E).addRange(0x105BD, 0x105BF).addRange(0x105F4, 0x105FF).addRange(0x10737, 0x1073F).addRange(0x10756, 0x1075F).addRange(0x10768, 0x1077F).addRange(0x107BB, 0x107FF).addRange(0x10806, 0x10807).addRange(0x10839, 0x1083B).addRange(0x1083D, 0x1083E).addRange(0x1089F, 0x108A6).addRange(0x108B0, 0x108DF).addRange(0x108F6, 0x108FA).addRange(0x1091C, 0x1091E).addRange(0x1093A, 0x1093E).addRange(0x10940, 0x1097F).addRange(0x109B8, 0x109BB).addRange(0x109D0, 0x109D1).addRange(0x10A07, 0x10A0B).addRange(0x10A36, 0x10A37).addRange(0x10A3B, 0x10A3E).addRange(0x10A49, 0x10A4F).addRange(0x10A59, 0x10A5F).addRange(0x10AA0, 0x10ABF).addRange(0x10AE7, 0x10AEA).addRange(0x10AF7, 0x10AFF).addRange(0x10B36, 0x10B38).addRange(0x10B56, 0x10B57).addRange(0x10B73, 0x10B77); +set.addRange(0x10B92, 0x10B98).addRange(0x10B9D, 0x10BA8).addRange(0x10BB0, 0x10BFF).addRange(0x10C49, 0x10C7F).addRange(0x10CB3, 0x10CBF).addRange(0x10CF3, 0x10CF9).addRange(0x10D28, 0x10D2F).addRange(0x10D3A, 0x10D3F).addRange(0x10D66, 0x10D68).addRange(0x10D86, 0x10D8D).addRange(0x10D90, 0x10E5F).addRange(0x10EAE, 0x10EAF).addRange(0x10EB2, 0x10EC1).addRange(0x10EC5, 0x10EFB).addRange(0x10F28, 0x10F2F).addRange(0x10F5A, 0x10F6F).addRange(0x10F8A, 0x10FAF).addRange(0x10FCC, 0x10FDF).addRange(0x10FF7, 0x10FFF).addRange(0x1104E, 0x11051).addRange(0x11076, 0x1107E).addRange(0x110C3, 0x110CC).addRange(0x110CE, 0x110CF).addRange(0x110E9, 0x110EF).addRange(0x110FA, 0x110FF).addRange(0x11148, 0x1114F).addRange(0x11177, 0x1117F).addRange(0x111F5, 0x111FF).addRange(0x11242, 0x1127F).addRange(0x112AA, 0x112AF).addRange(0x112EB, 0x112EF).addRange(0x112FA, 0x112FF).addRange(0x1130D, 0x1130E).addRange(0x11311, 0x11312).addRange(0x11345, 0x11346).addRange(0x11349, 0x1134A).addRange(0x1134E, 0x1134F).addRange(0x11351, 0x11356).addRange(0x11358, 0x1135C).addRange(0x11364, 0x11365).addRange(0x1136D, 0x1136F).addRange(0x11375, 0x1137F).addRange(0x1138C, 0x1138D).addRange(0x113C3, 0x113C4).addRange(0x113D9, 0x113E0).addRange(0x113E3, 0x113FF).addRange(0x11462, 0x1147F).addRange(0x114C8, 0x114CF).addRange(0x114DA, 0x1157F).addRange(0x115B6, 0x115B7).addRange(0x115DE, 0x115FF); +set.addRange(0x11645, 0x1164F).addRange(0x1165A, 0x1165F).addRange(0x1166D, 0x1167F).addRange(0x116BA, 0x116BF).addRange(0x116CA, 0x116CF).addRange(0x116E4, 0x116FF).addRange(0x1171B, 0x1171C).addRange(0x1172C, 0x1172F).addRange(0x11747, 0x117FF).addRange(0x1183C, 0x1189F).addRange(0x118F3, 0x118FE).addRange(0x11907, 0x11908).addRange(0x1190A, 0x1190B).addRange(0x11939, 0x1193A).addRange(0x11947, 0x1194F).addRange(0x1195A, 0x1199F).addRange(0x119A8, 0x119A9).addRange(0x119D8, 0x119D9).addRange(0x119E5, 0x119FF).addRange(0x11A48, 0x11A4F).addRange(0x11AA3, 0x11AAF).addRange(0x11AF9, 0x11AFF).addRange(0x11B0A, 0x11BBF).addRange(0x11BE2, 0x11BEF).addRange(0x11BFA, 0x11BFF).addRange(0x11C46, 0x11C4F).addRange(0x11C6D, 0x11C6F).addRange(0x11C90, 0x11C91).addRange(0x11CB7, 0x11CFF).addRange(0x11D37, 0x11D39).addRange(0x11D48, 0x11D4F).addRange(0x11D5A, 0x11D5F).addRange(0x11D99, 0x11D9F).addRange(0x11DAA, 0x11EDF).addRange(0x11EF9, 0x11EFF).addRange(0x11F3B, 0x11F3D).addRange(0x11F5B, 0x11FAF).addRange(0x11FB1, 0x11FBF).addRange(0x11FF2, 0x11FFE).addRange(0x1239A, 0x123FF).addRange(0x12475, 0x1247F).addRange(0x12544, 0x12F8F).addRange(0x12FF3, 0x12FFF).addRange(0x13456, 0x1345F).addRange(0x143FB, 0x143FF).addRange(0x14647, 0x160FF).addRange(0x1613A, 0x167FF).addRange(0x16A39, 0x16A3F).addRange(0x16A6A, 0x16A6D).addRange(0x16ACA, 0x16ACF).addRange(0x16AEE, 0x16AEF); +set.addRange(0x16AF6, 0x16AFF).addRange(0x16B46, 0x16B4F).addRange(0x16B78, 0x16B7C).addRange(0x16B90, 0x16D3F).addRange(0x16D7A, 0x16E3F).addRange(0x16E9B, 0x16EFF).addRange(0x16F4B, 0x16F4E).addRange(0x16F88, 0x16F8E).addRange(0x16FA0, 0x16FDF).addRange(0x16FE5, 0x16FEF).addRange(0x16FF2, 0x16FFF).addRange(0x187F8, 0x187FF).addRange(0x18CD6, 0x18CFE).addRange(0x18D09, 0x1AFEF).addRange(0x1B123, 0x1B131).addRange(0x1B133, 0x1B14F).addRange(0x1B153, 0x1B154).addRange(0x1B156, 0x1B163).addRange(0x1B168, 0x1B16F).addRange(0x1B2FC, 0x1BBFF).addRange(0x1BC6B, 0x1BC6F).addRange(0x1BC7D, 0x1BC7F).addRange(0x1BC89, 0x1BC8F).addRange(0x1BC9A, 0x1BC9B).addRange(0x1BCA4, 0x1CBFF).addRange(0x1CCFA, 0x1CCFF).addRange(0x1CEB4, 0x1CEFF).addRange(0x1CF2E, 0x1CF2F).addRange(0x1CF47, 0x1CF4F).addRange(0x1CFC4, 0x1CFFF).addRange(0x1D0F6, 0x1D0FF).addRange(0x1D127, 0x1D128).addRange(0x1D1EB, 0x1D1FF).addRange(0x1D246, 0x1D2BF).addRange(0x1D2D4, 0x1D2DF).addRange(0x1D2F4, 0x1D2FF).addRange(0x1D357, 0x1D35F).addRange(0x1D379, 0x1D3FF).addRange(0x1D4A0, 0x1D4A1).addRange(0x1D4A3, 0x1D4A4).addRange(0x1D4A7, 0x1D4A8).addRange(0x1D50B, 0x1D50C).addRange(0x1D547, 0x1D549).addRange(0x1D6A6, 0x1D6A7).addRange(0x1D7CC, 0x1D7CD).addRange(0x1DA8C, 0x1DA9A).addRange(0x1DAB0, 0x1DEFF).addRange(0x1DF1F, 0x1DF24).addRange(0x1DF2B, 0x1DFFF).addRange(0x1E019, 0x1E01A).addRange(0x1E02B, 0x1E02F); +set.addRange(0x1E06E, 0x1E08E).addRange(0x1E090, 0x1E0FF).addRange(0x1E12D, 0x1E12F).addRange(0x1E13E, 0x1E13F).addRange(0x1E14A, 0x1E14D).addRange(0x1E150, 0x1E28F).addRange(0x1E2AF, 0x1E2BF).addRange(0x1E2FA, 0x1E2FE).addRange(0x1E300, 0x1E4CF).addRange(0x1E4FA, 0x1E5CF).addRange(0x1E5FB, 0x1E5FE).addRange(0x1E600, 0x1E7DF).addRange(0x1E8C5, 0x1E8C6).addRange(0x1E8D7, 0x1E8FF).addRange(0x1E94C, 0x1E94F).addRange(0x1E95A, 0x1E95D).addRange(0x1E960, 0x1EC70).addRange(0x1ECB5, 0x1ED00).addRange(0x1ED3E, 0x1EDFF).addRange(0x1EE25, 0x1EE26).addRange(0x1EE3C, 0x1EE41).addRange(0x1EE43, 0x1EE46).addRange(0x1EE55, 0x1EE56).addRange(0x1EE65, 0x1EE66).addRange(0x1EE9C, 0x1EEA0).addRange(0x1EEBC, 0x1EEEF).addRange(0x1EEF2, 0x1EFFF).addRange(0x1F02C, 0x1F02F).addRange(0x1F094, 0x1F09F).addRange(0x1F0AF, 0x1F0B0).addRange(0x1F0F6, 0x1F0FF).addRange(0x1F1AE, 0x1F1E5).addRange(0x1F203, 0x1F20F).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F24F).addRange(0x1F252, 0x1F25F).addRange(0x1F266, 0x1F2FF).addRange(0x1F6D8, 0x1F6DB).addRange(0x1F6ED, 0x1F6EF).addRange(0x1F6FD, 0x1F6FF).addRange(0x1F777, 0x1F77A).addRange(0x1F7DA, 0x1F7DF).addRange(0x1F7EC, 0x1F7EF).addRange(0x1F7F1, 0x1F7FF).addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8AF).addRange(0x1F8BC, 0x1F8BF).addRange(0x1F8C2, 0x1F8FF); +set.addRange(0x1FA54, 0x1FA5F).addRange(0x1FA6E, 0x1FA6F).addRange(0x1FA7D, 0x1FA7F).addRange(0x1FA8A, 0x1FA8E).addRange(0x1FAC7, 0x1FACD).addRange(0x1FADD, 0x1FADE).addRange(0x1FAEA, 0x1FAEF).addRange(0x1FAF9, 0x1FAFF).addRange(0x1FBFA, 0x1FFFF).addRange(0x2A6E0, 0x2A6FF).addRange(0x2B73A, 0x2B73F).addRange(0x2B81E, 0x2B81F).addRange(0x2CEA2, 0x2CEAF).addRange(0x2EBE1, 0x2EBEF).addRange(0x2EE5E, 0x2F7FF).addRange(0x2FA1E, 0x2FFFF).addRange(0x3134B, 0x3134F).addRange(0x323B0, 0xE0000).addRange(0xE0002, 0xE001F).addRange(0xE0080, 0xE00FF).addRange(0xE01F0, 0xEFFFF).addRange(0xFFFFE, 0xFFFFF).addRange(0x10FFFE, 0x10FFFF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/General_Category/Uppercase_Letter.js b/node_modules/regenerate-unicode-properties/General_Category/Uppercase_Letter.js index 3df6268..5d53f1b 100644 --- a/node_modules/regenerate-unicode-properties/General_Category/Uppercase_Letter.js +++ b/node_modules/regenerate-unicode-properties/General_Category/Uppercase_Letter.js @@ -1,4 +1,4 @@ -const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1C4, 0x1C7, 0x1CA, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F1, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2145, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5, 0x1D49C, 0x1D4A2, 0x1D546, 0x1D7CA); +const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1C4, 0x1C7, 0x1CA, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F1, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1C89, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2145, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7DA, 0xA7DC, 0xA7F5, 0x1D49C, 0x1D4A2, 0x1D546, 0x1D7CA); set.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDE).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3D2, 0x3D4).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13A0, 0x13F5).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1FB8, 0x1FBB).addRange(0x1FC8, 0x1FCB).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF8, 0x1FFB).addRange(0x210B, 0x210D).addRange(0x2110, 0x2112).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x2130, 0x2133).addRange(0x213E, 0x213F).addRange(0x2C00, 0x2C2F); -set.addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1D400, 0x1D419).addRange(0x1D434, 0x1D44D).addRange(0x1D468, 0x1D481).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B5).addRange(0x1D4D0, 0x1D4E9).addRange(0x1D504, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D538, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D56C, 0x1D585).addRange(0x1D5A0, 0x1D5B9).addRange(0x1D5D4, 0x1D5ED).addRange(0x1D608, 0x1D621).addRange(0x1D63C, 0x1D655).addRange(0x1D670, 0x1D689).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6E2, 0x1D6FA).addRange(0x1D71C, 0x1D734).addRange(0x1D756, 0x1D76E).addRange(0x1D790, 0x1D7A8).addRange(0x1E900, 0x1E921); +set.addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xA7CB, 0xA7CC).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x10D50, 0x10D65).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1D400, 0x1D419).addRange(0x1D434, 0x1D44D).addRange(0x1D468, 0x1D481).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B5).addRange(0x1D4D0, 0x1D4E9).addRange(0x1D504, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D538, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D56C, 0x1D585).addRange(0x1D5A0, 0x1D5B9).addRange(0x1D5D4, 0x1D5ED).addRange(0x1D608, 0x1D621).addRange(0x1D63C, 0x1D655).addRange(0x1D670, 0x1D689).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6E2, 0x1D6FA).addRange(0x1D71C, 0x1D734).addRange(0x1D756, 0x1D76E).addRange(0x1D790, 0x1D7A8).addRange(0x1E900, 0x1E921); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Property_of_Strings/Basic_Emoji.js b/node_modules/regenerate-unicode-properties/Property_of_Strings/Basic_Emoji.js index 194ad57..0c0f12f 100644 --- a/node_modules/regenerate-unicode-properties/Property_of_Strings/Basic_Emoji.js +++ b/node_modules/regenerate-unicode-properties/Property_of_Strings/Basic_Emoji.js @@ -1,4 +1,4 @@ const set = require('regenerate')(0x23F0, 0x23F3, 0x267F, 0x2693, 0x26A1, 0x26CE, 0x26D4, 0x26EA, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x2728, 0x274C, 0x274E, 0x2757, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F201, 0x1F21A, 0x1F22F, 0x1F3F4, 0x1F440, 0x1F57A, 0x1F5A4, 0x1F6CC, 0x1F7F0); -set.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8); +set.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA89).addRange(0x1FA8F, 0x1FAC6).addRange(0x1FACE, 0x1FADC).addRange(0x1FADF, 0x1FAE9).addRange(0x1FAF0, 0x1FAF8); exports.characters = set; exports.strings = ['\xA9\uFE0F','\xAE\uFE0F','\u203C\uFE0F','\u2049\uFE0F','\u2122\uFE0F','\u2139\uFE0F','\u2194\uFE0F','\u2195\uFE0F','\u2196\uFE0F','\u2197\uFE0F','\u2198\uFE0F','\u2199\uFE0F','\u21A9\uFE0F','\u21AA\uFE0F','\u2328\uFE0F','\u23CF\uFE0F','\u23ED\uFE0F','\u23EE\uFE0F','\u23EF\uFE0F','\u23F1\uFE0F','\u23F2\uFE0F','\u23F8\uFE0F','\u23F9\uFE0F','\u23FA\uFE0F','\u24C2\uFE0F','\u25AA\uFE0F','\u25AB\uFE0F','\u25B6\uFE0F','\u25C0\uFE0F','\u25FB\uFE0F','\u25FC\uFE0F','\u2600\uFE0F','\u2601\uFE0F','\u2602\uFE0F','\u2603\uFE0F','\u2604\uFE0F','\u260E\uFE0F','\u2611\uFE0F','\u2618\uFE0F','\u261D\uFE0F','\u2620\uFE0F','\u2622\uFE0F','\u2623\uFE0F','\u2626\uFE0F','\u262A\uFE0F','\u262E\uFE0F','\u262F\uFE0F','\u2638\uFE0F','\u2639\uFE0F','\u263A\uFE0F','\u2640\uFE0F','\u2642\uFE0F','\u265F\uFE0F','\u2660\uFE0F','\u2663\uFE0F','\u2665\uFE0F','\u2666\uFE0F','\u2668\uFE0F','\u267B\uFE0F','\u267E\uFE0F','\u2692\uFE0F','\u2694\uFE0F','\u2695\uFE0F','\u2696\uFE0F','\u2697\uFE0F','\u2699\uFE0F','\u269B\uFE0F','\u269C\uFE0F','\u26A0\uFE0F','\u26A7\uFE0F','\u26B0\uFE0F','\u26B1\uFE0F','\u26C8\uFE0F','\u26CF\uFE0F','\u26D1\uFE0F','\u26D3\uFE0F','\u26E9\uFE0F','\u26F0\uFE0F','\u26F1\uFE0F','\u26F4\uFE0F','\u26F7\uFE0F','\u26F8\uFE0F','\u26F9\uFE0F','\u2702\uFE0F','\u2708\uFE0F','\u2709\uFE0F','\u270C\uFE0F','\u270D\uFE0F','\u270F\uFE0F','\u2712\uFE0F','\u2714\uFE0F','\u2716\uFE0F','\u271D\uFE0F','\u2721\uFE0F','\u2733\uFE0F','\u2734\uFE0F','\u2744\uFE0F','\u2747\uFE0F','\u2763\uFE0F','\u2764\uFE0F','\u27A1\uFE0F','\u2934\uFE0F','\u2935\uFE0F','\u2B05\uFE0F','\u2B06\uFE0F','\u2B07\uFE0F','\u3030\uFE0F','\u303D\uFE0F','\u3297\uFE0F','\u3299\uFE0F','\u{1F170}\uFE0F','\u{1F171}\uFE0F','\u{1F17E}\uFE0F','\u{1F17F}\uFE0F','\u{1F202}\uFE0F','\u{1F237}\uFE0F','\u{1F321}\uFE0F','\u{1F324}\uFE0F','\u{1F325}\uFE0F','\u{1F326}\uFE0F','\u{1F327}\uFE0F','\u{1F328}\uFE0F','\u{1F329}\uFE0F','\u{1F32A}\uFE0F','\u{1F32B}\uFE0F','\u{1F32C}\uFE0F','\u{1F336}\uFE0F','\u{1F37D}\uFE0F','\u{1F396}\uFE0F','\u{1F397}\uFE0F','\u{1F399}\uFE0F','\u{1F39A}\uFE0F','\u{1F39B}\uFE0F','\u{1F39E}\uFE0F','\u{1F39F}\uFE0F','\u{1F3CB}\uFE0F','\u{1F3CC}\uFE0F','\u{1F3CD}\uFE0F','\u{1F3CE}\uFE0F','\u{1F3D4}\uFE0F','\u{1F3D5}\uFE0F','\u{1F3D6}\uFE0F','\u{1F3D7}\uFE0F','\u{1F3D8}\uFE0F','\u{1F3D9}\uFE0F','\u{1F3DA}\uFE0F','\u{1F3DB}\uFE0F','\u{1F3DC}\uFE0F','\u{1F3DD}\uFE0F','\u{1F3DE}\uFE0F','\u{1F3DF}\uFE0F','\u{1F3F3}\uFE0F','\u{1F3F5}\uFE0F','\u{1F3F7}\uFE0F','\u{1F43F}\uFE0F','\u{1F441}\uFE0F','\u{1F4FD}\uFE0F','\u{1F549}\uFE0F','\u{1F54A}\uFE0F','\u{1F56F}\uFE0F','\u{1F570}\uFE0F','\u{1F573}\uFE0F','\u{1F574}\uFE0F','\u{1F575}\uFE0F','\u{1F576}\uFE0F','\u{1F577}\uFE0F','\u{1F578}\uFE0F','\u{1F579}\uFE0F','\u{1F587}\uFE0F','\u{1F58A}\uFE0F','\u{1F58B}\uFE0F','\u{1F58C}\uFE0F','\u{1F58D}\uFE0F','\u{1F590}\uFE0F','\u{1F5A5}\uFE0F','\u{1F5A8}\uFE0F','\u{1F5B1}\uFE0F','\u{1F5B2}\uFE0F','\u{1F5BC}\uFE0F','\u{1F5C2}\uFE0F','\u{1F5C3}\uFE0F','\u{1F5C4}\uFE0F','\u{1F5D1}\uFE0F','\u{1F5D2}\uFE0F','\u{1F5D3}\uFE0F','\u{1F5DC}\uFE0F','\u{1F5DD}\uFE0F','\u{1F5DE}\uFE0F','\u{1F5E1}\uFE0F','\u{1F5E3}\uFE0F','\u{1F5E8}\uFE0F','\u{1F5EF}\uFE0F','\u{1F5F3}\uFE0F','\u{1F5FA}\uFE0F','\u{1F6CB}\uFE0F','\u{1F6CD}\uFE0F','\u{1F6CE}\uFE0F','\u{1F6CF}\uFE0F','\u{1F6E0}\uFE0F','\u{1F6E1}\uFE0F','\u{1F6E2}\uFE0F','\u{1F6E3}\uFE0F','\u{1F6E4}\uFE0F','\u{1F6E5}\uFE0F','\u{1F6E9}\uFE0F','\u{1F6F0}\uFE0F','\u{1F6F3}\uFE0F']; diff --git a/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji.js b/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji.js index 104844f..c52b28f 100644 --- a/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji.js +++ b/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji.js @@ -1,4 +1,4 @@ const set = require('regenerate')(0x23F0, 0x23F3, 0x267F, 0x2693, 0x26A1, 0x26CE, 0x26D4, 0x26EA, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x2728, 0x274C, 0x274E, 0x2757, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F201, 0x1F21A, 0x1F22F, 0x1F3F4, 0x1F440, 0x1F57A, 0x1F5A4, 0x1F6CC, 0x1F7F0); -set.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8); +set.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA89).addRange(0x1FA8F, 0x1FAC6).addRange(0x1FACE, 0x1FADC).addRange(0x1FADF, 0x1FAE9).addRange(0x1FAF0, 0x1FAF8); exports.characters = set; -exports.strings = ['#\uFE0F\u20E3','*\uFE0F\u20E3','0\uFE0F\u20E3','1\uFE0F\u20E3','2\uFE0F\u20E3','3\uFE0F\u20E3','4\uFE0F\u20E3','5\uFE0F\u20E3','6\uFE0F\u20E3','7\uFE0F\u20E3','8\uFE0F\u20E3','9\uFE0F\u20E3','\xA9\uFE0F','\xAE\uFE0F','\u203C\uFE0F','\u2049\uFE0F','\u2122\uFE0F','\u2139\uFE0F','\u2194\uFE0F','\u2195\uFE0F','\u2196\uFE0F','\u2197\uFE0F','\u2198\uFE0F','\u2199\uFE0F','\u21A9\uFE0F','\u21AA\uFE0F','\u2328\uFE0F','\u23CF\uFE0F','\u23ED\uFE0F','\u23EE\uFE0F','\u23EF\uFE0F','\u23F1\uFE0F','\u23F2\uFE0F','\u23F8\uFE0F','\u23F9\uFE0F','\u23FA\uFE0F','\u24C2\uFE0F','\u25AA\uFE0F','\u25AB\uFE0F','\u25B6\uFE0F','\u25C0\uFE0F','\u25FB\uFE0F','\u25FC\uFE0F','\u2600\uFE0F','\u2601\uFE0F','\u2602\uFE0F','\u2603\uFE0F','\u2604\uFE0F','\u260E\uFE0F','\u2611\uFE0F','\u2618\uFE0F','\u261D\u{1F3FB}','\u261D\u{1F3FC}','\u261D\u{1F3FD}','\u261D\u{1F3FE}','\u261D\u{1F3FF}','\u261D\uFE0F','\u2620\uFE0F','\u2622\uFE0F','\u2623\uFE0F','\u2626\uFE0F','\u262A\uFE0F','\u262E\uFE0F','\u262F\uFE0F','\u2638\uFE0F','\u2639\uFE0F','\u263A\uFE0F','\u2640\uFE0F','\u2642\uFE0F','\u265F\uFE0F','\u2660\uFE0F','\u2663\uFE0F','\u2665\uFE0F','\u2666\uFE0F','\u2668\uFE0F','\u267B\uFE0F','\u267E\uFE0F','\u2692\uFE0F','\u2694\uFE0F','\u2695\uFE0F','\u2696\uFE0F','\u2697\uFE0F','\u2699\uFE0F','\u269B\uFE0F','\u269C\uFE0F','\u26A0\uFE0F','\u26A7\uFE0F','\u26B0\uFE0F','\u26B1\uFE0F','\u26C8\uFE0F','\u26CF\uFE0F','\u26D1\uFE0F','\u26D3\uFE0F','\u26D3\uFE0F\u200D\u{1F4A5}','\u26E9\uFE0F','\u26F0\uFE0F','\u26F1\uFE0F','\u26F4\uFE0F','\u26F7\uFE0F','\u26F8\uFE0F','\u26F9\u{1F3FB}','\u26F9\u{1F3FB}\u200D\u2640\uFE0F','\u26F9\u{1F3FB}\u200D\u2642\uFE0F','\u26F9\u{1F3FC}','\u26F9\u{1F3FC}\u200D\u2640\uFE0F','\u26F9\u{1F3FC}\u200D\u2642\uFE0F','\u26F9\u{1F3FD}','\u26F9\u{1F3FD}\u200D\u2640\uFE0F','\u26F9\u{1F3FD}\u200D\u2642\uFE0F','\u26F9\u{1F3FE}','\u26F9\u{1F3FE}\u200D\u2640\uFE0F','\u26F9\u{1F3FE}\u200D\u2642\uFE0F','\u26F9\u{1F3FF}','\u26F9\u{1F3FF}\u200D\u2640\uFE0F','\u26F9\u{1F3FF}\u200D\u2642\uFE0F','\u26F9\uFE0F','\u26F9\uFE0F\u200D\u2640\uFE0F','\u26F9\uFE0F\u200D\u2642\uFE0F','\u2702\uFE0F','\u2708\uFE0F','\u2709\uFE0F','\u270A\u{1F3FB}','\u270A\u{1F3FC}','\u270A\u{1F3FD}','\u270A\u{1F3FE}','\u270A\u{1F3FF}','\u270B\u{1F3FB}','\u270B\u{1F3FC}','\u270B\u{1F3FD}','\u270B\u{1F3FE}','\u270B\u{1F3FF}','\u270C\u{1F3FB}','\u270C\u{1F3FC}','\u270C\u{1F3FD}','\u270C\u{1F3FE}','\u270C\u{1F3FF}','\u270C\uFE0F','\u270D\u{1F3FB}','\u270D\u{1F3FC}','\u270D\u{1F3FD}','\u270D\u{1F3FE}','\u270D\u{1F3FF}','\u270D\uFE0F','\u270F\uFE0F','\u2712\uFE0F','\u2714\uFE0F','\u2716\uFE0F','\u271D\uFE0F','\u2721\uFE0F','\u2733\uFE0F','\u2734\uFE0F','\u2744\uFE0F','\u2747\uFE0F','\u2763\uFE0F','\u2764\uFE0F','\u2764\uFE0F\u200D\u{1F525}','\u2764\uFE0F\u200D\u{1FA79}','\u27A1\uFE0F','\u2934\uFE0F','\u2935\uFE0F','\u2B05\uFE0F','\u2B06\uFE0F','\u2B07\uFE0F','\u3030\uFE0F','\u303D\uFE0F','\u3297\uFE0F','\u3299\uFE0F','\u{1F170}\uFE0F','\u{1F171}\uFE0F','\u{1F17E}\uFE0F','\u{1F17F}\uFE0F','\u{1F1E6}\u{1F1E8}','\u{1F1E6}\u{1F1E9}','\u{1F1E6}\u{1F1EA}','\u{1F1E6}\u{1F1EB}','\u{1F1E6}\u{1F1EC}','\u{1F1E6}\u{1F1EE}','\u{1F1E6}\u{1F1F1}','\u{1F1E6}\u{1F1F2}','\u{1F1E6}\u{1F1F4}','\u{1F1E6}\u{1F1F6}','\u{1F1E6}\u{1F1F7}','\u{1F1E6}\u{1F1F8}','\u{1F1E6}\u{1F1F9}','\u{1F1E6}\u{1F1FA}','\u{1F1E6}\u{1F1FC}','\u{1F1E6}\u{1F1FD}','\u{1F1E6}\u{1F1FF}','\u{1F1E7}\u{1F1E6}','\u{1F1E7}\u{1F1E7}','\u{1F1E7}\u{1F1E9}','\u{1F1E7}\u{1F1EA}','\u{1F1E7}\u{1F1EB}','\u{1F1E7}\u{1F1EC}','\u{1F1E7}\u{1F1ED}','\u{1F1E7}\u{1F1EE}','\u{1F1E7}\u{1F1EF}','\u{1F1E7}\u{1F1F1}','\u{1F1E7}\u{1F1F2}','\u{1F1E7}\u{1F1F3}','\u{1F1E7}\u{1F1F4}','\u{1F1E7}\u{1F1F6}','\u{1F1E7}\u{1F1F7}','\u{1F1E7}\u{1F1F8}','\u{1F1E7}\u{1F1F9}','\u{1F1E7}\u{1F1FB}','\u{1F1E7}\u{1F1FC}','\u{1F1E7}\u{1F1FE}','\u{1F1E7}\u{1F1FF}','\u{1F1E8}\u{1F1E6}','\u{1F1E8}\u{1F1E8}','\u{1F1E8}\u{1F1E9}','\u{1F1E8}\u{1F1EB}','\u{1F1E8}\u{1F1EC}','\u{1F1E8}\u{1F1ED}','\u{1F1E8}\u{1F1EE}','\u{1F1E8}\u{1F1F0}','\u{1F1E8}\u{1F1F1}','\u{1F1E8}\u{1F1F2}','\u{1F1E8}\u{1F1F3}','\u{1F1E8}\u{1F1F4}','\u{1F1E8}\u{1F1F5}','\u{1F1E8}\u{1F1F7}','\u{1F1E8}\u{1F1FA}','\u{1F1E8}\u{1F1FB}','\u{1F1E8}\u{1F1FC}','\u{1F1E8}\u{1F1FD}','\u{1F1E8}\u{1F1FE}','\u{1F1E8}\u{1F1FF}','\u{1F1E9}\u{1F1EA}','\u{1F1E9}\u{1F1EC}','\u{1F1E9}\u{1F1EF}','\u{1F1E9}\u{1F1F0}','\u{1F1E9}\u{1F1F2}','\u{1F1E9}\u{1F1F4}','\u{1F1E9}\u{1F1FF}','\u{1F1EA}\u{1F1E6}','\u{1F1EA}\u{1F1E8}','\u{1F1EA}\u{1F1EA}','\u{1F1EA}\u{1F1EC}','\u{1F1EA}\u{1F1ED}','\u{1F1EA}\u{1F1F7}','\u{1F1EA}\u{1F1F8}','\u{1F1EA}\u{1F1F9}','\u{1F1EA}\u{1F1FA}','\u{1F1EB}\u{1F1EE}','\u{1F1EB}\u{1F1EF}','\u{1F1EB}\u{1F1F0}','\u{1F1EB}\u{1F1F2}','\u{1F1EB}\u{1F1F4}','\u{1F1EB}\u{1F1F7}','\u{1F1EC}\u{1F1E6}','\u{1F1EC}\u{1F1E7}','\u{1F1EC}\u{1F1E9}','\u{1F1EC}\u{1F1EA}','\u{1F1EC}\u{1F1EB}','\u{1F1EC}\u{1F1EC}','\u{1F1EC}\u{1F1ED}','\u{1F1EC}\u{1F1EE}','\u{1F1EC}\u{1F1F1}','\u{1F1EC}\u{1F1F2}','\u{1F1EC}\u{1F1F3}','\u{1F1EC}\u{1F1F5}','\u{1F1EC}\u{1F1F6}','\u{1F1EC}\u{1F1F7}','\u{1F1EC}\u{1F1F8}','\u{1F1EC}\u{1F1F9}','\u{1F1EC}\u{1F1FA}','\u{1F1EC}\u{1F1FC}','\u{1F1EC}\u{1F1FE}','\u{1F1ED}\u{1F1F0}','\u{1F1ED}\u{1F1F2}','\u{1F1ED}\u{1F1F3}','\u{1F1ED}\u{1F1F7}','\u{1F1ED}\u{1F1F9}','\u{1F1ED}\u{1F1FA}','\u{1F1EE}\u{1F1E8}','\u{1F1EE}\u{1F1E9}','\u{1F1EE}\u{1F1EA}','\u{1F1EE}\u{1F1F1}','\u{1F1EE}\u{1F1F2}','\u{1F1EE}\u{1F1F3}','\u{1F1EE}\u{1F1F4}','\u{1F1EE}\u{1F1F6}','\u{1F1EE}\u{1F1F7}','\u{1F1EE}\u{1F1F8}','\u{1F1EE}\u{1F1F9}','\u{1F1EF}\u{1F1EA}','\u{1F1EF}\u{1F1F2}','\u{1F1EF}\u{1F1F4}','\u{1F1EF}\u{1F1F5}','\u{1F1F0}\u{1F1EA}','\u{1F1F0}\u{1F1EC}','\u{1F1F0}\u{1F1ED}','\u{1F1F0}\u{1F1EE}','\u{1F1F0}\u{1F1F2}','\u{1F1F0}\u{1F1F3}','\u{1F1F0}\u{1F1F5}','\u{1F1F0}\u{1F1F7}','\u{1F1F0}\u{1F1FC}','\u{1F1F0}\u{1F1FE}','\u{1F1F0}\u{1F1FF}','\u{1F1F1}\u{1F1E6}','\u{1F1F1}\u{1F1E7}','\u{1F1F1}\u{1F1E8}','\u{1F1F1}\u{1F1EE}','\u{1F1F1}\u{1F1F0}','\u{1F1F1}\u{1F1F7}','\u{1F1F1}\u{1F1F8}','\u{1F1F1}\u{1F1F9}','\u{1F1F1}\u{1F1FA}','\u{1F1F1}\u{1F1FB}','\u{1F1F1}\u{1F1FE}','\u{1F1F2}\u{1F1E6}','\u{1F1F2}\u{1F1E8}','\u{1F1F2}\u{1F1E9}','\u{1F1F2}\u{1F1EA}','\u{1F1F2}\u{1F1EB}','\u{1F1F2}\u{1F1EC}','\u{1F1F2}\u{1F1ED}','\u{1F1F2}\u{1F1F0}','\u{1F1F2}\u{1F1F1}','\u{1F1F2}\u{1F1F2}','\u{1F1F2}\u{1F1F3}','\u{1F1F2}\u{1F1F4}','\u{1F1F2}\u{1F1F5}','\u{1F1F2}\u{1F1F6}','\u{1F1F2}\u{1F1F7}','\u{1F1F2}\u{1F1F8}','\u{1F1F2}\u{1F1F9}','\u{1F1F2}\u{1F1FA}','\u{1F1F2}\u{1F1FB}','\u{1F1F2}\u{1F1FC}','\u{1F1F2}\u{1F1FD}','\u{1F1F2}\u{1F1FE}','\u{1F1F2}\u{1F1FF}','\u{1F1F3}\u{1F1E6}','\u{1F1F3}\u{1F1E8}','\u{1F1F3}\u{1F1EA}','\u{1F1F3}\u{1F1EB}','\u{1F1F3}\u{1F1EC}','\u{1F1F3}\u{1F1EE}','\u{1F1F3}\u{1F1F1}','\u{1F1F3}\u{1F1F4}','\u{1F1F3}\u{1F1F5}','\u{1F1F3}\u{1F1F7}','\u{1F1F3}\u{1F1FA}','\u{1F1F3}\u{1F1FF}','\u{1F1F4}\u{1F1F2}','\u{1F1F5}\u{1F1E6}','\u{1F1F5}\u{1F1EA}','\u{1F1F5}\u{1F1EB}','\u{1F1F5}\u{1F1EC}','\u{1F1F5}\u{1F1ED}','\u{1F1F5}\u{1F1F0}','\u{1F1F5}\u{1F1F1}','\u{1F1F5}\u{1F1F2}','\u{1F1F5}\u{1F1F3}','\u{1F1F5}\u{1F1F7}','\u{1F1F5}\u{1F1F8}','\u{1F1F5}\u{1F1F9}','\u{1F1F5}\u{1F1FC}','\u{1F1F5}\u{1F1FE}','\u{1F1F6}\u{1F1E6}','\u{1F1F7}\u{1F1EA}','\u{1F1F7}\u{1F1F4}','\u{1F1F7}\u{1F1F8}','\u{1F1F7}\u{1F1FA}','\u{1F1F7}\u{1F1FC}','\u{1F1F8}\u{1F1E6}','\u{1F1F8}\u{1F1E7}','\u{1F1F8}\u{1F1E8}','\u{1F1F8}\u{1F1E9}','\u{1F1F8}\u{1F1EA}','\u{1F1F8}\u{1F1EC}','\u{1F1F8}\u{1F1ED}','\u{1F1F8}\u{1F1EE}','\u{1F1F8}\u{1F1EF}','\u{1F1F8}\u{1F1F0}','\u{1F1F8}\u{1F1F1}','\u{1F1F8}\u{1F1F2}','\u{1F1F8}\u{1F1F3}','\u{1F1F8}\u{1F1F4}','\u{1F1F8}\u{1F1F7}','\u{1F1F8}\u{1F1F8}','\u{1F1F8}\u{1F1F9}','\u{1F1F8}\u{1F1FB}','\u{1F1F8}\u{1F1FD}','\u{1F1F8}\u{1F1FE}','\u{1F1F8}\u{1F1FF}','\u{1F1F9}\u{1F1E6}','\u{1F1F9}\u{1F1E8}','\u{1F1F9}\u{1F1E9}','\u{1F1F9}\u{1F1EB}','\u{1F1F9}\u{1F1EC}','\u{1F1F9}\u{1F1ED}','\u{1F1F9}\u{1F1EF}','\u{1F1F9}\u{1F1F0}','\u{1F1F9}\u{1F1F1}','\u{1F1F9}\u{1F1F2}','\u{1F1F9}\u{1F1F3}','\u{1F1F9}\u{1F1F4}','\u{1F1F9}\u{1F1F7}','\u{1F1F9}\u{1F1F9}','\u{1F1F9}\u{1F1FB}','\u{1F1F9}\u{1F1FC}','\u{1F1F9}\u{1F1FF}','\u{1F1FA}\u{1F1E6}','\u{1F1FA}\u{1F1EC}','\u{1F1FA}\u{1F1F2}','\u{1F1FA}\u{1F1F3}','\u{1F1FA}\u{1F1F8}','\u{1F1FA}\u{1F1FE}','\u{1F1FA}\u{1F1FF}','\u{1F1FB}\u{1F1E6}','\u{1F1FB}\u{1F1E8}','\u{1F1FB}\u{1F1EA}','\u{1F1FB}\u{1F1EC}','\u{1F1FB}\u{1F1EE}','\u{1F1FB}\u{1F1F3}','\u{1F1FB}\u{1F1FA}','\u{1F1FC}\u{1F1EB}','\u{1F1FC}\u{1F1F8}','\u{1F1FD}\u{1F1F0}','\u{1F1FE}\u{1F1EA}','\u{1F1FE}\u{1F1F9}','\u{1F1FF}\u{1F1E6}','\u{1F1FF}\u{1F1F2}','\u{1F1FF}\u{1F1FC}','\u{1F202}\uFE0F','\u{1F237}\uFE0F','\u{1F321}\uFE0F','\u{1F324}\uFE0F','\u{1F325}\uFE0F','\u{1F326}\uFE0F','\u{1F327}\uFE0F','\u{1F328}\uFE0F','\u{1F329}\uFE0F','\u{1F32A}\uFE0F','\u{1F32B}\uFE0F','\u{1F32C}\uFE0F','\u{1F336}\uFE0F','\u{1F344}\u200D\u{1F7EB}','\u{1F34B}\u200D\u{1F7E9}','\u{1F37D}\uFE0F','\u{1F385}\u{1F3FB}','\u{1F385}\u{1F3FC}','\u{1F385}\u{1F3FD}','\u{1F385}\u{1F3FE}','\u{1F385}\u{1F3FF}','\u{1F396}\uFE0F','\u{1F397}\uFE0F','\u{1F399}\uFE0F','\u{1F39A}\uFE0F','\u{1F39B}\uFE0F','\u{1F39E}\uFE0F','\u{1F39F}\uFE0F','\u{1F3C2}\u{1F3FB}','\u{1F3C2}\u{1F3FC}','\u{1F3C2}\u{1F3FD}','\u{1F3C2}\u{1F3FE}','\u{1F3C2}\u{1F3FF}','\u{1F3C3}\u200D\u2640\uFE0F','\u{1F3C3}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u200D\u2642\uFE0F','\u{1F3C3}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FB}','\u{1F3C3}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F3C3}\u{1F3FB}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F3C3}\u{1F3FB}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FB}\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FC}','\u{1F3C3}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F3C3}\u{1F3FC}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F3C3}\u{1F3FC}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FC}\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FD}','\u{1F3C3}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F3C3}\u{1F3FD}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F3C3}\u{1F3FD}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FD}\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FE}','\u{1F3C3}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F3C3}\u{1F3FE}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F3C3}\u{1F3FE}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FE}\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FF}','\u{1F3C3}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F3C3}\u{1F3FF}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F3C3}\u{1F3FF}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FF}\u200D\u27A1\uFE0F','\u{1F3C4}\u200D\u2640\uFE0F','\u{1F3C4}\u200D\u2642\uFE0F','\u{1F3C4}\u{1F3FB}','\u{1F3C4}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F3C4}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F3C4}\u{1F3FC}','\u{1F3C4}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F3C4}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F3C4}\u{1F3FD}','\u{1F3C4}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F3C4}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F3C4}\u{1F3FE}','\u{1F3C4}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F3C4}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F3C4}\u{1F3FF}','\u{1F3C4}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F3C4}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F3C7}\u{1F3FB}','\u{1F3C7}\u{1F3FC}','\u{1F3C7}\u{1F3FD}','\u{1F3C7}\u{1F3FE}','\u{1F3C7}\u{1F3FF}','\u{1F3CA}\u200D\u2640\uFE0F','\u{1F3CA}\u200D\u2642\uFE0F','\u{1F3CA}\u{1F3FB}','\u{1F3CA}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F3CA}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F3CA}\u{1F3FC}','\u{1F3CA}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F3CA}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F3CA}\u{1F3FD}','\u{1F3CA}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F3CA}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F3CA}\u{1F3FE}','\u{1F3CA}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F3CA}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F3CA}\u{1F3FF}','\u{1F3CA}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F3CA}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F3CB}\u{1F3FB}','\u{1F3CB}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F3CB}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F3CB}\u{1F3FC}','\u{1F3CB}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F3CB}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F3CB}\u{1F3FD}','\u{1F3CB}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F3CB}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F3CB}\u{1F3FE}','\u{1F3CB}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F3CB}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F3CB}\u{1F3FF}','\u{1F3CB}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F3CB}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F3CB}\uFE0F','\u{1F3CB}\uFE0F\u200D\u2640\uFE0F','\u{1F3CB}\uFE0F\u200D\u2642\uFE0F','\u{1F3CC}\u{1F3FB}','\u{1F3CC}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F3CC}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F3CC}\u{1F3FC}','\u{1F3CC}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F3CC}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F3CC}\u{1F3FD}','\u{1F3CC}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F3CC}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F3CC}\u{1F3FE}','\u{1F3CC}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F3CC}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F3CC}\u{1F3FF}','\u{1F3CC}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F3CC}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F3CC}\uFE0F','\u{1F3CC}\uFE0F\u200D\u2640\uFE0F','\u{1F3CC}\uFE0F\u200D\u2642\uFE0F','\u{1F3CD}\uFE0F','\u{1F3CE}\uFE0F','\u{1F3D4}\uFE0F','\u{1F3D5}\uFE0F','\u{1F3D6}\uFE0F','\u{1F3D7}\uFE0F','\u{1F3D8}\uFE0F','\u{1F3D9}\uFE0F','\u{1F3DA}\uFE0F','\u{1F3DB}\uFE0F','\u{1F3DC}\uFE0F','\u{1F3DD}\uFE0F','\u{1F3DE}\uFE0F','\u{1F3DF}\uFE0F','\u{1F3F3}\uFE0F','\u{1F3F3}\uFE0F\u200D\u26A7\uFE0F','\u{1F3F3}\uFE0F\u200D\u{1F308}','\u{1F3F4}\u200D\u2620\uFE0F','\u{1F3F4}\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0067}\u{E007F}','\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}','\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}','\u{1F3F5}\uFE0F','\u{1F3F7}\uFE0F','\u{1F408}\u200D\u2B1B','\u{1F415}\u200D\u{1F9BA}','\u{1F426}\u200D\u2B1B','\u{1F426}\u200D\u{1F525}','\u{1F43B}\u200D\u2744\uFE0F','\u{1F43F}\uFE0F','\u{1F441}\uFE0F','\u{1F441}\uFE0F\u200D\u{1F5E8}\uFE0F','\u{1F442}\u{1F3FB}','\u{1F442}\u{1F3FC}','\u{1F442}\u{1F3FD}','\u{1F442}\u{1F3FE}','\u{1F442}\u{1F3FF}','\u{1F443}\u{1F3FB}','\u{1F443}\u{1F3FC}','\u{1F443}\u{1F3FD}','\u{1F443}\u{1F3FE}','\u{1F443}\u{1F3FF}','\u{1F446}\u{1F3FB}','\u{1F446}\u{1F3FC}','\u{1F446}\u{1F3FD}','\u{1F446}\u{1F3FE}','\u{1F446}\u{1F3FF}','\u{1F447}\u{1F3FB}','\u{1F447}\u{1F3FC}','\u{1F447}\u{1F3FD}','\u{1F447}\u{1F3FE}','\u{1F447}\u{1F3FF}','\u{1F448}\u{1F3FB}','\u{1F448}\u{1F3FC}','\u{1F448}\u{1F3FD}','\u{1F448}\u{1F3FE}','\u{1F448}\u{1F3FF}','\u{1F449}\u{1F3FB}','\u{1F449}\u{1F3FC}','\u{1F449}\u{1F3FD}','\u{1F449}\u{1F3FE}','\u{1F449}\u{1F3FF}','\u{1F44A}\u{1F3FB}','\u{1F44A}\u{1F3FC}','\u{1F44A}\u{1F3FD}','\u{1F44A}\u{1F3FE}','\u{1F44A}\u{1F3FF}','\u{1F44B}\u{1F3FB}','\u{1F44B}\u{1F3FC}','\u{1F44B}\u{1F3FD}','\u{1F44B}\u{1F3FE}','\u{1F44B}\u{1F3FF}','\u{1F44C}\u{1F3FB}','\u{1F44C}\u{1F3FC}','\u{1F44C}\u{1F3FD}','\u{1F44C}\u{1F3FE}','\u{1F44C}\u{1F3FF}','\u{1F44D}\u{1F3FB}','\u{1F44D}\u{1F3FC}','\u{1F44D}\u{1F3FD}','\u{1F44D}\u{1F3FE}','\u{1F44D}\u{1F3FF}','\u{1F44E}\u{1F3FB}','\u{1F44E}\u{1F3FC}','\u{1F44E}\u{1F3FD}','\u{1F44E}\u{1F3FE}','\u{1F44E}\u{1F3FF}','\u{1F44F}\u{1F3FB}','\u{1F44F}\u{1F3FC}','\u{1F44F}\u{1F3FD}','\u{1F44F}\u{1F3FE}','\u{1F44F}\u{1F3FF}','\u{1F450}\u{1F3FB}','\u{1F450}\u{1F3FC}','\u{1F450}\u{1F3FD}','\u{1F450}\u{1F3FE}','\u{1F450}\u{1F3FF}','\u{1F466}\u{1F3FB}','\u{1F466}\u{1F3FC}','\u{1F466}\u{1F3FD}','\u{1F466}\u{1F3FE}','\u{1F466}\u{1F3FF}','\u{1F467}\u{1F3FB}','\u{1F467}\u{1F3FC}','\u{1F467}\u{1F3FD}','\u{1F467}\u{1F3FE}','\u{1F467}\u{1F3FF}','\u{1F468}\u200D\u2695\uFE0F','\u{1F468}\u200D\u2696\uFE0F','\u{1F468}\u200D\u2708\uFE0F','\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F468}','\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}','\u{1F468}\u200D\u{1F33E}','\u{1F468}\u200D\u{1F373}','\u{1F468}\u200D\u{1F37C}','\u{1F468}\u200D\u{1F393}','\u{1F468}\u200D\u{1F3A4}','\u{1F468}\u200D\u{1F3A8}','\u{1F468}\u200D\u{1F3EB}','\u{1F468}\u200D\u{1F3ED}','\u{1F468}\u200D\u{1F466}','\u{1F468}\u200D\u{1F466}\u200D\u{1F466}','\u{1F468}\u200D\u{1F467}','\u{1F468}\u200D\u{1F467}\u200D\u{1F466}','\u{1F468}\u200D\u{1F467}\u200D\u{1F467}','\u{1F468}\u200D\u{1F468}\u200D\u{1F466}','\u{1F468}\u200D\u{1F468}\u200D\u{1F466}\u200D\u{1F466}','\u{1F468}\u200D\u{1F468}\u200D\u{1F467}','\u{1F468}\u200D\u{1F468}\u200D\u{1F467}\u200D\u{1F466}','\u{1F468}\u200D\u{1F468}\u200D\u{1F467}\u200D\u{1F467}','\u{1F468}\u200D\u{1F469}\u200D\u{1F466}','\u{1F468}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}','\u{1F468}\u200D\u{1F469}\u200D\u{1F467}','\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}','\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}','\u{1F468}\u200D\u{1F4BB}','\u{1F468}\u200D\u{1F4BC}','\u{1F468}\u200D\u{1F527}','\u{1F468}\u200D\u{1F52C}','\u{1F468}\u200D\u{1F680}','\u{1F468}\u200D\u{1F692}','\u{1F468}\u200D\u{1F9AF}','\u{1F468}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F468}\u200D\u{1F9B0}','\u{1F468}\u200D\u{1F9B1}','\u{1F468}\u200D\u{1F9B2}','\u{1F468}\u200D\u{1F9B3}','\u{1F468}\u200D\u{1F9BC}','\u{1F468}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F468}\u200D\u{1F9BD}','\u{1F468}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FB}\u200D\u2695\uFE0F','\u{1F468}\u{1F3FB}\u200D\u2696\uFE0F','\u{1F468}\u{1F3FB}\u200D\u2708\uFE0F','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FB}\u200D\u{1F33E}','\u{1F468}\u{1F3FB}\u200D\u{1F373}','\u{1F468}\u{1F3FB}\u200D\u{1F37C}','\u{1F468}\u{1F3FB}\u200D\u{1F393}','\u{1F468}\u{1F3FB}\u200D\u{1F3A4}','\u{1F468}\u{1F3FB}\u200D\u{1F3A8}','\u{1F468}\u{1F3FB}\u200D\u{1F3EB}','\u{1F468}\u{1F3FB}\u200D\u{1F3ED}','\u{1F468}\u{1F3FB}\u200D\u{1F4BB}','\u{1F468}\u{1F3FB}\u200D\u{1F4BC}','\u{1F468}\u{1F3FB}\u200D\u{1F527}','\u{1F468}\u{1F3FB}\u200D\u{1F52C}','\u{1F468}\u{1F3FB}\u200D\u{1F680}','\u{1F468}\u{1F3FB}\u200D\u{1F692}','\u{1F468}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FB}\u200D\u{1F9AF}','\u{1F468}\u{1F3FB}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FB}\u200D\u{1F9B0}','\u{1F468}\u{1F3FB}\u200D\u{1F9B1}','\u{1F468}\u{1F3FB}\u200D\u{1F9B2}','\u{1F468}\u{1F3FB}\u200D\u{1F9B3}','\u{1F468}\u{1F3FB}\u200D\u{1F9BC}','\u{1F468}\u{1F3FB}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FB}\u200D\u{1F9BD}','\u{1F468}\u{1F3FB}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FC}\u200D\u2695\uFE0F','\u{1F468}\u{1F3FC}\u200D\u2696\uFE0F','\u{1F468}\u{1F3FC}\u200D\u2708\uFE0F','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FC}\u200D\u{1F33E}','\u{1F468}\u{1F3FC}\u200D\u{1F373}','\u{1F468}\u{1F3FC}\u200D\u{1F37C}','\u{1F468}\u{1F3FC}\u200D\u{1F393}','\u{1F468}\u{1F3FC}\u200D\u{1F3A4}','\u{1F468}\u{1F3FC}\u200D\u{1F3A8}','\u{1F468}\u{1F3FC}\u200D\u{1F3EB}','\u{1F468}\u{1F3FC}\u200D\u{1F3ED}','\u{1F468}\u{1F3FC}\u200D\u{1F4BB}','\u{1F468}\u{1F3FC}\u200D\u{1F4BC}','\u{1F468}\u{1F3FC}\u200D\u{1F527}','\u{1F468}\u{1F3FC}\u200D\u{1F52C}','\u{1F468}\u{1F3FC}\u200D\u{1F680}','\u{1F468}\u{1F3FC}\u200D\u{1F692}','\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FC}\u200D\u{1F9AF}','\u{1F468}\u{1F3FC}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FC}\u200D\u{1F9B0}','\u{1F468}\u{1F3FC}\u200D\u{1F9B1}','\u{1F468}\u{1F3FC}\u200D\u{1F9B2}','\u{1F468}\u{1F3FC}\u200D\u{1F9B3}','\u{1F468}\u{1F3FC}\u200D\u{1F9BC}','\u{1F468}\u{1F3FC}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FC}\u200D\u{1F9BD}','\u{1F468}\u{1F3FC}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FD}\u200D\u2695\uFE0F','\u{1F468}\u{1F3FD}\u200D\u2696\uFE0F','\u{1F468}\u{1F3FD}\u200D\u2708\uFE0F','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FD}\u200D\u{1F33E}','\u{1F468}\u{1F3FD}\u200D\u{1F373}','\u{1F468}\u{1F3FD}\u200D\u{1F37C}','\u{1F468}\u{1F3FD}\u200D\u{1F393}','\u{1F468}\u{1F3FD}\u200D\u{1F3A4}','\u{1F468}\u{1F3FD}\u200D\u{1F3A8}','\u{1F468}\u{1F3FD}\u200D\u{1F3EB}','\u{1F468}\u{1F3FD}\u200D\u{1F3ED}','\u{1F468}\u{1F3FD}\u200D\u{1F4BB}','\u{1F468}\u{1F3FD}\u200D\u{1F4BC}','\u{1F468}\u{1F3FD}\u200D\u{1F527}','\u{1F468}\u{1F3FD}\u200D\u{1F52C}','\u{1F468}\u{1F3FD}\u200D\u{1F680}','\u{1F468}\u{1F3FD}\u200D\u{1F692}','\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FD}\u200D\u{1F9AF}','\u{1F468}\u{1F3FD}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FD}\u200D\u{1F9B0}','\u{1F468}\u{1F3FD}\u200D\u{1F9B1}','\u{1F468}\u{1F3FD}\u200D\u{1F9B2}','\u{1F468}\u{1F3FD}\u200D\u{1F9B3}','\u{1F468}\u{1F3FD}\u200D\u{1F9BC}','\u{1F468}\u{1F3FD}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FD}\u200D\u{1F9BD}','\u{1F468}\u{1F3FD}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FE}\u200D\u2695\uFE0F','\u{1F468}\u{1F3FE}\u200D\u2696\uFE0F','\u{1F468}\u{1F3FE}\u200D\u2708\uFE0F','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FE}\u200D\u{1F33E}','\u{1F468}\u{1F3FE}\u200D\u{1F373}','\u{1F468}\u{1F3FE}\u200D\u{1F37C}','\u{1F468}\u{1F3FE}\u200D\u{1F393}','\u{1F468}\u{1F3FE}\u200D\u{1F3A4}','\u{1F468}\u{1F3FE}\u200D\u{1F3A8}','\u{1F468}\u{1F3FE}\u200D\u{1F3EB}','\u{1F468}\u{1F3FE}\u200D\u{1F3ED}','\u{1F468}\u{1F3FE}\u200D\u{1F4BB}','\u{1F468}\u{1F3FE}\u200D\u{1F4BC}','\u{1F468}\u{1F3FE}\u200D\u{1F527}','\u{1F468}\u{1F3FE}\u200D\u{1F52C}','\u{1F468}\u{1F3FE}\u200D\u{1F680}','\u{1F468}\u{1F3FE}\u200D\u{1F692}','\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FE}\u200D\u{1F9AF}','\u{1F468}\u{1F3FE}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FE}\u200D\u{1F9B0}','\u{1F468}\u{1F3FE}\u200D\u{1F9B1}','\u{1F468}\u{1F3FE}\u200D\u{1F9B2}','\u{1F468}\u{1F3FE}\u200D\u{1F9B3}','\u{1F468}\u{1F3FE}\u200D\u{1F9BC}','\u{1F468}\u{1F3FE}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FE}\u200D\u{1F9BD}','\u{1F468}\u{1F3FE}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FF}\u200D\u2695\uFE0F','\u{1F468}\u{1F3FF}\u200D\u2696\uFE0F','\u{1F468}\u{1F3FF}\u200D\u2708\uFE0F','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FF}\u200D\u{1F33E}','\u{1F468}\u{1F3FF}\u200D\u{1F373}','\u{1F468}\u{1F3FF}\u200D\u{1F37C}','\u{1F468}\u{1F3FF}\u200D\u{1F393}','\u{1F468}\u{1F3FF}\u200D\u{1F3A4}','\u{1F468}\u{1F3FF}\u200D\u{1F3A8}','\u{1F468}\u{1F3FF}\u200D\u{1F3EB}','\u{1F468}\u{1F3FF}\u200D\u{1F3ED}','\u{1F468}\u{1F3FF}\u200D\u{1F4BB}','\u{1F468}\u{1F3FF}\u200D\u{1F4BC}','\u{1F468}\u{1F3FF}\u200D\u{1F527}','\u{1F468}\u{1F3FF}\u200D\u{1F52C}','\u{1F468}\u{1F3FF}\u200D\u{1F680}','\u{1F468}\u{1F3FF}\u200D\u{1F692}','\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FF}\u200D\u{1F9AF}','\u{1F468}\u{1F3FF}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FF}\u200D\u{1F9B0}','\u{1F468}\u{1F3FF}\u200D\u{1F9B1}','\u{1F468}\u{1F3FF}\u200D\u{1F9B2}','\u{1F468}\u{1F3FF}\u200D\u{1F9B3}','\u{1F468}\u{1F3FF}\u200D\u{1F9BC}','\u{1F468}\u{1F3FF}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FF}\u200D\u{1F9BD}','\u{1F468}\u{1F3FF}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F469}\u200D\u2695\uFE0F','\u{1F469}\u200D\u2696\uFE0F','\u{1F469}\u200D\u2708\uFE0F','\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F468}','\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F469}','\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}','\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}','\u{1F469}\u200D\u{1F33E}','\u{1F469}\u200D\u{1F373}','\u{1F469}\u200D\u{1F37C}','\u{1F469}\u200D\u{1F393}','\u{1F469}\u200D\u{1F3A4}','\u{1F469}\u200D\u{1F3A8}','\u{1F469}\u200D\u{1F3EB}','\u{1F469}\u200D\u{1F3ED}','\u{1F469}\u200D\u{1F466}','\u{1F469}\u200D\u{1F466}\u200D\u{1F466}','\u{1F469}\u200D\u{1F467}','\u{1F469}\u200D\u{1F467}\u200D\u{1F466}','\u{1F469}\u200D\u{1F467}\u200D\u{1F467}','\u{1F469}\u200D\u{1F469}\u200D\u{1F466}','\u{1F469}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}','\u{1F469}\u200D\u{1F469}\u200D\u{1F467}','\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}','\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}','\u{1F469}\u200D\u{1F4BB}','\u{1F469}\u200D\u{1F4BC}','\u{1F469}\u200D\u{1F527}','\u{1F469}\u200D\u{1F52C}','\u{1F469}\u200D\u{1F680}','\u{1F469}\u200D\u{1F692}','\u{1F469}\u200D\u{1F9AF}','\u{1F469}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F469}\u200D\u{1F9B0}','\u{1F469}\u200D\u{1F9B1}','\u{1F469}\u200D\u{1F9B2}','\u{1F469}\u200D\u{1F9B3}','\u{1F469}\u200D\u{1F9BC}','\u{1F469}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F469}\u200D\u{1F9BD}','\u{1F469}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FB}\u200D\u2695\uFE0F','\u{1F469}\u{1F3FB}\u200D\u2696\uFE0F','\u{1F469}\u{1F3FB}\u200D\u2708\uFE0F','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FB}\u200D\u{1F33E}','\u{1F469}\u{1F3FB}\u200D\u{1F373}','\u{1F469}\u{1F3FB}\u200D\u{1F37C}','\u{1F469}\u{1F3FB}\u200D\u{1F393}','\u{1F469}\u{1F3FB}\u200D\u{1F3A4}','\u{1F469}\u{1F3FB}\u200D\u{1F3A8}','\u{1F469}\u{1F3FB}\u200D\u{1F3EB}','\u{1F469}\u{1F3FB}\u200D\u{1F3ED}','\u{1F469}\u{1F3FB}\u200D\u{1F4BB}','\u{1F469}\u{1F3FB}\u200D\u{1F4BC}','\u{1F469}\u{1F3FB}\u200D\u{1F527}','\u{1F469}\u{1F3FB}\u200D\u{1F52C}','\u{1F469}\u{1F3FB}\u200D\u{1F680}','\u{1F469}\u{1F3FB}\u200D\u{1F692}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FB}\u200D\u{1F9AF}','\u{1F469}\u{1F3FB}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FB}\u200D\u{1F9B0}','\u{1F469}\u{1F3FB}\u200D\u{1F9B1}','\u{1F469}\u{1F3FB}\u200D\u{1F9B2}','\u{1F469}\u{1F3FB}\u200D\u{1F9B3}','\u{1F469}\u{1F3FB}\u200D\u{1F9BC}','\u{1F469}\u{1F3FB}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FB}\u200D\u{1F9BD}','\u{1F469}\u{1F3FB}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FC}\u200D\u2695\uFE0F','\u{1F469}\u{1F3FC}\u200D\u2696\uFE0F','\u{1F469}\u{1F3FC}\u200D\u2708\uFE0F','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FC}\u200D\u{1F33E}','\u{1F469}\u{1F3FC}\u200D\u{1F373}','\u{1F469}\u{1F3FC}\u200D\u{1F37C}','\u{1F469}\u{1F3FC}\u200D\u{1F393}','\u{1F469}\u{1F3FC}\u200D\u{1F3A4}','\u{1F469}\u{1F3FC}\u200D\u{1F3A8}','\u{1F469}\u{1F3FC}\u200D\u{1F3EB}','\u{1F469}\u{1F3FC}\u200D\u{1F3ED}','\u{1F469}\u{1F3FC}\u200D\u{1F4BB}','\u{1F469}\u{1F3FC}\u200D\u{1F4BC}','\u{1F469}\u{1F3FC}\u200D\u{1F527}','\u{1F469}\u{1F3FC}\u200D\u{1F52C}','\u{1F469}\u{1F3FC}\u200D\u{1F680}','\u{1F469}\u{1F3FC}\u200D\u{1F692}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FC}\u200D\u{1F9AF}','\u{1F469}\u{1F3FC}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FC}\u200D\u{1F9B0}','\u{1F469}\u{1F3FC}\u200D\u{1F9B1}','\u{1F469}\u{1F3FC}\u200D\u{1F9B2}','\u{1F469}\u{1F3FC}\u200D\u{1F9B3}','\u{1F469}\u{1F3FC}\u200D\u{1F9BC}','\u{1F469}\u{1F3FC}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FC}\u200D\u{1F9BD}','\u{1F469}\u{1F3FC}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FD}\u200D\u2695\uFE0F','\u{1F469}\u{1F3FD}\u200D\u2696\uFE0F','\u{1F469}\u{1F3FD}\u200D\u2708\uFE0F','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FD}\u200D\u{1F33E}','\u{1F469}\u{1F3FD}\u200D\u{1F373}','\u{1F469}\u{1F3FD}\u200D\u{1F37C}','\u{1F469}\u{1F3FD}\u200D\u{1F393}','\u{1F469}\u{1F3FD}\u200D\u{1F3A4}','\u{1F469}\u{1F3FD}\u200D\u{1F3A8}','\u{1F469}\u{1F3FD}\u200D\u{1F3EB}','\u{1F469}\u{1F3FD}\u200D\u{1F3ED}','\u{1F469}\u{1F3FD}\u200D\u{1F4BB}','\u{1F469}\u{1F3FD}\u200D\u{1F4BC}','\u{1F469}\u{1F3FD}\u200D\u{1F527}','\u{1F469}\u{1F3FD}\u200D\u{1F52C}','\u{1F469}\u{1F3FD}\u200D\u{1F680}','\u{1F469}\u{1F3FD}\u200D\u{1F692}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FD}\u200D\u{1F9AF}','\u{1F469}\u{1F3FD}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FD}\u200D\u{1F9B0}','\u{1F469}\u{1F3FD}\u200D\u{1F9B1}','\u{1F469}\u{1F3FD}\u200D\u{1F9B2}','\u{1F469}\u{1F3FD}\u200D\u{1F9B3}','\u{1F469}\u{1F3FD}\u200D\u{1F9BC}','\u{1F469}\u{1F3FD}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FD}\u200D\u{1F9BD}','\u{1F469}\u{1F3FD}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FE}\u200D\u2695\uFE0F','\u{1F469}\u{1F3FE}\u200D\u2696\uFE0F','\u{1F469}\u{1F3FE}\u200D\u2708\uFE0F','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FE}\u200D\u{1F33E}','\u{1F469}\u{1F3FE}\u200D\u{1F373}','\u{1F469}\u{1F3FE}\u200D\u{1F37C}','\u{1F469}\u{1F3FE}\u200D\u{1F393}','\u{1F469}\u{1F3FE}\u200D\u{1F3A4}','\u{1F469}\u{1F3FE}\u200D\u{1F3A8}','\u{1F469}\u{1F3FE}\u200D\u{1F3EB}','\u{1F469}\u{1F3FE}\u200D\u{1F3ED}','\u{1F469}\u{1F3FE}\u200D\u{1F4BB}','\u{1F469}\u{1F3FE}\u200D\u{1F4BC}','\u{1F469}\u{1F3FE}\u200D\u{1F527}','\u{1F469}\u{1F3FE}\u200D\u{1F52C}','\u{1F469}\u{1F3FE}\u200D\u{1F680}','\u{1F469}\u{1F3FE}\u200D\u{1F692}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FE}\u200D\u{1F9AF}','\u{1F469}\u{1F3FE}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FE}\u200D\u{1F9B0}','\u{1F469}\u{1F3FE}\u200D\u{1F9B1}','\u{1F469}\u{1F3FE}\u200D\u{1F9B2}','\u{1F469}\u{1F3FE}\u200D\u{1F9B3}','\u{1F469}\u{1F3FE}\u200D\u{1F9BC}','\u{1F469}\u{1F3FE}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FE}\u200D\u{1F9BD}','\u{1F469}\u{1F3FE}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FF}\u200D\u2695\uFE0F','\u{1F469}\u{1F3FF}\u200D\u2696\uFE0F','\u{1F469}\u{1F3FF}\u200D\u2708\uFE0F','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FF}\u200D\u{1F33E}','\u{1F469}\u{1F3FF}\u200D\u{1F373}','\u{1F469}\u{1F3FF}\u200D\u{1F37C}','\u{1F469}\u{1F3FF}\u200D\u{1F393}','\u{1F469}\u{1F3FF}\u200D\u{1F3A4}','\u{1F469}\u{1F3FF}\u200D\u{1F3A8}','\u{1F469}\u{1F3FF}\u200D\u{1F3EB}','\u{1F469}\u{1F3FF}\u200D\u{1F3ED}','\u{1F469}\u{1F3FF}\u200D\u{1F4BB}','\u{1F469}\u{1F3FF}\u200D\u{1F4BC}','\u{1F469}\u{1F3FF}\u200D\u{1F527}','\u{1F469}\u{1F3FF}\u200D\u{1F52C}','\u{1F469}\u{1F3FF}\u200D\u{1F680}','\u{1F469}\u{1F3FF}\u200D\u{1F692}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FF}\u200D\u{1F9AF}','\u{1F469}\u{1F3FF}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FF}\u200D\u{1F9B0}','\u{1F469}\u{1F3FF}\u200D\u{1F9B1}','\u{1F469}\u{1F3FF}\u200D\u{1F9B2}','\u{1F469}\u{1F3FF}\u200D\u{1F9B3}','\u{1F469}\u{1F3FF}\u200D\u{1F9BC}','\u{1F469}\u{1F3FF}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FF}\u200D\u{1F9BD}','\u{1F469}\u{1F3FF}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F46B}\u{1F3FB}','\u{1F46B}\u{1F3FC}','\u{1F46B}\u{1F3FD}','\u{1F46B}\u{1F3FE}','\u{1F46B}\u{1F3FF}','\u{1F46C}\u{1F3FB}','\u{1F46C}\u{1F3FC}','\u{1F46C}\u{1F3FD}','\u{1F46C}\u{1F3FE}','\u{1F46C}\u{1F3FF}','\u{1F46D}\u{1F3FB}','\u{1F46D}\u{1F3FC}','\u{1F46D}\u{1F3FD}','\u{1F46D}\u{1F3FE}','\u{1F46D}\u{1F3FF}','\u{1F46E}\u200D\u2640\uFE0F','\u{1F46E}\u200D\u2642\uFE0F','\u{1F46E}\u{1F3FB}','\u{1F46E}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F46E}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F46E}\u{1F3FC}','\u{1F46E}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F46E}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F46E}\u{1F3FD}','\u{1F46E}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F46E}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F46E}\u{1F3FE}','\u{1F46E}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F46E}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F46E}\u{1F3FF}','\u{1F46E}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F46E}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F46F}\u200D\u2640\uFE0F','\u{1F46F}\u200D\u2642\uFE0F','\u{1F470}\u200D\u2640\uFE0F','\u{1F470}\u200D\u2642\uFE0F','\u{1F470}\u{1F3FB}','\u{1F470}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F470}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F470}\u{1F3FC}','\u{1F470}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F470}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F470}\u{1F3FD}','\u{1F470}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F470}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F470}\u{1F3FE}','\u{1F470}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F470}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F470}\u{1F3FF}','\u{1F470}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F470}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F471}\u200D\u2640\uFE0F','\u{1F471}\u200D\u2642\uFE0F','\u{1F471}\u{1F3FB}','\u{1F471}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F471}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F471}\u{1F3FC}','\u{1F471}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F471}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F471}\u{1F3FD}','\u{1F471}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F471}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F471}\u{1F3FE}','\u{1F471}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F471}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F471}\u{1F3FF}','\u{1F471}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F471}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F472}\u{1F3FB}','\u{1F472}\u{1F3FC}','\u{1F472}\u{1F3FD}','\u{1F472}\u{1F3FE}','\u{1F472}\u{1F3FF}','\u{1F473}\u200D\u2640\uFE0F','\u{1F473}\u200D\u2642\uFE0F','\u{1F473}\u{1F3FB}','\u{1F473}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F473}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F473}\u{1F3FC}','\u{1F473}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F473}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F473}\u{1F3FD}','\u{1F473}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F473}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F473}\u{1F3FE}','\u{1F473}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F473}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F473}\u{1F3FF}','\u{1F473}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F473}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F474}\u{1F3FB}','\u{1F474}\u{1F3FC}','\u{1F474}\u{1F3FD}','\u{1F474}\u{1F3FE}','\u{1F474}\u{1F3FF}','\u{1F475}\u{1F3FB}','\u{1F475}\u{1F3FC}','\u{1F475}\u{1F3FD}','\u{1F475}\u{1F3FE}','\u{1F475}\u{1F3FF}','\u{1F476}\u{1F3FB}','\u{1F476}\u{1F3FC}','\u{1F476}\u{1F3FD}','\u{1F476}\u{1F3FE}','\u{1F476}\u{1F3FF}','\u{1F477}\u200D\u2640\uFE0F','\u{1F477}\u200D\u2642\uFE0F','\u{1F477}\u{1F3FB}','\u{1F477}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F477}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F477}\u{1F3FC}','\u{1F477}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F477}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F477}\u{1F3FD}','\u{1F477}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F477}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F477}\u{1F3FE}','\u{1F477}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F477}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F477}\u{1F3FF}','\u{1F477}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F477}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F478}\u{1F3FB}','\u{1F478}\u{1F3FC}','\u{1F478}\u{1F3FD}','\u{1F478}\u{1F3FE}','\u{1F478}\u{1F3FF}','\u{1F47C}\u{1F3FB}','\u{1F47C}\u{1F3FC}','\u{1F47C}\u{1F3FD}','\u{1F47C}\u{1F3FE}','\u{1F47C}\u{1F3FF}','\u{1F481}\u200D\u2640\uFE0F','\u{1F481}\u200D\u2642\uFE0F','\u{1F481}\u{1F3FB}','\u{1F481}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F481}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F481}\u{1F3FC}','\u{1F481}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F481}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F481}\u{1F3FD}','\u{1F481}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F481}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F481}\u{1F3FE}','\u{1F481}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F481}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F481}\u{1F3FF}','\u{1F481}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F481}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F482}\u200D\u2640\uFE0F','\u{1F482}\u200D\u2642\uFE0F','\u{1F482}\u{1F3FB}','\u{1F482}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F482}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F482}\u{1F3FC}','\u{1F482}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F482}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F482}\u{1F3FD}','\u{1F482}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F482}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F482}\u{1F3FE}','\u{1F482}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F482}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F482}\u{1F3FF}','\u{1F482}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F482}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F483}\u{1F3FB}','\u{1F483}\u{1F3FC}','\u{1F483}\u{1F3FD}','\u{1F483}\u{1F3FE}','\u{1F483}\u{1F3FF}','\u{1F485}\u{1F3FB}','\u{1F485}\u{1F3FC}','\u{1F485}\u{1F3FD}','\u{1F485}\u{1F3FE}','\u{1F485}\u{1F3FF}','\u{1F486}\u200D\u2640\uFE0F','\u{1F486}\u200D\u2642\uFE0F','\u{1F486}\u{1F3FB}','\u{1F486}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F486}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F486}\u{1F3FC}','\u{1F486}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F486}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F486}\u{1F3FD}','\u{1F486}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F486}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F486}\u{1F3FE}','\u{1F486}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F486}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F486}\u{1F3FF}','\u{1F486}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F486}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F487}\u200D\u2640\uFE0F','\u{1F487}\u200D\u2642\uFE0F','\u{1F487}\u{1F3FB}','\u{1F487}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F487}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F487}\u{1F3FC}','\u{1F487}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F487}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F487}\u{1F3FD}','\u{1F487}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F487}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F487}\u{1F3FE}','\u{1F487}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F487}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F487}\u{1F3FF}','\u{1F487}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F487}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F48F}\u{1F3FB}','\u{1F48F}\u{1F3FC}','\u{1F48F}\u{1F3FD}','\u{1F48F}\u{1F3FE}','\u{1F48F}\u{1F3FF}','\u{1F491}\u{1F3FB}','\u{1F491}\u{1F3FC}','\u{1F491}\u{1F3FD}','\u{1F491}\u{1F3FE}','\u{1F491}\u{1F3FF}','\u{1F4AA}\u{1F3FB}','\u{1F4AA}\u{1F3FC}','\u{1F4AA}\u{1F3FD}','\u{1F4AA}\u{1F3FE}','\u{1F4AA}\u{1F3FF}','\u{1F4FD}\uFE0F','\u{1F549}\uFE0F','\u{1F54A}\uFE0F','\u{1F56F}\uFE0F','\u{1F570}\uFE0F','\u{1F573}\uFE0F','\u{1F574}\u{1F3FB}','\u{1F574}\u{1F3FC}','\u{1F574}\u{1F3FD}','\u{1F574}\u{1F3FE}','\u{1F574}\u{1F3FF}','\u{1F574}\uFE0F','\u{1F575}\u{1F3FB}','\u{1F575}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F575}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F575}\u{1F3FC}','\u{1F575}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F575}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F575}\u{1F3FD}','\u{1F575}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F575}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F575}\u{1F3FE}','\u{1F575}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F575}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F575}\u{1F3FF}','\u{1F575}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F575}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F575}\uFE0F','\u{1F575}\uFE0F\u200D\u2640\uFE0F','\u{1F575}\uFE0F\u200D\u2642\uFE0F','\u{1F576}\uFE0F','\u{1F577}\uFE0F','\u{1F578}\uFE0F','\u{1F579}\uFE0F','\u{1F57A}\u{1F3FB}','\u{1F57A}\u{1F3FC}','\u{1F57A}\u{1F3FD}','\u{1F57A}\u{1F3FE}','\u{1F57A}\u{1F3FF}','\u{1F587}\uFE0F','\u{1F58A}\uFE0F','\u{1F58B}\uFE0F','\u{1F58C}\uFE0F','\u{1F58D}\uFE0F','\u{1F590}\u{1F3FB}','\u{1F590}\u{1F3FC}','\u{1F590}\u{1F3FD}','\u{1F590}\u{1F3FE}','\u{1F590}\u{1F3FF}','\u{1F590}\uFE0F','\u{1F595}\u{1F3FB}','\u{1F595}\u{1F3FC}','\u{1F595}\u{1F3FD}','\u{1F595}\u{1F3FE}','\u{1F595}\u{1F3FF}','\u{1F596}\u{1F3FB}','\u{1F596}\u{1F3FC}','\u{1F596}\u{1F3FD}','\u{1F596}\u{1F3FE}','\u{1F596}\u{1F3FF}','\u{1F5A5}\uFE0F','\u{1F5A8}\uFE0F','\u{1F5B1}\uFE0F','\u{1F5B2}\uFE0F','\u{1F5BC}\uFE0F','\u{1F5C2}\uFE0F','\u{1F5C3}\uFE0F','\u{1F5C4}\uFE0F','\u{1F5D1}\uFE0F','\u{1F5D2}\uFE0F','\u{1F5D3}\uFE0F','\u{1F5DC}\uFE0F','\u{1F5DD}\uFE0F','\u{1F5DE}\uFE0F','\u{1F5E1}\uFE0F','\u{1F5E3}\uFE0F','\u{1F5E8}\uFE0F','\u{1F5EF}\uFE0F','\u{1F5F3}\uFE0F','\u{1F5FA}\uFE0F','\u{1F62E}\u200D\u{1F4A8}','\u{1F635}\u200D\u{1F4AB}','\u{1F636}\u200D\u{1F32B}\uFE0F','\u{1F642}\u200D\u2194\uFE0F','\u{1F642}\u200D\u2195\uFE0F','\u{1F645}\u200D\u2640\uFE0F','\u{1F645}\u200D\u2642\uFE0F','\u{1F645}\u{1F3FB}','\u{1F645}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F645}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F645}\u{1F3FC}','\u{1F645}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F645}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F645}\u{1F3FD}','\u{1F645}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F645}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F645}\u{1F3FE}','\u{1F645}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F645}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F645}\u{1F3FF}','\u{1F645}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F645}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F646}\u200D\u2640\uFE0F','\u{1F646}\u200D\u2642\uFE0F','\u{1F646}\u{1F3FB}','\u{1F646}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F646}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F646}\u{1F3FC}','\u{1F646}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F646}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F646}\u{1F3FD}','\u{1F646}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F646}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F646}\u{1F3FE}','\u{1F646}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F646}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F646}\u{1F3FF}','\u{1F646}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F646}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F647}\u200D\u2640\uFE0F','\u{1F647}\u200D\u2642\uFE0F','\u{1F647}\u{1F3FB}','\u{1F647}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F647}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F647}\u{1F3FC}','\u{1F647}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F647}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F647}\u{1F3FD}','\u{1F647}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F647}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F647}\u{1F3FE}','\u{1F647}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F647}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F647}\u{1F3FF}','\u{1F647}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F647}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F64B}\u200D\u2640\uFE0F','\u{1F64B}\u200D\u2642\uFE0F','\u{1F64B}\u{1F3FB}','\u{1F64B}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F64B}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F64B}\u{1F3FC}','\u{1F64B}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F64B}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F64B}\u{1F3FD}','\u{1F64B}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F64B}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F64B}\u{1F3FE}','\u{1F64B}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F64B}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F64B}\u{1F3FF}','\u{1F64B}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F64B}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F64C}\u{1F3FB}','\u{1F64C}\u{1F3FC}','\u{1F64C}\u{1F3FD}','\u{1F64C}\u{1F3FE}','\u{1F64C}\u{1F3FF}','\u{1F64D}\u200D\u2640\uFE0F','\u{1F64D}\u200D\u2642\uFE0F','\u{1F64D}\u{1F3FB}','\u{1F64D}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F64D}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F64D}\u{1F3FC}','\u{1F64D}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F64D}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F64D}\u{1F3FD}','\u{1F64D}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F64D}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F64D}\u{1F3FE}','\u{1F64D}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F64D}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F64D}\u{1F3FF}','\u{1F64D}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F64D}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F64E}\u200D\u2640\uFE0F','\u{1F64E}\u200D\u2642\uFE0F','\u{1F64E}\u{1F3FB}','\u{1F64E}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F64E}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F64E}\u{1F3FC}','\u{1F64E}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F64E}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F64E}\u{1F3FD}','\u{1F64E}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F64E}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F64E}\u{1F3FE}','\u{1F64E}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F64E}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F64E}\u{1F3FF}','\u{1F64E}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F64E}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F64F}\u{1F3FB}','\u{1F64F}\u{1F3FC}','\u{1F64F}\u{1F3FD}','\u{1F64F}\u{1F3FE}','\u{1F64F}\u{1F3FF}','\u{1F6A3}\u200D\u2640\uFE0F','\u{1F6A3}\u200D\u2642\uFE0F','\u{1F6A3}\u{1F3FB}','\u{1F6A3}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F6A3}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F6A3}\u{1F3FC}','\u{1F6A3}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F6A3}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F6A3}\u{1F3FD}','\u{1F6A3}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F6A3}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F6A3}\u{1F3FE}','\u{1F6A3}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F6A3}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F6A3}\u{1F3FF}','\u{1F6A3}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F6A3}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F6B4}\u200D\u2640\uFE0F','\u{1F6B4}\u200D\u2642\uFE0F','\u{1F6B4}\u{1F3FB}','\u{1F6B4}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F6B4}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F6B4}\u{1F3FC}','\u{1F6B4}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F6B4}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F6B4}\u{1F3FD}','\u{1F6B4}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F6B4}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F6B4}\u{1F3FE}','\u{1F6B4}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F6B4}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F6B4}\u{1F3FF}','\u{1F6B4}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F6B4}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F6B5}\u200D\u2640\uFE0F','\u{1F6B5}\u200D\u2642\uFE0F','\u{1F6B5}\u{1F3FB}','\u{1F6B5}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F6B5}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F6B5}\u{1F3FC}','\u{1F6B5}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F6B5}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F6B5}\u{1F3FD}','\u{1F6B5}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F6B5}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F6B5}\u{1F3FE}','\u{1F6B5}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F6B5}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F6B5}\u{1F3FF}','\u{1F6B5}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F6B5}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F6B6}\u200D\u2640\uFE0F','\u{1F6B6}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u200D\u2642\uFE0F','\u{1F6B6}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FB}','\u{1F6B6}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F6B6}\u{1F3FB}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F6B6}\u{1F3FB}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FB}\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FC}','\u{1F6B6}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F6B6}\u{1F3FC}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F6B6}\u{1F3FC}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FC}\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FD}','\u{1F6B6}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F6B6}\u{1F3FD}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F6B6}\u{1F3FD}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FD}\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FE}','\u{1F6B6}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F6B6}\u{1F3FE}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F6B6}\u{1F3FE}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FE}\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FF}','\u{1F6B6}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F6B6}\u{1F3FF}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F6B6}\u{1F3FF}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FF}\u200D\u27A1\uFE0F','\u{1F6C0}\u{1F3FB}','\u{1F6C0}\u{1F3FC}','\u{1F6C0}\u{1F3FD}','\u{1F6C0}\u{1F3FE}','\u{1F6C0}\u{1F3FF}','\u{1F6CB}\uFE0F','\u{1F6CC}\u{1F3FB}','\u{1F6CC}\u{1F3FC}','\u{1F6CC}\u{1F3FD}','\u{1F6CC}\u{1F3FE}','\u{1F6CC}\u{1F3FF}','\u{1F6CD}\uFE0F','\u{1F6CE}\uFE0F','\u{1F6CF}\uFE0F','\u{1F6E0}\uFE0F','\u{1F6E1}\uFE0F','\u{1F6E2}\uFE0F','\u{1F6E3}\uFE0F','\u{1F6E4}\uFE0F','\u{1F6E5}\uFE0F','\u{1F6E9}\uFE0F','\u{1F6F0}\uFE0F','\u{1F6F3}\uFE0F','\u{1F90C}\u{1F3FB}','\u{1F90C}\u{1F3FC}','\u{1F90C}\u{1F3FD}','\u{1F90C}\u{1F3FE}','\u{1F90C}\u{1F3FF}','\u{1F90F}\u{1F3FB}','\u{1F90F}\u{1F3FC}','\u{1F90F}\u{1F3FD}','\u{1F90F}\u{1F3FE}','\u{1F90F}\u{1F3FF}','\u{1F918}\u{1F3FB}','\u{1F918}\u{1F3FC}','\u{1F918}\u{1F3FD}','\u{1F918}\u{1F3FE}','\u{1F918}\u{1F3FF}','\u{1F919}\u{1F3FB}','\u{1F919}\u{1F3FC}','\u{1F919}\u{1F3FD}','\u{1F919}\u{1F3FE}','\u{1F919}\u{1F3FF}','\u{1F91A}\u{1F3FB}','\u{1F91A}\u{1F3FC}','\u{1F91A}\u{1F3FD}','\u{1F91A}\u{1F3FE}','\u{1F91A}\u{1F3FF}','\u{1F91B}\u{1F3FB}','\u{1F91B}\u{1F3FC}','\u{1F91B}\u{1F3FD}','\u{1F91B}\u{1F3FE}','\u{1F91B}\u{1F3FF}','\u{1F91C}\u{1F3FB}','\u{1F91C}\u{1F3FC}','\u{1F91C}\u{1F3FD}','\u{1F91C}\u{1F3FE}','\u{1F91C}\u{1F3FF}','\u{1F91D}\u{1F3FB}','\u{1F91D}\u{1F3FC}','\u{1F91D}\u{1F3FD}','\u{1F91D}\u{1F3FE}','\u{1F91D}\u{1F3FF}','\u{1F91E}\u{1F3FB}','\u{1F91E}\u{1F3FC}','\u{1F91E}\u{1F3FD}','\u{1F91E}\u{1F3FE}','\u{1F91E}\u{1F3FF}','\u{1F91F}\u{1F3FB}','\u{1F91F}\u{1F3FC}','\u{1F91F}\u{1F3FD}','\u{1F91F}\u{1F3FE}','\u{1F91F}\u{1F3FF}','\u{1F926}\u200D\u2640\uFE0F','\u{1F926}\u200D\u2642\uFE0F','\u{1F926}\u{1F3FB}','\u{1F926}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F926}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F926}\u{1F3FC}','\u{1F926}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F926}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F926}\u{1F3FD}','\u{1F926}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F926}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F926}\u{1F3FE}','\u{1F926}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F926}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F926}\u{1F3FF}','\u{1F926}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F926}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F930}\u{1F3FB}','\u{1F930}\u{1F3FC}','\u{1F930}\u{1F3FD}','\u{1F930}\u{1F3FE}','\u{1F930}\u{1F3FF}','\u{1F931}\u{1F3FB}','\u{1F931}\u{1F3FC}','\u{1F931}\u{1F3FD}','\u{1F931}\u{1F3FE}','\u{1F931}\u{1F3FF}','\u{1F932}\u{1F3FB}','\u{1F932}\u{1F3FC}','\u{1F932}\u{1F3FD}','\u{1F932}\u{1F3FE}','\u{1F932}\u{1F3FF}','\u{1F933}\u{1F3FB}','\u{1F933}\u{1F3FC}','\u{1F933}\u{1F3FD}','\u{1F933}\u{1F3FE}','\u{1F933}\u{1F3FF}','\u{1F934}\u{1F3FB}','\u{1F934}\u{1F3FC}','\u{1F934}\u{1F3FD}','\u{1F934}\u{1F3FE}','\u{1F934}\u{1F3FF}','\u{1F935}\u200D\u2640\uFE0F','\u{1F935}\u200D\u2642\uFE0F','\u{1F935}\u{1F3FB}','\u{1F935}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F935}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F935}\u{1F3FC}','\u{1F935}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F935}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F935}\u{1F3FD}','\u{1F935}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F935}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F935}\u{1F3FE}','\u{1F935}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F935}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F935}\u{1F3FF}','\u{1F935}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F935}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F936}\u{1F3FB}','\u{1F936}\u{1F3FC}','\u{1F936}\u{1F3FD}','\u{1F936}\u{1F3FE}','\u{1F936}\u{1F3FF}','\u{1F937}\u200D\u2640\uFE0F','\u{1F937}\u200D\u2642\uFE0F','\u{1F937}\u{1F3FB}','\u{1F937}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F937}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F937}\u{1F3FC}','\u{1F937}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F937}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F937}\u{1F3FD}','\u{1F937}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F937}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F937}\u{1F3FE}','\u{1F937}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F937}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F937}\u{1F3FF}','\u{1F937}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F937}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F938}\u200D\u2640\uFE0F','\u{1F938}\u200D\u2642\uFE0F','\u{1F938}\u{1F3FB}','\u{1F938}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F938}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F938}\u{1F3FC}','\u{1F938}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F938}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F938}\u{1F3FD}','\u{1F938}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F938}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F938}\u{1F3FE}','\u{1F938}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F938}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F938}\u{1F3FF}','\u{1F938}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F938}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F939}\u200D\u2640\uFE0F','\u{1F939}\u200D\u2642\uFE0F','\u{1F939}\u{1F3FB}','\u{1F939}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F939}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F939}\u{1F3FC}','\u{1F939}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F939}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F939}\u{1F3FD}','\u{1F939}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F939}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F939}\u{1F3FE}','\u{1F939}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F939}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F939}\u{1F3FF}','\u{1F939}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F939}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F93C}\u200D\u2640\uFE0F','\u{1F93C}\u200D\u2642\uFE0F','\u{1F93D}\u200D\u2640\uFE0F','\u{1F93D}\u200D\u2642\uFE0F','\u{1F93D}\u{1F3FB}','\u{1F93D}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F93D}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F93D}\u{1F3FC}','\u{1F93D}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F93D}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F93D}\u{1F3FD}','\u{1F93D}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F93D}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F93D}\u{1F3FE}','\u{1F93D}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F93D}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F93D}\u{1F3FF}','\u{1F93D}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F93D}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F93E}\u200D\u2640\uFE0F','\u{1F93E}\u200D\u2642\uFE0F','\u{1F93E}\u{1F3FB}','\u{1F93E}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F93E}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F93E}\u{1F3FC}','\u{1F93E}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F93E}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F93E}\u{1F3FD}','\u{1F93E}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F93E}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F93E}\u{1F3FE}','\u{1F93E}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F93E}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F93E}\u{1F3FF}','\u{1F93E}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F93E}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F977}\u{1F3FB}','\u{1F977}\u{1F3FC}','\u{1F977}\u{1F3FD}','\u{1F977}\u{1F3FE}','\u{1F977}\u{1F3FF}','\u{1F9B5}\u{1F3FB}','\u{1F9B5}\u{1F3FC}','\u{1F9B5}\u{1F3FD}','\u{1F9B5}\u{1F3FE}','\u{1F9B5}\u{1F3FF}','\u{1F9B6}\u{1F3FB}','\u{1F9B6}\u{1F3FC}','\u{1F9B6}\u{1F3FD}','\u{1F9B6}\u{1F3FE}','\u{1F9B6}\u{1F3FF}','\u{1F9B8}\u200D\u2640\uFE0F','\u{1F9B8}\u200D\u2642\uFE0F','\u{1F9B8}\u{1F3FB}','\u{1F9B8}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9B8}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9B8}\u{1F3FC}','\u{1F9B8}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9B8}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9B8}\u{1F3FD}','\u{1F9B8}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9B8}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9B8}\u{1F3FE}','\u{1F9B8}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9B8}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9B8}\u{1F3FF}','\u{1F9B8}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9B8}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9B9}\u200D\u2640\uFE0F','\u{1F9B9}\u200D\u2642\uFE0F','\u{1F9B9}\u{1F3FB}','\u{1F9B9}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9B9}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9B9}\u{1F3FC}','\u{1F9B9}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9B9}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9B9}\u{1F3FD}','\u{1F9B9}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9B9}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9B9}\u{1F3FE}','\u{1F9B9}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9B9}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9B9}\u{1F3FF}','\u{1F9B9}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9B9}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9BB}\u{1F3FB}','\u{1F9BB}\u{1F3FC}','\u{1F9BB}\u{1F3FD}','\u{1F9BB}\u{1F3FE}','\u{1F9BB}\u{1F3FF}','\u{1F9CD}\u200D\u2640\uFE0F','\u{1F9CD}\u200D\u2642\uFE0F','\u{1F9CD}\u{1F3FB}','\u{1F9CD}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9CD}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9CD}\u{1F3FC}','\u{1F9CD}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9CD}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9CD}\u{1F3FD}','\u{1F9CD}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9CD}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9CD}\u{1F3FE}','\u{1F9CD}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9CD}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9CD}\u{1F3FF}','\u{1F9CD}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9CD}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9CE}\u200D\u2640\uFE0F','\u{1F9CE}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u200D\u2642\uFE0F','\u{1F9CE}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FB}','\u{1F9CE}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9CE}\u{1F3FB}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9CE}\u{1F3FB}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FB}\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FC}','\u{1F9CE}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9CE}\u{1F3FC}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9CE}\u{1F3FC}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FC}\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FD}','\u{1F9CE}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9CE}\u{1F3FD}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9CE}\u{1F3FD}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FD}\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FE}','\u{1F9CE}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9CE}\u{1F3FE}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9CE}\u{1F3FE}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FE}\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FF}','\u{1F9CE}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9CE}\u{1F3FF}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9CE}\u{1F3FF}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FF}\u200D\u27A1\uFE0F','\u{1F9CF}\u200D\u2640\uFE0F','\u{1F9CF}\u200D\u2642\uFE0F','\u{1F9CF}\u{1F3FB}','\u{1F9CF}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9CF}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9CF}\u{1F3FC}','\u{1F9CF}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9CF}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9CF}\u{1F3FD}','\u{1F9CF}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9CF}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9CF}\u{1F3FE}','\u{1F9CF}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9CF}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9CF}\u{1F3FF}','\u{1F9CF}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9CF}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9D1}\u200D\u2695\uFE0F','\u{1F9D1}\u200D\u2696\uFE0F','\u{1F9D1}\u200D\u2708\uFE0F','\u{1F9D1}\u200D\u{1F33E}','\u{1F9D1}\u200D\u{1F373}','\u{1F9D1}\u200D\u{1F37C}','\u{1F9D1}\u200D\u{1F384}','\u{1F9D1}\u200D\u{1F393}','\u{1F9D1}\u200D\u{1F3A4}','\u{1F9D1}\u200D\u{1F3A8}','\u{1F9D1}\u200D\u{1F3EB}','\u{1F9D1}\u200D\u{1F3ED}','\u{1F9D1}\u200D\u{1F4BB}','\u{1F9D1}\u200D\u{1F4BC}','\u{1F9D1}\u200D\u{1F527}','\u{1F9D1}\u200D\u{1F52C}','\u{1F9D1}\u200D\u{1F680}','\u{1F9D1}\u200D\u{1F692}','\u{1F9D1}\u200D\u{1F91D}\u200D\u{1F9D1}','\u{1F9D1}\u200D\u{1F9AF}','\u{1F9D1}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F9D1}\u200D\u{1F9B0}','\u{1F9D1}\u200D\u{1F9B1}','\u{1F9D1}\u200D\u{1F9B2}','\u{1F9D1}\u200D\u{1F9B3}','\u{1F9D1}\u200D\u{1F9BC}','\u{1F9D1}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F9D1}\u200D\u{1F9BD}','\u{1F9D1}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F9D1}\u200D\u{1F9D1}\u200D\u{1F9D2}','\u{1F9D1}\u200D\u{1F9D1}\u200D\u{1F9D2}\u200D\u{1F9D2}','\u{1F9D1}\u200D\u{1F9D2}','\u{1F9D1}\u200D\u{1F9D2}\u200D\u{1F9D2}','\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FB}\u200D\u2695\uFE0F','\u{1F9D1}\u{1F3FB}\u200D\u2696\uFE0F','\u{1F9D1}\u{1F3FB}\u200D\u2708\uFE0F','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FB}\u200D\u{1F33E}','\u{1F9D1}\u{1F3FB}\u200D\u{1F373}','\u{1F9D1}\u{1F3FB}\u200D\u{1F37C}','\u{1F9D1}\u{1F3FB}\u200D\u{1F384}','\u{1F9D1}\u{1F3FB}\u200D\u{1F393}','\u{1F9D1}\u{1F3FB}\u200D\u{1F3A4}','\u{1F9D1}\u{1F3FB}\u200D\u{1F3A8}','\u{1F9D1}\u{1F3FB}\u200D\u{1F3EB}','\u{1F9D1}\u{1F3FB}\u200D\u{1F3ED}','\u{1F9D1}\u{1F3FB}\u200D\u{1F4BB}','\u{1F9D1}\u{1F3FB}\u200D\u{1F4BC}','\u{1F9D1}\u{1F3FB}\u200D\u{1F527}','\u{1F9D1}\u{1F3FB}\u200D\u{1F52C}','\u{1F9D1}\u{1F3FB}\u200D\u{1F680}','\u{1F9D1}\u{1F3FB}\u200D\u{1F692}','\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9AF}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FB}\u200D\u{1F9B0}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9B1}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9B2}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9B3}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9BC}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FB}\u200D\u{1F9BD}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FC}\u200D\u2695\uFE0F','\u{1F9D1}\u{1F3FC}\u200D\u2696\uFE0F','\u{1F9D1}\u{1F3FC}\u200D\u2708\uFE0F','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FC}\u200D\u{1F33E}','\u{1F9D1}\u{1F3FC}\u200D\u{1F373}','\u{1F9D1}\u{1F3FC}\u200D\u{1F37C}','\u{1F9D1}\u{1F3FC}\u200D\u{1F384}','\u{1F9D1}\u{1F3FC}\u200D\u{1F393}','\u{1F9D1}\u{1F3FC}\u200D\u{1F3A4}','\u{1F9D1}\u{1F3FC}\u200D\u{1F3A8}','\u{1F9D1}\u{1F3FC}\u200D\u{1F3EB}','\u{1F9D1}\u{1F3FC}\u200D\u{1F3ED}','\u{1F9D1}\u{1F3FC}\u200D\u{1F4BB}','\u{1F9D1}\u{1F3FC}\u200D\u{1F4BC}','\u{1F9D1}\u{1F3FC}\u200D\u{1F527}','\u{1F9D1}\u{1F3FC}\u200D\u{1F52C}','\u{1F9D1}\u{1F3FC}\u200D\u{1F680}','\u{1F9D1}\u{1F3FC}\u200D\u{1F692}','\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9AF}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FC}\u200D\u{1F9B0}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9B1}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9B2}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9B3}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9BC}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FC}\u200D\u{1F9BD}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FD}\u200D\u2695\uFE0F','\u{1F9D1}\u{1F3FD}\u200D\u2696\uFE0F','\u{1F9D1}\u{1F3FD}\u200D\u2708\uFE0F','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FD}\u200D\u{1F33E}','\u{1F9D1}\u{1F3FD}\u200D\u{1F373}','\u{1F9D1}\u{1F3FD}\u200D\u{1F37C}','\u{1F9D1}\u{1F3FD}\u200D\u{1F384}','\u{1F9D1}\u{1F3FD}\u200D\u{1F393}','\u{1F9D1}\u{1F3FD}\u200D\u{1F3A4}','\u{1F9D1}\u{1F3FD}\u200D\u{1F3A8}','\u{1F9D1}\u{1F3FD}\u200D\u{1F3EB}','\u{1F9D1}\u{1F3FD}\u200D\u{1F3ED}','\u{1F9D1}\u{1F3FD}\u200D\u{1F4BB}','\u{1F9D1}\u{1F3FD}\u200D\u{1F4BC}','\u{1F9D1}\u{1F3FD}\u200D\u{1F527}','\u{1F9D1}\u{1F3FD}\u200D\u{1F52C}','\u{1F9D1}\u{1F3FD}\u200D\u{1F680}','\u{1F9D1}\u{1F3FD}\u200D\u{1F692}','\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9AF}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FD}\u200D\u{1F9B0}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9B1}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9B2}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9B3}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9BC}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FD}\u200D\u{1F9BD}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FE}\u200D\u2695\uFE0F','\u{1F9D1}\u{1F3FE}\u200D\u2696\uFE0F','\u{1F9D1}\u{1F3FE}\u200D\u2708\uFE0F','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FE}\u200D\u{1F33E}','\u{1F9D1}\u{1F3FE}\u200D\u{1F373}','\u{1F9D1}\u{1F3FE}\u200D\u{1F37C}','\u{1F9D1}\u{1F3FE}\u200D\u{1F384}','\u{1F9D1}\u{1F3FE}\u200D\u{1F393}','\u{1F9D1}\u{1F3FE}\u200D\u{1F3A4}','\u{1F9D1}\u{1F3FE}\u200D\u{1F3A8}','\u{1F9D1}\u{1F3FE}\u200D\u{1F3EB}','\u{1F9D1}\u{1F3FE}\u200D\u{1F3ED}','\u{1F9D1}\u{1F3FE}\u200D\u{1F4BB}','\u{1F9D1}\u{1F3FE}\u200D\u{1F4BC}','\u{1F9D1}\u{1F3FE}\u200D\u{1F527}','\u{1F9D1}\u{1F3FE}\u200D\u{1F52C}','\u{1F9D1}\u{1F3FE}\u200D\u{1F680}','\u{1F9D1}\u{1F3FE}\u200D\u{1F692}','\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9AF}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FE}\u200D\u{1F9B0}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9B1}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9B2}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9B3}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9BC}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FE}\u200D\u{1F9BD}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FF}\u200D\u2695\uFE0F','\u{1F9D1}\u{1F3FF}\u200D\u2696\uFE0F','\u{1F9D1}\u{1F3FF}\u200D\u2708\uFE0F','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FF}\u200D\u{1F33E}','\u{1F9D1}\u{1F3FF}\u200D\u{1F373}','\u{1F9D1}\u{1F3FF}\u200D\u{1F37C}','\u{1F9D1}\u{1F3FF}\u200D\u{1F384}','\u{1F9D1}\u{1F3FF}\u200D\u{1F393}','\u{1F9D1}\u{1F3FF}\u200D\u{1F3A4}','\u{1F9D1}\u{1F3FF}\u200D\u{1F3A8}','\u{1F9D1}\u{1F3FF}\u200D\u{1F3EB}','\u{1F9D1}\u{1F3FF}\u200D\u{1F3ED}','\u{1F9D1}\u{1F3FF}\u200D\u{1F4BB}','\u{1F9D1}\u{1F3FF}\u200D\u{1F4BC}','\u{1F9D1}\u{1F3FF}\u200D\u{1F527}','\u{1F9D1}\u{1F3FF}\u200D\u{1F52C}','\u{1F9D1}\u{1F3FF}\u200D\u{1F680}','\u{1F9D1}\u{1F3FF}\u200D\u{1F692}','\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9AF}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FF}\u200D\u{1F9B0}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9B1}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9B2}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9B3}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9BC}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FF}\u200D\u{1F9BD}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F9D2}\u{1F3FB}','\u{1F9D2}\u{1F3FC}','\u{1F9D2}\u{1F3FD}','\u{1F9D2}\u{1F3FE}','\u{1F9D2}\u{1F3FF}','\u{1F9D3}\u{1F3FB}','\u{1F9D3}\u{1F3FC}','\u{1F9D3}\u{1F3FD}','\u{1F9D3}\u{1F3FE}','\u{1F9D3}\u{1F3FF}','\u{1F9D4}\u200D\u2640\uFE0F','\u{1F9D4}\u200D\u2642\uFE0F','\u{1F9D4}\u{1F3FB}','\u{1F9D4}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9D4}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9D4}\u{1F3FC}','\u{1F9D4}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9D4}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9D4}\u{1F3FD}','\u{1F9D4}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9D4}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9D4}\u{1F3FE}','\u{1F9D4}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9D4}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9D4}\u{1F3FF}','\u{1F9D4}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9D4}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9D5}\u{1F3FB}','\u{1F9D5}\u{1F3FC}','\u{1F9D5}\u{1F3FD}','\u{1F9D5}\u{1F3FE}','\u{1F9D5}\u{1F3FF}','\u{1F9D6}\u200D\u2640\uFE0F','\u{1F9D6}\u200D\u2642\uFE0F','\u{1F9D6}\u{1F3FB}','\u{1F9D6}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9D6}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9D6}\u{1F3FC}','\u{1F9D6}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9D6}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9D6}\u{1F3FD}','\u{1F9D6}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9D6}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9D6}\u{1F3FE}','\u{1F9D6}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9D6}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9D6}\u{1F3FF}','\u{1F9D6}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9D6}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9D7}\u200D\u2640\uFE0F','\u{1F9D7}\u200D\u2642\uFE0F','\u{1F9D7}\u{1F3FB}','\u{1F9D7}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9D7}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9D7}\u{1F3FC}','\u{1F9D7}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9D7}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9D7}\u{1F3FD}','\u{1F9D7}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9D7}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9D7}\u{1F3FE}','\u{1F9D7}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9D7}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9D7}\u{1F3FF}','\u{1F9D7}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9D7}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9D8}\u200D\u2640\uFE0F','\u{1F9D8}\u200D\u2642\uFE0F','\u{1F9D8}\u{1F3FB}','\u{1F9D8}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9D8}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9D8}\u{1F3FC}','\u{1F9D8}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9D8}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9D8}\u{1F3FD}','\u{1F9D8}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9D8}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9D8}\u{1F3FE}','\u{1F9D8}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9D8}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9D8}\u{1F3FF}','\u{1F9D8}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9D8}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9D9}\u200D\u2640\uFE0F','\u{1F9D9}\u200D\u2642\uFE0F','\u{1F9D9}\u{1F3FB}','\u{1F9D9}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9D9}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9D9}\u{1F3FC}','\u{1F9D9}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9D9}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9D9}\u{1F3FD}','\u{1F9D9}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9D9}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9D9}\u{1F3FE}','\u{1F9D9}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9D9}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9D9}\u{1F3FF}','\u{1F9D9}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9D9}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9DA}\u200D\u2640\uFE0F','\u{1F9DA}\u200D\u2642\uFE0F','\u{1F9DA}\u{1F3FB}','\u{1F9DA}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9DA}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9DA}\u{1F3FC}','\u{1F9DA}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9DA}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9DA}\u{1F3FD}','\u{1F9DA}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9DA}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9DA}\u{1F3FE}','\u{1F9DA}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9DA}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9DA}\u{1F3FF}','\u{1F9DA}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9DA}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9DB}\u200D\u2640\uFE0F','\u{1F9DB}\u200D\u2642\uFE0F','\u{1F9DB}\u{1F3FB}','\u{1F9DB}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9DB}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9DB}\u{1F3FC}','\u{1F9DB}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9DB}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9DB}\u{1F3FD}','\u{1F9DB}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9DB}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9DB}\u{1F3FE}','\u{1F9DB}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9DB}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9DB}\u{1F3FF}','\u{1F9DB}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9DB}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9DC}\u200D\u2640\uFE0F','\u{1F9DC}\u200D\u2642\uFE0F','\u{1F9DC}\u{1F3FB}','\u{1F9DC}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9DC}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9DC}\u{1F3FC}','\u{1F9DC}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9DC}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9DC}\u{1F3FD}','\u{1F9DC}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9DC}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9DC}\u{1F3FE}','\u{1F9DC}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9DC}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9DC}\u{1F3FF}','\u{1F9DC}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9DC}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9DD}\u200D\u2640\uFE0F','\u{1F9DD}\u200D\u2642\uFE0F','\u{1F9DD}\u{1F3FB}','\u{1F9DD}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9DD}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9DD}\u{1F3FC}','\u{1F9DD}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9DD}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9DD}\u{1F3FD}','\u{1F9DD}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9DD}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9DD}\u{1F3FE}','\u{1F9DD}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9DD}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9DD}\u{1F3FF}','\u{1F9DD}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9DD}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9DE}\u200D\u2640\uFE0F','\u{1F9DE}\u200D\u2642\uFE0F','\u{1F9DF}\u200D\u2640\uFE0F','\u{1F9DF}\u200D\u2642\uFE0F','\u{1FAC3}\u{1F3FB}','\u{1FAC3}\u{1F3FC}','\u{1FAC3}\u{1F3FD}','\u{1FAC3}\u{1F3FE}','\u{1FAC3}\u{1F3FF}','\u{1FAC4}\u{1F3FB}','\u{1FAC4}\u{1F3FC}','\u{1FAC4}\u{1F3FD}','\u{1FAC4}\u{1F3FE}','\u{1FAC4}\u{1F3FF}','\u{1FAC5}\u{1F3FB}','\u{1FAC5}\u{1F3FC}','\u{1FAC5}\u{1F3FD}','\u{1FAC5}\u{1F3FE}','\u{1FAC5}\u{1F3FF}','\u{1FAF0}\u{1F3FB}','\u{1FAF0}\u{1F3FC}','\u{1FAF0}\u{1F3FD}','\u{1FAF0}\u{1F3FE}','\u{1FAF0}\u{1F3FF}','\u{1FAF1}\u{1F3FB}','\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FC}','\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FD}','\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FE}','\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FF}','\u{1FAF1}\u{1F3FC}','\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FB}','\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FD}','\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FE}','\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FF}','\u{1FAF1}\u{1F3FD}','\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FB}','\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FC}','\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FE}','\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FF}','\u{1FAF1}\u{1F3FE}','\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FB}','\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FC}','\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FD}','\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FF}','\u{1FAF1}\u{1F3FF}','\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FB}','\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FC}','\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FD}','\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FE}','\u{1FAF2}\u{1F3FB}','\u{1FAF2}\u{1F3FC}','\u{1FAF2}\u{1F3FD}','\u{1FAF2}\u{1F3FE}','\u{1FAF2}\u{1F3FF}','\u{1FAF3}\u{1F3FB}','\u{1FAF3}\u{1F3FC}','\u{1FAF3}\u{1F3FD}','\u{1FAF3}\u{1F3FE}','\u{1FAF3}\u{1F3FF}','\u{1FAF4}\u{1F3FB}','\u{1FAF4}\u{1F3FC}','\u{1FAF4}\u{1F3FD}','\u{1FAF4}\u{1F3FE}','\u{1FAF4}\u{1F3FF}','\u{1FAF5}\u{1F3FB}','\u{1FAF5}\u{1F3FC}','\u{1FAF5}\u{1F3FD}','\u{1FAF5}\u{1F3FE}','\u{1FAF5}\u{1F3FF}','\u{1FAF6}\u{1F3FB}','\u{1FAF6}\u{1F3FC}','\u{1FAF6}\u{1F3FD}','\u{1FAF6}\u{1F3FE}','\u{1FAF6}\u{1F3FF}','\u{1FAF7}\u{1F3FB}','\u{1FAF7}\u{1F3FC}','\u{1FAF7}\u{1F3FD}','\u{1FAF7}\u{1F3FE}','\u{1FAF7}\u{1F3FF}','\u{1FAF8}\u{1F3FB}','\u{1FAF8}\u{1F3FC}','\u{1FAF8}\u{1F3FD}','\u{1FAF8}\u{1F3FE}','\u{1FAF8}\u{1F3FF}']; +exports.strings = ['#\uFE0F\u20E3','*\uFE0F\u20E3','0\uFE0F\u20E3','1\uFE0F\u20E3','2\uFE0F\u20E3','3\uFE0F\u20E3','4\uFE0F\u20E3','5\uFE0F\u20E3','6\uFE0F\u20E3','7\uFE0F\u20E3','8\uFE0F\u20E3','9\uFE0F\u20E3','\xA9\uFE0F','\xAE\uFE0F','\u203C\uFE0F','\u2049\uFE0F','\u2122\uFE0F','\u2139\uFE0F','\u2194\uFE0F','\u2195\uFE0F','\u2196\uFE0F','\u2197\uFE0F','\u2198\uFE0F','\u2199\uFE0F','\u21A9\uFE0F','\u21AA\uFE0F','\u2328\uFE0F','\u23CF\uFE0F','\u23ED\uFE0F','\u23EE\uFE0F','\u23EF\uFE0F','\u23F1\uFE0F','\u23F2\uFE0F','\u23F8\uFE0F','\u23F9\uFE0F','\u23FA\uFE0F','\u24C2\uFE0F','\u25AA\uFE0F','\u25AB\uFE0F','\u25B6\uFE0F','\u25C0\uFE0F','\u25FB\uFE0F','\u25FC\uFE0F','\u2600\uFE0F','\u2601\uFE0F','\u2602\uFE0F','\u2603\uFE0F','\u2604\uFE0F','\u260E\uFE0F','\u2611\uFE0F','\u2618\uFE0F','\u261D\u{1F3FB}','\u261D\u{1F3FC}','\u261D\u{1F3FD}','\u261D\u{1F3FE}','\u261D\u{1F3FF}','\u261D\uFE0F','\u2620\uFE0F','\u2622\uFE0F','\u2623\uFE0F','\u2626\uFE0F','\u262A\uFE0F','\u262E\uFE0F','\u262F\uFE0F','\u2638\uFE0F','\u2639\uFE0F','\u263A\uFE0F','\u2640\uFE0F','\u2642\uFE0F','\u265F\uFE0F','\u2660\uFE0F','\u2663\uFE0F','\u2665\uFE0F','\u2666\uFE0F','\u2668\uFE0F','\u267B\uFE0F','\u267E\uFE0F','\u2692\uFE0F','\u2694\uFE0F','\u2695\uFE0F','\u2696\uFE0F','\u2697\uFE0F','\u2699\uFE0F','\u269B\uFE0F','\u269C\uFE0F','\u26A0\uFE0F','\u26A7\uFE0F','\u26B0\uFE0F','\u26B1\uFE0F','\u26C8\uFE0F','\u26CF\uFE0F','\u26D1\uFE0F','\u26D3\uFE0F','\u26D3\uFE0F\u200D\u{1F4A5}','\u26E9\uFE0F','\u26F0\uFE0F','\u26F1\uFE0F','\u26F4\uFE0F','\u26F7\uFE0F','\u26F8\uFE0F','\u26F9\u{1F3FB}','\u26F9\u{1F3FB}\u200D\u2640\uFE0F','\u26F9\u{1F3FB}\u200D\u2642\uFE0F','\u26F9\u{1F3FC}','\u26F9\u{1F3FC}\u200D\u2640\uFE0F','\u26F9\u{1F3FC}\u200D\u2642\uFE0F','\u26F9\u{1F3FD}','\u26F9\u{1F3FD}\u200D\u2640\uFE0F','\u26F9\u{1F3FD}\u200D\u2642\uFE0F','\u26F9\u{1F3FE}','\u26F9\u{1F3FE}\u200D\u2640\uFE0F','\u26F9\u{1F3FE}\u200D\u2642\uFE0F','\u26F9\u{1F3FF}','\u26F9\u{1F3FF}\u200D\u2640\uFE0F','\u26F9\u{1F3FF}\u200D\u2642\uFE0F','\u26F9\uFE0F','\u26F9\uFE0F\u200D\u2640\uFE0F','\u26F9\uFE0F\u200D\u2642\uFE0F','\u2702\uFE0F','\u2708\uFE0F','\u2709\uFE0F','\u270A\u{1F3FB}','\u270A\u{1F3FC}','\u270A\u{1F3FD}','\u270A\u{1F3FE}','\u270A\u{1F3FF}','\u270B\u{1F3FB}','\u270B\u{1F3FC}','\u270B\u{1F3FD}','\u270B\u{1F3FE}','\u270B\u{1F3FF}','\u270C\u{1F3FB}','\u270C\u{1F3FC}','\u270C\u{1F3FD}','\u270C\u{1F3FE}','\u270C\u{1F3FF}','\u270C\uFE0F','\u270D\u{1F3FB}','\u270D\u{1F3FC}','\u270D\u{1F3FD}','\u270D\u{1F3FE}','\u270D\u{1F3FF}','\u270D\uFE0F','\u270F\uFE0F','\u2712\uFE0F','\u2714\uFE0F','\u2716\uFE0F','\u271D\uFE0F','\u2721\uFE0F','\u2733\uFE0F','\u2734\uFE0F','\u2744\uFE0F','\u2747\uFE0F','\u2763\uFE0F','\u2764\uFE0F','\u2764\uFE0F\u200D\u{1F525}','\u2764\uFE0F\u200D\u{1FA79}','\u27A1\uFE0F','\u2934\uFE0F','\u2935\uFE0F','\u2B05\uFE0F','\u2B06\uFE0F','\u2B07\uFE0F','\u3030\uFE0F','\u303D\uFE0F','\u3297\uFE0F','\u3299\uFE0F','\u{1F170}\uFE0F','\u{1F171}\uFE0F','\u{1F17E}\uFE0F','\u{1F17F}\uFE0F','\u{1F1E6}\u{1F1E8}','\u{1F1E6}\u{1F1E9}','\u{1F1E6}\u{1F1EA}','\u{1F1E6}\u{1F1EB}','\u{1F1E6}\u{1F1EC}','\u{1F1E6}\u{1F1EE}','\u{1F1E6}\u{1F1F1}','\u{1F1E6}\u{1F1F2}','\u{1F1E6}\u{1F1F4}','\u{1F1E6}\u{1F1F6}','\u{1F1E6}\u{1F1F7}','\u{1F1E6}\u{1F1F8}','\u{1F1E6}\u{1F1F9}','\u{1F1E6}\u{1F1FA}','\u{1F1E6}\u{1F1FC}','\u{1F1E6}\u{1F1FD}','\u{1F1E6}\u{1F1FF}','\u{1F1E7}\u{1F1E6}','\u{1F1E7}\u{1F1E7}','\u{1F1E7}\u{1F1E9}','\u{1F1E7}\u{1F1EA}','\u{1F1E7}\u{1F1EB}','\u{1F1E7}\u{1F1EC}','\u{1F1E7}\u{1F1ED}','\u{1F1E7}\u{1F1EE}','\u{1F1E7}\u{1F1EF}','\u{1F1E7}\u{1F1F1}','\u{1F1E7}\u{1F1F2}','\u{1F1E7}\u{1F1F3}','\u{1F1E7}\u{1F1F4}','\u{1F1E7}\u{1F1F6}','\u{1F1E7}\u{1F1F7}','\u{1F1E7}\u{1F1F8}','\u{1F1E7}\u{1F1F9}','\u{1F1E7}\u{1F1FB}','\u{1F1E7}\u{1F1FC}','\u{1F1E7}\u{1F1FE}','\u{1F1E7}\u{1F1FF}','\u{1F1E8}\u{1F1E6}','\u{1F1E8}\u{1F1E8}','\u{1F1E8}\u{1F1E9}','\u{1F1E8}\u{1F1EB}','\u{1F1E8}\u{1F1EC}','\u{1F1E8}\u{1F1ED}','\u{1F1E8}\u{1F1EE}','\u{1F1E8}\u{1F1F0}','\u{1F1E8}\u{1F1F1}','\u{1F1E8}\u{1F1F2}','\u{1F1E8}\u{1F1F3}','\u{1F1E8}\u{1F1F4}','\u{1F1E8}\u{1F1F5}','\u{1F1E8}\u{1F1F6}','\u{1F1E8}\u{1F1F7}','\u{1F1E8}\u{1F1FA}','\u{1F1E8}\u{1F1FB}','\u{1F1E8}\u{1F1FC}','\u{1F1E8}\u{1F1FD}','\u{1F1E8}\u{1F1FE}','\u{1F1E8}\u{1F1FF}','\u{1F1E9}\u{1F1EA}','\u{1F1E9}\u{1F1EC}','\u{1F1E9}\u{1F1EF}','\u{1F1E9}\u{1F1F0}','\u{1F1E9}\u{1F1F2}','\u{1F1E9}\u{1F1F4}','\u{1F1E9}\u{1F1FF}','\u{1F1EA}\u{1F1E6}','\u{1F1EA}\u{1F1E8}','\u{1F1EA}\u{1F1EA}','\u{1F1EA}\u{1F1EC}','\u{1F1EA}\u{1F1ED}','\u{1F1EA}\u{1F1F7}','\u{1F1EA}\u{1F1F8}','\u{1F1EA}\u{1F1F9}','\u{1F1EA}\u{1F1FA}','\u{1F1EB}\u{1F1EE}','\u{1F1EB}\u{1F1EF}','\u{1F1EB}\u{1F1F0}','\u{1F1EB}\u{1F1F2}','\u{1F1EB}\u{1F1F4}','\u{1F1EB}\u{1F1F7}','\u{1F1EC}\u{1F1E6}','\u{1F1EC}\u{1F1E7}','\u{1F1EC}\u{1F1E9}','\u{1F1EC}\u{1F1EA}','\u{1F1EC}\u{1F1EB}','\u{1F1EC}\u{1F1EC}','\u{1F1EC}\u{1F1ED}','\u{1F1EC}\u{1F1EE}','\u{1F1EC}\u{1F1F1}','\u{1F1EC}\u{1F1F2}','\u{1F1EC}\u{1F1F3}','\u{1F1EC}\u{1F1F5}','\u{1F1EC}\u{1F1F6}','\u{1F1EC}\u{1F1F7}','\u{1F1EC}\u{1F1F8}','\u{1F1EC}\u{1F1F9}','\u{1F1EC}\u{1F1FA}','\u{1F1EC}\u{1F1FC}','\u{1F1EC}\u{1F1FE}','\u{1F1ED}\u{1F1F0}','\u{1F1ED}\u{1F1F2}','\u{1F1ED}\u{1F1F3}','\u{1F1ED}\u{1F1F7}','\u{1F1ED}\u{1F1F9}','\u{1F1ED}\u{1F1FA}','\u{1F1EE}\u{1F1E8}','\u{1F1EE}\u{1F1E9}','\u{1F1EE}\u{1F1EA}','\u{1F1EE}\u{1F1F1}','\u{1F1EE}\u{1F1F2}','\u{1F1EE}\u{1F1F3}','\u{1F1EE}\u{1F1F4}','\u{1F1EE}\u{1F1F6}','\u{1F1EE}\u{1F1F7}','\u{1F1EE}\u{1F1F8}','\u{1F1EE}\u{1F1F9}','\u{1F1EF}\u{1F1EA}','\u{1F1EF}\u{1F1F2}','\u{1F1EF}\u{1F1F4}','\u{1F1EF}\u{1F1F5}','\u{1F1F0}\u{1F1EA}','\u{1F1F0}\u{1F1EC}','\u{1F1F0}\u{1F1ED}','\u{1F1F0}\u{1F1EE}','\u{1F1F0}\u{1F1F2}','\u{1F1F0}\u{1F1F3}','\u{1F1F0}\u{1F1F5}','\u{1F1F0}\u{1F1F7}','\u{1F1F0}\u{1F1FC}','\u{1F1F0}\u{1F1FE}','\u{1F1F0}\u{1F1FF}','\u{1F1F1}\u{1F1E6}','\u{1F1F1}\u{1F1E7}','\u{1F1F1}\u{1F1E8}','\u{1F1F1}\u{1F1EE}','\u{1F1F1}\u{1F1F0}','\u{1F1F1}\u{1F1F7}','\u{1F1F1}\u{1F1F8}','\u{1F1F1}\u{1F1F9}','\u{1F1F1}\u{1F1FA}','\u{1F1F1}\u{1F1FB}','\u{1F1F1}\u{1F1FE}','\u{1F1F2}\u{1F1E6}','\u{1F1F2}\u{1F1E8}','\u{1F1F2}\u{1F1E9}','\u{1F1F2}\u{1F1EA}','\u{1F1F2}\u{1F1EB}','\u{1F1F2}\u{1F1EC}','\u{1F1F2}\u{1F1ED}','\u{1F1F2}\u{1F1F0}','\u{1F1F2}\u{1F1F1}','\u{1F1F2}\u{1F1F2}','\u{1F1F2}\u{1F1F3}','\u{1F1F2}\u{1F1F4}','\u{1F1F2}\u{1F1F5}','\u{1F1F2}\u{1F1F6}','\u{1F1F2}\u{1F1F7}','\u{1F1F2}\u{1F1F8}','\u{1F1F2}\u{1F1F9}','\u{1F1F2}\u{1F1FA}','\u{1F1F2}\u{1F1FB}','\u{1F1F2}\u{1F1FC}','\u{1F1F2}\u{1F1FD}','\u{1F1F2}\u{1F1FE}','\u{1F1F2}\u{1F1FF}','\u{1F1F3}\u{1F1E6}','\u{1F1F3}\u{1F1E8}','\u{1F1F3}\u{1F1EA}','\u{1F1F3}\u{1F1EB}','\u{1F1F3}\u{1F1EC}','\u{1F1F3}\u{1F1EE}','\u{1F1F3}\u{1F1F1}','\u{1F1F3}\u{1F1F4}','\u{1F1F3}\u{1F1F5}','\u{1F1F3}\u{1F1F7}','\u{1F1F3}\u{1F1FA}','\u{1F1F3}\u{1F1FF}','\u{1F1F4}\u{1F1F2}','\u{1F1F5}\u{1F1E6}','\u{1F1F5}\u{1F1EA}','\u{1F1F5}\u{1F1EB}','\u{1F1F5}\u{1F1EC}','\u{1F1F5}\u{1F1ED}','\u{1F1F5}\u{1F1F0}','\u{1F1F5}\u{1F1F1}','\u{1F1F5}\u{1F1F2}','\u{1F1F5}\u{1F1F3}','\u{1F1F5}\u{1F1F7}','\u{1F1F5}\u{1F1F8}','\u{1F1F5}\u{1F1F9}','\u{1F1F5}\u{1F1FC}','\u{1F1F5}\u{1F1FE}','\u{1F1F6}\u{1F1E6}','\u{1F1F7}\u{1F1EA}','\u{1F1F7}\u{1F1F4}','\u{1F1F7}\u{1F1F8}','\u{1F1F7}\u{1F1FA}','\u{1F1F7}\u{1F1FC}','\u{1F1F8}\u{1F1E6}','\u{1F1F8}\u{1F1E7}','\u{1F1F8}\u{1F1E8}','\u{1F1F8}\u{1F1E9}','\u{1F1F8}\u{1F1EA}','\u{1F1F8}\u{1F1EC}','\u{1F1F8}\u{1F1ED}','\u{1F1F8}\u{1F1EE}','\u{1F1F8}\u{1F1EF}','\u{1F1F8}\u{1F1F0}','\u{1F1F8}\u{1F1F1}','\u{1F1F8}\u{1F1F2}','\u{1F1F8}\u{1F1F3}','\u{1F1F8}\u{1F1F4}','\u{1F1F8}\u{1F1F7}','\u{1F1F8}\u{1F1F8}','\u{1F1F8}\u{1F1F9}','\u{1F1F8}\u{1F1FB}','\u{1F1F8}\u{1F1FD}','\u{1F1F8}\u{1F1FE}','\u{1F1F8}\u{1F1FF}','\u{1F1F9}\u{1F1E6}','\u{1F1F9}\u{1F1E8}','\u{1F1F9}\u{1F1E9}','\u{1F1F9}\u{1F1EB}','\u{1F1F9}\u{1F1EC}','\u{1F1F9}\u{1F1ED}','\u{1F1F9}\u{1F1EF}','\u{1F1F9}\u{1F1F0}','\u{1F1F9}\u{1F1F1}','\u{1F1F9}\u{1F1F2}','\u{1F1F9}\u{1F1F3}','\u{1F1F9}\u{1F1F4}','\u{1F1F9}\u{1F1F7}','\u{1F1F9}\u{1F1F9}','\u{1F1F9}\u{1F1FB}','\u{1F1F9}\u{1F1FC}','\u{1F1F9}\u{1F1FF}','\u{1F1FA}\u{1F1E6}','\u{1F1FA}\u{1F1EC}','\u{1F1FA}\u{1F1F2}','\u{1F1FA}\u{1F1F3}','\u{1F1FA}\u{1F1F8}','\u{1F1FA}\u{1F1FE}','\u{1F1FA}\u{1F1FF}','\u{1F1FB}\u{1F1E6}','\u{1F1FB}\u{1F1E8}','\u{1F1FB}\u{1F1EA}','\u{1F1FB}\u{1F1EC}','\u{1F1FB}\u{1F1EE}','\u{1F1FB}\u{1F1F3}','\u{1F1FB}\u{1F1FA}','\u{1F1FC}\u{1F1EB}','\u{1F1FC}\u{1F1F8}','\u{1F1FD}\u{1F1F0}','\u{1F1FE}\u{1F1EA}','\u{1F1FE}\u{1F1F9}','\u{1F1FF}\u{1F1E6}','\u{1F1FF}\u{1F1F2}','\u{1F1FF}\u{1F1FC}','\u{1F202}\uFE0F','\u{1F237}\uFE0F','\u{1F321}\uFE0F','\u{1F324}\uFE0F','\u{1F325}\uFE0F','\u{1F326}\uFE0F','\u{1F327}\uFE0F','\u{1F328}\uFE0F','\u{1F329}\uFE0F','\u{1F32A}\uFE0F','\u{1F32B}\uFE0F','\u{1F32C}\uFE0F','\u{1F336}\uFE0F','\u{1F344}\u200D\u{1F7EB}','\u{1F34B}\u200D\u{1F7E9}','\u{1F37D}\uFE0F','\u{1F385}\u{1F3FB}','\u{1F385}\u{1F3FC}','\u{1F385}\u{1F3FD}','\u{1F385}\u{1F3FE}','\u{1F385}\u{1F3FF}','\u{1F396}\uFE0F','\u{1F397}\uFE0F','\u{1F399}\uFE0F','\u{1F39A}\uFE0F','\u{1F39B}\uFE0F','\u{1F39E}\uFE0F','\u{1F39F}\uFE0F','\u{1F3C2}\u{1F3FB}','\u{1F3C2}\u{1F3FC}','\u{1F3C2}\u{1F3FD}','\u{1F3C2}\u{1F3FE}','\u{1F3C2}\u{1F3FF}','\u{1F3C3}\u200D\u2640\uFE0F','\u{1F3C3}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u200D\u2642\uFE0F','\u{1F3C3}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FB}','\u{1F3C3}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F3C3}\u{1F3FB}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F3C3}\u{1F3FB}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FB}\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FC}','\u{1F3C3}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F3C3}\u{1F3FC}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F3C3}\u{1F3FC}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FC}\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FD}','\u{1F3C3}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F3C3}\u{1F3FD}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F3C3}\u{1F3FD}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FD}\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FE}','\u{1F3C3}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F3C3}\u{1F3FE}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F3C3}\u{1F3FE}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FE}\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FF}','\u{1F3C3}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F3C3}\u{1F3FF}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F3C3}\u{1F3FF}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F3C3}\u{1F3FF}\u200D\u27A1\uFE0F','\u{1F3C4}\u200D\u2640\uFE0F','\u{1F3C4}\u200D\u2642\uFE0F','\u{1F3C4}\u{1F3FB}','\u{1F3C4}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F3C4}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F3C4}\u{1F3FC}','\u{1F3C4}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F3C4}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F3C4}\u{1F3FD}','\u{1F3C4}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F3C4}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F3C4}\u{1F3FE}','\u{1F3C4}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F3C4}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F3C4}\u{1F3FF}','\u{1F3C4}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F3C4}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F3C7}\u{1F3FB}','\u{1F3C7}\u{1F3FC}','\u{1F3C7}\u{1F3FD}','\u{1F3C7}\u{1F3FE}','\u{1F3C7}\u{1F3FF}','\u{1F3CA}\u200D\u2640\uFE0F','\u{1F3CA}\u200D\u2642\uFE0F','\u{1F3CA}\u{1F3FB}','\u{1F3CA}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F3CA}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F3CA}\u{1F3FC}','\u{1F3CA}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F3CA}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F3CA}\u{1F3FD}','\u{1F3CA}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F3CA}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F3CA}\u{1F3FE}','\u{1F3CA}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F3CA}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F3CA}\u{1F3FF}','\u{1F3CA}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F3CA}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F3CB}\u{1F3FB}','\u{1F3CB}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F3CB}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F3CB}\u{1F3FC}','\u{1F3CB}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F3CB}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F3CB}\u{1F3FD}','\u{1F3CB}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F3CB}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F3CB}\u{1F3FE}','\u{1F3CB}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F3CB}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F3CB}\u{1F3FF}','\u{1F3CB}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F3CB}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F3CB}\uFE0F','\u{1F3CB}\uFE0F\u200D\u2640\uFE0F','\u{1F3CB}\uFE0F\u200D\u2642\uFE0F','\u{1F3CC}\u{1F3FB}','\u{1F3CC}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F3CC}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F3CC}\u{1F3FC}','\u{1F3CC}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F3CC}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F3CC}\u{1F3FD}','\u{1F3CC}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F3CC}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F3CC}\u{1F3FE}','\u{1F3CC}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F3CC}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F3CC}\u{1F3FF}','\u{1F3CC}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F3CC}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F3CC}\uFE0F','\u{1F3CC}\uFE0F\u200D\u2640\uFE0F','\u{1F3CC}\uFE0F\u200D\u2642\uFE0F','\u{1F3CD}\uFE0F','\u{1F3CE}\uFE0F','\u{1F3D4}\uFE0F','\u{1F3D5}\uFE0F','\u{1F3D6}\uFE0F','\u{1F3D7}\uFE0F','\u{1F3D8}\uFE0F','\u{1F3D9}\uFE0F','\u{1F3DA}\uFE0F','\u{1F3DB}\uFE0F','\u{1F3DC}\uFE0F','\u{1F3DD}\uFE0F','\u{1F3DE}\uFE0F','\u{1F3DF}\uFE0F','\u{1F3F3}\uFE0F','\u{1F3F3}\uFE0F\u200D\u26A7\uFE0F','\u{1F3F3}\uFE0F\u200D\u{1F308}','\u{1F3F4}\u200D\u2620\uFE0F','\u{1F3F4}\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0067}\u{E007F}','\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}','\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}','\u{1F3F5}\uFE0F','\u{1F3F7}\uFE0F','\u{1F408}\u200D\u2B1B','\u{1F415}\u200D\u{1F9BA}','\u{1F426}\u200D\u2B1B','\u{1F426}\u200D\u{1F525}','\u{1F43B}\u200D\u2744\uFE0F','\u{1F43F}\uFE0F','\u{1F441}\uFE0F','\u{1F441}\uFE0F\u200D\u{1F5E8}\uFE0F','\u{1F442}\u{1F3FB}','\u{1F442}\u{1F3FC}','\u{1F442}\u{1F3FD}','\u{1F442}\u{1F3FE}','\u{1F442}\u{1F3FF}','\u{1F443}\u{1F3FB}','\u{1F443}\u{1F3FC}','\u{1F443}\u{1F3FD}','\u{1F443}\u{1F3FE}','\u{1F443}\u{1F3FF}','\u{1F446}\u{1F3FB}','\u{1F446}\u{1F3FC}','\u{1F446}\u{1F3FD}','\u{1F446}\u{1F3FE}','\u{1F446}\u{1F3FF}','\u{1F447}\u{1F3FB}','\u{1F447}\u{1F3FC}','\u{1F447}\u{1F3FD}','\u{1F447}\u{1F3FE}','\u{1F447}\u{1F3FF}','\u{1F448}\u{1F3FB}','\u{1F448}\u{1F3FC}','\u{1F448}\u{1F3FD}','\u{1F448}\u{1F3FE}','\u{1F448}\u{1F3FF}','\u{1F449}\u{1F3FB}','\u{1F449}\u{1F3FC}','\u{1F449}\u{1F3FD}','\u{1F449}\u{1F3FE}','\u{1F449}\u{1F3FF}','\u{1F44A}\u{1F3FB}','\u{1F44A}\u{1F3FC}','\u{1F44A}\u{1F3FD}','\u{1F44A}\u{1F3FE}','\u{1F44A}\u{1F3FF}','\u{1F44B}\u{1F3FB}','\u{1F44B}\u{1F3FC}','\u{1F44B}\u{1F3FD}','\u{1F44B}\u{1F3FE}','\u{1F44B}\u{1F3FF}','\u{1F44C}\u{1F3FB}','\u{1F44C}\u{1F3FC}','\u{1F44C}\u{1F3FD}','\u{1F44C}\u{1F3FE}','\u{1F44C}\u{1F3FF}','\u{1F44D}\u{1F3FB}','\u{1F44D}\u{1F3FC}','\u{1F44D}\u{1F3FD}','\u{1F44D}\u{1F3FE}','\u{1F44D}\u{1F3FF}','\u{1F44E}\u{1F3FB}','\u{1F44E}\u{1F3FC}','\u{1F44E}\u{1F3FD}','\u{1F44E}\u{1F3FE}','\u{1F44E}\u{1F3FF}','\u{1F44F}\u{1F3FB}','\u{1F44F}\u{1F3FC}','\u{1F44F}\u{1F3FD}','\u{1F44F}\u{1F3FE}','\u{1F44F}\u{1F3FF}','\u{1F450}\u{1F3FB}','\u{1F450}\u{1F3FC}','\u{1F450}\u{1F3FD}','\u{1F450}\u{1F3FE}','\u{1F450}\u{1F3FF}','\u{1F466}\u{1F3FB}','\u{1F466}\u{1F3FC}','\u{1F466}\u{1F3FD}','\u{1F466}\u{1F3FE}','\u{1F466}\u{1F3FF}','\u{1F467}\u{1F3FB}','\u{1F467}\u{1F3FC}','\u{1F467}\u{1F3FD}','\u{1F467}\u{1F3FE}','\u{1F467}\u{1F3FF}','\u{1F468}\u200D\u2695\uFE0F','\u{1F468}\u200D\u2696\uFE0F','\u{1F468}\u200D\u2708\uFE0F','\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F468}','\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}','\u{1F468}\u200D\u{1F33E}','\u{1F468}\u200D\u{1F373}','\u{1F468}\u200D\u{1F37C}','\u{1F468}\u200D\u{1F393}','\u{1F468}\u200D\u{1F3A4}','\u{1F468}\u200D\u{1F3A8}','\u{1F468}\u200D\u{1F3EB}','\u{1F468}\u200D\u{1F3ED}','\u{1F468}\u200D\u{1F466}','\u{1F468}\u200D\u{1F466}\u200D\u{1F466}','\u{1F468}\u200D\u{1F467}','\u{1F468}\u200D\u{1F467}\u200D\u{1F466}','\u{1F468}\u200D\u{1F467}\u200D\u{1F467}','\u{1F468}\u200D\u{1F468}\u200D\u{1F466}','\u{1F468}\u200D\u{1F468}\u200D\u{1F466}\u200D\u{1F466}','\u{1F468}\u200D\u{1F468}\u200D\u{1F467}','\u{1F468}\u200D\u{1F468}\u200D\u{1F467}\u200D\u{1F466}','\u{1F468}\u200D\u{1F468}\u200D\u{1F467}\u200D\u{1F467}','\u{1F468}\u200D\u{1F469}\u200D\u{1F466}','\u{1F468}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}','\u{1F468}\u200D\u{1F469}\u200D\u{1F467}','\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}','\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}','\u{1F468}\u200D\u{1F4BB}','\u{1F468}\u200D\u{1F4BC}','\u{1F468}\u200D\u{1F527}','\u{1F468}\u200D\u{1F52C}','\u{1F468}\u200D\u{1F680}','\u{1F468}\u200D\u{1F692}','\u{1F468}\u200D\u{1F9AF}','\u{1F468}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F468}\u200D\u{1F9B0}','\u{1F468}\u200D\u{1F9B1}','\u{1F468}\u200D\u{1F9B2}','\u{1F468}\u200D\u{1F9B3}','\u{1F468}\u200D\u{1F9BC}','\u{1F468}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F468}\u200D\u{1F9BD}','\u{1F468}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FB}\u200D\u2695\uFE0F','\u{1F468}\u{1F3FB}\u200D\u2696\uFE0F','\u{1F468}\u{1F3FB}\u200D\u2708\uFE0F','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FB}\u200D\u{1F33E}','\u{1F468}\u{1F3FB}\u200D\u{1F373}','\u{1F468}\u{1F3FB}\u200D\u{1F37C}','\u{1F468}\u{1F3FB}\u200D\u{1F393}','\u{1F468}\u{1F3FB}\u200D\u{1F3A4}','\u{1F468}\u{1F3FB}\u200D\u{1F3A8}','\u{1F468}\u{1F3FB}\u200D\u{1F3EB}','\u{1F468}\u{1F3FB}\u200D\u{1F3ED}','\u{1F468}\u{1F3FB}\u200D\u{1F4BB}','\u{1F468}\u{1F3FB}\u200D\u{1F4BC}','\u{1F468}\u{1F3FB}\u200D\u{1F527}','\u{1F468}\u{1F3FB}\u200D\u{1F52C}','\u{1F468}\u{1F3FB}\u200D\u{1F680}','\u{1F468}\u{1F3FB}\u200D\u{1F692}','\u{1F468}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FB}\u200D\u{1F9AF}','\u{1F468}\u{1F3FB}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FB}\u200D\u{1F9B0}','\u{1F468}\u{1F3FB}\u200D\u{1F9B1}','\u{1F468}\u{1F3FB}\u200D\u{1F9B2}','\u{1F468}\u{1F3FB}\u200D\u{1F9B3}','\u{1F468}\u{1F3FB}\u200D\u{1F9BC}','\u{1F468}\u{1F3FB}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FB}\u200D\u{1F9BD}','\u{1F468}\u{1F3FB}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FC}\u200D\u2695\uFE0F','\u{1F468}\u{1F3FC}\u200D\u2696\uFE0F','\u{1F468}\u{1F3FC}\u200D\u2708\uFE0F','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FC}\u200D\u{1F33E}','\u{1F468}\u{1F3FC}\u200D\u{1F373}','\u{1F468}\u{1F3FC}\u200D\u{1F37C}','\u{1F468}\u{1F3FC}\u200D\u{1F393}','\u{1F468}\u{1F3FC}\u200D\u{1F3A4}','\u{1F468}\u{1F3FC}\u200D\u{1F3A8}','\u{1F468}\u{1F3FC}\u200D\u{1F3EB}','\u{1F468}\u{1F3FC}\u200D\u{1F3ED}','\u{1F468}\u{1F3FC}\u200D\u{1F4BB}','\u{1F468}\u{1F3FC}\u200D\u{1F4BC}','\u{1F468}\u{1F3FC}\u200D\u{1F527}','\u{1F468}\u{1F3FC}\u200D\u{1F52C}','\u{1F468}\u{1F3FC}\u200D\u{1F680}','\u{1F468}\u{1F3FC}\u200D\u{1F692}','\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FC}\u200D\u{1F9AF}','\u{1F468}\u{1F3FC}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FC}\u200D\u{1F9B0}','\u{1F468}\u{1F3FC}\u200D\u{1F9B1}','\u{1F468}\u{1F3FC}\u200D\u{1F9B2}','\u{1F468}\u{1F3FC}\u200D\u{1F9B3}','\u{1F468}\u{1F3FC}\u200D\u{1F9BC}','\u{1F468}\u{1F3FC}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FC}\u200D\u{1F9BD}','\u{1F468}\u{1F3FC}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FD}\u200D\u2695\uFE0F','\u{1F468}\u{1F3FD}\u200D\u2696\uFE0F','\u{1F468}\u{1F3FD}\u200D\u2708\uFE0F','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FD}\u200D\u{1F33E}','\u{1F468}\u{1F3FD}\u200D\u{1F373}','\u{1F468}\u{1F3FD}\u200D\u{1F37C}','\u{1F468}\u{1F3FD}\u200D\u{1F393}','\u{1F468}\u{1F3FD}\u200D\u{1F3A4}','\u{1F468}\u{1F3FD}\u200D\u{1F3A8}','\u{1F468}\u{1F3FD}\u200D\u{1F3EB}','\u{1F468}\u{1F3FD}\u200D\u{1F3ED}','\u{1F468}\u{1F3FD}\u200D\u{1F4BB}','\u{1F468}\u{1F3FD}\u200D\u{1F4BC}','\u{1F468}\u{1F3FD}\u200D\u{1F527}','\u{1F468}\u{1F3FD}\u200D\u{1F52C}','\u{1F468}\u{1F3FD}\u200D\u{1F680}','\u{1F468}\u{1F3FD}\u200D\u{1F692}','\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FD}\u200D\u{1F9AF}','\u{1F468}\u{1F3FD}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FD}\u200D\u{1F9B0}','\u{1F468}\u{1F3FD}\u200D\u{1F9B1}','\u{1F468}\u{1F3FD}\u200D\u{1F9B2}','\u{1F468}\u{1F3FD}\u200D\u{1F9B3}','\u{1F468}\u{1F3FD}\u200D\u{1F9BC}','\u{1F468}\u{1F3FD}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FD}\u200D\u{1F9BD}','\u{1F468}\u{1F3FD}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FE}\u200D\u2695\uFE0F','\u{1F468}\u{1F3FE}\u200D\u2696\uFE0F','\u{1F468}\u{1F3FE}\u200D\u2708\uFE0F','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FE}\u200D\u{1F33E}','\u{1F468}\u{1F3FE}\u200D\u{1F373}','\u{1F468}\u{1F3FE}\u200D\u{1F37C}','\u{1F468}\u{1F3FE}\u200D\u{1F393}','\u{1F468}\u{1F3FE}\u200D\u{1F3A4}','\u{1F468}\u{1F3FE}\u200D\u{1F3A8}','\u{1F468}\u{1F3FE}\u200D\u{1F3EB}','\u{1F468}\u{1F3FE}\u200D\u{1F3ED}','\u{1F468}\u{1F3FE}\u200D\u{1F4BB}','\u{1F468}\u{1F3FE}\u200D\u{1F4BC}','\u{1F468}\u{1F3FE}\u200D\u{1F527}','\u{1F468}\u{1F3FE}\u200D\u{1F52C}','\u{1F468}\u{1F3FE}\u200D\u{1F680}','\u{1F468}\u{1F3FE}\u200D\u{1F692}','\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FE}\u200D\u{1F9AF}','\u{1F468}\u{1F3FE}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FE}\u200D\u{1F9B0}','\u{1F468}\u{1F3FE}\u200D\u{1F9B1}','\u{1F468}\u{1F3FE}\u200D\u{1F9B2}','\u{1F468}\u{1F3FE}\u200D\u{1F9B3}','\u{1F468}\u{1F3FE}\u200D\u{1F9BC}','\u{1F468}\u{1F3FE}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FE}\u200D\u{1F9BD}','\u{1F468}\u{1F3FE}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FF}\u200D\u2695\uFE0F','\u{1F468}\u{1F3FF}\u200D\u2696\uFE0F','\u{1F468}\u{1F3FF}\u200D\u2708\uFE0F','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F468}\u{1F3FF}\u200D\u{1F33E}','\u{1F468}\u{1F3FF}\u200D\u{1F373}','\u{1F468}\u{1F3FF}\u200D\u{1F37C}','\u{1F468}\u{1F3FF}\u200D\u{1F393}','\u{1F468}\u{1F3FF}\u200D\u{1F3A4}','\u{1F468}\u{1F3FF}\u200D\u{1F3A8}','\u{1F468}\u{1F3FF}\u200D\u{1F3EB}','\u{1F468}\u{1F3FF}\u200D\u{1F3ED}','\u{1F468}\u{1F3FF}\u200D\u{1F4BB}','\u{1F468}\u{1F3FF}\u200D\u{1F4BC}','\u{1F468}\u{1F3FF}\u200D\u{1F527}','\u{1F468}\u{1F3FF}\u200D\u{1F52C}','\u{1F468}\u{1F3FF}\u200D\u{1F680}','\u{1F468}\u{1F3FF}\u200D\u{1F692}','\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F468}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F468}\u{1F3FF}\u200D\u{1F9AF}','\u{1F468}\u{1F3FF}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FF}\u200D\u{1F9B0}','\u{1F468}\u{1F3FF}\u200D\u{1F9B1}','\u{1F468}\u{1F3FF}\u200D\u{1F9B2}','\u{1F468}\u{1F3FF}\u200D\u{1F9B3}','\u{1F468}\u{1F3FF}\u200D\u{1F9BC}','\u{1F468}\u{1F3FF}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F468}\u{1F3FF}\u200D\u{1F9BD}','\u{1F468}\u{1F3FF}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F469}\u200D\u2695\uFE0F','\u{1F469}\u200D\u2696\uFE0F','\u{1F469}\u200D\u2708\uFE0F','\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F468}','\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F469}','\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}','\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}','\u{1F469}\u200D\u{1F33E}','\u{1F469}\u200D\u{1F373}','\u{1F469}\u200D\u{1F37C}','\u{1F469}\u200D\u{1F393}','\u{1F469}\u200D\u{1F3A4}','\u{1F469}\u200D\u{1F3A8}','\u{1F469}\u200D\u{1F3EB}','\u{1F469}\u200D\u{1F3ED}','\u{1F469}\u200D\u{1F466}','\u{1F469}\u200D\u{1F466}\u200D\u{1F466}','\u{1F469}\u200D\u{1F467}','\u{1F469}\u200D\u{1F467}\u200D\u{1F466}','\u{1F469}\u200D\u{1F467}\u200D\u{1F467}','\u{1F469}\u200D\u{1F469}\u200D\u{1F466}','\u{1F469}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}','\u{1F469}\u200D\u{1F469}\u200D\u{1F467}','\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}','\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}','\u{1F469}\u200D\u{1F4BB}','\u{1F469}\u200D\u{1F4BC}','\u{1F469}\u200D\u{1F527}','\u{1F469}\u200D\u{1F52C}','\u{1F469}\u200D\u{1F680}','\u{1F469}\u200D\u{1F692}','\u{1F469}\u200D\u{1F9AF}','\u{1F469}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F469}\u200D\u{1F9B0}','\u{1F469}\u200D\u{1F9B1}','\u{1F469}\u200D\u{1F9B2}','\u{1F469}\u200D\u{1F9B3}','\u{1F469}\u200D\u{1F9BC}','\u{1F469}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F469}\u200D\u{1F9BD}','\u{1F469}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FB}\u200D\u2695\uFE0F','\u{1F469}\u{1F3FB}\u200D\u2696\uFE0F','\u{1F469}\u{1F3FB}\u200D\u2708\uFE0F','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FB}\u200D\u{1F33E}','\u{1F469}\u{1F3FB}\u200D\u{1F373}','\u{1F469}\u{1F3FB}\u200D\u{1F37C}','\u{1F469}\u{1F3FB}\u200D\u{1F393}','\u{1F469}\u{1F3FB}\u200D\u{1F3A4}','\u{1F469}\u{1F3FB}\u200D\u{1F3A8}','\u{1F469}\u{1F3FB}\u200D\u{1F3EB}','\u{1F469}\u{1F3FB}\u200D\u{1F3ED}','\u{1F469}\u{1F3FB}\u200D\u{1F4BB}','\u{1F469}\u{1F3FB}\u200D\u{1F4BC}','\u{1F469}\u{1F3FB}\u200D\u{1F527}','\u{1F469}\u{1F3FB}\u200D\u{1F52C}','\u{1F469}\u{1F3FB}\u200D\u{1F680}','\u{1F469}\u{1F3FB}\u200D\u{1F692}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FB}\u200D\u{1F9AF}','\u{1F469}\u{1F3FB}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FB}\u200D\u{1F9B0}','\u{1F469}\u{1F3FB}\u200D\u{1F9B1}','\u{1F469}\u{1F3FB}\u200D\u{1F9B2}','\u{1F469}\u{1F3FB}\u200D\u{1F9B3}','\u{1F469}\u{1F3FB}\u200D\u{1F9BC}','\u{1F469}\u{1F3FB}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FB}\u200D\u{1F9BD}','\u{1F469}\u{1F3FB}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FC}\u200D\u2695\uFE0F','\u{1F469}\u{1F3FC}\u200D\u2696\uFE0F','\u{1F469}\u{1F3FC}\u200D\u2708\uFE0F','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FC}\u200D\u{1F33E}','\u{1F469}\u{1F3FC}\u200D\u{1F373}','\u{1F469}\u{1F3FC}\u200D\u{1F37C}','\u{1F469}\u{1F3FC}\u200D\u{1F393}','\u{1F469}\u{1F3FC}\u200D\u{1F3A4}','\u{1F469}\u{1F3FC}\u200D\u{1F3A8}','\u{1F469}\u{1F3FC}\u200D\u{1F3EB}','\u{1F469}\u{1F3FC}\u200D\u{1F3ED}','\u{1F469}\u{1F3FC}\u200D\u{1F4BB}','\u{1F469}\u{1F3FC}\u200D\u{1F4BC}','\u{1F469}\u{1F3FC}\u200D\u{1F527}','\u{1F469}\u{1F3FC}\u200D\u{1F52C}','\u{1F469}\u{1F3FC}\u200D\u{1F680}','\u{1F469}\u{1F3FC}\u200D\u{1F692}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FC}\u200D\u{1F9AF}','\u{1F469}\u{1F3FC}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FC}\u200D\u{1F9B0}','\u{1F469}\u{1F3FC}\u200D\u{1F9B1}','\u{1F469}\u{1F3FC}\u200D\u{1F9B2}','\u{1F469}\u{1F3FC}\u200D\u{1F9B3}','\u{1F469}\u{1F3FC}\u200D\u{1F9BC}','\u{1F469}\u{1F3FC}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FC}\u200D\u{1F9BD}','\u{1F469}\u{1F3FC}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FD}\u200D\u2695\uFE0F','\u{1F469}\u{1F3FD}\u200D\u2696\uFE0F','\u{1F469}\u{1F3FD}\u200D\u2708\uFE0F','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FD}\u200D\u{1F33E}','\u{1F469}\u{1F3FD}\u200D\u{1F373}','\u{1F469}\u{1F3FD}\u200D\u{1F37C}','\u{1F469}\u{1F3FD}\u200D\u{1F393}','\u{1F469}\u{1F3FD}\u200D\u{1F3A4}','\u{1F469}\u{1F3FD}\u200D\u{1F3A8}','\u{1F469}\u{1F3FD}\u200D\u{1F3EB}','\u{1F469}\u{1F3FD}\u200D\u{1F3ED}','\u{1F469}\u{1F3FD}\u200D\u{1F4BB}','\u{1F469}\u{1F3FD}\u200D\u{1F4BC}','\u{1F469}\u{1F3FD}\u200D\u{1F527}','\u{1F469}\u{1F3FD}\u200D\u{1F52C}','\u{1F469}\u{1F3FD}\u200D\u{1F680}','\u{1F469}\u{1F3FD}\u200D\u{1F692}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FD}\u200D\u{1F9AF}','\u{1F469}\u{1F3FD}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FD}\u200D\u{1F9B0}','\u{1F469}\u{1F3FD}\u200D\u{1F9B1}','\u{1F469}\u{1F3FD}\u200D\u{1F9B2}','\u{1F469}\u{1F3FD}\u200D\u{1F9B3}','\u{1F469}\u{1F3FD}\u200D\u{1F9BC}','\u{1F469}\u{1F3FD}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FD}\u200D\u{1F9BD}','\u{1F469}\u{1F3FD}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FE}\u200D\u2695\uFE0F','\u{1F469}\u{1F3FE}\u200D\u2696\uFE0F','\u{1F469}\u{1F3FE}\u200D\u2708\uFE0F','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FE}\u200D\u{1F33E}','\u{1F469}\u{1F3FE}\u200D\u{1F373}','\u{1F469}\u{1F3FE}\u200D\u{1F37C}','\u{1F469}\u{1F3FE}\u200D\u{1F393}','\u{1F469}\u{1F3FE}\u200D\u{1F3A4}','\u{1F469}\u{1F3FE}\u200D\u{1F3A8}','\u{1F469}\u{1F3FE}\u200D\u{1F3EB}','\u{1F469}\u{1F3FE}\u200D\u{1F3ED}','\u{1F469}\u{1F3FE}\u200D\u{1F4BB}','\u{1F469}\u{1F3FE}\u200D\u{1F4BC}','\u{1F469}\u{1F3FE}\u200D\u{1F527}','\u{1F469}\u{1F3FE}\u200D\u{1F52C}','\u{1F469}\u{1F3FE}\u200D\u{1F680}','\u{1F469}\u{1F3FE}\u200D\u{1F692}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FE}\u200D\u{1F9AF}','\u{1F469}\u{1F3FE}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FE}\u200D\u{1F9B0}','\u{1F469}\u{1F3FE}\u200D\u{1F9B1}','\u{1F469}\u{1F3FE}\u200D\u{1F9B2}','\u{1F469}\u{1F3FE}\u200D\u{1F9B3}','\u{1F469}\u{1F3FE}\u200D\u{1F9BC}','\u{1F469}\u{1F3FE}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FE}\u200D\u{1F9BD}','\u{1F469}\u{1F3FE}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FF}\u200D\u2695\uFE0F','\u{1F469}\u{1F3FF}\u200D\u2696\uFE0F','\u{1F469}\u{1F3FF}\u200D\u2708\uFE0F','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}\u{1F3FF}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}\u{1F3FF}','\u{1F469}\u{1F3FF}\u200D\u{1F33E}','\u{1F469}\u{1F3FF}\u200D\u{1F373}','\u{1F469}\u{1F3FF}\u200D\u{1F37C}','\u{1F469}\u{1F3FF}\u200D\u{1F393}','\u{1F469}\u{1F3FF}\u200D\u{1F3A4}','\u{1F469}\u{1F3FF}\u200D\u{1F3A8}','\u{1F469}\u{1F3FF}\u200D\u{1F3EB}','\u{1F469}\u{1F3FF}\u200D\u{1F3ED}','\u{1F469}\u{1F3FF}\u200D\u{1F4BB}','\u{1F469}\u{1F3FF}\u200D\u{1F4BC}','\u{1F469}\u{1F3FF}\u200D\u{1F527}','\u{1F469}\u{1F3FF}\u200D\u{1F52C}','\u{1F469}\u{1F3FF}\u200D\u{1F680}','\u{1F469}\u{1F3FF}\u200D\u{1F692}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FB}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FC}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FD}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F468}\u{1F3FE}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FB}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FC}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FD}','\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F469}\u{1F3FE}','\u{1F469}\u{1F3FF}\u200D\u{1F9AF}','\u{1F469}\u{1F3FF}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FF}\u200D\u{1F9B0}','\u{1F469}\u{1F3FF}\u200D\u{1F9B1}','\u{1F469}\u{1F3FF}\u200D\u{1F9B2}','\u{1F469}\u{1F3FF}\u200D\u{1F9B3}','\u{1F469}\u{1F3FF}\u200D\u{1F9BC}','\u{1F469}\u{1F3FF}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F469}\u{1F3FF}\u200D\u{1F9BD}','\u{1F469}\u{1F3FF}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F46B}\u{1F3FB}','\u{1F46B}\u{1F3FC}','\u{1F46B}\u{1F3FD}','\u{1F46B}\u{1F3FE}','\u{1F46B}\u{1F3FF}','\u{1F46C}\u{1F3FB}','\u{1F46C}\u{1F3FC}','\u{1F46C}\u{1F3FD}','\u{1F46C}\u{1F3FE}','\u{1F46C}\u{1F3FF}','\u{1F46D}\u{1F3FB}','\u{1F46D}\u{1F3FC}','\u{1F46D}\u{1F3FD}','\u{1F46D}\u{1F3FE}','\u{1F46D}\u{1F3FF}','\u{1F46E}\u200D\u2640\uFE0F','\u{1F46E}\u200D\u2642\uFE0F','\u{1F46E}\u{1F3FB}','\u{1F46E}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F46E}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F46E}\u{1F3FC}','\u{1F46E}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F46E}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F46E}\u{1F3FD}','\u{1F46E}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F46E}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F46E}\u{1F3FE}','\u{1F46E}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F46E}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F46E}\u{1F3FF}','\u{1F46E}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F46E}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F46F}\u200D\u2640\uFE0F','\u{1F46F}\u200D\u2642\uFE0F','\u{1F470}\u200D\u2640\uFE0F','\u{1F470}\u200D\u2642\uFE0F','\u{1F470}\u{1F3FB}','\u{1F470}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F470}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F470}\u{1F3FC}','\u{1F470}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F470}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F470}\u{1F3FD}','\u{1F470}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F470}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F470}\u{1F3FE}','\u{1F470}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F470}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F470}\u{1F3FF}','\u{1F470}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F470}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F471}\u200D\u2640\uFE0F','\u{1F471}\u200D\u2642\uFE0F','\u{1F471}\u{1F3FB}','\u{1F471}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F471}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F471}\u{1F3FC}','\u{1F471}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F471}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F471}\u{1F3FD}','\u{1F471}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F471}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F471}\u{1F3FE}','\u{1F471}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F471}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F471}\u{1F3FF}','\u{1F471}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F471}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F472}\u{1F3FB}','\u{1F472}\u{1F3FC}','\u{1F472}\u{1F3FD}','\u{1F472}\u{1F3FE}','\u{1F472}\u{1F3FF}','\u{1F473}\u200D\u2640\uFE0F','\u{1F473}\u200D\u2642\uFE0F','\u{1F473}\u{1F3FB}','\u{1F473}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F473}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F473}\u{1F3FC}','\u{1F473}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F473}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F473}\u{1F3FD}','\u{1F473}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F473}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F473}\u{1F3FE}','\u{1F473}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F473}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F473}\u{1F3FF}','\u{1F473}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F473}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F474}\u{1F3FB}','\u{1F474}\u{1F3FC}','\u{1F474}\u{1F3FD}','\u{1F474}\u{1F3FE}','\u{1F474}\u{1F3FF}','\u{1F475}\u{1F3FB}','\u{1F475}\u{1F3FC}','\u{1F475}\u{1F3FD}','\u{1F475}\u{1F3FE}','\u{1F475}\u{1F3FF}','\u{1F476}\u{1F3FB}','\u{1F476}\u{1F3FC}','\u{1F476}\u{1F3FD}','\u{1F476}\u{1F3FE}','\u{1F476}\u{1F3FF}','\u{1F477}\u200D\u2640\uFE0F','\u{1F477}\u200D\u2642\uFE0F','\u{1F477}\u{1F3FB}','\u{1F477}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F477}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F477}\u{1F3FC}','\u{1F477}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F477}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F477}\u{1F3FD}','\u{1F477}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F477}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F477}\u{1F3FE}','\u{1F477}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F477}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F477}\u{1F3FF}','\u{1F477}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F477}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F478}\u{1F3FB}','\u{1F478}\u{1F3FC}','\u{1F478}\u{1F3FD}','\u{1F478}\u{1F3FE}','\u{1F478}\u{1F3FF}','\u{1F47C}\u{1F3FB}','\u{1F47C}\u{1F3FC}','\u{1F47C}\u{1F3FD}','\u{1F47C}\u{1F3FE}','\u{1F47C}\u{1F3FF}','\u{1F481}\u200D\u2640\uFE0F','\u{1F481}\u200D\u2642\uFE0F','\u{1F481}\u{1F3FB}','\u{1F481}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F481}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F481}\u{1F3FC}','\u{1F481}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F481}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F481}\u{1F3FD}','\u{1F481}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F481}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F481}\u{1F3FE}','\u{1F481}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F481}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F481}\u{1F3FF}','\u{1F481}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F481}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F482}\u200D\u2640\uFE0F','\u{1F482}\u200D\u2642\uFE0F','\u{1F482}\u{1F3FB}','\u{1F482}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F482}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F482}\u{1F3FC}','\u{1F482}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F482}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F482}\u{1F3FD}','\u{1F482}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F482}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F482}\u{1F3FE}','\u{1F482}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F482}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F482}\u{1F3FF}','\u{1F482}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F482}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F483}\u{1F3FB}','\u{1F483}\u{1F3FC}','\u{1F483}\u{1F3FD}','\u{1F483}\u{1F3FE}','\u{1F483}\u{1F3FF}','\u{1F485}\u{1F3FB}','\u{1F485}\u{1F3FC}','\u{1F485}\u{1F3FD}','\u{1F485}\u{1F3FE}','\u{1F485}\u{1F3FF}','\u{1F486}\u200D\u2640\uFE0F','\u{1F486}\u200D\u2642\uFE0F','\u{1F486}\u{1F3FB}','\u{1F486}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F486}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F486}\u{1F3FC}','\u{1F486}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F486}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F486}\u{1F3FD}','\u{1F486}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F486}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F486}\u{1F3FE}','\u{1F486}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F486}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F486}\u{1F3FF}','\u{1F486}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F486}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F487}\u200D\u2640\uFE0F','\u{1F487}\u200D\u2642\uFE0F','\u{1F487}\u{1F3FB}','\u{1F487}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F487}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F487}\u{1F3FC}','\u{1F487}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F487}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F487}\u{1F3FD}','\u{1F487}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F487}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F487}\u{1F3FE}','\u{1F487}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F487}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F487}\u{1F3FF}','\u{1F487}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F487}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F48F}\u{1F3FB}','\u{1F48F}\u{1F3FC}','\u{1F48F}\u{1F3FD}','\u{1F48F}\u{1F3FE}','\u{1F48F}\u{1F3FF}','\u{1F491}\u{1F3FB}','\u{1F491}\u{1F3FC}','\u{1F491}\u{1F3FD}','\u{1F491}\u{1F3FE}','\u{1F491}\u{1F3FF}','\u{1F4AA}\u{1F3FB}','\u{1F4AA}\u{1F3FC}','\u{1F4AA}\u{1F3FD}','\u{1F4AA}\u{1F3FE}','\u{1F4AA}\u{1F3FF}','\u{1F4FD}\uFE0F','\u{1F549}\uFE0F','\u{1F54A}\uFE0F','\u{1F56F}\uFE0F','\u{1F570}\uFE0F','\u{1F573}\uFE0F','\u{1F574}\u{1F3FB}','\u{1F574}\u{1F3FC}','\u{1F574}\u{1F3FD}','\u{1F574}\u{1F3FE}','\u{1F574}\u{1F3FF}','\u{1F574}\uFE0F','\u{1F575}\u{1F3FB}','\u{1F575}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F575}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F575}\u{1F3FC}','\u{1F575}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F575}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F575}\u{1F3FD}','\u{1F575}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F575}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F575}\u{1F3FE}','\u{1F575}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F575}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F575}\u{1F3FF}','\u{1F575}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F575}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F575}\uFE0F','\u{1F575}\uFE0F\u200D\u2640\uFE0F','\u{1F575}\uFE0F\u200D\u2642\uFE0F','\u{1F576}\uFE0F','\u{1F577}\uFE0F','\u{1F578}\uFE0F','\u{1F579}\uFE0F','\u{1F57A}\u{1F3FB}','\u{1F57A}\u{1F3FC}','\u{1F57A}\u{1F3FD}','\u{1F57A}\u{1F3FE}','\u{1F57A}\u{1F3FF}','\u{1F587}\uFE0F','\u{1F58A}\uFE0F','\u{1F58B}\uFE0F','\u{1F58C}\uFE0F','\u{1F58D}\uFE0F','\u{1F590}\u{1F3FB}','\u{1F590}\u{1F3FC}','\u{1F590}\u{1F3FD}','\u{1F590}\u{1F3FE}','\u{1F590}\u{1F3FF}','\u{1F590}\uFE0F','\u{1F595}\u{1F3FB}','\u{1F595}\u{1F3FC}','\u{1F595}\u{1F3FD}','\u{1F595}\u{1F3FE}','\u{1F595}\u{1F3FF}','\u{1F596}\u{1F3FB}','\u{1F596}\u{1F3FC}','\u{1F596}\u{1F3FD}','\u{1F596}\u{1F3FE}','\u{1F596}\u{1F3FF}','\u{1F5A5}\uFE0F','\u{1F5A8}\uFE0F','\u{1F5B1}\uFE0F','\u{1F5B2}\uFE0F','\u{1F5BC}\uFE0F','\u{1F5C2}\uFE0F','\u{1F5C3}\uFE0F','\u{1F5C4}\uFE0F','\u{1F5D1}\uFE0F','\u{1F5D2}\uFE0F','\u{1F5D3}\uFE0F','\u{1F5DC}\uFE0F','\u{1F5DD}\uFE0F','\u{1F5DE}\uFE0F','\u{1F5E1}\uFE0F','\u{1F5E3}\uFE0F','\u{1F5E8}\uFE0F','\u{1F5EF}\uFE0F','\u{1F5F3}\uFE0F','\u{1F5FA}\uFE0F','\u{1F62E}\u200D\u{1F4A8}','\u{1F635}\u200D\u{1F4AB}','\u{1F636}\u200D\u{1F32B}\uFE0F','\u{1F642}\u200D\u2194\uFE0F','\u{1F642}\u200D\u2195\uFE0F','\u{1F645}\u200D\u2640\uFE0F','\u{1F645}\u200D\u2642\uFE0F','\u{1F645}\u{1F3FB}','\u{1F645}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F645}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F645}\u{1F3FC}','\u{1F645}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F645}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F645}\u{1F3FD}','\u{1F645}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F645}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F645}\u{1F3FE}','\u{1F645}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F645}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F645}\u{1F3FF}','\u{1F645}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F645}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F646}\u200D\u2640\uFE0F','\u{1F646}\u200D\u2642\uFE0F','\u{1F646}\u{1F3FB}','\u{1F646}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F646}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F646}\u{1F3FC}','\u{1F646}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F646}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F646}\u{1F3FD}','\u{1F646}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F646}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F646}\u{1F3FE}','\u{1F646}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F646}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F646}\u{1F3FF}','\u{1F646}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F646}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F647}\u200D\u2640\uFE0F','\u{1F647}\u200D\u2642\uFE0F','\u{1F647}\u{1F3FB}','\u{1F647}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F647}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F647}\u{1F3FC}','\u{1F647}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F647}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F647}\u{1F3FD}','\u{1F647}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F647}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F647}\u{1F3FE}','\u{1F647}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F647}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F647}\u{1F3FF}','\u{1F647}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F647}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F64B}\u200D\u2640\uFE0F','\u{1F64B}\u200D\u2642\uFE0F','\u{1F64B}\u{1F3FB}','\u{1F64B}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F64B}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F64B}\u{1F3FC}','\u{1F64B}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F64B}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F64B}\u{1F3FD}','\u{1F64B}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F64B}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F64B}\u{1F3FE}','\u{1F64B}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F64B}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F64B}\u{1F3FF}','\u{1F64B}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F64B}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F64C}\u{1F3FB}','\u{1F64C}\u{1F3FC}','\u{1F64C}\u{1F3FD}','\u{1F64C}\u{1F3FE}','\u{1F64C}\u{1F3FF}','\u{1F64D}\u200D\u2640\uFE0F','\u{1F64D}\u200D\u2642\uFE0F','\u{1F64D}\u{1F3FB}','\u{1F64D}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F64D}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F64D}\u{1F3FC}','\u{1F64D}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F64D}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F64D}\u{1F3FD}','\u{1F64D}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F64D}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F64D}\u{1F3FE}','\u{1F64D}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F64D}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F64D}\u{1F3FF}','\u{1F64D}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F64D}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F64E}\u200D\u2640\uFE0F','\u{1F64E}\u200D\u2642\uFE0F','\u{1F64E}\u{1F3FB}','\u{1F64E}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F64E}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F64E}\u{1F3FC}','\u{1F64E}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F64E}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F64E}\u{1F3FD}','\u{1F64E}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F64E}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F64E}\u{1F3FE}','\u{1F64E}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F64E}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F64E}\u{1F3FF}','\u{1F64E}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F64E}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F64F}\u{1F3FB}','\u{1F64F}\u{1F3FC}','\u{1F64F}\u{1F3FD}','\u{1F64F}\u{1F3FE}','\u{1F64F}\u{1F3FF}','\u{1F6A3}\u200D\u2640\uFE0F','\u{1F6A3}\u200D\u2642\uFE0F','\u{1F6A3}\u{1F3FB}','\u{1F6A3}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F6A3}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F6A3}\u{1F3FC}','\u{1F6A3}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F6A3}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F6A3}\u{1F3FD}','\u{1F6A3}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F6A3}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F6A3}\u{1F3FE}','\u{1F6A3}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F6A3}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F6A3}\u{1F3FF}','\u{1F6A3}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F6A3}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F6B4}\u200D\u2640\uFE0F','\u{1F6B4}\u200D\u2642\uFE0F','\u{1F6B4}\u{1F3FB}','\u{1F6B4}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F6B4}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F6B4}\u{1F3FC}','\u{1F6B4}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F6B4}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F6B4}\u{1F3FD}','\u{1F6B4}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F6B4}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F6B4}\u{1F3FE}','\u{1F6B4}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F6B4}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F6B4}\u{1F3FF}','\u{1F6B4}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F6B4}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F6B5}\u200D\u2640\uFE0F','\u{1F6B5}\u200D\u2642\uFE0F','\u{1F6B5}\u{1F3FB}','\u{1F6B5}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F6B5}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F6B5}\u{1F3FC}','\u{1F6B5}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F6B5}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F6B5}\u{1F3FD}','\u{1F6B5}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F6B5}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F6B5}\u{1F3FE}','\u{1F6B5}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F6B5}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F6B5}\u{1F3FF}','\u{1F6B5}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F6B5}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F6B6}\u200D\u2640\uFE0F','\u{1F6B6}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u200D\u2642\uFE0F','\u{1F6B6}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FB}','\u{1F6B6}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F6B6}\u{1F3FB}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F6B6}\u{1F3FB}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FB}\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FC}','\u{1F6B6}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F6B6}\u{1F3FC}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F6B6}\u{1F3FC}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FC}\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FD}','\u{1F6B6}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F6B6}\u{1F3FD}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F6B6}\u{1F3FD}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FD}\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FE}','\u{1F6B6}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F6B6}\u{1F3FE}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F6B6}\u{1F3FE}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FE}\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FF}','\u{1F6B6}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F6B6}\u{1F3FF}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F6B6}\u{1F3FF}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F6B6}\u{1F3FF}\u200D\u27A1\uFE0F','\u{1F6C0}\u{1F3FB}','\u{1F6C0}\u{1F3FC}','\u{1F6C0}\u{1F3FD}','\u{1F6C0}\u{1F3FE}','\u{1F6C0}\u{1F3FF}','\u{1F6CB}\uFE0F','\u{1F6CC}\u{1F3FB}','\u{1F6CC}\u{1F3FC}','\u{1F6CC}\u{1F3FD}','\u{1F6CC}\u{1F3FE}','\u{1F6CC}\u{1F3FF}','\u{1F6CD}\uFE0F','\u{1F6CE}\uFE0F','\u{1F6CF}\uFE0F','\u{1F6E0}\uFE0F','\u{1F6E1}\uFE0F','\u{1F6E2}\uFE0F','\u{1F6E3}\uFE0F','\u{1F6E4}\uFE0F','\u{1F6E5}\uFE0F','\u{1F6E9}\uFE0F','\u{1F6F0}\uFE0F','\u{1F6F3}\uFE0F','\u{1F90C}\u{1F3FB}','\u{1F90C}\u{1F3FC}','\u{1F90C}\u{1F3FD}','\u{1F90C}\u{1F3FE}','\u{1F90C}\u{1F3FF}','\u{1F90F}\u{1F3FB}','\u{1F90F}\u{1F3FC}','\u{1F90F}\u{1F3FD}','\u{1F90F}\u{1F3FE}','\u{1F90F}\u{1F3FF}','\u{1F918}\u{1F3FB}','\u{1F918}\u{1F3FC}','\u{1F918}\u{1F3FD}','\u{1F918}\u{1F3FE}','\u{1F918}\u{1F3FF}','\u{1F919}\u{1F3FB}','\u{1F919}\u{1F3FC}','\u{1F919}\u{1F3FD}','\u{1F919}\u{1F3FE}','\u{1F919}\u{1F3FF}','\u{1F91A}\u{1F3FB}','\u{1F91A}\u{1F3FC}','\u{1F91A}\u{1F3FD}','\u{1F91A}\u{1F3FE}','\u{1F91A}\u{1F3FF}','\u{1F91B}\u{1F3FB}','\u{1F91B}\u{1F3FC}','\u{1F91B}\u{1F3FD}','\u{1F91B}\u{1F3FE}','\u{1F91B}\u{1F3FF}','\u{1F91C}\u{1F3FB}','\u{1F91C}\u{1F3FC}','\u{1F91C}\u{1F3FD}','\u{1F91C}\u{1F3FE}','\u{1F91C}\u{1F3FF}','\u{1F91D}\u{1F3FB}','\u{1F91D}\u{1F3FC}','\u{1F91D}\u{1F3FD}','\u{1F91D}\u{1F3FE}','\u{1F91D}\u{1F3FF}','\u{1F91E}\u{1F3FB}','\u{1F91E}\u{1F3FC}','\u{1F91E}\u{1F3FD}','\u{1F91E}\u{1F3FE}','\u{1F91E}\u{1F3FF}','\u{1F91F}\u{1F3FB}','\u{1F91F}\u{1F3FC}','\u{1F91F}\u{1F3FD}','\u{1F91F}\u{1F3FE}','\u{1F91F}\u{1F3FF}','\u{1F926}\u200D\u2640\uFE0F','\u{1F926}\u200D\u2642\uFE0F','\u{1F926}\u{1F3FB}','\u{1F926}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F926}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F926}\u{1F3FC}','\u{1F926}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F926}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F926}\u{1F3FD}','\u{1F926}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F926}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F926}\u{1F3FE}','\u{1F926}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F926}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F926}\u{1F3FF}','\u{1F926}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F926}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F930}\u{1F3FB}','\u{1F930}\u{1F3FC}','\u{1F930}\u{1F3FD}','\u{1F930}\u{1F3FE}','\u{1F930}\u{1F3FF}','\u{1F931}\u{1F3FB}','\u{1F931}\u{1F3FC}','\u{1F931}\u{1F3FD}','\u{1F931}\u{1F3FE}','\u{1F931}\u{1F3FF}','\u{1F932}\u{1F3FB}','\u{1F932}\u{1F3FC}','\u{1F932}\u{1F3FD}','\u{1F932}\u{1F3FE}','\u{1F932}\u{1F3FF}','\u{1F933}\u{1F3FB}','\u{1F933}\u{1F3FC}','\u{1F933}\u{1F3FD}','\u{1F933}\u{1F3FE}','\u{1F933}\u{1F3FF}','\u{1F934}\u{1F3FB}','\u{1F934}\u{1F3FC}','\u{1F934}\u{1F3FD}','\u{1F934}\u{1F3FE}','\u{1F934}\u{1F3FF}','\u{1F935}\u200D\u2640\uFE0F','\u{1F935}\u200D\u2642\uFE0F','\u{1F935}\u{1F3FB}','\u{1F935}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F935}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F935}\u{1F3FC}','\u{1F935}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F935}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F935}\u{1F3FD}','\u{1F935}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F935}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F935}\u{1F3FE}','\u{1F935}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F935}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F935}\u{1F3FF}','\u{1F935}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F935}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F936}\u{1F3FB}','\u{1F936}\u{1F3FC}','\u{1F936}\u{1F3FD}','\u{1F936}\u{1F3FE}','\u{1F936}\u{1F3FF}','\u{1F937}\u200D\u2640\uFE0F','\u{1F937}\u200D\u2642\uFE0F','\u{1F937}\u{1F3FB}','\u{1F937}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F937}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F937}\u{1F3FC}','\u{1F937}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F937}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F937}\u{1F3FD}','\u{1F937}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F937}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F937}\u{1F3FE}','\u{1F937}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F937}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F937}\u{1F3FF}','\u{1F937}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F937}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F938}\u200D\u2640\uFE0F','\u{1F938}\u200D\u2642\uFE0F','\u{1F938}\u{1F3FB}','\u{1F938}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F938}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F938}\u{1F3FC}','\u{1F938}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F938}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F938}\u{1F3FD}','\u{1F938}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F938}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F938}\u{1F3FE}','\u{1F938}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F938}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F938}\u{1F3FF}','\u{1F938}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F938}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F939}\u200D\u2640\uFE0F','\u{1F939}\u200D\u2642\uFE0F','\u{1F939}\u{1F3FB}','\u{1F939}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F939}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F939}\u{1F3FC}','\u{1F939}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F939}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F939}\u{1F3FD}','\u{1F939}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F939}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F939}\u{1F3FE}','\u{1F939}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F939}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F939}\u{1F3FF}','\u{1F939}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F939}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F93C}\u200D\u2640\uFE0F','\u{1F93C}\u200D\u2642\uFE0F','\u{1F93D}\u200D\u2640\uFE0F','\u{1F93D}\u200D\u2642\uFE0F','\u{1F93D}\u{1F3FB}','\u{1F93D}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F93D}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F93D}\u{1F3FC}','\u{1F93D}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F93D}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F93D}\u{1F3FD}','\u{1F93D}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F93D}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F93D}\u{1F3FE}','\u{1F93D}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F93D}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F93D}\u{1F3FF}','\u{1F93D}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F93D}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F93E}\u200D\u2640\uFE0F','\u{1F93E}\u200D\u2642\uFE0F','\u{1F93E}\u{1F3FB}','\u{1F93E}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F93E}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F93E}\u{1F3FC}','\u{1F93E}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F93E}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F93E}\u{1F3FD}','\u{1F93E}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F93E}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F93E}\u{1F3FE}','\u{1F93E}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F93E}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F93E}\u{1F3FF}','\u{1F93E}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F93E}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F977}\u{1F3FB}','\u{1F977}\u{1F3FC}','\u{1F977}\u{1F3FD}','\u{1F977}\u{1F3FE}','\u{1F977}\u{1F3FF}','\u{1F9B5}\u{1F3FB}','\u{1F9B5}\u{1F3FC}','\u{1F9B5}\u{1F3FD}','\u{1F9B5}\u{1F3FE}','\u{1F9B5}\u{1F3FF}','\u{1F9B6}\u{1F3FB}','\u{1F9B6}\u{1F3FC}','\u{1F9B6}\u{1F3FD}','\u{1F9B6}\u{1F3FE}','\u{1F9B6}\u{1F3FF}','\u{1F9B8}\u200D\u2640\uFE0F','\u{1F9B8}\u200D\u2642\uFE0F','\u{1F9B8}\u{1F3FB}','\u{1F9B8}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9B8}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9B8}\u{1F3FC}','\u{1F9B8}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9B8}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9B8}\u{1F3FD}','\u{1F9B8}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9B8}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9B8}\u{1F3FE}','\u{1F9B8}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9B8}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9B8}\u{1F3FF}','\u{1F9B8}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9B8}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9B9}\u200D\u2640\uFE0F','\u{1F9B9}\u200D\u2642\uFE0F','\u{1F9B9}\u{1F3FB}','\u{1F9B9}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9B9}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9B9}\u{1F3FC}','\u{1F9B9}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9B9}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9B9}\u{1F3FD}','\u{1F9B9}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9B9}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9B9}\u{1F3FE}','\u{1F9B9}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9B9}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9B9}\u{1F3FF}','\u{1F9B9}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9B9}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9BB}\u{1F3FB}','\u{1F9BB}\u{1F3FC}','\u{1F9BB}\u{1F3FD}','\u{1F9BB}\u{1F3FE}','\u{1F9BB}\u{1F3FF}','\u{1F9CD}\u200D\u2640\uFE0F','\u{1F9CD}\u200D\u2642\uFE0F','\u{1F9CD}\u{1F3FB}','\u{1F9CD}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9CD}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9CD}\u{1F3FC}','\u{1F9CD}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9CD}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9CD}\u{1F3FD}','\u{1F9CD}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9CD}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9CD}\u{1F3FE}','\u{1F9CD}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9CD}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9CD}\u{1F3FF}','\u{1F9CD}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9CD}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9CE}\u200D\u2640\uFE0F','\u{1F9CE}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u200D\u2642\uFE0F','\u{1F9CE}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FB}','\u{1F9CE}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9CE}\u{1F3FB}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9CE}\u{1F3FB}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FB}\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FC}','\u{1F9CE}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9CE}\u{1F3FC}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9CE}\u{1F3FC}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FC}\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FD}','\u{1F9CE}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9CE}\u{1F3FD}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9CE}\u{1F3FD}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FD}\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FE}','\u{1F9CE}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9CE}\u{1F3FE}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9CE}\u{1F3FE}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FE}\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FF}','\u{1F9CE}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9CE}\u{1F3FF}\u200D\u2640\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9CE}\u{1F3FF}\u200D\u2642\uFE0F\u200D\u27A1\uFE0F','\u{1F9CE}\u{1F3FF}\u200D\u27A1\uFE0F','\u{1F9CF}\u200D\u2640\uFE0F','\u{1F9CF}\u200D\u2642\uFE0F','\u{1F9CF}\u{1F3FB}','\u{1F9CF}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9CF}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9CF}\u{1F3FC}','\u{1F9CF}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9CF}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9CF}\u{1F3FD}','\u{1F9CF}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9CF}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9CF}\u{1F3FE}','\u{1F9CF}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9CF}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9CF}\u{1F3FF}','\u{1F9CF}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9CF}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9D1}\u200D\u2695\uFE0F','\u{1F9D1}\u200D\u2696\uFE0F','\u{1F9D1}\u200D\u2708\uFE0F','\u{1F9D1}\u200D\u{1F33E}','\u{1F9D1}\u200D\u{1F373}','\u{1F9D1}\u200D\u{1F37C}','\u{1F9D1}\u200D\u{1F384}','\u{1F9D1}\u200D\u{1F393}','\u{1F9D1}\u200D\u{1F3A4}','\u{1F9D1}\u200D\u{1F3A8}','\u{1F9D1}\u200D\u{1F3EB}','\u{1F9D1}\u200D\u{1F3ED}','\u{1F9D1}\u200D\u{1F4BB}','\u{1F9D1}\u200D\u{1F4BC}','\u{1F9D1}\u200D\u{1F527}','\u{1F9D1}\u200D\u{1F52C}','\u{1F9D1}\u200D\u{1F680}','\u{1F9D1}\u200D\u{1F692}','\u{1F9D1}\u200D\u{1F91D}\u200D\u{1F9D1}','\u{1F9D1}\u200D\u{1F9AF}','\u{1F9D1}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F9D1}\u200D\u{1F9B0}','\u{1F9D1}\u200D\u{1F9B1}','\u{1F9D1}\u200D\u{1F9B2}','\u{1F9D1}\u200D\u{1F9B3}','\u{1F9D1}\u200D\u{1F9BC}','\u{1F9D1}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F9D1}\u200D\u{1F9BD}','\u{1F9D1}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F9D1}\u200D\u{1F9D1}\u200D\u{1F9D2}','\u{1F9D1}\u200D\u{1F9D1}\u200D\u{1F9D2}\u200D\u{1F9D2}','\u{1F9D1}\u200D\u{1F9D2}','\u{1F9D1}\u200D\u{1F9D2}\u200D\u{1F9D2}','\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FB}\u200D\u2695\uFE0F','\u{1F9D1}\u{1F3FB}\u200D\u2696\uFE0F','\u{1F9D1}\u{1F3FB}\u200D\u2708\uFE0F','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FB}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FB}\u200D\u{1F33E}','\u{1F9D1}\u{1F3FB}\u200D\u{1F373}','\u{1F9D1}\u{1F3FB}\u200D\u{1F37C}','\u{1F9D1}\u{1F3FB}\u200D\u{1F384}','\u{1F9D1}\u{1F3FB}\u200D\u{1F393}','\u{1F9D1}\u{1F3FB}\u200D\u{1F3A4}','\u{1F9D1}\u{1F3FB}\u200D\u{1F3A8}','\u{1F9D1}\u{1F3FB}\u200D\u{1F3EB}','\u{1F9D1}\u{1F3FB}\u200D\u{1F3ED}','\u{1F9D1}\u{1F3FB}\u200D\u{1F4BB}','\u{1F9D1}\u{1F3FB}\u200D\u{1F4BC}','\u{1F9D1}\u{1F3FB}\u200D\u{1F527}','\u{1F9D1}\u{1F3FB}\u200D\u{1F52C}','\u{1F9D1}\u{1F3FB}\u200D\u{1F680}','\u{1F9D1}\u{1F3FB}\u200D\u{1F692}','\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9AF}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FB}\u200D\u{1F9B0}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9B1}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9B2}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9B3}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9BC}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FB}\u200D\u{1F9BD}','\u{1F9D1}\u{1F3FB}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FC}\u200D\u2695\uFE0F','\u{1F9D1}\u{1F3FC}\u200D\u2696\uFE0F','\u{1F9D1}\u{1F3FC}\u200D\u2708\uFE0F','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FC}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FC}\u200D\u{1F33E}','\u{1F9D1}\u{1F3FC}\u200D\u{1F373}','\u{1F9D1}\u{1F3FC}\u200D\u{1F37C}','\u{1F9D1}\u{1F3FC}\u200D\u{1F384}','\u{1F9D1}\u{1F3FC}\u200D\u{1F393}','\u{1F9D1}\u{1F3FC}\u200D\u{1F3A4}','\u{1F9D1}\u{1F3FC}\u200D\u{1F3A8}','\u{1F9D1}\u{1F3FC}\u200D\u{1F3EB}','\u{1F9D1}\u{1F3FC}\u200D\u{1F3ED}','\u{1F9D1}\u{1F3FC}\u200D\u{1F4BB}','\u{1F9D1}\u{1F3FC}\u200D\u{1F4BC}','\u{1F9D1}\u{1F3FC}\u200D\u{1F527}','\u{1F9D1}\u{1F3FC}\u200D\u{1F52C}','\u{1F9D1}\u{1F3FC}\u200D\u{1F680}','\u{1F9D1}\u{1F3FC}\u200D\u{1F692}','\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9AF}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FC}\u200D\u{1F9B0}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9B1}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9B2}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9B3}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9BC}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FC}\u200D\u{1F9BD}','\u{1F9D1}\u{1F3FC}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FD}\u200D\u2695\uFE0F','\u{1F9D1}\u{1F3FD}\u200D\u2696\uFE0F','\u{1F9D1}\u{1F3FD}\u200D\u2708\uFE0F','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FD}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FD}\u200D\u{1F33E}','\u{1F9D1}\u{1F3FD}\u200D\u{1F373}','\u{1F9D1}\u{1F3FD}\u200D\u{1F37C}','\u{1F9D1}\u{1F3FD}\u200D\u{1F384}','\u{1F9D1}\u{1F3FD}\u200D\u{1F393}','\u{1F9D1}\u{1F3FD}\u200D\u{1F3A4}','\u{1F9D1}\u{1F3FD}\u200D\u{1F3A8}','\u{1F9D1}\u{1F3FD}\u200D\u{1F3EB}','\u{1F9D1}\u{1F3FD}\u200D\u{1F3ED}','\u{1F9D1}\u{1F3FD}\u200D\u{1F4BB}','\u{1F9D1}\u{1F3FD}\u200D\u{1F4BC}','\u{1F9D1}\u{1F3FD}\u200D\u{1F527}','\u{1F9D1}\u{1F3FD}\u200D\u{1F52C}','\u{1F9D1}\u{1F3FD}\u200D\u{1F680}','\u{1F9D1}\u{1F3FD}\u200D\u{1F692}','\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9AF}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FD}\u200D\u{1F9B0}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9B1}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9B2}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9B3}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9BC}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FD}\u200D\u{1F9BD}','\u{1F9D1}\u{1F3FD}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FE}\u200D\u2695\uFE0F','\u{1F9D1}\u{1F3FE}\u200D\u2696\uFE0F','\u{1F9D1}\u{1F3FE}\u200D\u2708\uFE0F','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FE}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FE}\u200D\u{1F33E}','\u{1F9D1}\u{1F3FE}\u200D\u{1F373}','\u{1F9D1}\u{1F3FE}\u200D\u{1F37C}','\u{1F9D1}\u{1F3FE}\u200D\u{1F384}','\u{1F9D1}\u{1F3FE}\u200D\u{1F393}','\u{1F9D1}\u{1F3FE}\u200D\u{1F3A4}','\u{1F9D1}\u{1F3FE}\u200D\u{1F3A8}','\u{1F9D1}\u{1F3FE}\u200D\u{1F3EB}','\u{1F9D1}\u{1F3FE}\u200D\u{1F3ED}','\u{1F9D1}\u{1F3FE}\u200D\u{1F4BB}','\u{1F9D1}\u{1F3FE}\u200D\u{1F4BC}','\u{1F9D1}\u{1F3FE}\u200D\u{1F527}','\u{1F9D1}\u{1F3FE}\u200D\u{1F52C}','\u{1F9D1}\u{1F3FE}\u200D\u{1F680}','\u{1F9D1}\u{1F3FE}\u200D\u{1F692}','\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9AF}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FE}\u200D\u{1F9B0}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9B1}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9B2}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9B3}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9BC}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FE}\u200D\u{1F9BD}','\u{1F9D1}\u{1F3FE}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FF}\u200D\u2695\uFE0F','\u{1F9D1}\u{1F3FF}\u200D\u2696\uFE0F','\u{1F9D1}\u{1F3FF}\u200D\u2708\uFE0F','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FF}\u200D\u2764\uFE0F\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FF}\u200D\u{1F33E}','\u{1F9D1}\u{1F3FF}\u200D\u{1F373}','\u{1F9D1}\u{1F3FF}\u200D\u{1F37C}','\u{1F9D1}\u{1F3FF}\u200D\u{1F384}','\u{1F9D1}\u{1F3FF}\u200D\u{1F393}','\u{1F9D1}\u{1F3FF}\u200D\u{1F3A4}','\u{1F9D1}\u{1F3FF}\u200D\u{1F3A8}','\u{1F9D1}\u{1F3FF}\u200D\u{1F3EB}','\u{1F9D1}\u{1F3FF}\u200D\u{1F3ED}','\u{1F9D1}\u{1F3FF}\u200D\u{1F4BB}','\u{1F9D1}\u{1F3FF}\u200D\u{1F4BC}','\u{1F9D1}\u{1F3FF}\u200D\u{1F527}','\u{1F9D1}\u{1F3FF}\u200D\u{1F52C}','\u{1F9D1}\u{1F3FF}\u200D\u{1F680}','\u{1F9D1}\u{1F3FF}\u200D\u{1F692}','\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FB}','\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FC}','\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FD}','\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FE}','\u{1F9D1}\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}\u{1F3FF}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9AF}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9AF}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FF}\u200D\u{1F9B0}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9B1}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9B2}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9B3}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9BC}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9BC}\u200D\u27A1\uFE0F','\u{1F9D1}\u{1F3FF}\u200D\u{1F9BD}','\u{1F9D1}\u{1F3FF}\u200D\u{1F9BD}\u200D\u27A1\uFE0F','\u{1F9D2}\u{1F3FB}','\u{1F9D2}\u{1F3FC}','\u{1F9D2}\u{1F3FD}','\u{1F9D2}\u{1F3FE}','\u{1F9D2}\u{1F3FF}','\u{1F9D3}\u{1F3FB}','\u{1F9D3}\u{1F3FC}','\u{1F9D3}\u{1F3FD}','\u{1F9D3}\u{1F3FE}','\u{1F9D3}\u{1F3FF}','\u{1F9D4}\u200D\u2640\uFE0F','\u{1F9D4}\u200D\u2642\uFE0F','\u{1F9D4}\u{1F3FB}','\u{1F9D4}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9D4}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9D4}\u{1F3FC}','\u{1F9D4}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9D4}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9D4}\u{1F3FD}','\u{1F9D4}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9D4}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9D4}\u{1F3FE}','\u{1F9D4}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9D4}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9D4}\u{1F3FF}','\u{1F9D4}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9D4}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9D5}\u{1F3FB}','\u{1F9D5}\u{1F3FC}','\u{1F9D5}\u{1F3FD}','\u{1F9D5}\u{1F3FE}','\u{1F9D5}\u{1F3FF}','\u{1F9D6}\u200D\u2640\uFE0F','\u{1F9D6}\u200D\u2642\uFE0F','\u{1F9D6}\u{1F3FB}','\u{1F9D6}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9D6}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9D6}\u{1F3FC}','\u{1F9D6}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9D6}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9D6}\u{1F3FD}','\u{1F9D6}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9D6}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9D6}\u{1F3FE}','\u{1F9D6}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9D6}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9D6}\u{1F3FF}','\u{1F9D6}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9D6}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9D7}\u200D\u2640\uFE0F','\u{1F9D7}\u200D\u2642\uFE0F','\u{1F9D7}\u{1F3FB}','\u{1F9D7}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9D7}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9D7}\u{1F3FC}','\u{1F9D7}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9D7}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9D7}\u{1F3FD}','\u{1F9D7}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9D7}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9D7}\u{1F3FE}','\u{1F9D7}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9D7}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9D7}\u{1F3FF}','\u{1F9D7}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9D7}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9D8}\u200D\u2640\uFE0F','\u{1F9D8}\u200D\u2642\uFE0F','\u{1F9D8}\u{1F3FB}','\u{1F9D8}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9D8}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9D8}\u{1F3FC}','\u{1F9D8}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9D8}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9D8}\u{1F3FD}','\u{1F9D8}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9D8}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9D8}\u{1F3FE}','\u{1F9D8}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9D8}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9D8}\u{1F3FF}','\u{1F9D8}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9D8}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9D9}\u200D\u2640\uFE0F','\u{1F9D9}\u200D\u2642\uFE0F','\u{1F9D9}\u{1F3FB}','\u{1F9D9}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9D9}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9D9}\u{1F3FC}','\u{1F9D9}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9D9}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9D9}\u{1F3FD}','\u{1F9D9}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9D9}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9D9}\u{1F3FE}','\u{1F9D9}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9D9}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9D9}\u{1F3FF}','\u{1F9D9}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9D9}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9DA}\u200D\u2640\uFE0F','\u{1F9DA}\u200D\u2642\uFE0F','\u{1F9DA}\u{1F3FB}','\u{1F9DA}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9DA}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9DA}\u{1F3FC}','\u{1F9DA}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9DA}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9DA}\u{1F3FD}','\u{1F9DA}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9DA}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9DA}\u{1F3FE}','\u{1F9DA}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9DA}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9DA}\u{1F3FF}','\u{1F9DA}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9DA}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9DB}\u200D\u2640\uFE0F','\u{1F9DB}\u200D\u2642\uFE0F','\u{1F9DB}\u{1F3FB}','\u{1F9DB}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9DB}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9DB}\u{1F3FC}','\u{1F9DB}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9DB}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9DB}\u{1F3FD}','\u{1F9DB}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9DB}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9DB}\u{1F3FE}','\u{1F9DB}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9DB}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9DB}\u{1F3FF}','\u{1F9DB}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9DB}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9DC}\u200D\u2640\uFE0F','\u{1F9DC}\u200D\u2642\uFE0F','\u{1F9DC}\u{1F3FB}','\u{1F9DC}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9DC}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9DC}\u{1F3FC}','\u{1F9DC}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9DC}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9DC}\u{1F3FD}','\u{1F9DC}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9DC}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9DC}\u{1F3FE}','\u{1F9DC}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9DC}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9DC}\u{1F3FF}','\u{1F9DC}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9DC}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9DD}\u200D\u2640\uFE0F','\u{1F9DD}\u200D\u2642\uFE0F','\u{1F9DD}\u{1F3FB}','\u{1F9DD}\u{1F3FB}\u200D\u2640\uFE0F','\u{1F9DD}\u{1F3FB}\u200D\u2642\uFE0F','\u{1F9DD}\u{1F3FC}','\u{1F9DD}\u{1F3FC}\u200D\u2640\uFE0F','\u{1F9DD}\u{1F3FC}\u200D\u2642\uFE0F','\u{1F9DD}\u{1F3FD}','\u{1F9DD}\u{1F3FD}\u200D\u2640\uFE0F','\u{1F9DD}\u{1F3FD}\u200D\u2642\uFE0F','\u{1F9DD}\u{1F3FE}','\u{1F9DD}\u{1F3FE}\u200D\u2640\uFE0F','\u{1F9DD}\u{1F3FE}\u200D\u2642\uFE0F','\u{1F9DD}\u{1F3FF}','\u{1F9DD}\u{1F3FF}\u200D\u2640\uFE0F','\u{1F9DD}\u{1F3FF}\u200D\u2642\uFE0F','\u{1F9DE}\u200D\u2640\uFE0F','\u{1F9DE}\u200D\u2642\uFE0F','\u{1F9DF}\u200D\u2640\uFE0F','\u{1F9DF}\u200D\u2642\uFE0F','\u{1FAC3}\u{1F3FB}','\u{1FAC3}\u{1F3FC}','\u{1FAC3}\u{1F3FD}','\u{1FAC3}\u{1F3FE}','\u{1FAC3}\u{1F3FF}','\u{1FAC4}\u{1F3FB}','\u{1FAC4}\u{1F3FC}','\u{1FAC4}\u{1F3FD}','\u{1FAC4}\u{1F3FE}','\u{1FAC4}\u{1F3FF}','\u{1FAC5}\u{1F3FB}','\u{1FAC5}\u{1F3FC}','\u{1FAC5}\u{1F3FD}','\u{1FAC5}\u{1F3FE}','\u{1FAC5}\u{1F3FF}','\u{1FAF0}\u{1F3FB}','\u{1FAF0}\u{1F3FC}','\u{1FAF0}\u{1F3FD}','\u{1FAF0}\u{1F3FE}','\u{1FAF0}\u{1F3FF}','\u{1FAF1}\u{1F3FB}','\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FC}','\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FD}','\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FE}','\u{1FAF1}\u{1F3FB}\u200D\u{1FAF2}\u{1F3FF}','\u{1FAF1}\u{1F3FC}','\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FB}','\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FD}','\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FE}','\u{1FAF1}\u{1F3FC}\u200D\u{1FAF2}\u{1F3FF}','\u{1FAF1}\u{1F3FD}','\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FB}','\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FC}','\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FE}','\u{1FAF1}\u{1F3FD}\u200D\u{1FAF2}\u{1F3FF}','\u{1FAF1}\u{1F3FE}','\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FB}','\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FC}','\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FD}','\u{1FAF1}\u{1F3FE}\u200D\u{1FAF2}\u{1F3FF}','\u{1FAF1}\u{1F3FF}','\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FB}','\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FC}','\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FD}','\u{1FAF1}\u{1F3FF}\u200D\u{1FAF2}\u{1F3FE}','\u{1FAF2}\u{1F3FB}','\u{1FAF2}\u{1F3FC}','\u{1FAF2}\u{1F3FD}','\u{1FAF2}\u{1F3FE}','\u{1FAF2}\u{1F3FF}','\u{1FAF3}\u{1F3FB}','\u{1FAF3}\u{1F3FC}','\u{1FAF3}\u{1F3FD}','\u{1FAF3}\u{1F3FE}','\u{1FAF3}\u{1F3FF}','\u{1FAF4}\u{1F3FB}','\u{1FAF4}\u{1F3FC}','\u{1FAF4}\u{1F3FD}','\u{1FAF4}\u{1F3FE}','\u{1FAF4}\u{1F3FF}','\u{1FAF5}\u{1F3FB}','\u{1FAF5}\u{1F3FC}','\u{1FAF5}\u{1F3FD}','\u{1FAF5}\u{1F3FE}','\u{1FAF5}\u{1F3FF}','\u{1FAF6}\u{1F3FB}','\u{1FAF6}\u{1F3FC}','\u{1FAF6}\u{1F3FD}','\u{1FAF6}\u{1F3FE}','\u{1FAF6}\u{1F3FF}','\u{1FAF7}\u{1F3FB}','\u{1FAF7}\u{1F3FC}','\u{1FAF7}\u{1F3FD}','\u{1FAF7}\u{1F3FE}','\u{1FAF7}\u{1F3FF}','\u{1FAF8}\u{1F3FB}','\u{1FAF8}\u{1F3FC}','\u{1FAF8}\u{1F3FD}','\u{1FAF8}\u{1F3FE}','\u{1FAF8}\u{1F3FF}']; diff --git a/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji_Flag_Sequence.js b/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji_Flag_Sequence.js index da7c789..6960e10 100644 --- a/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji_Flag_Sequence.js +++ b/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji_Flag_Sequence.js @@ -1,4 +1,4 @@ const set = require('regenerate')(); exports.characters = set; -exports.strings = ['\u{1F1E6}\u{1F1E8}','\u{1F1E6}\u{1F1E9}','\u{1F1E6}\u{1F1EA}','\u{1F1E6}\u{1F1EB}','\u{1F1E6}\u{1F1EC}','\u{1F1E6}\u{1F1EE}','\u{1F1E6}\u{1F1F1}','\u{1F1E6}\u{1F1F2}','\u{1F1E6}\u{1F1F4}','\u{1F1E6}\u{1F1F6}','\u{1F1E6}\u{1F1F7}','\u{1F1E6}\u{1F1F8}','\u{1F1E6}\u{1F1F9}','\u{1F1E6}\u{1F1FA}','\u{1F1E6}\u{1F1FC}','\u{1F1E6}\u{1F1FD}','\u{1F1E6}\u{1F1FF}','\u{1F1E7}\u{1F1E6}','\u{1F1E7}\u{1F1E7}','\u{1F1E7}\u{1F1E9}','\u{1F1E7}\u{1F1EA}','\u{1F1E7}\u{1F1EB}','\u{1F1E7}\u{1F1EC}','\u{1F1E7}\u{1F1ED}','\u{1F1E7}\u{1F1EE}','\u{1F1E7}\u{1F1EF}','\u{1F1E7}\u{1F1F1}','\u{1F1E7}\u{1F1F2}','\u{1F1E7}\u{1F1F3}','\u{1F1E7}\u{1F1F4}','\u{1F1E7}\u{1F1F6}','\u{1F1E7}\u{1F1F7}','\u{1F1E7}\u{1F1F8}','\u{1F1E7}\u{1F1F9}','\u{1F1E7}\u{1F1FB}','\u{1F1E7}\u{1F1FC}','\u{1F1E7}\u{1F1FE}','\u{1F1E7}\u{1F1FF}','\u{1F1E8}\u{1F1E6}','\u{1F1E8}\u{1F1E8}','\u{1F1E8}\u{1F1E9}','\u{1F1E8}\u{1F1EB}','\u{1F1E8}\u{1F1EC}','\u{1F1E8}\u{1F1ED}','\u{1F1E8}\u{1F1EE}','\u{1F1E8}\u{1F1F0}','\u{1F1E8}\u{1F1F1}','\u{1F1E8}\u{1F1F2}','\u{1F1E8}\u{1F1F3}','\u{1F1E8}\u{1F1F4}','\u{1F1E8}\u{1F1F5}','\u{1F1E8}\u{1F1F7}','\u{1F1E8}\u{1F1FA}','\u{1F1E8}\u{1F1FB}','\u{1F1E8}\u{1F1FC}','\u{1F1E8}\u{1F1FD}','\u{1F1E8}\u{1F1FE}','\u{1F1E8}\u{1F1FF}','\u{1F1E9}\u{1F1EA}','\u{1F1E9}\u{1F1EC}','\u{1F1E9}\u{1F1EF}','\u{1F1E9}\u{1F1F0}','\u{1F1E9}\u{1F1F2}','\u{1F1E9}\u{1F1F4}','\u{1F1E9}\u{1F1FF}','\u{1F1EA}\u{1F1E6}','\u{1F1EA}\u{1F1E8}','\u{1F1EA}\u{1F1EA}','\u{1F1EA}\u{1F1EC}','\u{1F1EA}\u{1F1ED}','\u{1F1EA}\u{1F1F7}','\u{1F1EA}\u{1F1F8}','\u{1F1EA}\u{1F1F9}','\u{1F1EA}\u{1F1FA}','\u{1F1EB}\u{1F1EE}','\u{1F1EB}\u{1F1EF}','\u{1F1EB}\u{1F1F0}','\u{1F1EB}\u{1F1F2}','\u{1F1EB}\u{1F1F4}','\u{1F1EB}\u{1F1F7}','\u{1F1EC}\u{1F1E6}','\u{1F1EC}\u{1F1E7}','\u{1F1EC}\u{1F1E9}','\u{1F1EC}\u{1F1EA}','\u{1F1EC}\u{1F1EB}','\u{1F1EC}\u{1F1EC}','\u{1F1EC}\u{1F1ED}','\u{1F1EC}\u{1F1EE}','\u{1F1EC}\u{1F1F1}','\u{1F1EC}\u{1F1F2}','\u{1F1EC}\u{1F1F3}','\u{1F1EC}\u{1F1F5}','\u{1F1EC}\u{1F1F6}','\u{1F1EC}\u{1F1F7}','\u{1F1EC}\u{1F1F8}','\u{1F1EC}\u{1F1F9}','\u{1F1EC}\u{1F1FA}','\u{1F1EC}\u{1F1FC}','\u{1F1EC}\u{1F1FE}','\u{1F1ED}\u{1F1F0}','\u{1F1ED}\u{1F1F2}','\u{1F1ED}\u{1F1F3}','\u{1F1ED}\u{1F1F7}','\u{1F1ED}\u{1F1F9}','\u{1F1ED}\u{1F1FA}','\u{1F1EE}\u{1F1E8}','\u{1F1EE}\u{1F1E9}','\u{1F1EE}\u{1F1EA}','\u{1F1EE}\u{1F1F1}','\u{1F1EE}\u{1F1F2}','\u{1F1EE}\u{1F1F3}','\u{1F1EE}\u{1F1F4}','\u{1F1EE}\u{1F1F6}','\u{1F1EE}\u{1F1F7}','\u{1F1EE}\u{1F1F8}','\u{1F1EE}\u{1F1F9}','\u{1F1EF}\u{1F1EA}','\u{1F1EF}\u{1F1F2}','\u{1F1EF}\u{1F1F4}','\u{1F1EF}\u{1F1F5}','\u{1F1F0}\u{1F1EA}','\u{1F1F0}\u{1F1EC}','\u{1F1F0}\u{1F1ED}','\u{1F1F0}\u{1F1EE}','\u{1F1F0}\u{1F1F2}','\u{1F1F0}\u{1F1F3}','\u{1F1F0}\u{1F1F5}','\u{1F1F0}\u{1F1F7}','\u{1F1F0}\u{1F1FC}','\u{1F1F0}\u{1F1FE}','\u{1F1F0}\u{1F1FF}','\u{1F1F1}\u{1F1E6}','\u{1F1F1}\u{1F1E7}','\u{1F1F1}\u{1F1E8}','\u{1F1F1}\u{1F1EE}','\u{1F1F1}\u{1F1F0}','\u{1F1F1}\u{1F1F7}','\u{1F1F1}\u{1F1F8}','\u{1F1F1}\u{1F1F9}','\u{1F1F1}\u{1F1FA}','\u{1F1F1}\u{1F1FB}','\u{1F1F1}\u{1F1FE}','\u{1F1F2}\u{1F1E6}','\u{1F1F2}\u{1F1E8}','\u{1F1F2}\u{1F1E9}','\u{1F1F2}\u{1F1EA}','\u{1F1F2}\u{1F1EB}','\u{1F1F2}\u{1F1EC}','\u{1F1F2}\u{1F1ED}','\u{1F1F2}\u{1F1F0}','\u{1F1F2}\u{1F1F1}','\u{1F1F2}\u{1F1F2}','\u{1F1F2}\u{1F1F3}','\u{1F1F2}\u{1F1F4}','\u{1F1F2}\u{1F1F5}','\u{1F1F2}\u{1F1F6}','\u{1F1F2}\u{1F1F7}','\u{1F1F2}\u{1F1F8}','\u{1F1F2}\u{1F1F9}','\u{1F1F2}\u{1F1FA}','\u{1F1F2}\u{1F1FB}','\u{1F1F2}\u{1F1FC}','\u{1F1F2}\u{1F1FD}','\u{1F1F2}\u{1F1FE}','\u{1F1F2}\u{1F1FF}','\u{1F1F3}\u{1F1E6}','\u{1F1F3}\u{1F1E8}','\u{1F1F3}\u{1F1EA}','\u{1F1F3}\u{1F1EB}','\u{1F1F3}\u{1F1EC}','\u{1F1F3}\u{1F1EE}','\u{1F1F3}\u{1F1F1}','\u{1F1F3}\u{1F1F4}','\u{1F1F3}\u{1F1F5}','\u{1F1F3}\u{1F1F7}','\u{1F1F3}\u{1F1FA}','\u{1F1F3}\u{1F1FF}','\u{1F1F4}\u{1F1F2}','\u{1F1F5}\u{1F1E6}','\u{1F1F5}\u{1F1EA}','\u{1F1F5}\u{1F1EB}','\u{1F1F5}\u{1F1EC}','\u{1F1F5}\u{1F1ED}','\u{1F1F5}\u{1F1F0}','\u{1F1F5}\u{1F1F1}','\u{1F1F5}\u{1F1F2}','\u{1F1F5}\u{1F1F3}','\u{1F1F5}\u{1F1F7}','\u{1F1F5}\u{1F1F8}','\u{1F1F5}\u{1F1F9}','\u{1F1F5}\u{1F1FC}','\u{1F1F5}\u{1F1FE}','\u{1F1F6}\u{1F1E6}','\u{1F1F7}\u{1F1EA}','\u{1F1F7}\u{1F1F4}','\u{1F1F7}\u{1F1F8}','\u{1F1F7}\u{1F1FA}','\u{1F1F7}\u{1F1FC}','\u{1F1F8}\u{1F1E6}','\u{1F1F8}\u{1F1E7}','\u{1F1F8}\u{1F1E8}','\u{1F1F8}\u{1F1E9}','\u{1F1F8}\u{1F1EA}','\u{1F1F8}\u{1F1EC}','\u{1F1F8}\u{1F1ED}','\u{1F1F8}\u{1F1EE}','\u{1F1F8}\u{1F1EF}','\u{1F1F8}\u{1F1F0}','\u{1F1F8}\u{1F1F1}','\u{1F1F8}\u{1F1F2}','\u{1F1F8}\u{1F1F3}','\u{1F1F8}\u{1F1F4}','\u{1F1F8}\u{1F1F7}','\u{1F1F8}\u{1F1F8}','\u{1F1F8}\u{1F1F9}','\u{1F1F8}\u{1F1FB}','\u{1F1F8}\u{1F1FD}','\u{1F1F8}\u{1F1FE}','\u{1F1F8}\u{1F1FF}','\u{1F1F9}\u{1F1E6}','\u{1F1F9}\u{1F1E8}','\u{1F1F9}\u{1F1E9}','\u{1F1F9}\u{1F1EB}','\u{1F1F9}\u{1F1EC}','\u{1F1F9}\u{1F1ED}','\u{1F1F9}\u{1F1EF}','\u{1F1F9}\u{1F1F0}','\u{1F1F9}\u{1F1F1}','\u{1F1F9}\u{1F1F2}','\u{1F1F9}\u{1F1F3}','\u{1F1F9}\u{1F1F4}','\u{1F1F9}\u{1F1F7}','\u{1F1F9}\u{1F1F9}','\u{1F1F9}\u{1F1FB}','\u{1F1F9}\u{1F1FC}','\u{1F1F9}\u{1F1FF}','\u{1F1FA}\u{1F1E6}','\u{1F1FA}\u{1F1EC}','\u{1F1FA}\u{1F1F2}','\u{1F1FA}\u{1F1F3}','\u{1F1FA}\u{1F1F8}','\u{1F1FA}\u{1F1FE}','\u{1F1FA}\u{1F1FF}','\u{1F1FB}\u{1F1E6}','\u{1F1FB}\u{1F1E8}','\u{1F1FB}\u{1F1EA}','\u{1F1FB}\u{1F1EC}','\u{1F1FB}\u{1F1EE}','\u{1F1FB}\u{1F1F3}','\u{1F1FB}\u{1F1FA}','\u{1F1FC}\u{1F1EB}','\u{1F1FC}\u{1F1F8}','\u{1F1FD}\u{1F1F0}','\u{1F1FE}\u{1F1EA}','\u{1F1FE}\u{1F1F9}','\u{1F1FF}\u{1F1E6}','\u{1F1FF}\u{1F1F2}','\u{1F1FF}\u{1F1FC}']; +exports.strings = ['\u{1F1E6}\u{1F1E8}','\u{1F1E6}\u{1F1E9}','\u{1F1E6}\u{1F1EA}','\u{1F1E6}\u{1F1EB}','\u{1F1E6}\u{1F1EC}','\u{1F1E6}\u{1F1EE}','\u{1F1E6}\u{1F1F1}','\u{1F1E6}\u{1F1F2}','\u{1F1E6}\u{1F1F4}','\u{1F1E6}\u{1F1F6}','\u{1F1E6}\u{1F1F7}','\u{1F1E6}\u{1F1F8}','\u{1F1E6}\u{1F1F9}','\u{1F1E6}\u{1F1FA}','\u{1F1E6}\u{1F1FC}','\u{1F1E6}\u{1F1FD}','\u{1F1E6}\u{1F1FF}','\u{1F1E7}\u{1F1E6}','\u{1F1E7}\u{1F1E7}','\u{1F1E7}\u{1F1E9}','\u{1F1E7}\u{1F1EA}','\u{1F1E7}\u{1F1EB}','\u{1F1E7}\u{1F1EC}','\u{1F1E7}\u{1F1ED}','\u{1F1E7}\u{1F1EE}','\u{1F1E7}\u{1F1EF}','\u{1F1E7}\u{1F1F1}','\u{1F1E7}\u{1F1F2}','\u{1F1E7}\u{1F1F3}','\u{1F1E7}\u{1F1F4}','\u{1F1E7}\u{1F1F6}','\u{1F1E7}\u{1F1F7}','\u{1F1E7}\u{1F1F8}','\u{1F1E7}\u{1F1F9}','\u{1F1E7}\u{1F1FB}','\u{1F1E7}\u{1F1FC}','\u{1F1E7}\u{1F1FE}','\u{1F1E7}\u{1F1FF}','\u{1F1E8}\u{1F1E6}','\u{1F1E8}\u{1F1E8}','\u{1F1E8}\u{1F1E9}','\u{1F1E8}\u{1F1EB}','\u{1F1E8}\u{1F1EC}','\u{1F1E8}\u{1F1ED}','\u{1F1E8}\u{1F1EE}','\u{1F1E8}\u{1F1F0}','\u{1F1E8}\u{1F1F1}','\u{1F1E8}\u{1F1F2}','\u{1F1E8}\u{1F1F3}','\u{1F1E8}\u{1F1F4}','\u{1F1E8}\u{1F1F5}','\u{1F1E8}\u{1F1F6}','\u{1F1E8}\u{1F1F7}','\u{1F1E8}\u{1F1FA}','\u{1F1E8}\u{1F1FB}','\u{1F1E8}\u{1F1FC}','\u{1F1E8}\u{1F1FD}','\u{1F1E8}\u{1F1FE}','\u{1F1E8}\u{1F1FF}','\u{1F1E9}\u{1F1EA}','\u{1F1E9}\u{1F1EC}','\u{1F1E9}\u{1F1EF}','\u{1F1E9}\u{1F1F0}','\u{1F1E9}\u{1F1F2}','\u{1F1E9}\u{1F1F4}','\u{1F1E9}\u{1F1FF}','\u{1F1EA}\u{1F1E6}','\u{1F1EA}\u{1F1E8}','\u{1F1EA}\u{1F1EA}','\u{1F1EA}\u{1F1EC}','\u{1F1EA}\u{1F1ED}','\u{1F1EA}\u{1F1F7}','\u{1F1EA}\u{1F1F8}','\u{1F1EA}\u{1F1F9}','\u{1F1EA}\u{1F1FA}','\u{1F1EB}\u{1F1EE}','\u{1F1EB}\u{1F1EF}','\u{1F1EB}\u{1F1F0}','\u{1F1EB}\u{1F1F2}','\u{1F1EB}\u{1F1F4}','\u{1F1EB}\u{1F1F7}','\u{1F1EC}\u{1F1E6}','\u{1F1EC}\u{1F1E7}','\u{1F1EC}\u{1F1E9}','\u{1F1EC}\u{1F1EA}','\u{1F1EC}\u{1F1EB}','\u{1F1EC}\u{1F1EC}','\u{1F1EC}\u{1F1ED}','\u{1F1EC}\u{1F1EE}','\u{1F1EC}\u{1F1F1}','\u{1F1EC}\u{1F1F2}','\u{1F1EC}\u{1F1F3}','\u{1F1EC}\u{1F1F5}','\u{1F1EC}\u{1F1F6}','\u{1F1EC}\u{1F1F7}','\u{1F1EC}\u{1F1F8}','\u{1F1EC}\u{1F1F9}','\u{1F1EC}\u{1F1FA}','\u{1F1EC}\u{1F1FC}','\u{1F1EC}\u{1F1FE}','\u{1F1ED}\u{1F1F0}','\u{1F1ED}\u{1F1F2}','\u{1F1ED}\u{1F1F3}','\u{1F1ED}\u{1F1F7}','\u{1F1ED}\u{1F1F9}','\u{1F1ED}\u{1F1FA}','\u{1F1EE}\u{1F1E8}','\u{1F1EE}\u{1F1E9}','\u{1F1EE}\u{1F1EA}','\u{1F1EE}\u{1F1F1}','\u{1F1EE}\u{1F1F2}','\u{1F1EE}\u{1F1F3}','\u{1F1EE}\u{1F1F4}','\u{1F1EE}\u{1F1F6}','\u{1F1EE}\u{1F1F7}','\u{1F1EE}\u{1F1F8}','\u{1F1EE}\u{1F1F9}','\u{1F1EF}\u{1F1EA}','\u{1F1EF}\u{1F1F2}','\u{1F1EF}\u{1F1F4}','\u{1F1EF}\u{1F1F5}','\u{1F1F0}\u{1F1EA}','\u{1F1F0}\u{1F1EC}','\u{1F1F0}\u{1F1ED}','\u{1F1F0}\u{1F1EE}','\u{1F1F0}\u{1F1F2}','\u{1F1F0}\u{1F1F3}','\u{1F1F0}\u{1F1F5}','\u{1F1F0}\u{1F1F7}','\u{1F1F0}\u{1F1FC}','\u{1F1F0}\u{1F1FE}','\u{1F1F0}\u{1F1FF}','\u{1F1F1}\u{1F1E6}','\u{1F1F1}\u{1F1E7}','\u{1F1F1}\u{1F1E8}','\u{1F1F1}\u{1F1EE}','\u{1F1F1}\u{1F1F0}','\u{1F1F1}\u{1F1F7}','\u{1F1F1}\u{1F1F8}','\u{1F1F1}\u{1F1F9}','\u{1F1F1}\u{1F1FA}','\u{1F1F1}\u{1F1FB}','\u{1F1F1}\u{1F1FE}','\u{1F1F2}\u{1F1E6}','\u{1F1F2}\u{1F1E8}','\u{1F1F2}\u{1F1E9}','\u{1F1F2}\u{1F1EA}','\u{1F1F2}\u{1F1EB}','\u{1F1F2}\u{1F1EC}','\u{1F1F2}\u{1F1ED}','\u{1F1F2}\u{1F1F0}','\u{1F1F2}\u{1F1F1}','\u{1F1F2}\u{1F1F2}','\u{1F1F2}\u{1F1F3}','\u{1F1F2}\u{1F1F4}','\u{1F1F2}\u{1F1F5}','\u{1F1F2}\u{1F1F6}','\u{1F1F2}\u{1F1F7}','\u{1F1F2}\u{1F1F8}','\u{1F1F2}\u{1F1F9}','\u{1F1F2}\u{1F1FA}','\u{1F1F2}\u{1F1FB}','\u{1F1F2}\u{1F1FC}','\u{1F1F2}\u{1F1FD}','\u{1F1F2}\u{1F1FE}','\u{1F1F2}\u{1F1FF}','\u{1F1F3}\u{1F1E6}','\u{1F1F3}\u{1F1E8}','\u{1F1F3}\u{1F1EA}','\u{1F1F3}\u{1F1EB}','\u{1F1F3}\u{1F1EC}','\u{1F1F3}\u{1F1EE}','\u{1F1F3}\u{1F1F1}','\u{1F1F3}\u{1F1F4}','\u{1F1F3}\u{1F1F5}','\u{1F1F3}\u{1F1F7}','\u{1F1F3}\u{1F1FA}','\u{1F1F3}\u{1F1FF}','\u{1F1F4}\u{1F1F2}','\u{1F1F5}\u{1F1E6}','\u{1F1F5}\u{1F1EA}','\u{1F1F5}\u{1F1EB}','\u{1F1F5}\u{1F1EC}','\u{1F1F5}\u{1F1ED}','\u{1F1F5}\u{1F1F0}','\u{1F1F5}\u{1F1F1}','\u{1F1F5}\u{1F1F2}','\u{1F1F5}\u{1F1F3}','\u{1F1F5}\u{1F1F7}','\u{1F1F5}\u{1F1F8}','\u{1F1F5}\u{1F1F9}','\u{1F1F5}\u{1F1FC}','\u{1F1F5}\u{1F1FE}','\u{1F1F6}\u{1F1E6}','\u{1F1F7}\u{1F1EA}','\u{1F1F7}\u{1F1F4}','\u{1F1F7}\u{1F1F8}','\u{1F1F7}\u{1F1FA}','\u{1F1F7}\u{1F1FC}','\u{1F1F8}\u{1F1E6}','\u{1F1F8}\u{1F1E7}','\u{1F1F8}\u{1F1E8}','\u{1F1F8}\u{1F1E9}','\u{1F1F8}\u{1F1EA}','\u{1F1F8}\u{1F1EC}','\u{1F1F8}\u{1F1ED}','\u{1F1F8}\u{1F1EE}','\u{1F1F8}\u{1F1EF}','\u{1F1F8}\u{1F1F0}','\u{1F1F8}\u{1F1F1}','\u{1F1F8}\u{1F1F2}','\u{1F1F8}\u{1F1F3}','\u{1F1F8}\u{1F1F4}','\u{1F1F8}\u{1F1F7}','\u{1F1F8}\u{1F1F8}','\u{1F1F8}\u{1F1F9}','\u{1F1F8}\u{1F1FB}','\u{1F1F8}\u{1F1FD}','\u{1F1F8}\u{1F1FE}','\u{1F1F8}\u{1F1FF}','\u{1F1F9}\u{1F1E6}','\u{1F1F9}\u{1F1E8}','\u{1F1F9}\u{1F1E9}','\u{1F1F9}\u{1F1EB}','\u{1F1F9}\u{1F1EC}','\u{1F1F9}\u{1F1ED}','\u{1F1F9}\u{1F1EF}','\u{1F1F9}\u{1F1F0}','\u{1F1F9}\u{1F1F1}','\u{1F1F9}\u{1F1F2}','\u{1F1F9}\u{1F1F3}','\u{1F1F9}\u{1F1F4}','\u{1F1F9}\u{1F1F7}','\u{1F1F9}\u{1F1F9}','\u{1F1F9}\u{1F1FB}','\u{1F1F9}\u{1F1FC}','\u{1F1F9}\u{1F1FF}','\u{1F1FA}\u{1F1E6}','\u{1F1FA}\u{1F1EC}','\u{1F1FA}\u{1F1F2}','\u{1F1FA}\u{1F1F3}','\u{1F1FA}\u{1F1F8}','\u{1F1FA}\u{1F1FE}','\u{1F1FA}\u{1F1FF}','\u{1F1FB}\u{1F1E6}','\u{1F1FB}\u{1F1E8}','\u{1F1FB}\u{1F1EA}','\u{1F1FB}\u{1F1EC}','\u{1F1FB}\u{1F1EE}','\u{1F1FB}\u{1F1F3}','\u{1F1FB}\u{1F1FA}','\u{1F1FC}\u{1F1EB}','\u{1F1FC}\u{1F1F8}','\u{1F1FD}\u{1F1F0}','\u{1F1FE}\u{1F1EA}','\u{1F1FE}\u{1F1F9}','\u{1F1FF}\u{1F1E6}','\u{1F1FF}\u{1F1F2}','\u{1F1FF}\u{1F1FC}']; diff --git a/node_modules/regenerate-unicode-properties/Script/Arabic.js b/node_modules/regenerate-unicode-properties/Script/Arabic.js index 279da7d..ec60e0f 100644 --- a/node_modules/regenerate-unicode-properties/Script/Arabic.js +++ b/node_modules/regenerate-unicode-properties/Script/Arabic.js @@ -1,3 +1,3 @@ const set = require('regenerate')(0xFDCF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); -set.addRange(0x600, 0x604).addRange(0x606, 0x60B).addRange(0x60D, 0x61A).addRange(0x61C, 0x61E).addRange(0x620, 0x63F).addRange(0x641, 0x64A).addRange(0x656, 0x66F).addRange(0x671, 0x6DC).addRange(0x6DE, 0x6FF).addRange(0x750, 0x77F).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x898, 0x8E1).addRange(0x8E3, 0x8FF).addRange(0xFB50, 0xFBC2).addRange(0xFBD3, 0xFD3D).addRange(0xFD40, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0x10E60, 0x10E7E).addRange(0x10EFD, 0x10EFF).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1); +set.addRange(0x600, 0x604).addRange(0x606, 0x60B).addRange(0x60D, 0x61A).addRange(0x61C, 0x61E).addRange(0x620, 0x63F).addRange(0x641, 0x64A).addRange(0x656, 0x66F).addRange(0x671, 0x6DC).addRange(0x6DE, 0x6FF).addRange(0x750, 0x77F).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x897, 0x8E1).addRange(0x8E3, 0x8FF).addRange(0xFB50, 0xFBC2).addRange(0xFBD3, 0xFD3D).addRange(0xFD40, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0x10E60, 0x10E7E).addRange(0x10EC2, 0x10EC4).addRange(0x10EFC, 0x10EFF).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script/Balinese.js b/node_modules/regenerate-unicode-properties/Script/Balinese.js index ac30ca8..90a395e 100644 --- a/node_modules/regenerate-unicode-properties/Script/Balinese.js +++ b/node_modules/regenerate-unicode-properties/Script/Balinese.js @@ -1,3 +1,3 @@ const set = require('regenerate')(); -set.addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B7E); +set.addRange(0x1B00, 0x1B4C).addRange(0x1B4E, 0x1B7F); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script/Common.js b/node_modules/regenerate-unicode-properties/Script/Common.js index 382096a..77ac5bc 100644 --- a/node_modules/regenerate-unicode-properties/Script/Common.js +++ b/node_modules/regenerate-unicode-properties/Script/Common.js @@ -1,5 +1,5 @@ const set = require('regenerate')(0xD7, 0xF7, 0x374, 0x37E, 0x385, 0x387, 0x605, 0x60C, 0x61B, 0x61F, 0x640, 0x6DD, 0x8E2, 0xE3F, 0x10FB, 0x1805, 0x1CD3, 0x1CE1, 0x1CFA, 0x3006, 0x30A0, 0x31EF, 0x32FF, 0xA92E, 0xA9CF, 0xAB5B, 0xFEFF, 0xFF70, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1F7F0, 0xE0001); -set.addRange(0x0, 0x40).addRange(0x5B, 0x60).addRange(0x7B, 0xA9).addRange(0xAB, 0xB9).addRange(0xBB, 0xBF).addRange(0x2B9, 0x2DF).addRange(0x2E5, 0x2E9).addRange(0x2EC, 0x2FF).addRange(0x964, 0x965).addRange(0xFD5, 0xFD8).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x1802, 0x1803).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF7).addRange(0x2000, 0x200B).addRange(0x200E, 0x2064).addRange(0x2066, 0x2070).addRange(0x2074, 0x207E).addRange(0x2080, 0x208E).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2125).addRange(0x2127, 0x2129).addRange(0x212C, 0x2131).addRange(0x2133, 0x214D).addRange(0x214F, 0x215F).addRange(0x2189, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x27FF).addRange(0x2900, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2E00, 0x2E5D).addRange(0x2FF0, 0x3004).addRange(0x3008, 0x3020).addRange(0x3030, 0x3037).addRange(0x303C, 0x303F).addRange(0x309B, 0x309C).addRange(0x30FB, 0x30FC).addRange(0x3190, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3220, 0x325F).addRange(0x327F, 0x32CF).addRange(0x3358, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA830, 0xA839).addRange(0xAB6A, 0xAB6B); -set.addRange(0xFD3E, 0xFD3F).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFF01, 0xFF20).addRange(0xFF3B, 0xFF40).addRange(0xFF5B, 0xFF65).addRange(0xFF9E, 0xFF9F).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF9, 0xFFFD).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1013F).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x102E1, 0x102FB).addRange(0x1BCA0, 0x1BCA3).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D166).addRange(0x1D16A, 0x1D17A).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D); -set.addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0xE0020, 0xE007F); +set.addRange(0x0, 0x40).addRange(0x5B, 0x60).addRange(0x7B, 0xA9).addRange(0xAB, 0xB9).addRange(0xBB, 0xBF).addRange(0x2B9, 0x2DF).addRange(0x2E5, 0x2E9).addRange(0x2EC, 0x2FF).addRange(0x964, 0x965).addRange(0xFD5, 0xFD8).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x1802, 0x1803).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF7).addRange(0x2000, 0x200B).addRange(0x200E, 0x2064).addRange(0x2066, 0x2070).addRange(0x2074, 0x207E).addRange(0x2080, 0x208E).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2125).addRange(0x2127, 0x2129).addRange(0x212C, 0x2131).addRange(0x2133, 0x214D).addRange(0x214F, 0x215F).addRange(0x2189, 0x218B).addRange(0x2190, 0x2429).addRange(0x2440, 0x244A).addRange(0x2460, 0x27FF).addRange(0x2900, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2E00, 0x2E5D).addRange(0x2FF0, 0x3004).addRange(0x3008, 0x3020).addRange(0x3030, 0x3037).addRange(0x303C, 0x303F).addRange(0x309B, 0x309C).addRange(0x30FB, 0x30FC).addRange(0x3190, 0x319F).addRange(0x31C0, 0x31E5).addRange(0x3220, 0x325F).addRange(0x327F, 0x32CF).addRange(0x3358, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA830, 0xA839).addRange(0xAB6A, 0xAB6B); +set.addRange(0xFD3E, 0xFD3F).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFF01, 0xFF20).addRange(0xFF3B, 0xFF40).addRange(0xFF5B, 0xFF65).addRange(0xFF9E, 0xFF9F).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF9, 0xFFFD).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1013F).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x102E1, 0x102FB).addRange(0x1BCA0, 0x1BCA3).addRange(0x1CC00, 0x1CCF9).addRange(0x1CD00, 0x1CEB3).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D166).addRange(0x1D16A, 0x1D17A).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF); +set.addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8BB).addRange(0x1F8C0, 0x1F8C1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA89).addRange(0x1FA8F, 0x1FAC6).addRange(0x1FACE, 0x1FADC).addRange(0x1FADF, 0x1FAE9).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBF9).addRange(0xE0020, 0xE007F); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script/Cyrillic.js b/node_modules/regenerate-unicode-properties/Script/Cyrillic.js index 1ddd77f..c48c82a 100644 --- a/node_modules/regenerate-unicode-properties/Script/Cyrillic.js +++ b/node_modules/regenerate-unicode-properties/Script/Cyrillic.js @@ -1,3 +1,3 @@ const set = require('regenerate')(0x1D2B, 0x1D78, 0x1E08F); -set.addRange(0x400, 0x484).addRange(0x487, 0x52F).addRange(0x1C80, 0x1C88).addRange(0x2DE0, 0x2DFF).addRange(0xA640, 0xA69F).addRange(0xFE2E, 0xFE2F).addRange(0x1E030, 0x1E06D); +set.addRange(0x400, 0x484).addRange(0x487, 0x52F).addRange(0x1C80, 0x1C8A).addRange(0x2DE0, 0x2DFF).addRange(0xA640, 0xA69F).addRange(0xFE2E, 0xFE2F).addRange(0x1E030, 0x1E06D); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script/Egyptian_Hieroglyphs.js b/node_modules/regenerate-unicode-properties/Script/Egyptian_Hieroglyphs.js index 6a90eb8..e2fcdc8 100644 --- a/node_modules/regenerate-unicode-properties/Script/Egyptian_Hieroglyphs.js +++ b/node_modules/regenerate-unicode-properties/Script/Egyptian_Hieroglyphs.js @@ -1,3 +1,3 @@ const set = require('regenerate')(); -set.addRange(0x13000, 0x13455); +set.addRange(0x13000, 0x13455).addRange(0x13460, 0x143FA); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script/Kawi.js b/node_modules/regenerate-unicode-properties/Script/Kawi.js index 07c1c17..c306305 100644 --- a/node_modules/regenerate-unicode-properties/Script/Kawi.js +++ b/node_modules/regenerate-unicode-properties/Script/Kawi.js @@ -1,3 +1,3 @@ const set = require('regenerate')(); -set.addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F59); +set.addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F5A); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script/Khitan_Small_Script.js b/node_modules/regenerate-unicode-properties/Script/Khitan_Small_Script.js index dcd6c69..fda2548 100644 --- a/node_modules/regenerate-unicode-properties/Script/Khitan_Small_Script.js +++ b/node_modules/regenerate-unicode-properties/Script/Khitan_Small_Script.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x16FE4); +const set = require('regenerate')(0x16FE4, 0x18CFF); set.addRange(0x18B00, 0x18CD5); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script/Latin.js b/node_modules/regenerate-unicode-properties/Script/Latin.js index 1ba2105..86e1d65 100644 --- a/node_modules/regenerate-unicode-properties/Script/Latin.js +++ b/node_modules/regenerate-unicode-properties/Script/Latin.js @@ -1,3 +1,3 @@ const set = require('regenerate')(0xAA, 0xBA, 0x2071, 0x207F, 0x2132, 0x214E, 0xA7D3); -set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2B8).addRange(0x2E0, 0x2E4).addRange(0x1D00, 0x1D25).addRange(0x1D2C, 0x1D5C).addRange(0x1D62, 0x1D65).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1DBE).addRange(0x1E00, 0x1EFF).addRange(0x2090, 0x209C).addRange(0x212A, 0x212B).addRange(0x2160, 0x2188).addRange(0x2C60, 0x2C7F).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA7FF).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB64).addRange(0xAB66, 0xAB69).addRange(0xFB00, 0xFB06).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A); +set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2B8).addRange(0x2E0, 0x2E4).addRange(0x1D00, 0x1D25).addRange(0x1D2C, 0x1D5C).addRange(0x1D62, 0x1D65).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1DBE).addRange(0x1E00, 0x1EFF).addRange(0x2090, 0x209C).addRange(0x212A, 0x212B).addRange(0x2160, 0x2188).addRange(0x2C60, 0x2C7F).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7DC).addRange(0xA7F2, 0xA7FF).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB64).addRange(0xAB66, 0xAB69).addRange(0xFB00, 0xFB06).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script/Myanmar.js b/node_modules/regenerate-unicode-properties/Script/Myanmar.js index 39421dd..3295c15 100644 --- a/node_modules/regenerate-unicode-properties/Script/Myanmar.js +++ b/node_modules/regenerate-unicode-properties/Script/Myanmar.js @@ -1,3 +1,3 @@ const set = require('regenerate')(); -set.addRange(0x1000, 0x109F).addRange(0xA9E0, 0xA9FE).addRange(0xAA60, 0xAA7F); +set.addRange(0x1000, 0x109F).addRange(0xA9E0, 0xA9FE).addRange(0xAA60, 0xAA7F).addRange(0x116D0, 0x116E3); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Adlam.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Adlam.js index 59a3135..dfa8c34 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Adlam.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Adlam.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x61F, 0x640); +const set = require('regenerate')(0x61F, 0x640, 0x204F, 0x2E41); set.addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Arabic.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Arabic.js index cc86d6a..164a974 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Arabic.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Arabic.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0xFDCF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); -set.addRange(0x600, 0x604).addRange(0x606, 0x6DC).addRange(0x6DE, 0x6FF).addRange(0x750, 0x77F).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x898, 0x8E1).addRange(0x8E3, 0x8FF).addRange(0xFB50, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0x102E0, 0x102FB).addRange(0x10E60, 0x10E7E).addRange(0x10EFD, 0x10EFF).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1); +const set = require('regenerate')(0x204F, 0x2E41, 0xFDCF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E); +set.addRange(0x600, 0x604).addRange(0x606, 0x6DC).addRange(0x6DE, 0x6FF).addRange(0x750, 0x77F).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x897, 0x8E1).addRange(0x8E3, 0x8FF).addRange(0xFB50, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0x102E0, 0x102FB).addRange(0x10E60, 0x10E7E).addRange(0x10EC2, 0x10EC4).addRange(0x10EFC, 0x10EFF).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Armenian.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Armenian.js index ef8b922..f293485 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Armenian.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Armenian.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0x308); set.addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0xFB13, 0xFB17); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Avestan.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Avestan.js index 1be7d65..1817328 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Avestan.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Avestan.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); -set.addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B3F); +const set = require('regenerate')(0xB7); +set.addRange(0x2E30, 0x2E31).addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B3F); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Balinese.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Balinese.js index ac30ca8..90a395e 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Balinese.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Balinese.js @@ -1,3 +1,3 @@ const set = require('regenerate')(); -set.addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B7E); +set.addRange(0x1B00, 0x1B4C).addRange(0x1B4E, 0x1B7F); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Bengali.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Bengali.js index 653eab7..df187c8 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Bengali.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Bengali.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x9B2, 0x9D7, 0x1CD0, 0x1CD2, 0x1CD8, 0x1CE1, 0x1CEA, 0x1CED, 0x1CF2, 0xA8F1); +const set = require('regenerate')(0x2BC, 0x9B2, 0x9D7, 0x1CD0, 0x1CD2, 0x1CD8, 0x1CE1, 0x1CEA, 0x1CED, 0x1CF2, 0xA8F1); set.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0x980, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9FE).addRange(0x1CD5, 0x1CD6).addRange(0x1CF5, 0x1CF7); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Bopomofo.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Bopomofo.js index d2860e6..e43a15b 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Bopomofo.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Bopomofo.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x3030, 0x3037, 0x30FB); -set.addRange(0x2EA, 0x2EB).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x302A, 0x302D).addRange(0x3105, 0x312F).addRange(0x31A0, 0x31BF).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65); +const set = require('regenerate')(0x2C7, 0x2D9, 0x3030, 0x3037, 0x30FB); +set.addRange(0x2C9, 0x2CB).addRange(0x2EA, 0x2EB).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x302A, 0x302D).addRange(0x3105, 0x312F).addRange(0x31A0, 0x31BF).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Carian.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Carian.js index 2777f50..5f708a1 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Carian.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Carian.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0xB7, 0x205A, 0x205D, 0x2E31); set.addRange(0x102A0, 0x102D0); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Caucasian_Albanian.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Caucasian_Albanian.js index fac9b63..b61d771 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Caucasian_Albanian.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Caucasian_Albanian.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x1056F); +const set = require('regenerate')(0x304, 0x331, 0x35E, 0x1056F); set.addRange(0x10530, 0x10563); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Cherokee.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Cherokee.js index 992ef27..9ab0b03 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Cherokee.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Cherokee.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); -set.addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0xAB70, 0xABBF); +const set = require('regenerate')(0x304); +set.addRange(0x300, 0x302).addRange(0x30B, 0x30C).addRange(0x323, 0x324).addRange(0x330, 0x331).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0xAB70, 0xABBF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Common.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Common.js index 83f9a86..4efb86f 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Common.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Common.js @@ -1,5 +1,5 @@ -const set = require('regenerate')(0xD7, 0xF7, 0x374, 0x37E, 0x385, 0x387, 0x605, 0x6DD, 0x8E2, 0xE3F, 0x3004, 0x3012, 0x3020, 0x3036, 0x31EF, 0x327F, 0x33FF, 0xAB5B, 0xFEFF, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1F7F0, 0xE0001); -set.addRange(0x0, 0x40).addRange(0x5B, 0x60).addRange(0x7B, 0xA9).addRange(0xAB, 0xB9).addRange(0xBB, 0xBF).addRange(0x2B9, 0x2DF).addRange(0x2E5, 0x2E9).addRange(0x2EC, 0x2FF).addRange(0xFD5, 0xFD8).addRange(0x16EB, 0x16ED).addRange(0x2000, 0x200B).addRange(0x200E, 0x202E).addRange(0x2030, 0x2064).addRange(0x2066, 0x2070).addRange(0x2074, 0x207E).addRange(0x2080, 0x208E).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2125).addRange(0x2127, 0x2129).addRange(0x212C, 0x2131).addRange(0x2133, 0x214D).addRange(0x214F, 0x215F).addRange(0x2189, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x27FF).addRange(0x2900, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2E00, 0x2E42).addRange(0x2E44, 0x2E5D).addRange(0x2FF0, 0x3000).addRange(0x3248, 0x325F).addRange(0x32B1, 0x32BF).addRange(0x32CC, 0x32CF).addRange(0x3371, 0x337A).addRange(0x3380, 0x33DF).addRange(0x4DC0, 0x4DFF).addRange(0xA708, 0xA721).addRange(0xA788, 0xA78A).addRange(0xAB6A, 0xAB6B).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE44).addRange(0xFE47, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFF01, 0xFF20).addRange(0xFF3B, 0xFF40).addRange(0xFF5B, 0xFF60).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE); -set.addRange(0xFFF9, 0xFFFD).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D166).addRange(0x1D16A, 0x1D17A).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D372, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776); -set.addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0xE0020, 0xE007F); +const set = require('regenerate')(0xD7, 0xF7, 0x2C8, 0x2CC, 0x2D8, 0x37E, 0x385, 0x387, 0x605, 0x6DD, 0x8E2, 0xE3F, 0x2E42, 0x3000, 0x3004, 0x3012, 0x3020, 0x3036, 0x327F, 0x33FF, 0xAB5B, 0xFEFF, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1F7F0, 0xE0001); +set.addRange(0x0, 0x40).addRange(0x5B, 0x60).addRange(0x7B, 0xA9).addRange(0xAB, 0xB6).addRange(0xB8, 0xB9).addRange(0xBB, 0xBF).addRange(0x2B9, 0x2BB).addRange(0x2BD, 0x2C6).addRange(0x2CE, 0x2D6).addRange(0x2DA, 0x2DF).addRange(0x2E5, 0x2E9).addRange(0x2EC, 0x2FF).addRange(0xFD5, 0xFD8).addRange(0x2000, 0x200B).addRange(0x200E, 0x202E).addRange(0x2030, 0x204E).addRange(0x2050, 0x2059).addRange(0x205B, 0x205C).addRange(0x205E, 0x2064).addRange(0x2066, 0x2070).addRange(0x2074, 0x207E).addRange(0x2080, 0x208E).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2125).addRange(0x2127, 0x2129).addRange(0x212C, 0x2131).addRange(0x2133, 0x214D).addRange(0x214F, 0x215F).addRange(0x2189, 0x218B).addRange(0x2190, 0x2429).addRange(0x2440, 0x244A).addRange(0x2460, 0x27FF).addRange(0x2900, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2E00, 0x2E16).addRange(0x2E18, 0x2E2F).addRange(0x2E32, 0x2E3B).addRange(0x2E3D, 0x2E40).addRange(0x2E44, 0x2E5D).addRange(0x3248, 0x325F).addRange(0x32B1, 0x32BF).addRange(0x32CC, 0x32CF).addRange(0x3371, 0x337A).addRange(0x3380, 0x33DF).addRange(0x4DC0, 0x4DFF).addRange(0xA708, 0xA721).addRange(0xA788, 0xA78A).addRange(0xAB6A, 0xAB6B).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE44); +set.addRange(0xFE47, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFF01, 0xFF20).addRange(0xFF3B, 0xFF40).addRange(0xFF5B, 0xFF60).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF9, 0xFFFD).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x1CC00, 0x1CCF9).addRange(0x1CD00, 0x1CEB3).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D166).addRange(0x1D16A, 0x1D17A).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D372, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5); +set.addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8BB).addRange(0x1F8C0, 0x1F8C1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA89).addRange(0x1FA8F, 0x1FAC6).addRange(0x1FACE, 0x1FADC).addRange(0x1FADF, 0x1FAE9).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBF9).addRange(0xE0020, 0xE007F); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Coptic.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Coptic.js index d538e65..33004cc 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Coptic.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Coptic.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); -set.addRange(0x3E2, 0x3EF).addRange(0x2C80, 0x2CF3).addRange(0x2CF9, 0x2CFF).addRange(0x102E0, 0x102FB); +const set = require('regenerate')(0xB7, 0x300, 0x307, 0x2E17); +set.addRange(0x304, 0x305).addRange(0x374, 0x375).addRange(0x3E2, 0x3EF).addRange(0x2C80, 0x2CF3).addRange(0x2CF9, 0x2CFF).addRange(0x102E0, 0x102FB); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Cyrillic.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Cyrillic.js index 13d53b4..c7e019e 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Cyrillic.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Cyrillic.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x1D2B, 0x1D78, 0x1DF8, 0x2E43, 0x1E08F); -set.addRange(0x400, 0x52F).addRange(0x1C80, 0x1C88).addRange(0x2DE0, 0x2DFF).addRange(0xA640, 0xA69F).addRange(0xFE2E, 0xFE2F).addRange(0x1E030, 0x1E06D); +const set = require('regenerate')(0x2BC, 0x304, 0x306, 0x308, 0x30B, 0x311, 0x1D2B, 0x1D78, 0x1DF8, 0x2E43, 0x1E08F); +set.addRange(0x300, 0x302).addRange(0x400, 0x52F).addRange(0x1C80, 0x1C8A).addRange(0x2DE0, 0x2DFF).addRange(0xA640, 0xA69F).addRange(0xFE2E, 0xFE2F).addRange(0x1E030, 0x1E06D); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Devanagari.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Devanagari.js index cf778b7..79447c0 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Devanagari.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Devanagari.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x20F0); +const set = require('regenerate')(0x2BC, 0x20F0); set.addRange(0x900, 0x952).addRange(0x955, 0x97F).addRange(0x1CD0, 0x1CF6).addRange(0x1CF8, 0x1CF9).addRange(0xA830, 0xA839).addRange(0xA8E0, 0xA8FF).addRange(0x11B00, 0x11B09); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Duployan.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Duployan.js index 304cb74..cf29160 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Duployan.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Duployan.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); -set.addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BCA3); +const set = require('regenerate')(0xB7, 0x30A, 0x2E3C); +set.addRange(0x307, 0x308).addRange(0x323, 0x324).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BCA3); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Egyptian_Hieroglyphs.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Egyptian_Hieroglyphs.js index 6a90eb8..e2fcdc8 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Egyptian_Hieroglyphs.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Egyptian_Hieroglyphs.js @@ -1,3 +1,3 @@ const set = require('regenerate')(); -set.addRange(0x13000, 0x13455); +set.addRange(0x13000, 0x13455).addRange(0x13460, 0x143FA); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Elbasan.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Elbasan.js index ba7a16d..8f0765d 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Elbasan.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Elbasan.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0xB7, 0x305); set.addRange(0x10500, 0x10527); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Ethiopic.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Ethiopic.js index 46d0c32..9fc7abd 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Ethiopic.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Ethiopic.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x1258, 0x12C0); +const set = require('regenerate')(0x30E, 0x1258, 0x12C0); set.addRange(0x1200, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x137C).addRange(0x1380, 0x1399).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Georgian.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Georgian.js index 92b8412..19c9796 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Georgian.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Georgian.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x10C7, 0x10CD, 0x2D27, 0x2D2D); +const set = require('regenerate')(0xB7, 0x589, 0x10C7, 0x10CD, 0x205A, 0x2D27, 0x2D2D, 0x2E31); set.addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FF).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x2D00, 0x2D25); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Glagolitic.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Glagolitic.js index 50642b5..2251312 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Glagolitic.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Glagolitic.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x484, 0x487, 0x2E43, 0xA66F); +const set = require('regenerate')(0xB7, 0x303, 0x305, 0x484, 0x487, 0x589, 0x10FB, 0x205A, 0x2E43, 0xA66F); set.addRange(0x2C00, 0x2C5F).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Gothic.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Gothic.js index 784eb78..c54f806 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Gothic.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Gothic.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); -set.addRange(0x10330, 0x1034A); +const set = require('regenerate')(0xB7, 0x308, 0x331); +set.addRange(0x304, 0x305).addRange(0x10330, 0x1034A); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Greek.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Greek.js index b3f2d03..bf54c04 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Greek.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Greek.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x342, 0x345, 0x37F, 0x384, 0x386, 0x38C, 0x1F59, 0x1F5B, 0x1F5D, 0x2126, 0xAB65, 0x101A0); -set.addRange(0x370, 0x373).addRange(0x375, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3E1).addRange(0x3F0, 0x3FF).addRange(0x1D26, 0x1D2A).addRange(0x1D5D, 0x1D61).addRange(0x1D66, 0x1D6A).addRange(0x1DBF, 0x1DC1).addRange(0x1F00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x10140, 0x1018E).addRange(0x1D200, 0x1D245); +const set = require('regenerate')(0xB7, 0x304, 0x306, 0x308, 0x313, 0x342, 0x345, 0x37F, 0x384, 0x386, 0x38C, 0x1F59, 0x1F5B, 0x1F5D, 0x205D, 0x2126, 0xAB65, 0x101A0); +set.addRange(0x300, 0x301).addRange(0x370, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3E1).addRange(0x3F0, 0x3FF).addRange(0x1D26, 0x1D2A).addRange(0x1D5D, 0x1D61).addRange(0x1D66, 0x1D6A).addRange(0x1DBF, 0x1DC1).addRange(0x1F00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x10140, 0x1018E).addRange(0x1D200, 0x1D245); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Gunjala_Gondi.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Gunjala_Gondi.js index fb61ef0..4fe286e 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Gunjala_Gondi.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Gunjala_Gondi.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0xB7); set.addRange(0x964, 0x965).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Han.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Han.js index ef26dc2..86365f3 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Han.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Han.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x3030, 0x30FB, 0x32FF); -set.addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x3001, 0x3003).addRange(0x3005, 0x3011).addRange(0x3013, 0x301F).addRange(0x3021, 0x302D).addRange(0x3037, 0x303F).addRange(0x3190, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3220, 0x3247).addRange(0x3280, 0x32B0).addRange(0x32C0, 0x32CB).addRange(0x3358, 0x3370).addRange(0x337B, 0x337F).addRange(0x33E0, 0x33FE).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xA700, 0xA707).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65).addRange(0x16FE2, 0x16FE3).addRange(0x16FF0, 0x16FF1).addRange(0x1D360, 0x1D371).addRange(0x1F250, 0x1F251).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); +const set = require('regenerate')(0xB7, 0x3030, 0x30FB, 0x31EF, 0x32FF); +set.addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFF).addRange(0x3001, 0x3003).addRange(0x3005, 0x3011).addRange(0x3013, 0x301F).addRange(0x3021, 0x302D).addRange(0x3037, 0x303F).addRange(0x3190, 0x319F).addRange(0x31C0, 0x31E5).addRange(0x3220, 0x3247).addRange(0x3280, 0x32B0).addRange(0x32C0, 0x32CB).addRange(0x3358, 0x3370).addRange(0x337B, 0x337F).addRange(0x33E0, 0x33FE).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xA700, 0xA707).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65).addRange(0x16FE2, 0x16FE3).addRange(0x16FF0, 0x16FF1).addRange(0x1D360, 0x1D371).addRange(0x1F250, 0x1F251).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Hebrew.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Hebrew.js index 3d46e0e..1ac3f7d 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Hebrew.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Hebrew.js @@ -1,3 +1,3 @@ const set = require('regenerate')(0xFB3E); -set.addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFB4F); +set.addRange(0x307, 0x308).addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFB4F); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Inherited.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Inherited.js index 35b6b3d..1e91c8e 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Inherited.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Inherited.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x1DF9, 0x101FD); -set.addRange(0x300, 0x341).addRange(0x343, 0x344).addRange(0x346, 0x362).addRange(0x953, 0x954).addRange(0x1AB0, 0x1ACE).addRange(0x1DC2, 0x1DF7).addRange(0x1DFB, 0x1DFF).addRange(0x200C, 0x200D).addRange(0x20D0, 0x20EF).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2D).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0xE0100, 0xE01EF); +const set = require('regenerate')(0x30F, 0x312, 0x32F, 0x1DF9, 0x101FD); +set.addRange(0x314, 0x31F).addRange(0x321, 0x322).addRange(0x326, 0x32C).addRange(0x332, 0x341).addRange(0x343, 0x344).addRange(0x346, 0x357).addRange(0x359, 0x35D).addRange(0x35F, 0x362).addRange(0x953, 0x954).addRange(0x1AB0, 0x1ACE).addRange(0x1DC2, 0x1DF7).addRange(0x1DFB, 0x1DFF).addRange(0x200C, 0x200D).addRange(0x20D0, 0x20EF).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2D).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0xE0100, 0xE01EF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Kaithi.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Kaithi.js index 531169d..95da282 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Kaithi.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Kaithi.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x110CD); +const set = require('regenerate')(0x2E31, 0x110CD); set.addRange(0x966, 0x96F).addRange(0xA830, 0xA839).addRange(0x11080, 0x110C2); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Kannada.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Kannada.js index 25afb61..c3bd97a 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Kannada.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Kannada.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x1CD0, 0x1CD2, 0x1CDA, 0x1CF2, 0x1CF4); -set.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xC80, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3).addRange(0xA830, 0xA835); +const set = require('regenerate')(0x1CD0, 0x1CDA, 0x1CF2, 0x1CF4); +set.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xC80, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3).addRange(0x1CD2, 0x1CD3).addRange(0xA830, 0xA835); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Katakana.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Katakana.js index 4ea99a3..569f51a 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Katakana.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Katakana.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x3037, 0x1B000, 0x1B155); +const set = require('regenerate')(0x305, 0x323, 0x3037, 0x1B000, 0x1B155); set.addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x3030, 0x3035).addRange(0x303C, 0x303D).addRange(0x3099, 0x309C).addRange(0x30A0, 0x30FF).addRange(0x31F0, 0x31FF).addRange(0x32D0, 0x32FE).addRange(0x3300, 0x3357).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF9F).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B120, 0x1B122).addRange(0x1B164, 0x1B167); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Kawi.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Kawi.js index 07c1c17..c306305 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Kawi.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Kawi.js @@ -1,3 +1,3 @@ const set = require('regenerate')(); -set.addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F59); +set.addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F5A); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Khitan_Small_Script.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Khitan_Small_Script.js index dcd6c69..fda2548 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Khitan_Small_Script.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Khitan_Small_Script.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x16FE4); +const set = require('regenerate')(0x16FE4, 0x18CFF); set.addRange(0x18B00, 0x18CD5); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Latin.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Latin.js index a199776..71956ee 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Latin.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Latin.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0xAA, 0xBA, 0x10FB, 0x202F, 0x2071, 0x207F, 0x20F0, 0x2132, 0x214E, 0xA7D3, 0xA92E); -set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2B8).addRange(0x2E0, 0x2E4).addRange(0x363, 0x36F).addRange(0x485, 0x486).addRange(0x951, 0x952).addRange(0x1D00, 0x1D25).addRange(0x1D2C, 0x1D5C).addRange(0x1D62, 0x1D65).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1DBE).addRange(0x1E00, 0x1EFF).addRange(0x2090, 0x209C).addRange(0x212A, 0x212B).addRange(0x2160, 0x2188).addRange(0x2C60, 0x2C7F).addRange(0xA700, 0xA707).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA7FF).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB64).addRange(0xAB66, 0xAB69).addRange(0xFB00, 0xFB06).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A); +const set = require('regenerate')(0xAA, 0xB7, 0xBA, 0x2BC, 0x2C7, 0x2CD, 0x2D7, 0x2D9, 0x313, 0x320, 0x358, 0x35E, 0x10FB, 0x1DF8, 0x202F, 0x2071, 0x207F, 0x20F0, 0x2132, 0x214E, 0x2E17, 0xA7D3, 0xA92E); +set.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2B8).addRange(0x2C9, 0x2CB).addRange(0x2E0, 0x2E4).addRange(0x300, 0x30E).addRange(0x310, 0x311).addRange(0x323, 0x325).addRange(0x32D, 0x32E).addRange(0x330, 0x331).addRange(0x363, 0x36F).addRange(0x485, 0x486).addRange(0x951, 0x952).addRange(0x1D00, 0x1D25).addRange(0x1D2C, 0x1D5C).addRange(0x1D62, 0x1D65).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1DBE).addRange(0x1E00, 0x1EFF).addRange(0x2090, 0x209C).addRange(0x212A, 0x212B).addRange(0x2160, 0x2188).addRange(0x2C60, 0x2C7F).addRange(0xA700, 0xA707).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA7CD).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7DC).addRange(0xA7F2, 0xA7FF).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB64).addRange(0xAB66, 0xAB69).addRange(0xFB00, 0xFB06).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Lisu.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Lisu.js index 4e91f68..b8dc031 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Lisu.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Lisu.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x11FB0); -set.addRange(0xA4D0, 0xA4FF); +const set = require('regenerate')(0x2BC, 0x2CD, 0x11FB0); +set.addRange(0x300A, 0x300B).addRange(0xA4D0, 0xA4FF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Lycian.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Lycian.js index eb1cc7d..6d1b510 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Lycian.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Lycian.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0x205A); set.addRange(0x10280, 0x1029C); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Lydian.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Lydian.js index 1abc731..e595c8f 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Lydian.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Lydian.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x1093F); +const set = require('regenerate')(0xB7, 0x2E31, 0x1093F); set.addRange(0x10920, 0x10939); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Mahajani.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Mahajani.js index 7df3f8b..cb04518 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Mahajani.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Mahajani.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0xB7); set.addRange(0x964, 0x96F).addRange(0xA830, 0xA839).addRange(0x11150, 0x11176); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Meroitic_Hieroglyphs.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Meroitic_Hieroglyphs.js index 8804e91..d1dbe79 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Meroitic_Hieroglyphs.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Meroitic_Hieroglyphs.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0x205D); set.addRange(0x10980, 0x1099F); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Mongolian.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Mongolian.js index aa35176..1babb13 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Mongolian.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Mongolian.js @@ -1,3 +1,3 @@ const set = require('regenerate')(0x202F); -set.addRange(0x1800, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x11660, 0x1166C); +set.addRange(0x1800, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x3001, 0x3002).addRange(0x3008, 0x300B).addRange(0x11660, 0x1166C); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Myanmar.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Myanmar.js index 62671a9..b986c57 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Myanmar.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Myanmar.js @@ -1,3 +1,3 @@ const set = require('regenerate')(0xA92E); -set.addRange(0x1000, 0x109F).addRange(0xA9E0, 0xA9FE).addRange(0xAA60, 0xAA7F); +set.addRange(0x1000, 0x109F).addRange(0xA9E0, 0xA9FE).addRange(0xAA60, 0xAA7F).addRange(0x116D0, 0x116E3); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Hungarian.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Hungarian.js index 4f09cd6..5ec35bf 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Hungarian.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Hungarian.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0x205A, 0x205D, 0x2E31, 0x2E41); set.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10CFF); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Permic.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Permic.js index 95610b4..e65f100 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Permic.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Permic.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x483); -set.addRange(0x10350, 0x1037A); +const set = require('regenerate')(0xB7, 0x300, 0x313, 0x483); +set.addRange(0x306, 0x308).addRange(0x10350, 0x1037A); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Turkic.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Turkic.js index eef025f..9d1aa35 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Turkic.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Turkic.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0x205A, 0x2E30); set.addRange(0x10C00, 0x10C48); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Osage.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Osage.js index 4bf94a0..d7047ea 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Osage.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Osage.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0x301, 0x304, 0x30B, 0x358); set.addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Phags_Pa.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Phags_Pa.js index dee6789..669cba1 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Phags_Pa.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Phags_Pa.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x1805); +const set = require('regenerate')(0x1805, 0x202F, 0x3002); set.addRange(0x1802, 0x1803).addRange(0xA840, 0xA877); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Runic.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Runic.js index 997a896..7f6cb9e 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Runic.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Runic.js @@ -1,3 +1,3 @@ const set = require('regenerate')(); -set.addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8); +set.addRange(0x16A0, 0x16F8); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Samaritan.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Samaritan.js index 22d5094..32fe7d1 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Samaritan.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Samaritan.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0x2E31); set.addRange(0x800, 0x82D).addRange(0x830, 0x83E); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Shavian.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Shavian.js index fdf77b7..b09a19c 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Shavian.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Shavian.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0xB7); set.addRange(0x10450, 0x1047F); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Syriac.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Syriac.js index 6b9f234..14ceb98 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Syriac.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Syriac.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x60C, 0x61F, 0x640, 0x670, 0x1DF8, 0x1DFA); -set.addRange(0x61B, 0x61C).addRange(0x64B, 0x655).addRange(0x700, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x74F).addRange(0x860, 0x86A); +const set = require('regenerate')(0x30A, 0x320, 0x330, 0x60C, 0x61F, 0x640, 0x670, 0x1DF8, 0x1DFA); +set.addRange(0x303, 0x304).addRange(0x307, 0x308).addRange(0x323, 0x325).addRange(0x32D, 0x32E).addRange(0x61B, 0x61C).addRange(0x64B, 0x655).addRange(0x700, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x74F).addRange(0x860, 0x86A); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Tai_Le.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Tai_Le.js index 0da183c..c3e1016 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Tai_Le.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Tai_Le.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); -set.addRange(0x1040, 0x1049).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974); +const set = require('regenerate')(0x30C); +set.addRange(0x300, 0x301).addRange(0x307, 0x308).addRange(0x1040, 0x1049).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Tangut.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Tangut.js index 3559951..9227df7 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Tangut.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Tangut.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x16FE0); -set.addRange(0x17000, 0x187F7).addRange(0x18800, 0x18AFF).addRange(0x18D00, 0x18D08); +const set = require('regenerate')(0x31EF, 0x16FE0); +set.addRange(0x2FF0, 0x2FFF).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18AFF).addRange(0x18D00, 0x18D08); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Thai.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Thai.js index 58b4fba..681dca1 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Thai.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Thai.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0x2BC, 0x2D7, 0x303, 0x331); set.addRange(0xE01, 0xE3A).addRange(0xE40, 0xE5B); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Tibetan.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Tibetan.js index cc3bbfb..df2ed0f 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Tibetan.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Tibetan.js @@ -1,3 +1,3 @@ const set = require('regenerate')(); -set.addRange(0xF00, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF97).addRange(0xF99, 0xFBC).addRange(0xFBE, 0xFCC).addRange(0xFCE, 0xFD4).addRange(0xFD9, 0xFDA); +set.addRange(0xF00, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF97).addRange(0xF99, 0xFBC).addRange(0xFBE, 0xFCC).addRange(0xFCE, 0xFD4).addRange(0xFD9, 0xFDA).addRange(0x3008, 0x300B); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Tifinagh.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Tifinagh.js index 4dd6b67..72a6826 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Tifinagh.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Tifinagh.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(0x2D7F); +const set = require('regenerate')(0x302, 0x304, 0x307, 0x309, 0x2D7F); set.addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/Script_Extensions/Toto.js b/node_modules/regenerate-unicode-properties/Script_Extensions/Toto.js index b3eaebe..67877bb 100644 --- a/node_modules/regenerate-unicode-properties/Script_Extensions/Toto.js +++ b/node_modules/regenerate-unicode-properties/Script_Extensions/Toto.js @@ -1,3 +1,3 @@ -const set = require('regenerate')(); +const set = require('regenerate')(0x2BC); set.addRange(0x1E290, 0x1E2AE); exports.characters = set; diff --git a/node_modules/regenerate-unicode-properties/index.js b/node_modules/regenerate-unicode-properties/index.js index af759b8..6d2ec51 100755 --- a/node_modules/regenerate-unicode-properties/index.js +++ b/node_modules/regenerate-unicode-properties/index.js @@ -79,6 +79,7 @@ module.exports = new Map([ 'Elbasan', 'Elymaic', 'Ethiopic', + 'Garay', 'Georgian', 'Glagolitic', 'Gothic', @@ -87,6 +88,7 @@ module.exports = new Map([ 'Gujarati', 'Gunjala_Gondi', 'Gurmukhi', + 'Gurung_Khema', 'Han', 'Hangul', 'Hanifi_Rohingya', @@ -109,6 +111,7 @@ module.exports = new Map([ 'Khmer', 'Khojki', 'Khudawadi', + 'Kirat_Rai', 'Lao', 'Latin', 'Lepcha', @@ -146,6 +149,7 @@ module.exports = new Map([ 'Nyiakeng_Puachue_Hmong', 'Ogham', 'Ol_Chiki', + 'Ol_Onal', 'Old_Hungarian', 'Old_Italic', 'Old_North_Arabian', @@ -177,6 +181,7 @@ module.exports = new Map([ 'Sora_Sompeng', 'Soyombo', 'Sundanese', + 'Sunuwar', 'Syloti_Nagri', 'Syriac', 'Tagalog', @@ -194,7 +199,9 @@ module.exports = new Map([ 'Tibetan', 'Tifinagh', 'Tirhuta', + 'Todhri', 'Toto', + 'Tulu_Tigalari', 'Ugaritic', 'Vai', 'Vithkuqi', @@ -244,6 +251,7 @@ module.exports = new Map([ 'Elbasan', 'Elymaic', 'Ethiopic', + 'Garay', 'Georgian', 'Glagolitic', 'Gothic', @@ -252,6 +260,7 @@ module.exports = new Map([ 'Gujarati', 'Gunjala_Gondi', 'Gurmukhi', + 'Gurung_Khema', 'Han', 'Hangul', 'Hanifi_Rohingya', @@ -274,6 +283,7 @@ module.exports = new Map([ 'Khmer', 'Khojki', 'Khudawadi', + 'Kirat_Rai', 'Lao', 'Latin', 'Lepcha', @@ -311,6 +321,7 @@ module.exports = new Map([ 'Nyiakeng_Puachue_Hmong', 'Ogham', 'Ol_Chiki', + 'Ol_Onal', 'Old_Hungarian', 'Old_Italic', 'Old_North_Arabian', @@ -342,6 +353,7 @@ module.exports = new Map([ 'Sora_Sompeng', 'Soyombo', 'Sundanese', + 'Sunuwar', 'Syloti_Nagri', 'Syriac', 'Tagalog', @@ -359,7 +371,9 @@ module.exports = new Map([ 'Tibetan', 'Tifinagh', 'Tirhuta', + 'Todhri', 'Toto', + 'Tulu_Tigalari', 'Ugaritic', 'Vai', 'Vithkuqi', diff --git a/node_modules/regenerate-unicode-properties/package.json b/node_modules/regenerate-unicode-properties/package.json index 22c45fe..eccadc8 100644 --- a/node_modules/regenerate-unicode-properties/package.json +++ b/node_modules/regenerate-unicode-properties/package.json @@ -1,6 +1,6 @@ { "name": "regenerate-unicode-properties", - "version": "10.1.1", + "version": "10.2.0", "description": "Regenerate sets for Unicode properties and values.", "homepage": "https://github.com/mathiasbynens/regenerate-unicode-properties", "main": "index.js", @@ -36,11 +36,11 @@ "regenerate": "^1.4.2" }, "devDependencies": { - "ava": "^4.3.3", - "fs-extra": "^10.1.0", + "@unicode/unicode-16.0.0": "^1.6.0", + "ava": "^6.1.3", + "fs-extra": "^11.2.0", "jsesc": "^3.0.2", - "@unicode/unicode-15.1.0": "^1.5.2", - "unicode-canonical-property-names-ecmascript": "^2.0.0" + "unicode-canonical-property-names-ecmascript": "^2.0.1" }, "scripts": { "build": "node build.js", diff --git a/node_modules/regenerate-unicode-properties/unicode-version.js b/node_modules/regenerate-unicode-properties/unicode-version.js index d1ade3c..3e6cdd5 100644 --- a/node_modules/regenerate-unicode-properties/unicode-version.js +++ b/node_modules/regenerate-unicode-properties/unicode-version.js @@ -1 +1 @@ -module.exports = '15.1.0'; +module.exports = '16.0.0'; diff --git a/node_modules/regexpu-core/README.md b/node_modules/regexpu-core/README.md index bab65e2..fa661d8 100644 --- a/node_modules/regexpu-core/README.md +++ b/node_modules/regexpu-core/README.md @@ -27,13 +27,13 @@ This module exports a single function named `rewritePattern`. This function takes a string that represents a regular expression pattern as well as a string representing its flags, and returns an ES5-compatible version of the pattern. ```js -rewritePattern('foo.bar', 'u'); +rewritePattern('foo.bar', 'u', { unicodeFlag: "transform" }); // β†’ 'foo(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uDC00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF])bar' -rewritePattern('[\\u{1D306}-\\u{1D308}a-z]', 'u'); +rewritePattern('[\\u{1D306}-\\u{1D308}a-z]', 'u', { unicodeFlag: "transform" }); // β†’ '(?:[a-z]|\\uD834[\\uDF06-\\uDF08])' -rewritePattern('[\\u{1D306}-\\u{1D308}a-z]', 'ui'); +rewritePattern('[\\u{1D306}-\\u{1D308}a-z]', 'ui', { unicodeFlag: "transform" }); // β†’ '(?:[a-z\\u017F\\u212A]|\\uD834[\\uDF06-\\uDF08])' ``` @@ -41,11 +41,11 @@ _regexpu-core_ can rewrite non-ES6 regular expressions too, which is useful to d ```js // In ES5, the dot operator only matches BMP symbols: -rewritePattern('foo.bar'); +rewritePattern('foo.bar', '', { unicodeFlag: "transform" }); // β†’ 'foo(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uFFFF])bar' // But with the ES2015 `u` flag, it matches astral symbols too: -rewritePattern('foo.bar', 'u'); +rewritePattern('foo.bar', 'u', { unicodeFlag: "transform" }); // β†’ 'foo(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uDC00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF])bar' ``` @@ -114,19 +114,13 @@ These options can be set to `false` or `'transform'`. When using `'transform'`, // β†’ '(.)\1' ``` -#### Experimental regular expression features - -These options can be set to `false`, `'parse'` and `'transform'`. When using `'transform'`, the corresponding features are compiled to older syntax that can run in older browsers. When using `'parse'`, they are parsed and left as-is in the output pattern. When using `false` (the default), they result in a syntax error if used. - -Once these features become stable (when the proposals are accepted as part of ECMAScript), they will be parsed by default and thus `'parse'` will behave like `false`. - - `unicodeSetsFlag` - [The `v` (`unicodeSets`) flag](https://github.com/tc39/proposal-regexp-set-notation) ```js - rewritePattern('[\\p{Emoji}&&\\p{ASCII}]', 'u', { + rewritePattern('[\\p{Emoji}&&\\p{ASCII}]', 'v', { unicodeSetsFlag: 'transform' }); - // β†’ '[#\*0-9]' + // β†’ '[#\\*0-9]' ``` By default, patterns with the `v` flag are transformed to patterns with the `u` flag. If you want to downlevel them more you can set the `unicodeFlag: 'transform'` option. @@ -146,7 +140,7 @@ Once these features become stable (when the proposals are accepted as part of EC // β†’ '(?:(?![f-h])[\s\S])' (to be used without /u) ``` -- `modifiers` - [Inline `m`/`s`/`i` modifiers](https://github.com/tc39/proposal-regexp-modifiers) +- `modifiers` - [Inline `i`/`m`/`s` modifiers](https://github.com/tc39/proposal-regexp-modifiers) ```js rewritePattern('(?i:[a-z])[a-z]', '', { @@ -155,6 +149,12 @@ Once these features become stable (when the proposals are accepted as part of EC // β†’ '(?:[a-zA-Z])([a-z])' ``` +#### Experimental regular expression features + +These options can be set to `false`, `'parse'` and `'transform'`. When using `'transform'`, the corresponding features are compiled to older syntax that can run in older browsers. When using `'parse'`, they are parsed and left as-is in the output pattern. When using `false` (the default), they result in a syntax error if used. + +Once these features become stable (when the proposals are accepted as part of ECMAScript), they will be parsed by default and thus `'parse'` will behave like `false`. + #### Miscellaneous options - `onNamedGroup` diff --git a/node_modules/regexpu-core/data/character-class-escape-sets.js b/node_modules/regexpu-core/data/character-class-escape-sets.js index d5bca33..7e059b8 100644 --- a/node_modules/regexpu-core/data/character-class-escape-sets.js +++ b/node_modules/regexpu-core/data/character-class-escape-sets.js @@ -2,6 +2,7 @@ 'use strict'; const regenerate = require('regenerate'); +const UNICODE_IV_SET = require('./all-characters.js').UNICODE_IV_SET exports.REGULAR = new Map([ ['d', regenerate() @@ -103,3 +104,24 @@ exports.UNICODE_IGNORE_CASE = new Map([ .addRange(0x180, 0x2129) .addRange(0x212B, 0x10FFFF)] ]); + +exports.UNICODESET_IGNORE_CASE = new Map([ + ['d', regenerate() + .addRange(0x30, 0x39)], + ['D', UNICODE_IV_SET.clone().remove(regenerate() + .addRange(0x30, 0x39))], + ['s', regenerate(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000, 0xFEFF) + .addRange(0x9, 0xD) + .addRange(0x2000, 0x200A) + .addRange(0x2028, 0x2029)], + ['S', UNICODE_IV_SET.clone().remove(regenerate(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000, 0xFEFF) + .addRange(0x9, 0xD) + .addRange(0x2000, 0x200A) + .addRange(0x2028, 0x2029))], + ['w', regenerate(0x5F) + .addRange(0x30, 0x39) + .addRange(0x61, 0x7A)], + ['W', UNICODE_IV_SET.clone().remove(regenerate(0x5F) + .addRange(0x30, 0x39) + .addRange(0x61, 0x7A))] +]); diff --git a/node_modules/regexpu-core/data/iu-mappings.js b/node_modules/regexpu-core/data/iu-mappings.js index 87f6685..318a05d 100644 --- a/node_modules/regexpu-core/data/iu-mappings.js +++ b/node_modules/regexpu-core/data/iu-mappings.js @@ -17,6 +17,7 @@ module.exports = new Map([ [0x1F1, 0x1F2], [0x1F2, 0x1F1], [0x345, 0x1FBE], + [0x390, 0x1FD3], [0x392, 0x3D0], [0x395, 0x3F5], [0x398, 0x3F4], @@ -28,6 +29,7 @@ module.exports = new Map([ [0x3A3, 0x3C2], [0x3A6, 0x3D5], [0x3A9, 0x2126], + [0x3B0, 0x1FE3], [0x3B8, 0x3F4], [0x3C2, 0x3A3], [0x3C9, 0x2126], @@ -121,6 +123,8 @@ module.exports = new Map([ ]], [0x1FC3, 0x1FCC], [0x1FCC, 0x1FC3], + [0x1FD3, 0x390], + [0x1FE3, 0x3B0], [0x1FF3, 0x1FFC], [0x1FFC, 0x1FF3], [0x2126, [ @@ -133,6 +137,8 @@ module.exports = new Map([ 0xE5 ]], [0xA64A, 0x1C88], + [0xFB05, 0xFB06], + [0xFB06, 0xFB05], [0x10400, 0x10428], [0x10401, 0x10429], [0x10402, 0x1042A], @@ -457,6 +463,50 @@ module.exports = new Map([ [0x10CF0, 0x10CB0], [0x10CF1, 0x10CB1], [0x10CF2, 0x10CB2], + [0x10D50, 0x10D70], + [0x10D51, 0x10D71], + [0x10D52, 0x10D72], + [0x10D53, 0x10D73], + [0x10D54, 0x10D74], + [0x10D55, 0x10D75], + [0x10D56, 0x10D76], + [0x10D57, 0x10D77], + [0x10D58, 0x10D78], + [0x10D59, 0x10D79], + [0x10D5A, 0x10D7A], + [0x10D5B, 0x10D7B], + [0x10D5C, 0x10D7C], + [0x10D5D, 0x10D7D], + [0x10D5E, 0x10D7E], + [0x10D5F, 0x10D7F], + [0x10D60, 0x10D80], + [0x10D61, 0x10D81], + [0x10D62, 0x10D82], + [0x10D63, 0x10D83], + [0x10D64, 0x10D84], + [0x10D65, 0x10D85], + [0x10D70, 0x10D50], + [0x10D71, 0x10D51], + [0x10D72, 0x10D52], + [0x10D73, 0x10D53], + [0x10D74, 0x10D54], + [0x10D75, 0x10D55], + [0x10D76, 0x10D56], + [0x10D77, 0x10D57], + [0x10D78, 0x10D58], + [0x10D79, 0x10D59], + [0x10D7A, 0x10D5A], + [0x10D7B, 0x10D5B], + [0x10D7C, 0x10D5C], + [0x10D7D, 0x10D5D], + [0x10D7E, 0x10D5E], + [0x10D7F, 0x10D5F], + [0x10D80, 0x10D60], + [0x10D81, 0x10D61], + [0x10D82, 0x10D62], + [0x10D83, 0x10D63], + [0x10D84, 0x10D64], + [0x10D85, 0x10D65], [0x118A0, 0x118C0], [0x118A1, 0x118C1], [0x118A2, 0x118C2], diff --git a/node_modules/regexpu-core/package.json b/node_modules/regexpu-core/package.json index b11a7d8..5cec4d6 100644 --- a/node_modules/regexpu-core/package.json +++ b/node_modules/regexpu-core/package.json @@ -1,6 +1,6 @@ { "name": "regexpu-core", - "version": "5.3.2", + "version": "6.2.0", "description": "regexpu’s core functionality (i.e. `rewritePattern(pattern, flag)`), capable of translating ES6 Unicode regular expressions to ES5.", "homepage": "https://mths.be/regexpu", "main": "rewrite-pattern.js", @@ -39,29 +39,28 @@ "files": [ "LICENSE-MIT.txt", "rewrite-pattern.js", + "data/all-characters.js", "data/character-class-escape-sets.js", + "data/i-bmp-mappings.js", + "data/iu-foldings.js", "data/iu-mappings.js" ], "scripts": { - "build": "node scripts/iu-mappings.js && node scripts/character-class-escape-sets.js", - "test": "mocha tests", - "cover": "istanbul cover --report html node_modules/.bin/_mocha tests -- -u exports -R spec" + "build": "node scripts/index.js", + "test": "node --test tests/tests.js", + "test-node6": "mocha tests", + "cover": "NODE_V8_COVERAGE=coverage node --test --experimental-test-coverage tests/tests.js" }, "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "@babel/regjsgen": "^0.8.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, "devDependencies": { - "codecov": "^3.8.3", - "istanbul": "^0.4.5", "jsesc": "^3.0.2", - "lodash": "^4.17.21", - "mocha": "^10.1.0", - "regexpu-fixtures": "^2.1.6", - "@unicode/unicode-15.0.0": "^1.3.1" + "@unicode/unicode-16.0.0": "^1.6.2" } } diff --git a/node_modules/regexpu-core/rewrite-pattern.js b/node_modules/regexpu-core/rewrite-pattern.js index af0a031..02c52c2 100644 --- a/node_modules/regexpu-core/rewrite-pattern.js +++ b/node_modules/regexpu-core/rewrite-pattern.js @@ -1,12 +1,15 @@ 'use strict'; -const generate = require('@babel/regjsgen').generate; +const generate = require('regjsgen').generate; const parse = require('regjsparser').parse; const regenerate = require('regenerate'); const unicodeMatchProperty = require('unicode-match-property-ecmascript'); const unicodeMatchPropertyValue = require('unicode-match-property-value-ecmascript'); const iuMappings = require('./data/iu-mappings.js'); +const iBMPMappings = require('./data/i-bmp-mappings.js'); +const iuFoldings = require('./data/iu-foldings.js'); const ESCAPE_SETS = require('./data/character-class-escape-sets.js'); +const { UNICODE_SET, UNICODE_IV_SET } = require('./data/all-characters.js'); function flatMap(array, callback) { const result = []; @@ -21,11 +24,13 @@ function flatMap(array, callback) { return result; } -const SPECIAL_CHARS = /([\\^$.*+?()[\]{}|])/g; +function regenerateContainsAstral(regenerateData) { + const data = regenerateData.data; + return data.length >= 1 && data[data.length - 1] >= 0x10000; +} -// Prepare a Regenerate set containing all code points, used for negative -// character classes (if any). -const UNICODE_SET = regenerate().addRange(0x0, 0x10FFFF); +// https://tc39.es/ecma262/#prod-SyntaxCharacter +const SYNTAX_CHARS = /[\\^$.*+?()[\]{}|]/g; const ASTRAL_SET = regenerate().addRange(0x10000, 0x10FFFF); @@ -42,10 +47,15 @@ const NEWLINE_SET = regenerate().add( const DOT_SET_UNICODE = UNICODE_SET.clone() // all Unicode code points .remove(NEWLINE_SET); -const getCharacterClassEscapeSet = (character, unicode, ignoreCase) => { +const getCharacterClassEscapeSet = (character, unicode, ignoreCase, shouldApplySCF) => { if (unicode) { if (ignoreCase) { - return ESCAPE_SETS.UNICODE_IGNORE_CASE.get(character); + const result = ESCAPE_SETS.UNICODE_IGNORE_CASE.get(character); + if (shouldApplySCF) { + return ESCAPE_SETS.UNICODESET_IGNORE_CASE.get(character); + } else { + return result; + } } return ESCAPE_SETS.UNICODE.get(character); } @@ -89,7 +99,7 @@ const handleLoneUnicodePropertyNameOrValue = (value) => { return getUnicodePropertyValueSet(property); }; -const getUnicodePropertyEscapeSet = (value, isNegative) => { +const getUnicodePropertyEscapeSet = (value, isNegative, isUnicodeSetIgnoreCase) => { const parts = value.split('='); const firstPart = parts[0]; let set; @@ -106,7 +116,7 @@ const getUnicodePropertyEscapeSet = (value, isNegative) => { throw new Error('Cannot negate Unicode property of strings'); } return { - characters: UNICODE_SET.clone().remove(set.characters), + characters: (isUnicodeSetIgnoreCase ? UNICODE_IV_SET : UNICODE_SET).clone().remove(set.characters), strings: new Set() }; } @@ -114,15 +124,25 @@ const getUnicodePropertyEscapeSet = (value, isNegative) => { characters: set.characters.clone(), strings: set.strings // We need to escape strings like *️⃣ to make sure that they can be safely used in unions. - ? new Set(set.strings.map(str => str.replace(SPECIAL_CHARS, '\\$1'))) + ? new Set(set.strings.map(str => str.replace(SYNTAX_CHARS, '\\$&'))) : new Set() }; }; -const getUnicodePropertyEscapeCharacterClassData = (property, isNegative) => { - const set = getUnicodePropertyEscapeSet(property, isNegative); +const getUnicodePropertyEscapeCharacterClassData = (property, isNegative, isUnicodeSetIgnoreCase, shouldApplySCF) => { + const set = getUnicodePropertyEscapeSet(property, isNegative, isUnicodeSetIgnoreCase); const data = getCharacterClassEmptyData(); - data.singleChars = set.characters; + const singleChars = shouldApplySCF ? regenerate(set.characters.toArray().map(ch => simpleCaseFolding(ch))) : set.characters; + const caseEqFlags = configGetCaseEqFlags(); + if (caseEqFlags) { + for (const codepoint of singleChars.toArray()) { + const list = getCaseEquivalents(codepoint, caseEqFlags); + if (list) { + singleChars.add(list); + } + } + } + data.singleChars = singleChars; if (set.strings.size > 0) { data.longStrings = set.strings; data.maybeIncludesStrings = true; @@ -130,35 +150,45 @@ const getUnicodePropertyEscapeCharacterClassData = (property, isNegative) => { return data; }; -function configNeedCaseFoldAscii() { - return !!config.modifiersData.i; +const CASE_EQ_FLAG_NONE = 0b00; +const CASE_EQ_FLAG_BMP = 0b01; +const CASE_EQ_FLAG_UNICODE = 0b10; + +function configGetCaseEqFlags() { + let flags = CASE_EQ_FLAG_NONE; + if (config.modifiersData.i === true) { + if (config.transform.modifiers) { + flags |= CASE_EQ_FLAG_BMP; + if (config.flags.unicode || config.flags.unicodeSets) { + flags |= CASE_EQ_FLAG_UNICODE; + } + } + } else if (config.modifiersData.i === undefined) { + if (config.transform.unicodeFlag && config.flags.ignoreCase) { + flags |= CASE_EQ_FLAG_UNICODE; + } + } + return flags; } -function configNeedCaseFoldUnicode() { - // config.modifiersData.i : undefined | false - if (config.modifiersData.i === false) return false; - if (!config.transform.unicodeFlag) return false; - return Boolean(config.modifiersData.i || config.flags.ignoreCase); -} - -// Given a range of code points, add any case-folded code points in that range +// Given a range of code points, add any case-equivalent code points in that range // to a set. -regenerate.prototype.iuAddRange = function(min, max) { +regenerate.prototype.iuAddRange = function(min, max, caseEqFlags) { const $this = this; do { - const folded = caseFold(min, configNeedCaseFoldAscii(), configNeedCaseFoldUnicode()); - if (folded) { - $this.add(folded); + const list = getCaseEquivalents(min, caseEqFlags); + if (list) { + $this.add(list); } } while (++min <= max); return $this; }; -regenerate.prototype.iuRemoveRange = function(min, max) { +regenerate.prototype.iuRemoveRange = function(min, max, caseEqFlags) { const $this = this; do { - const folded = caseFold(min, configNeedCaseFoldAscii(), configNeedCaseFoldUnicode()); - if (folded) { - $this.remove(folded); + const list = getCaseEquivalents(min, caseEqFlags); + if (list) { + $this.remove(list); } } while (++min <= max); return $this; @@ -195,19 +225,50 @@ const wrap = (tree, pattern) => { }; }; -const caseFold = (codePoint, includeAscii, includeUnicode) => { - let folded = (includeUnicode ? iuMappings.get(codePoint) : undefined) || []; - if (typeof folded === 'number') folded = [folded]; - if (includeAscii) { - if (codePoint >= 0x41 && codePoint <= 0x5A) { - folded.push(codePoint + 0x20); - } else if (codePoint >= 0x61 && codePoint <= 0x7A) { - folded.push(codePoint - 0x20); +/** + * Given any codepoint ch, returns false or an array of characters, + * such that for every c in the array, + * c != ch and Canonicalize(~, c) == Canonicalize(~, ch) + * + * where Canonicalize is defined in + * https://tc39.es/ecma262/#sec-runtime-semantics-canonicalize-ch + * @param {number} codePoint input code point + * @param {number} flags bitwise flags composed of CASE_EQ_FLAG_* + * @returns false | number[] + */ +const getCaseEquivalents = (codePoint, flags) => { + if (flags === CASE_EQ_FLAG_NONE) { + return false; + } + let result = ((flags & CASE_EQ_FLAG_UNICODE) ? iuMappings.get(codePoint) : undefined) || []; + if (typeof result === "number") result = [result]; + if (flags & CASE_EQ_FLAG_BMP) { + for (const cp of [codePoint].concat(result)) { + // Fast path for ASCII characters + if (cp >= 0x41 && cp <= 0x5a) { + result.push(cp + 0x20); + } else if (cp >= 0x61 && cp <= 0x7a) { + result.push(cp - 0x20); + } else { + result = result.concat(iBMPMappings.get(cp) || []); + } } } - return folded.length == 0 ? false : folded; + return result.length == 0 ? false : result; }; +// https://tc39.es/ecma262/#sec-maybesimplecasefolding +const simpleCaseFolding = (codePoint) => { + // Fast path for ASCII characters + if (codePoint <= 0x7F) { + if (codePoint >= 0x41 && codePoint <= 0x5A) { + return codePoint + 0x20; + } + return codePoint; + } + return iuFoldings.get(codePoint) || codePoint; +} + const buildHandler = (action) => { switch (action) { case 'union': @@ -221,8 +282,8 @@ const buildHandler = (action) => { range: (data, start, end) => { data.singleChars.addRange(start, end); }, - iuRange: (data, start, end) => { - data.singleChars.iuAddRange(start, end); + iuRange: (data, start, end, caseEqFlags) => { + data.singleChars.iuAddRange(start, end, caseEqFlags); }, nested: (data, nestedData) => { data.singleChars.add(nestedData.singleChars); @@ -243,8 +304,8 @@ const buildHandler = (action) => { range: (data, start, end) => { data.singleChars = UNICODE_SET.clone().removeRange(start, end).add(data.singleChars); }, - iuRange: (data, start, end) => { - data.singleChars = UNICODE_SET.clone().iuRemoveRange(start, end).add(data.singleChars); + iuRange: (data, start, end, caseEqFlags) => { + data.singleChars = UNICODE_SET.clone().iuRemoveRange(start, end, caseEqFlags).add(data.singleChars); }, nested: (data, nestedData) => { regSet(data, nestedData.singleChars); @@ -274,9 +335,9 @@ const buildHandler = (action) => { data.longStrings.clear(); data.maybeIncludesStrings = false; }, - iuRange: (data, start, end) => { - if (data.first) data.singleChars.iuAddRange(start, end); - else data.singleChars.intersection(regenerate().iuAddRange(start, end)); + iuRange: (data, start, end, caseEqFlags) => { + if (data.first) data.singleChars.iuAddRange(start, end, caseEqFlags); + else data.singleChars.intersection(regenerate().iuAddRange(start, end, caseEqFlags)); data.longStrings.clear(); data.maybeIncludesStrings = false; }, @@ -310,9 +371,9 @@ const buildHandler = (action) => { if (data.first) data.singleChars.addRange(start, end); else data.singleChars.removeRange(start, end); }, - iuRange: (data, start, end) => { - if (data.first) data.singleChars.iuAddRange(start, end); - else data.singleChars.iuRemoveRange(start, end); + iuRange: (data, start, end, caseEqFlags) => { + if (data.first) data.singleChars.iuAddRange(start, end, caseEqFlags); + else data.singleChars.iuRemoveRange(start, end, caseEqFlags); }, nested: (data, nestedData) => { regSet(data, nestedData.singleChars); @@ -330,7 +391,7 @@ const buildHandler = (action) => { } // The `default` clause is only here as a safeguard; it should never be // reached. Code coverage tools should ignore it. - /* istanbul ignore next */ + /* node:coverage ignore next */ default: throw new Error(`Unknown set action: ${ characterClassItem.kind }`); } @@ -345,42 +406,40 @@ const getCharacterClassEmptyData = () => ({ maybeIncludesStrings: false }); -const maybeFold = (codePoint) => { - const caseFoldAscii = configNeedCaseFoldAscii(); - const caseFoldUnicode = configNeedCaseFoldUnicode(); - - if (caseFoldAscii || caseFoldUnicode) { - const folded = caseFold(codePoint, caseFoldAscii, caseFoldUnicode); - if (folded) { - return [codePoint, folded]; - } +const concatCaseEquivalents = (codePoint, caseEqFlags) => { + const caseEquivalents = getCaseEquivalents(codePoint, caseEqFlags); + if (caseEquivalents) { + return [codePoint, ...caseEquivalents]; } return [codePoint]; }; -const computeClassStrings = (classStrings, regenerateOptions) => { +const computeClassStrings = (classStrings, regenerateOptions, caseEqFlags, shouldApplySCF) => { let data = getCharacterClassEmptyData(); - const caseFoldAscii = configNeedCaseFoldAscii(); - const caseFoldUnicode = configNeedCaseFoldUnicode(); - for (const string of classStrings.strings) { if (string.characters.length === 1) { - maybeFold(string.characters[0].codePoint).forEach((cp) => { + const codePoint = shouldApplySCF ? simpleCaseFolding(string.characters[0].codePoint) : string.characters[0].codePoint + concatCaseEquivalents(codePoint, caseEqFlags).forEach((cp) => { data.singleChars.add(cp); }); } else { - let stringifiedString; - if (caseFoldUnicode || caseFoldAscii) { - stringifiedString = ''; + let stringifiedString = ''; + if (caseEqFlags) { for (const ch of string.characters) { - let set = regenerate(ch.codePoint); - const folded = maybeFold(ch.codePoint); - if (folded) set.add(folded); + const codePoint = shouldApplySCF ? simpleCaseFolding(ch.codePoint) : ch.codePoint; + const set = regenerate(concatCaseEquivalents(codePoint, caseEqFlags)); stringifiedString += set.toString(regenerateOptions); } } else { - stringifiedString = string.characters.map(ch => generate(ch)).join('') + for (const ch of string.characters) { + const codePoint = shouldApplySCF ? simpleCaseFolding(ch.codePoint) : ch.codePoint; + if (codePoint !== ch.codePoint) { + stringifiedString += regenerate(codePoint).toString(regenerateOptions); + } else { + stringifiedString += generate(ch); + } + } } data.longStrings.add(stringifiedString); @@ -391,12 +450,14 @@ const computeClassStrings = (classStrings, regenerateOptions) => { return data; } -const computeCharacterClass = (characterClassItem, regenerateOptions) => { +const computeCharacterClass = (characterClassItem, regenerateOptions, shouldApplySCF) => { let data = getCharacterClassEmptyData(); let handlePositive; let handleNegative; + let caseEqFlags = configGetCaseEqFlags(); + switch (characterClassItem.kind) { case 'union': handlePositive = buildHandler('union'); @@ -406,66 +467,88 @@ const computeCharacterClass = (characterClassItem, regenerateOptions) => { handlePositive = buildHandler('intersection'); handleNegative = buildHandler('subtraction'); if (config.transform.unicodeSetsFlag) data.transformed = true; + if (config.isIgnoreCaseMode) { + shouldApplySCF = true; + } break; case 'subtraction': handlePositive = buildHandler('subtraction'); handleNegative = buildHandler('intersection'); if (config.transform.unicodeSetsFlag) data.transformed = true; + if (config.isIgnoreCaseMode) { + shouldApplySCF = true; + } break; // The `default` clause is only here as a safeguard; it should never be // reached. Code coverage tools should ignore it. - /* istanbul ignore next */ + /* node:coverage ignore next */ default: throw new Error(`Unknown character class kind: ${ characterClassItem.kind }`); } - const caseFoldAscii = configNeedCaseFoldAscii(); - const caseFoldUnicode = configNeedCaseFoldUnicode(); - for (const item of characterClassItem.body) { switch (item.type) { case 'value': - maybeFold(item.codePoint).forEach((cp) => { - handlePositive.single(data, cp); - }); + const codePoint = shouldApplySCF ? simpleCaseFolding(item.codePoint) : item.codePoint; + const list = concatCaseEquivalents(codePoint, caseEqFlags); + handlePositive.regSet(data, regenerate(list)); + if (list.length > 1) { + data.transformed = true; + } break; case 'characterClassRange': const min = item.min.codePoint; const max = item.max.codePoint; - handlePositive.range(data, min, max); - if (caseFoldAscii || caseFoldUnicode) { - handlePositive.iuRange(data, min, max); + if (shouldApplySCF) { + let list = []; + for (let cp = min; cp <= max; cp++) { + list.push(simpleCaseFolding(cp)); + } + handlePositive.regSet(data, regenerate(list)); + } else { + handlePositive.range(data, min, max); + } + if (caseEqFlags) { + // If shouldApplySCF is true, it is still ok to call iuRange because + // the set [min, max] shares the same case equivalents with scf([min, max]) + handlePositive.iuRange(data, min, max, caseEqFlags); data.transformed = true; } break; case 'characterClassEscape': handlePositive.regSet(data, getCharacterClassEscapeSet( item.value, - config.flags.unicode, - config.flags.ignoreCase + config.flags.unicode || config.flags.unicodeSets, + config.flags.ignoreCase, + shouldApplySCF )); break; case 'unicodePropertyEscape': - const nestedData = getUnicodePropertyEscapeCharacterClassData(item.value, item.negative); + const nestedData = getUnicodePropertyEscapeCharacterClassData( + item.value, + item.negative, + config.flags.unicodeSets && config.isIgnoreCaseMode, + shouldApplySCF + ); handlePositive.nested(data, nestedData); data.transformed = data.transformed || config.transform.unicodePropertyEscapes || - (config.transform.unicodeSetsFlag && nestedData.maybeIncludesStrings); + (config.transform.unicodeSetsFlag && (nestedData.maybeIncludesStrings || characterClassItem.kind !== "union" || item.negative)); break; case 'characterClass': const handler = item.negative ? handleNegative : handlePositive; - const res = computeCharacterClass(item, regenerateOptions); + const res = computeCharacterClass(item, regenerateOptions, shouldApplySCF); handler.nested(data, res); data.transformed = true; break; case 'classStrings': - handlePositive.nested(data, computeClassStrings(item, regenerateOptions)); + handlePositive.nested(data, computeClassStrings(item, regenerateOptions, caseEqFlags, shouldApplySCF)); data.transformed = true; break; // The `default` clause is only here as a safeguard; it should never be // reached. Code coverage tools should ignore it. - /* istanbul ignore next */ + /* node:coverage ignore next */ default: throw new Error(`Unknown term type: ${ item.type }`); } @@ -488,13 +571,15 @@ const processCharacterClass = ( const negative = characterClassItem.negative; const { singleChars, transformed, longStrings } = computed; if (transformed) { - const setStr = singleChars.toString(regenerateOptions); + // If single chars already contains some astral character, regenerate (bmpOnly: true) will create valid regex strings + const bmpOnly = regenerateContainsAstral(singleChars); + const setStr = singleChars.toString(Object.assign({}, regenerateOptions, { bmpOnly: bmpOnly })); if (negative) { if (config.useUnicodeFlag) { update(characterClassItem, `[^${setStr[0] === '[' ? setStr.slice(1, -1) : setStr}]`) } else { - if (config.flags.unicode) { + if (config.flags.unicode || config.flags.unicodeSets) { if (config.flags.ignoreCase) { const astralCharsSet = singleChars.clone().intersection(ASTRAL_SET); // Assumption: singleChars do not contain lone surrogates. @@ -514,17 +599,15 @@ const processCharacterClass = ( // The transform here does not support lone surrogates. update( characterClassItem, - `(?!${surrogateOrBMPSetStr})[\\s\\S]|${astralNegativeSetStr}` + `(?!${surrogateOrBMPSetStr})[^]|${astralNegativeSetStr}` ); } else { // Generate negative set directly when case folding is not involved. - update( - characterClassItem, - UNICODE_SET.clone().remove(singleChars).toString(regenerateOptions) - ); + const negativeSet = UNICODE_SET.clone().remove(singleChars); + update(characterClassItem, negativeSet.toString(regenerateOptions)); } } else { - update(characterClassItem, `(?!${setStr})[\\s\\S]`); + update(characterClassItem, `(?!${setStr})[^]`); } } } else { @@ -552,17 +635,19 @@ const processModifiers = (item, regenerateOptions, groups) => { const enabling = item.modifierFlags.enabling; const disabling = item.modifierFlags.disabling; - delete item.modifierFlags; - item.behavior = 'ignore'; - const oldData = Object.assign({}, config.modifiersData); - enabling.split('').forEach(flag => { + for (const flag of enabling) { config.modifiersData[flag] = true; - }); - disabling.split('').forEach(flag => { + } + for (const flag of disabling) { config.modifiersData[flag] = false; - }); + } + + if (config.transform.modifiers) { + delete item.modifierFlags; + item.behavior = 'ignore'; + } item.body = item.body.map(term => { return processTerm(term, regenerateOptions, groups); @@ -579,18 +664,18 @@ const processTerm = (item, regenerateOptions, groups) => { if (config.transform.unicodeFlag) { update( item, - getUnicodeDotSet(config.flags.dotAll || config.modifiersData.s).toString(regenerateOptions) + getUnicodeDotSet(config.isDotAllMode).toString(regenerateOptions) ); - } else if (config.transform.dotAllFlag || config.modifiersData.s) { + } else if ((config.modifiersData.s != null ? config.modifiersData.s && config.transform.modifiers : config.transform.dotAllFlag)) { // TODO: consider changing this at the regenerate level. - update(item, '[\\s\\S]'); + update(item, '[^]'); } break; case 'characterClass': item = processCharacterClass(item, regenerateOptions); break; case 'unicodePropertyEscape': - const data = getUnicodePropertyEscapeCharacterClassData(item.value, item.negative); + const data = getUnicodePropertyEscapeCharacterClassData(item.value, item.negative, config.flags.unicodeSets && config.isIgnoreCaseMode); if (data.maybeIncludesStrings) { if (!config.flags.unicodeSets) { throw new Error( @@ -601,7 +686,7 @@ const processTerm = (item, regenerateOptions, groups) => { data.transformed = true; item = processCharacterClass(item, regenerateOptions, data); } - } else if (config.transform.unicodePropertyEscapes) { + } else if (config.transform.unicodePropertyEscapes || configGetCaseEqFlags()) { update( item, data.singleChars.toString(regenerateOptions) @@ -652,7 +737,7 @@ const processTerm = (item, regenerateOptions, groups) => { delete groups.unmatchedReferences[name]; } } - if (item.modifierFlags && config.transform.modifiers) { + if (item.modifierFlags) { return processModifiers(item, regenerateOptions, groups); } /* falls through */ @@ -677,9 +762,13 @@ const processTerm = (item, regenerateOptions, groups) => { break; case 'value': const codePoint = item.codePoint; - const set = regenerate(codePoint); - const folded = maybeFold(codePoint); - set.add(folded); + const caseEqFlags = configGetCaseEqFlags(); + const list = concatCaseEquivalents(codePoint, caseEqFlags); + if (list.length === 1 && item.kind === "symbol" && codePoint >= 0x20 && codePoint <= 0x7E) { + // skip regenerate when it is a printable ASCII symbol + break; + } + const set = regenerate(list); update(item, set.toString(regenerateOptions)); break; case 'reference': @@ -719,7 +808,7 @@ const processTerm = (item, regenerateOptions, groups) => { } break; case 'anchor': - if (config.modifiersData.m) { + if (config.modifiersData.m && config.transform.modifiers) { if (item.kind == 'start') { update(item, `(?:^|(?<=${NEWLINE_SET.toString()}))`); } else if (item.kind == 'end') { @@ -731,7 +820,7 @@ const processTerm = (item, regenerateOptions, groups) => { break; // The `default` clause is only here as a safeguard; it should never be // reached. Code coverage tools should ignore it. - /* istanbul ignore next */ + /* node:coverage ignore next */ default: throw new Error(`Unknown term type: ${ item.type }`); } @@ -761,6 +850,12 @@ const config = { }, get useUnicodeFlag() { return (this.flags.unicode || this.flags.unicodeSets) && !this.transform.unicodeFlag; + }, + get isDotAllMode() { + return (this.modifiersData.s !== undefined ? this.modifiersData.s : this.flags.dotAll); + }, + get isIgnoreCaseMode() { + return (this.modifiersData.i !== undefined ? this.modifiersData.i : this.flags.ignoreCase); } }; @@ -773,13 +868,14 @@ const validateOptions = (options) => { case 'dotAllFlag': case 'unicodeFlag': case 'unicodePropertyEscapes': + case 'unicodeSetsFlag': case 'namedGroups': if (value != null && value !== false && value !== 'transform') { throw new Error(`.${key} must be false (default) or 'transform'.`); } break; + // todo: remove modifiers: 'parse' in regexpu-core v7 case 'modifiers': - case 'unicodeSetsFlag': if (value != null && value !== false && value !== 'parse' && value !== 'transform') { throw new Error(`.${key} must be false (default), 'parse' or 'transform'.`); } @@ -813,7 +909,7 @@ const rewritePattern = (pattern, flags, options) => { config.transform.unicodeSetsFlag = config.flags.unicodeSets && transform(options, 'unicodeSetsFlag'); // unicodeFlag: 'transform' implies unicodePropertyEscapes: 'transform' - config.transform.unicodePropertyEscapes = config.flags.unicode && ( + config.transform.unicodePropertyEscapes = (config.flags.unicode || config.flags.unicodeSets) && ( transform(options, 'unicodeFlag') || transform(options, 'unicodePropertyEscapes') ); config.transform.namedGroups = transform(options, 'namedGroups'); @@ -824,18 +920,17 @@ const rewritePattern = (pattern, flags, options) => { config.modifiersData.m = undefined; const regjsparserFeatures = { - 'unicodeSet': Boolean(options && options.unicodeSetsFlag), - 'modifiers': Boolean(options && options.modifiers), - // Enable every stable RegExp feature by default + 'modifiers': true, 'unicodePropertyEscape': true, + 'unicodeSet': true, 'namedGroups': true, 'lookbehind': true, }; const regenerateOptions = { 'hasUnicodeFlag': config.useUnicodeFlag, - 'bmpOnly': !config.flags.unicode + 'bmpOnly': !config.flags.unicode && !config.flags.unicodeSets }; const groups = { @@ -862,10 +957,8 @@ const rewritePattern = (pattern, flags, options) => { for (const key of Object.keys(node)) { const value = node[key]; if (key == 'modifierFlags') { - if (value.disabling.length > 0){ - value.disabling.split('').forEach((flag)=>{ - allDisabledModifiers[flag] = true - }); + for (const flag of value.disabling) { + allDisabledModifiers[flag] = true; } } else if (typeof value == 'object' && value != null) { itemStack.push(value); @@ -873,8 +966,14 @@ const rewritePattern = (pattern, flags, options) => { } } } - for (const flag of Object.keys(allDisabledModifiers)) { - config.modifiersData[flag] = true; + if (allDisabledModifiers.i) { + config.modifiersData.i = config.flags.ignoreCase; + } + if (allDisabledModifiers.m) { + config.modifiersData.m = config.flags.multiline; + } + if (allDisabledModifiers.s) { + config.modifiersData.s = config.flags.dotAll; } } } @@ -892,7 +991,7 @@ const rewritePattern = (pattern, flags, options) => { if (config.transform.unicodeFlag) { newFlags = newFlags.replace('u', ''); } - if (config.transform.dotAllFlag === 'transform') { + if (config.transform.dotAllFlag) { newFlags = newFlags.replace('s', ''); } onNewFlags(newFlags); diff --git a/node_modules/regjsparser/node_modules/.bin/jsesc b/node_modules/regjsparser/node_modules/.bin/jsesc deleted file mode 120000 index 7237604..0000000 --- a/node_modules/regjsparser/node_modules/.bin/jsesc +++ /dev/null @@ -1 +0,0 @@ -../jsesc/bin/jsesc \ No newline at end of file diff --git a/node_modules/regjsparser/node_modules/jsesc/LICENSE-MIT.txt b/node_modules/regjsparser/node_modules/jsesc/LICENSE-MIT.txt deleted file mode 100644 index 97067e5..0000000 --- a/node_modules/regjsparser/node_modules/jsesc/LICENSE-MIT.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Mathias Bynens - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/regjsparser/node_modules/jsesc/README.md b/node_modules/regjsparser/node_modules/jsesc/README.md deleted file mode 100644 index 7a083c7..0000000 --- a/node_modules/regjsparser/node_modules/jsesc/README.md +++ /dev/null @@ -1,375 +0,0 @@ -# jsesc [![Build status](https://travis-ci.org/mathiasbynens/jsesc.svg?branch=master)](https://travis-ci.org/mathiasbynens/jsesc) [![Code coverage status](http://img.shields.io/coveralls/mathiasbynens/jsesc/master.svg)](https://coveralls.io/r/mathiasbynens/jsesc) [![Dependency status](https://gemnasium.com/mathiasbynens/jsesc.svg)](https://gemnasium.com/mathiasbynens/jsesc) - -This is a JavaScript library for [escaping JavaScript strings](http://mathiasbynens.be/notes/javascript-escapes) while generating the shortest possible valid ASCII-only output. [Here’s an online demo.](http://mothereff.in/js-escapes) - -This can be used to avoid [mojibake](http://en.wikipedia.org/wiki/Mojibake) and other encoding issues, or even to [avoid errors](https://twitter.com/annevk/status/380000829643571200) when passing JSON-formatted data (which may contain U+2028 LINE SEPARATOR, U+2029 PARAGRAPH SEPARATOR, or [lone surrogates](http://esdiscuss.org/topic/code-points-vs-unicode-scalar-values#content-14)) to a JavaScript parser or an UTF-8 encoder, respectively. - -Feel free to fork if you see possible improvements! - -## Installation - -Via [Bower](http://bower.io/): - -```bash -bower install jsesc -``` - -Via [Component](https://github.com/component/component): - -```bash -component install mathiasbynens/jsesc -``` - -Via [npm](http://npmjs.org/): - -```bash -npm install jsesc -``` - -In a browser: - -```html - -``` - -In [Node.js](http://nodejs.org/) and [RingoJS](http://ringojs.org/): - -```js -var jsesc = require('jsesc'); -``` - -In [Narwhal](http://narwhaljs.org/): - -```js -var jsesc = require('jsesc').jsesc; -``` - -In [Rhino](http://www.mozilla.org/rhino/): - -```js -load('jsesc.js'); -``` - -Using an AMD loader like [RequireJS](http://requirejs.org/): - -```js -require( - { - 'paths': { - 'jsesc': 'path/to/jsesc' - } - }, - ['jsesc'], - function(jsesc) { - console.log(jsesc); - } -); -``` - -## API - -### `jsesc(value, options)` - -This function takes a value and returns an escaped version of the value where any characters that are not printable ASCII symbols are escaped using the shortest possible (but valid) [escape sequences for use in JavaScript strings](http://mathiasbynens.be/notes/javascript-escapes). The first supported value type is strings: - -```js -jsesc('Ich β™₯ BΓΌcher'); -// β†’ 'Ich \\u2665 B\\xFCcher' - -jsesc('foo πŒ† bar'); -// β†’ 'foo \\uD834\\uDF06 bar' -``` - -Instead of a string, the `value` can also be an array, or an object. In such cases, `jsesc` will return a stringified version of the value where any characters that are not printable ASCII symbols are escaped in the same way. - -```js -// Escaping an array -jsesc([ - 'Ich β™₯ BΓΌcher', 'foo πŒ† bar' -]); -// β†’ '[\'Ich \\u2665 B\\xFCcher\',\'foo \\uD834\\uDF06 bar\']' - -// Escaping an object -jsesc({ - 'Ich β™₯ BΓΌcher': 'foo πŒ† bar' -}); -// β†’ '{\'Ich \\u2665 B\\xFCcher\':\'foo \\uD834\\uDF06 bar\'}' -``` - -The optional `options` argument accepts an object with the following options: - -#### `quotes` - -The default value for the `quotes` option is `'single'`. This means that any occurences of `'` in the input string will be escaped as `\'`, so that the output can be used in a string literal wrapped in single quotes. - -```js -jsesc('Lorem ipsum "dolor" sit \'amet\' etc.'); -// β†’ 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.' - -jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'single' -}); -// β†’ 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.' -// β†’ "Lorem ipsum \"dolor\" sit \\'amet\\' etc." -``` - -If you want to use the output as part of a string literal wrapped in double quotes, set the `quotes` option to `'double'`. - -```js -jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'double' -}); -// β†’ 'Lorem ipsum \\"dolor\\" sit \'amet\' etc.' -// β†’ "Lorem ipsum \\\"dolor\\\" sit 'amet' etc." -``` - -This setting also affects the output for arrays and objects: - -```js -jsesc({ 'Ich β™₯ BΓΌcher': 'foo πŒ† bar' }, { - 'quotes': 'double' -}); -// β†’ '{"Ich \\u2665 B\\xFCcher":"foo \\uD834\\uDF06 bar"}' - -jsesc([ 'Ich β™₯ BΓΌcher', 'foo πŒ† bar' ], { - 'quotes': 'double' -}); -// β†’ '["Ich \\u2665 B\\xFCcher","foo \\uD834\\uDF06 bar"]' -``` - -#### `wrap` - -The `wrap` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, the output will be a valid JavaScript string literal wrapped in quotes. The type of quotes can be specified through the `quotes` setting. - -```js -jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'single', - 'wrap': true -}); -// β†’ '\'Lorem ipsum "dolor" sit \\\'amet\\\' etc.\'' -// β†’ "\'Lorem ipsum \"dolor\" sit \\\'amet\\\' etc.\'" - -jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'double', - 'wrap': true -}); -// β†’ '"Lorem ipsum \\"dolor\\" sit \'amet\' etc."' -// β†’ "\"Lorem ipsum \\\"dolor\\\" sit \'amet\' etc.\"" -``` - -#### `es6` - -The `es6` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, any astral Unicode symbols in the input will be escaped using [ECMAScript 6 Unicode code point escape sequences](http://mathiasbynens.be/notes/javascript-escapes#unicode-code-point) instead of using separate escape sequences for each surrogate half. If backwards compatibility with ES5 environments is a concern, don’t enable this setting. If the `json` setting is enabled, the value for the `es6` setting is ignored (as if it was `false`). - -```js -// By default, the `es6` option is disabled: -jsesc('foo πŒ† bar πŸ’© baz'); -// β†’ 'foo \\uD834\\uDF06 bar \\uD83D\\uDCA9 baz' - -// To explicitly disable it: -jsesc('foo πŒ† bar πŸ’© baz', { - 'es6': false -}); -// β†’ 'foo \\uD834\\uDF06 bar \\uD83D\\uDCA9 baz' - -// To enable it: -jsesc('foo πŒ† bar πŸ’© baz', { - 'es6': true -}); -// β†’ 'foo \\u{1D306} bar \\u{1F4A9} baz' -``` - -#### `escapeEverything` - -The `escapeEverything` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, all the symbols in the output will be escaped, even printable ASCII symbols. - -```js -jsesc('lolwat"foo\'bar', { - 'escapeEverything': true -}); -// β†’ '\\x6C\\x6F\\x6C\\x77\\x61\\x74\\"\\x66\\x6F\\x6F\\\'\\x62\\x61\\x72' -// β†’ "\\x6C\\x6F\\x6C\\x77\\x61\\x74\\\"\\x66\\x6F\\x6F\\'\\x62\\x61\\x72" -``` - -This setting also affects the output for arrays and objects: - -```js -jsesc({ 'Ich β™₯ BΓΌcher': 'foo πŒ† bar' }, { - 'escapeEverything': true -}); -// β†’ '{\'\x49\x63\x68\x20\u2665\x20\x42\xFC\x63\x68\x65\x72\':\'\x66\x6F\x6F\x20\uD834\uDF06\x20\x62\x61\x72\'}' -// β†’ "{'\x49\x63\x68\x20\u2665\x20\x42\xFC\x63\x68\x65\x72':'\x66\x6F\x6F\x20\uD834\uDF06\x20\x62\x61\x72'}" - -jsesc([ 'Ich β™₯ BΓΌcher': 'foo πŒ† bar' ], { - 'escapeEverything': true -}); -// β†’ '[\'\x49\x63\x68\x20\u2665\x20\x42\xFC\x63\x68\x65\x72\',\'\x66\x6F\x6F\x20\uD834\uDF06\x20\x62\x61\x72\']' -``` - -#### `compact` - -The `compact` option takes a boolean value (`true` or `false`), and defaults to `true` (enabled). When enabled, the output for arrays and objects will be as compact as possible; it won’t be formatted nicely. - -```js -jsesc({ 'Ich β™₯ BΓΌcher': 'foo πŒ† bar' }, { - 'compact': true // this is the default -}); -// β†’ '{\'Ich \u2665 B\xFCcher\':\'foo \uD834\uDF06 bar\'}' - -jsesc({ 'Ich β™₯ BΓΌcher': 'foo πŒ† bar' }, { - 'compact': false -}); -// β†’ '{\n\t\'Ich \u2665 B\xFCcher\': \'foo \uD834\uDF06 bar\'\n}' - -jsesc([ 'Ich β™₯ BΓΌcher', 'foo πŒ† bar' ], { - 'compact': false -}); -// β†’ '[\n\t\'Ich \u2665 B\xFCcher\',\n\t\'foo \uD834\uDF06 bar\'\n]' -``` - -This setting has no effect on the output for strings. - -#### `indent` - -The `indent` option takes a string value, and defaults to `'\t'`. When the `compact` setting is enabled (`true`), the value of the `indent` option is used to format the output for arrays and objects. - -```js -jsesc({ 'Ich β™₯ BΓΌcher': 'foo πŒ† bar' }, { - 'compact': false, - 'indent': '\t' // this is the default -}); -// β†’ '{\n\t\'Ich \u2665 B\xFCcher\': \'foo \uD834\uDF06 bar\'\n}' - -jsesc({ 'Ich β™₯ BΓΌcher': 'foo πŒ† bar' }, { - 'compact': false, - 'indent': ' ' -}); -// β†’ '{\n \'Ich \u2665 B\xFCcher\': \'foo \uD834\uDF06 bar\'\n}' - -jsesc([ 'Ich β™₯ BΓΌcher', 'foo πŒ† bar' ], { - 'compact': false, - 'indent': ' ' -}); -// β†’ '[\n \'Ich \u2665 B\xFCcher\',\n\ t\'foo \uD834\uDF06 bar\'\n]' -``` - -This setting has no effect on the output for strings. - -#### `json` - -The `json` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, the output is valid JSON. [Hexadecimal character escape sequences](http://mathiasbynens.be/notes/javascript-escapes#hexadecimal) and [the `\v` or `\0` escape sequences](http://mathiasbynens.be/notes/javascript-escapes#single) will not be used. Setting `json: true` implies `quotes: 'double', wrap: true, es6: false`, although these values can still be overridden if needed β€” but in such cases, the output won’t be valid JSON anymore. - -```js -jsesc('foo\x00bar\xFF\uFFFDbaz', { - 'json': true -}); -// β†’ '"foo\\u0000bar\\u00FF\\uFFFDbaz"' - -jsesc({ 'foo\x00bar\xFF\uFFFDbaz': 'foo\x00bar\xFF\uFFFDbaz' }, { - 'json': true -}); -// β†’ '{"foo\\u0000bar\\u00FF\\uFFFDbaz":"foo\\u0000bar\\u00FF\\uFFFDbaz"}' - -jsesc([ 'foo\x00bar\xFF\uFFFDbaz', 'foo\x00bar\xFF\uFFFDbaz' ], { - 'json': true -}); -// β†’ '["foo\\u0000bar\\u00FF\\uFFFDbaz","foo\\u0000bar\\u00FF\\uFFFDbaz"]' - -// Values that are acceptable in JSON but aren’t strings, arrays, or object -// literals can’t be escaped, so they’ll just be preserved: -jsesc([ 'foo\x00bar', [1, 'Β©', { 'foo': true, 'qux': null }], 42 ], { - 'json': true -}); -// β†’ '["foo\\u0000bar",[1,"\\u00A9",{"foo":true,"qux":null}],42]' -// Values that aren’t allowed in JSON are run through `JSON.stringify()`: -jsesc([ undefined, -Infinity ], { - 'json': true -}); -// β†’ '[null,null]' -``` - -**Note:** Using this option on objects or arrays that contain non-string values relies on `JSON.stringify()`. For legacy environments like IE ≀ 7, use [a `JSON` polyfill](http://bestiejs.github.io/json3/). - -### `jsesc.version` - -A string representing the semantic version number. - -### Using the `jsesc` binary - -To use the `jsesc` binary in your shell, simply install jsesc globally using npm: - -```bash -npm install -g jsesc -``` - -After that you will be able to escape strings from the command line: - -```bash -$ jsesc 'fΓΆo β™₯ bΓ₯r πŒ† baz' -f\xF6o \u2665 b\xE5r \uD834\uDF06 baz -``` - -To escape arrays or objects containing string values, use the `-o`/`--object` option: - -```bash -$ jsesc --object '{ "fΓΆo": "β™₯", "bΓ₯r": "πŒ† baz" }' -{'f\xF6o':'\u2665','b\xE5r':'\uD834\uDF06 baz'} -``` - -To prettify the output in such cases, use the `-p`/`--pretty` option: - -```bash -$ jsesc --pretty '{ "fΓΆo": "β™₯", "bΓ₯r": "πŒ† baz" }' -{ - 'f\xF6o': '\u2665', - 'b\xE5r': '\uD834\uDF06 baz' -} -``` - -For valid JSON output, use the `-j`/`--json` option: - -```bash -$ jsesc --json --pretty '{ "fΓΆo": "β™₯", "bΓ₯r": "πŒ† baz" }' -{ - "f\u00F6o": "\u2665", - "b\u00E5r": "\uD834\uDF06 baz" -} -``` - -Read a local JSON file, escape any non-ASCII symbols, and save the result to a new file: - -```bash -$ jsesc --json --object < data-raw.json > data-escaped.json -``` - -Or do the same with an online JSON file: - -```bash -$ curl -sL "http://git.io/aorKgQ" | jsesc --json --object > data-escaped.json -``` - -See `jsesc --help` for the full list of options. - -## Support - -This library has been tested in at least Chrome 27-29, Firefox 3-22, Safari 4-6, Opera 10-12, IE 6-10, Node.js v0.10.0, Narwhal 0.3.2, RingoJS 0.8-0.9, PhantomJS 1.9.0, and Rhino 1.7RC4. - -**Note:** Using the `json` option on objects or arrays that contain non-string values relies on `JSON.parse()`. For legacy environments like IE ≀ 7, use [a `JSON` polyfill](http://bestiejs.github.io/json3/). - -## Unit tests & code coverage - -After cloning this repository, run `npm install` to install the dependencies needed for development and testing. You may want to install Istanbul _globally_ using `npm install istanbul -g`. - -Once that’s done, you can run the unit tests in Node using `npm test` or `node tests/tests.js`. To run the tests in Rhino, Ringo, Narwhal, and web browsers as well, use `grunt test`. - -To generate the code coverage report, use `grunt cover`. - -## Author - -| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | -|---| -| [Mathias Bynens](http://mathiasbynens.be/) | - -## License - -This library is available under the [MIT](http://mths.be/mit) license. diff --git a/node_modules/regjsparser/node_modules/jsesc/bin/jsesc b/node_modules/regjsparser/node_modules/jsesc/bin/jsesc deleted file mode 100755 index 5900dd4..0000000 --- a/node_modules/regjsparser/node_modules/jsesc/bin/jsesc +++ /dev/null @@ -1,138 +0,0 @@ -#!/usr/bin/env node -(function() { - - var fs = require('fs'); - var stringEscape = require('../jsesc.js'); - var strings = process.argv.splice(2); - var stdin = process.stdin; - var data; - var timeout; - var isObject = false; - var options = {}; - var log = console.log; - - var main = function() { - var option = strings[0]; - - if (/^(?:-h|--help|undefined)$/.test(option)) { - log( - 'jsesc v%s - http://mths.be/jsesc', - stringEscape.version - ); - log([ - '\nUsage:\n', - '\tjsesc [string]', - '\tjsesc [-s | --single-quotes] [string]', - '\tjsesc [-d | --double-quotes] [string]', - '\tjsesc [-w | --wrap] [string]', - '\tjsesc [-e | --escape-everything] [string]', - '\tjsesc [-6 | --es6] [string]', - '\tjsesc [-j | --json] [string]', - '\tjsesc [-o | --object] [stringified_object]', // `JSON.parse()` the argument - '\tjsesc [-p | --pretty] [string]', // `compact: false` - '\tjsesc [-v | --version]', - '\tjsesc [-h | --help]', - '\nExamples:\n', - '\tjsesc \'f\xF6o \u2665 b\xE5r \uD834\uDF06 baz\'', - '\tjsesc --json \'f\xF6o \u2665 b\xE5r \uD834\uDF06 baz\'', - '\tjsesc --json --escape-everything \'f\xF6o \u2665 b\xE5r \uD834\uDF06 baz\'', - '\tjsesc --double-quotes --wrap \'f\xF6o \u2665 b\xE5r \uD834\uDF06 baz\'', - '\techo \'f\xF6o \u2665 b\xE5r \uD834\uDF06 baz\' | jsesc' - ].join('\n')); - return process.exit(1); - } - - if (/^(?:-v|--version)$/.test(option)) { - log('v%s', stringEscape.version); - return process.exit(1); - } - - strings.forEach(function(string) { - // Process options - if (/^(?:-s|--single-quotes)$/.test(string)) { - options.quotes = 'single'; - return; - } - if (/^(?:-d|--double-quotes)$/.test(string)) { - options.quotes = 'double'; - return; - } - if (/^(?:-w|--wrap)$/.test(string)) { - options.wrap = true; - return; - } - if (/^(?:-6|--es6)$/.test(string)) { - options.es6 = true; - return; - } - if (/^(?:-e|--escape-everything)$/.test(string)) { - options.escapeEverything = true; - return; - } - if (/^(?:-j|--json)$/.test(string)) { - options.json = true; - return; - } - if (/^(?:-o|--object)$/.test(string)) { - isObject = true; - return; - } - if (/^(?:-p|--pretty)$/.test(string)) { - isObject = true; - options.compact = false; - return; - } - - // Process string(s) - var result; - try { - if (isObject) { - string = JSON.parse(string); - } - result = stringEscape(string, options); - log(result); - } catch(error) { - log(error.message + '\n'); - log('Error: failed to escape.'); - log('If you think this is a bug in jsesc, please report it:'); - log('https://github.com/mathiasbynens/jsesc/issues/new'); - log( - '\nStack trace using jsesc@%s:\n', - stringEscape.version - ); - log(error.stack); - return process.exit(1); - } - }); - // Return with exit status 0 outside of the `forEach` loop, in case - // multiple strings were passed in. - return process.exit(0); - - }; - - if (stdin.isTTY) { - // handle shell arguments - main(); - } else { - // Either the script is called from within a non-TTY context, - // or `stdin` content is being piped in. - if (!process.stdout.isTTY) { // called from a non-TTY context - timeout = setTimeout(function() { - // if no piped data arrived after a while, handle shell arguments - main(); - }, 250); - } - - data = ''; - stdin.on('data', function(chunk) { - clearTimeout(timeout); - data += chunk; - }); - stdin.on('end', function() { - strings.push(data.trim()); - main(); - }); - stdin.resume(); - } - -}()); diff --git a/node_modules/regjsparser/node_modules/jsesc/jsesc.js b/node_modules/regjsparser/node_modules/jsesc/jsesc.js deleted file mode 100644 index 03bbd68..0000000 --- a/node_modules/regjsparser/node_modules/jsesc/jsesc.js +++ /dev/null @@ -1,265 +0,0 @@ -/*! http://mths.be/jsesc v0.5.0 by @mathias */ -;(function(root) { - - // Detect free variables `exports` - var freeExports = typeof exports == 'object' && exports; - - // Detect free variable `module` - var freeModule = typeof module == 'object' && module && - module.exports == freeExports && module; - - // Detect free variable `global`, from Node.js or Browserified code, - // and use it as `root` - var freeGlobal = typeof global == 'object' && global; - if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { - root = freeGlobal; - } - - /*--------------------------------------------------------------------------*/ - - var object = {}; - var hasOwnProperty = object.hasOwnProperty; - var forOwn = function(object, callback) { - var key; - for (key in object) { - if (hasOwnProperty.call(object, key)) { - callback(key, object[key]); - } - } - }; - - var extend = function(destination, source) { - if (!source) { - return destination; - } - forOwn(source, function(key, value) { - destination[key] = value; - }); - return destination; - }; - - var forEach = function(array, callback) { - var length = array.length; - var index = -1; - while (++index < length) { - callback(array[index]); - } - }; - - var toString = object.toString; - var isArray = function(value) { - return toString.call(value) == '[object Array]'; - }; - var isObject = function(value) { - // This is a very simple check, but it’s good enough for what we need. - return toString.call(value) == '[object Object]'; - }; - var isString = function(value) { - return typeof value == 'string' || - toString.call(value) == '[object String]'; - }; - var isFunction = function(value) { - // In a perfect world, the `typeof` check would be sufficient. However, - // in Chrome 1–12, `typeof /x/ == 'object'`, and in IE 6–8 - // `typeof alert == 'object'` and similar for other host objects. - return typeof value == 'function' || - toString.call(value) == '[object Function]'; - }; - - /*--------------------------------------------------------------------------*/ - - // http://mathiasbynens.be/notes/javascript-escapes#single - var singleEscapes = { - '"': '\\"', - '\'': '\\\'', - '\\': '\\\\', - '\b': '\\b', - '\f': '\\f', - '\n': '\\n', - '\r': '\\r', - '\t': '\\t' - // `\v` is omitted intentionally, because in IE < 9, '\v' == 'v'. - // '\v': '\\x0B' - }; - var regexSingleEscape = /["'\\\b\f\n\r\t]/; - - var regexDigit = /[0-9]/; - var regexWhitelist = /[ !#-&\(-\[\]-~]/; - - var jsesc = function(argument, options) { - // Handle options - var defaults = { - 'escapeEverything': false, - 'quotes': 'single', - 'wrap': false, - 'es6': false, - 'json': false, - 'compact': true, - 'indent': '\t', - '__indent__': '' - }; - var json = options && options.json; - if (json) { - defaults.quotes = 'double'; - defaults.wrap = true; - } - options = extend(defaults, options); - if (options.quotes != 'single' && options.quotes != 'double') { - options.quotes = 'single'; - } - var quote = options.quotes == 'double' ? '"' : '\''; - var compact = options.compact; - var indent = options.indent; - var oldIndent; - var newLine = compact ? '' : '\n'; - var result; - var isEmpty = true; - - if (json && argument && isFunction(argument.toJSON)) { - argument = argument.toJSON(); - } - - if (!isString(argument)) { - if (isArray(argument)) { - result = []; - options.wrap = true; - oldIndent = options.__indent__; - indent += oldIndent; - options.__indent__ = indent; - forEach(argument, function(value) { - isEmpty = false; - result.push( - (compact ? '' : indent) + - jsesc(value, options) - ); - }); - if (isEmpty) { - return '[]'; - } - return '[' + newLine + result.join(',' + newLine) + newLine + - (compact ? '' : oldIndent) + ']'; - } else if (!isObject(argument)) { - if (json) { - // For some values (e.g. `undefined`, `function` objects), - // `JSON.stringify(value)` returns `undefined` (which isn’t valid - // JSON) instead of `'null'`. - return JSON.stringify(argument) || 'null'; - } - return String(argument); - } else { // it’s an object - result = []; - options.wrap = true; - oldIndent = options.__indent__; - indent += oldIndent; - options.__indent__ = indent; - forOwn(argument, function(key, value) { - isEmpty = false; - result.push( - (compact ? '' : indent) + - jsesc(key, options) + ':' + - (compact ? '' : ' ') + - jsesc(value, options) - ); - }); - if (isEmpty) { - return '{}'; - } - return '{' + newLine + result.join(',' + newLine) + newLine + - (compact ? '' : oldIndent) + '}'; - } - } - - var string = argument; - // Loop over each code unit in the string and escape it - var index = -1; - var length = string.length; - var first; - var second; - var codePoint; - result = ''; - while (++index < length) { - var character = string.charAt(index); - if (options.es6) { - first = string.charCodeAt(index); - if ( // check if it’s the start of a surrogate pair - first >= 0xD800 && first <= 0xDBFF && // high surrogate - length > index + 1 // there is a next code unit - ) { - second = string.charCodeAt(index + 1); - if (second >= 0xDC00 && second <= 0xDFFF) { // low surrogate - // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; - result += '\\u{' + codePoint.toString(16).toUpperCase() + '}'; - index++; - continue; - } - } - } - if (!options.escapeEverything) { - if (regexWhitelist.test(character)) { - // It’s a printable ASCII character that is not `"`, `'` or `\`, - // so don’t escape it. - result += character; - continue; - } - if (character == '"') { - result += quote == character ? '\\"' : character; - continue; - } - if (character == '\'') { - result += quote == character ? '\\\'' : character; - continue; - } - } - if ( - character == '\0' && - !json && - !regexDigit.test(string.charAt(index + 1)) - ) { - result += '\\0'; - continue; - } - if (regexSingleEscape.test(character)) { - // no need for a `hasOwnProperty` check here - result += singleEscapes[character]; - continue; - } - var charCode = character.charCodeAt(0); - var hexadecimal = charCode.toString(16).toUpperCase(); - var longhand = hexadecimal.length > 2 || json; - var escaped = '\\' + (longhand ? 'u' : 'x') + - ('0000' + hexadecimal).slice(longhand ? -4 : -2); - result += escaped; - continue; - } - if (options.wrap) { - result = quote + result + quote; - } - return result; - }; - - jsesc.version = '0.5.0'; - - /*--------------------------------------------------------------------------*/ - - // Some AMD build optimizers, like r.js, check for specific condition patterns - // like the following: - if ( - typeof define == 'function' && - typeof define.amd == 'object' && - define.amd - ) { - define(function() { - return jsesc; - }); - } else if (freeExports && !freeExports.nodeType) { - if (freeModule) { // in Node.js or RingoJS v0.8.0+ - freeModule.exports = jsesc; - } else { // in Narwhal or RingoJS v0.7.0- - freeExports.jsesc = jsesc; - } - } else { // in Rhino or a web browser - root.jsesc = jsesc; - } - -}(this)); diff --git a/node_modules/regjsparser/node_modules/jsesc/man/jsesc.1 b/node_modules/regjsparser/node_modules/jsesc/man/jsesc.1 deleted file mode 100644 index 5257768..0000000 --- a/node_modules/regjsparser/node_modules/jsesc/man/jsesc.1 +++ /dev/null @@ -1,90 +0,0 @@ -.Dd October 25, 2013 -.Dt jsesc 1 -.Sh NAME -.Nm jsesc -.Nd escape strings for use in JavaScript string literals -.Sh SYNOPSIS -.Nm -.Op Fl s | -single-quotes Ar string -.br -.Op Fl d | -double-quotes Ar string -.br -.Op Fl w | -wrap Ar string -.br -.Op Fl 6 | -es6 Ar string -.br -.Op Fl e | -escape-everything Ar string -.br -.Op Fl j | -json Ar string -.br -.Op Fl p | -object Ar string -.br -.Op Fl p | -pretty Ar string -.br -.Op Fl v | -version -.br -.Op Fl h | -help -.Sh DESCRIPTION -.Nm -escapes strings for use in JavaScript string literals while generating the shortest possible valid ASCII-only output. -.Sh OPTIONS -.Bl -ohang -offset -.It Sy "-s, --single-quotes" -Escape any occurences of ' in the input string as \\', so that the output can be used in a JavaScript string literal wrapped in single quotes. -.It Sy "-d, --double-quotes" -Escape any occurences of " in the input string as \\", so that the output can be used in a JavaScript string literal wrapped in double quotes. -.It Sy "-w, --wrap" -Make sure the output is a valid JavaScript string literal wrapped in quotes. The type of quotes can be specified using the -.Ar -s | --single-quotes -or -.Ar -d | --double-quotes -settings. -.It Sy "-6, --es6" -Escape any astral Unicode symbols using ECMAScript 6 Unicode code point escape sequences. -.It Sy "-e, --escape-everything" -Escape all the symbols in the output, even printable ASCII symbols. -.It Sy "-j, --json" -Make sure the output is valid JSON. Hexadecimal character escape sequences and the \\v or \\0 escape sequences will not be used. Setting this flag enables the -.Ar -d | --double-quotes -and -.Ar -w | --wrap -settings. -.It Sy "-o, --object" -Treat the input as a JavaScript object rather than a string. Accepted values are flat arrays containing only string values, and flat objects containing only string values. -.It Sy "-p, --pretty" -Pretty-print the output for objects, using whitespace to make it more readable. Setting this flag enables the -.Ar -o | --object -setting. -.It Sy "-v, --version" -Print jsesc's version. -.It Sy "-h, --help" -Show the help screen. -.El -.Sh EXIT STATUS -The -.Nm jsesc -utility exits with one of the following values: -.Pp -.Bl -tag -width flag -compact -.It Li 0 -.Nm -successfully escaped the given string and printed the result. -.It Li 1 -.Nm -wasn't instructed to escape anything (for example, the -.Ar --help -flag was set); or, an error occurred. -.El -.Sh EXAMPLES -.Bl -ohang -offset -.It Sy "jsesc 'foo bar baz'" -Print an escaped version of the given string. -.It Sy echo\ 'foo bar baz'\ |\ jsesc -Print an escaped version of the string that gets piped in. -.El -.Sh BUGS -jsesc's bug tracker is located at . -.Sh AUTHOR -Mathias Bynens -.Sh WWW - diff --git a/node_modules/regjsparser/node_modules/jsesc/package.json b/node_modules/regjsparser/node_modules/jsesc/package.json deleted file mode 100644 index 1216eef..0000000 --- a/node_modules/regjsparser/node_modules/jsesc/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "jsesc", - "version": "0.5.0", - "description": "A JavaScript library for escaping JavaScript strings while generating the shortest possible valid output.", - "homepage": "http://mths.be/jsesc", - "main": "jsesc.js", - "bin": "bin/jsesc", - "man": "man/jsesc.1", - "keywords": [ - "string", - "escape", - "javascript", - "tool" - ], - "licenses": [ - { - "type": "MIT", - "url": "http://mths.be/mit" - } - ], - "author": { - "name": "Mathias Bynens", - "url": "http://mathiasbynens.be/" - }, - "repository": { - "type": "git", - "url": "https://github.com/mathiasbynens/jsesc.git" - }, - "bugs": { - "url": "https://github.com/mathiasbynens/jsesc/issues" - }, - "files": [ - "LICENSE-MIT.txt", - "jsesc.js", - "bin/", - "man/" - ], - "directories": { - "test": "tests" - }, - "scripts": { - "test": "node tests/tests.js" - }, - "devDependencies": { - "coveralls": "^2.10.0", - "grunt": "^0.4.5", - "grunt-shell": "^0.7.0", - "grunt-template": "^0.2.3", - "istanbul": "^0.3.0", - "qunit-extras": "^1.2.0", - "qunitjs": "~1.11.0", - "regenerate": "^0.6.2", - "requirejs": "^2.1.14" - } -} diff --git a/node_modules/regjsparser/package.json b/node_modules/regjsparser/package.json index df69005..e652a57 100644 --- a/node_modules/regjsparser/package.json +++ b/node_modules/regjsparser/package.json @@ -1,21 +1,26 @@ { "name": "regjsparser", - "version": "0.9.1", + "version": "0.12.0", "author": "'Julian Viereck' ", "license": "BSD-2-Clause", "main": "./parser", "types": "./parser.d.ts", - "bin": "bin/parser", + "bin": { + "regjsparser": "bin/parser" + }, "homepage": "https://github.com/jviereck/regjsparser", "repository": { "type": "git", - "url": "git@github.com:jviereck/regjsparser.git" + "url": "git+ssh://git@github.com/jviereck/regjsparser.git" }, "scripts": { - "lint": "eslint --ext .js --max-warnings 0 .", - "test": "run-p test:* && npm run lint", + "lint": "eslint --max-warnings 0 .", + "test": "run-p test:* lint", "test:src": "node test/index.js", - "test:types": "tsc test/types.ts --noEmit" + "test:types": "tsc test/types.ts --noEmit", + "bench:baseline": "node ./tools/bench/index.mjs baseline", + "bench:current": "node ./tools/bench/index.mjs current", + "bench": "run-s bench:*" }, "files": [ "bin/", @@ -25,13 +30,17 @@ "README.md" ], "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "devDependencies": { - "eslint": "^8.8.0", + "@unicode/unicode-16.0.0": "^1.6.0", + "eslint": "^9.10.0", + "eslint-plugin-regexp": "^2.6.0", + "globals": "^15.9.0", "npm-run-all": "^4.1.5", "regenerate": "~1.0.1", - "typescript": "^4.5.2", - "unicode-11.0.0": "^0.7.8" + "regjsparser": "^0.11.2", + "tinybench": "^2.9.0", + "typescript": "^4.5.2" } } diff --git a/node_modules/regjsparser/parser.d.ts b/node_modules/regjsparser/parser.d.ts index 4edef64..5225301 100644 --- a/node_modules/regjsparser/parser.d.ts +++ b/node_modules/regjsparser/parser.d.ts @@ -52,7 +52,7 @@ export type Anchor = Base<"anchor"> & { }; export type CharacterClassEscape = Base<"characterClassEscape"> & { - value: string; + value: 'd' | 'D' | 'w' | 'W' | 's' | 'S'; }; export type Value = Base<"value"> & { @@ -100,9 +100,9 @@ export type CharacterClass = Base<"characterClass"> & { }; export type ModifierFlags = { - enabling: string, - disabling: string -} + enabling: string; + disabling: string; +}; export type NonCapturingGroup = Base<"group"> & ( @@ -128,7 +128,6 @@ export type NonCapturingGroup = Base<"group"> & >) ); - export type CapturingGroup = Base<"group"> & { behavior: "normal"; body: RootNode[]; @@ -151,7 +150,7 @@ export type Quantifier = Base<"quantifier"> & { greedy: boolean; max?: number; min: number; - symbol?: '?' | '*' | '+'; + symbol?: "?" | "*" | "+"; }; export type Disjunction = Base<"disjunction"> & { @@ -172,7 +171,7 @@ export type IndexReference = Base<"reference"> & { export type Reference = _If< F["namedGroups"], - NamedReference, + IndexReference | NamedReference, IndexReference >; diff --git a/node_modules/regjsparser/parser.js b/node_modules/regjsparser/parser.js index 6f20b71..9532215 100644 --- a/node_modules/regjsparser/parser.js +++ b/node_modules/regjsparser/parser.js @@ -20,6 +20,7 @@ // // Term :: // Anchor +// Anchor Quantifier (see https://github.com/jviereck/regjsparser/issues/130) // Atom // Atom Quantifier // @@ -86,23 +87,23 @@ // one of d D s S w W // // CharacterClass :: -// [ [lookahead βˆ‰ {^}] ClassRanges ] -// [ ^ ClassRanges ] +// [ [lookahead βˆ‰ {^}] ClassContents ] +// [ ^ ClassContents ] // -// ClassRanges :: +// ClassContents :: // [empty] // [~V] NonemptyClassRanges -// [+V] ClassContents +// [+V] ClassSetExpression // // NonemptyClassRanges :: // ClassAtom // ClassAtom NonemptyClassRangesNoDash -// ClassAtom - ClassAtom ClassRanges +// ClassAtom - ClassAtom ClassContents // // NonemptyClassRangesNoDash :: // ClassAtom // ClassAtomNoDash NonemptyClassRangesNoDash -// ClassAtomNoDash - ClassAtom ClassRanges +// ClassAtomNoDash - ClassAtom ClassContents // // ClassAtom :: // - @@ -149,63 +150,64 @@ // https://github.com/tc39/proposal-regexp-set-notation // -------------------------------------------------------------- // -// ClassContents :: +// ClassSetExpression :: // ClassUnion // ClassIntersection // ClassSubtraction // // ClassUnion :: -// ClassRange ClassUnion? -// ClassOperand ClassUnion? +// ClassSetRange ClassUnion? +// ClassSetOperand ClassUnion? // // ClassIntersection :: -// ClassOperand && [lookahead β‰  &] ClassOperand -// ClassIntersection && [lookahead β‰  &] ClassOperand +// ClassSetOperand && [lookahead β‰  &] ClassSetOperand +// ClassIntersection && [lookahead β‰  &] ClassSetOperand // // ClassSubtraction :: -// ClassOperand -- ClassOperand -// ClassSubtraction -- ClassOperand +// ClassSetOperand -- ClassSetOperand +// ClassSubtraction -- ClassSetOperand // -// ClassOperand :: -// ClassCharacter -// ClassStrings +// ClassSetRange :: +// ClassSetCharacter - ClassSetCharacter +// +// ClassSetOperand :: +// ClassSetCharacter +// ClassStringDisjunction // NestedClass // // NestedClass :: -// [ [lookahead β‰  ^] ClassRanges[+U,+V] ] -// [ ^ ClassRanges[+U,+V] ] +// [ [lookahead β‰  ^] ClassContents[+U,+V] ] +// [ ^ ClassContents[+U,+V] ] // \ CharacterClassEscape[+U, +V] // -// ClassRange :: -// ClassCharacter - ClassCharacter -// -// ClassCharacter :: -// [lookahead βˆ‰ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter -// \ CharacterEscape[+U] -// \ ClassHalfOfDouble -// \ b -// -// ClassSyntaxCharacter :: -// one of ( ) [ ] { } / - \ | -// -// ClassStrings :: -// ( ClassString MoreClassStrings? ) -// -// MoreClassStrings :: -// | ClassString MoreClassStrings? +// ClassStringDisjunction :: +// \q{ ClassStringDisjunctionContents } +// +// ClassStringDisjunctionContents :: +// ClassString +// ClassString | ClassStringDisjunctionContents // // ClassString :: // [empty] // NonEmptyClassString // // NonEmptyClassString :: -// ClassCharacter NonEmptyClassString? +// ClassSetCharacter NonEmptyClassString? // -// ClassReservedDouble :: -// one of && !! ## $$ %% ** ++ ,, .. :: ;; << == >> ?? @@ ^^ __ `` ~~ +// ClassSetCharacter :: +// [lookahead βˆ‰ ClassSetReservedDoublePunctuator] SourceCharacter but not ClassSetSyntaxCharacter +// \ CharacterEscape[+U] +// \ ClassSetReservedPunctuator +// \b // -// ClassHalfOfDouble :: -// one of & - ! # % , : ; < = > @ _ ` ~ +// ClassSetReservedDoublePunctuator :: +// one of && !! ## $$ %% ** ++ ,, .. :: ;; << == >> ?? @@ ^^ `` ~~ +// +// ClassSetSyntaxCharacter :: +// one of ( ) [ ] { } / - \ | +// +// ClassSetReservedPunctuator :: +// one of & - ! # % , : ; < = > @ ` ~ // // -------------------------------------------------------------- // NOTE: The following productions refer to the @@ -214,9 +216,15 @@ // -------------------------------------------------------------- // // Atom :: -// ( ? RegularExpressionFlags : Disjunction ) -// ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) +// ( ? RegularExpressionModifiers : Disjunction ) +// ( ? RegularExpressionModifiers - RegularExpressionModifiers : Disjunction ) // +// RegularExpressionModifiers: +// [empty] +// RegularExpressionModifiers RegularExpressionModifier +// +// RegularExpressionModifier: +// one of i m s "use strict"; (function() { @@ -271,34 +279,33 @@ if (!features) { features = {}; } - function addRaw(node) { - node.raw = str.substring(node.range[0], node.range[1]); - return node; - } function updateRawStart(node, start) { node.range[0] = start; - return addRaw(node); + node.raw = str.substring(start, node.range[1]); + return node; } function createAnchor(kind, rawLength) { - return addRaw({ + return { type: 'anchor', kind: kind, range: [ pos - rawLength, pos - ] - }); + ], + raw: str.substring(pos - rawLength, pos) + }; } function createValue(kind, codePoint, from, to) { - return addRaw({ + return { type: 'value', kind: kind, codePoint: codePoint, - range: [from, to] - }); + range: [from, to], + raw: str.substring(from, to) + }; } function createEscaped(kind, codePoint, value, fromOffset) { @@ -327,69 +334,77 @@ } function createDisjunction(alternatives, from, to) { - return addRaw({ + return { type: 'disjunction', body: alternatives, range: [ from, to - ] - }); + ], + raw: str.substring(from, to) + }; } function createDot() { - return addRaw({ + return { type: 'dot', range: [ pos - 1, pos - ] - }); + ], + raw: '.' + }; } function createCharacterClassEscape(value) { - return addRaw({ + return { type: 'characterClassEscape', value: value, range: [ pos - 2, pos - ] - }); + ], + raw: str.substring(pos - 2, pos) + }; } function createReference(matchIndex) { - return addRaw({ + var start = pos - 1 - matchIndex.length; + return { type: 'reference', matchIndex: parseInt(matchIndex, 10), range: [ - pos - 1 - matchIndex.length, + start, pos - ] - }); + ], + raw: str.substring(start, pos) + }; } function createNamedReference(name) { - return addRaw({ + var start = name.range[0] - 3; + return { type: 'reference', name: name, range: [ - name.range[0] - 3, + start, pos - ] - }); + ], + raw: str.substring(start, pos) + }; } function createGroup(behavior, disjunction, from, to) { - return addRaw({ + return { type: 'group', behavior: behavior, body: disjunction, range: [ from, to - ] - }); + ], + raw: str.substring(from, to) + }; } function createQuantifier(min, max, from, to, symbol) { @@ -398,7 +413,7 @@ to = pos; } - return addRaw({ + return { type: 'quantifier', min: min, max: max, @@ -408,23 +423,25 @@ range: [ from, to - ] - }); + ], + raw: str.substring(from, to) + }; } function createAlternative(terms, from, to) { - return addRaw({ + return { type: 'alternative', body: terms, range: [ from, to - ] - }); + ], + raw: str.substring(from, to) + }; } function createCharacterClass(contents, negative, from, to) { - return addRaw({ + return { type: 'characterClass', kind: contents.kind, body: contents.body, @@ -432,8 +449,9 @@ range: [ from, to - ] - }); + ], + raw: str.substring(from, to) + }; } function createClassRange(min, max, from, to) { @@ -442,31 +460,34 @@ bail('invalid range in character class', min.raw + '-' + max.raw, from, to); } - return addRaw({ + return { type: 'characterClassRange', min: min, max: max, range: [ from, to - ] - }); + ], + raw: str.substring(from, to) + }; } function createClassStrings(strings, from, to) { - return addRaw({ + return { type: 'classStrings', strings: strings, - range: [from, to] - }); + range: [from, to], + raw: str.substring(from, to) + }; } function createClassString(characters, from, to) { - return addRaw({ + return { type: 'classString', characters: characters, - range: [from, to] - }); + range: [from, to], + raw: str.substring(from, to) + }; } function flattenBody(body) { @@ -479,8 +500,11 @@ function incr(amount) { amount = (amount || 1); - var res = str.substring(pos, pos + amount); - pos += (amount || 1); + pos += amount; + } + + function consume(amount) { + var res = str.substring(pos, pos += amount); return res; } @@ -491,8 +515,17 @@ } function match(value) { - if (str.indexOf(value, pos) === pos) { - return incr(value.length); + var len = value.length; + if (str.substring(pos, pos + len) === value) { + incr(len); + return value; + } + } + + function matchOne(value) { + if (str[pos] === value) { + pos++; + return value; } } @@ -500,8 +533,13 @@ return str[pos]; } + function currentOne(value) { + return str[pos] === value; + } + function current(value) { - return str.indexOf(value, pos) === pos; + var len = value.length; + return str.substring(pos, pos + len) === value; } function next(value) { @@ -512,10 +550,7 @@ var subStr = str.substring(pos); var res = subStr.match(regExp); if (res) { - res.range = []; - res.range[0] = pos; - incr(res[0].length); - res.range[1] = pos; + pos += res[0].length; } return res; } @@ -527,7 +562,7 @@ var res = [], from = pos; res.push(parseAlternative()); - while (match('|')) { + while (matchOne('|')) { res.push(parseAlternative()); } @@ -562,39 +597,74 @@ // Atom // Atom Quantifier - if (pos >= str.length || current('|') || current(')')) { + // Term (Annex B):: + // [~UnicodeMode] QuantifiableAssertion Quantifier (see https://github.com/jviereck/regjsparser/issues/130) + // [~UnicodeMode] ExtendedAtom Quantifier + + // QuantifiableAssertion:: + // (?= Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups] ) + // (?! Disjunction[~UnicodeMode, ~UnicodeSetsMode, ?NamedCaptureGroups] ) + + if (pos >= str.length || currentOne('|') || currentOne(')')) { return null; /* Means: The term is empty */ } var anchor = parseAnchor(); - + var quantifier; if (anchor) { + var pos_backup = pos; + quantifier = parseQuantifier() || false; + if (quantifier) { + // Annex B + if (!isUnicodeMode && anchor.type === "group") { + quantifier.body = flattenBody(anchor); + // The quantifier contains the anchor. Therefore, the beginning of the + // quantifier range is given by the beginning of the anchor. + updateRawStart(quantifier, anchor.range[0]); + return quantifier; + } + pos = pos_backup; + bail("Expected atom"); + } return anchor; } + // If there is no Anchor, try to parse an atom. var atom = parseAtomAndExtendedAtom(); - var quantifier; if (!atom) { // Check if a quantifier is following. A quantifier without an atom // is an error. - var pos_backup = pos + pos_backup = pos; quantifier = parseQuantifier() || false; if (quantifier) { - pos = pos_backup - bail('Expected atom'); + pos = pos_backup; + bail("Expected atom"); } // If no unicode flag, then try to parse ExtendedAtom -> ExtendedPatternCharacter. // ExtendedPatternCharacter - var res; - if (!isUnicodeMode && (res = matchReg(/^{/))) { - atom = createCharacter(res); + if (!isUnicodeMode && matchOne("{")) { + atom = createCharacter("{"); } else { - bail('Expected atom'); + bail("Expected atom"); } } + quantifier = parseQuantifier() || false; if (quantifier) { + var type = atom.type, behavior = atom.behavior; + if ( + type === "group" && + (behavior === "negativeLookbehind" || + behavior === "lookbehind") + ) { + bail( + "Invalid quantifier", + "", + quantifier.range[0], + quantifier.range[1] + ); + } quantifier.body = flattenBody(atom); // The quantifier contains the atom. Therefore, the beginning of the // quantifier range is given by the beginning of the atom. @@ -646,16 +716,27 @@ // ( ? = Disjunction ) // ( ? ! Disjunction ) - if (match('^')) { - return createAnchor('start', 1 /* rawLength */); - } else if (match('$')) { - return createAnchor('end', 1 /* rawLength */); - } else if (match('\\b')) { - return createAnchor('boundary', 2 /* rawLength */); - } else if (match('\\B')) { - return createAnchor('not-boundary', 2 /* rawLength */); - } else { - return parseGroup('(?=', 'lookahead', '(?!', 'negativeLookahead'); + switch(lookahead()) { + case '^': + incr(); + return createAnchor('start', 1 /* rawLength */); + case '$': + incr(); + return createAnchor('end', 1 /* rawLength */); + case '\\': { + if (next('b')) { + incr(2); + return createAnchor('boundary', 2 /* rawLength */); + } else if (next('B')) { + incr(2); + return createAnchor('not-boundary', 2 /* rawLength */); + } + break; + } + case '(': + return parseGroup('(?=', 'lookahead', '(?!', 'negativeLookahead'); + default: + return; } } @@ -676,38 +757,45 @@ var quantifier; var min, max; - if (match('*')) { - quantifier = createQuantifier(0, undefined, undefined, undefined, '*'); - } - else if (match('+')) { - quantifier = createQuantifier(1, undefined, undefined, undefined, "+"); - } - else if (match('?')) { - quantifier = createQuantifier(0, 1, undefined, undefined, "?"); - } - else if (res = matchReg(/^\{([0-9]+)\}/)) { - min = parseInt(res[1], 10); - quantifier = createQuantifier(min, min, res.range[0], res.range[1]); - } - else if (res = matchReg(/^\{([0-9]+),\}/)) { - min = parseInt(res[1], 10); - quantifier = createQuantifier(min, undefined, res.range[0], res.range[1]); - } - else if (res = matchReg(/^\{([0-9]+),([0-9]+)\}/)) { - min = parseInt(res[1], 10); - max = parseInt(res[2], 10); - if (min > max) { - bail('numbers out of order in {} quantifier', '', from, pos); + switch(lookahead()) { + case '*': + incr(); + quantifier = createQuantifier(0, undefined, undefined, undefined, '*'); + break; + case '+': + incr(); + quantifier = createQuantifier(1, undefined, undefined, undefined, "+"); + break; + case '?': + incr(); + quantifier = createQuantifier(0, 1, undefined, undefined, "?"); + break; + case '{': { + if (res = matchReg(/^\{(\d+)\}/)) { + min = parseInt(res[1], 10); + quantifier = createQuantifier(min, min, from, pos); + } + else if (res = matchReg(/^\{(\d+),\}/)) { + min = parseInt(res[1], 10); + quantifier = createQuantifier(min, undefined, from, pos); + } + else if (res = matchReg(/^\{(\d+),(\d+)\}/)) { + min = parseInt(res[1], 10); + max = parseInt(res[2], 10); + if (min > max) { + bail('numbers out of order in {} quantifier', '', from, pos); + } + quantifier = createQuantifier(min, max, from, pos); + } + + if (min && (!Number.isSafeInteger(min)) || (max && !Number.isSafeInteger(max))) { + bail("iterations outside JS safe integer range in quantifier", "", from, pos); + } } - quantifier = createQuantifier(min, max, res.range[0], res.range[1]); - } - - if ((min && !Number.isSafeInteger(min)) || (max && !Number.isSafeInteger(max))) { - bail("iterations outside JS safe integer range in quantifier", "", from, pos); - } + } if (quantifier) { - if (match('?')) { + if (matchOne('?')) { quantifier.greedy = false; quantifier.range[1] += 1; } @@ -728,8 +816,8 @@ // \ AtomEscape // CharacterClass // ( GroupSpecifier Disjunction ) - // ( ? RegularExpressionFlags : Disjunction ) - // ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction ) + // ( ? RegularExpressionModifiers : Disjunction ) + // ( ? RegularExpressionModifiers - RegularExpressionModifiers : Disjunction ) // ExtendedAtom :: // ExtendedPatternCharacter // ExtendedPatternCharacter :: @@ -737,53 +825,68 @@ var res; - // jviereck: allow ']', '}' here as well to be compatible with browser's - // implementations: ']'.match(/]/); - if (res = matchReg(/^[^^$\\.*+?()[\]{}|]/)) { - // PatternCharacter - return createCharacter(res); - } - else if (!isUnicodeMode && (res = matchReg(/^(?:]|})/))) { - // ExtendedPatternCharacter, first part. See parseTerm. - return createCharacter(res); - } - else if (match('.')) { - // . - return createDot(); - } - else if (match('\\')) { - // \ AtomEscape - res = parseAtomEscape(); - if (!res) { - if (!isUnicodeMode && lookahead() == 'c') { - // B.1.4 ExtendedAtom - // \[lookahead = c] - return createValue('symbol', 92, pos - 1, pos); + switch (res = lookahead()) { + case '.': + // . + incr(); + return createDot(); + case '\\': { + // \ AtomEscape + incr(); + res = parseAtomEscape(); + if (!res) { + if (!isUnicodeMode && lookahead() == 'c') { + // B.1.4 ExtendedAtom + // \[lookahead = c] + return createValue('symbol', 92, pos - 1, pos); + } + bail('atomEscape'); } - bail('atomEscape'); + return res; } - return res; - } - else if (res = parseCharacterClass()) { - return res; - } - else if (features.lookbehind && (res = parseGroup('(?<=', 'lookbehind', '(?"); - var group = finishGroup("normal", name.range[0] - 3); - group.name = name; - return group; - } - else if (features.modifiers && str.indexOf("(?") == pos && str[pos+2] != ":") { - return parseModifiersGroup(); - } - else { - // ( Disjunction ) - // ( ? : Disjunction ) - return parseGroup('(?:', 'ignore', '(', 'normal'); + case '[': + return parseCharacterClass(); + case '(': { + if (features.lookbehind && (res = parseGroup('(?<=', 'lookbehind', '(?"); + var group = finishGroup("normal", name.range[0] - 3); + group.name = name; + return group; + } + else if (features.modifiers && current("(?") && str[pos + 2] != ":") { + return parseModifiersGroup(); + } + else { + // ( Disjunction ) + // ( ? : Disjunction ) + return parseGroup('(?:', 'ignore', '(', 'normal'); + } + } + case ']': + case '}': + // ExtendedPatternCharacter, first part. See parseTerm. + if (!isUnicodeMode) { + incr(); + return createCharacter(res); + } + break; + case '^': + case '$': + case '*': + case '+': + case '?': + case '{': + case ')': + case '|': + break; + default: + // PatternCharacter + incr(); + return createCharacter(res); } } @@ -804,7 +907,7 @@ var enablingFlags = matchReg(/^[sim]+/); var disablingFlags; - if(match("-")){ + if(matchOne("-") && lookahead() !== ":"){ disablingFlags = matchReg(/^[sim]+/); if (!disablingFlags) { bail('Invalid flags for modifiers group'); @@ -821,35 +924,36 @@ bail('flags cannot be duplicated for modifiers group'); } - skip(":"); + if(!matchOne(":")) { + bail('Invalid flags for modifiers group'); + } var modifiersGroup = finishGroup("ignore", from); modifiersGroup.modifierFlags = { - enabling: enablingFlags, - disabling: disablingFlags - }; + enabling: enablingFlags, + disabling: disablingFlags + }; return modifiersGroup; } - function parseUnicodeSurrogatePairEscape(firstEscape) { + function parseUnicodeSurrogatePairEscape(firstEscape, isUnicodeMode) { if (isUnicodeMode) { var first, second; if (firstEscape.kind == 'unicodeEscape' && (first = firstEscape.codePoint) >= 0xD800 && first <= 0xDBFF && - current('\\') && next('u') ) { + currentOne('\\') && next('u') ) { var prevPos = pos; pos++; var secondEscape = parseClassEscape(); if (secondEscape.kind == 'unicodeEscape' && (second = secondEscape.codePoint) >= 0xDC00 && second <= 0xDFFF) { // Unicode surrogate pair - firstEscape.range[1] = secondEscape.range[1]; - firstEscape.codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; - firstEscape.type = 'value'; firstEscape.kind = 'unicodeCodePointEscape'; - addRaw(firstEscape); + firstEscape.codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; + firstEscape.range[1] = pos; + firstEscape.raw = str.substring(firstEscape.range[0], pos) } else { pos = prevPos; @@ -870,41 +974,78 @@ // CharacterClassEscape // k GroupName - var res, from = pos; + var res, from = pos, ch; - res = parseDecimalEscape(insideCharacterClass) || parseNamedReference(); - if (res) { - return res; - } - - // For ClassEscape - if (insideCharacterClass) { - // b - if (match('b')) { - // 15.10.2.19 - // The production ClassEscape :: b evaluates by returning the - // CharSet containing the one character (Unicode value 0008). - return createEscaped('singleEscape', 0x0008, '\\b'); - } else if (match('B')) { - bail('\\B not possible inside of CharacterClass', '', from); - } else if (!isUnicodeMode && (res = matchReg(/^c([0-9])/))) { - // B.1.4 - // c ClassControlLetter, ClassControlLetter = DecimalDigit - return createEscaped('controlLetter', res[1] + 16, res[1], 2); - } else if (!isUnicodeMode && (res = matchReg(/^c_/))) { - // B.1.4 - // c ClassControlLetter, ClassControlLetter = _ - return createEscaped('controlLetter', 31, '_', 2); + switch (ch = lookahead()) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + return parseDecimalEscape(insideCharacterClass); + case 'B': { + if (insideCharacterClass) { + bail('\\B not possible inside of CharacterClass', '', from); + break; + } else { + return parseIdentityEscape(); + } } - // [+U] - - if (isUnicodeMode && match('-')) { - return createEscaped('singleEscape', 0x002d, '\\-'); + case 'b': { + if (insideCharacterClass) { + // 15.10.2.19 + // The production ClassEscape :: b evaluates by returning the + // CharSet containing the one character (Unicode value 0008). + incr(); + return createEscaped('singleEscape', 0x0008, '\\b'); + } else { + return parseIdentityEscape(); + } } + case 'c': { + if (insideCharacterClass) { + if (!isUnicodeMode && (res = matchReg(/^c(\d)/))) { + // B.1.4 + // c ClassControlLetter, ClassControlLetter = DecimalDigit + return createEscaped('controlLetter', res[1] + 16, res[1], 2); + } else if (!isUnicodeMode && match("c_")) { + // B.1.4 + // c ClassControlLetter, ClassControlLetter = _ + return createEscaped('controlLetter', 31, '_', 2); + } + } + return parseCharacterEscape(); + } + // CharacterClassEscape :: one of d D s S w W + case 'd': + case 'D': + case 'w': + case 'W': + case 's': + case 'S': + incr(); + return createCharacterClassEscape(ch); + case 'k': + return parseNamedReference() || parseIdentityEscape(); + case 'p': + case 'P': + return parseUnicodePropertyEscape() || parseIdentityEscape(); + case '-': { + // [+U] - + if (insideCharacterClass && isUnicodeMode) { + incr(); + return createEscaped('singleEscape', 0x002d, '\\-'); + } + return parseIdentityEscape(); + } + default: + return parseCharacterEscape(); } - - res = parseCharacterClassEscape() || parseCharacterEscape(); - - return res; } @@ -953,8 +1094,9 @@ // like ordinary characters. Create a character for the // first number only here - other number-characters // (if available) will be matched later. + var start = pos; res = createCharacter(matchReg(/^[89]/)); - return updateRawStart(res, res.range[0] - 1); + return updateRawStart(res, start - 1); } } } @@ -986,22 +1128,17 @@ } } - function parseCharacterClassEscape() { - // CharacterClassEscape :: one of d D s S w W - var res; - if (res = matchReg(/^[dDsSwW]/)) { - return createCharacterClassEscape(res[0]); - } else if (features.unicodePropertyEscape && isUnicodeMode && (res = matchReg(/^([pP])\{([^\}]+)\}/))) { + function parseUnicodePropertyEscape() { + var res, from = pos; + if (features.unicodePropertyEscape && isUnicodeMode && (res = matchReg(/^([pP])\{([^}]+)\}/))) { // https://github.com/jviereck/regjsparser/issues/77 - return addRaw({ + return { type: 'unicodePropertyEscape', negative: res[1] === 'P', value: res[2], - range: [res.range[0] - 1, res.range[1]], - raw: res[0] - }); - } else if (features.unicodeSet && hasUnicodeSetFlag && match('q{')) { - return parseClassStrings(); + range: [from - 1, pos], + raw: str.substring(from - 1, pos) + }; } return false; } @@ -1014,12 +1151,13 @@ } } - function parseRegExpUnicodeEscapeSequence() { + function parseRegExpUnicodeEscapeSequence(isUnicodeMode) { var res; if (res = matchReg(/^u([0-9a-fA-F]{4})/)) { // UnicodeEscapeSequence return parseUnicodeSurrogatePairEscape( - createEscaped('unicodeEscape', parseInt(res[1], 16), res[1], 2) + createEscaped('unicodeEscape', parseInt(res[1], 16), res[1], 2), + isUnicodeMode ); } else if (isUnicodeMode && (res = matchReg(/^u\{([0-9a-fA-F]+)\}/))) { // RegExpUnicodeEscapeSequence (ES6 Unicode code point escape) @@ -1032,45 +1170,69 @@ // ControlEscape // c ControlLetter // HexEscapeSequence - // UnicodeEscapeSequence - // IdentityEscape + // UnicodeEscapeSequence[?UnicodeMode] + // IdentityEscape[?UnicodeMode] var res; var from = pos; - if (res = matchReg(/^[fnrtv]/)) { - // ControlEscape - var codePoint = 0; - switch (res[0]) { - case 't': codePoint = 0x009; break; - case 'n': codePoint = 0x00A; break; - case 'v': codePoint = 0x00B; break; - case 'f': codePoint = 0x00C; break; - case 'r': codePoint = 0x00D; break; - } - return createEscaped('singleEscape', codePoint, '\\' + res[0]); - } else if (res = matchReg(/^c([a-zA-Z])/)) { - // c ControlLetter - return createEscaped('controlLetter', res[1].charCodeAt(0) % 32, res[1], 2); - } else if (res = matchReg(/^x([0-9a-fA-F]{2})/)) { - // HexEscapeSequence - return createEscaped('hexadecimalEscape', parseInt(res[1], 16), res[1], 2); - } else if (res = parseRegExpUnicodeEscapeSequence()) { - if (!res || res.codePoint > 0x10FFFF) { - bail('Invalid escape sequence', null, from, pos); - } - return res; - } else { - // IdentityEscape - return parseIdentityEscape(); + switch (lookahead()) { + case 't': + incr(); + return createEscaped('singleEscape', 0x009, '\\t'); + case 'n': + incr(); + return createEscaped('singleEscape', 0x00A, '\\n'); + case 'v': + incr(); + return createEscaped('singleEscape', 0x00B, '\\v'); + case 'f': + incr(); + return createEscaped('singleEscape', 0x00C, '\\f'); + case 'r': + incr(); + return createEscaped('singleEscape', 0x00D, '\\r'); + case 'c': + if (res = matchReg(/^c([a-zA-Z])/)) { + // c ControlLetter + return createEscaped('controlLetter', res[1].charCodeAt(0) % 32, res[1], 2); + } + break; + case 'x': + if (res = matchReg(/^x([0-9a-fA-F]{2})/)) { + // HexEscapeSequence + return createEscaped('hexadecimalEscape', parseInt(res[1], 16), res[1], 2); + } + break; + case 'u': + if (res = parseRegExpUnicodeEscapeSequence(isUnicodeMode)) { + if (!res || res.codePoint > 0x10FFFF) { + bail('Invalid escape sequence', null, from, pos); + } + return res; + } + break; } + // IdentityEscape + return parseIdentityEscape(); } function parseIdentifierAtom(check) { + // RegExpIdentifierStart[UnicodeMode] :: + // IdentifierStartChar + // \ RegExpUnicodeEscapeSequence[+UnicodeMode] + // [~UnicodeMode] UnicodeLeadSurrogate UnicodeTrailSurrogate + // + // RegExpIdentifierPart[UnicodeMode] :: + // IdentifierPartChar + // \ RegExpUnicodeEscapeSequence[+UnicodeMode] + // [~UnicodeMode] UnicodeLeadSurrogate UnicodeTrailSurrogate + + var ch = lookahead(); var from = pos; if (ch === '\\') { incr(); - var esc = parseRegExpUnicodeEscapeSequence(); + var esc = parseRegExpUnicodeEscapeSequence(true); if (!esc || !check(esc.codePoint)) { bail('Invalid escape sequence', null, from, pos); } @@ -1121,16 +1283,19 @@ res += ch; } - return addRaw({ + return { type: 'identifier', value: res, - range: [start, pos] - }); + range: [start, pos], + raw: str.substring(start, pos) + }; } function isIdentifierStart(ch) { + // ECMAScript (Unicode v16.0.0) NonAsciiIdentifierStart: // Generated by `tools/generate-identifier-regex.js`. - var NonAsciiIdentifierStart = /[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/; + + var NonAsciiIdentifierStart = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF]/; return (ch === 36) || (ch === 95) || // $ (dollar) and _ (underscore) (ch >= 65 && ch <= 90) || // A..Z @@ -1140,9 +1305,10 @@ // Taken from the Esprima parser. function isIdentifierPart(ch) { + // ECMAScript (Unicode v16.0.0) NonAsciiIdentifierPartOnly: // Generated by `tools/generate-identifier-regex.js`. // eslint-disable-next-line no-misleading-character-class - var NonAsciiIdentifierPartOnly = /[0-9_\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD30-\uDD39\uDF46-\uDF50]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC66-\uDC6F\uDC7F-\uDC82\uDCB0-\uDCBA\uDCF0-\uDCF9\uDD00-\uDD02\uDD27-\uDD34\uDD36-\uDD3F\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDD0-\uDDD9\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC50-\uDC59\uDC5E\uDCB0-\uDCC3\uDCD0-\uDCD9\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDE50-\uDE59\uDEAB-\uDEB7\uDEC0-\uDEC9\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC2C-\uDC3A\uDCE0-\uDCE9\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC50-\uDC59\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD50-\uDD59\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDDA0-\uDDA9\uDEF3-\uDEF6]|\uD81A[\uDE60-\uDE69\uDEF0-\uDEF4\uDF30-\uDF36\uDF50-\uDF59]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A\uDD50-\uDD59]|\uDB40[\uDD00-\uDDEF]/; + var NonAsciiIdentifierPartOnly = /[\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD30-\uDD39\uDD40-\uDD49\uDD69-\uDD6D\uDEAB\uDEAC\uDEFC-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC66-\uDC70\uDC73\uDC74\uDC7F-\uDC82\uDCB0-\uDCBA\uDCC2\uDCF0-\uDCF9\uDD00-\uDD02\uDD27-\uDD34\uDD36-\uDD3F\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDCE-\uDDD9\uDE2C-\uDE37\uDE3E\uDE41\uDEDF-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74\uDFB8-\uDFC0\uDFC2\uDFC5\uDFC7-\uDFCA\uDFCC-\uDFD0\uDFD2\uDFE1\uDFE2]|\uD805[\uDC35-\uDC46\uDC50-\uDC59\uDC5E\uDCB0-\uDCC3\uDCD0-\uDCD9\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDE50-\uDE59\uDEAB-\uDEB7\uDEC0-\uDEC9\uDED0-\uDEE3\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC2C-\uDC3A\uDCE0-\uDCE9\uDD30-\uDD35\uDD37\uDD38\uDD3B-\uDD3E\uDD40\uDD42\uDD43\uDD50-\uDD59\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99\uDFF0-\uDFF9]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC50-\uDC59\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD50-\uDD59\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDDA0-\uDDA9\uDEF3-\uDEF6\uDF00\uDF01\uDF03\uDF34-\uDF3A\uDF3E-\uDF42\uDF50-\uDF5A]|\uD80D[\uDC40\uDC47-\uDC55]|\uD818[\uDD1E-\uDD39]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDEF0-\uDEF4\uDF30-\uDF36\uDF50-\uDF59]|\uD81B[\uDD70-\uDD79\uDF4F\uDF51-\uDF87\uDF8F-\uDF92\uDFE4\uDFF0\uDFF1]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDCF0-\uDCF9\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDD40-\uDD49\uDEAE\uDEEC-\uDEF9]|\uD839[\uDCEC-\uDCF9\uDDEE\uDDEF\uDDF1-\uDDFA]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A\uDD50-\uDD59]|\uD83E[\uDFF0-\uDFF9]|\uDB40[\uDD00-\uDDEF]/ return isIdentifierStart(ch) || (ch >= 48 && ch <= 57) || // 0..9 @@ -1162,13 +1328,13 @@ var tmp; var l = lookahead(); if ( - (isUnicodeMode && /[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/.test(l)) || + (isUnicodeMode && /[\^$.*+?()\\[\]{}|/]/.test(l)) || (!isUnicodeMode && l !== "c") ) { if (l === "k" && features.lookbehind) { return null; } - tmp = incr(); + tmp = consume(1); return createEscaped('identifier', tmp.charCodeAt(0), tmp, 1); } @@ -1177,16 +1343,16 @@ function parseCharacterClass() { // CharacterClass :: - // [ [lookahead βˆ‰ {^}] ClassRanges ] - // [ ^ ClassRanges ] + // [ [lookahead βˆ‰ {^}] ClassContents ] + // [ ^ ClassContents ] var res, from = pos; - if (res = matchReg(/^\[\^/)) { - res = parseClassRanges(); + if (res = match("[^")) { + res = parseClassContents(); skip(']'); return createCharacterClass(res, true, from, pos); - } else if (match('[')) { - res = parseClassRanges(); + } else if (matchOne('[')) { + res = parseClassContents(); skip(']'); return createCharacterClass(res, false, from, pos); } @@ -1194,18 +1360,18 @@ return null; } - function parseClassRanges() { - // ClassRanges :: + function parseClassContents() { + // ClassContents :: // [empty] // [~V] NonemptyClassRanges - // [+V] ClassContents + // [+V] ClassSetExpression var res; - if (current(']')) { + if (currentOne(']')) { // Empty array means nothing inside of the ClassRange. return { kind: 'union', body: [] }; } else if (hasUnicodeSetFlag) { - return parseClassContents(); + return parseClassSetExpression(); } else { res = parseNonemptyClassRanges(); if (!res) { @@ -1215,12 +1381,13 @@ } } - function parseHelperClassRanges(atom) { + function parseHelperClassContents(atom) { var from, to, res, atomTo, dash; - if (current('-') && !next(']')) { - // ClassAtom - ClassAtom ClassRanges + if (currentOne('-') && !next(']')) { + // ClassAtom - ClassAtom ClassContents from = atom.range[0]; - dash = createCharacter(match('-')); + incr(); + dash = createCharacter('-'); atomTo = parseClassAtom(); if (!atomTo) { @@ -1229,9 +1396,9 @@ to = pos; // Parse the next class range if exists. - var classRanges = parseClassRanges(); - if (!classRanges) { - bail('classRanges'); + var classContents = parseClassContents(); + if (!classContents) { + bail('classContents'); } // Check if both the from and atomTo have codePoints. @@ -1241,7 +1408,7 @@ // `atom` `-` `atom` instead. // // SEE: https://tc39.es/ecma262/#sec-regular-expression-patterns-semantics - // NonemptyClassRanges::ClassAtom-ClassAtomClassRanges + // NonemptyClassRanges::ClassAtom - ClassAtom ClassContents // CharacterRangeOrUnion res = [atom, dash, atomTo]; } else { @@ -1249,17 +1416,17 @@ // one side has a codePoint. // // SEE: https://tc39.es/ecma262/#sec-patterns-static-semantics-early-errors - // NonemptyClassRanges :: ClassAtom - ClassAtom ClassRanges + // NonemptyClassRanges :: ClassAtom - ClassAtom ClassContents bail('invalid character class'); } } else { res = [createClassRange(atom, atomTo, from, to)]; } - if (classRanges.type === 'empty') { + if (classContents.type === 'empty') { return res; } - return res.concat(classRanges.body); + return res.concat(classContents.body); } res = parseNonemptyClassRangesNoDash(); @@ -1274,48 +1441,48 @@ // NonemptyClassRanges :: // ClassAtom // ClassAtom NonemptyClassRangesNoDash - // ClassAtom - ClassAtom ClassRanges + // ClassAtom - ClassAtom ClassContents var atom = parseClassAtom(); if (!atom) { bail('classAtom'); } - if (current(']')) { + if (currentOne(']')) { // ClassAtom return [atom]; } // ClassAtom NonemptyClassRangesNoDash - // ClassAtom - ClassAtom ClassRanges - return parseHelperClassRanges(atom); + // ClassAtom - ClassAtom ClassContents + return parseHelperClassContents(atom); } function parseNonemptyClassRangesNoDash() { // NonemptyClassRangesNoDash :: // ClassAtom // ClassAtomNoDash NonemptyClassRangesNoDash - // ClassAtomNoDash - ClassAtom ClassRanges + // ClassAtomNoDash - ClassAtom ClassContents var res = parseClassAtom(); if (!res) { bail('classAtom'); } - if (current(']')) { + if (currentOne(']')) { // ClassAtom return res; } // ClassAtomNoDash NonemptyClassRangesNoDash - // ClassAtomNoDash - ClassAtom ClassRanges - return parseHelperClassRanges(res); + // ClassAtomNoDash - ClassAtom ClassContents + return parseHelperClassContents(res); } function parseClassAtom() { // ClassAtom :: // - // ClassAtomNoDash - if (match('-')) { + if (matchOne('-')) { return createCharacter('-'); } else { return parseClassAtomNoDash(); @@ -1326,59 +1493,73 @@ // ClassAtomNoDash :: // SourceCharacter but not one of \ or ] or - // \ ClassEscape + // + // ClassAtomNoDash (Annex B):: + // \ [lookahead = c] var res; - if (res = matchReg(/^[^\\\]-]/)) { - return createCharacter(res[0]); - } else if (match('\\')) { - res = parseClassEscape(); - if (!res) { - bail('classEscape'); - } + switch ((res = lookahead())) { + case "\\": { + incr(); + res = parseClassEscape(); + if (!res) { + if (!isUnicodeMode && lookahead() == "c") { + return createCharacter("\\"); + } + bail("classEscape"); + } - return parseUnicodeSurrogatePairEscape(res); + return parseUnicodeSurrogatePairEscape(res, isUnicodeMode); + } + case "]": + case "-": + break; + default: + incr(); + return createCharacter(res); } } - function parseClassContents() { - // ClassContents :: + function parseClassSetExpression() { + // ClassSetExpression :: // ClassUnion // ClassIntersection // ClassSubtraction // // ClassUnion :: - // ClassRange ClassUnion? - // ClassOperand ClassUnion? + // ClassSetRange ClassUnion? + // ClassSetOperand ClassUnion? // // ClassIntersection :: - // ClassOperand && [lookahead β‰  &] ClassOperand - // ClassIntersection && [lookahead β‰  &] ClassOperand + // ClassSetOperand && [lookahead β‰  &] ClassSetOperand + // ClassIntersection && [lookahead β‰  &] ClassSetOperand // // ClassSubtraction :: - // ClassOperand -- ClassOperand - // ClassSubtraction -- ClassOperand + // ClassSetOperand -- ClassSetOperand + // ClassSubtraction -- ClassSetOperand + // var body = []; var kind; - var operand = parseClassOperand(/* allowRanges*/ true); + var operand = parseClassSetOperand(/* allowRanges*/ true); body.push(operand); if (operand.type === 'classRange') { kind = 'union'; - } else if (current('&')) { + } else if (currentOne('&')) { kind = 'intersection'; - } else if (current('-')) { + } else if (currentOne('-')) { kind = 'subtraction'; } else { kind = 'union'; } - while (!current(']')) { + while (!currentOne(']')) { if (kind === 'intersection') { skip('&'); skip('&'); - if (current('&')) { + if (currentOne('&')) { bail('&& cannot be followed by &. Wrap it in brackets: &&[&].'); } } else if (kind === 'subtraction') { @@ -1386,29 +1567,29 @@ skip('-'); } - operand = parseClassOperand(/* allowRanges*/ kind === 'union'); + operand = parseClassSetOperand(/* allowRanges*/ kind === 'union'); body.push(operand); } return { kind: kind, body: body }; } - function parseClassOperand(allowRanges) { - // ClassOperand :: - // ClassCharacter - // ClassStrings + function parseClassSetOperand(allowRanges) { + // ClassSetOperand :: + // ClassSetCharacter + // ClassStringDisjunction // NestedClass // // NestedClass :: - // [ [lookahead β‰  ^] ClassRanges[+U,+V] ] - // [ ^ ClassRanges[+U,+V] ] + // [ [lookahead β‰  ^] ClassContents[+U,+V] ] + // [ ^ ClassContents[+U,+V] ] // \ CharacterClassEscape[+U, +V] // - // ClassRange :: - // ClassCharacter - ClassCharacter + // ClassSetRange :: + // ClassSetCharacter - ClassSetCharacter // - // ClassCharacter :: - // [lookahead βˆ‰ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter + // ClassSetCharacter :: + // [lookahead βˆ‰ ClassReservedDouble] SourceCharacter but not ClassSetSyntaxCharacter // \ CharacterEscape[+U] // \ ClassHalfOfDouble // \ b @@ -1419,99 +1600,104 @@ var from = pos; var start, res; - if (match('\\')) { - // ClassOperand :: + if (matchOne('\\')) { + // ClassSetOperand :: // ... - // ClassStrings + // ClassStringDisjunction // NestedClass // // NestedClass :: // ... // \ CharacterClassEscape[+U, +V] - if (res = parseClassEscape()) { + if (match('q{')) { + return parseClassStringDisjunction(); + } else if (res = parseClassEscape()) { start = res; - } else if (res = parseClassCharacterEscapedHelper()) { + } else if (res = parseClassSetCharacterEscapedHelper()) { return res; } else { bail('Invalid escape', '\\' + lookahead(), from); } - } else if (res = parseClassCharacterUnescapedHelper()) { + } else if (res = parseClassSetCharacterUnescapedHelper()) { start = res; } else if (res = parseCharacterClass()) { - // ClassOperand :: + // ClassSetOperand :: // ... // NestedClass // // NestedClass :: - // [ [lookahead β‰  ^] ClassRanges[+U,+V] ] - // [ ^ ClassRanges[+U,+V] ] + // [ [lookahead β‰  ^] ClassContents[+U,+V] ] + // [ ^ ClassContents[+U,+V] ] // ... return res; } else { bail('Invalid character', lookahead()); } - if (allowRanges && current('-') && !next('-')) { - skip('-'); + if (allowRanges && currentOne('-') && !next('-')) { + incr(); - if (res = parseClassCharacter()) { - // ClassRange :: - // ClassCharacter - ClassCharacter + if (res = parseClassSetCharacter()) { + // ClassSetRange :: + // ClassSetCharacter - ClassSetCharacter return createClassRange(start, res, from, pos); } bail('Invalid range end', lookahead()); } - // ClassOperand :: - // ClassCharacter + // ClassSetOperand :: + // ClassSetCharacter // ... return start; } - function parseClassCharacter() { - // ClassCharacter :: - // [lookahead βˆ‰ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter + function parseClassSetCharacter() { + // ClassSetCharacter :: + // [lookahead βˆ‰ ClassReservedDouble] SourceCharacter but not ClassSetSyntaxCharacter // \ CharacterEscape[+U] // \ ClassHalfOfDouble // \ b - if (match('\\')) { + if (matchOne('\\')) { var res, from = pos; - if (res = parseClassCharacterEscapedHelper()) { + if (res = parseClassSetCharacterEscapedHelper()) { return res; } else { bail('Invalid escape', '\\' + lookahead(), from); } } - return parseClassCharacterUnescapedHelper(); + return parseClassSetCharacterUnescapedHelper(); } - function parseClassCharacterUnescapedHelper() { - // ClassCharacter :: - // [lookahead βˆ‰ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter + function parseClassSetCharacterUnescapedHelper() { + // ClassSetCharacter :: + // [lookahead βˆ‰ ClassSetReservedDoublePunctuator] SourceCharacter but not ClassSetSyntaxCharacter // ... var res; + if (matchReg(/^(?:&&|!!|##|\$\$|%%|\*\*|\+\+|,,|\.\.|::|;;|<<|==|>>|\?\?|@@|\^\^|``|~~)/)) { + bail('Invalid set operation in character class'); + } if (res = matchReg(/^[^()[\]{}/\-\\|]/)) { return createCharacter(res); } } - function parseClassCharacterEscapedHelper() { - // ClassCharacter :: + function parseClassSetCharacterEscapedHelper() { + // ClassSetCharacter :: // ... // \ CharacterEscape[+U] - // \ ClassHalfOfDouble + // \ ClassSetReservedPunctuator // \ b var res; - if (match('b')) { + if (matchOne('b')) { return createEscaped('singleEscape', 0x0008, '\\b'); - } else if (match('B')) { + } else if (matchOne('B')) { bail('\\B not possible inside of ClassContents', '', pos - 2); - } else if (res = matchReg(/^[&\-!#%,:;<=>@_`~]/)) { + } else if (res = matchReg(/^[&\-!#%,:;<=>@`~]/)) { return createEscaped('identifier', res[0].codePointAt(0), res[0]); } else if (res = parseCharacterEscape()) { return res; @@ -1520,9 +1706,14 @@ } } - function parseClassStrings() { - // ClassStrings :: - // \q{ ClassString MoreClassStrings? } + function parseClassStringDisjunction() { + // ClassStringDisjunction :: + // \q{ ClassStringDisjunctionContents } + // + // ClassStringDisjunctionContents :: + // ClassString + // ClassString | ClassStringDisjunctionContents + // When calling this function, \q{ has already been consumed. var from = pos - 3; @@ -1530,7 +1721,7 @@ var res = []; do { res.push(parseClassString()); - } while (match('|')); + } while (matchOne('|')); skip('}'); @@ -1543,12 +1734,12 @@ // NonEmptyClassString // // NonEmptyClassString :: - // ClassCharacter NonEmptyClassString? + // ClassSetCharacter NonEmptyClassString? var res = [], from = pos; var char; - while (char = parseClassCharacter()) { + while (char = parseClassSetCharacter()) { res.push(char); } diff --git a/node_modules/source-map-js/lib/source-map-consumer.js b/node_modules/source-map-js/lib/source-map-consumer.js index db0a532..ee66114 100644 --- a/node_modules/source-map-js/lib/source-map-consumer.js +++ b/node_modules/source-map-js/lib/source-map-consumer.js @@ -151,7 +151,9 @@ SourceMapConsumer.prototype.eachMapping = for (var i = 0, n = mappings.length; i < n; i++) { var mapping = mappings[i]; var source = mapping.source === null ? null : sources.at(mapping.source); - source = util.computeSourceURL(sourceRoot, source, sourceMapURL); + if(source !== null) { + source = util.computeSourceURL(sourceRoot, source, sourceMapURL); + } boundCallback({ source: source, generatedLine: mapping.generatedLine, @@ -1142,7 +1144,9 @@ IndexedSourceMapConsumer.prototype._parseMappings = var mapping = sectionMappings[j]; var source = section.consumer._sources.at(mapping.source); - source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + if(source !== null) { + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + } this._sources.add(source); source = this._sources.indexOf(source); diff --git a/node_modules/source-map-js/package.json b/node_modules/source-map-js/package.json index f16eb36..f58dbeb 100644 --- a/node_modules/source-map-js/package.json +++ b/node_modules/source-map-js/package.json @@ -1,7 +1,7 @@ { "name": "source-map-js", "description": "Generates and consumes source maps", - "version": "1.2.0", + "version": "1.2.1", "homepage": "https://github.com/7rulnik/source-map-js", "author": "Valentin 7rulnik Semirulnik ", "contributors": [ diff --git a/node_modules/source-map-js/source-map.d.ts b/node_modules/source-map-js/source-map.d.ts index 9f8a4b3..ec8892f 100644 --- a/node_modules/source-map-js/source-map.d.ts +++ b/node_modules/source-map-js/source-map.d.ts @@ -1,115 +1,104 @@ -declare module 'source-map-js' { - export interface StartOfSourceMap { - file?: string; - sourceRoot?: string; - } - - export interface RawSourceMap extends StartOfSourceMap { - version: string; - sources: string[]; - names: string[]; - sourcesContent?: string[]; - mappings: string; - } - - export interface Position { - line: number; - column: number; - } - - export interface LineRange extends Position { - lastColumn: number; - } - - export interface FindPosition extends Position { - // SourceMapConsumer.GREATEST_LOWER_BOUND or SourceMapConsumer.LEAST_UPPER_BOUND - bias?: number; - } - - export interface SourceFindPosition extends FindPosition { - source: string; - } - - export interface MappedPosition extends Position { - source: string; - name?: string; - } - - export interface MappingItem { - source: string; - generatedLine: number; - generatedColumn: number; - originalLine: number; - originalColumn: number; - name: string; - } - - export class SourceMapConsumer { - static GENERATED_ORDER: number; - static ORIGINAL_ORDER: number; - - static GREATEST_LOWER_BOUND: number; - static LEAST_UPPER_BOUND: number; - - constructor(rawSourceMap: RawSourceMap); - computeColumnSpans(): void; - originalPositionFor(generatedPosition: FindPosition): MappedPosition; - generatedPositionFor(originalPosition: SourceFindPosition): LineRange; - allGeneratedPositionsFor(originalPosition: MappedPosition): Position[]; - hasContentsOfAllSources(): boolean; - sourceContentFor(source: string, returnNullOnMissing?: boolean): string; - eachMapping(callback: (mapping: MappingItem) => void, context?: any, order?: number): void; - } - - export interface Mapping { - generated: Position; - original: Position; - source: string; - name?: string; - } - - export class SourceMapGenerator { - constructor(startOfSourceMap?: StartOfSourceMap); - static fromSourceMap(sourceMapConsumer: SourceMapConsumer): SourceMapGenerator; - addMapping(mapping: Mapping): void; - setSourceContent(sourceFile: string, sourceContent: string): void; - applySourceMap(sourceMapConsumer: SourceMapConsumer, sourceFile?: string, sourceMapPath?: string): void; - toString(): string; - } - - export interface CodeWithSourceMap { - code: string; - map: SourceMapGenerator; - } - - export class SourceNode { - constructor(); - constructor(line: number, column: number, source: string); - constructor(line: number, column: number, source: string, chunk?: string, name?: string); - static fromStringWithSourceMap(code: string, sourceMapConsumer: SourceMapConsumer, relativePath?: string): SourceNode; - add(chunk: string): void; - prepend(chunk: string): void; - setSourceContent(sourceFile: string, sourceContent: string): void; - walk(fn: (chunk: string, mapping: MappedPosition) => void): void; - walkSourceContents(fn: (file: string, content: string) => void): void; - join(sep: string): SourceNode; - replaceRight(pattern: string, replacement: string): SourceNode; - toString(): string; - toStringWithSourceMap(startOfSourceMap?: StartOfSourceMap): CodeWithSourceMap; - } +export interface StartOfSourceMap { + file?: string; + sourceRoot?: string; } -declare module 'source-map-js/lib/source-map-generator' { - import { SourceMapGenerator } from 'source-map-js' - export { SourceMapGenerator } +export interface RawSourceMap extends StartOfSourceMap { + version: string; + sources: string[]; + names: string[]; + sourcesContent?: string[]; + mappings: string; } -declare module 'source-map-js/lib/source-map-consumer' { - import { SourceMapConsumer } from 'source-map-js' - export { SourceMapConsumer } +export interface Position { + line: number; + column: number; } -declare module 'source-map-js/lib/source-node' { - import { SourceNode } from 'source-map-js' - export { SourceNode } +export interface LineRange extends Position { + lastColumn: number; +} + +export interface FindPosition extends Position { + // SourceMapConsumer.GREATEST_LOWER_BOUND or SourceMapConsumer.LEAST_UPPER_BOUND + bias?: number; +} + +export interface SourceFindPosition extends FindPosition { + source: string; +} + +export interface MappedPosition extends Position { + source: string; + name?: string; +} + +export interface MappingItem { + source: string | null; + generatedLine: number; + generatedColumn: number; + originalLine: number | null; + originalColumn: number | null; + name: string | null; +} + +export class SourceMapConsumer { + static GENERATED_ORDER: number; + static ORIGINAL_ORDER: number; + + static GREATEST_LOWER_BOUND: number; + static LEAST_UPPER_BOUND: number; + + constructor(rawSourceMap: RawSourceMap); + readonly file: string | undefined | null; + readonly sourceRoot: string | undefined | null; + readonly sourcesContent: readonly string[] | null | undefined; + readonly sources: readonly string[] + + computeColumnSpans(): void; + originalPositionFor(generatedPosition: FindPosition): MappedPosition; + generatedPositionFor(originalPosition: SourceFindPosition): LineRange; + allGeneratedPositionsFor(originalPosition: MappedPosition): Position[]; + hasContentsOfAllSources(): boolean; + sourceContentFor(source: string, returnNullOnMissing?: boolean): string | null; + eachMapping(callback: (mapping: MappingItem) => void, context?: any, order?: number): void; +} + +export interface Mapping { + generated: Position; + original?: Position | null; + source?: string | null; + name?: string | null; +} + +export class SourceMapGenerator { + constructor(startOfSourceMap?: StartOfSourceMap); + static fromSourceMap(sourceMapConsumer: SourceMapConsumer, startOfSourceMap?: StartOfSourceMap): SourceMapGenerator; + addMapping(mapping: Mapping): void; + setSourceContent(sourceFile: string, sourceContent: string | null | undefined): void; + applySourceMap(sourceMapConsumer: SourceMapConsumer, sourceFile?: string, sourceMapPath?: string): void; + toString(): string; + toJSON(): RawSourceMap; +} + +export interface CodeWithSourceMap { + code: string; + map: SourceMapGenerator; +} + +export class SourceNode { + constructor(); + constructor(line: number, column: number, source: string); + constructor(line: number, column: number, source: string, chunk?: string, name?: string); + static fromStringWithSourceMap(code: string, sourceMapConsumer: SourceMapConsumer, relativePath?: string): SourceNode; + add(chunk: string): void; + prepend(chunk: string): void; + setSourceContent(sourceFile: string, sourceContent: string): void; + walk(fn: (chunk: string, mapping: MappedPosition) => void): void; + walkSourceContents(fn: (file: string, content: string) => void): void; + join(sep: string): SourceNode; + replaceRight(pattern: string, replacement: string): SourceNode; + toString(): string; + toStringWithSourceMap(startOfSourceMap?: StartOfSourceMap): CodeWithSourceMap; } diff --git a/node_modules/terser/CHANGELOG.md b/node_modules/terser/CHANGELOG.md index 87255f5..02d999c 100644 --- a/node_modules/terser/CHANGELOG.md +++ b/node_modules/terser/CHANGELOG.md @@ -1,5 +1,36 @@ # Changelog +## v5.36.0 + + - Support import attributes `with` syntax + +## v5.35.0 + + - Ensure parent directory exists when using --output on CLI (#1530) + +## v5.34.1 + + - bump the rollup devDependency to disable CVE warnings (Terser was not affected) + +## v5.34.0 + + - internal: stop assigning properties to objects they don't belong in + - internal: run compress tests in parallel + - `drop_console`: emit an empty function if the return value of `console.METHOD(...)` may be called. + +## v5.33.0 + + - `reduce_vars` improved when dealing with hoisted function definitions (#1544) + +## v5.32.0 + + - `import("module")` can now be input and output from ESTree AST (#1557) + - `BigInt` literals can now be input and output from ESTree AST (#1555) + - `typeof` an object or array (`typeof {}` and `typeof []`) can now be statically evaluated. (#1546) + +## v5.31.6 + - Retain side effects in a `case` when the expression is a sequence (comma) expression + ## v5.31.5 - Revert v5.31.4, which created mysterious issues #1548, #1549 diff --git a/node_modules/terser/README.md b/node_modules/terser/README.md index 84541c8..e15c013 100644 --- a/node_modules/terser/README.md +++ b/node_modules/terser/README.md @@ -972,7 +972,7 @@ await minify(code, { mangle: { toplevel: true } }).code; - `false` -- `obj["prop"]` is mangled. - `true` -- `obj.prop` is mangled unless there is `obj["prop"]` elsewhere in the code. -- `nth_identifer` (default: an internal mangler that weights based on character +- `nth_identifier` (default: an internal mangler that weights based on character frequency analysis) -- Pass an object with a `get(n)` function that converts an ordinal into the nth most favored (usually shortest) identifier. Optionally also provide `reset()`, `sort()`, and `consider(chars, delta)` to diff --git a/node_modules/terser/dist/bundle.min.js b/node_modules/terser/dist/bundle.min.js index dc05299..3fc0a5a 100644 --- a/node_modules/terser/dist/bundle.min.js +++ b/node_modules/terser/dist/bundle.min.js @@ -2871,8 +2871,11 @@ function parse($TEXT, options) { return new AST_ClassStaticBlock({ start, body, end: prev() }); } - function maybe_import_assertion() { - if (is("name", "assert") && !has_newline_before(S.token)) { + function maybe_import_attributes() { + if ( + (is("keyword", "with") || is("name", "assert")) + && !has_newline_before(S.token) + ) { next(); return object_or_destructuring_(); } @@ -2903,7 +2906,7 @@ function parse($TEXT, options) { } next(); - const assert_clause = maybe_import_assertion(); + const attributes = maybe_import_attributes(); return new AST_Import({ start, @@ -2915,7 +2918,7 @@ function parse($TEXT, options) { quote: mod_str.quote, end: mod_str, }), - assert_clause, + attributes, end: S.token, }); } @@ -3048,7 +3051,7 @@ function parse($TEXT, options) { } next(); - const assert_clause = maybe_import_assertion(); + const attributes = maybe_import_attributes(); return new AST_Export({ start: start, @@ -3061,7 +3064,7 @@ function parse($TEXT, options) { end: mod_str, }), end: prev(), - assert_clause + attributes }); } else { return new AST_Export({ @@ -3107,7 +3110,7 @@ function parse($TEXT, options) { exported_value: exported_value, exported_definition: exported_definition, end: prev(), - assert_clause: null + attributes: null }); } @@ -5097,13 +5100,13 @@ var AST_NameMapping = DEFNODE("NameMapping", "foreign_name name", function AST_N var AST_Import = DEFNODE( "Import", - "imported_name imported_names module_name assert_clause", + "imported_name imported_names module_name attributes", function AST_Import(props) { if (props) { this.imported_name = props.imported_name; this.imported_names = props.imported_names; this.module_name = props.module_name; - this.assert_clause = props.assert_clause; + this.attributes = props.attributes; this.start = props.start; this.end = props.end; } @@ -5116,7 +5119,7 @@ var AST_Import = DEFNODE( imported_name: "[AST_SymbolImport] The name of the variable holding the module's default export.", imported_names: "[AST_NameMapping*] The names of non-default imported variables", module_name: "[AST_String] String literal describing where this module came from", - assert_clause: "[AST_Object?] The import assertion" + attributes: "[AST_Object?] The import attributes (with {...})" }, _walk: function(visitor) { return visitor._visit(this, function() { @@ -5155,7 +5158,7 @@ var AST_ImportMeta = DEFNODE("ImportMeta", null, function AST_ImportMeta(props) var AST_Export = DEFNODE( "Export", - "exported_definition exported_value is_default exported_names module_name assert_clause", + "exported_definition exported_value is_default exported_names module_name attributes", function AST_Export(props) { if (props) { this.exported_definition = props.exported_definition; @@ -5163,7 +5166,7 @@ var AST_Export = DEFNODE( this.is_default = props.is_default; this.exported_names = props.exported_names; this.module_name = props.module_name; - this.assert_clause = props.assert_clause; + this.attributes = props.attributes; this.start = props.start; this.end = props.end; } @@ -5178,7 +5181,7 @@ var AST_Export = DEFNODE( exported_names: "[AST_NameMapping*?] List of exported names", module_name: "[AST_String?] Name of the file to load exports from", is_default: "[Boolean] Whether this is the default exported value of this module", - assert_clause: "[AST_Object?] The import assertion" + attributes: "[AST_Object?] The import attributes" }, _walk: function (visitor) { return visitor._visit(this, function () { @@ -7157,23 +7160,23 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { return body; }; - const assert_clause_from_moz = (assertions) => { - if (assertions && assertions.length > 0) { + function import_attributes_from_moz(attributes) { + if (attributes && attributes.length > 0) { return new AST_Object({ - start: my_start_token(assertions), - end: my_end_token(assertions), - properties: assertions.map((assertion_kv) => + start: my_start_token(attributes), + end: my_end_token(attributes), + properties: attributes.map((attr) => new AST_ObjectKeyVal({ - start: my_start_token(assertion_kv), - end: my_end_token(assertion_kv), - key: assertion_kv.key.name || assertion_kv.key.value, - value: from_moz(assertion_kv.value) + start: my_start_token(attr), + end: my_end_token(attr), + key: attr.key.name || attr.key.value, + value: from_moz(attr.value) }) ) }); } return null; - }; + } var MOZ_TO_ME = { Program: function(M) { @@ -7545,7 +7548,7 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { imported_name: imported_name, imported_names : imported_names, module_name : from_moz(M.source), - assert_clause: assert_clause_from_moz(M.assertions) + attributes: import_attributes_from_moz(M.attributes || M.assertions) }); }, @@ -7571,6 +7574,23 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { }); }, + ImportExpression: function(M) { + const args = [from_moz(M.source)]; + if (M.options) { + args.push(from_moz(M.options)); + } + return new AST_Call({ + start: my_start_token(M), + end: my_end_token(M), + expression: from_moz({ + type: "Identifier", + name: "import" + }), + optional: false, + args + }); + }, + ExportAllDeclaration: function(M) { var foreign_name = M.exported == null ? new AST_SymbolExportForeign({ name: "*" }) : @@ -7585,7 +7605,7 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { }) ], module_name: from_moz(M.source), - assert_clause: assert_clause_from_moz(M.assertions) + attributes: import_attributes_from_moz(M.attributes || M.assertions) }); }, @@ -7596,7 +7616,7 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { exported_definition: from_moz(M.declaration), exported_names: M.specifiers && M.specifiers.length ? M.specifiers.map(from_moz) : null, module_name: from_moz(M.source), - assert_clause: assert_clause_from_moz(M.assertions) + attributes: import_attributes_from_moz(M.attributes || M.assertions) }); }, @@ -7638,6 +7658,11 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { args.value = { source, flags }; return new AST_RegExp(args); } + const bi = typeof M.value === "bigint" ? M.value.toString() : M.bigint; + if (typeof bi === "string") { + args.value = bi; + return new AST_BigInt(args); + } if (val === null) return new AST_Null(args); switch (typeof val) { case "string": @@ -7705,14 +7730,6 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { }); }, - BigIntLiteral(M) { - return new AST_BigInt({ - start : my_start_token(M), - end : my_end_token(M), - value : M.value - }); - }, - EmptyStatement: function(M) { return new AST_EmptyStatement({ start: my_start_token(M), @@ -8185,6 +8202,15 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { }; }); def_to_moz(AST_Call, function To_Moz_CallExpression(M) { + if (M.expression instanceof AST_SymbolRef && M.expression.name === "import") { + const [source, options] = M.args.map(to_moz); + return { + type: "ImportExpression", + source, + options + }; + } + return { type: "CallExpression", callee: to_moz(M.expression), @@ -8342,22 +8368,22 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { }; }); - const assert_clause_to_moz = assert_clause => { - const assertions = []; - if (assert_clause) { - for (const { key, value } of assert_clause.properties) { + function import_attributes_to_moz(attribute) { + const import_attributes = []; + if (attribute) { + for (const { key, value } of attribute.properties) { const key_moz = is_basic_identifier_string(key) ? { type: "Identifier", name: key } : { type: "Literal", value: key, raw: JSON.stringify(key) }; - assertions.push({ + import_attributes.push({ type: "ImportAttribute", key: key_moz, value: to_moz(value) }); } } - return assertions; - }; + return import_attributes; + } def_to_moz(AST_Export, function To_Moz_ExportDeclaration(M) { if (M.exported_names) { @@ -8372,7 +8398,7 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { type: "ExportAllDeclaration", source: to_moz(M.module_name), exported: exported, - assertions: assert_clause_to_moz(M.assert_clause) + attributes: import_attributes_to_moz(M.attributes) }; } return { @@ -8386,7 +8412,7 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { }), declaration: to_moz(M.exported_definition), source: to_moz(M.module_name), - assertions: assert_clause_to_moz(M.assert_clause) + attributes: import_attributes_to_moz(M.attributes) }; } return { @@ -8424,7 +8450,7 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { type: "ImportDeclaration", specifiers: specifiers, source: to_moz(M.module_name), - assertions: assert_clause_to_moz(M.assert_clause) + attributes: import_attributes_to_moz(M.attributes) }; }); @@ -8730,8 +8756,13 @@ def_transform(AST_PrefixedTemplateString, function(self, tw) { }); def_to_moz(AST_BigInt, M => ({ - type: "BigIntLiteral", - value: M.value + type: "Literal", + // value cannot be represented natively + // see: https://github.com/estree/estree/blob/master/es2020.md#bigintliteral + value: null, + // `M.value` is a string that may be a hex number representation. + // but "bigint" property should have only decimal digits + bigint: typeof BigInt === "function" ? BigInt(M.value).toString() : M.value, })); AST_Boolean.DEFMETHOD("to_mozilla_ast", AST_Constant.prototype.to_mozilla_ast); @@ -10567,9 +10598,9 @@ function OutputStream(options) { output.space(); } self.module_name.print(output); - if (self.assert_clause) { - output.print("assert"); - self.assert_clause.print(output); + if (self.attributes) { + output.print("with"); + self.attributes.print(output); } output.semicolon(); }); @@ -10663,9 +10694,9 @@ function OutputStream(options) { output.space(); self.module_name.print(output); } - if (self.assert_clause) { - output.print("assert"); - self.assert_clause.print(output); + if (self.attributes) { + output.print("with"); + self.attributes.print(output); } if (self.exported_value && !(self.exported_value instanceof AST_Defun || @@ -11651,7 +11682,7 @@ function redefined_catch_def(def) { } } -AST_Scope.DEFMETHOD("figure_out_scope", function(options, { parent_scope = null, toplevel = this } = {}) { +AST_Scope.DEFMETHOD("figure_out_scope", function(options, { parent_scope = undefined, toplevel = this } = {}) { options = defaults(options, { cache: null, ie8: false, @@ -11975,7 +12006,7 @@ AST_Scope.DEFMETHOD("add_child_scope", function (scope) { scope.parent_scope = this; // Propagate to this.uses_arguments from arrow functions - if ((scope instanceof AST_Arrow) && !this.uses_arguments) { + if ((scope instanceof AST_Arrow) && (this instanceof AST_Lambda && !this.uses_arguments)) { this.uses_arguments = walk(scope, node => { if ( node instanceof AST_SymbolRef @@ -13042,6 +13073,23 @@ function make_sequence(orig, expressions) { }); } +function make_empty_function(self) { + return make_node(AST_Function, self, { + uses_arguments: false, + argnames: [], + body: [], + is_generator: false, + async: false, + variables: new Map(), + uses_with: false, + uses_eval: false, + parent_scope: null, + enclosed: [], + cname: 0, + block_scope: undefined, + }); +} + function make_node_from_constant(val, orig) { switch (typeof val) { case "string": @@ -13268,9 +13316,9 @@ function is_reachable(scope_node, defs) { } /** Check if a ref refers to the name of a function/class it's defined within */ -function is_recursive_ref(compressor, def) { +function is_recursive_ref(tw, def) { var node; - for (var i = 0; node = compressor.parent(i); i++) { + for (var i = 0; node = tw.parent(i); i++) { if (node instanceof AST_Lambda || node instanceof AST_Class) { var name = node.name; if (name && name.definition() === def) { @@ -13836,7 +13884,7 @@ function is_nullish(node, compressor) { return any(this.definitions, compressor); }); def_has_side_effects(AST_VarDef, function() { - return this.value; + return this.value != null; }); def_has_side_effects(AST_TemplateSegment, return_false); def_has_side_effects(AST_TemplateString, function(compressor) { @@ -14395,6 +14443,54 @@ function is_modified(compressor, tw, node, value, level, immutable) { } } +/** + * Check if a node may be used by the expression it's in + * void (0, 1, {node}, 2) -> false + * console.log(0, {node}) -> true + */ +function is_used_in_expression(tw) { + for (let p = -1, node, parent; node = tw.parent(p), parent = tw.parent(p + 1); p++) { + if (parent instanceof AST_Sequence) { + const nth_expression = parent.expressions.indexOf(node); + if (nth_expression !== parent.expressions.length - 1) { + // Detect (0, x.noThis)() constructs + const grandparent = tw.parent(p + 2); + if ( + parent.expressions.length > 2 + || parent.expressions.length === 1 + || !requires_sequence_to_maintain_binding(grandparent, parent, parent.expressions[1]) + ) { + return false; + } + return true; + } else { + continue; + } + } + if (parent instanceof AST_Unary) { + const op = parent.operator; + if (op === "void") { + return false; + } + if (op === "typeof" || op === "+" || op === "-" || op === "!" || op === "~") { + continue; + } + } + if ( + parent instanceof AST_SimpleStatement + || parent instanceof AST_LabeledStatement + ) { + return false; + } + if (parent instanceof AST_Scope) { + return false; + } + return true; + } + + return true; +} + /*********************************************************************** A JavaScript tokenizer / parser / beautifier / compressor. @@ -14579,14 +14675,25 @@ def_eval(AST_Object, function (compressor, depth) { var non_converting_unary = makePredicate("! typeof void"); def_eval(AST_UnaryPrefix, function (compressor, depth) { var e = this.expression; - // Function would be evaluated to an array and so typeof would - // incorrectly return 'object'. Hence making is a special case. if (compressor.option("typeofs") - && this.operator == "typeof" - && (e instanceof AST_Lambda + && this.operator == "typeof") { + // Function would be evaluated to an array and so typeof would + // incorrectly return 'object'. Hence making is a special case. + if (e instanceof AST_Lambda || e instanceof AST_SymbolRef - && e.fixed_value() instanceof AST_Lambda)) { - return typeof function () { }; + && e.fixed_value() instanceof AST_Lambda) { + return typeof function () { }; + } + if ( + (e instanceof AST_Object + || e instanceof AST_Array + || (e instanceof AST_SymbolRef + && (e.fixed_value() instanceof AST_Object + || e.fixed_value() instanceof AST_Array))) + && !e.has_side_effects(compressor) + ) { + return typeof {}; + } } if (!non_converting_unary.has(this.operator)) depth++; @@ -15638,45 +15745,6 @@ AST_Scope.DEFMETHOD("drop_unused", function(compressor) { } }); -/** - * Check if a node may be used by the expression it's in - * void (0, 1, {node}, 2) -> false - * console.log(0, {node}) -> true - */ -function is_used_in_expression(tw) { - for (let p = -1, node, parent; node = tw.parent(p), parent = tw.parent(p + 1); p++) { - if (parent instanceof AST_Sequence) { - const nth_expression = parent.expressions.indexOf(node); - if (nth_expression !== parent.expressions.length - 1) { - // Detect (0, x.noThis)() constructs - const grandparent = tw.parent(p + 2); - if ( - parent.expressions.length > 2 - || parent.expressions.length === 1 - || !requires_sequence_to_maintain_binding(grandparent, parent, parent.expressions[1]) - ) { - return false; - } - return true; - } else { - continue; - } - } - if (parent instanceof AST_Unary) { - const op = parent.operator; - if (op === "void") { - return false; - } - if (op === "typeof" || op === "+" || op === "-" || op === "!" || op === "~") { - continue; - } - } - return true; - } - - return true; -} - /*********************************************************************** A JavaScript tokenizer / parser / beautifier / compressor. @@ -16113,28 +16181,50 @@ function mark_lambda(tw, descend, compressor) { * // use defined_after * } * - * This function is called on the parent to handle this issue. + * Or even indirectly: + * + * B(); + * var defined_after = true; + * function A() { + * // use defined_after + * } + * function B() { + * A(); + * } + * + * Access a variable before declaration will either throw a ReferenceError + * (if the variable is declared with `let` or `const`), + * or get an `undefined` (if the variable is declared with `var`). + * + * If the variable is inlined into the function, the behavior will change. + * + * This function is called on the parent to disallow inlining of such variables, */ function handle_defined_after_hoist(parent) { const defuns = []; walk(parent, node => { if (node === parent) return; - if (node instanceof AST_Defun) defuns.push(node); + if (node instanceof AST_Defun) { + defuns.push(node); + return true; + } if ( node instanceof AST_Scope || node instanceof AST_SimpleStatement ) return true; }); + // `defun` id to array of `defun` it uses + const defun_dependencies_map = new Map(); + // `defun` id to array of enclosing `def` that are used by the function + const dependencies_map = new Map(); + // all symbol ids that will be tracked for read/write const symbols_of_interest = new Set(); const defuns_of_interest = new Set(); - const potential_conflicts = []; for (const defun of defuns) { const fname_def = defun.name.definition(); - const found_self_ref_in_other_defuns = defuns.some( - d => d !== defun && d.enclosed.indexOf(fname_def) !== -1 - ); + const enclosing_defs = []; for (const def of defun.enclosed) { if ( @@ -16145,93 +16235,107 @@ function handle_defined_after_hoist(parent) { continue; } - // defun is hoisted, so always safe + symbols_of_interest.add(def.id); + + // found a reference to another function if ( def.assignments === 0 && def.orig.length === 1 && def.orig[0] instanceof AST_SymbolDefun ) { + defuns_of_interest.add(def.id); + symbols_of_interest.add(def.id); + + defuns_of_interest.add(fname_def.id); + symbols_of_interest.add(fname_def.id); + + if (!defun_dependencies_map.has(fname_def.id)) { + defun_dependencies_map.set(fname_def.id, []); + } + defun_dependencies_map.get(fname_def.id).push(def.id); + continue; } - if (found_self_ref_in_other_defuns) { - def.fixed = false; - continue; - } + enclosing_defs.push(def); + } - // for the slower checks below this loop - potential_conflicts.push({ defun, def, fname_def }); - symbols_of_interest.add(def.id); + if (enclosing_defs.length) { + dependencies_map.set(fname_def.id, enclosing_defs); + defuns_of_interest.add(fname_def.id); symbols_of_interest.add(fname_def.id); - defuns_of_interest.add(defun); } } - // linearize all symbols, and locate defs that are read after the defun - if (potential_conflicts.length) { - // All "symbols of interest", that is, defuns or defs, that we found. - // These are placed in order so we can check which is after which. - const found_symbols = []; - // Indices of `found_symbols` which are writes - const found_symbol_writes = new Set(); - // Defun ranges are recorded because we don't care if a function uses the def internally - const defun_ranges = new Map(); + // No defuns use outside constants + if (!dependencies_map.size) { + return; + } - let tw; - parent.walk((tw = new TreeWalker((node, descend) => { - if (node instanceof AST_Defun && defuns_of_interest.has(node)) { - const start = found_symbols.length; - descend(); - const end = found_symbols.length; + // Increment to count "symbols of interest" (defuns or defs) that we found. + // These are tracked in AST order so we can check which is after which. + let symbol_index = 1; + // Map a defun ID to its first read (a `symbol_index`) + const defun_first_read_map = new Map(); + // Map a symbol ID to its last write (a `symbol_index`) + const symbol_last_write_map = new Map(); - defun_ranges.set(node, { start, end }); - return true; - } - // if we found a defun on the list, mark IN_DEFUN=id and descend + walk_parent(parent, (node, walk_info) => { + if (node instanceof AST_Symbol && node.thedef) { + const id = node.definition().id; - if (node instanceof AST_Symbol && node.thedef) { - const id = node.definition().id; - if (symbols_of_interest.has(id)) { - if (node instanceof AST_SymbolDeclaration || is_lhs(node, tw)) { - found_symbol_writes.add(found_symbols.length); - } - found_symbols.push(id); + symbol_index++; + + // Track last-writes to symbols + if (symbols_of_interest.has(id)) { + if (node instanceof AST_SymbolDeclaration || is_lhs(node, walk_info.parent())) { + symbol_last_write_map.set(id, symbol_index); } } - }))); - for (const { def, defun, fname_def } of potential_conflicts) { - const defun_range = defun_ranges.get(defun); - - // find the index in `found_symbols`, with some special rules: - const find = (sym_id, starting_at = 0, must_be_write = false) => { - let index = starting_at; - - for (;;) { - index = found_symbols.indexOf(sym_id, index); - - if (index === -1) { - break; - } else if (index >= defun_range.start && index < defun_range.end) { - index = defun_range.end; - continue; - } else if (must_be_write && !found_symbol_writes.has(index)) { - index++; - continue; - } else { - break; - } + // Track first-reads of defuns (refined later) + if (defuns_of_interest.has(id)) { + if (!defun_first_read_map.has(id) && !is_recursive_ref(walk_info, id)) { + defun_first_read_map.set(id, symbol_index); } + } + } + }); - return index; - }; + // Refine `defun_first_read_map` to be as high as possible + for (const [defun, defun_first_read] of defun_first_read_map) { + // Update all depdencies of `defun` + const queue = new Set(defun_dependencies_map.get(defun)); + for (const enclosed_defun of queue) { + let enclosed_defun_first_read = defun_first_read_map.get(enclosed_defun); + if (enclosed_defun_first_read != null && enclosed_defun_first_read < defun_first_read) { + continue; + } - const read_defun_at = find(fname_def.id); - const wrote_def_at = find(def.id, read_defun_at + 1, true); + defun_first_read_map.set(enclosed_defun, defun_first_read); - const wrote_def_after_reading_defun = read_defun_at != -1 && wrote_def_at != -1 && wrote_def_at > read_defun_at; + for (const enclosed_enclosed_defun of defun_dependencies_map.get(enclosed_defun) || []) { + queue.add(enclosed_enclosed_defun); + } + } + } - if (wrote_def_after_reading_defun) { + // ensure write-then-read order, otherwise clear `fixed` + // This is safe because last-writes (found_symbol_writes) are assumed to be as late as possible, and first-reads (defun_first_read_map) are assumed to be as early as possible. + for (const [defun, defs] of dependencies_map) { + const defun_first_read = defun_first_read_map.get(defun); + if (defun_first_read === undefined) { + continue; + } + + for (const def of defs) { + if (def.fixed === false) { + continue; + } + + let def_last_write = symbol_last_write_map.get(def.id) || 0; + + if (defun_first_read < def_last_write) { def.fixed = false; } } @@ -18865,9 +18969,8 @@ def_optimize(AST_Node, function(self) { }); AST_Toplevel.DEFMETHOD("drop_console", function(options) { - var isArray = Array.isArray(options); - - return this.transform(new TreeTransformer(function(self) { + const isArray = Array.isArray(options); + const tt = new TreeTransformer(function(self) { if (self.TYPE !== "Call") { return; } @@ -18878,18 +18981,35 @@ AST_Toplevel.DEFMETHOD("drop_console", function(options) { return; } - if (isArray && options.indexOf(exp.property) === -1) { + if (isArray && !options.includes(exp.property)) { return; } var name = exp.expression; + var depth = 2; while (name.expression) { name = name.expression; + depth++; } + if (is_undeclared_ref(name) && name.name == "console") { - return make_node(AST_Undefined, self); + if ( + depth === 3 + && !["call", "apply"].includes(exp.property) + && is_used_in_expression(tt) + ) { + // a (used) call to Function.prototype methods (eg: console.log.bind(console)) + // but not .call and .apply which would also return undefined. + exp.expression = make_empty_function(self); + set_flag(exp.expression, SQUEEZED); + self.args = []; + } else { + return make_node(AST_Undefined, self); + } } - })); + }); + + return this.transform(tt); }); AST_Node.DEFMETHOD("equivalent_to", function(node) { @@ -19588,7 +19708,9 @@ def_optimize(AST_Switch, function(self, compressor) { eliminate_branch(branch, body[body.length - 1]); continue; } - if (exp instanceof AST_Node) exp = branch.expression.tail_node().evaluate(compressor); + if (exp instanceof AST_Node && !exp.has_side_effects(compressor)) { + exp = branch.expression.tail_node().evaluate(compressor); + } if (exp === value) { exact_match = branch; if (default_branch) { @@ -19770,12 +19892,9 @@ def_optimize(AST_Switch, function(self, compressor) { break DEFAULT; } - let sideEffect = body.find(branch => { - return ( - branch !== default_or_exact - && branch.expression.has_side_effects(compressor) - ); - }); + let sideEffect = body.find( + branch => branch !== default_or_exact && branch.expression.has_side_effects(compressor) + ); // If no cases cause a side-effect, we can eliminate the switch entirely. if (!sideEffect) { return make_node(AST_BlockStatement, self, { @@ -19883,9 +20002,10 @@ def_optimize(AST_Switch, function(self, compressor) { right: branch.expression, }), body: consequent, - alternative: null - }) - ].concat(always) + alternative: null, + }), + always, + ], }).optimize(compressor); } return self; @@ -19908,13 +20028,12 @@ def_optimize(AST_Switch, function(self, compressor) { let pblock = make_node(AST_BlockStatement, prev, { body: pbody }); return bblock.equivalent_to(pblock); } - function statement(expression) { - return make_node(AST_SimpleStatement, expression, { - body: expression - }); + function statement(body) { + return make_node(AST_SimpleStatement, body, { body }); } function has_nested_break(root) { let has_break = false; + let tw = new TreeWalker(node => { if (has_break) return true; if (node instanceof AST_Lambda) return true; @@ -20267,10 +20386,7 @@ def_optimize(AST_Call, function(self, compressor) { && is_undeclared_ref(exp) && exp.name == "Function") { // new Function() => function(){} - if (self.args.length == 0) return make_node(AST_Function, self, { - argnames: [], - body: [] - }).optimize(compressor); + if (self.args.length == 0) return make_empty_function(self).optimize(compressor); if (self.args.every((x) => x instanceof AST_String)) { // quite a corner-case, but we can handle it: // https://github.com/mishoo/UglifyJS2/issues/203 @@ -22030,10 +22146,7 @@ def_optimize(AST_Dot, function(self, compressor) { }); break; case "Function": - self.expression = make_node(AST_Function, self.expression, { - argnames: [], - body: [] - }); + self.expression = make_empty_function(self.expression); break; case "Number": self.expression = make_node(AST_Number, self.expression, { @@ -31578,7 +31691,9 @@ function mangle_properties(ast, options, annotated_props = find_annotated_props( } else if (node instanceof AST_ObjectProperty) { // setter, getter, method or class field if (!keep_quoted || !node.quote) { - node.key.name = mangle(node.key.name); + if (!node.computed_key()) { + node.key.name = mangle(node.key.name); + } } } else if (node instanceof AST_Dot) { if (!keep_quoted || !node.quote) { @@ -31955,7 +32070,7 @@ function* minify_sync_or_async(files, options, _fs_module) { if (node.block_scope) { node.block_scope.variables = undefined; node.block_scope.enclosed = undefined; - node.parent_scope = undefined; + node.block_scope.parent_scope = undefined; } }); } @@ -32348,6 +32463,7 @@ async function run_cli({ program, packageJson, fs, path }) { return; } } else if (program.output) { + fs.mkdirSync(path.dirname(program.output), { recursive: true }); fs.writeFileSync(program.output, result.code); if (options.sourceMap && options.sourceMap.url !== "inline" && result.map) { fs.writeFileSync(program.output + ".map", result.map); diff --git a/node_modules/terser/lib/ast.js b/node_modules/terser/lib/ast.js index 9f6ff9a..278326c 100644 --- a/node_modules/terser/lib/ast.js +++ b/node_modules/terser/lib/ast.js @@ -1481,13 +1481,13 @@ var AST_NameMapping = DEFNODE("NameMapping", "foreign_name name", function AST_N var AST_Import = DEFNODE( "Import", - "imported_name imported_names module_name assert_clause", + "imported_name imported_names module_name attributes", function AST_Import(props) { if (props) { this.imported_name = props.imported_name; this.imported_names = props.imported_names; this.module_name = props.module_name; - this.assert_clause = props.assert_clause; + this.attributes = props.attributes; this.start = props.start; this.end = props.end; } @@ -1500,7 +1500,7 @@ var AST_Import = DEFNODE( imported_name: "[AST_SymbolImport] The name of the variable holding the module's default export.", imported_names: "[AST_NameMapping*] The names of non-default imported variables", module_name: "[AST_String] String literal describing where this module came from", - assert_clause: "[AST_Object?] The import assertion" + attributes: "[AST_Object?] The import attributes (with {...})" }, _walk: function(visitor) { return visitor._visit(this, function() { @@ -1539,7 +1539,7 @@ var AST_ImportMeta = DEFNODE("ImportMeta", null, function AST_ImportMeta(props) var AST_Export = DEFNODE( "Export", - "exported_definition exported_value is_default exported_names module_name assert_clause", + "exported_definition exported_value is_default exported_names module_name attributes", function AST_Export(props) { if (props) { this.exported_definition = props.exported_definition; @@ -1547,7 +1547,7 @@ var AST_Export = DEFNODE( this.is_default = props.is_default; this.exported_names = props.exported_names; this.module_name = props.module_name; - this.assert_clause = props.assert_clause; + this.attributes = props.attributes; this.start = props.start; this.end = props.end; } @@ -1562,7 +1562,7 @@ var AST_Export = DEFNODE( exported_names: "[AST_NameMapping*?] List of exported names", module_name: "[AST_String?] Name of the file to load exports from", is_default: "[Boolean] Whether this is the default exported value of this module", - assert_clause: "[AST_Object?] The import assertion" + attributes: "[AST_Object?] The import attributes" }, _walk: function (visitor) { return visitor._visit(this, function () { diff --git a/node_modules/terser/lib/cli.js b/node_modules/terser/lib/cli.js index 1ec2cc4..18f029f 100644 --- a/node_modules/terser/lib/cli.js +++ b/node_modules/terser/lib/cli.js @@ -307,6 +307,7 @@ export async function run_cli({ program, packageJson, fs, path }) { return; } } else if (program.output) { + fs.mkdirSync(path.dirname(program.output), { recursive: true }); fs.writeFileSync(program.output, result.code); if (options.sourceMap && options.sourceMap.url !== "inline" && result.map) { fs.writeFileSync(program.output + ".map", result.map); diff --git a/node_modules/terser/lib/compress/common.js b/node_modules/terser/lib/compress/common.js index a5c7af5..fab91a4 100644 --- a/node_modules/terser/lib/compress/common.js +++ b/node_modules/terser/lib/compress/common.js @@ -107,6 +107,23 @@ export function make_sequence(orig, expressions) { }); } +export function make_empty_function(self) { + return make_node(AST_Function, self, { + uses_arguments: false, + argnames: [], + body: [], + is_generator: false, + async: false, + variables: new Map(), + uses_with: false, + uses_eval: false, + parent_scope: null, + enclosed: [], + cname: 0, + block_scope: undefined, + }); +} + export function make_node_from_constant(val, orig) { switch (typeof val) { case "string": @@ -333,9 +350,9 @@ export function is_reachable(scope_node, defs) { } /** Check if a ref refers to the name of a function/class it's defined within */ -export function is_recursive_ref(compressor, def) { +export function is_recursive_ref(tw, def) { var node; - for (var i = 0; node = compressor.parent(i); i++) { + for (var i = 0; node = tw.parent(i); i++) { if (node instanceof AST_Lambda || node instanceof AST_Class) { var name = node.name; if (name && name.definition() === def) { diff --git a/node_modules/terser/lib/compress/drop-unused.js b/node_modules/terser/lib/compress/drop-unused.js index 9d9555d..47a6f28 100644 --- a/node_modules/terser/lib/compress/drop-unused.js +++ b/node_modules/terser/lib/compress/drop-unused.js @@ -103,8 +103,8 @@ import { is_empty, is_ref_of, can_be_evicted_from_block, - requires_sequence_to_maintain_binding, } from "./common.js"; +import { is_used_in_expression } from "./inference.js"; const r_keep_assign = /keep_assign/; @@ -503,42 +503,3 @@ AST_Scope.DEFMETHOD("drop_unused", function(compressor) { } } }); - -/** - * Check if a node may be used by the expression it's in - * void (0, 1, {node}, 2) -> false - * console.log(0, {node}) -> true - */ -function is_used_in_expression(tw) { - for (let p = -1, node, parent; node = tw.parent(p), parent = tw.parent(p + 1); p++) { - if (parent instanceof AST_Sequence) { - const nth_expression = parent.expressions.indexOf(node); - if (nth_expression !== parent.expressions.length - 1) { - // Detect (0, x.noThis)() constructs - const grandparent = tw.parent(p + 2); - if ( - parent.expressions.length > 2 - || parent.expressions.length === 1 - || !requires_sequence_to_maintain_binding(grandparent, parent, parent.expressions[1]) - ) { - return false; - } - return true; - } else { - continue; - } - } - if (parent instanceof AST_Unary) { - const op = parent.operator; - if (op === "void") { - return false; - } - if (op === "typeof" || op === "+" || op === "-" || op === "!" || op === "~") { - continue; - } - } - return true; - } - - return true; -} diff --git a/node_modules/terser/lib/compress/evaluate.js b/node_modules/terser/lib/compress/evaluate.js index 70b197c..dcadce4 100644 --- a/node_modules/terser/lib/compress/evaluate.js +++ b/node_modules/terser/lib/compress/evaluate.js @@ -218,14 +218,25 @@ def_eval(AST_Object, function (compressor, depth) { var non_converting_unary = makePredicate("! typeof void"); def_eval(AST_UnaryPrefix, function (compressor, depth) { var e = this.expression; - // Function would be evaluated to an array and so typeof would - // incorrectly return 'object'. Hence making is a special case. if (compressor.option("typeofs") - && this.operator == "typeof" - && (e instanceof AST_Lambda + && this.operator == "typeof") { + // Function would be evaluated to an array and so typeof would + // incorrectly return 'object'. Hence making is a special case. + if (e instanceof AST_Lambda || e instanceof AST_SymbolRef - && e.fixed_value() instanceof AST_Lambda)) { - return typeof function () { }; + && e.fixed_value() instanceof AST_Lambda) { + return typeof function () { }; + } + if ( + (e instanceof AST_Object + || e instanceof AST_Array + || (e instanceof AST_SymbolRef + && (e.fixed_value() instanceof AST_Object + || e.fixed_value() instanceof AST_Array))) + && !e.has_side_effects(compressor) + ) { + return typeof {}; + } } if (!non_converting_unary.has(this.operator)) depth++; diff --git a/node_modules/terser/lib/compress/index.js b/node_modules/terser/lib/compress/index.js index d330748..efa46f6 100644 --- a/node_modules/terser/lib/compress/index.js +++ b/node_modules/terser/lib/compress/index.js @@ -176,6 +176,7 @@ import { is_undefined, is_lhs, aborts, + is_used_in_expression, } from "./inference.js"; import { SQUEEZED, @@ -195,6 +196,7 @@ import { make_sequence, best_of, best_of_expression, + make_empty_function, make_node_from_constant, merge_sequence, get_simple_key, @@ -510,9 +512,8 @@ def_optimize(AST_Node, function(self) { }); AST_Toplevel.DEFMETHOD("drop_console", function(options) { - var isArray = Array.isArray(options); - - return this.transform(new TreeTransformer(function(self) { + const isArray = Array.isArray(options); + const tt = new TreeTransformer(function(self) { if (self.TYPE !== "Call") { return; } @@ -523,18 +524,35 @@ AST_Toplevel.DEFMETHOD("drop_console", function(options) { return; } - if (isArray && options.indexOf(exp.property) === -1) { + if (isArray && !options.includes(exp.property)) { return; } var name = exp.expression; + var depth = 2; while (name.expression) { name = name.expression; + depth++; } + if (is_undeclared_ref(name) && name.name == "console") { - return make_node(AST_Undefined, self); + if ( + depth === 3 + && !["call", "apply"].includes(exp.property) + && is_used_in_expression(tt) + ) { + // a (used) call to Function.prototype methods (eg: console.log.bind(console)) + // but not .call and .apply which would also return undefined. + exp.expression = make_empty_function(self); + set_flag(exp.expression, SQUEEZED); + self.args = []; + } else { + return make_node(AST_Undefined, self); + } } - })); + }); + + return this.transform(tt); }); AST_Node.DEFMETHOD("equivalent_to", function(node) { @@ -1233,7 +1251,9 @@ def_optimize(AST_Switch, function(self, compressor) { eliminate_branch(branch, body[body.length - 1]); continue; } - if (exp instanceof AST_Node) exp = branch.expression.tail_node().evaluate(compressor); + if (exp instanceof AST_Node && !exp.has_side_effects(compressor)) { + exp = branch.expression.tail_node().evaluate(compressor); + } if (exp === value) { exact_match = branch; if (default_branch) { @@ -1415,12 +1435,9 @@ def_optimize(AST_Switch, function(self, compressor) { break DEFAULT; } - let sideEffect = body.find(branch => { - return ( - branch !== default_or_exact - && branch.expression.has_side_effects(compressor) - ); - }); + let sideEffect = body.find( + branch => branch !== default_or_exact && branch.expression.has_side_effects(compressor) + ); // If no cases cause a side-effect, we can eliminate the switch entirely. if (!sideEffect) { return make_node(AST_BlockStatement, self, { @@ -1528,9 +1545,10 @@ def_optimize(AST_Switch, function(self, compressor) { right: branch.expression, }), body: consequent, - alternative: null - }) - ].concat(always) + alternative: null, + }), + always, + ], }).optimize(compressor); } return self; @@ -1553,13 +1571,12 @@ def_optimize(AST_Switch, function(self, compressor) { let pblock = make_node(AST_BlockStatement, prev, { body: pbody }); return bblock.equivalent_to(pblock); } - function statement(expression) { - return make_node(AST_SimpleStatement, expression, { - body: expression - }); + function statement(body) { + return make_node(AST_SimpleStatement, body, { body }); } function has_nested_break(root) { let has_break = false; + let tw = new TreeWalker(node => { if (has_break) return true; if (node instanceof AST_Lambda) return true; @@ -1912,10 +1929,7 @@ def_optimize(AST_Call, function(self, compressor) { && is_undeclared_ref(exp) && exp.name == "Function") { // new Function() => function(){} - if (self.args.length == 0) return make_node(AST_Function, self, { - argnames: [], - body: [] - }).optimize(compressor); + if (self.args.length == 0) return make_empty_function(self).optimize(compressor); if (self.args.every((x) => x instanceof AST_String)) { // quite a corner-case, but we can handle it: // https://github.com/mishoo/UglifyJS2/issues/203 @@ -3675,10 +3689,7 @@ def_optimize(AST_Dot, function(self, compressor) { }); break; case "Function": - self.expression = make_node(AST_Function, self.expression, { - argnames: [], - body: [] - }); + self.expression = make_empty_function(self.expression); break; case "Number": self.expression = make_node(AST_Number, self.expression, { diff --git a/node_modules/terser/lib/compress/inference.js b/node_modules/terser/lib/compress/inference.js index ad43b28..21eb5b1 100644 --- a/node_modules/terser/lib/compress/inference.js +++ b/node_modules/terser/lib/compress/inference.js @@ -121,7 +121,7 @@ import { member, has_annotation, } from "../utils/index.js"; -import { make_sequence, best_of_expression, read_property } from "./common.js"; +import { make_sequence, best_of_expression, read_property, requires_sequence_to_maintain_binding } from "./common.js"; import { INLINED, UNDEFINED, has_flag } from "./compressor-flags.js"; import { pure_prop_access_globals, is_pure_native_fn, is_pure_native_method } from "./native-objects.js"; @@ -424,7 +424,7 @@ export function is_nullish(node, compressor) { return any(this.definitions, compressor); }); def_has_side_effects(AST_VarDef, function() { - return this.value; + return this.value != null; }); def_has_side_effects(AST_TemplateSegment, return_false); def_has_side_effects(AST_TemplateString, function(compressor) { @@ -982,3 +982,51 @@ export function is_modified(compressor, tw, node, value, level, immutable) { return !immutable && is_modified(compressor, tw, parent, prop, level + 1); } } + +/** + * Check if a node may be used by the expression it's in + * void (0, 1, {node}, 2) -> false + * console.log(0, {node}) -> true + */ +export function is_used_in_expression(tw) { + for (let p = -1, node, parent; node = tw.parent(p), parent = tw.parent(p + 1); p++) { + if (parent instanceof AST_Sequence) { + const nth_expression = parent.expressions.indexOf(node); + if (nth_expression !== parent.expressions.length - 1) { + // Detect (0, x.noThis)() constructs + const grandparent = tw.parent(p + 2); + if ( + parent.expressions.length > 2 + || parent.expressions.length === 1 + || !requires_sequence_to_maintain_binding(grandparent, parent, parent.expressions[1]) + ) { + return false; + } + return true; + } else { + continue; + } + } + if (parent instanceof AST_Unary) { + const op = parent.operator; + if (op === "void") { + return false; + } + if (op === "typeof" || op === "+" || op === "-" || op === "!" || op === "~") { + continue; + } + } + if ( + parent instanceof AST_SimpleStatement + || parent instanceof AST_LabeledStatement + ) { + return false; + } + if (parent instanceof AST_Scope) { + return false; + } + return true; + } + + return true; +} diff --git a/node_modules/terser/lib/compress/reduce-vars.js b/node_modules/terser/lib/compress/reduce-vars.js index 262df88..ec1dd60 100644 --- a/node_modules/terser/lib/compress/reduce-vars.js +++ b/node_modules/terser/lib/compress/reduce-vars.js @@ -94,8 +94,7 @@ import { walk, walk_body, - - TreeWalker, + walk_parent, } from "../ast.js"; import { HOP, make_node, noop } from "../utils/index.js"; @@ -496,28 +495,50 @@ function mark_lambda(tw, descend, compressor) { * // use defined_after * } * - * This function is called on the parent to handle this issue. + * Or even indirectly: + * + * B(); + * var defined_after = true; + * function A() { + * // use defined_after + * } + * function B() { + * A(); + * } + * + * Access a variable before declaration will either throw a ReferenceError + * (if the variable is declared with `let` or `const`), + * or get an `undefined` (if the variable is declared with `var`). + * + * If the variable is inlined into the function, the behavior will change. + * + * This function is called on the parent to disallow inlining of such variables, */ function handle_defined_after_hoist(parent) { const defuns = []; walk(parent, node => { if (node === parent) return; - if (node instanceof AST_Defun) defuns.push(node); + if (node instanceof AST_Defun) { + defuns.push(node); + return true; + } if ( node instanceof AST_Scope || node instanceof AST_SimpleStatement ) return true; }); + // `defun` id to array of `defun` it uses + const defun_dependencies_map = new Map(); + // `defun` id to array of enclosing `def` that are used by the function + const dependencies_map = new Map(); + // all symbol ids that will be tracked for read/write const symbols_of_interest = new Set(); const defuns_of_interest = new Set(); - const potential_conflicts = []; for (const defun of defuns) { const fname_def = defun.name.definition(); - const found_self_ref_in_other_defuns = defuns.some( - d => d !== defun && d.enclosed.indexOf(fname_def) !== -1 - ); + const enclosing_defs = []; for (const def of defun.enclosed) { if ( @@ -528,93 +549,107 @@ function handle_defined_after_hoist(parent) { continue; } - // defun is hoisted, so always safe + symbols_of_interest.add(def.id); + + // found a reference to another function if ( def.assignments === 0 && def.orig.length === 1 && def.orig[0] instanceof AST_SymbolDefun ) { + defuns_of_interest.add(def.id); + symbols_of_interest.add(def.id); + + defuns_of_interest.add(fname_def.id); + symbols_of_interest.add(fname_def.id); + + if (!defun_dependencies_map.has(fname_def.id)) { + defun_dependencies_map.set(fname_def.id, []); + } + defun_dependencies_map.get(fname_def.id).push(def.id); + continue; } - if (found_self_ref_in_other_defuns) { - def.fixed = false; - continue; - } + enclosing_defs.push(def); + } - // for the slower checks below this loop - potential_conflicts.push({ defun, def, fname_def }); - symbols_of_interest.add(def.id); + if (enclosing_defs.length) { + dependencies_map.set(fname_def.id, enclosing_defs); + defuns_of_interest.add(fname_def.id); symbols_of_interest.add(fname_def.id); - defuns_of_interest.add(defun); } } - // linearize all symbols, and locate defs that are read after the defun - if (potential_conflicts.length) { - // All "symbols of interest", that is, defuns or defs, that we found. - // These are placed in order so we can check which is after which. - const found_symbols = []; - // Indices of `found_symbols` which are writes - const found_symbol_writes = new Set(); - // Defun ranges are recorded because we don't care if a function uses the def internally - const defun_ranges = new Map(); + // No defuns use outside constants + if (!dependencies_map.size) { + return; + } - let tw; - parent.walk((tw = new TreeWalker((node, descend) => { - if (node instanceof AST_Defun && defuns_of_interest.has(node)) { - const start = found_symbols.length; - descend(); - const end = found_symbols.length; + // Increment to count "symbols of interest" (defuns or defs) that we found. + // These are tracked in AST order so we can check which is after which. + let symbol_index = 1; + // Map a defun ID to its first read (a `symbol_index`) + const defun_first_read_map = new Map(); + // Map a symbol ID to its last write (a `symbol_index`) + const symbol_last_write_map = new Map(); - defun_ranges.set(node, { start, end }); - return true; - } - // if we found a defun on the list, mark IN_DEFUN=id and descend + walk_parent(parent, (node, walk_info) => { + if (node instanceof AST_Symbol && node.thedef) { + const id = node.definition().id; - if (node instanceof AST_Symbol && node.thedef) { - const id = node.definition().id; - if (symbols_of_interest.has(id)) { - if (node instanceof AST_SymbolDeclaration || is_lhs(node, tw)) { - found_symbol_writes.add(found_symbols.length); - } - found_symbols.push(id); + symbol_index++; + + // Track last-writes to symbols + if (symbols_of_interest.has(id)) { + if (node instanceof AST_SymbolDeclaration || is_lhs(node, walk_info.parent())) { + symbol_last_write_map.set(id, symbol_index); } } - }))); - for (const { def, defun, fname_def } of potential_conflicts) { - const defun_range = defun_ranges.get(defun); - - // find the index in `found_symbols`, with some special rules: - const find = (sym_id, starting_at = 0, must_be_write = false) => { - let index = starting_at; - - for (;;) { - index = found_symbols.indexOf(sym_id, index); - - if (index === -1) { - break; - } else if (index >= defun_range.start && index < defun_range.end) { - index = defun_range.end; - continue; - } else if (must_be_write && !found_symbol_writes.has(index)) { - index++; - continue; - } else { - break; - } + // Track first-reads of defuns (refined later) + if (defuns_of_interest.has(id)) { + if (!defun_first_read_map.has(id) && !is_recursive_ref(walk_info, id)) { + defun_first_read_map.set(id, symbol_index); } + } + } + }); - return index; - }; + // Refine `defun_first_read_map` to be as high as possible + for (const [defun, defun_first_read] of defun_first_read_map) { + // Update all depdencies of `defun` + const queue = new Set(defun_dependencies_map.get(defun)); + for (const enclosed_defun of queue) { + let enclosed_defun_first_read = defun_first_read_map.get(enclosed_defun); + if (enclosed_defun_first_read != null && enclosed_defun_first_read < defun_first_read) { + continue; + } - const read_defun_at = find(fname_def.id); - const wrote_def_at = find(def.id, read_defun_at + 1, true); + defun_first_read_map.set(enclosed_defun, defun_first_read); - const wrote_def_after_reading_defun = read_defun_at != -1 && wrote_def_at != -1 && wrote_def_at > read_defun_at; + for (const enclosed_enclosed_defun of defun_dependencies_map.get(enclosed_defun) || []) { + queue.add(enclosed_enclosed_defun); + } + } + } - if (wrote_def_after_reading_defun) { + // ensure write-then-read order, otherwise clear `fixed` + // This is safe because last-writes (found_symbol_writes) are assumed to be as late as possible, and first-reads (defun_first_read_map) are assumed to be as early as possible. + for (const [defun, defs] of dependencies_map) { + const defun_first_read = defun_first_read_map.get(defun); + if (defun_first_read === undefined) { + continue; + } + + for (const def of defs) { + if (def.fixed === false) { + continue; + } + + let def_last_write = symbol_last_write_map.get(def.id) || 0; + + if (defun_first_read < def_last_write) { def.fixed = false; } } diff --git a/node_modules/terser/lib/minify.js b/node_modules/terser/lib/minify.js index 68af570..80f65a7 100644 --- a/node_modules/terser/lib/minify.js +++ b/node_modules/terser/lib/minify.js @@ -305,7 +305,7 @@ function* minify_sync_or_async(files, options, _fs_module) { if (node.block_scope) { node.block_scope.variables = undefined; node.block_scope.enclosed = undefined; - node.parent_scope = undefined; + node.block_scope.parent_scope = undefined; } }); } diff --git a/node_modules/terser/lib/mozilla-ast.js b/node_modules/terser/lib/mozilla-ast.js index 3d7843a..06d2947 100644 --- a/node_modules/terser/lib/mozilla-ast.js +++ b/node_modules/terser/lib/mozilla-ast.js @@ -181,23 +181,23 @@ import { is_basic_identifier_string } from "./parse.js"; return body; }; - const assert_clause_from_moz = (assertions) => { - if (assertions && assertions.length > 0) { + function import_attributes_from_moz(attributes) { + if (attributes && attributes.length > 0) { return new AST_Object({ - start: my_start_token(assertions), - end: my_end_token(assertions), - properties: assertions.map((assertion_kv) => + start: my_start_token(attributes), + end: my_end_token(attributes), + properties: attributes.map((attr) => new AST_ObjectKeyVal({ - start: my_start_token(assertion_kv), - end: my_end_token(assertion_kv), - key: assertion_kv.key.name || assertion_kv.key.value, - value: from_moz(assertion_kv.value) + start: my_start_token(attr), + end: my_end_token(attr), + key: attr.key.name || attr.key.value, + value: from_moz(attr.value) }) ) }); } return null; - }; + } var MOZ_TO_ME = { Program: function(M) { @@ -569,7 +569,7 @@ import { is_basic_identifier_string } from "./parse.js"; imported_name: imported_name, imported_names : imported_names, module_name : from_moz(M.source), - assert_clause: assert_clause_from_moz(M.assertions) + attributes: import_attributes_from_moz(M.attributes || M.assertions) }); }, @@ -595,6 +595,23 @@ import { is_basic_identifier_string } from "./parse.js"; }); }, + ImportExpression: function(M) { + const args = [from_moz(M.source)]; + if (M.options) { + args.push(from_moz(M.options)); + } + return new AST_Call({ + start: my_start_token(M), + end: my_end_token(M), + expression: from_moz({ + type: "Identifier", + name: "import" + }), + optional: false, + args + }); + }, + ExportAllDeclaration: function(M) { var foreign_name = M.exported == null ? new AST_SymbolExportForeign({ name: "*" }) : @@ -609,7 +626,7 @@ import { is_basic_identifier_string } from "./parse.js"; }) ], module_name: from_moz(M.source), - assert_clause: assert_clause_from_moz(M.assertions) + attributes: import_attributes_from_moz(M.attributes || M.assertions) }); }, @@ -620,7 +637,7 @@ import { is_basic_identifier_string } from "./parse.js"; exported_definition: from_moz(M.declaration), exported_names: M.specifiers && M.specifiers.length ? M.specifiers.map(from_moz) : null, module_name: from_moz(M.source), - assert_clause: assert_clause_from_moz(M.assertions) + attributes: import_attributes_from_moz(M.attributes || M.assertions) }); }, @@ -662,6 +679,11 @@ import { is_basic_identifier_string } from "./parse.js"; args.value = { source, flags }; return new AST_RegExp(args); } + const bi = typeof M.value === "bigint" ? M.value.toString() : M.bigint; + if (typeof bi === "string") { + args.value = bi; + return new AST_BigInt(args); + } if (val === null) return new AST_Null(args); switch (typeof val) { case "string": @@ -729,14 +751,6 @@ import { is_basic_identifier_string } from "./parse.js"; }); }, - BigIntLiteral(M) { - return new AST_BigInt({ - start : my_start_token(M), - end : my_end_token(M), - value : M.value - }); - }, - EmptyStatement: function(M) { return new AST_EmptyStatement({ start: my_start_token(M), @@ -1209,6 +1223,15 @@ import { is_basic_identifier_string } from "./parse.js"; }; }); def_to_moz(AST_Call, function To_Moz_CallExpression(M) { + if (M.expression instanceof AST_SymbolRef && M.expression.name === "import") { + const [source, options] = M.args.map(to_moz); + return { + type: "ImportExpression", + source, + options + }; + } + return { type: "CallExpression", callee: to_moz(M.expression), @@ -1366,22 +1389,22 @@ import { is_basic_identifier_string } from "./parse.js"; }; }); - const assert_clause_to_moz = assert_clause => { - const assertions = []; - if (assert_clause) { - for (const { key, value } of assert_clause.properties) { + function import_attributes_to_moz(attribute) { + const import_attributes = []; + if (attribute) { + for (const { key, value } of attribute.properties) { const key_moz = is_basic_identifier_string(key) ? { type: "Identifier", name: key } : { type: "Literal", value: key, raw: JSON.stringify(key) }; - assertions.push({ + import_attributes.push({ type: "ImportAttribute", key: key_moz, value: to_moz(value) }); } } - return assertions; - }; + return import_attributes; + } def_to_moz(AST_Export, function To_Moz_ExportDeclaration(M) { if (M.exported_names) { @@ -1396,7 +1419,7 @@ import { is_basic_identifier_string } from "./parse.js"; type: "ExportAllDeclaration", source: to_moz(M.module_name), exported: exported, - assertions: assert_clause_to_moz(M.assert_clause) + attributes: import_attributes_to_moz(M.attributes) }; } return { @@ -1410,7 +1433,7 @@ import { is_basic_identifier_string } from "./parse.js"; }), declaration: to_moz(M.exported_definition), source: to_moz(M.module_name), - assertions: assert_clause_to_moz(M.assert_clause) + attributes: import_attributes_to_moz(M.attributes) }; } return { @@ -1448,7 +1471,7 @@ import { is_basic_identifier_string } from "./parse.js"; type: "ImportDeclaration", specifiers: specifiers, source: to_moz(M.module_name), - assertions: assert_clause_to_moz(M.assert_clause) + attributes: import_attributes_to_moz(M.attributes) }; }); @@ -1754,8 +1777,13 @@ import { is_basic_identifier_string } from "./parse.js"; }); def_to_moz(AST_BigInt, M => ({ - type: "BigIntLiteral", - value: M.value + type: "Literal", + // value cannot be represented natively + // see: https://github.com/estree/estree/blob/master/es2020.md#bigintliteral + value: null, + // `M.value` is a string that may be a hex number representation. + // but "bigint" property should have only decimal digits + bigint: typeof BigInt === "function" ? BigInt(M.value).toString() : M.value, })); AST_Boolean.DEFMETHOD("to_mozilla_ast", AST_Constant.prototype.to_mozilla_ast); diff --git a/node_modules/terser/lib/output.js b/node_modules/terser/lib/output.js index 8168c75..0f0b73c 100644 --- a/node_modules/terser/lib/output.js +++ b/node_modules/terser/lib/output.js @@ -1792,9 +1792,9 @@ function OutputStream(options) { output.space(); } self.module_name.print(output); - if (self.assert_clause) { - output.print("assert"); - self.assert_clause.print(output); + if (self.attributes) { + output.print("with"); + self.attributes.print(output); } output.semicolon(); }); @@ -1888,9 +1888,9 @@ function OutputStream(options) { output.space(); self.module_name.print(output); } - if (self.assert_clause) { - output.print("assert"); - self.assert_clause.print(output); + if (self.attributes) { + output.print("with"); + self.attributes.print(output); } if (self.exported_value && !(self.exported_value instanceof AST_Defun || diff --git a/node_modules/terser/lib/parse.js b/node_modules/terser/lib/parse.js index 9ff28d4..9bc72ac 100644 --- a/node_modules/terser/lib/parse.js +++ b/node_modules/terser/lib/parse.js @@ -2726,8 +2726,11 @@ function parse($TEXT, options) { return new AST_ClassStaticBlock({ start, body, end: prev() }); } - function maybe_import_assertion() { - if (is("name", "assert") && !has_newline_before(S.token)) { + function maybe_import_attributes() { + if ( + (is("keyword", "with") || is("name", "assert")) + && !has_newline_before(S.token) + ) { next(); return object_or_destructuring_(); } @@ -2758,7 +2761,7 @@ function parse($TEXT, options) { } next(); - const assert_clause = maybe_import_assertion(); + const attributes = maybe_import_attributes(); return new AST_Import({ start, @@ -2770,7 +2773,7 @@ function parse($TEXT, options) { quote: mod_str.quote, end: mod_str, }), - assert_clause, + attributes, end: S.token, }); } @@ -2903,7 +2906,7 @@ function parse($TEXT, options) { } next(); - const assert_clause = maybe_import_assertion(); + const attributes = maybe_import_attributes(); return new AST_Export({ start: start, @@ -2916,7 +2919,7 @@ function parse($TEXT, options) { end: mod_str, }), end: prev(), - assert_clause + attributes }); } else { return new AST_Export({ @@ -2962,7 +2965,7 @@ function parse($TEXT, options) { exported_value: exported_value, exported_definition: exported_definition, end: prev(), - assert_clause: null + attributes: null }); } diff --git a/node_modules/terser/lib/propmangle.js b/node_modules/terser/lib/propmangle.js index e895705..265ade9 100644 --- a/node_modules/terser/lib/propmangle.js +++ b/node_modules/terser/lib/propmangle.js @@ -326,7 +326,9 @@ function mangle_properties(ast, options, annotated_props = find_annotated_props( } else if (node instanceof AST_ObjectProperty) { // setter, getter, method or class field if (!keep_quoted || !node.quote) { - node.key.name = mangle(node.key.name); + if (!node.computed_key()) { + node.key.name = mangle(node.key.name); + } } } else if (node instanceof AST_Dot) { if (!keep_quoted || !node.quote) { diff --git a/node_modules/terser/lib/scope.js b/node_modules/terser/lib/scope.js index f8a22a5..dc29ccc 100644 --- a/node_modules/terser/lib/scope.js +++ b/node_modules/terser/lib/scope.js @@ -200,7 +200,7 @@ function redefined_catch_def(def) { } } -AST_Scope.DEFMETHOD("figure_out_scope", function(options, { parent_scope = null, toplevel = this } = {}) { +AST_Scope.DEFMETHOD("figure_out_scope", function(options, { parent_scope = undefined, toplevel = this } = {}) { options = defaults(options, { cache: null, ie8: false, @@ -524,7 +524,7 @@ AST_Scope.DEFMETHOD("add_child_scope", function (scope) { scope.parent_scope = this; // Propagate to this.uses_arguments from arrow functions - if ((scope instanceof AST_Arrow) && !this.uses_arguments) { + if ((scope instanceof AST_Arrow) && (this instanceof AST_Lambda && !this.uses_arguments)) { this.uses_arguments = walk(scope, node => { if ( node instanceof AST_SymbolRef diff --git a/node_modules/terser/package.json b/node_modules/terser/package.json index 047c9ff..6b9fa8c 100644 --- a/node_modules/terser/package.json +++ b/node_modules/terser/package.json @@ -4,7 +4,7 @@ "homepage": "https://terser.org", "author": "Mihai Bazon (http://lisperator.net/)", "license": "BSD-2-Clause", - "version": "5.31.5", + "version": "5.36.0", "engines": { "node": ">=10" }, @@ -57,7 +57,7 @@ "esm": "^3.2.25", "mocha": "^9.2.0", "pre-commit": "^1.2.2", - "rollup": "^2.56.3", + "rollup": "^2.79.2", "semver": "^7.5.1", "source-map": "~0.8.0-beta.0" }, diff --git a/node_modules/to-fast-properties/index.js b/node_modules/to-fast-properties/index.js deleted file mode 100644 index 028c88a..0000000 --- a/node_modules/to-fast-properties/index.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -let fastProto = null; - -// Creates an object with permanently fast properties in V8. See Toon Verwaest's -// post https://medium.com/@tverwaes/setting-up-prototypes-in-v8-ec9c9491dfe2#5f62 -// for more details. Use %HasFastProperties(object) and the Node.js flag -// --allow-natives-syntax to check whether an object has fast properties. -function FastObject(o) { - // A prototype object will have "fast properties" enabled once it is checked - // against the inline property cache of a function, e.g. fastProto.property: - // https://github.com/v8/v8/blob/6.0.122/test/mjsunit/fast-prototype.js#L48-L63 - if (fastProto !== null && typeof fastProto.property) { - const result = fastProto; - fastProto = FastObject.prototype = null; - return result; - } - fastProto = FastObject.prototype = o == null ? Object.create(null) : o; - return new FastObject; -} - -// Initialize the inline property cache of FastObject -FastObject(); - -module.exports = function toFastproperties(o) { - return FastObject(o); -}; diff --git a/node_modules/to-fast-properties/license b/node_modules/to-fast-properties/license deleted file mode 100644 index cef79ef..0000000 --- a/node_modules/to-fast-properties/license +++ /dev/null @@ -1,10 +0,0 @@ -MIT License - -Copyright (c) 2014 Petka Antonov - 2015 Sindre Sorhus - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT 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/to-fast-properties/package.json b/node_modules/to-fast-properties/package.json deleted file mode 100644 index 7a64b2c..0000000 --- a/node_modules/to-fast-properties/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "to-fast-properties", - "version": "2.0.0", - "description": "Force V8 to use fast properties for an object", - "license": "MIT", - "repository": "sindresorhus/to-fast-properties", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=4" - }, - "scripts": { - "test": "node --allow-natives-syntax test.js" - }, - "files": [ - "index.js" - ], - "keywords": [ - "object", - "obj", - "properties", - "props", - "v8", - "optimize", - "fast", - "convert", - "mode" - ], - "devDependencies": { - "ava": "0.0.4" - } -} diff --git a/node_modules/to-fast-properties/readme.md b/node_modules/to-fast-properties/readme.md deleted file mode 100644 index 692101d..0000000 --- a/node_modules/to-fast-properties/readme.md +++ /dev/null @@ -1,37 +0,0 @@ -# to-fast-properties [![Build Status](https://travis-ci.org/sindresorhus/to-fast-properties.svg?branch=master)](https://travis-ci.org/sindresorhus/to-fast-properties) - -> Force V8 to use fast properties for an object - -[Read more.](http://stackoverflow.com/questions/24987896/) - -Use `%HasFastProperties(object)` and `--allow-natives-syntax` to check whether an object already has fast properties. - - -## Install - -``` -$ npm install --save to-fast-properties -``` - - -## Usage - -```js -const toFastProperties = require('to-fast-properties'); - -const obj = { - foo: true, - bar: true -}; - -delete obj.foo; -// `obj` now has slow properties - -toFastProperties(obj); -// `obj` now has fast properties -``` - - -## License - -MIT Β© Petka Antonov, John-David Dalton, Sindre Sorhus diff --git a/node_modules/tslib/CopyrightNotice.txt b/node_modules/tslib/CopyrightNotice.txt index 3d4c823..0e42542 100644 --- a/node_modules/tslib/CopyrightNotice.txt +++ b/node_modules/tslib/CopyrightNotice.txt @@ -1,4 +1,4 @@ -/*! ***************************************************************************** +/****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any diff --git a/node_modules/tslib/README.md b/node_modules/tslib/README.md index a5b2692..290cc61 100644 --- a/node_modules/tslib/README.md +++ b/node_modules/tslib/README.md @@ -1,6 +1,6 @@ # tslib -This is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions. +This is a runtime library for [TypeScript](https://www.typescriptlang.org/) that contains all of the TypeScript helper functions. This library is primarily used by the `--importHelpers` flag in TypeScript. When using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file: @@ -37,9 +37,12 @@ For the latest stable version, run: ## npm ```sh -# TypeScript 2.3.3 or later +# TypeScript 3.9.2 or later npm install tslib +# TypeScript 3.8.4 or earlier +npm install tslib@^1 + # TypeScript 2.3.2 or earlier npm install tslib@1.6.1 ``` @@ -47,9 +50,12 @@ npm install tslib@1.6.1 ## yarn ```sh -# TypeScript 2.3.3 or later +# TypeScript 3.9.2 or later yarn add tslib +# TypeScript 3.8.4 or earlier +yarn add tslib@^1 + # TypeScript 2.3.2 or earlier yarn add tslib@1.6.1 ``` @@ -57,9 +63,12 @@ yarn add tslib@1.6.1 ## bower ```sh -# TypeScript 2.3.3 or later +# TypeScript 3.9.2 or later bower install tslib +# TypeScript 3.8.4 or earlier +bower install tslib@^1 + # TypeScript 2.3.2 or earlier bower install tslib@1.6.1 ``` @@ -67,9 +76,12 @@ bower install tslib@1.6.1 ## JSPM ```sh -# TypeScript 2.3.3 or later +# TypeScript 3.9.2 or later jspm install tslib +# TypeScript 3.8.4 or earlier +jspm install tslib@^1 + # TypeScript 2.3.2 or earlier jspm install tslib@1.6.1 ``` @@ -118,12 +130,22 @@ For JSPM users: "importHelpers": true, "baseUrl": "./", "paths": { - "tslib" : ["jspm_packages/npm/tslib@1.[version].0/tslib.d.ts"] + "tslib" : ["jspm_packages/npm/tslib@2.x.y/tslib.d.ts"] } } } ``` +## Deployment + +- Choose your new version number +- Set it in `package.json` and `bower.json` +- Create a tag: `git tag [version]` +- Push the tag: `git push --tags` +- Create a [release in GitHub](https://github.com/microsoft/tslib/releases) +- Run the [publish to npm](https://github.com/microsoft/tslib/actions?query=workflow%3A%22Publish+to+NPM%22) workflow + +Done. # Contribute diff --git a/node_modules/tslib/modules/index.js b/node_modules/tslib/modules/index.js index d241d04..c91f618 100644 --- a/node_modules/tslib/modules/index.js +++ b/node_modules/tslib/modules/index.js @@ -5,6 +5,10 @@ const { __rest, __decorate, __param, + __esDecorate, + __runInitializers, + __propKey, + __setFunctionName, __metadata, __awaiter, __generator, @@ -14,6 +18,7 @@ const { __read, __spread, __spreadArrays, + __spreadArray, __await, __asyncGenerator, __asyncDelegator, @@ -23,6 +28,10 @@ const { __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, + __classPrivateFieldIn, + __addDisposableResource, + __disposeResources, + __rewriteRelativeImportExtension, } = tslib; export { __extends, @@ -30,6 +39,10 @@ export { __rest, __decorate, __param, + __esDecorate, + __runInitializers, + __propKey, + __setFunctionName, __metadata, __awaiter, __generator, @@ -39,6 +52,7 @@ export { __read, __spread, __spreadArrays, + __spreadArray, __await, __asyncGenerator, __asyncDelegator, @@ -48,4 +62,9 @@ export { __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, + __classPrivateFieldIn, + __addDisposableResource, + __disposeResources, + __rewriteRelativeImportExtension, }; +export default tslib; diff --git a/node_modules/tslib/package.json b/node_modules/tslib/package.json index f8c2a53..57d0578 100644 --- a/node_modules/tslib/package.json +++ b/node_modules/tslib/package.json @@ -2,7 +2,7 @@ "name": "tslib", "author": "Microsoft Corp.", "homepage": "https://www.typescriptlang.org/", - "version": "1.14.1", + "version": "2.8.1", "license": "0BSD", "description": "Runtime library for TypeScript helper functions", "keywords": [ @@ -28,10 +28,20 @@ "sideEffects": false, "exports": { ".": { - "module": "./tslib.es6.js", - "import": "./modules/index.js", + "module": { + "types": "./modules/index.d.ts", + "default": "./tslib.es6.mjs" + }, + "import": { + "node": "./modules/index.js", + "default": { + "types": "./modules/index.d.ts", + "default": "./tslib.es6.mjs" + } + }, "default": "./tslib.js" }, + "./*": "./*", "./": "./" } } diff --git a/node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js b/node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js deleted file mode 100644 index 0c1b613..0000000 --- a/node_modules/tslib/test/validateModuleExportsMatchCommonJS/index.js +++ /dev/null @@ -1,23 +0,0 @@ -// When on node 14, it validates that all of the commonjs exports -// are correctly re-exported for es modules importers. - -const nodeMajor = Number(process.version.split(".")[0].slice(1)) -if (nodeMajor < 14) { - console.log("Skipping because node does not support module exports.") - process.exit(0) -} - -// ES Modules import via the ./modules folder -import * as esTSLib from "../../modules/index.js" - -// Force a commonjs resolve -import { createRequire } from "module"; -const commonJSTSLib = createRequire(import.meta.url)("../../tslib.js"); - -for (const key in commonJSTSLib) { - if (commonJSTSLib.hasOwnProperty(key)) { - if(!esTSLib[key]) throw new Error(`ESModules is missing ${key} - it needs to be re-exported in ./modules/index.js`) - } -} - -console.log("All exports in commonjs are available for es module consumers.") diff --git a/node_modules/tslib/test/validateModuleExportsMatchCommonJS/package.json b/node_modules/tslib/test/validateModuleExportsMatchCommonJS/package.json deleted file mode 100644 index 166e509..0000000 --- a/node_modules/tslib/test/validateModuleExportsMatchCommonJS/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "module", - "scripts": { - "test": "node index.js" - } -} diff --git a/node_modules/tslib/tslib.d.ts b/node_modules/tslib/tslib.d.ts index 0756b28..f23df55 100644 --- a/node_modules/tslib/tslib.d.ts +++ b/node_modules/tslib/tslib.d.ts @@ -1,4 +1,4 @@ -/*! ***************************************************************************** +/****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any @@ -12,26 +12,449 @@ 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. ***************************************************************************** */ + +/** + * Used to shim class extends. + * + * @param d The derived class. + * @param b The base class. + */ export declare function __extends(d: Function, b: Function): void; + +/** + * Copy the values of all of the enumerable own properties from one or more source objects to a + * target object. Returns the target object. + * + * @param t The target object to copy to. + * @param sources One or more source objects from which to copy properties + */ export declare function __assign(t: any, ...sources: any[]): any; + +/** + * Performs a rest spread on an object. + * + * @param t The source value. + * @param propertyNames The property names excluded from the rest spread. + */ export declare function __rest(t: any, propertyNames: (string | symbol)[]): any; + +/** + * Applies decorators to a target object + * + * @param decorators The set of decorators to apply. + * @param target The target object. + * @param key If specified, the own property to apply the decorators to. + * @param desc The property descriptor, defaults to fetching the descriptor from the target object. + * @experimental + */ export declare function __decorate(decorators: Function[], target: any, key?: string | symbol, desc?: any): any; + +/** + * Creates an observing function decorator from a parameter decorator. + * + * @param paramIndex The parameter index to apply the decorator to. + * @param decorator The parameter decorator to apply. Note that the return value is ignored. + * @experimental + */ export declare function __param(paramIndex: number, decorator: Function): Function; + +/** + * Applies decorators to a class or class member, following the native ECMAScript decorator specification. + * @param ctor For non-field class members, the class constructor. Otherwise, `null`. + * @param descriptorIn The `PropertyDescriptor` to use when unable to look up the property from `ctor`. + * @param decorators The decorators to apply + * @param contextIn The `DecoratorContext` to clone for each decorator application. + * @param initializers An array of field initializer mutation functions into which new initializers are written. + * @param extraInitializers An array of extra initializer functions into which new initializers are written. + */ +export declare function __esDecorate(ctor: Function | null, descriptorIn: object | null, decorators: Function[], contextIn: object, initializers: Function[] | null, extraInitializers: Function[]): void; + +/** + * Runs field initializers or extra initializers generated by `__esDecorate`. + * @param thisArg The `this` argument to use. + * @param initializers The array of initializers to evaluate. + * @param value The initial value to pass to the initializers. + */ +export declare function __runInitializers(thisArg: unknown, initializers: Function[], value?: any): any; + +/** + * Converts a computed property name into a `string` or `symbol` value. + */ +export declare function __propKey(x: any): string | symbol; + +/** + * Assigns the name of a function derived from the left-hand side of an assignment. + * @param f The function to rename. + * @param name The new name for the function. + * @param prefix A prefix (such as `"get"` or `"set"`) to insert before the name. + */ +export declare function __setFunctionName(f: Function, name: string | symbol, prefix?: string): Function; + +/** + * Creates a decorator that sets metadata. + * + * @param metadataKey The metadata key + * @param metadataValue The metadata value + * @experimental + */ export declare function __metadata(metadataKey: any, metadataValue: any): Function; + +/** + * Converts a generator function into a pseudo-async function, by treating each `yield` as an `await`. + * + * @param thisArg The reference to use as the `this` value in the generator function + * @param _arguments The optional arguments array + * @param P The optional promise constructor argument, defaults to the `Promise` property of the global object. + * @param generator The generator function + */ export declare function __awaiter(thisArg: any, _arguments: any, P: Function, generator: Function): any; + +/** + * Creates an Iterator object using the body as the implementation. + * + * @param thisArg The reference to use as the `this` value in the function + * @param body The generator state-machine based implementation. + * + * @see [./docs/generator.md] + */ export declare function __generator(thisArg: any, body: Function): any; -export declare function __exportStar(m: any, exports: any): void; + +/** + * Creates bindings for all enumerable properties of `m` on `exports` + * + * @param m The source object + * @param o The `exports` object. + */ +export declare function __exportStar(m: any, o: any): void; + +/** + * Creates a value iterator from an `Iterable` or `ArrayLike` object. + * + * @param o The object. + * @throws {TypeError} If `o` is neither `Iterable`, nor an `ArrayLike`. + */ export declare function __values(o: any): any; + +/** + * Reads values from an `Iterable` or `ArrayLike` object and returns the resulting array. + * + * @param o The object to read from. + * @param n The maximum number of arguments to read, defaults to `Infinity`. + */ export declare function __read(o: any, n?: number): any[]; + +/** + * Creates an array from iterable spread. + * + * @param args The Iterable objects to spread. + * @deprecated since TypeScript 4.2 - Use `__spreadArray` + */ export declare function __spread(...args: any[][]): any[]; + +/** + * Creates an array from array spread. + * + * @param args The ArrayLikes to spread into the resulting array. + * @deprecated since TypeScript 4.2 - Use `__spreadArray` + */ export declare function __spreadArrays(...args: any[][]): any[]; + +/** + * Spreads the `from` array into the `to` array. + * + * @param pack Replace empty elements with `undefined`. + */ +export declare function __spreadArray(to: any[], from: any[], pack?: boolean): any[]; + +/** + * Creates an object that signals to `__asyncGenerator` that it shouldn't be yielded, + * and instead should be awaited and the resulting value passed back to the generator. + * + * @param v The value to await. + */ export declare function __await(v: any): any; + +/** + * Converts a generator function into an async generator function, by using `yield __await` + * in place of normal `await`. + * + * @param thisArg The reference to use as the `this` value in the generator function + * @param _arguments The optional arguments array + * @param generator The generator function + */ export declare function __asyncGenerator(thisArg: any, _arguments: any, generator: Function): any; + +/** + * Used to wrap a potentially async iterator in such a way so that it wraps the result + * of calling iterator methods of `o` in `__await` instances, and then yields the awaited values. + * + * @param o The potentially async iterator. + * @returns A synchronous iterator yielding `__await` instances on every odd invocation + * and returning the awaited `IteratorResult` passed to `next` every even invocation. + */ export declare function __asyncDelegator(o: any): any; + +/** + * Creates a value async iterator from an `AsyncIterable`, `Iterable` or `ArrayLike` object. + * + * @param o The object. + * @throws {TypeError} If `o` is neither `AsyncIterable`, `Iterable`, nor an `ArrayLike`. + */ export declare function __asyncValues(o: any): any; + +/** + * Creates a `TemplateStringsArray` frozen object from the `cooked` and `raw` arrays. + * + * @param cooked The cooked possibly-sparse array. + * @param raw The raw string content. + */ export declare function __makeTemplateObject(cooked: string[], raw: string[]): TemplateStringsArray; + +/** + * Used to shim default and named imports in ECMAScript Modules transpiled to CommonJS. + * + * ```js + * import Default, { Named, Other } from "mod"; + * // or + * import { default as Default, Named, Other } from "mod"; + * ``` + * + * @param mod The CommonJS module exports object. + */ export declare function __importStar(mod: T): T; + +/** + * Used to shim default imports in ECMAScript Modules transpiled to CommonJS. + * + * ```js + * import Default from "mod"; + * ``` + * + * @param mod The CommonJS module exports object. + */ export declare function __importDefault(mod: T): T | { default: T }; -export declare function __classPrivateFieldGet(receiver: T, privateMap: { has(o: T): boolean, get(o: T): V | undefined }): V; -export declare function __classPrivateFieldSet(receiver: T, privateMap: { has(o: T): boolean, set(o: T, value: V): any }, value: V): V; -export declare function __createBinding(object: object, target: object, key: PropertyKey, objectKey?: PropertyKey): void; \ No newline at end of file + +/** + * Emulates reading a private instance field. + * + * @param receiver The instance from which to read the private field. + * @param state A WeakMap containing the private field value for an instance. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * + * @throws {TypeError} If `state` doesn't have an entry for `receiver`. + */ +export declare function __classPrivateFieldGet( + receiver: T, + state: { has(o: T): boolean, get(o: T): V | undefined }, + kind?: "f" +): V; + +/** + * Emulates reading a private static field. + * + * @param receiver The object from which to read the private static field. + * @param state The class constructor containing the definition of the static field. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The descriptor that holds the static field value. + * + * @throws {TypeError} If `receiver` is not `state`. + */ +export declare function __classPrivateFieldGet unknown, V>( + receiver: T, + state: T, + kind: "f", + f: { value: V } +): V; + +/** + * Emulates evaluating a private instance "get" accessor. + * + * @param receiver The instance on which to evaluate the private "get" accessor. + * @param state A WeakSet used to verify an instance supports the private "get" accessor. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The "get" accessor function to evaluate. + * + * @throws {TypeError} If `state` doesn't have an entry for `receiver`. + */ +export declare function __classPrivateFieldGet( + receiver: T, + state: { has(o: T): boolean }, + kind: "a", + f: () => V +): V; + +/** + * Emulates evaluating a private static "get" accessor. + * + * @param receiver The object on which to evaluate the private static "get" accessor. + * @param state The class constructor containing the definition of the static "get" accessor. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The "get" accessor function to evaluate. + * + * @throws {TypeError} If `receiver` is not `state`. + */ +export declare function __classPrivateFieldGet unknown, V>( + receiver: T, + state: T, + kind: "a", + f: () => V +): V; + +/** + * Emulates reading a private instance method. + * + * @param receiver The instance from which to read a private method. + * @param state A WeakSet used to verify an instance supports the private method. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The function to return as the private instance method. + * + * @throws {TypeError} If `state` doesn't have an entry for `receiver`. + */ +export declare function __classPrivateFieldGet unknown>( + receiver: T, + state: { has(o: T): boolean }, + kind: "m", + f: V +): V; + +/** + * Emulates reading a private static method. + * + * @param receiver The object from which to read the private static method. + * @param state The class constructor containing the definition of the static method. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The function to return as the private static method. + * + * @throws {TypeError} If `receiver` is not `state`. + */ +export declare function __classPrivateFieldGet unknown, V extends (...args: any[]) => unknown>( + receiver: T, + state: T, + kind: "m", + f: V +): V; + +/** + * Emulates writing to a private instance field. + * + * @param receiver The instance on which to set a private field value. + * @param state A WeakMap used to store the private field value for an instance. + * @param value The value to store in the private field. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * + * @throws {TypeError} If `state` doesn't have an entry for `receiver`. + */ +export declare function __classPrivateFieldSet( + receiver: T, + state: { has(o: T): boolean, set(o: T, value: V): unknown }, + value: V, + kind?: "f" +): V; + +/** + * Emulates writing to a private static field. + * + * @param receiver The object on which to set the private static field. + * @param state The class constructor containing the definition of the private static field. + * @param value The value to store in the private field. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The descriptor that holds the static field value. + * + * @throws {TypeError} If `receiver` is not `state`. + */ +export declare function __classPrivateFieldSet unknown, V>( + receiver: T, + state: T, + value: V, + kind: "f", + f: { value: V } +): V; + +/** + * Emulates writing to a private instance "set" accessor. + * + * @param receiver The instance on which to evaluate the private instance "set" accessor. + * @param state A WeakSet used to verify an instance supports the private "set" accessor. + * @param value The value to store in the private accessor. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The "set" accessor function to evaluate. + * + * @throws {TypeError} If `state` doesn't have an entry for `receiver`. + */ +export declare function __classPrivateFieldSet( + receiver: T, + state: { has(o: T): boolean }, + value: V, + kind: "a", + f: (v: V) => void +): V; + +/** + * Emulates writing to a private static "set" accessor. + * + * @param receiver The object on which to evaluate the private static "set" accessor. + * @param state The class constructor containing the definition of the static "set" accessor. + * @param value The value to store in the private field. + * @param kind Either `"f"` for a field, `"a"` for an accessor, or `"m"` for a method. + * @param f The "set" accessor function to evaluate. + * + * @throws {TypeError} If `receiver` is not `state`. + */ +export declare function __classPrivateFieldSet unknown, V>( + receiver: T, + state: T, + value: V, + kind: "a", + f: (v: V) => void +): V; + +/** + * Checks for the existence of a private field/method/accessor. + * + * @param state The class constructor containing the static member, or the WeakMap or WeakSet associated with a private instance member. + * @param receiver The object for which to test the presence of the private member. + */ +export declare function __classPrivateFieldIn( + state: (new (...args: any[]) => unknown) | { has(o: any): boolean }, + receiver: unknown, +): boolean; + +/** + * Creates a re-export binding on `object` with key `objectKey` that references `target[key]`. + * + * @param object The local `exports` object. + * @param target The object to re-export from. + * @param key The property key of `target` to re-export. + * @param objectKey The property key to re-export as. Defaults to `key`. + */ +export declare function __createBinding(object: object, target: object, key: PropertyKey, objectKey?: PropertyKey): void; + +/** + * Adds a disposable resource to a resource-tracking environment object. + * @param env A resource-tracking environment object. + * @param value Either a Disposable or AsyncDisposable object, `null`, or `undefined`. + * @param async When `true`, `AsyncDisposable` resources can be added. When `false`, `AsyncDisposable` resources cannot be added. + * @returns The {@link value} argument. + * + * @throws {TypeError} If {@link value} is not an object, or if either `Symbol.dispose` or `Symbol.asyncDispose` are not + * defined, or if {@link value} does not have an appropriate `Symbol.dispose` or `Symbol.asyncDispose` method. + */ +export declare function __addDisposableResource(env: { stack: { value?: unknown, dispose?: Function, async: boolean }[]; error: unknown; hasError: boolean; }, value: T, async: boolean): T; + +/** + * Disposes all resources in a resource-tracking environment object. + * @param env A resource-tracking environment object. + * @returns A {@link Promise} if any resources in the environment were marked as `async` when added; otherwise, `void`. + * + * @throws {SuppressedError} if an error thrown during disposal would have suppressed a prior error from disposal or the + * error recorded in the resource-tracking environment object. + * @seealso {@link __addDisposableResource} + */ +export declare function __disposeResources(env: { stack: { value?: unknown, dispose?: Function, async: boolean }[]; error: unknown; hasError: boolean; }): any; + +/** + * Transforms a relative import specifier ending in a non-declaration TypeScript file extension to its JavaScript file extension counterpart. + * @param path The import specifier. + * @param preserveJsx Causes '*.tsx' to transform to '*.jsx' instead of '*.js'. Should be true when `--jsx` is set to `preserve`. + */ +export declare function __rewriteRelativeImportExtension(path: string, preserveJsx?: boolean): string; \ No newline at end of file diff --git a/node_modules/tslib/tslib.es6.js b/node_modules/tslib/tslib.es6.js index 0e0d8d0..6c1739b 100644 --- a/node_modules/tslib/tslib.es6.js +++ b/node_modules/tslib/tslib.es6.js @@ -1,4 +1,4 @@ -/*! ***************************************************************************** +/****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any @@ -12,16 +12,18 @@ 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. ***************************************************************************** */ -/* global Reflect, Promise */ +/* global Reflect, Promise, SuppressedError, Symbol, Iterator */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; export function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); @@ -61,6 +63,51 @@ export function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } } +export function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { + function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } + var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; + var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; + var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); + var _, done = false; + for (var i = decorators.length - 1; i >= 0; i--) { + var context = {}; + for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; + for (var p in contextIn.access) context.access[p] = contextIn.access[p]; + context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; + var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); + if (kind === "accessor") { + if (result === void 0) continue; + if (result === null || typeof result !== "object") throw new TypeError("Object expected"); + if (_ = accept(result.get)) descriptor.get = _; + if (_ = accept(result.set)) descriptor.set = _; + if (_ = accept(result.init)) initializers.unshift(_); + } + else if (_ = accept(result)) { + if (kind === "field") initializers.unshift(_); + else descriptor[key] = _; + } + } + if (target) Object.defineProperty(target, contextIn.name, descriptor); + done = true; +}; + +export function __runInitializers(thisArg, initializers, value) { + var useValue = arguments.length > 2; + for (var i = 0; i < initializers.length; i++) { + value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); + } + return useValue ? value : void 0; +}; + +export function __propKey(x) { + return typeof x === "symbol" ? x : "".concat(x); +}; + +export function __setFunctionName(f, name, prefix) { + if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); +}; + export function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } @@ -76,12 +123,12 @@ export function __awaiter(thisArg, _arguments, P, generator) { } export function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { @@ -103,13 +150,20 @@ export function __generator(thisArg, body) { } } -export function __createBinding(o, m, k, k2) { +export var __createBinding = Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; -} +}); -export function __exportStar(m, exports) { - for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p]; +export function __exportStar(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); } export function __values(o) { @@ -141,19 +195,31 @@ export function __read(o, n) { return ar; } +/** @deprecated */ export function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } +/** @deprecated */ export function __spreadArrays() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; -}; +} + +export function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} export function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); @@ -162,8 +228,9 @@ export function __await(v) { export function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i; + function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; } + function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } @@ -174,7 +241,7 @@ export function __asyncGenerator(thisArg, _arguments, generator) { export function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } } export function __asyncValues(o) { @@ -190,11 +257,26 @@ export function __makeTemplateObject(cooked, raw) { return cooked; }; +var __setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}; + +var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); +}; + export function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result.default = mod; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); return result; } @@ -202,17 +284,119 @@ export function __importDefault(mod) { return (mod && mod.__esModule) ? mod : { default: mod }; } -export function __classPrivateFieldGet(receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); +export function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); } -export function __classPrivateFieldSet(receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; +export function __classPrivateFieldSet(receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; } + +export function __classPrivateFieldIn(state, receiver) { + if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); +} + +export function __addDisposableResource(env, value, async) { + if (value !== null && value !== void 0) { + if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); + var dispose, inner; + if (async) { + if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); + dispose = value[Symbol.asyncDispose]; + } + if (dispose === void 0) { + if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); + dispose = value[Symbol.dispose]; + if (async) inner = dispose; + } + if (typeof dispose !== "function") throw new TypeError("Object not disposable."); + if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } }; + env.stack.push({ value: value, dispose: dispose, async: async }); + } + else if (async) { + env.stack.push({ async: true }); + } + return value; + +} + +var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; +}; + +export function __disposeResources(env) { + function fail(e) { + env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; + env.hasError = true; + } + var r, s = 0; + function next() { + while (r = env.stack.pop()) { + try { + if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next); + if (r.dispose) { + var result = r.dispose.call(r.value); + if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); + } + else s |= 1; + } + catch (e) { + fail(e); + } + } + if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve(); + if (env.hasError) throw env.error; + } + return next(); +} + +export function __rewriteRelativeImportExtension(path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; +} + +export default { + __extends: __extends, + __assign: __assign, + __rest: __rest, + __decorate: __decorate, + __param: __param, + __esDecorate: __esDecorate, + __runInitializers: __runInitializers, + __propKey: __propKey, + __setFunctionName: __setFunctionName, + __metadata: __metadata, + __awaiter: __awaiter, + __generator: __generator, + __createBinding: __createBinding, + __exportStar: __exportStar, + __values: __values, + __read: __read, + __spread: __spread, + __spreadArrays: __spreadArrays, + __spreadArray: __spreadArray, + __await: __await, + __asyncGenerator: __asyncGenerator, + __asyncDelegator: __asyncDelegator, + __asyncValues: __asyncValues, + __makeTemplateObject: __makeTemplateObject, + __importStar: __importStar, + __importDefault: __importDefault, + __classPrivateFieldGet: __classPrivateFieldGet, + __classPrivateFieldSet: __classPrivateFieldSet, + __classPrivateFieldIn: __classPrivateFieldIn, + __addDisposableResource: __addDisposableResource, + __disposeResources: __disposeResources, + __rewriteRelativeImportExtension: __rewriteRelativeImportExtension, +}; diff --git a/node_modules/tslib/tslib.js b/node_modules/tslib/tslib.js index e5b7c9b..5e12ace 100644 --- a/node_modules/tslib/tslib.js +++ b/node_modules/tslib/tslib.js @@ -1,4 +1,4 @@ -/*! ***************************************************************************** +/****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any @@ -12,13 +12,16 @@ 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. ***************************************************************************** */ - -/* global global, define, System, Reflect, Promise */ +/* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */ var __extends; var __assign; var __rest; var __decorate; var __param; +var __esDecorate; +var __runInitializers; +var __propKey; +var __setFunctionName; var __metadata; var __awaiter; var __generator; @@ -27,6 +30,7 @@ var __values; var __read; var __spread; var __spreadArrays; +var __spreadArray; var __await; var __asyncGenerator; var __asyncDelegator; @@ -36,7 +40,11 @@ var __importStar; var __importDefault; var __classPrivateFieldGet; var __classPrivateFieldSet; +var __classPrivateFieldIn; var __createBinding; +var __addDisposableResource; +var __disposeResources; +var __rewriteRelativeImportExtension; (function (factory) { var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; if (typeof define === "function" && define.amd) { @@ -63,9 +71,11 @@ var __createBinding; (function (exporter) { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; __extends = function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); @@ -102,6 +112,51 @@ var __createBinding; return function (target, key) { decorator(target, key, paramIndex); } }; + __esDecorate = function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { + function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } + var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; + var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; + var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); + var _, done = false; + for (var i = decorators.length - 1; i >= 0; i--) { + var context = {}; + for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; + for (var p in contextIn.access) context.access[p] = contextIn.access[p]; + context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; + var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); + if (kind === "accessor") { + if (result === void 0) continue; + if (result === null || typeof result !== "object") throw new TypeError("Object expected"); + if (_ = accept(result.get)) descriptor.get = _; + if (_ = accept(result.set)) descriptor.set = _; + if (_ = accept(result.init)) initializers.unshift(_); + } + else if (_ = accept(result)) { + if (kind === "field") initializers.unshift(_); + else descriptor[key] = _; + } + } + if (target) Object.defineProperty(target, contextIn.name, descriptor); + done = true; + }; + + __runInitializers = function (thisArg, initializers, value) { + var useValue = arguments.length > 2; + for (var i = 0; i < initializers.length; i++) { + value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); + } + return useValue ? value : void 0; + }; + + __propKey = function (x) { + return typeof x === "symbol" ? x : "".concat(x); + }; + + __setFunctionName = function (f, name, prefix) { + if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); + }; + __metadata = function (metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); }; @@ -117,12 +172,12 @@ var __createBinding; }; __generator = function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); - while (_) try { + while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { @@ -144,14 +199,21 @@ var __createBinding; } }; - __createBinding = function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; + __exportStar = function(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); }; - __exportStar = function (m, exports) { - for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p]; - }; + __createBinding = Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); __values = function (o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; @@ -182,12 +244,14 @@ var __createBinding; return ar; }; + /** @deprecated */ __spread = function () { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; }; + /** @deprecated */ __spreadArrays = function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) @@ -196,6 +260,16 @@ var __createBinding; return r; }; + __spreadArray = function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + }; + __await = function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }; @@ -203,10 +277,11 @@ var __createBinding; __asyncGenerator = function (thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i; + function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; } + function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } @@ -215,7 +290,7 @@ var __createBinding; __asyncDelegator = function (o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } }; __asyncValues = function (o) { @@ -231,11 +306,26 @@ var __createBinding; return cooked; }; + var __setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function(o, v) { + o["default"] = v; + }; + + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + __importStar = function (mod) { if (mod && mod.__esModule) return mod; var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); return result; }; @@ -243,26 +333,96 @@ var __createBinding; return (mod && mod.__esModule) ? mod : { "default": mod }; }; - __classPrivateFieldGet = function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); + __classPrivateFieldGet = function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; - __classPrivateFieldSet = function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); + __classPrivateFieldSet = function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; + }; + + __classPrivateFieldIn = function (state, receiver) { + if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); + }; + + __addDisposableResource = function (env, value, async) { + if (value !== null && value !== void 0) { + if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); + var dispose, inner; + if (async) { + if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); + dispose = value[Symbol.asyncDispose]; + } + if (dispose === void 0) { + if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); + dispose = value[Symbol.dispose]; + if (async) inner = dispose; + } + if (typeof dispose !== "function") throw new TypeError("Object not disposable."); + if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } }; + env.stack.push({ value: value, dispose: dispose, async: async }); + } + else if (async) { + env.stack.push({ async: true }); } - privateMap.set(receiver, value); return value; }; + var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; + }; + + __disposeResources = function (env) { + function fail(e) { + env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; + env.hasError = true; + } + var r, s = 0; + function next() { + while (r = env.stack.pop()) { + try { + if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next); + if (r.dispose) { + var result = r.dispose.call(r.value); + if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); + } + else s |= 1; + } + catch (e) { + fail(e); + } + } + if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve(); + if (env.hasError) throw env.error; + } + return next(); + }; + + __rewriteRelativeImportExtension = function (path, preserveJsx) { + if (typeof path === "string" && /^\.\.?\//.test(path)) { + return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); + }); + } + return path; + }; + exporter("__extends", __extends); exporter("__assign", __assign); exporter("__rest", __rest); exporter("__decorate", __decorate); exporter("__param", __param); + exporter("__esDecorate", __esDecorate); + exporter("__runInitializers", __runInitializers); + exporter("__propKey", __propKey); + exporter("__setFunctionName", __setFunctionName); exporter("__metadata", __metadata); exporter("__awaiter", __awaiter); exporter("__generator", __generator); @@ -272,6 +432,7 @@ var __createBinding; exporter("__read", __read); exporter("__spread", __spread); exporter("__spreadArrays", __spreadArrays); + exporter("__spreadArray", __spreadArray); exporter("__await", __await); exporter("__asyncGenerator", __asyncGenerator); exporter("__asyncDelegator", __asyncDelegator); @@ -281,4 +442,43 @@ var __createBinding; exporter("__importDefault", __importDefault); exporter("__classPrivateFieldGet", __classPrivateFieldGet); exporter("__classPrivateFieldSet", __classPrivateFieldSet); + exporter("__classPrivateFieldIn", __classPrivateFieldIn); + exporter("__addDisposableResource", __addDisposableResource); + exporter("__disposeResources", __disposeResources); + exporter("__rewriteRelativeImportExtension", __rewriteRelativeImportExtension); +}); + +0 && (module.exports = { + __extends: __extends, + __assign: __assign, + __rest: __rest, + __decorate: __decorate, + __param: __param, + __esDecorate: __esDecorate, + __runInitializers: __runInitializers, + __propKey: __propKey, + __setFunctionName: __setFunctionName, + __metadata: __metadata, + __awaiter: __awaiter, + __generator: __generator, + __exportStar: __exportStar, + __createBinding: __createBinding, + __values: __values, + __read: __read, + __spread: __spread, + __spreadArrays: __spreadArrays, + __spreadArray: __spreadArray, + __await: __await, + __asyncGenerator: __asyncGenerator, + __asyncDelegator: __asyncDelegator, + __asyncValues: __asyncValues, + __makeTemplateObject: __makeTemplateObject, + __importStar: __importStar, + __importDefault: __importDefault, + __classPrivateFieldGet: __classPrivateFieldGet, + __classPrivateFieldSet: __classPrivateFieldSet, + __classPrivateFieldIn: __classPrivateFieldIn, + __addDisposableResource: __addDisposableResource, + __disposeResources: __disposeResources, + __rewriteRelativeImportExtension: __rewriteRelativeImportExtension, }); diff --git a/node_modules/undici-types/dispatcher.d.ts b/node_modules/undici-types/dispatcher.d.ts index 21f9b45..0aa2aba 100644 --- a/node_modules/undici-types/dispatcher.d.ts +++ b/node_modules/undici-types/dispatcher.d.ts @@ -19,8 +19,8 @@ declare class Dispatcher extends EventEmitter { connect(options: Dispatcher.ConnectOptions): Promise; connect(options: Dispatcher.ConnectOptions, callback: (err: Error | null, data: Dispatcher.ConnectData) => void): void; /** Compose a chain of dispatchers */ - compose(dispatchers: Dispatcher.DispatcherInterceptor[]): Dispatcher.ComposedDispatcher; - compose(...dispatchers: Dispatcher.DispatcherInterceptor[]): Dispatcher.ComposedDispatcher; + compose(dispatchers: Dispatcher.DispatcherComposeInterceptor[]): Dispatcher.ComposedDispatcher; + compose(...dispatchers: Dispatcher.DispatcherComposeInterceptor[]): Dispatcher.ComposedDispatcher; /** Performs an HTTP request. */ request(options: Dispatcher.RequestOptions): Promise; request(options: Dispatcher.RequestOptions, callback: (err: Error | null, data: Dispatcher.ResponseData) => void): void; @@ -97,7 +97,7 @@ declare class Dispatcher extends EventEmitter { declare namespace Dispatcher { export interface ComposedDispatcher extends Dispatcher {} - export type DispatcherInterceptor = (dispatch: Dispatcher['dispatch']) => Dispatcher['dispatch']; + export type DispatcherComposeInterceptor = (dispatch: Dispatcher['dispatch']) => Dispatcher['dispatch']; export interface DispatchOptions { origin?: string | URL; path: string; @@ -217,7 +217,7 @@ declare namespace Dispatcher { export type StreamFactory = (data: StreamFactoryData) => Writable; export interface DispatchHandlers { /** Invoked before request is dispatched on socket. May be invoked multiple times when a request is retried when the request at the head of the pipeline fails. */ - onConnect?(abort: () => void): void; + onConnect?(abort: (err?: Error) => void): void; /** Invoked when an error has occurred. */ onError?(err: Error): void; /** Invoked when request is upgraded either due to a `Upgrade` header or `CONNECT` method. */ diff --git a/node_modules/undici-types/errors.d.ts b/node_modules/undici-types/errors.d.ts index 7923ddd..f6fb73b 100644 --- a/node_modules/undici-types/errors.d.ts +++ b/node_modules/undici-types/errors.d.ts @@ -125,4 +125,25 @@ declare namespace Errors { name: 'ResponseExceededMaxSizeError'; code: 'UND_ERR_RES_EXCEEDED_MAX_SIZE'; } + + export class RequestRetryError extends UndiciError { + constructor ( + message: string, + statusCode: number, + headers?: IncomingHttpHeaders | string[] | null, + body?: null | Record | string + ); + name: 'RequestRetryError'; + code: 'UND_ERR_REQ_RETRY'; + statusCode: number; + data: { + count: number; + }; + headers: Record; + } + + export class SecureProxyConnectionError extends UndiciError { + name: 'SecureProxyConnectionError'; + code: 'UND_ERR_PRX_TLS'; + } } diff --git a/node_modules/undici-types/eventsource.d.ts b/node_modules/undici-types/eventsource.d.ts index 0615bf4..eecda8c 100644 --- a/node_modules/undici-types/eventsource.d.ts +++ b/node_modules/undici-types/eventsource.d.ts @@ -1,4 +1,5 @@ import { MessageEvent, ErrorEvent } from './websocket' +import Dispatcher from './dispatcher' import { EventTarget, @@ -50,12 +51,13 @@ interface EventSource extends EventTarget { export declare const EventSource: { prototype: EventSource - new (url: string | URL, init: EventSourceInit): EventSource + new (url: string | URL, init?: EventSourceInit): EventSource readonly CLOSED: 2 readonly CONNECTING: 0 readonly OPEN: 1 } interface EventSourceInit { - withCredentials?: boolean + withCredentials?: boolean, + dispatcher?: Dispatcher } diff --git a/node_modules/undici-types/fetch.d.ts b/node_modules/undici-types/fetch.d.ts index 18eadb6..7e94375 100644 --- a/node_modules/undici-types/fetch.d.ts +++ b/node_modules/undici-types/fetch.d.ts @@ -85,7 +85,7 @@ export declare class Headers implements SpecIterable<[string, string]> { readonly keys: () => SpecIterableIterator readonly values: () => SpecIterableIterator readonly entries: () => SpecIterableIterator<[string, string]> - readonly [Symbol.iterator]: () => SpecIterator<[string, string]> + readonly [Symbol.iterator]: () => SpecIterableIterator<[string, string]> } export type RequestCache = @@ -163,6 +163,7 @@ export declare class Request extends BodyMixin { readonly method: string readonly mode: RequestMode readonly redirect: RequestRedirect + readonly referrer: string readonly referrerPolicy: ReferrerPolicy readonly url: string diff --git a/node_modules/undici-types/formdata.d.ts b/node_modules/undici-types/formdata.d.ts index df29a57..e676b11 100644 --- a/node_modules/undici-types/formdata.d.ts +++ b/node_modules/undici-types/formdata.d.ts @@ -2,7 +2,7 @@ /// import { File } from './file' -import { SpecIterator, SpecIterableIterator } from './fetch' +import { SpecIterableIterator } from './fetch' /** * A `string` or `File` that represents a single value from a set of `FormData` key-value pairs. diff --git a/node_modules/undici-types/index.d.ts b/node_modules/undici-types/index.d.ts index 05f01ea..f6be35c 100644 --- a/node_modules/undici-types/index.d.ts +++ b/node_modules/undici-types/index.d.ts @@ -14,9 +14,11 @@ import MockPool from'./mock-pool' import MockAgent from'./mock-agent' import mockErrors from'./mock-errors' import ProxyAgent from'./proxy-agent' +import EnvHttpProxyAgent from './env-http-proxy-agent' import RetryHandler from'./retry-handler' import RetryAgent from'./retry-agent' import { request, pipeline, stream, connect, upgrade } from './api' +import interceptors from './interceptors' export * from './util' export * from './cookies' @@ -31,7 +33,7 @@ export * from './content-type' export * from './cache' export { Interceptable } from './mock-interceptor' -export { Dispatcher, BalancedPool, Pool, Client, buildConnector, errors, Agent, request, stream, pipeline, connect, upgrade, setGlobalDispatcher, getGlobalDispatcher, setGlobalOrigin, getGlobalOrigin, MockClient, MockPool, MockAgent, mockErrors, ProxyAgent, RedirectHandler, DecoratorHandler, RetryHandler, RetryAgent } +export { Dispatcher, BalancedPool, Pool, Client, buildConnector, errors, Agent, request, stream, pipeline, connect, upgrade, setGlobalDispatcher, getGlobalDispatcher, setGlobalOrigin, getGlobalOrigin, interceptors, MockClient, MockPool, MockAgent, mockErrors, ProxyAgent, EnvHttpProxyAgent, RedirectHandler, DecoratorHandler, RetryHandler, RetryAgent } export default Undici declare namespace Undici { @@ -40,7 +42,7 @@ declare namespace Undici { var RedirectHandler: typeof import ('./handlers').RedirectHandler var DecoratorHandler: typeof import ('./handlers').DecoratorHandler var RetryHandler: typeof import ('./retry-handler').default - var createRedirectInterceptor: typeof import ('./interceptors').createRedirectInterceptor + var createRedirectInterceptor: typeof import ('./interceptors').default.createRedirectInterceptor var BalancedPool: typeof import('./balanced-pool').default; var Client: typeof import('./client').default; var buildConnector: typeof import('./connector').default; @@ -65,4 +67,5 @@ declare namespace Undici { var File: typeof import('./file').File; var FileReader: typeof import('./filereader').FileReader; var caches: typeof import('./cache').caches; + var interceptors: typeof import('./interceptors').default; } diff --git a/node_modules/undici-types/interceptors.d.ts b/node_modules/undici-types/interceptors.d.ts index 047ac17..fab6da0 100644 --- a/node_modules/undici-types/interceptors.d.ts +++ b/node_modules/undici-types/interceptors.d.ts @@ -1,5 +1,15 @@ import Dispatcher from "./dispatcher"; +import RetryHandler from "./retry-handler"; -type RedirectInterceptorOpts = { maxRedirections?: number } +export default Interceptors; -export declare function createRedirectInterceptor (opts: RedirectInterceptorOpts): Dispatcher.DispatchInterceptor +declare namespace Interceptors { + export type DumpInterceptorOpts = { maxSize?: number } + export type RetryInterceptorOpts = RetryHandler.RetryOptions + export type RedirectInterceptorOpts = { maxRedirections?: number } + + export function createRedirectInterceptor(opts: RedirectInterceptorOpts): Dispatcher.DispatcherComposeInterceptor + export function dump(opts?: DumpInterceptorOpts): Dispatcher.DispatcherComposeInterceptor + export function retry(opts?: RetryInterceptorOpts): Dispatcher.DispatcherComposeInterceptor + export function redirect(opts?: RedirectInterceptorOpts): Dispatcher.DispatcherComposeInterceptor +} diff --git a/node_modules/undici-types/mock-interceptor.d.ts b/node_modules/undici-types/mock-interceptor.d.ts index 6b3961c..33f3f14 100644 --- a/node_modules/undici-types/mock-interceptor.d.ts +++ b/node_modules/undici-types/mock-interceptor.d.ts @@ -71,11 +71,11 @@ declare namespace MockInterceptor { export interface MockResponseCallbackOptions { path: string; - origin: string; method: string; - body?: BodyInit | Dispatcher.DispatchOptions['body']; - headers: Headers | Record; - maxRedirections: number; + headers?: Headers | Record; + origin?: string; + body?: BodyInit | Dispatcher.DispatchOptions['body'] | null; + maxRedirections?: number; } export type MockResponseDataHandler = ( diff --git a/node_modules/undici-types/package.json b/node_modules/undici-types/package.json index 3fecafc..4010eee 100644 --- a/node_modules/undici-types/package.json +++ b/node_modules/undici-types/package.json @@ -1,6 +1,6 @@ { "name": "undici-types", - "version": "6.13.0", + "version": "6.19.8", "description": "A stand-alone types package for Undici", "homepage": "https://undici.nodejs.org", "bugs": { diff --git a/node_modules/undici-types/retry-agent.d.ts b/node_modules/undici-types/retry-agent.d.ts index cf559d9..963cea9 100644 --- a/node_modules/undici-types/retry-agent.d.ts +++ b/node_modules/undici-types/retry-agent.d.ts @@ -1,7 +1,4 @@ -import Agent from './agent' -import buildConnector from './connector'; import Dispatcher from './dispatcher' -import { IncomingHttpHeaders } from './header' import RetryHandler from './retry-handler' export default RetryAgent diff --git a/node_modules/undici-types/util.d.ts b/node_modules/undici-types/util.d.ts index 2a60414..77cf147 100644 --- a/node_modules/undici-types/util.d.ts +++ b/node_modules/undici-types/util.d.ts @@ -8,24 +8,11 @@ export namespace util { /** * Receives a header object and returns the parsed value. * @param headers Header object + * @param obj Object to specify a proxy object. Used to assign parsed values. + * @returns If `obj` is specified, it is equivalent to `obj`. */ export function parseHeaders( - headers: - | Record - | (Buffer | string | (Buffer | string)[])[] - ): Record; - /** - * Receives a header object and returns the parsed value. - * @param headers Header object - * @param obj Object to specify a proxy object. Used to assign parsed values. But, if `headers` is an object, it is not used. - * @returns If `headers` is an object, it is `headers`. Otherwise, if `obj` is specified, it is equivalent to `obj`. - */ - export function parseHeaders< - H extends - | Record - | (Buffer | string | (Buffer | string)[])[] - >( - headers: H, - obj?: H extends any[] ? Record : never + headers: (Buffer | string | (Buffer | string)[])[], + obj?: Record ): Record; } diff --git a/node_modules/undici-types/webidl.d.ts b/node_modules/undici-types/webidl.d.ts index 1e362d6..8a23a85 100644 --- a/node_modules/undici-types/webidl.d.ts +++ b/node_modules/undici-types/webidl.d.ts @@ -73,14 +73,14 @@ interface WebidlConverters { /** * @see https://webidl.spec.whatwg.org/#es-DOMString */ - DOMString (V: unknown, opts?: { + DOMString (V: unknown, prefix: string, argument: string, opts?: { legacyNullToEmptyString: boolean }): string /** * @see https://webidl.spec.whatwg.org/#es-ByteString */ - ByteString (V: unknown): string + ByteString (V: unknown, prefix: string, argument: string): string /** * @see https://webidl.spec.whatwg.org/#es-USVString @@ -204,7 +204,7 @@ export interface Webidl { */ dictionaryConverter (converters: { key: string, - defaultValue?: unknown, + defaultValue?: () => unknown, required?: boolean, converter: (...args: unknown[]) => unknown, allowedValues?: unknown[] @@ -218,8 +218,5 @@ export interface Webidl { converter: Converter ): (V: unknown) => ReturnType | null - argumentLengthCheck (args: { length: number }, min: number, context: { - header: string - message?: string - }): void + argumentLengthCheck (args: { length: number }, min: number, context: string): void } diff --git a/node_modules/unicode-canonical-property-names-ecmascript/README.md b/node_modules/unicode-canonical-property-names-ecmascript/README.md index 3e86abc..62ff5ba 100644 --- a/node_modules/unicode-canonical-property-names-ecmascript/README.md +++ b/node_modules/unicode-canonical-property-names-ecmascript/README.md @@ -1,4 +1,4 @@ -# unicode-canonical-property-names-ecmascript [![Build status](https://travis-ci.org/mathiasbynens/unicode-canonical-property-names-ecmascript.svg?branch=main)](https://travis-ci.org/mathiasbynens/unicode-canonical-property-names-ecmascript) [![unicode-canonical-property-names-ecmascript on npm](https://img.shields.io/npm/v/unicode-canonical-property-names-ecmascript)](https://www.npmjs.com/package/unicode-canonical-property-names-ecmascript) +# unicode-canonical-property-names-ecmascript [![unicode-canonical-property-names-ecmascript on npm](https://img.shields.io/npm/v/unicode-canonical-property-names-ecmascript)](https://www.npmjs.com/package/unicode-canonical-property-names-ecmascript) _unicode-canonical-property-names-ecmascript_ exports the set of canonical Unicode property names that are supported in [ECMAScript RegExp property escapes](https://github.com/tc39/proposal-regexp-unicode-property-escapes). diff --git a/node_modules/unicode-canonical-property-names-ecmascript/package.json b/node_modules/unicode-canonical-property-names-ecmascript/package.json index dc072e2..2115889 100644 --- a/node_modules/unicode-canonical-property-names-ecmascript/package.json +++ b/node_modules/unicode-canonical-property-names-ecmascript/package.json @@ -1,6 +1,6 @@ { "name": "unicode-canonical-property-names-ecmascript", - "version": "2.0.0", + "version": "2.0.1", "description": "The set of canonical Unicode property names supported in ECMAScript RegExp property escapes.", "homepage": "https://github.com/mathiasbynens/unicode-canonical-property-names-ecmascript", "main": "index.js", diff --git a/node_modules/unicode-match-property-value-ecmascript/README.md b/node_modules/unicode-match-property-value-ecmascript/README.md index 1071c4c..7850ef4 100644 --- a/node_modules/unicode-match-property-value-ecmascript/README.md +++ b/node_modules/unicode-match-property-value-ecmascript/README.md @@ -1,4 +1,4 @@ -# unicode-match-property-value-ecmascript [![Build status](https://travis-ci.org/mathiasbynens/unicode-match-property-value-ecmascript.svg?branch=main)](https://travis-ci.org/mathiasbynens/unicode-match-property-value-ecmascript) [![unicode-match-property-value-ecmascript on npm](https://img.shields.io/npm/v/unicode-match-property-value-ecmascript)](https://www.npmjs.com/package/unicode-match-property-value-ecmascript) +# unicode-match-property-value-ecmascript [![unicode-match-property-value-ecmascript on npm](https://img.shields.io/npm/v/unicode-match-property-value-ecmascript)](https://www.npmjs.com/package/unicode-match-property-value-ecmascript) _unicode-match-property-value-ecmascript_ matches a given Unicode property value or [property value alias](https://github.com/mathiasbynens/unicode-property-value-aliases) to its canonical property value without applying [loose matching](https://github.com/mathiasbynens/unicode-loose-match), per the algorithm used for [RegExp Unicode property escapes in ECMAScript](https://github.com/tc39/proposal-regexp-unicode-property-escapes). Consider it a strict alternative to loose matching. diff --git a/node_modules/unicode-match-property-value-ecmascript/data/mappings.js b/node_modules/unicode-match-property-value-ecmascript/data/mappings.js index 367ee9a..f1ccffd 100644 --- a/node_modules/unicode-match-property-value-ecmascript/data/mappings.js +++ b/node_modules/unicode-match-property-value-ecmascript/data/mappings.js @@ -120,6 +120,7 @@ module.exports = new Map([ ['Elba', 'Elbasan'], ['Elym', 'Elymaic'], ['Ethi', 'Ethiopic'], + ['Gara', 'Garay'], ['Geor', 'Georgian'], ['Glag', 'Glagolitic'], ['Gong', 'Gunjala_Gondi'], @@ -128,6 +129,7 @@ module.exports = new Map([ ['Gran', 'Grantha'], ['Grek', 'Greek'], ['Gujr', 'Gujarati'], + ['Gukh', 'Gurung_Khema'], ['Guru', 'Gurmukhi'], ['Hang', 'Hangul'], ['Hani', 'Han'], @@ -150,6 +152,7 @@ module.exports = new Map([ ['Khoj', 'Khojki'], ['Kits', 'Khitan_Small_Script'], ['Knda', 'Kannada'], + ['Krai', 'Kirat_Rai'], ['Kthi', 'Kaithi'], ['Lana', 'Tai_Tham'], ['Laoo', 'Lao'], @@ -186,6 +189,7 @@ module.exports = new Map([ ['Nshu', 'Nushu'], ['Ogam', 'Ogham'], ['Olck', 'Ol_Chiki'], + ['Onao', 'Ol_Onal'], ['Orkh', 'Old_Turkic'], ['Orya', 'Oriya'], ['Osge', 'Osage'], @@ -217,6 +221,7 @@ module.exports = new Map([ ['Sora', 'Sora_Sompeng'], ['Soyo', 'Soyombo'], ['Sund', 'Sundanese'], + ['Sunu', 'Sunuwar'], ['Sylo', 'Syloti_Nagri'], ['Syrc', 'Syriac'], ['Tagb', 'Tagbanwa'], @@ -234,7 +239,9 @@ module.exports = new Map([ ['Tibt', 'Tibetan'], ['Tirh', 'Tirhuta'], ['Tnsa', 'Tangsa'], + ['Todr', 'Todhri'], ['Toto', 'Toto'], + ['Tutg', 'Tulu_Tigalari'], ['Ugar', 'Ugaritic'], ['Vaii', 'Vai'], ['Vith', 'Vithkuqi'], @@ -284,6 +291,7 @@ module.exports = new Map([ ['Elbasan', 'Elbasan'], ['Elymaic', 'Elymaic'], ['Ethiopic', 'Ethiopic'], + ['Garay', 'Garay'], ['Georgian', 'Georgian'], ['Glagolitic', 'Glagolitic'], ['Gunjala_Gondi', 'Gunjala_Gondi'], @@ -292,6 +300,7 @@ module.exports = new Map([ ['Grantha', 'Grantha'], ['Greek', 'Greek'], ['Gujarati', 'Gujarati'], + ['Gurung_Khema', 'Gurung_Khema'], ['Gurmukhi', 'Gurmukhi'], ['Hangul', 'Hangul'], ['Han', 'Han'], @@ -313,6 +322,7 @@ module.exports = new Map([ ['Khojki', 'Khojki'], ['Khitan_Small_Script', 'Khitan_Small_Script'], ['Kannada', 'Kannada'], + ['Kirat_Rai', 'Kirat_Rai'], ['Kaithi', 'Kaithi'], ['Tai_Tham', 'Tai_Tham'], ['Lao', 'Lao'], @@ -346,6 +356,7 @@ module.exports = new Map([ ['Nushu', 'Nushu'], ['Ogham', 'Ogham'], ['Ol_Chiki', 'Ol_Chiki'], + ['Ol_Onal', 'Ol_Onal'], ['Old_Turkic', 'Old_Turkic'], ['Oriya', 'Oriya'], ['Osage', 'Osage'], @@ -377,6 +388,7 @@ module.exports = new Map([ ['Sora_Sompeng', 'Sora_Sompeng'], ['Soyombo', 'Soyombo'], ['Sundanese', 'Sundanese'], + ['Sunuwar', 'Sunuwar'], ['Syloti_Nagri', 'Syloti_Nagri'], ['Syriac', 'Syriac'], ['Tagbanwa', 'Tagbanwa'], @@ -393,6 +405,8 @@ module.exports = new Map([ ['Tibetan', 'Tibetan'], ['Tirhuta', 'Tirhuta'], ['Tangsa', 'Tangsa'], + ['Todhri', 'Todhri'], + ['Tulu_Tigalari', 'Tulu_Tigalari'], ['Ugaritic', 'Ugaritic'], ['Vai', 'Vai'], ['Vithkuqi', 'Vithkuqi'], @@ -446,6 +460,7 @@ module.exports = new Map([ ['Elba', 'Elbasan'], ['Elym', 'Elymaic'], ['Ethi', 'Ethiopic'], + ['Gara', 'Garay'], ['Geor', 'Georgian'], ['Glag', 'Glagolitic'], ['Gong', 'Gunjala_Gondi'], @@ -454,6 +469,7 @@ module.exports = new Map([ ['Gran', 'Grantha'], ['Grek', 'Greek'], ['Gujr', 'Gujarati'], + ['Gukh', 'Gurung_Khema'], ['Guru', 'Gurmukhi'], ['Hang', 'Hangul'], ['Hani', 'Han'], @@ -476,6 +492,7 @@ module.exports = new Map([ ['Khoj', 'Khojki'], ['Kits', 'Khitan_Small_Script'], ['Knda', 'Kannada'], + ['Krai', 'Kirat_Rai'], ['Kthi', 'Kaithi'], ['Lana', 'Tai_Tham'], ['Laoo', 'Lao'], @@ -512,6 +529,7 @@ module.exports = new Map([ ['Nshu', 'Nushu'], ['Ogam', 'Ogham'], ['Olck', 'Ol_Chiki'], + ['Onao', 'Ol_Onal'], ['Orkh', 'Old_Turkic'], ['Orya', 'Oriya'], ['Osge', 'Osage'], @@ -543,6 +561,7 @@ module.exports = new Map([ ['Sora', 'Sora_Sompeng'], ['Soyo', 'Soyombo'], ['Sund', 'Sundanese'], + ['Sunu', 'Sunuwar'], ['Sylo', 'Syloti_Nagri'], ['Syrc', 'Syriac'], ['Tagb', 'Tagbanwa'], @@ -560,7 +579,9 @@ module.exports = new Map([ ['Tibt', 'Tibetan'], ['Tirh', 'Tirhuta'], ['Tnsa', 'Tangsa'], + ['Todr', 'Todhri'], ['Toto', 'Toto'], + ['Tutg', 'Tulu_Tigalari'], ['Ugar', 'Ugaritic'], ['Vaii', 'Vai'], ['Vith', 'Vithkuqi'], @@ -610,6 +631,7 @@ module.exports = new Map([ ['Elbasan', 'Elbasan'], ['Elymaic', 'Elymaic'], ['Ethiopic', 'Ethiopic'], + ['Garay', 'Garay'], ['Georgian', 'Georgian'], ['Glagolitic', 'Glagolitic'], ['Gunjala_Gondi', 'Gunjala_Gondi'], @@ -618,6 +640,7 @@ module.exports = new Map([ ['Grantha', 'Grantha'], ['Greek', 'Greek'], ['Gujarati', 'Gujarati'], + ['Gurung_Khema', 'Gurung_Khema'], ['Gurmukhi', 'Gurmukhi'], ['Hangul', 'Hangul'], ['Han', 'Han'], @@ -639,6 +662,7 @@ module.exports = new Map([ ['Khojki', 'Khojki'], ['Khitan_Small_Script', 'Khitan_Small_Script'], ['Kannada', 'Kannada'], + ['Kirat_Rai', 'Kirat_Rai'], ['Kaithi', 'Kaithi'], ['Tai_Tham', 'Tai_Tham'], ['Lao', 'Lao'], @@ -672,6 +696,7 @@ module.exports = new Map([ ['Nushu', 'Nushu'], ['Ogham', 'Ogham'], ['Ol_Chiki', 'Ol_Chiki'], + ['Ol_Onal', 'Ol_Onal'], ['Old_Turkic', 'Old_Turkic'], ['Oriya', 'Oriya'], ['Osage', 'Osage'], @@ -703,6 +728,7 @@ module.exports = new Map([ ['Sora_Sompeng', 'Sora_Sompeng'], ['Soyombo', 'Soyombo'], ['Sundanese', 'Sundanese'], + ['Sunuwar', 'Sunuwar'], ['Syloti_Nagri', 'Syloti_Nagri'], ['Syriac', 'Syriac'], ['Tagbanwa', 'Tagbanwa'], @@ -719,6 +745,8 @@ module.exports = new Map([ ['Tibetan', 'Tibetan'], ['Tirhuta', 'Tirhuta'], ['Tangsa', 'Tangsa'], + ['Todhri', 'Todhri'], + ['Tulu_Tigalari', 'Tulu_Tigalari'], ['Ugaritic', 'Ugaritic'], ['Vai', 'Vai'], ['Vithkuqi', 'Vithkuqi'], diff --git a/node_modules/unicode-match-property-value-ecmascript/package.json b/node_modules/unicode-match-property-value-ecmascript/package.json index 1d3076c..09156aa 100644 --- a/node_modules/unicode-match-property-value-ecmascript/package.json +++ b/node_modules/unicode-match-property-value-ecmascript/package.json @@ -1,6 +1,6 @@ { "name": "unicode-match-property-value-ecmascript", - "version": "2.1.0", + "version": "2.2.0", "description": "Match a Unicode property or property alias to its canonical property name per the algorithm used for RegExp Unicode property escapes in ECMAScript.", "homepage": "https://github.com/mathiasbynens/unicode-match-property-value-ecmascript", "main": "index.js", @@ -30,7 +30,7 @@ "devDependencies": { "ava": "*", "jsesc": "^3.0.2", - "unicode-property-value-aliases-ecmascript": "^2.1.0" + "unicode-property-value-aliases-ecmascript": "^2.2.0" }, "scripts": { "build": "node scripts/build.js", diff --git a/node_modules/update-browserslist-db/index.d.ts b/node_modules/update-browserslist-db/index.d.ts index 05ef411..7ae5acd 100644 --- a/node_modules/update-browserslist-db/index.d.ts +++ b/node_modules/update-browserslist-db/index.d.ts @@ -1,6 +1,6 @@ /** * Run update and print output to terminal. */ -declare function updateDb(print?: (str: string) => void): Promise +declare function updateDb(print?: (str: string) => void): void export = updateDb diff --git a/node_modules/update-browserslist-db/index.js b/node_modules/update-browserslist-db/index.js index f13c6e6..1246914 100644 --- a/node_modules/update-browserslist-db/index.js +++ b/node_modules/update-browserslist-db/index.js @@ -1,7 +1,7 @@ -let { existsSync, readFileSync, writeFileSync } = require('fs') let { execSync } = require('child_process') -let { join } = require('path') let escalade = require('escalade/sync') +let { existsSync, readFileSync, writeFileSync } = require('fs') +let { join } = require('path') let pico = require('picocolors') const { detectEOL, detectIndent } = require('./utils') diff --git a/node_modules/update-browserslist-db/package.json b/node_modules/update-browserslist-db/package.json index 6a577f7..714bdec 100644 --- a/node_modules/update-browserslist-db/package.json +++ b/node_modules/update-browserslist-db/package.json @@ -1,6 +1,6 @@ { "name": "update-browserslist-db", - "version": "1.1.0", + "version": "1.1.1", "description": "CLI tool to update caniuse-lite to refresh target browsers from Browserslist config", "keywords": [ "caniuse", @@ -30,8 +30,8 @@ "./package.json": "./package.json" }, "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "peerDependencies": { "browserslist": ">= 4.21.0" diff --git a/node_modules/watchpack/lib/watchpack.js b/node_modules/watchpack/lib/watchpack.js index ddc9138..0b567fc 100644 --- a/node_modules/watchpack/lib/watchpack.js +++ b/node_modules/watchpack/lib/watchpack.js @@ -23,18 +23,28 @@ function addWatchersToSet(watchers, set) { } const stringToRegexp = ignored => { + if (ignored.length === 0) { + return; + } const source = globToRegExp(ignored, { globstar: true, extended: true }) .source; - const matchingStart = source.slice(0, source.length - 1) + "(?:$|\\/)"; - return matchingStart; + return source.slice(0, source.length - 1) + "(?:$|\\/)"; }; const ignoredToFunction = ignored => { if (Array.isArray(ignored)) { - const regexp = new RegExp(ignored.map(i => stringToRegexp(i)).join("|")); + const stringRegexps = ignored.map(i => stringToRegexp(i)).filter(Boolean); + if (stringRegexps.length === 0) { + return () => false; + } + const regexp = new RegExp(stringRegexps.join("|")); return x => regexp.test(x.replace(/\\/g, "/")); } else if (typeof ignored === "string") { - const regexp = new RegExp(stringToRegexp(ignored)); + const stringRegexp = stringToRegexp(ignored); + if (!stringRegexp) { + return () => false; + } + const regexp = new RegExp(stringRegexp); return x => regexp.test(x.replace(/\\/g, "/")); } else if (ignored instanceof RegExp) { return x => ignored.test(x.replace(/\\/g, "/")); diff --git a/node_modules/watchpack/package.json b/node_modules/watchpack/package.json index 7f678ba..997e606 100644 --- a/node_modules/watchpack/package.json +++ b/node_modules/watchpack/package.json @@ -1,6 +1,6 @@ { "name": "watchpack", - "version": "2.4.1", + "version": "2.4.2", "description": "", "main": "./lib/watchpack.js", "directories": { diff --git a/node_modules/webpack/README.md b/node_modules/webpack/README.md index 1babcc0..cd67c7f 100644 --- a/node_modules/webpack/README.md +++ b/node_modules/webpack/README.md @@ -8,9 +8,10 @@ [![npm][npm]][npm-url] [![node][node]][node-url] +[![builds1][builds1]][builds1-url] [![builds2][builds2]][builds2-url] +[![dependency-review][dependency-review]][dependency-review-url] [![coverage][cover]][cover-url] -[![licenses][licenses]][licenses-url] [![PR's welcome][prs]][prs-url]
@@ -38,7 +39,7 @@ - +

webpack

@@ -716,9 +717,11 @@ src="https://static.monei.net/monei-logo.svg" height="30" alt="MONEI"> [node-url]: https://nodejs.org [prs]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg [prs-url]: https://webpack.js.org/contribute/ -[builds2]: https://dev.azure.com/webpack/webpack/_apis/build/status/webpack.webpack -[builds2-url]: https://dev.azure.com/webpack/webpack/_build/latest?definitionId=3 -[licenses-url]: https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fwebpack%2Fwebpack?ref=badge_shield -[licenses]: https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fwebpack%2Fwebpack.svg?type=shield +[builds1]: https://github.com/webpack/webpack/actions/workflows/test.yml/badge.svg +[builds1-url]: https://github.com/webpack/webpack/actions/workflows/test.yml +[builds2]: https://dev.azure.com/webpack/webpack/_apis/build/status%2Fwebpack.webpack?branchName=main +[builds2-url]: https://dev.azure.com/webpack/webpack/_build/latest?definitionId=3&branchName=main +[dependency-review-url]: https://github.com/webpack/webpack/actions/workflows/dependency-review.yml +[dependency-review]: https://github.com/webpack/webpack/actions/workflows/dependency-review.yml/badge.svg [cover]: https://codecov.io/gh/webpack/webpack/branch/master/graph/badge.svg?token=mDP3mQJNnn [cover-url]: https://codecov.io/gh/webpack/webpack diff --git a/node_modules/webpack/bin/webpack.js b/node_modules/webpack/bin/webpack.js index 3af7d8f..cbb748f 100755 --- a/node_modules/webpack/bin/webpack.js +++ b/node_modules/webpack/bin/webpack.js @@ -80,8 +80,8 @@ const runCli = cli => { if (pkg.type === "module" || /\.mjs/i.test(pkg.bin[cli.binName])) { import(path.resolve(path.dirname(pkgPath), pkg.bin[cli.binName])).catch( - error => { - console.error(error); + err => { + console.error(err); process.exitCode = 1; } ); @@ -113,8 +113,7 @@ if (!cli.installed) { const fs = require("graceful-fs"); const readLine = require("readline"); - const notify = - "CLI for webpack must be installed.\n" + ` ${cli.name} (${cli.url})\n`; + const notify = `CLI for webpack must be installed.\n ${cli.name} (${cli.url})\n`; console.error(notify); @@ -137,7 +136,7 @@ if (!cli.installed) { )} ${cli.package}".` ); - const question = `Do you want to install 'webpack-cli' (yes/no): `; + const question = "Do you want to install 'webpack-cli' (yes/no): "; const questionInterface = readLine.createInterface({ input: process.stdin, @@ -178,8 +177,8 @@ if (!cli.installed) { .then(() => { runCli(cli); }) - .catch(error => { - console.error(error); + .catch(err => { + console.error(err); process.exitCode = 1; }); }); diff --git a/node_modules/webpack/hot/log.js b/node_modules/webpack/hot/log.js index 281771d..6375882 100644 --- a/node_modules/webpack/hot/log.js +++ b/node_modules/webpack/hot/log.js @@ -73,7 +73,6 @@ module.exports.formatError = function (err) { return message; } else if (stack.indexOf(message) < 0) { return message + "\n" + stack; - } else { - return stack; } + return stack; }; diff --git a/node_modules/webpack/hot/only-dev-server.js b/node_modules/webpack/hot/only-dev-server.js index 6230922..5979ab5 100644 --- a/node_modules/webpack/hot/only-dev-server.js +++ b/node_modules/webpack/hot/only-dev-server.js @@ -2,7 +2,7 @@ MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ -/*globals __webpack_hash__ */ +/* globals __webpack_hash__ */ if (module.hot) { /** @type {undefined|string} */ var lastHash; diff --git a/node_modules/webpack/hot/poll.js b/node_modules/webpack/hot/poll.js index fd601e2..b87c252 100644 --- a/node_modules/webpack/hot/poll.js +++ b/node_modules/webpack/hot/poll.js @@ -2,7 +2,7 @@ MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ -/*globals __resourceQuery */ +/* globals __resourceQuery */ if (module.hot) { var hotPollInterval = +__resourceQuery.slice(1) || 10 * 60 * 1000; var log = require("./log"); diff --git a/node_modules/webpack/hot/signal.js b/node_modules/webpack/hot/signal.js index a752e89..36a0cbe 100644 --- a/node_modules/webpack/hot/signal.js +++ b/node_modules/webpack/hot/signal.js @@ -2,7 +2,7 @@ MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ -/*globals __resourceQuery */ +/* globals __resourceQuery */ if (module.hot) { var log = require("./log"); diff --git a/node_modules/webpack/lib/APIPlugin.js b/node_modules/webpack/lib/APIPlugin.js index f76f771..a36422e 100644 --- a/node_modules/webpack/lib/APIPlugin.js +++ b/node_modules/webpack/lib/APIPlugin.js @@ -144,6 +144,7 @@ class APIPlugin { constructor(options = {}) { this.options = options; } + /** * Apply the plugin * @param {Compiler} compiler the compiler instance @@ -213,7 +214,7 @@ class APIPlugin { * @param {JavascriptParser} parser the parser */ const handler = parser => { - Object.keys(REPLACEMENTS).forEach(key => { + for (const key of Object.keys(REPLACEMENTS)) { const info = REPLACEMENTS[key]; parser.hooks.expression.for(key).tap(PLUGIN_NAME, expression => { const dep = toConstantDependency(parser, info.expr, info.req); @@ -237,7 +238,7 @@ class APIPlugin { .for(key) .tap(PLUGIN_NAME, evaluateToString(info.type)); } - }); + } parser.hooks.expression .for("__webpack_layer__") @@ -277,7 +278,7 @@ class APIPlugin { (parser.state.module.buildInfo).moduleConcatenationBailout = "__webpack_module__.id"; const dep = new ConstDependency( - parser.state.module.moduleArgument + ".id", + `${parser.state.module.moduleArgument}.id`, /** @type {Range} */ (expr.range), [RuntimeGlobals.moduleId] ); diff --git a/node_modules/webpack/lib/AbstractMethodError.js b/node_modules/webpack/lib/AbstractMethodError.js index bbf2d08..7a9d2f9 100644 --- a/node_modules/webpack/lib/AbstractMethodError.js +++ b/node_modules/webpack/lib/AbstractMethodError.js @@ -13,18 +13,22 @@ const CURRENT_METHOD_REGEXP = /at ([a-zA-Z0-9_.]*)/; * @returns {string} message */ function createMessage(method) { - return `Abstract method${method ? " " + method : ""}. Must be overridden.`; + return `Abstract method${method ? ` ${method}` : ""}. Must be overridden.`; } /** * @constructor */ function Message() { - /** @type {string} */ + /** @type {string | undefined} */ this.stack = undefined; Error.captureStackTrace(this); - /** @type {RegExpMatchArray} */ - const match = this.stack.split("\n")[3].match(CURRENT_METHOD_REGEXP); + /** @type {RegExpMatchArray | null} */ + const match = + /** @type {string} */ + (/** @type {unknown} */ (this.stack)) + .split("\n")[3] + .match(CURRENT_METHOD_REGEXP); this.message = match && match[1] ? createMessage(match[1]) : createMessage(); } @@ -32,12 +36,13 @@ function Message() { /** * Error for abstract method * @example + * ```js * class FooClass { * abstractMethod() { * throw new AbstractMethodError(); // error message: Abstract method FooClass.abstractMethod. Must be overridden. * } * } - * + * ``` */ class AbstractMethodError extends WebpackError { constructor() { diff --git a/node_modules/webpack/lib/AsyncDependenciesBlock.js b/node_modules/webpack/lib/AsyncDependenciesBlock.js index 539c20c..a5a346b 100644 --- a/node_modules/webpack/lib/AsyncDependenciesBlock.js +++ b/node_modules/webpack/lib/AsyncDependenciesBlock.js @@ -39,7 +39,7 @@ class AsyncDependenciesBlock extends DependenciesBlock { } /** - * @returns {string | undefined} The name of the chunk + * @returns {string | null | undefined} The name of the chunk */ get chunkName() { return this.groupOptions.name; diff --git a/node_modules/webpack/lib/AutomaticPrefetchPlugin.js b/node_modules/webpack/lib/AutomaticPrefetchPlugin.js index 60a365e..991ffc9 100644 --- a/node_modules/webpack/lib/AutomaticPrefetchPlugin.js +++ b/node_modules/webpack/lib/AutomaticPrefetchPlugin.js @@ -45,7 +45,7 @@ class AutomaticPrefetchPlugin { "AutomaticPrefetchPlugin", (compilation, callback) => { if (!lastModules) return callback(); - asyncLib.forEach( + asyncLib.each( lastModules, (m, callback) => { compilation.addModuleChain( diff --git a/node_modules/webpack/lib/BannerPlugin.js b/node_modules/webpack/lib/BannerPlugin.js index 7b27049..e0e19a5 100644 --- a/node_modules/webpack/lib/BannerPlugin.js +++ b/node_modules/webpack/lib/BannerPlugin.js @@ -14,10 +14,13 @@ const createSchemaValidation = require("./util/create-schema-validation"); /** @typedef {import("../declarations/plugins/BannerPlugin").BannerFunction} BannerFunction */ /** @typedef {import("../declarations/plugins/BannerPlugin").BannerPluginArgument} BannerPluginArgument */ /** @typedef {import("../declarations/plugins/BannerPlugin").BannerPluginOptions} BannerPluginOptions */ +/** @typedef {import("./Compilation").PathData} PathData */ /** @typedef {import("./Compiler")} Compiler */ +/** @typedef {import("./TemplatedPathPlugin").TemplatePath} TemplatePath */ const validate = createSchemaValidation( - require("../schemas/plugins/BannerPlugin.check.js"), + /** @type {(function(typeof import("../schemas/plugins/BannerPlugin.json")): boolean)} */ + (require("../schemas/plugins/BannerPlugin.check.js")), () => require("../schemas/plugins/BannerPlugin.json"), { name: "Banner Plugin", @@ -59,6 +62,7 @@ class BannerPlugin { const bannerOption = options.banner; if (typeof bannerOption === "function") { const getBanner = bannerOption; + /** @type {BannerFunction} */ this.banner = this.options.raw ? getBanner : /** @type {BannerFunction} */ data => wrapComment(getBanner(data)); @@ -66,6 +70,7 @@ class BannerPlugin { const banner = this.options.raw ? bannerOption : wrapComment(bannerOption); + /** @type {BannerFunction} */ this.banner = () => banner; } } @@ -103,15 +108,17 @@ class BannerPlugin { continue; } - const data = { - chunk, - filename: file - }; + /** @type {PathData} */ + const data = { chunk, filename: file }; - const comment = compilation.getPath(banner, data); + const comment = compilation.getPath( + /** @type {TemplatePath} */ + (banner), + data + ); compilation.updateAsset(file, old => { - let cached = cache.get(old); + const cached = cache.get(old); if (!cached || cached.comment !== comment) { const source = options.footer ? new ConcatSource(old, "\n", comment) diff --git a/node_modules/webpack/lib/Cache.js b/node_modules/webpack/lib/Cache.js index 8d982e1..055ad6d 100644 --- a/node_modules/webpack/lib/Cache.js +++ b/node_modules/webpack/lib/Cache.js @@ -38,16 +38,14 @@ const { * @param {function(Error=): void} callback callback * @returns {function(Error=): void} callback */ -const needCalls = (times, callback) => { - return err => { - if (--times === 0) { - return callback(err); - } - if (err && times > 0) { - times = 0; - return callback(err); - } - }; +const needCalls = (times, callback) => err => { + if (--times === 0) { + return callback(err); + } + if (err && times > 0) { + times = 0; + return callback(err); + } }; class Cache { diff --git a/node_modules/webpack/lib/CacheFacade.js b/node_modules/webpack/lib/CacheFacade.js index 810438b..eece963 100644 --- a/node_modules/webpack/lib/CacheFacade.js +++ b/node_modules/webpack/lib/CacheFacade.js @@ -38,6 +38,7 @@ class MultiItemCache { */ constructor(items) { this._items = items; + // eslint-disable-next-line no-constructor-return if (items.length === 1) return /** @type {any} */ (items[0]); } @@ -59,12 +60,11 @@ class MultiItemCache { * @param {number} i index * @returns {Promise} promise with the data */ - const next = i => { - return this._items[i].getPromise().then(result => { + const next = i => + this._items[i].getPromise().then(result => { if (result !== undefined) return result; if (++i < this._items.length) return next(i); }); - }; return next(0); } diff --git a/node_modules/webpack/lib/CaseSensitiveModulesWarning.js b/node_modules/webpack/lib/CaseSensitiveModulesWarning.js index e4dec22..58a38e5 100644 --- a/node_modules/webpack/lib/CaseSensitiveModulesWarning.js +++ b/node_modules/webpack/lib/CaseSensitiveModulesWarning.js @@ -14,8 +14,8 @@ const WebpackError = require("./WebpackError"); * @param {Module[]} modules the modules to be sorted * @returns {Module[]} sorted version of original modules */ -const sortModules = modules => { - return modules.sort((a, b) => { +const sortModules = modules => + modules.sort((a, b) => { const aIdent = a.identifier(); const bIdent = b.identifier(); /* istanbul ignore next */ @@ -25,20 +25,19 @@ const sortModules = modules => { /* istanbul ignore next */ return 0; }); -}; /** * @param {Module[]} modules each module from throw * @param {ModuleGraph} moduleGraph the module graph * @returns {string} each message from provided modules */ -const createModulesListMessage = (modules, moduleGraph) => { - return modules +const createModulesListMessage = (modules, moduleGraph) => + modules .map(m => { let message = `* ${m.identifier()}`; const validReasons = Array.from( moduleGraph.getIncomingConnectionsByOriginModule(m).keys() - ).filter(x => x); + ).filter(Boolean); if (validReasons.length > 0) { message += `\n Used by ${validReasons.length} module(s), i. e.`; @@ -49,7 +48,6 @@ const createModulesListMessage = (modules, moduleGraph) => { return message; }) .join("\n"); -}; class CaseSensitiveModulesWarning extends WebpackError { /** diff --git a/node_modules/webpack/lib/Chunk.js b/node_modules/webpack/lib/Chunk.js index e308eae..3da64be 100644 --- a/node_modules/webpack/lib/Chunk.js +++ b/node_modules/webpack/lib/Chunk.js @@ -22,14 +22,15 @@ const { mergeRuntime } = require("./util/runtime"); /** @typedef {import("./ChunkGraph").ChunkFilterPredicate} ChunkFilterPredicate */ /** @typedef {import("./ChunkGraph").ChunkSizeOptions} ChunkSizeOptions */ /** @typedef {import("./ChunkGraph").ModuleFilterPredicate} ModuleFilterPredicate */ +/** @typedef {import("./ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("./ChunkGroup")} ChunkGroup */ /** @typedef {import("./ChunkGroup").ChunkGroupOptions} ChunkGroupOptions */ /** @typedef {import("./Compilation")} Compilation */ /** @typedef {import("./Compilation").AssetInfo} AssetInfo */ -/** @typedef {import("./Compilation").PathData} PathData */ /** @typedef {import("./Entrypoint").EntryOptions} EntryOptions */ /** @typedef {import("./Module")} Module */ /** @typedef {import("./ModuleGraph")} ModuleGraph */ +/** @typedef {import("./TemplatedPathPlugin").TemplatePath} TemplatePath */ /** @typedef {import("./util/Hash")} Hash */ /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */ @@ -81,9 +82,9 @@ class Chunk { this.idNameHints = new SortableSet(); /** @type {boolean} */ this.preventIntegration = false; - /** @type {(string | function(PathData, AssetInfo=): string) | undefined} */ + /** @type {TemplatePath | undefined} */ this.filenameTemplate = undefined; - /** @type {(string | function(PathData, AssetInfo=): string) | undefined} */ + /** @type {TemplatePath | undefined} */ this.cssFilenameTemplate = undefined; /** * @private @@ -124,11 +125,11 @@ class Chunk { return undefined; } else if (entryModules.length === 1) { return entryModules[0]; - } else { - throw new Error( - "Module.entryModule: Multiple entry modules are not supported by the deprecated API (Use the new ChunkGroup API)" - ); } + + throw new Error( + "Module.entryModule: Multiple entry modules are not supported by the deprecated API (Use the new ChunkGroup API)" + ); } /** @@ -271,9 +272,9 @@ class Chunk { if (chunkGraph.canChunksBeIntegrated(this, otherChunk)) { chunkGraph.integrateChunks(this, otherChunk); return true; - } else { - return false; } + + return false; } /** @@ -367,7 +368,9 @@ class Chunk { array = []; chunkModuleIdMap[/** @type {ChunkId} */ (asyncChunk.id)] = array; } - const moduleId = chunkGraph.getModuleId(module); + const moduleId = + /** @type {ModuleId} */ + (chunkGraph.getModuleId(module)); array.push(moduleId); chunkModuleHashMap[moduleId] = chunkGraph.getRenderedModuleHash( module, @@ -766,7 +769,7 @@ class Chunk { }); } } - if (list.length === 0) return undefined; + if (list.length === 0) return; list.sort((a, b) => { const cmp = /** @type {number} */ (b.order) - /** @type {number} */ (a.order); @@ -836,6 +839,36 @@ class Chunk { return chunkMaps; } + + /** + * @param {ChunkGraph} chunkGraph the chunk graph + * @param {string} type option name + * @param {boolean=} includeDirectChildren include direct children (by default only children of async children are included) + * @param {ChunkFilterPredicate=} filterFn function used to filter chunks + * @returns {boolean} true when the child is of type order, otherwise false + */ + hasChildByOrder(chunkGraph, type, includeDirectChildren, filterFn) { + if (includeDirectChildren) { + /** @type {Set} */ + const chunks = new Set(); + for (const chunkGroup of this.groupsIterable) { + for (const chunk of chunkGroup.chunks) { + chunks.add(chunk); + } + } + for (const chunk of chunks) { + const data = chunk.getChildIdsByOrders(chunkGraph, filterFn); + if (data[type] !== undefined) return true; + } + } + + for (const chunk of this.getAllAsyncChunks()) { + const data = chunk.getChildIdsByOrders(chunkGraph, filterFn); + if (data[type] !== undefined) return true; + } + + return false; + } } module.exports = Chunk; diff --git a/node_modules/webpack/lib/ChunkGraph.js b/node_modules/webpack/lib/ChunkGraph.js index 190256b..d13e8af 100644 --- a/node_modules/webpack/lib/ChunkGraph.js +++ b/node_modules/webpack/lib/ChunkGraph.js @@ -30,8 +30,11 @@ const { /** @typedef {import("./AsyncDependenciesBlock")} AsyncDependenciesBlock */ /** @typedef {import("./Chunk")} Chunk */ +/** @typedef {import("./Chunk").ChunkId} ChunkId */ /** @typedef {import("./ChunkGroup")} ChunkGroup */ +/** @typedef {import("./Generator").SourceTypes} SourceTypes */ /** @typedef {import("./Module")} Module */ +/** @typedef {import("./Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */ /** @typedef {import("./ModuleGraph")} ModuleGraph */ /** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */ /** @typedef {import("./RuntimeModule")} RuntimeModule */ @@ -73,9 +76,7 @@ class ModuleHashInfo { * @param {SortableSet} set the set * @returns {T[]} set as array */ -const getArray = set => { - return Array.from(set); -}; +const getArray = set => Array.from(set); /** * @param {SortableSet} chunks the chunks @@ -120,7 +121,10 @@ const modulesBySourceType = sourceTypesByModule => set => { }; const defaultModulesBySourceType = modulesBySourceType(undefined); -/** @type {WeakMap} */ +/** + * @template T + * @type {WeakMap} + */ const createOrderedArrayFunctionMap = new WeakMap(); /** @@ -159,7 +163,7 @@ const getModulesSize = modules => { * @returns {Record} the sizes of the modules */ const getModulesSizes = modules => { - let sizes = Object.create(null); + const sizes = Object.create(null); for (const module of modules) { for (const type of module.getSourceTypes()) { sizes[type] = (sizes[type] || 0) + module.size(type); @@ -199,7 +203,7 @@ class ChunkGraphModule { this.runtimeInChunks = undefined; /** @type {RuntimeSpecMap | undefined} */ this.hashes = undefined; - /** @type {string | number} */ + /** @type {ModuleId | null} */ this.id = null; /** @type {RuntimeSpecMap> | undefined} */ this.runtimeRequirements = undefined; @@ -625,7 +629,7 @@ class ChunkGraph { /** * @param {Chunk} chunk chunk * @param {Module} module chunk module - * @returns {Set} source types + * @returns {SourceTypes} source types */ getChunkModuleSourceTypes(chunk, module) { const cgc = this._getChunkGraphChunk(chunk); @@ -637,7 +641,7 @@ class ChunkGraph { /** * @param {Module} module module - * @returns {Set} source types + * @returns {SourceTypes} source types */ getModuleSourceTypes(module) { return ( @@ -702,7 +706,7 @@ class ChunkGraph { const modulesWithSourceType = cgc.modules .getFromUnorderedCache(cgc._modulesBySourceType) .get(sourceType); - if (modulesWithSourceType === undefined) return undefined; + if (modulesWithSourceType === undefined) return; modulesWithSourceType.sortWith(comparator); return modulesWithSourceType; } @@ -749,9 +753,9 @@ class ChunkGraph { if (filterFn(module)) { if (array === undefined) { array = []; - chunkModuleIdMap[asyncChunk.id] = array; + chunkModuleIdMap[/** @type {ChunkId} */ (asyncChunk.id)] = array; } - const moduleId = this.getModuleId(module); + const moduleId = /** @type {ModuleId} */ (this.getModuleId(module)); array.push(moduleId); } } @@ -773,13 +777,15 @@ class ChunkGraph { hashLength = 0, includeAllChunks = false ) { - /** @type {Record>} */ + /** @type {Record>} */ const chunkModuleHashMap = Object.create(null); + /** @typedef {Record} IdToHashMap */ + for (const asyncChunk of includeAllChunks ? chunk.getAllReferencedChunks() : chunk.getAllAsyncChunks()) { - /** @type {Record | undefined} */ + /** @type {IdToHashMap | undefined} */ let idToHashMap; for (const module of this.getOrderedChunkModulesIterable( asyncChunk, @@ -788,11 +794,15 @@ class ChunkGraph { if (filterFn(module)) { if (idToHashMap === undefined) { idToHashMap = Object.create(null); - chunkModuleHashMap[asyncChunk.id] = idToHashMap; + chunkModuleHashMap[/** @type {ChunkId} */ (asyncChunk.id)] = + /** @type {IdToHashMap} */ (idToHashMap); } const moduleId = this.getModuleId(module); const hash = this.getRenderedModuleHash(module, asyncChunk.runtime); - idToHashMap[moduleId] = hashLength ? hash.slice(0, hashLength) : hash; + /** @type {IdToHashMap} */ + (idToHashMap)[/** @type {ModuleId} */ (moduleId)] = hashLength + ? hash.slice(0, hashLength) + : hash; } } } @@ -808,7 +818,7 @@ class ChunkGraph { getChunkConditionMap(chunk, filterFn) { const map = Object.create(null); for (const c of chunk.getAllReferencedChunks()) { - map[c.id] = filterFn(c, this); + map[/** @type {ChunkId} */ (c.id)] = filterFn(c, this); } return map; } @@ -916,7 +926,7 @@ class ChunkGraph { const cgcB = this._getChunkGraphChunk(chunkB); const allModules = new Set(cgcA.modules); for (const m of cgcB.modules) allModules.add(m); - let modulesSize = getModulesSize(allModules); + const modulesSize = getModulesSize(allModules); const chunkOverhead = typeof options.chunkOverhead === "number" ? options.chunkOverhead : 10000; const entryChunkMultiplicator = @@ -950,9 +960,9 @@ class ChunkGraph { return isAvailableChunk(chunkA, chunkB); } else if (hasRuntimeB) { return isAvailableChunk(chunkB, chunkA); - } else { - return false; } + + return false; } if ( @@ -1011,7 +1021,12 @@ class ChunkGraph { this.getChunkEntryModulesWithChunkGroupIterable(chunkB) )) { this.disconnectChunkAndEntryModule(chunkB, module); - this.connectChunkAndEntryModule(chunkA, module, chunkGroup); + this.connectChunkAndEntryModule( + chunkA, + module, + /** @type {Entrypoint} */ + (chunkGroup) + ); } for (const chunkGroup of chunkB.groupsIterable) { @@ -1052,7 +1067,7 @@ class ChunkGraph { /** * @param {Chunk} chunk the new chunk * @param {Module} module the entry module - * @param {Entrypoint=} entrypoint the chunk group which must be loaded before the module is executed + * @param {Entrypoint} entrypoint the chunk group which must be loaded before the module is executed * @returns {void} */ connectChunkAndEntryModule(chunk, module, entrypoint) { @@ -1111,8 +1126,9 @@ class ChunkGraph { disconnectChunkAndEntryModule(chunk, module) { const cgm = this._getChunkGraphModule(module); const cgc = this._getChunkGraphChunk(chunk); - cgm.entryInChunks.delete(chunk); - if (cgm.entryInChunks.size === 0) { + /** @type {EntryInChunks} */ + (cgm.entryInChunks).delete(chunk); + if (/** @type {EntryInChunks} */ (cgm.entryInChunks).size === 0) { cgm.entryInChunks = undefined; } cgc.entryModules.delete(module); @@ -1126,8 +1142,9 @@ class ChunkGraph { disconnectChunkAndRuntimeModule(chunk, module) { const cgm = this._getChunkGraphModule(module); const cgc = this._getChunkGraphChunk(chunk); - cgm.runtimeInChunks.delete(chunk); - if (cgm.runtimeInChunks.size === 0) { + /** @type {RuntimeInChunks} */ + (cgm.runtimeInChunks).delete(chunk); + if (/** @type {RuntimeInChunks} */ (cgm.runtimeInChunks).size === 0) { cgm.runtimeInChunks = undefined; } cgc.runtimeModules.delete(module); @@ -1154,8 +1171,9 @@ class ChunkGraph { const cgc = this._getChunkGraphChunk(chunk); for (const module of cgc.entryModules.keys()) { const cgm = this._getChunkGraphModule(module); - cgm.entryInChunks.delete(chunk); - if (cgm.entryInChunks.size === 0) { + /** @type {EntryInChunks} */ + (cgm.entryInChunks).delete(chunk); + if (/** @type {EntryInChunks} */ (cgm.entryInChunks).size === 0) { cgm.entryInChunks = undefined; } } @@ -1322,7 +1340,7 @@ class ChunkGraph { /** * @param {Module} module the module - * @returns {ModuleId} the id of the module + * @returns {ModuleId | null} the id of the module */ getModuleId(module) { const cgm = this._getChunkGraphModule(module); @@ -1344,7 +1362,7 @@ class ChunkGraph { * @returns {string | number} the id of the runtime */ getRuntimeId(runtime) { - return this._runtimeIds.get(runtime); + return /** @type {string | number} */ (this._runtimeIds.get(runtime)); } /** @@ -1474,10 +1492,10 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza } else if (!transferOwnership || runtimeRequirements.size >= items.size) { for (const item of items) runtimeRequirements.add(item); return runtimeRequirements; - } else { - for (const item of runtimeRequirements) items.add(item); - return items; } + + for (const item of runtimeRequirements) items.add(item); + return items; }); } @@ -1513,7 +1531,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza /** * @param {Module} module the module * @param {RuntimeSpec} runtime the runtime - * @returns {ReadonlySet} runtime requirements + * @returns {ReadOnlyRuntimeRequirements} runtime requirements */ getModuleRuntimeRequirements(module, runtime) { const cgm = this._getChunkGraphModule(module); @@ -1524,7 +1542,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza /** * @param {Chunk} chunk the chunk - * @returns {ReadonlySet} runtime requirements + * @returns {ReadOnlyRuntimeRequirements} runtime requirements */ getChunkRuntimeRequirements(chunk) { const cgc = this._getChunkGraphChunk(chunk); @@ -1593,6 +1611,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza if (cgm.graphHashesWithConnections === undefined) { cgm.graphHashesWithConnections = new RuntimeSpecMap(); } + /** * @param {ConnectionState} state state * @returns {"F" | "T" | "O"} result @@ -1615,6 +1634,10 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza const activeNamespaceModules = new Set(); /** @type {Map>} */ const connectedModules = new Map(); + /** + * @param {ModuleGraphConnection} connection connection + * @param {string} stateInfo state info + */ const processConnection = (connection, stateInfo) => { const module = connection.module; stateInfo += module.getExportsType(this.moduleGraph, strict); @@ -1696,7 +1719,9 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza hash.update(xor.toString(16)); }; if (activeNamespaceModules.size === 1) - addModuleToHash(activeNamespaceModules.values().next().value); + addModuleToHash( + /** @type {Module} */ (activeNamespaceModules.values().next().value) + ); else if (activeNamespaceModules.size > 1) addModulesToHash(activeNamespaceModules); for (const [stateInfo, modules] of connectedModulesInOrder) { @@ -1714,7 +1739,7 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza /** * @param {Chunk} chunk the chunk - * @returns {ReadonlySet} runtime requirements + * @returns {ReadOnlyRuntimeRequirements} runtime requirements */ getTreeRuntimeRequirements(chunk) { const cgc = this._getChunkGraphChunk(chunk); @@ -1740,12 +1765,13 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza const chunkGraph = chunkGraphForModuleMap.get(module); if (!chunkGraph) throw new Error( - deprecateMessage + - ": There was no ChunkGraph assigned to the Module for backward-compat (Use the new API)" + `${ + deprecateMessage + }: There was no ChunkGraph assigned to the Module for backward-compat (Use the new API)` ); return chunkGraph; }, - deprecateMessage + ": Use new ChunkGraph API", + `${deprecateMessage}: Use new ChunkGraph API`, deprecationCode ); deprecateGetChunkGraphForModuleMap.set(deprecateMessage, newFn); @@ -1790,12 +1816,13 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza const chunkGraph = chunkGraphForChunkMap.get(chunk); if (!chunkGraph) throw new Error( - deprecateMessage + - "There was no ChunkGraph assigned to the Chunk for backward-compat (Use the new API)" + `${ + deprecateMessage + }There was no ChunkGraph assigned to the Chunk for backward-compat (Use the new API)` ); return chunkGraph; }, - deprecateMessage + ": Use new ChunkGraph API", + `${deprecateMessage}: Use new ChunkGraph API`, deprecationCode ); deprecateGetChunkGraphForChunkMap.set(deprecateMessage, newFn); diff --git a/node_modules/webpack/lib/ChunkGroup.js b/node_modules/webpack/lib/ChunkGroup.js index a951cf3..2fcb71d 100644 --- a/node_modules/webpack/lib/ChunkGroup.js +++ b/node_modules/webpack/lib/ChunkGroup.js @@ -22,7 +22,7 @@ const { /** @typedef {import("./ModuleGraph")} ModuleGraph */ /** @typedef {{id: number}} HasId */ -/** @typedef {{module: Module, loc: DependencyLocation, request: string}} OriginRecord */ +/** @typedef {{module: Module | null, loc: DependencyLocation, request: string}} OriginRecord */ /** * @typedef {object} RawChunkGroupOptions @@ -31,7 +31,7 @@ const { * @property {("low" | "high" | "auto")=} fetchPriority */ -/** @typedef {RawChunkGroupOptions & { name?: string }} ChunkGroupOptions */ +/** @typedef {RawChunkGroupOptions & { name?: string | null }} ChunkGroupOptions */ let debugId = 5000; @@ -137,7 +137,7 @@ class ChunkGroup { /** * returns the name of current ChunkGroup - * @returns {string | undefined} returns the ChunkGroup name + * @returns {string | null | undefined} returns the ChunkGroup name */ get name() { return this.options.name; @@ -404,7 +404,7 @@ class ChunkGroup { } /** - * @param {Module} module origin module + * @param {Module | null} module origin module * @param {DependencyLocation} loc location of the reference in the origin module * @param {string} request request name of the reference * @returns {void} @@ -478,7 +478,6 @@ class ChunkGroup { /** * Sorting predicate which allows current ChunkGroup to be compared against another. * Sorting values are based off of number of chunks in ChunkGroup. - * * @param {ChunkGraph} chunkGraph the chunk graph * @param {ChunkGroup} otherGroup the chunkGroup to compare this against * @returns {-1|0|1} sort position for comparison diff --git a/node_modules/webpack/lib/ChunkTemplate.js b/node_modules/webpack/lib/ChunkTemplate.js index e98280f..238144a 100644 --- a/node_modules/webpack/lib/ChunkTemplate.js +++ b/node_modules/webpack/lib/ChunkTemplate.js @@ -8,8 +8,21 @@ const util = require("util"); const memoize = require("./util/memoize"); +/** @typedef {import("tapable").Tap} Tap */ /** @typedef {import("../declarations/WebpackOptions").Output} OutputOptions */ +/** @typedef {import("./Chunk")} Chunk */ /** @typedef {import("./Compilation")} Compilation */ +/** @typedef {import("./Compilation").ChunkHashContext} ChunkHashContext */ +/** @typedef {import("./Compilation").Hash} Hash */ +/** @typedef {import("./Compilation").RenderManifestEntry} RenderManifestEntry */ +/** @typedef {import("./Compilation").RenderManifestOptions} RenderManifestOptions */ +/** @typedef {import("./Compilation").Source} Source */ +/** @typedef {import("./ModuleTemplate")} ModuleTemplate */ +/** @typedef {import("./javascript/JavascriptModulesPlugin").RenderContext} RenderContext */ +/** + * @template T + * @typedef {import("tapable").IfSet} IfSet + */ const getJavascriptModulesPlugin = memoize(() => require("./javascript/JavascriptModulesPlugin") @@ -26,6 +39,11 @@ class ChunkTemplate { this.hooks = Object.freeze({ renderManifest: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(RenderManifestEntry[], RenderManifestOptions): RenderManifestEntry[]} fn function + */ (options, fn) => { compilation.hooks.renderManifest.tap( options, @@ -41,6 +59,11 @@ class ChunkTemplate { }, modules: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Source, ModuleTemplate, RenderContext): Source} fn function + */ (options, fn) => { getJavascriptModulesPlugin() .getCompilationHooks(compilation) @@ -58,6 +81,11 @@ class ChunkTemplate { }, render: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Source, ModuleTemplate, RenderContext): Source} fn function + */ (options, fn) => { getJavascriptModulesPlugin() .getCompilationHooks(compilation) @@ -75,6 +103,11 @@ class ChunkTemplate { }, renderWithEntry: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Source, Chunk): Source} fn function + */ (options, fn) => { getJavascriptModulesPlugin() .getCompilationHooks(compilation) @@ -96,6 +129,11 @@ class ChunkTemplate { }, hash: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Hash): void} fn function + */ (options, fn) => { compilation.hooks.fullHash.tap(options, fn); }, @@ -105,6 +143,11 @@ class ChunkTemplate { }, hashForChunk: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Hash, Chunk, ChunkHashContext): void} fn function + */ (options, fn) => { getJavascriptModulesPlugin() .getCompilationHooks(compilation) diff --git a/node_modules/webpack/lib/CleanPlugin.js b/node_modules/webpack/lib/CleanPlugin.js index 1bae3ed..2e8fe9b 100644 --- a/node_modules/webpack/lib/CleanPlugin.js +++ b/node_modules/webpack/lib/CleanPlugin.js @@ -7,7 +7,7 @@ const asyncLib = require("neo-async"); const { SyncBailHook } = require("tapable"); -const Compilation = require("../lib/Compilation"); +const Compilation = require("./Compilation"); const createSchemaValidation = require("./util/create-schema-validation"); const { join } = require("./util/fs"); const processAsyncTree = require("./util/processAsyncTree"); @@ -25,7 +25,13 @@ const processAsyncTree = require("./util/processAsyncTree"); /** * @typedef {object} CleanPluginCompilationHooks - * @property {SyncBailHook<[string], boolean>} keep when returning true the file/directory will be kept during cleaning, returning false will clean it and ignore the following plugins and config + * @property {SyncBailHook<[string], boolean | void>} keep when returning true the file/directory will be kept during cleaning, returning false will clean it and ignore the following plugins and config + */ + +/** + * @callback KeepFn + * @param {string} path path + * @returns {boolean | void} true, if the path should be kept */ const validate = createSchemaValidation( @@ -143,7 +149,7 @@ const doStat = (fs, filename, callback) => { * @param {boolean} dry only log instead of fs modification * @param {Logger} logger logger * @param {Set} diff filenames of the assets that shouldn't be there - * @param {function(string): boolean} isKept check if the entry is ignored + * @param {function(string): boolean | void} isKept check if the entry is ignored * @param {function(Error=, Assets=): void} callback callback * @returns {void} */ @@ -304,7 +310,6 @@ class CleanPlugin { let hooks = compilationHooksMap.get(compilation); if (hooks === undefined) { hooks = { - /** @type {SyncBailHook<[string], boolean>} */ keep: new SyncBailHook(["ignore"]) }; compilationHooksMap.set(compilation, hooks); @@ -326,21 +331,14 @@ class CleanPlugin { apply(compiler) { const { dry, keep } = this.options; + /** @type {KeepFn} */ const keepFn = typeof keep === "function" ? keep : typeof keep === "string" - ? /** - * @param {string} path path - * @returns {boolean} true, if the path should be kept - */ - path => path.startsWith(keep) + ? path => path.startsWith(keep) : typeof keep === "object" && keep.test - ? /** - * @param {string} path path - * @returns {boolean} true, if the path should be kept - */ - path => keep.test(path) + ? path => keep.test(path) : () => false; // We assume that no external modification happens while the compiler is active @@ -394,7 +392,7 @@ class CleanPlugin { /** * @param {string} path path - * @returns {boolean} true, if needs to be kept + * @returns {boolean | void} true, if needs to be kept */ const isKept = path => { const result = hooks.keep.call(path); diff --git a/node_modules/webpack/lib/CodeGenerationResults.js b/node_modules/webpack/lib/CodeGenerationResults.js index decbd66..551d212 100644 --- a/node_modules/webpack/lib/CodeGenerationResults.js +++ b/node_modules/webpack/lib/CodeGenerationResults.js @@ -13,6 +13,7 @@ const { runtimeToString, RuntimeSpecMap } = require("./util/runtime"); /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("./Module")} Module */ /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */ +/** @typedef {import("./Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */ /** @typedef {typeof import("./util/Hash")} Hash */ /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */ @@ -53,9 +54,9 @@ class CodeGenerationResults { Caller might not support runtime-dependent code generation (opt-out via optimization.usedExports: "global").` ); } - return first(results); + return /** @type {CodeGenerationResult} */ (first(results)); } - return entry.values().next().value; + return /** @type {CodeGenerationResult} */ (entry.values().next().value); } const result = entry.get(runtime); if (result === undefined) { @@ -86,9 +87,8 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza } else if (entry.size > 1) { const results = new Set(entry.values()); return results.size === 1; - } else { - return entry.size === 1; } + return entry.size === 1; } /** @@ -98,13 +98,15 @@ Caller might not support runtime-dependent code generation (opt-out via optimiza * @returns {Source} a source */ getSource(module, runtime, sourceType) { - return this.get(module, runtime).sources.get(sourceType); + return /** @type {Source} */ ( + this.get(module, runtime).sources.get(sourceType) + ); } /** * @param {Module} module the module * @param {RuntimeSpec} runtime runtime(s) - * @returns {ReadonlySet} runtime requirements + * @returns {ReadOnlyRuntimeRequirements | null} runtime requirements */ getRuntimeRequirements(module, runtime) { return this.get(module, runtime).runtimeRequirements; diff --git a/node_modules/webpack/lib/CommentCompilationWarning.js b/node_modules/webpack/lib/CommentCompilationWarning.js index 335992f..99cd0fb 100644 --- a/node_modules/webpack/lib/CommentCompilationWarning.js +++ b/node_modules/webpack/lib/CommentCompilationWarning.js @@ -12,7 +12,6 @@ const makeSerializable = require("./util/makeSerializable"); class CommentCompilationWarning extends WebpackError { /** - * * @param {string} message warning message * @param {DependencyLocation} loc affected lines of code */ diff --git a/node_modules/webpack/lib/Compilation.js b/node_modules/webpack/lib/Compilation.js index 40b6052..3dc2775 100644 --- a/node_modules/webpack/lib/Compilation.js +++ b/node_modules/webpack/lib/Compilation.js @@ -94,18 +94,22 @@ const { isSourceEqual } = require("./util/source"); /** @typedef {import("./AsyncDependenciesBlock")} AsyncDependenciesBlock */ /** @typedef {import("./Cache")} Cache */ /** @typedef {import("./CacheFacade")} CacheFacade */ +/** @typedef {import("./Chunk").ChunkId} ChunkId */ /** @typedef {import("./ChunkGroup").ChunkGroupOptions} ChunkGroupOptions */ /** @typedef {import("./Compiler")} Compiler */ /** @typedef {import("./Compiler").CompilationParams} CompilationParams */ +/** @typedef {import("./Compiler").ModuleMemCachesItem} ModuleMemCachesItem */ /** @typedef {import("./DependenciesBlock")} DependenciesBlock */ /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */ /** @typedef {import("./Dependency").ReferencedExport} ReferencedExport */ /** @typedef {import("./DependencyTemplate")} DependencyTemplate */ /** @typedef {import("./Entrypoint").EntryOptions} EntryOptions */ /** @typedef {import("./Module").BuildInfo} BuildInfo */ +/** @typedef {import("./Module").ValueCacheVersions} ValueCacheVersions */ /** @typedef {import("./NormalModule").NormalModuleCompilationHooks} NormalModuleCompilationHooks */ /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */ /** @typedef {import("./ModuleFactory")} ModuleFactory */ +/** @typedef {import("./ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("./ModuleGraphConnection")} ModuleGraphConnection */ /** @typedef {import("./ModuleFactory").ModuleFactoryCreateDataContextInfo} ModuleFactoryCreateDataContextInfo */ /** @typedef {import("./ModuleFactory").ModuleFactoryResult} ModuleFactoryResult */ @@ -116,7 +120,9 @@ const { isSourceEqual } = require("./util/source"); /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsAsset} StatsAsset */ /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsError} StatsError */ /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsModule} StatsModule */ +/** @typedef {import("./TemplatedPathPlugin").TemplatePath} TemplatePath */ /** @typedef {import("./util/Hash")} Hash */ +/** @typedef {import("./util/createHash").Algorithm} Algorithm */ /** * @template T * @typedef {import("./util/deprecation").FakeHook} FakeHook @@ -133,7 +139,7 @@ const { isSourceEqual } = require("./util/source"); /** * @callback ModuleCallback * @param {(WebpackError | null)=} err - * @param {Module=} result + * @param {(Module | null)=} result * @returns {void} */ @@ -153,7 +159,7 @@ const { isSourceEqual } = require("./util/source"); /** * @callback ExecuteModuleCallback - * @param {(WebpackError | null)=} err + * @param {WebpackError | null} err * @param {ExecuteModuleResult=} result * @returns {void} */ @@ -165,6 +171,7 @@ const { isSourceEqual } = require("./util/source"); */ /** @typedef {new (...args: any[]) => Dependency} DepConstructor */ + /** @typedef {Record} CompilationAssets */ /** @@ -221,9 +228,12 @@ const { isSourceEqual } = require("./util/source"); */ /** + * @typedef {{ id: string, exports: any, loaded: boolean }} ModuleObject + * + * /** * @typedef {object} ExecuteModuleArgument * @property {Module} module - * @property {{ id: string, exports: any, loaded: boolean }=} moduleObject + * @property {ModuleObject=} moduleObject * @property {any} preparedInfo * @property {CodeGenerationResult} codeGenerationResult */ @@ -246,7 +256,7 @@ const { isSourceEqual } = require("./util/source"); /** * @typedef {object} LogEntry * @property {string} type - * @property {any[]} args + * @property {any[]=} args * @property {number} time * @property {string[]=} trace */ @@ -269,6 +279,8 @@ const { isSourceEqual } = require("./util/source"); /** @typedef {KnownAssetInfo & Record} AssetInfo */ +/** @typedef {{ path: string, info: AssetInfo }} InterpolatedPathAndAssetInfo */ + /** * @typedef {object} Asset * @property {string} name the filename of the asset @@ -350,7 +362,7 @@ const { isSourceEqual } = require("./util/source"); * @property {boolean=} forToString */ -/** @typedef {KnownCreateStatsOptionsContext & Record} CreateStatsOptionsContext */ +/** @typedef {Record & KnownCreateStatsOptionsContext} CreateStatsOptionsContext */ /** @typedef {{module: Module, hash: string, runtime: RuntimeSpec, runtimes: RuntimeSpec[]}[]} CodeGenerationJobs */ @@ -369,9 +381,8 @@ const deprecatedNormalModuleLoaderHook = util.deprecate( * @param {Compilation} compilation compilation * @returns {NormalModuleCompilationHooks["loader"]} hooks */ - compilation => { - return require("./NormalModule").getCompilationHooks(compilation).loader; - }, + compilation => + require("./NormalModule").getCompilationHooks(compilation).loader, "Compilation.hooks.normalModuleLoader was moved to NormalModule.getCompilationHooks(compilation).loader", "DEP_WEBPACK_COMPILATION_NORMAL_MODULE_LOADER_HOOK" ); @@ -448,7 +459,7 @@ class Compilation { * @returns {CompilationAssets} new assets */ const popNewAssets = assets => { - let newAssets = undefined; + let newAssets; for (const file of Object.keys(assets)) { if (savedAssets.has(file)) continue; if (newAssets === undefined) { @@ -484,8 +495,8 @@ class Compilation { fn: (assets, callback) => { try { fn(assets); - } catch (e) { - return callback(e); + } catch (err) { + return callback(err); } if (processedAssets !== undefined) processedAssets.add(this.assets); @@ -571,7 +582,11 @@ class Compilation { * @returns {FakeHook, "tap" | "tapAsync" | "tapPromise" | "name">>} fake hook which redirects */ const createProcessAssetsHook = (name, stage, getArgs, code) => { - if (!this._backCompat && code) return undefined; + if (!this._backCompat && code) return; + /** + * @param {string} reason reason + * @returns {string} error message + */ const errorMessage = reason => `Can't automatically convert plugin using Compilation.hooks.${name} to Compilation.hooks.processAssets because ${reason}. BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a single Compilation.hooks.processAssets hook.`; @@ -580,7 +595,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si if (options.stage) { throw new Error(errorMessage("it's using the 'stage' option")); } - return { ...options, stage: stage }; + return { ...options, stage }; }; return createFakeHook( { @@ -662,14 +677,14 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si */ afterChunks: new SyncHook(["chunks"]), - /** @type {SyncBailHook<[Iterable]>} */ + /** @type {SyncBailHook<[Iterable], boolean | void>} */ optimizeDependencies: new SyncBailHook(["modules"]), /** @type {SyncHook<[Iterable]>} */ afterOptimizeDependencies: new SyncHook(["modules"]), /** @type {SyncHook<[]>} */ optimize: new SyncHook([]), - /** @type {SyncBailHook<[Iterable]>} */ + /** @type {SyncBailHook<[Iterable], boolean | void>} */ optimizeModules: new SyncBailHook(["modules"]), /** @type {SyncHook<[Iterable]>} */ afterOptimizeModules: new SyncHook(["modules"]), @@ -688,7 +703,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si optimizeChunkModules: new AsyncSeriesBailHook(["chunks", "modules"]), /** @type {SyncHook<[Iterable, Iterable]>} */ afterOptimizeChunkModules: new SyncHook(["chunks", "modules"]), - /** @type {SyncBailHook<[], boolean | undefined>} */ + /** @type {SyncBailHook<[], boolean | void>} */ shouldRecord: new SyncBailHook([]), /** @type {SyncHook<[Chunk, Set, RuntimeRequirementsContext]>} */ @@ -707,7 +722,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si "runtimeRequirements", "context" ]), - /** @type {HookMap, RuntimeRequirementsContext]>>} */ + /** @type {HookMap, RuntimeRequirementsContext], void>>} */ runtimeRequirementInModule: new HookMap( () => new SyncBailHook(["module", "runtimeRequirements", "context"]) ), @@ -717,7 +732,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si "runtimeRequirements", "context" ]), - /** @type {HookMap, RuntimeRequirementsContext]>>} */ + /** @type {HookMap, RuntimeRequirementsContext], void>>} */ runtimeRequirementInTree: new HookMap( () => new SyncBailHook(["chunk", "runtimeRequirements", "context"]) ), @@ -783,7 +798,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si /** @type {SyncHook<[]>} */ beforeModuleAssets: new SyncHook([]), - /** @type {SyncBailHook<[], boolean>} */ + /** @type {SyncBailHook<[], boolean | void>} */ shouldGenerateChunkAssets: new SyncBailHook([]), /** @type {SyncHook<[]>} */ beforeChunkAssets: new SyncHook([]), @@ -831,7 +846,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si /** @type {AsyncSeriesHook<[CompilationAssets]>} */ processAdditionalAssets: new AsyncSeriesHook(["assets"]), - /** @type {SyncBailHook<[], boolean | undefined>} */ + /** @type {SyncBailHook<[], boolean | void>} */ needAdditionalSeal: new SyncBailHook([]), /** @type {AsyncSeriesHook<[]>} */ afterSeal: new AsyncSeriesHook([]), @@ -852,7 +867,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si /** @type {SyncWaterfallHook<[string, object, AssetInfo | undefined]>} */ assetPath: new SyncWaterfallHook(["path", "options", "assetInfo"]), - /** @type {SyncBailHook<[], boolean>} */ + /** @type {SyncBailHook<[], boolean | void>} */ needAdditionalPass: new SyncBailHook([]), /** @type {SyncHook<[Compiler, string, number]>} */ @@ -862,7 +877,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si "compilerIndex" ]), - /** @type {SyncBailHook<[string, LogEntry], true>} */ + /** @type {SyncBailHook<[string, LogEntry], boolean | void>} */ log: new SyncBailHook(["origin", "logEntry"]), /** @type {SyncWaterfallHook<[WebpackError[]]>} */ @@ -912,7 +927,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si true ); } - /** @type {Map>} */ + /** @type {ValueCacheVersions} */ this.valueCacheVersions = new Map(); this.requestShortener = compiler.requestShortener; this.compilerPath = compiler.compilerPath; @@ -1047,6 +1062,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si this.dependencyTemplates = new DependencyTemplates( this.outputOptions.hashFunction ); + /** @type {Record} */ this.childrenCounters = {}; /** @type {Set} */ this.usedChunkIds = null; @@ -1064,11 +1080,6 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si this.codeGeneratedModules = new WeakSet(); /** @type {WeakSet} */ this.buildTimeExecutedModules = new WeakSet(); - /** - * @private - * @type {Map} - */ - this._rebuildingModules = new Map(); /** @type {Set} */ this.emittedAssets = new Set(); /** @type {Set} */ @@ -1099,7 +1110,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si this._codeGenerationCache = this.getCache("Compilation/codeGeneration"); const unsafeCache = options.module.unsafeCache; - this._unsafeCache = !!unsafeCache; + this._unsafeCache = Boolean(unsafeCache); this._unsafeCachePredicate = typeof unsafeCache === "function" ? unsafeCache : () => true; } @@ -1110,14 +1121,15 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si /** * @param {string | boolean | StatsOptions | undefined} optionsOrPreset stats option value - * @param {CreateStatsOptionsContext} context context + * @param {CreateStatsOptionsContext=} context context * @returns {NormalizedStatsOptions} normalized options */ createStatsOptions(optionsOrPreset, context = {}) { - if ( - typeof optionsOrPreset === "boolean" || - typeof optionsOrPreset === "string" - ) { + if (typeof optionsOrPreset === "boolean") { + optionsOrPreset = { + preset: optionsOrPreset === false ? "none" : "normal" + }; + } else if (typeof optionsOrPreset === "string") { optionsOrPreset = { preset: optionsOrPreset }; } if (typeof optionsOrPreset === "object" && optionsOrPreset !== null) { @@ -1125,20 +1137,20 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si // properties in the prototype chain /** @type {Partial} */ const options = {}; + // eslint-disable-next-line guard-for-in for (const key in optionsOrPreset) { - options[key] = optionsOrPreset[key]; + options[key] = optionsOrPreset[/** @type {keyof StatsOptions} */ (key)]; } if (options.preset !== undefined) { this.hooks.statsPreset.for(options.preset).call(options, context); } this.hooks.statsNormalize.call(options, context); return /** @type {NormalizedStatsOptions} */ (options); - } else { - /** @type {Partial} */ - const options = {}; - this.hooks.statsNormalize.call(options, context); - return /** @type {NormalizedStatsOptions} */ (options); } + /** @type {Partial} */ + const options = {}; + this.hooks.statsNormalize.call(options, context); + return /** @type {NormalizedStatsOptions} */ (options); } /** @@ -1209,10 +1221,13 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si trace }; if (this.hooks.log.call(name, logEntry) === undefined) { - if (logEntry.type === LogType.profileEnd) { - if (typeof console.profileEnd === "function") { - console.profileEnd(`[${name}] ${logEntry.args[0]}`); - } + if ( + logEntry.type === LogType.profileEnd && + typeof console.profileEnd === "function" + ) { + console.profileEnd( + `[${name}] ${/** @type {NonNullable} */ (logEntry.args)[0]}` + ); } if (logEntries === undefined) { logEntries = this.logging.get(name); @@ -1222,10 +1237,16 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si } } logEntries.push(logEntry); - if (logEntry.type === LogType.profile) { - if (typeof console.profile === "function") { - console.profile(`[${name}] ${logEntry.args[0]}`); - } + if ( + logEntry.type === LogType.profile && + typeof console.profile === "function" + ) { + console.profile( + `[${name}] ${ + /** @type {NonNullable} */ + (logEntry.args)[0] + }` + ); } } }, @@ -1251,36 +1272,33 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si } return `${name}/${childName}`; }); - } else { - return this.getLogger(() => { - if (typeof name === "function") { - name = name(); - if (!name) { - throw new TypeError( - "Compilation.getLogger(name) called with a function not returning a name" - ); - } - } - return `${name}/${childName}`; - }); } - } else { - if (typeof childName === "function") { - return this.getLogger(() => { - if (typeof childName === "function") { - childName = childName(); - if (!childName) { - throw new TypeError( - "Logger.getChildLogger(name) called with a function not returning a name" - ); - } + return this.getLogger(() => { + if (typeof name === "function") { + name = name(); + if (!name) { + throw new TypeError( + "Compilation.getLogger(name) called with a function not returning a name" + ); } - return `${name}/${childName}`; - }); - } else { - return this.getLogger(`${name}/${childName}`); - } + } + return `${name}/${childName}`; + }); } + if (typeof childName === "function") { + return this.getLogger(() => { + if (typeof childName === "function") { + childName = childName(); + if (!childName) { + throw new TypeError( + "Logger.getChildLogger(name) called with a function not returning a name" + ); + } + } + return `${name}/${childName}`; + }); + } + return this.getLogger(`${name}/${childName}`); } ); } @@ -1360,7 +1378,6 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si /** * Schedules a build of the module object - * * @param {Module} module module to be built * @param {ModuleCallback} callback the callback * @returns {void} @@ -1371,7 +1388,6 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si /** * Builds the module object - * * @param {Module} module module to be built * @param {ModuleCallback} callback the callback * @returns {void} @@ -1489,7 +1505,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si let factoryCacheKey; /** @type {ModuleFactory} */ let factoryCacheKey2; - /** @type {Map} */ + /** @typedef {Map} FactoryCacheValue */ + /** @type {FactoryCacheValue | undefined} */ let factoryCacheValue; /** @type {string} */ let listCacheKey1; @@ -1518,6 +1535,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si for (const item of sortedDependencies) { inProgressTransitive++; + // eslint-disable-next-line no-loop-func this.handleModuleCreation(item, err => { // In V8, the Error objects keep a reference to the functions on the stack. These warnings & // errors are created inside closures that keep a reference to the Compilation, so errors are @@ -1649,8 +1667,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si }); return; } - } catch (e) { - console.error(e); + } catch (err) { + console.error(err); } } processDependencyForResolving(dep); @@ -1692,7 +1710,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si if (factoryCacheKey2 !== undefined) { // Archive last cache entry if (dependencies === undefined) dependencies = new Map(); - dependencies.set(factoryCacheKey2, factoryCacheValue); + dependencies.set( + factoryCacheKey2, + /** @type {FactoryCacheValue} */ (factoryCacheValue) + ); factoryCacheValue = dependencies.get(factory); if (factoryCacheValue === undefined) { factoryCacheValue = new Map(); @@ -1711,9 +1732,12 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si category === esmDependencyCategory ? resourceIdent : `${category}${resourceIdent}`; - let list = factoryCacheValue.get(cacheKey); + let list = /** @type {FactoryCacheValue} */ (factoryCacheValue).get( + cacheKey + ); if (list === undefined) { - factoryCacheValue.set(cacheKey, (list = [])); + /** @type {FactoryCacheValue} */ + (factoryCacheValue).set(cacheKey, (list = [])); sortedDependencies.push({ factory: factoryCacheKey2, dependencies: list, @@ -1742,8 +1766,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si for (const b of block.blocks) queue.push(b); } } while (queue.length !== 0); - } catch (e) { - return callback(e); + } catch (err) { + return callback(/** @type {WebpackError} */ (err)); } if (--inProgressSorting === 0) onDependenciesSorted(); @@ -1839,7 +1863,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si (err, factoryResult) => { const applyFactoryResultDependencies = () => { const { fileDependencies, contextDependencies, missingDependencies } = - factoryResult; + /** @type {ModuleFactoryResult} */ (factoryResult); if (fileDependencies) { this.fileDependencies.addAll(fileDependencies); } @@ -1855,13 +1879,14 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si if (dependencies.every(d => d.optional)) { this.warnings.push(err); return callback(); - } else { - this.errors.push(err); - return callback(err); } + this.errors.push(err); + return callback(err); } - const newModule = factoryResult.module; + const newModule = + /** @type {ModuleFactoryResult} */ + (factoryResult).module; if (!newModule) { applyFactoryResultDependencies(); @@ -1889,7 +1914,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si if ( this._unsafeCache && - factoryResult.cacheable !== false && + /** @type {ModuleFactoryResult} */ + (factoryResult).cacheable !== false && module.restoreFromUnsafeCache && this._unsafeCachePredicate(module) ) { @@ -1927,14 +1953,12 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si module, originModule !== undefined ? originModule : null ); - if (module !== newModule) { - if (currentProfile !== undefined) { - const otherProfile = moduleGraph.getProfile(module); - if (otherProfile !== undefined) { - currentProfile.mergeInto(otherProfile); - } else { - moduleGraph.setProfile(module, currentProfile); - } + if (module !== newModule && currentProfile !== undefined) { + const otherProfile = moduleGraph.getProfile(module); + if (otherProfile !== undefined) { + currentProfile.mergeInto(otherProfile); + } else { + moduleGraph.setProfile(module, currentProfile); } } @@ -1967,7 +1991,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si callback ) { // Check for cycles when build is trigger inside another build - let creatingModuleDuringBuildSet = undefined; + /** @type {Set | undefined} */ + let creatingModuleDuringBuildSet; if (checkCycle && this.buildQueue.isProcessing(originModule)) { // Track build dependency creatingModuleDuringBuildSet = @@ -2063,12 +2088,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si ...contextInfo }, resolveOptions: originModule ? originModule.resolveOptions : undefined, - context: context - ? context - : originModule - ? originModule.context - : this.compiler.context, - dependencies: dependencies + context: + context || + (originModule ? originModule.context : this.compiler.context), + dependencies }, (err, result) => { if (result) { @@ -2100,7 +2123,8 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si const notFoundError = new ModuleNotFoundError( originModule, err, - dependencies.map(d => d.loc).filter(Boolean)[0] + /** @type {DependencyLocation} */ + (dependencies.map(d => d.loc).find(Boolean)) ); return callback(notFoundError, factoryResult ? result : undefined); } @@ -2278,11 +2302,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si this.hooks.failedEntry.call(entry, options, err); return callback(err); } - this.hooks.succeedEntry.call( - entry, - options, - /** @type {Module} */ (module) - ); + this.hooks.succeedEntry.call(entry, options, module); return callback(null, module); } ); @@ -2368,7 +2388,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si */ const computeReferences = module => { /** @type {References | undefined} */ - let references = undefined; + let references; for (const connection of moduleGraph.getOutgoingConnections(module)) { const d = connection.dependency; const m = connection.module; @@ -2503,7 +2523,9 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si affectedModules.add(referencingModule); } const memCache = new WeakTupleMap(); - const cache = moduleMemCacheCache.get(referencingModule); + const cache = + /** @type {ModuleMemCachesItem} */ + (moduleMemCacheCache.get(referencingModule)); cache.memCache = memCache; moduleMemCaches.set(referencingModule, memCache); } @@ -2532,20 +2554,20 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si let statNew = 0; /** * @param {Module} module module - * @returns {{ id: string | number, modules?: Map, blocks?: (string | number | null)[] }} references + * @returns {{ id: ModuleId, modules?: Map, blocks?: (string | number | null)[] }} references */ const computeReferences = module => { - const id = chunkGraph.getModuleId(module); + const id = /** @type {ModuleId} */ (chunkGraph.getModuleId(module)); /** @type {Map | undefined} */ - let modules = undefined; + let modules; /** @type {(string | number | null)[] | undefined} */ - let blocks = undefined; + let blocks; const outgoing = moduleGraph.getOutgoingConnectionsByModule(module); if (outgoing !== undefined) { for (const m of outgoing.keys()) { if (!m) continue; if (modules === undefined) modules = new Map(); - modules.set(m, chunkGraph.getModuleId(m)); + modules.set(m, /** @type {ModuleId} */ (chunkGraph.getModuleId(m))); } } if (module.blocks.length > 0) { @@ -2560,6 +2582,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si } else { blocks.push(null); } + // eslint-disable-next-line prefer-spread queue.push.apply(queue, block.blocks); } } @@ -2589,9 +2612,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si for (const chunk of chunkGroup.chunks) { if (i >= blocks.length || blocks[i++] !== chunk.id) return false; } - } else { - if (i >= blocks.length || blocks[i++] !== null) return false; + } else if (i >= blocks.length || blocks[i++] !== null) { + return false; } + // eslint-disable-next-line prefer-spread queue.push.apply(queue, block.blocks); } if (i !== blocks.length) return false; @@ -2686,6 +2710,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si const logger = this.getLogger("webpack.Compilation.ModuleProfile"); // Avoid coverage problems due indirect changes + /** + * @param {number} value value + * @param {string} msg message + */ /* istanbul ignore next */ const logByValue = (value, msg) => { if (value > 1000) { @@ -2739,7 +2767,7 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si for (const [module, profile] of modulesWithProfiles) { const list = getOrInsert( map, - module.type + "!" + module.identifier().replace(/(!|^)[^!]*$/, ""), + `${module.type}!${module.identifier().replace(/(!|^)[^!]*$/, "")}`, () => [] ); list.push({ module, profile }); @@ -2897,6 +2925,10 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si * @returns {void} */ seal(callback) { + /** + * @param {WebpackError=} err err + * @returns {void} + */ const finalCallback = err => { this.factorizeQueue.clear(); this.buildQueue.clear(); @@ -2966,11 +2998,15 @@ BREAKING CHANGE: Asset processing hooks in Compilation has been merged into a si this.assignDepths(entryModules); + /** + * @param {Dependency[]} deps deps + * @returns {Module[]} sorted deps + */ const mapAndSort = deps => - deps - .map(dep => this.moduleGraph.getModule(dep)) - .filter(Boolean) - .sort(compareModulesByIdentifier); + /** @type {Module[]} */ + (deps.map(dep => this.moduleGraph.getModule(dep)).filter(Boolean)).sort( + compareModulesByIdentifier + ); const includedModules = [ ...mapAndSort(this.globalEntry.includeDependencies), ...mapAndSort(includeDependencies) @@ -3335,20 +3371,21 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o /** @type {WebpackError[]} */ const errors = []; /** @type {NotCodeGeneratedModules | undefined} */ - let notCodeGeneratedModules = undefined; + let notCodeGeneratedModules; const runIteration = () => { /** @type {CodeGenerationJobs} */ let delayedJobs = []; let delayedModules = new Set(); asyncLib.eachLimit( jobs, - this.options.parallelism, + /** @type {number} */ + (this.options.parallelism), (job, callback) => { const { module } = job; const { codeGenerationDependencies } = module; - if (codeGenerationDependencies !== undefined) { - if ( - notCodeGeneratedModules === undefined || + if ( + codeGenerationDependencies !== undefined && + (notCodeGeneratedModules === undefined || codeGenerationDependencies.some(dep => { const referencedModule = /** @type {Module} */ ( moduleGraph.getModule(dep) @@ -3356,12 +3393,11 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o return /** @type {NotCodeGeneratedModules} */ ( notCodeGeneratedModules ).has(referencedModule); - }) - ) { - delayedJobs.push(job); - delayedModules.add(module); - return callback(); - } + })) + ) { + delayedJobs.push(job); + delayedModules.add(module); + return callback(); } const { hash, runtime, runtimes } = job; this._codeGenerationModule( @@ -3585,21 +3621,19 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o null ); } + } else if (memCache) { + memCache.set( + `moduleRuntimeRequirements-${getRuntimeKey(runtime)}`, + set + ); + chunkGraph.addModuleRuntimeRequirements( + module, + runtime, + set, + false + ); } else { - if (memCache) { - memCache.set( - `moduleRuntimeRequirements-${getRuntimeKey(runtime)}`, - set - ); - chunkGraph.addModuleRuntimeRequirements( - module, - runtime, - set, - false - ); - } else { - chunkGraph.addModuleRuntimeRequirements(module, runtime, set); - } + chunkGraph.addModuleRuntimeRequirements(module, runtime, set); } } } @@ -3722,15 +3756,25 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o if (name) { const chunkGroup = this.namedChunkGroups.get(name); if (chunkGroup !== undefined) { - chunkGroup.addOptions(groupOptions); if (module) { - chunkGroup.addOrigin(module, loc, request); + chunkGroup.addOrigin( + module, + /** @type {DependencyLocation} */ + (loc), + request + ); } return chunkGroup; } } const chunkGroup = new ChunkGroup(groupOptions); - if (module) chunkGroup.addOrigin(module, loc, request); + if (module) + chunkGroup.addOrigin( + module, + /** @type {DependencyLocation} */ + (loc), + request + ); const chunk = this.addChunk(name); connectChunkGroupAndChunk(chunkGroup, chunk); @@ -3788,7 +3832,6 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o /** * This method first looks to see if a name is provided for a new chunk, * and first looks to see if any named chunks already exist and reuse that chunk instead. - * * @param {string=} name optional chunk name to be provided * @returns {Chunk} create a chunk (invoked during seal event) */ @@ -3818,6 +3861,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o const moduleGraph = this.moduleGraph; const queue = new Set([module]); + /** @type {number} */ let depth; moduleGraph.setDepth(module, 0); @@ -3833,7 +3877,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o for (module of queue) { queue.delete(module); - depth = moduleGraph.getDepth(module) + 1; + depth = /** @type {number} */ (moduleGraph.getDepth(module)) + 1; for (const connection of moduleGraph.getOutgoingConnections(module)) { const refModule = connection.module; @@ -3894,7 +3938,6 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o } /** - * * @param {Module} module module relationship for removal * @param {DependenciesBlockLike} block //TODO: good description * @returns {void} @@ -3933,16 +3976,16 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o if (!module.hasReasons(this.moduleGraph, chunk.runtime)) { this.removeReasonsOfDependencyBlock(module, module); } - if (!module.hasReasonForChunk(chunk, this.moduleGraph, this.chunkGraph)) { - if (this.chunkGraph.isModuleInChunk(module, chunk)) { - this.chunkGraph.disconnectChunkAndModule(chunk, module); - this.removeChunkFromDependencies(module, chunk); - } + if ( + !module.hasReasonForChunk(chunk, this.moduleGraph, this.chunkGraph) && + this.chunkGraph.isModuleInChunk(module, chunk) + ) { + this.chunkGraph.disconnectChunkAndModule(chunk, module); + this.removeChunkFromDependencies(module, chunk); } } /** - * * @param {DependenciesBlock} block block tie for Chunk * @param {Chunk} chunk chunk to remove from dep * @returns {void} @@ -3983,10 +4026,13 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o assignRuntimeIds() { const { chunkGraph } = this; + /** + * @param {Entrypoint} ep an entrypoint + */ const processEntrypoint = ep => { - const runtime = ep.options.runtime || ep.name; - const chunk = ep.getRuntimeChunk(); - chunkGraph.setRuntimeId(runtime, chunk.id); + const runtime = /** @type {string} */ (ep.options.runtime || ep.name); + const chunk = /** @type {Chunk} */ (ep.getRuntimeChunk()); + chunkGraph.setRuntimeId(runtime, /** @type {ChunkId} */ (chunk.id)); }; for (const ep of this.entrypoints.values()) { processEntrypoint(ep); @@ -4108,7 +4154,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o ) { let moduleHashDigest; try { - const moduleHash = createHash(hashFunction); + const moduleHash = createHash(/** @type {Algorithm} */ (hashFunction)); module.updateHash(moduleHash, { chunkGraph, runtime, @@ -4136,7 +4182,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o const hashFunction = outputOptions.hashFunction; const hashDigest = outputOptions.hashDigest; const hashDigestLength = outputOptions.hashDigestLength; - const hash = createHash(hashFunction); + const hash = createHash(/** @type {Algorithm} */ (hashFunction)); if (outputOptions.hashSalt) { hash.update(outputOptions.hashSalt); } @@ -4144,7 +4190,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o if (this.children.length > 0) { this.logger.time("hashing: hash child compilations"); for (const child of this.children) { - hash.update(child.hash); + hash.update(/** @type {string} */ (child.hash)); } this.logger.timeEnd("hashing: hash child compilations"); } @@ -4205,7 +4251,9 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o e => e.chunks[e.chunks.length - 1] ) )) { - const otherInfo = runtimeChunksMap.get(other); + const otherInfo = + /** @type {RuntimeChunkInfo} */ + (runtimeChunksMap.get(other)); otherInfo.referencedBy.push(info); info.remaining++; remaining++; @@ -4247,7 +4295,7 @@ Or do you want to use the entrypoints '${name}' and '${runtime}' independently o } // If there are still remaining references we have cycles and want to create a warning if (remaining > 0) { - let circularRuntimeChunkInfo = []; + const circularRuntimeChunkInfo = []; for (const info of runtimeChunksMap.values()) { if (info.remaining !== 0) { circularRuntimeChunkInfo.push(info); @@ -4317,7 +4365,7 @@ This prevents using hashes of each other and should be avoided.`); this.logger.timeAggregate("hashing: hash runtime modules"); try { this.logger.time("hashing: hash chunks"); - const chunkHash = createHash(hashFunction); + const chunkHash = createHash(/** @type {Algorithm} */ (hashFunction)); if (outputOptions.hashSalt) { chunkHash.update(outputOptions.hashSalt); } @@ -4342,11 +4390,13 @@ This prevents using hashes of each other and should be avoided.`); this.hooks.contentHash.call(chunk); } } catch (err) { - this.errors.push(new ChunkRenderError(chunk, "", err)); + this.errors.push( + new ChunkRenderError(chunk, "", /** @type {Error} */ (err)) + ); } this.logger.timeAggregate("hashing: hash chunks"); }; - otherChunks.forEach(processChunk); + for (const chunk of otherChunks) processChunk(chunk); for (const chunk of runtimeChunks) processChunk(chunk); if (errors.length > 0) { errors.sort(compareSelect(err => err.module, compareModulesByIdentifier)); @@ -4368,7 +4418,7 @@ This prevents using hashes of each other and should be avoided.`); for (const module of /** @type {Iterable} */ ( chunkGraph.getChunkFullHashModulesIterable(chunk) )) { - const moduleHash = createHash(hashFunction); + const moduleHash = createHash(/** @type {Algorithm} */ (hashFunction)); module.updateHash(moduleHash, { chunkGraph, runtime: chunk.runtime, @@ -4386,12 +4436,12 @@ This prevents using hashes of each other and should be avoided.`); ); codeGenerationJobsMap.get(oldHash).get(module).hash = moduleHashDigest; } - const chunkHash = createHash(hashFunction); + const chunkHash = createHash(/** @type {Algorithm} */ (hashFunction)); chunkHash.update(chunk.hash); chunkHash.update(this.hash); - const chunkHashDigest = /** @type {string} */ ( - chunkHash.digest(hashDigest) - ); + const chunkHashDigest = + /** @type {string} */ + (chunkHash.digest(hashDigest)); chunk.hash = chunkHashDigest; chunk.renderedHash = chunk.hash.slice(0, hashDigestLength); this.hooks.contentHash.call(chunk); @@ -4423,7 +4473,7 @@ This prevents using hashes of each other and should be avoided.`); return; } const oldInfo = this.assetsInfo.get(file); - const newInfo = Object.assign({}, oldInfo, assetInfo); + const newInfo = { ...oldInfo, ...assetInfo }; this._setAssetInfo(file, newInfo, oldInfo); return; } @@ -4431,6 +4481,12 @@ This prevents using hashes of each other and should be avoided.`); this._setAssetInfo(file, assetInfo, undefined); } + /** + * @private + * @param {string} file file name + * @param {AssetInfo} newInfo new asset information + * @param {AssetInfo=} oldInfo old asset information + */ _setAssetInfo(file, newInfo, oldInfo = this.assetsInfo.get(file)) { if (newInfo === undefined) { this.assetsInfo.delete(file); @@ -4456,7 +4512,9 @@ This prevents using hashes of each other and should be avoided.`); }; const entry = oldRelated[key]; if (Array.isArray(entry)) { - entry.forEach(remove); + for (const name of entry) { + remove(name); + } } else if (entry) { remove(entry); } @@ -4480,7 +4538,9 @@ This prevents using hashes of each other and should be avoided.`); }; const entry = newRelated[key]; if (Array.isArray(entry)) { - entry.forEach(add); + for (const name of entry) { + add(name); + } } else if (entry) { add(entry); } @@ -4503,11 +4563,10 @@ This prevents using hashes of each other and should be avoided.`); `Called Compilation.updateAsset for not existing filename ${file}` ); } - if (typeof newSourceOrFunction === "function") { - this.assets[file] = newSourceOrFunction(this.assets[file]); - } else { - this.assets[file] = newSourceOrFunction; - } + this.assets[file] = + typeof newSourceOrFunction === "function" + ? newSourceOrFunction(this.assets[file]) + : newSourceOrFunction; if (assetInfoUpdateOrFunction !== undefined) { const oldInfo = this.assetsInfo.get(file) || EMPTY_ASSET_INFO; if (typeof assetInfoUpdateOrFunction === "function") { @@ -4533,14 +4592,12 @@ This prevents using hashes of each other and should be avoided.`); `Called Compilation.renameAsset for not existing filename ${file}` ); } - if (this.assets[newFile]) { - if (!isSourceEqual(this.assets[file], source)) { - this.errors.push( - new WebpackError( - `Conflict: Called Compilation.renameAsset for already existing filename ${newFile} with different content` - ) - ); - } + if (this.assets[newFile] && !isSourceEqual(this.assets[file], source)) { + this.errors.push( + new WebpackError( + `Conflict: Called Compilation.renameAsset for already existing filename ${newFile} with different content` + ) + ); } const assetInfo = this.assetsInfo.get(file); // Update related in all other assets @@ -4604,6 +4661,9 @@ This prevents using hashes of each other and should be avoided.`); const related = assetInfo && assetInfo.related; if (related) { for (const key of Object.keys(related)) { + /** + * @param {string} file file + */ const checkUsedAndDelete = file => { if (!this._assetsRelatedIn.has(file)) { this.deleteAsset(file); @@ -4611,7 +4671,9 @@ This prevents using hashes of each other and should be avoided.`); }; const items = related[key]; if (Array.isArray(items)) { - items.forEach(checkUsedAndDelete); + for (const file of items) { + checkUsedAndDelete(file); + } } else if (items) { checkUsedAndDelete(items); } @@ -4645,8 +4707,7 @@ This prevents using hashes of each other and should be avoided.`); * @returns {Readonly | undefined} the asset or undefined when not found */ getAsset(name) { - if (!Object.prototype.hasOwnProperty.call(this.assets, name)) - return undefined; + if (!Object.prototype.hasOwnProperty.call(this.assets, name)) return; return { name, source: this.assets[name], @@ -4713,8 +4774,8 @@ This prevents using hashes of each other and should be avoided.`); try { manifest = this.getRenderManifest({ chunk, - hash: this.hash, - fullHash: this.fullHash, + hash: /** @type {string} */ (this.hash), + fullHash: /** @type {string} */ (this.fullHash), outputOptions, codeGenerationResults: this.codeGenerationResults, moduleTemplates: this.moduleTemplates, @@ -4729,7 +4790,7 @@ This prevents using hashes of each other and should be avoided.`); ); return callback(); } - asyncLib.forEach( + asyncLib.each( manifest, (fileManifest, callback) => { const ident = fileManifest.identifier; @@ -4741,7 +4802,7 @@ This prevents using hashes of each other and should be avoided.`); ); assetCacheItem.get((err, sourceFromCache) => { - /** @type {string | function(PathData, AssetInfo=): string} */ + /** @type {TemplatePath} */ let filenameTemplate; /** @type {string} */ let file; @@ -4803,9 +4864,8 @@ This prevents using hashes of each other and should be avoided.`); ` (chunks ${alreadyWritten.chunk.id} and ${chunk.id})` ) ); - } else { - source = alreadyWritten.source; } + source = alreadyWritten.source; } else if (!source) { // render the asset source = fileManifest.render(); @@ -4846,7 +4906,7 @@ This prevents using hashes of each other and should be avoided.`); } } catch (err) { if (!inTry) throw err; - errorAndCallback(err); + errorAndCallback(/** @type {Error} */ (err)); } }); }, @@ -4858,7 +4918,7 @@ This prevents using hashes of each other and should be avoided.`); } /** - * @param {string | function(PathData, AssetInfo=): string} filename used to get asset path with hash + * @param {TemplatePath} filename used to get asset path with hash * @param {PathData} data context data * @returns {string} interpolated path */ @@ -4873,9 +4933,9 @@ This prevents using hashes of each other and should be avoided.`); } /** - * @param {string | function(PathData, AssetInfo=): string} filename used to get asset path with hash + * @param {TemplatePath} filename used to get asset path with hash * @param {PathData} data context data - * @returns {{ path: string, info: AssetInfo }} interpolated path and asset info + * @returns {InterpolatedPathAndAssetInfo} interpolated path and asset info */ getPathWithInfo(filename, data = {}) { if (!data.hash) { @@ -4888,7 +4948,7 @@ This prevents using hashes of each other and should be avoided.`); } /** - * @param {string | function(PathData, AssetInfo=): string} filename used to get asset path with hash + * @param {TemplatePath} filename used to get asset path with hash * @param {PathData} data context data * @returns {string} interpolated path */ @@ -4901,9 +4961,9 @@ This prevents using hashes of each other and should be avoided.`); } /** - * @param {string | function(PathData, AssetInfo=): string} filename used to get asset path with hash + * @param {TemplatePath} filename used to get asset path with hash * @param {PathData} data context data - * @returns {{ path: string, info: AssetInfo }} interpolated path and asset info + * @returns {InterpolatedPathAndAssetInfo} interpolated path and asset info */ getAssetPathWithInfo(filename, data) { const assetInfo = {}; @@ -4928,9 +4988,8 @@ This prevents using hashes of each other and should be avoided.`); * This function allows you to run another instance of webpack inside of webpack however as * a child with different settings and configurations (if desired) applied. It copies all hooks, plugins * from parent (or top level compiler) and creates a child Compilation - * * @param {string} name name of the child compiler - * @param {OutputOptions=} outputOptions // Need to convert config schema to types for this + * @param {Partial=} outputOptions // Need to convert config schema to types for this * @param {Array=} plugins webpack plugins that will be applied * @returns {Compiler} creates a child Compiler instance */ @@ -4957,12 +5016,6 @@ This prevents using hashes of each other and should be avoided.`); processAsyncTree( modules, 10, - /** - * @param {Module} module the module - * @param {function(Module): void} push push more jobs - * @param {Callback} callback callback - * @returns {void} - */ (module, push, callback) => { this.buildQueue.waitFor(module, err => { if (err) return callback(err); @@ -4993,7 +5046,7 @@ This prevents using hashes of each other and should be avoided.`); const runtimeTemplate = this.runtimeTemplate; const chunk = new Chunk("build time chunk", this._backCompat); - chunk.id = chunk.name; + chunk.id = /** @type {ChunkId} */ (chunk.name); chunk.ids = [chunk.id]; chunk.runtime = runtime; @@ -5223,7 +5276,7 @@ This prevents using hashes of each other and should be avoided.`); * @returns {any} exports */ const __webpack_require_module__ = (moduleArgument, id) => { - var execOptions = { + const execOptions = { id, module: { id, @@ -5233,9 +5286,9 @@ This prevents using hashes of each other and should be avoided.`); }, require: __webpack_require__ }; - interceptModuleExecution.forEach(handler => - handler(execOptions) - ); + for (const handler of interceptModuleExecution) { + handler(execOptions); + } const module = moduleArgument.module; this.buildTimeExecutedModules.add(module); const moduleObject = execOptions.module; @@ -5253,14 +5306,14 @@ This prevents using hashes of each other and should be avoided.`); ); moduleObject.loaded = true; return moduleObject.exports; - } catch (e) { + } catch (execErr) { if (strictModuleExceptionHandling) { if (id) delete moduleCache[id]; } else if (strictModuleErrorHandling) { - moduleObject.error = e; + moduleObject.error = execErr; } - if (!e.module) e.module = module; - throw e; + if (!execErr.module) execErr.module = module; + throw execErr; } }; @@ -5273,14 +5326,14 @@ This prevents using hashes of each other and should be avoided.`); ); } exports = __webpack_require__(module.identifier()); - } catch (e) { + } catch (execErr) { const err = new WebpackError( `Execution of module code from module graph (${module.readableIdentifier( this.requestShortener - )}) failed: ${e.message}` + )}) failed: ${execErr.message}` ); - err.stack = e.stack; - err.module = e.module; + err.stack = execErr.stack; + err.module = execErr.module; return callback(err); } @@ -5344,7 +5397,7 @@ This prevents using hashes of each other and should be avoided.`); /** * @typedef {object} FactorizeModuleOptions - * @property {ModuleProfile} currentProfile + * @property {ModuleProfile=} currentProfile * @property {ModuleFactory} factory * @property {Dependency[]} dependencies * @property {boolean=} factoryResult return full ModuleFactoryResult instead of only module @@ -5360,6 +5413,7 @@ This prevents using hashes of each other and should be avoided.`); */ // Workaround for typescript as it doesn't support function overloading in jsdoc within a class +/* eslint-disable jsdoc/require-asterisk-prefix */ Compilation.prototype.factorizeModule = /** @type {{ (options: FactorizeModuleOptions & { factoryResult?: false }, callback: ModuleCallback): void; @@ -5369,6 +5423,7 @@ Compilation.prototype.factorizeModule = /** this.factorizeQueue.add(options, callback); } ); +/* eslint-enable jsdoc/require-asterisk-prefix */ // Hide from typescript const compilationPrototype = Compilation.prototype; diff --git a/node_modules/webpack/lib/Compiler.js b/node_modules/webpack/lib/Compiler.js index 80e75e4..99d466e 100644 --- a/node_modules/webpack/lib/Compiler.js +++ b/node_modules/webpack/lib/Compiler.js @@ -14,7 +14,7 @@ const { AsyncSeriesHook } = require("tapable"); const { SizeOnlySource } = require("webpack-sources"); -const webpack = require("./"); +const webpack = require("."); const Cache = require("./Cache"); const CacheFacade = require("./CacheFacade"); const ChunkGraph = require("./ChunkGraph"); @@ -47,13 +47,18 @@ const { isSourceEqual } = require("./util/source"); /** @typedef {import("./Module").BuildInfo} BuildInfo */ /** @typedef {import("./config/target").PlatformTargetProperties} PlatformTargetProperties */ /** @typedef {import("./logging/createConsoleLogger").LoggingFunction} LoggingFunction */ -/** @typedef {import("./util/WeakTupleMap")} WeakTupleMap */ /** @typedef {import("./util/fs").IStats} IStats */ /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */ /** @typedef {import("./util/fs").IntermediateFileSystem} IntermediateFileSystem */ /** @typedef {import("./util/fs").OutputFileSystem} OutputFileSystem */ /** @typedef {import("./util/fs").WatchFileSystem} WatchFileSystem */ +/** + * @template {any[]} T + * @template V + * @typedef {import("./util/WeakTupleMap")} WeakTupleMap + */ + /** * @typedef {object} CompilationParams * @property {NormalModuleFactory} normalModuleFactory @@ -93,6 +98,8 @@ const { isSourceEqual } = require("./util/source"); /** @typedef {{ sizeOnlySource: SizeOnlySource | undefined, writtenTo: Map }} CacheEntry */ /** @typedef {{ path: string, source: Source, size: number | undefined, waiting: ({ cacheEntry: any, file: string }[] | undefined) }} SimilarEntry */ +/** @typedef {{ buildInfo: BuildInfo, references: References | undefined, memCache: WeakTupleMap }} ModuleMemCachesItem */ + /** * @param {string[]} array an array * @returns {boolean} true, if the array is sorted @@ -127,9 +134,8 @@ const includesHash = (filename, hashes) => { if (!hashes) return false; if (Array.isArray(hashes)) { return hashes.some(hash => filename.includes(hash)); - } else { - return filename.includes(hashes); } + return filename.includes(hashes); }; class Compiler { @@ -142,7 +148,7 @@ class Compiler { /** @type {SyncHook<[]>} */ initialize: new SyncHook([]), - /** @type {SyncBailHook<[Compilation], boolean | undefined>} */ + /** @type {SyncBailHook<[Compilation], boolean | void>} */ shouldEmit: new SyncBailHook(["compilation"]), /** @type {AsyncSeriesHook<[Stats]>} */ done: new AsyncSeriesHook(["stats"]), @@ -197,7 +203,7 @@ class Compiler { /** @type {AsyncSeriesHook<[]>} */ shutdown: new AsyncSeriesHook([]), - /** @type {SyncBailHook<[string, string, any[]], true>} */ + /** @type {SyncBailHook<[string, string, any[] | undefined], true | void>} */ infrastructureLog: new SyncBailHook(["origin", "type", "args"]), // TODO the following hooks are weirdly located here @@ -210,7 +216,7 @@ class Compiler { afterPlugins: new SyncHook(["compiler"]), /** @type {SyncHook<[Compiler]>} */ afterResolvers: new SyncHook(["compiler"]), - /** @type {SyncBailHook<[string, Entry], boolean>} */ + /** @type {SyncBailHook<[string, Entry], boolean | void>} */ entryOption: new SyncBailHook(["context", "entry"]) }); @@ -284,7 +290,7 @@ class Compiler { this.cache = new Cache(); - /** @type {Map | undefined} */ + /** @type {Map | undefined} */ this.moduleMemCaches = undefined; this.compilerPath = ""; @@ -354,10 +360,11 @@ class Compiler { ); } } - if (this.hooks.infrastructureLog.call(name, type, args) === undefined) { - if (this.infrastructureLogger !== undefined) { - this.infrastructureLogger(name, type, args); - } + if ( + this.hooks.infrastructureLog.call(name, type, args) === undefined && + this.infrastructureLogger !== undefined + ) { + this.infrastructureLogger(name, type, args); } }, childName => { @@ -382,36 +389,33 @@ class Compiler { } return `${name}/${childName}`; }); - } else { - return this.getInfrastructureLogger(() => { - if (typeof name === "function") { - name = name(); - if (!name) { - throw new TypeError( - "Compiler.getInfrastructureLogger(name) called with a function not returning a name" - ); - } - } - return `${name}/${childName}`; - }); } - } else { - if (typeof childName === "function") { - return this.getInfrastructureLogger(() => { - if (typeof childName === "function") { - childName = childName(); - if (!childName) { - throw new TypeError( - "Logger.getChildLogger(name) called with a function not returning a name" - ); - } + return this.getInfrastructureLogger(() => { + if (typeof name === "function") { + name = name(); + if (!name) { + throw new TypeError( + "Compiler.getInfrastructureLogger(name) called with a function not returning a name" + ); } - return `${name}/${childName}`; - }); - } else { - return this.getInfrastructureLogger(`${name}/${childName}`); - } + } + return `${name}/${childName}`; + }); } + if (typeof childName === "function") { + return this.getInfrastructureLogger(() => { + if (typeof childName === "function") { + childName = childName(); + if (!childName) { + throw new TypeError( + "Logger.getChildLogger(name) called with a function not returning a name" + ); + } + } + return `${name}/${childName}`; + }); + } + return this.getInfrastructureLogger(`${name}/${childName}`); } ); } @@ -623,11 +627,11 @@ class Compiler { const finalCallback = (err, entries, compilation) => { try { callback(err, entries, compilation); - } catch (e) { + } catch (runAsChildErr) { const err = new WebpackError( - `compiler.runAsChild callback error: ${e}` + `compiler.runAsChild callback error: ${runAsChildErr}` ); - err.details = /** @type {Error} */ (e).stack; + err.details = /** @type {Error} */ (runAsChildErr).stack; /** @type {Compilation} */ (this.parentCompilation).errors.push(err); } @@ -765,18 +769,17 @@ ${other}`); callback(err); } return true; - } else { - caseInsensitiveMap.set( - caseInsensitiveTargetPath, - (similarEntry = /** @type {SimilarEntry} */ ({ - path: targetPath, - source, - size: undefined, - waiting: undefined - })) - ); - return false; } + caseInsensitiveMap.set( + caseInsensitiveTargetPath, + (similarEntry = /** @type {SimilarEntry} */ ({ + path: targetPath, + source, + size: undefined, + waiting: undefined + })) + ); + return false; }; /** @@ -786,14 +789,12 @@ ${other}`); const getContent = () => { if (typeof source.buffer === "function") { return source.buffer(); - } else { - const bufferOrString = source.source(); - if (Buffer.isBuffer(bufferOrString)) { - return bufferOrString; - } else { - return Buffer.from(bufferOrString, "utf8"); - } } + const bufferOrString = source.source(); + if (Buffer.isBuffer(bufferOrString)) { + return bufferOrString; + } + return Buffer.from(bufferOrString, "utf8"); }; const alreadyWritten = () => { @@ -917,9 +918,8 @@ ${other}`); !content.equals(/** @type {Buffer} */ (existingContent)) ) { return doWrite(content); - } else { - return alreadyWritten(); } + return alreadyWritten(); }); } @@ -956,10 +956,9 @@ ${other}`); }); return callback(); - } else { - // Settings immutable will make it accept file content without comparing when file exist - immutable = true; } + // Settings immutable will make it accept file content without comparing when file exist + immutable = true; } else if (!immutable) { if (checkSimilarFile()) return; // We wrote to this file before which has very likely a different content @@ -986,7 +985,7 @@ ${other}`); } }; - if (targetFile.match(/\/|\\/)) { + if (/\/|\\/.test(targetFile)) { const fs = /** @type {OutputFileSystem} */ (this.outputFileSystem); const dir = dirname(fs, join(fs, outputPath, targetFile)); mkdirp(fs, dir, writeOut); @@ -1041,12 +1040,10 @@ ${other}`); } else { this.hooks.emitRecords.callAsync(callback); } + } else if (this.recordsOutputPath) { + this._emitRecords(callback); } else { - if (this.recordsOutputPath) { - this._emitRecords(callback); - } else { - callback(); - } + callback(); } } @@ -1115,13 +1112,11 @@ ${other}`); this.records = {}; this.hooks.readRecords.callAsync(callback); } + } else if (this.recordsInputPath) { + this._readRecords(callback); } else { - if (this.recordsInputPath) { - this._readRecords(callback); - } else { - this.records = {}; - callback(); - } + this.records = {}; + callback(); } } @@ -1150,10 +1145,10 @@ ${other}`); this.records = parseJson( /** @type {Buffer} */ (content).toString("utf-8") ); - } catch (e) { + } catch (parseErr) { return callback( new Error( - `Cannot parse records: ${/** @type {Error} */ (e).message}` + `Cannot parse records: ${/** @type {Error} */ (parseErr).message}` ) ); } @@ -1168,7 +1163,7 @@ ${other}`); * @param {Compilation} compilation the compilation * @param {string} compilerName the compiler's name * @param {number} compilerIndex the compiler's index - * @param {OutputOptions=} outputOptions the output options + * @param {Partial=} outputOptions the output options * @param {WebpackPluginInstance[]=} plugins the plugins to apply * @returns {Compiler} a child compiler */ @@ -1233,11 +1228,17 @@ ${other}`); "invalid", "done", "thisCompilation" - ].includes(name) + ].includes(name) && + childCompiler.hooks[/** @type {keyof Compiler["hooks"]} */ (name)] ) { - if (childCompiler.hooks[name]) { - childCompiler.hooks[name].taps = this.hooks[name].taps.slice(); - } + childCompiler.hooks[ + /** @type {keyof Compiler["hooks"]} */ + (name) + ].taps = + this.hooks[ + /** @type {keyof Compiler["hooks"]} */ + (name) + ].taps.slice(); } } @@ -1251,7 +1252,7 @@ ${other}`); } isChild() { - return !!this.parentCompilation; + return Boolean(this.parentCompilation); } /** diff --git a/node_modules/webpack/lib/ConcatenationScope.js b/node_modules/webpack/lib/ConcatenationScope.js index 382235b..5c7bb6f 100644 --- a/node_modules/webpack/lib/ConcatenationScope.js +++ b/node_modules/webpack/lib/ConcatenationScope.js @@ -5,31 +5,18 @@ "use strict"; +const { + DEFAULT_EXPORT, + NAMESPACE_OBJECT_EXPORT +} = require("./util/concatenate"); + /** @typedef {import("./Module")} Module */ +/** @typedef {import("./optimize/ConcatenatedModule").ConcatenatedModuleInfo} ConcatenatedModuleInfo */ +/** @typedef {import("./optimize/ConcatenatedModule").ModuleInfo} ModuleInfo */ const MODULE_REFERENCE_REGEXP = /^__WEBPACK_MODULE_REFERENCE__(\d+)_([\da-f]+|ns)(_call)?(_directImport)?(?:_asiSafe(\d))?__$/; -const DEFAULT_EXPORT = "__WEBPACK_DEFAULT_EXPORT__"; -const NAMESPACE_OBJECT_EXPORT = "__WEBPACK_NAMESPACE_OBJECT__"; - -/** - * @typedef {object} ExternalModuleInfo - * @property {number} index - * @property {Module} module - */ - -/** - * @typedef {object} ConcatenatedModuleInfo - * @property {number} index - * @property {Module} module - * @property {Map} exportMap mapping from export name to symbol - * @property {Map} rawExportMap mapping from export name to symbol - * @property {string=} namespaceExportSymbol - */ - -/** @typedef {ConcatenatedModuleInfo | ExternalModuleInfo} ModuleInfo */ - /** * @typedef {object} ModuleReferenceOptions * @property {string[]} ids the properties/exports of the module @@ -64,7 +51,6 @@ class ConcatenationScope { } /** - * * @param {string} exportName name of the export * @param {string} symbol identifier of the export in source code */ @@ -78,7 +64,6 @@ class ConcatenationScope { } /** - * * @param {string} exportName name of the export * @param {string} expression expression to be used */ @@ -99,7 +84,6 @@ class ConcatenationScope { } /** - * * @param {Module} module the referenced module * @param {Partial} options options * @returns {string} the reference as identifier @@ -138,7 +122,7 @@ class ConcatenationScope { static matchModuleReference(name) { const match = MODULE_REFERENCE_REGEXP.exec(name); if (!match) return null; - const index = +match[1]; + const index = Number(match[1]); const asiSafe = match[5]; return { index, @@ -146,8 +130,8 @@ class ConcatenationScope { match[2] === "ns" ? [] : JSON.parse(Buffer.from(match[2], "hex").toString("utf-8")), - call: !!match[3], - directImport: !!match[4], + call: Boolean(match[3]), + directImport: Boolean(match[4]), asiSafe: asiSafe ? asiSafe === "1" : undefined }; } diff --git a/node_modules/webpack/lib/ConditionalInitFragment.js b/node_modules/webpack/lib/ConditionalInitFragment.js index f889f5d..6735138 100644 --- a/node_modules/webpack/lib/ConditionalInitFragment.js +++ b/node_modules/webpack/lib/ConditionalInitFragment.js @@ -27,13 +27,12 @@ const wrapInCondition = (condition, source) => { "}", "" ]); - } else { - return new ConcatSource( - `if (${condition}) {\n`, - new PrefixSource("\t", source), - "}\n" - ); } + return new ConcatSource( + `if (${condition}) {\n`, + new PrefixSource("\t", source), + "}\n" + ); }; /** @@ -54,7 +53,7 @@ class ConditionalInitFragment extends InitFragment { position, key, runtimeCondition = true, - endContent + endContent = undefined ) { super(content, stage, position, key, endContent); this.runtimeCondition = runtimeCondition; diff --git a/node_modules/webpack/lib/ConstPlugin.js b/node_modules/webpack/lib/ConstPlugin.js index 74806b1..63ed262 100644 --- a/node_modules/webpack/lib/ConstPlugin.js +++ b/node_modules/webpack/lib/ConstPlugin.js @@ -207,21 +207,13 @@ class ConstPlugin { // NOTE: When code runs in strict mode, `var` declarations // are hoisted but `function` declarations don't. // - let declarations; - if (parser.scope.isStrict) { - // If the code runs in strict mode, variable declarations - // using `var` must be hoisted. - declarations = getHoistedDeclarations(branchToRemove, false); - } else { - // Otherwise, collect all hoisted declaration. - declarations = getHoistedDeclarations(branchToRemove, true); - } - let replacement; - if (declarations.length > 0) { - replacement = `{ var ${declarations.join(", ")}; }`; - } else { - replacement = "{}"; - } + const declarations = parser.scope.isStrict + ? getHoistedDeclarations(branchToRemove, false) + : getHoistedDeclarations(branchToRemove, true); + const replacement = + declarations.length > 0 + ? `{ var ${declarations.join(", ")}; }` + : "{}"; const dep = new ConstDependency( replacement, /** @type {Range} */ (branchToRemove.range) diff --git a/node_modules/webpack/lib/ContextExclusionPlugin.js b/node_modules/webpack/lib/ContextExclusionPlugin.js index da51e30..8b29107 100644 --- a/node_modules/webpack/lib/ContextExclusionPlugin.js +++ b/node_modules/webpack/lib/ContextExclusionPlugin.js @@ -22,9 +22,9 @@ class ContextExclusionPlugin { */ apply(compiler) { compiler.hooks.contextModuleFactory.tap("ContextExclusionPlugin", cmf => { - cmf.hooks.contextModuleFiles.tap("ContextExclusionPlugin", files => { - return files.filter(filePath => !this.negativeMatcher.test(filePath)); - }); + cmf.hooks.contextModuleFiles.tap("ContextExclusionPlugin", files => + files.filter(filePath => !this.negativeMatcher.test(filePath)) + ); }); } } diff --git a/node_modules/webpack/lib/ContextModule.js b/node_modules/webpack/lib/ContextModule.js index 01ae0f3..0ad81bd 100644 --- a/node_modules/webpack/lib/ContextModule.js +++ b/node_modules/webpack/lib/ContextModule.js @@ -9,6 +9,7 @@ const { OriginalSource, RawSource } = require("webpack-sources"); const AsyncDependenciesBlock = require("./AsyncDependenciesBlock"); const { makeWebpackError } = require("./HookWebpackError"); const Module = require("./Module"); +const { JS_TYPES } = require("./ModuleSourceTypesConstants"); const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants"); const RuntimeGlobals = require("./RuntimeGlobals"); const Template = require("./Template"); @@ -30,19 +31,20 @@ const makeSerializable = require("./util/makeSerializable"); /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */ /** @typedef {import("./Chunk")} Chunk */ +/** @typedef {import("./Chunk").ChunkId} ChunkId */ /** @typedef {import("./ChunkGraph")} ChunkGraph */ /** @typedef {import("./ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("./ChunkGroup").RawChunkGroupOptions} RawChunkGroupOptions */ /** @typedef {import("./Compilation")} Compilation */ /** @typedef {import("./Dependency")} Dependency */ /** @typedef {import("./DependencyTemplates")} DependencyTemplates */ +/** @typedef {import("./Generator").SourceTypes} SourceTypes */ /** @typedef {import("./Module").BuildInfo} BuildInfo */ /** @typedef {import("./Module").BuildMeta} BuildMeta */ /** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */ /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */ /** @typedef {import("./Module").LibIdentOptions} LibIdentOptions */ /** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */ -/** @typedef {import("./Module").SourceTypes} SourceTypes */ /** @typedef {import("./ModuleGraph")} ModuleGraph */ /** @typedef {import("./RequestShortener")} RequestShortener */ /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */ @@ -61,11 +63,11 @@ const makeSerializable = require("./util/makeSerializable"); * @property {ContextMode} mode * @property {boolean} recursive * @property {RegExp} regExp - * @property {"strict"|boolean=} namespaceObject + * @property {("strict" | boolean)=} namespaceObject * @property {string=} addon - * @property {string=} chunkName - * @property {RegExp=} include - * @property {RegExp=} exclude + * @property {(string | null)=} chunkName + * @property {(RegExp | null)=} include + * @property {(RegExp | null)=} exclude * @property {RawChunkGroupOptions=} groupOptions * @property {string=} typePrefix * @property {string=} category @@ -86,7 +88,7 @@ const makeSerializable = require("./util/makeSerializable"); /** * @callback ResolveDependenciesCallback - * @param {(Error | null)=} err + * @param {Error | null} err * @param {ContextElementDependency[]=} dependencies */ @@ -99,12 +101,10 @@ const makeSerializable = require("./util/makeSerializable"); /** @typedef {1 | 3 | 7 | 9} FakeMapType */ -/** @typedef {Map | FakeMapType} FakeMap */ +/** @typedef {Record} FakeMap */ const SNAPSHOT_OPTIONS = { timestamp: true }; -const TYPES = new Set(["javascript"]); - class ContextModule extends Module { /** * @param {ResolveDependencies} resolveDependencies function to get dependencies in this context @@ -159,7 +159,7 @@ class ContextModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return TYPES; + return JS_TYPES; } /** @@ -192,7 +192,7 @@ class ContextModule extends Module { _prettyRegExp(regexString, stripSlash = true) { const str = stripSlash ? regexString.source + regexString.flags - : regexString + ""; + : `${regexString}`; return str.replace(/!/g, "%21").replace(/\|/g, "%7C"); } @@ -272,15 +272,15 @@ class ContextModule extends Module { readableIdentifier(requestShortener) { let identifier; if (this.context) { - identifier = requestShortener.shorten(this.context) + "/"; + identifier = `${requestShortener.shorten(this.context)}/`; } else if ( typeof this.options.resource === "string" || this.options.resource === false ) { - identifier = requestShortener.shorten(`${this.options.resource}`) + "/"; + identifier = `${requestShortener.shorten(`${this.options.resource}`)}/`; } else { identifier = this.options.resource - .map(r => requestShortener.shorten(r) + "/") + .map(r => `${requestShortener.shorten(r)}/`) .join(" "); } if (this.options.resourceQuery) { @@ -565,7 +565,7 @@ class ContextModule extends Module { } else if (typeof this.options.resource === "string") { contextDependencies.add(this.options.resource); } else if (this.options.resource === false) { - return; + // Do nothing } else { for (const res of this.options.resource) contextDependencies.add(res); } @@ -602,7 +602,7 @@ class ContextModule extends Module { /** * @param {Dependency[]} dependencies all dependencies * @param {ChunkGraph} chunkGraph chunk graph - * @returns {FakeMap} fake map + * @returns {FakeMap | FakeMapType} fake map */ getFakeMap(dependencies, chunkGraph) { if (!this.options.namespaceObject) { @@ -621,13 +621,14 @@ class ContextModule extends Module { ) .filter(Boolean) .sort(comparator); + /** @type {FakeMap} */ const fakeMap = Object.create(null); for (const module of sortedModules) { const exportsType = module.getExportsType( moduleGraph, this.options.namespaceObject === "strict" ); - const id = chunkGraph.getModuleId(module); + const id = /** @type {ModuleId} */ (chunkGraph.getModuleId(module)); switch (exportsType) { case "namespace": fakeMap[id] = 9; @@ -668,7 +669,7 @@ class ContextModule extends Module { } /** - * @param {FakeMap} fakeMap fake map + * @param {FakeMap | FakeMapType} fakeMap fake map * @returns {string} fake map init statement */ getFakeMapInitStatement(fakeMap) { @@ -692,7 +693,7 @@ class ContextModule extends Module { } /** - * @param {FakeMap} fakeMap fake map + * @param {FakeMap | FakeMapType} fakeMap fake map * @param {boolean=} asyncModule us async module * @param {string=} fakeMapDataExpression fake map data expression * @returns {string} module object source @@ -944,15 +945,19 @@ module.exports = webpackAsyncContext;`; chunkGraph ); const hasFakeMap = typeof fakeMap === "object"; + /** @typedef {{userRequest: string, dependency: ContextElementDependency, chunks: undefined | Chunk[], module: Module, block: AsyncDependenciesBlock}} Item */ + /** + * @type {Item[]} + */ const items = blocks .map(block => { const dependency = /** @type {ContextElementDependency} */ (block.dependencies[0]); return { - dependency: dependency, + dependency, module: /** @type {Module} */ (moduleGraph.getModule(dependency)), - block: block, + block, userRequest: dependency.userRequest, chunks: undefined }; @@ -974,18 +979,23 @@ module.exports = webpackAsyncContext;`; if (a.userRequest === b.userRequest) return 0; return a.userRequest < b.userRequest ? -1 : 1; }); + /** @type {Record} */ const map = Object.create(null); for (const item of sortedItems) { - const moduleId = chunkGraph.getModuleId(item.module); + const moduleId = + /** @type {ModuleId} */ + (chunkGraph.getModuleId(item.module)); if (shortMode) { map[item.userRequest] = moduleId; } else { + /** @type {(ModuleId | ChunkId)[]} */ const arrayStart = [moduleId]; if (hasFakeMap) { arrayStart.push(fakeMap[moduleId]); } map[item.userRequest] = arrayStart.concat( - item.chunks.map(chunk => chunk.id) + /** @type {Chunk[]} */ + (item.chunks).map(chunk => /** @type {ChunkId} */ (chunk.id)) ); } } @@ -1086,7 +1096,7 @@ module.exports = webpackEmptyAsyncContext;`; * @returns {string} the source code */ getSourceString(asyncMode, { runtimeTemplate, chunkGraph }) { - const id = chunkGraph.getModuleId(this); + const id = /** @type {ModuleId} */ (chunkGraph.getModuleId(this)); if (asyncMode === "lazy") { if (this.blocks && this.blocks.length > 0) { return this.getLazySource(this.blocks, id, { @@ -1124,10 +1134,12 @@ module.exports = webpackEmptyAsyncContext;`; } return this.getSourceForEmptyAsyncContext(id, runtimeTemplate); } - if (asyncMode === "weak") { - if (this.dependencies && this.dependencies.length > 0) { - return this.getWeakSyncSource(this.dependencies, id, chunkGraph); - } + if ( + asyncMode === "weak" && + this.dependencies && + this.dependencies.length > 0 + ) { + return this.getWeakSyncSource(this.dependencies, id, chunkGraph); } if (this.dependencies && this.dependencies.length > 0) { return this.getSyncSource(this.dependencies, id, chunkGraph); diff --git a/node_modules/webpack/lib/ContextModuleFactory.js b/node_modules/webpack/lib/ContextModuleFactory.js index f66de4e..23da026 100644 --- a/node_modules/webpack/lib/ContextModuleFactory.js +++ b/node_modules/webpack/lib/ContextModuleFactory.js @@ -22,8 +22,14 @@ const { join } = require("./util/fs"); /** @typedef {import("./ModuleFactory").ModuleFactoryResult} ModuleFactoryResult */ /** @typedef {import("./ResolverFactory")} ResolverFactory */ /** @typedef {import("./dependencies/ContextDependency")} ContextDependency */ -/** @template T @typedef {import("./util/deprecation").FakeHook} FakeHook */ +/** @typedef {import("enhanced-resolve").ResolveRequest} ResolveRequest */ +/** + * @template T + * @typedef {import("./util/deprecation").FakeHook} FakeHook + */ +/** @typedef {import("./util/fs").IStats} IStats */ /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */ +/** @typedef {{ context: string, request: string }} ContextAlternativeRequest */ const EMPTY_RESOLVE_OPTIONS = {}; @@ -33,7 +39,7 @@ module.exports = class ContextModuleFactory extends ModuleFactory { */ constructor(resolverFactory) { super(); - /** @type {AsyncSeriesWaterfallHook<[TODO[], ContextModuleOptions]>} */ + /** @type {AsyncSeriesWaterfallHook<[ContextAlternativeRequest[], ContextModuleOptions]>} */ const alternativeRequests = new AsyncSeriesWaterfallHook([ "modules", "options" @@ -45,27 +51,27 @@ module.exports = class ContextModuleFactory extends ModuleFactory { afterResolve: new AsyncSeriesWaterfallHook(["data"]), /** @type {SyncWaterfallHook<[string[]]>} */ contextModuleFiles: new SyncWaterfallHook(["files"]), - /** @type {FakeHook, "tap" | "tapAsync" | "tapPromise" | "name">>} */ + /** @type {FakeHook, "tap" | "tapAsync" | "tapPromise" | "name">>} */ alternatives: createFakeHook( { name: "alternatives", - /** @type {AsyncSeriesWaterfallHook<[TODO[]]>["intercept"]} */ + /** @type {AsyncSeriesWaterfallHook<[ContextAlternativeRequest[]]>["intercept"]} */ intercept: interceptor => { throw new Error( "Intercepting fake hook ContextModuleFactory.hooks.alternatives is not possible, use ContextModuleFactory.hooks.alternativeRequests instead" ); }, - /** @type {AsyncSeriesWaterfallHook<[TODO[]]>["tap"]} */ + /** @type {AsyncSeriesWaterfallHook<[ContextAlternativeRequest[]]>["tap"]} */ tap: (options, fn) => { alternativeRequests.tap(options, fn); }, - /** @type {AsyncSeriesWaterfallHook<[TODO[]]>["tapAsync"]} */ + /** @type {AsyncSeriesWaterfallHook<[ContextAlternativeRequest[]]>["tapAsync"]} */ tapAsync: (options, fn) => { alternativeRequests.tapAsync(options, (items, _options, callback) => fn(items, callback) ); }, - /** @type {AsyncSeriesWaterfallHook<[TODO[]]>["tapPromise"]} */ + /** @type {AsyncSeriesWaterfallHook<[ContextAlternativeRequest[]]>["tapPromise"]} */ tapPromise: (options, fn) => { alternativeRequests.tapPromise(options, fn); } @@ -93,8 +99,8 @@ module.exports = class ContextModuleFactory extends ModuleFactory { const contextDependencies = new LazySet(); this.hooks.beforeResolve.callAsync( { - context: context, - dependencies: dependencies, + context, + dependencies, layer: data.contextInfo.issuerLayer, resolveOptions, fileDependencies, @@ -124,9 +130,9 @@ module.exports = class ContextModuleFactory extends ModuleFactory { const request = beforeResolveResult.request; const resolveOptions = beforeResolveResult.resolveOptions; - let loaders, - resource, - loadersPrefix = ""; + let loaders; + let resource; + let loadersPrefix = ""; const idx = request.lastIndexOf("!"); if (idx >= 0) { let loadersRequest = request.slice(0, idx + 1); @@ -142,11 +148,7 @@ module.exports = class ContextModuleFactory extends ModuleFactory { .slice(i) .replace(/!+$/, "") .replace(/!!+/g, "!"); - if (loadersRequest === "") { - loaders = []; - } else { - loaders = loadersRequest.split("!"); - } + loaders = loadersRequest === "" ? [] : loadersRequest.split("!"); resource = request.slice(idx + 1); } else { loaders = []; @@ -168,8 +170,14 @@ module.exports = class ContextModuleFactory extends ModuleFactory { asyncLib.parallel( [ callback => { - const results = []; - const yield_ = obj => results.push(obj); + const results = /** @type ResolveRequest[] */ ([]); + /** + * @param {ResolveRequest} obj obj + * @returns {void} + */ + const yield_ = obj => { + results.push(obj); + }; contextResolver.resolve( {}, @@ -202,7 +210,7 @@ module.exports = class ContextModuleFactory extends ModuleFactory { }, (err, result) => { if (err) return callback(err); - callback(null, result); + callback(null, /** @type {string} */ (result)); } ); }, @@ -218,7 +226,8 @@ module.exports = class ContextModuleFactory extends ModuleFactory { contextDependencies }); } - let [contextResult, loaderResult] = result; + let [contextResult, loaderResult] = + /** @type {[ResolveRequest[], string[]]} */ (result); if (contextResult.length > 1) { const first = contextResult[0]; contextResult = contextResult.filter(r => r.path); @@ -294,10 +303,19 @@ module.exports = class ContextModuleFactory extends ModuleFactory { } = options; if (!regExp || !resource) return callback(null, []); + /** + * @param {string} ctx context + * @param {string} directory directory + * @param {Set} visited visited + * @param {ResolveDependenciesCallback} callback callback + */ const addDirectoryChecked = (ctx, directory, visited, callback) => { - fs.realpath(directory, (err, realPath) => { + /** @type {NonNullable} */ + (fs.realpath)(directory, (err, _realPath) => { if (err) return callback(err); + const realPath = /** @type {string} */ (_realPath); if (visited.has(realPath)) return callback(null, []); + /** @type {Set | undefined} */ let recursionStack; addDirectory( ctx, @@ -314,6 +332,12 @@ module.exports = class ContextModuleFactory extends ModuleFactory { }); }; + /** + * @param {string} ctx context + * @param {string} directory directory + * @param {function(string, string, function(): void): void} addSubDirectory addSubDirectoryFn + * @param {ResolveDependenciesCallback} callback callback + */ const addDirectory = (ctx, directory, addSubDirectory, callback) => { fs.readdir(directory, (err, files) => { if (err) return callback(err); @@ -328,17 +352,18 @@ module.exports = class ContextModuleFactory extends ModuleFactory { const subResource = join(fs, directory, segment); if (!exclude || !subResource.match(exclude)) { - fs.stat(subResource, (err, stat) => { + fs.stat(subResource, (err, _stat) => { if (err) { if (err.code === "ENOENT") { // ENOENT is ok here because the file may have been deleted between // the readdir and stat calls. return callback(); - } else { - return callback(err); } + return callback(err); } + const stat = /** @type {IStats} */ (_stat); + if (stat.isDirectory()) { if (!recursive) return callback(); addSubDirectory(ctx, subResource, callback); @@ -346,10 +371,10 @@ module.exports = class ContextModuleFactory extends ModuleFactory { stat.isFile() && (!include || subResource.match(include)) ) { + /** @type {{ context: string, request: string }} */ const obj = { context: ctx, - request: - "." + subResource.slice(ctx.length).replace(/\\/g, "/") + request: `.${subResource.slice(ctx.length).replace(/\\/g, "/")}` }; this.hooks.alternativeRequests.callAsync( @@ -357,22 +382,29 @@ module.exports = class ContextModuleFactory extends ModuleFactory { options, (err, alternatives) => { if (err) return callback(err); - alternatives = alternatives - .filter(obj => regExp.test(obj.request)) - .map(obj => { - const dep = new ContextElementDependency( - `${obj.request}${resourceQuery}${resourceFragment}`, - obj.request, - typePrefix, - category, - referencedExports, - obj.context, - attributes - ); - dep.optional = true; - return dep; - }); - callback(null, alternatives); + callback( + null, + /** @type {ContextAlternativeRequest[]} */ + (alternatives) + .filter(obj => + regExp.test(/** @type {string} */ (obj.request)) + ) + .map(obj => { + const dep = new ContextElementDependency( + `${obj.request}${resourceQuery}${resourceFragment}`, + obj.request, + typePrefix, + /** @type {string} */ + (category), + referencedExports, + /** @type {TODO} */ + (obj.context), + attributes + ); + dep.optional = true; + return dep; + }) + ); } ); } else { @@ -400,9 +432,19 @@ module.exports = class ContextModuleFactory extends ModuleFactory { }); }; + /** + * @param {string} ctx context + * @param {string} dir dir + * @param {ResolveDependenciesCallback} callback callback + * @returns {void} + */ const addSubDirectory = (ctx, dir, callback) => addDirectory(ctx, dir, addSubDirectory, callback); + /** + * @param {string} resource resource + * @param {ResolveDependenciesCallback} callback callback + */ const visitResource = (resource, callback) => { if (typeof fs.realpath === "function") { addDirectoryChecked(resource, resource, new Set(), callback); @@ -414,12 +456,15 @@ module.exports = class ContextModuleFactory extends ModuleFactory { if (typeof resource === "string") { visitResource(resource, callback); } else { - asyncLib.map(resource, visitResource, (err, result) => { + asyncLib.map(resource, visitResource, (err, _result) => { if (err) return callback(err); + const result = /** @type {ContextElementDependency[][]} */ (_result); // result dependencies should have unique userRequest // ordered by resolve result + /** @type {Set} */ const temp = new Set(); + /** @type {ContextElementDependency[]} */ const res = []; for (let i = 0; i < result.length; i++) { const inner = result[i]; diff --git a/node_modules/webpack/lib/ContextReplacementPlugin.js b/node_modules/webpack/lib/ContextReplacementPlugin.js index a8df59c..ac425f3 100644 --- a/node_modules/webpack/lib/ContextReplacementPlugin.js +++ b/node_modules/webpack/lib/ContextReplacementPlugin.js @@ -16,7 +16,7 @@ class ContextReplacementPlugin { * @param {RegExp} resourceRegExp A regular expression that determines which files will be selected * @param {TODO=} newContentResource A new resource to replace the match * @param {TODO=} newContentRecursive If true, all subdirectories are searched for matches - * @param {TODO=} newContentRegExp A regular expression that determines which files will be selected + * @param {RegExp=} newContentRegExp A regular expression that determines which files will be selected */ constructor( resourceRegExp, @@ -154,14 +154,15 @@ const createResolveDependenciesFromContextMap = createContextMap => { const resolveDependenciesFromContextMap = (fs, options, callback) => { createContextMap(fs, (err, map) => { if (err) return callback(err); - const dependencies = Object.keys(map).map(key => { - return new ContextElementDependency( - map[key] + options.resourceQuery + options.resourceFragment, - key, - options.category, - options.referencedExports - ); - }); + const dependencies = Object.keys(map).map( + key => + new ContextElementDependency( + map[key] + options.resourceQuery + options.resourceFragment, + key, + options.category, + options.referencedExports + ) + ); callback(null, dependencies); }); }; diff --git a/node_modules/webpack/lib/CssModule.js b/node_modules/webpack/lib/CssModule.js index 53a9129..d610b9e 100644 --- a/node_modules/webpack/lib/CssModule.js +++ b/node_modules/webpack/lib/CssModule.js @@ -1,6 +1,6 @@ /* MIT License http://www.opensource.org/licenses/mit-license.php - Author Alexander Krasnoyarov @alexander-akait + Author Alexander Akait @alexander-akait */ "use strict"; @@ -14,13 +14,13 @@ const makeSerializable = require("./util/makeSerializable"); /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ /** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ -/** @typedef {string|undefined} CssLayer */ -/** @typedef {string|undefined} Supports */ -/** @typedef {string|undefined} Media */ -/** @typedef {[CssLayer?, Supports?, Media?]} InheritanceItem */ +/** @typedef {string | undefined} CssLayer */ +/** @typedef {string | undefined} Supports */ +/** @typedef {string | undefined} Media */ +/** @typedef {[CssLayer, Supports, Media]} InheritanceItem */ /** @typedef {Array} Inheritance */ -/** @typedef {NormalModuleCreateData & { cssLayer: CssLayer|null, supports: Supports|null, media: Media|null, inheritance: Inheritance|null }} CSSModuleCreateData */ +/** @typedef {NormalModuleCreateData & { cssLayer: CssLayer, supports: Supports, media: Media, inheritance: Inheritance }} CSSModuleCreateData */ class CssModule extends NormalModule { /** @@ -127,30 +127,34 @@ class CssModule extends NormalModule { static deserialize(context) { const obj = new CssModule({ // will be deserialized by Module - layer: null, + layer: /** @type {EXPECTED_ANY} */ (null), type: "", // will be filled by updateCacheModule resource: "", context: "", - request: null, - userRequest: null, - rawRequest: null, - loaders: null, - matchResource: null, - parser: null, - parserOptions: null, - generator: null, - generatorOptions: null, - resolveOptions: null, - cssLayer: null, - supports: null, - media: null, - inheritance: null + request: /** @type {EXPECTED_ANY} */ (null), + userRequest: /** @type {EXPECTED_ANY} */ (null), + rawRequest: /** @type {EXPECTED_ANY} */ (null), + loaders: /** @type {EXPECTED_ANY} */ (null), + matchResource: /** @type {EXPECTED_ANY} */ (null), + parser: /** @type {EXPECTED_ANY} */ (null), + parserOptions: /** @type {EXPECTED_ANY} */ (null), + generator: /** @type {EXPECTED_ANY} */ (null), + generatorOptions: /** @type {EXPECTED_ANY} */ (null), + resolveOptions: /** @type {EXPECTED_ANY} */ (null), + cssLayer: /** @type {EXPECTED_ANY} */ (null), + supports: /** @type {EXPECTED_ANY} */ (null), + media: /** @type {EXPECTED_ANY} */ (null), + inheritance: /** @type {EXPECTED_ANY} */ (null) }); obj.deserialize(context); return obj; } + /** + * @param {ObjectDeserializerContext} context context + * @returns {TODO} Module + */ deserialize(context) { const { read } = context; this.cssLayer = read(); diff --git a/node_modules/webpack/lib/DefinePlugin.js b/node_modules/webpack/lib/DefinePlugin.js index b8c30f7..d7209bc 100644 --- a/node_modules/webpack/lib/DefinePlugin.js +++ b/node_modules/webpack/lib/DefinePlugin.js @@ -24,12 +24,14 @@ const createHash = require("./util/createHash"); /** @typedef {import("estree").Expression} Expression */ /** @typedef {import("./Compiler")} Compiler */ /** @typedef {import("./Module").BuildInfo} BuildInfo */ +/** @typedef {import("./Module").ValueCacheVersions} ValueCacheVersions */ /** @typedef {import("./NormalModule")} NormalModule */ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */ /** @typedef {import("./javascript/JavascriptParser")} JavascriptParser */ /** @typedef {import("./javascript/JavascriptParser").DestructuringAssignmentProperty} DestructuringAssignmentProperty */ /** @typedef {import("./javascript/JavascriptParser").Range} Range */ /** @typedef {import("./logging/Logger").Logger} Logger */ +/** @typedef {import("./util/createHash").Algorithm} Algorithm */ /** @typedef {null|undefined|RegExp|Function|string|number|boolean|bigint|undefined} CodeValuePrimitive */ /** @typedef {RecursiveArrayOrRecord} CodeValue */ @@ -43,9 +45,12 @@ const createHash = require("./util/createHash"); * @property {string|function(): string=} version */ +/** @typedef {string | Set} ValueCacheVersion */ +/** @typedef {function({ module: NormalModule, key: string, readonly version: ValueCacheVersion }): CodeValuePrimitive} GeneratorFn */ + class RuntimeValue { /** - * @param {function({ module: NormalModule, key: string, readonly version: string | undefined }): CodeValuePrimitive} fn generator function + * @param {GeneratorFn} fn generator function * @param {true | string[] | RuntimeValueOptions=} options options */ constructor(fn, options) { @@ -64,7 +69,7 @@ class RuntimeValue { /** * @param {JavascriptParser} parser the parser - * @param {Map>} valueCacheVersions valueCacheVersions + * @param {ValueCacheVersions} valueCacheVersions valueCacheVersions * @param {string} key the defined key * @returns {CodeValuePrimitive} code */ @@ -75,22 +80,26 @@ class RuntimeValue { } else { if (this.options.fileDependencies) { for (const dep of this.options.fileDependencies) { - buildInfo.fileDependencies.add(dep); + /** @type {NonNullable} */ + (buildInfo.fileDependencies).add(dep); } } if (this.options.contextDependencies) { for (const dep of this.options.contextDependencies) { - buildInfo.contextDependencies.add(dep); + /** @type {NonNullable} */ + (buildInfo.contextDependencies).add(dep); } } if (this.options.missingDependencies) { for (const dep of this.options.missingDependencies) { - buildInfo.missingDependencies.add(dep); + /** @type {NonNullable} */ + (buildInfo.missingDependencies).add(dep); } } if (this.options.buildDependencies) { for (const dep of this.options.buildDependencies) { - buildInfo.buildDependencies.add(dep); + /** @type {NonNullable} */ + (buildInfo.buildDependencies).add(dep); } } } @@ -99,7 +108,7 @@ class RuntimeValue { module: parser.state.module, key, get version() { - return /** @type {string} */ ( + return /** @type {ValueCacheVersion} */ ( valueCacheVersions.get(VALUE_DEP_PREFIX + key) ); } @@ -120,19 +129,22 @@ class RuntimeValue { * @returns {Set | undefined} used keys */ function getObjKeys(properties) { - if (!properties) return undefined; + if (!properties) return; return new Set([...properties].map(p => p.id)); } +/** @typedef {Set | null} ObjKeys */ +/** @typedef {boolean | undefined | null} AsiSafe */ + /** * @param {any[]|{[k: string]: any}} obj obj * @param {JavascriptParser} parser Parser - * @param {Map>} valueCacheVersions valueCacheVersions + * @param {ValueCacheVersions} valueCacheVersions valueCacheVersions * @param {string} key the defined key * @param {RuntimeTemplate} runtimeTemplate the runtime template * @param {Logger} logger the logger object - * @param {boolean|undefined|null=} asiSafe asi safe (undefined: unknown, null: unneeded) - * @param {Set|undefined=} objKeys used keys + * @param {AsiSafe=} asiSafe asi safe (undefined: unknown, null: unneeded) + * @param {ObjKeys=} objKeys used keys * @returns {string} code converted to string that evaluates */ const stringifyObj = ( @@ -146,7 +158,7 @@ const stringifyObj = ( objKeys ) => { let code; - let arr = Array.isArray(obj); + const arr = Array.isArray(obj); if (arr) { code = `[${ /** @type {any[]} */ (obj) @@ -166,25 +178,20 @@ const stringifyObj = ( } else { let keys = Object.keys(obj); if (objKeys) { - if (objKeys.size === 0) keys = []; - else keys = keys.filter(k => objKeys.has(k)); + keys = objKeys.size === 0 ? [] : keys.filter(k => objKeys.has(k)); } code = `{${keys .map(key => { const code = /** @type {{[k: string]: any}} */ (obj)[key]; - return ( - JSON.stringify(key) + - ":" + - toCode( - code, - parser, - valueCacheVersions, - key, - runtimeTemplate, - logger, - null - ) - ); + return `${JSON.stringify(key)}:${toCode( + code, + parser, + valueCacheVersions, + key, + runtimeTemplate, + logger, + null + )}`; }) .join(",")}}`; } @@ -205,12 +212,12 @@ const stringifyObj = ( * Convert code to a string that evaluates * @param {CodeValue} code Code to evaluate * @param {JavascriptParser} parser Parser - * @param {Map>} valueCacheVersions valueCacheVersions + * @param {ValueCacheVersions} valueCacheVersions valueCacheVersions * @param {string} key the defined key * @param {RuntimeTemplate} runtimeTemplate the runtime template * @param {Logger} logger the logger object - * @param {boolean|undefined|null=} asiSafe asi safe (undefined: unknown, null: unneeded) - * @param {Set|undefined=} objKeys used keys + * @param {boolean | undefined | null=} asiSafe asi safe (undefined: unknown, null: unneeded) + * @param {ObjKeys=} objKeys used keys * @returns {string} code converted to string that evaluates */ const toCode = ( @@ -248,7 +255,7 @@ const toCode = ( return code.toString(); } if (typeof code === "function" && code.toString) { - return "(" + code.toString() + ")"; + return `(${code.toString()})`; } if (typeof code === "object") { return stringifyObj( @@ -267,7 +274,7 @@ const toCode = ( ? `${code}n` : `BigInt("${code}")`; } - return code + ""; + return `${code}`; }; const strCode = transformToCode(); @@ -298,20 +305,20 @@ const toCacheVersion = code => { return code.toString(); } if (typeof code === "function" && code.toString) { - return "(" + code.toString() + ")"; + return `(${code.toString()})`; } if (typeof code === "object") { const items = Object.keys(code).map(key => ({ key, value: toCacheVersion(/** @type {Record} */ (code)[key]) })); - if (items.some(({ value }) => value === undefined)) return undefined; + if (items.some(({ value }) => value === undefined)) return; return `{${items.map(({ key, value }) => `${key}: ${value}`).join(", ")}}`; } if (typeof code === "bigint") { return `${code}n`; } - return code + ""; + return `${code}`; }; const PLUGIN_NAME = "DefinePlugin"; @@ -333,7 +340,7 @@ class DefinePlugin { } /** - * @param {function({ module: NormalModule, key: string, readonly version: string | undefined }): CodeValuePrimitive} fn generator function + * @param {GeneratorFn} fn generator function * @param {true | string[] | RuntimeValueOptions=} options options * @returns {RuntimeValue} runtime value */ @@ -358,11 +365,13 @@ class DefinePlugin { ); const { runtimeTemplate } = compilation; - const mainHash = createHash(compilation.outputOptions.hashFunction); + const mainHash = createHash( + /** @type {Algorithm} */ + (compilation.outputOptions.hashFunction) + ); mainHash.update( - /** @type {string} */ ( - compilation.valueCacheVersions.get(VALUE_DEP_MAIN) - ) || "" + /** @type {string} */ + (compilation.valueCacheVersions.get(VALUE_DEP_MAIN)) || "" ); /** @@ -371,7 +380,9 @@ class DefinePlugin { * @returns {void} */ const handler = parser => { - const mainValue = compilation.valueCacheVersions.get(VALUE_DEP_MAIN); + const mainValue = + /** @type {ValueCacheVersion} */ + (compilation.valueCacheVersions.get(VALUE_DEP_MAIN)); parser.hooks.program.tap(PLUGIN_NAME, () => { const buildInfo = /** @type {BuildInfo} */ ( parser.state.module.buildInfo @@ -385,15 +396,23 @@ class DefinePlugin { * @param {string} key key */ const addValueDependency = key => { - const buildInfo = /** @type {BuildInfo} */ ( - parser.state.module.buildInfo - ); - buildInfo.valueDependencies.set( + const buildInfo = + /** @type {BuildInfo} */ + (parser.state.module.buildInfo); + /** @type {NonNullable} */ + (buildInfo.valueDependencies).set( VALUE_DEP_PREFIX + key, - compilation.valueCacheVersions.get(VALUE_DEP_PREFIX + key) + /** @type {ValueCacheVersion} */ + (compilation.valueCacheVersions.get(VALUE_DEP_PREFIX + key)) ); }; + /** + * @template {Function} T + * @param {string} key key + * @param {T} fn fn + * @returns {function(TODO): TODO} result + */ const withValueDependency = (key, fn) => (...args) => { @@ -408,7 +427,7 @@ class DefinePlugin { * @returns {void} */ const walkDefinitions = (definitions, prefix) => { - Object.keys(definitions).forEach(key => { + for (const key of Object.keys(definitions)) { const code = definitions[key]; if ( code && @@ -418,14 +437,14 @@ class DefinePlugin { ) { walkDefinitions( /** @type {Record} */ (code), - prefix + key + "." + `${prefix + key}.` ); applyObjectDefine(prefix + key, code); - return; + continue; } applyDefineKey(prefix, key); applyDefine(prefix + key, code); - }); + } }; /** @@ -436,13 +455,13 @@ class DefinePlugin { */ const applyDefineKey = (prefix, key) => { const splittedKey = key.split("."); - splittedKey.slice(1).forEach((_, i) => { + for (const [i, _] of splittedKey.slice(1).entries()) { const fullKey = prefix + splittedKey.slice(0, i + 1).join("."); parser.hooks.canRename.for(fullKey).tap(PLUGIN_NAME, () => { addValueDependency(key); return true; }); - }); + } }; /** @@ -505,7 +524,7 @@ class DefinePlugin { ); if (parser.scope.inShorthand) { - strCode = parser.scope.inShorthand + ":" + strCode; + strCode = `${parser.scope.inShorthand}:${strCode}`; } if (WEBPACK_REQUIRE_FUNCTION_REGEXP.test(strCode)) { @@ -516,9 +535,8 @@ class DefinePlugin { return toConstantDependency(parser, strCode, [ RuntimeGlobals.requireScope ])(expr); - } else { - return toConstantDependency(parser, strCode)(expr); } + return toConstantDependency(parser, strCode)(expr); }); } parser.hooks.evaluateTypeof.for(key).tap(PLUGIN_NAME, expr => { @@ -542,9 +560,7 @@ class DefinePlugin { logger, null ); - const typeofCode = isTypeof - ? codeCode - : "typeof (" + codeCode + ")"; + const typeofCode = isTypeof ? codeCode : `typeof (${codeCode})`; const res = parser.evaluate(typeofCode); recurseTypeof = false; res.setRange(/** @type {Range} */ (expr.range)); @@ -561,9 +577,7 @@ class DefinePlugin { logger, null ); - const typeofCode = isTypeof - ? codeCode - : "typeof (" + codeCode + ")"; + const typeofCode = isTypeof ? codeCode : `typeof (${codeCode})`; const res = parser.evaluate(typeofCode); if (!res.isString()) return; return toConstantDependency( @@ -611,7 +625,7 @@ class DefinePlugin { ); if (parser.scope.inShorthand) { - strCode = parser.scope.inShorthand + ":" + strCode; + strCode = `${parser.scope.inShorthand}:${strCode}`; } if (WEBPACK_REQUIRE_FUNCTION_REGEXP.test(strCode)) { @@ -622,9 +636,8 @@ class DefinePlugin { return toConstantDependency(parser, strCode, [ RuntimeGlobals.requireScope ])(expr); - } else { - return toConstantDependency(parser, strCode)(expr); } + return toConstantDependency(parser, strCode)(expr); }); parser.hooks.typeof .for(key) @@ -657,11 +670,11 @@ class DefinePlugin { * @returns {void} */ const walkDefinitionsForValues = (definitions, prefix) => { - Object.keys(definitions).forEach(key => { + for (const key of Object.keys(definitions)) { const code = definitions[key]; - const version = toCacheVersion(code); + const version = /** @type {string} */ (toCacheVersion(code)); const name = VALUE_DEP_PREFIX + prefix + key; - mainHash.update("|" + prefix + key); + mainHash.update(`|${prefix}${key}`); const oldVersion = compilation.valueCacheVersions.get(name); if (oldVersion === undefined) { compilation.valueCacheVersions.set(name, version); @@ -681,10 +694,10 @@ class DefinePlugin { ) { walkDefinitionsForValues( /** @type {Record} */ (code), - prefix + key + "." + `${prefix + key}.` ); } - }); + } }; walkDefinitionsForValues(definitions, ""); diff --git a/node_modules/webpack/lib/DelegatedModule.js b/node_modules/webpack/lib/DelegatedModule.js index 9f669db..e6bc5bc 100644 --- a/node_modules/webpack/lib/DelegatedModule.js +++ b/node_modules/webpack/lib/DelegatedModule.js @@ -7,6 +7,7 @@ const { OriginalSource, RawSource } = require("webpack-sources"); const Module = require("./Module"); +const { JS_TYPES } = require("./ModuleSourceTypesConstants"); const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants"); const RuntimeGlobals = require("./RuntimeGlobals"); const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency"); @@ -19,13 +20,13 @@ const makeSerializable = require("./util/makeSerializable"); /** @typedef {import("./Compilation")} Compilation */ /** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */ /** @typedef {import("./DependencyTemplates")} DependencyTemplates */ +/** @typedef {import("./Generator").SourceTypes} SourceTypes */ /** @typedef {import("./LibManifestPlugin").ManifestModuleData} ManifestModuleData */ /** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */ /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */ /** @typedef {import("./Module").LibIdentOptions} LibIdentOptions */ /** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */ /** @typedef {import("./Module").SourceContext} SourceContext */ -/** @typedef {import("./Module").SourceTypes} SourceTypes */ /** @typedef {import("./RequestShortener")} RequestShortener */ /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */ @@ -36,7 +37,10 @@ const makeSerializable = require("./util/makeSerializable"); /** @typedef {import("./util/Hash")} Hash */ /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */ -const TYPES = new Set(["javascript"]); +/** @typedef {string} SourceRequest */ +/** @typedef {"require" | "object"} Type */ +/** @typedef {TODO} Data */ + const RUNTIME_REQUIREMENTS = new Set([ RuntimeGlobals.module, RuntimeGlobals.require @@ -44,9 +48,9 @@ const RUNTIME_REQUIREMENTS = new Set([ class DelegatedModule extends Module { /** - * @param {string} sourceRequest source request - * @param {TODO} data data - * @param {"require" | "object"} type type + * @param {SourceRequest} sourceRequest source request + * @param {Data} data data + * @param {Type} type type * @param {string} userRequest user request * @param {string | Module} originalRequest original request */ @@ -70,7 +74,7 @@ class DelegatedModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return TYPES; + return JS_TYPES; } /** diff --git a/node_modules/webpack/lib/DelegatedModuleFactoryPlugin.js b/node_modules/webpack/lib/DelegatedModuleFactoryPlugin.js index 522b0d8..ae9b79a 100644 --- a/node_modules/webpack/lib/DelegatedModuleFactoryPlugin.js +++ b/node_modules/webpack/lib/DelegatedModuleFactoryPlugin.js @@ -7,15 +7,28 @@ const DelegatedModule = require("./DelegatedModule"); +/** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */ +/** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptionsContent} DllReferencePluginOptionsContent */ +/** @typedef {import("./DelegatedModule").Data} Data */ +/** @typedef {import("./DelegatedModule").SourceRequest} SourceRequest */ +/** @typedef {import("./DelegatedModule").Type} Type */ /** @typedef {import("./NormalModuleFactory")} NormalModuleFactory */ -// options.source -// options.type -// options.context -// options.scope -// options.content -// options.associatedObjectForCache +/** + * @typedef {object} Options + * @property {SourceRequest} source source + * @property {NonNullable} context absolute context path to which lib ident is relative to + * @property {DllReferencePluginOptionsContent} content content + * @property {DllReferencePluginOptions["type"]} type type + * @property {DllReferencePluginOptions["extensions"]} extensions extensions + * @property {DllReferencePluginOptions["scope"]} scope scope + * @property {object=} associatedObjectForCache object for caching + */ + class DelegatedModuleFactoryPlugin { + /** + * @param {Options} options options + */ constructor(options) { this.options = options; options.type = options.type || "require"; @@ -35,7 +48,7 @@ class DelegatedModuleFactoryPlugin { const [dependency] = data.dependencies; const { request } = dependency; if (request && request.startsWith(`${scope}/`)) { - const innerRequest = "." + request.slice(scope.length); + const innerRequest = `.${request.slice(scope.length)}`; let resolved; if (innerRequest in this.options.content) { resolved = this.options.content[innerRequest]; @@ -44,14 +57,17 @@ class DelegatedModuleFactoryPlugin { new DelegatedModule( this.options.source, resolved, - this.options.type, + /** @type {Type} */ (this.options.type), innerRequest, request ) ); } - for (let i = 0; i < this.options.extensions.length; i++) { - const extension = this.options.extensions[i]; + const extensions = + /** @type {string[]} */ + (this.options.extensions); + for (let i = 0; i < extensions.length; i++) { + const extension = extensions[i]; const requestPlusExt = innerRequest + extension; if (requestPlusExt in this.options.content) { resolved = this.options.content[requestPlusExt]; @@ -60,7 +76,7 @@ class DelegatedModuleFactoryPlugin { new DelegatedModule( this.options.source, resolved, - this.options.type, + /** @type {Type} */ (this.options.type), requestPlusExt, request + extension ) @@ -76,17 +92,15 @@ class DelegatedModuleFactoryPlugin { "DelegatedModuleFactoryPlugin", module => { const request = module.libIdent(this.options); - if (request) { - if (request in this.options.content) { - const resolved = this.options.content[request]; - return new DelegatedModule( - this.options.source, - resolved, - this.options.type, - request, - module - ); - } + if (request && request in this.options.content) { + const resolved = this.options.content[request]; + return new DelegatedModule( + this.options.source, + resolved, + /** @type {Type} */ (this.options.type), + request, + module + ); } return module; } diff --git a/node_modules/webpack/lib/DelegatedPlugin.js b/node_modules/webpack/lib/DelegatedPlugin.js index ffcc489..735e2f0 100644 --- a/node_modules/webpack/lib/DelegatedPlugin.js +++ b/node_modules/webpack/lib/DelegatedPlugin.js @@ -9,8 +9,12 @@ const DelegatedModuleFactoryPlugin = require("./DelegatedModuleFactoryPlugin"); const DelegatedSourceDependency = require("./dependencies/DelegatedSourceDependency"); /** @typedef {import("./Compiler")} Compiler */ +/** @typedef {import("./DelegatedModuleFactoryPlugin").Options} Options */ class DelegatedPlugin { + /** + * @param {Options} options options + */ constructor(options) { this.options = options; } diff --git a/node_modules/webpack/lib/DependenciesBlock.js b/node_modules/webpack/lib/DependenciesBlock.js index 1238e6e..a952b64 100644 --- a/node_modules/webpack/lib/DependenciesBlock.js +++ b/node_modules/webpack/lib/DependenciesBlock.js @@ -46,7 +46,6 @@ class DependenciesBlock { /** * Adds a DependencyBlock to DependencyBlock relationship. * This is used for when a Module has a AsyncDependencyBlock tie (for code-splitting) - * * @param {AsyncDependenciesBlock} block block being added * @returns {void} */ diff --git a/node_modules/webpack/lib/Dependency.js b/node_modules/webpack/lib/Dependency.js index 84b4736..a18f736 100644 --- a/node_modules/webpack/lib/Dependency.js +++ b/node_modules/webpack/lib/Dependency.js @@ -67,7 +67,7 @@ const memoize = require("./util/memoize"); * @typedef {object} ExportsSpec * @property {(string | ExportSpec)[] | true | null} exports exported names, true for unknown exports or null for no exports * @property {Set=} excludeExports when exports = true, list of unaffected exports - * @property {Set=} hideExports list of maybe prior exposed, but now hidden exports + * @property {(Set | null)=} hideExports list of maybe prior exposed, but now hidden exports * @property {ModuleGraphConnection=} from when reexported: from which module * @property {number=} priority when reexported: with which priority * @property {boolean=} canMangle can the export be renamed (defaults to true) @@ -85,9 +85,9 @@ const memoize = require("./util/memoize"); const TRANSITIVE = Symbol("transitive"); -const getIgnoredModule = memoize(() => { - return new RawModule("/* (ignored) */", `ignored`, `(ignored)`); -}); +const getIgnoredModule = memoize( + () => new RawModule("/* (ignored) */", "ignored", "(ignored)") +); class Dependency { constructor() { @@ -163,16 +163,8 @@ class Dependency { this._locEL = 0; this._locEC = 0; } - if ("index" in loc) { - this._locI = loc.index; - } else { - this._locI = undefined; - } - if ("name" in loc) { - this._locN = loc.name; - } else { - this._locN = undefined; - } + this._locI = "index" in loc ? loc.index : undefined; + this._locN = "name" in loc ? loc.name : undefined; this._loc = loc; } @@ -336,6 +328,8 @@ Dependency.NO_EXPORTS_REFERENCED = []; /** @type {string[][]} */ Dependency.EXPORTS_OBJECT_REFERENCED = [[]]; +// eslint-disable-next-line no-warning-comments +// @ts-ignore https://github.com/microsoft/TypeScript/issues/42919 Object.defineProperty(Dependency.prototype, "module", { /** * @deprecated @@ -358,6 +352,8 @@ Object.defineProperty(Dependency.prototype, "module", { } }); +// eslint-disable-next-line no-warning-comments +// @ts-ignore https://github.com/microsoft/TypeScript/issues/42919 Object.defineProperty(Dependency.prototype, "disconnect", { get() { throw new Error( diff --git a/node_modules/webpack/lib/DllEntryPlugin.js b/node_modules/webpack/lib/DllEntryPlugin.js index 27c7849..de849fa 100644 --- a/node_modules/webpack/lib/DllEntryPlugin.js +++ b/node_modules/webpack/lib/DllEntryPlugin.js @@ -10,12 +10,14 @@ const DllEntryDependency = require("./dependencies/DllEntryDependency"); const EntryDependency = require("./dependencies/EntryDependency"); /** @typedef {import("./Compiler")} Compiler */ +/** @typedef {string[]} Entries */ +/** @typedef {{ name: string, filename: TODO }} Options */ class DllEntryPlugin { /** * @param {string} context context - * @param {string[]} entries entry names - * @param {TODO} options options + * @param {Entries} entries entry names + * @param {Options} options options */ constructor(context, entries, options) { this.context = context; diff --git a/node_modules/webpack/lib/DllModule.js b/node_modules/webpack/lib/DllModule.js index be17ede..e9948fc 100644 --- a/node_modules/webpack/lib/DllModule.js +++ b/node_modules/webpack/lib/DllModule.js @@ -7,6 +7,7 @@ const { RawSource } = require("webpack-sources"); const Module = require("./Module"); +const { JS_TYPES } = require("./ModuleSourceTypesConstants"); const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants"); const RuntimeGlobals = require("./RuntimeGlobals"); const makeSerializable = require("./util/makeSerializable"); @@ -18,11 +19,11 @@ const makeSerializable = require("./util/makeSerializable"); /** @typedef {import("./Dependency")} Dependency */ /** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */ /** @typedef {import("./DependencyTemplates")} DependencyTemplates */ +/** @typedef {import("./Generator").SourceTypes} SourceTypes */ /** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */ /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */ /** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */ /** @typedef {import("./Module").SourceContext} SourceContext */ -/** @typedef {import("./Module").SourceTypes} SourceTypes */ /** @typedef {import("./RequestShortener")} RequestShortener */ /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */ @@ -32,7 +33,6 @@ const makeSerializable = require("./util/makeSerializable"); /** @typedef {import("./util/Hash")} Hash */ /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */ -const TYPES = new Set(["javascript"]); const RUNTIME_REQUIREMENTS = new Set([ RuntimeGlobals.require, RuntimeGlobals.module @@ -57,7 +57,7 @@ class DllModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return TYPES; + return JS_TYPES; } /** @@ -165,7 +165,7 @@ class DllModule extends Module { */ cleanupForCache() { super.cleanupForCache(); - this.dependencies = undefined; + this.dependencies = /** @type {EXPECTED_ANY} */ (undefined); } } diff --git a/node_modules/webpack/lib/DllModuleFactory.js b/node_modules/webpack/lib/DllModuleFactory.js index fa8addd..d880035 100644 --- a/node_modules/webpack/lib/DllModuleFactory.js +++ b/node_modules/webpack/lib/DllModuleFactory.js @@ -17,6 +17,7 @@ class DllModuleFactory extends ModuleFactory { super(); this.hooks = Object.freeze({}); } + /** * @param {ModuleFactoryCreateData} data data object * @param {function((Error | null)=, ModuleFactoryResult=): void} callback callback diff --git a/node_modules/webpack/lib/DllPlugin.js b/node_modules/webpack/lib/DllPlugin.js index 6365670..25440df 100644 --- a/node_modules/webpack/lib/DllPlugin.js +++ b/node_modules/webpack/lib/DllPlugin.js @@ -12,6 +12,8 @@ const createSchemaValidation = require("./util/create-schema-validation"); /** @typedef {import("../declarations/plugins/DllPlugin").DllPluginOptions} DllPluginOptions */ /** @typedef {import("./Compiler")} Compiler */ +/** @typedef {import("./DllEntryPlugin").Entries} Entries */ +/** @typedef {import("./DllEntryPlugin").Options} Options */ const validate = createSchemaValidation( require("../schemas/plugins/DllPlugin.check.js"), @@ -43,13 +45,13 @@ class DllPlugin { compiler.hooks.entryOption.tap("DllPlugin", (context, entry) => { if (typeof entry !== "function") { for (const name of Object.keys(entry)) { - const options = { - name, - filename: entry.filename - }; - new DllEntryPlugin(context, entry[name].import, options).apply( - compiler - ); + /** @type {Options} */ + const options = { name, filename: entry.filename }; + new DllEntryPlugin( + context, + /** @type {Entries} */ (entry[name].import), + options + ).apply(compiler); } } else { throw new Error( diff --git a/node_modules/webpack/lib/DllReferencePlugin.js b/node_modules/webpack/lib/DllReferencePlugin.js index 674a945..50b2c54 100644 --- a/node_modules/webpack/lib/DllReferencePlugin.js +++ b/node_modules/webpack/lib/DllReferencePlugin.js @@ -15,6 +15,7 @@ const makePathsRelative = require("./util/identifier").makePathsRelative; /** @typedef {import("../declarations/WebpackOptions").Externals} Externals */ /** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptions} DllReferencePluginOptions */ +/** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptionsContent} DllReferencePluginOptionsContent */ /** @typedef {import("../declarations/plugins/DllReferencePlugin").DllReferencePluginOptionsManifest} DllReferencePluginOptionsManifest */ /** @typedef {import("./Compiler")} Compiler */ /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */ @@ -28,6 +29,8 @@ const validate = createSchemaValidation( } ); +/** @typedef {{ path: string, data: DllReferencePluginOptionsManifest | undefined, error: Error | undefined }} CompilationDataItem */ + class DllReferencePlugin { /** * @param {DllReferencePluginOptions} options options object @@ -35,7 +38,7 @@ class DllReferencePlugin { constructor(options) { validate(options); this.options = options; - /** @type {WeakMap} */ + /** @type {WeakMap} */ this._compilationData = new WeakMap(); } @@ -64,6 +67,7 @@ class DllReferencePlugin { /** @type {InputFileSystem} */ (compiler.inputFileSystem).readFile(manifest, (err, result) => { if (err) return callback(err); + /** @type {CompilationDataItem} */ const data = { path: manifest, data: undefined, @@ -75,15 +79,18 @@ class DllReferencePlugin { data.data = parseJson( /** @type {Buffer} */ (result).toString("utf-8") ); - } catch (e) { + } catch (parseErr) { // Store the error in the params so that it can // be added as a compilation error later on. const manifestPath = makePathsRelative( - compiler.options.context, + /** @type {string} */ (compiler.options.context), manifest, compiler.root ); - data.error = new DllManifestError(manifestPath, e.message); + data.error = new DllManifestError( + manifestPath, + /** @type {Error} */ (parseErr).message + ); } this._compilationData.set(params, data); return callback(); @@ -98,13 +105,15 @@ class DllReferencePlugin { compiler.hooks.compile.tap("DllReferencePlugin", params => { let name = this.options.name; let sourceType = this.options.sourceType; - let content = + let resolvedContent = "content" in this.options ? this.options.content : undefined; if ("manifest" in this.options) { - let manifestParameter = this.options.manifest; + const manifestParameter = this.options.manifest; let manifest; if (typeof manifestParameter === "string") { - const data = this._compilationData.get(params); + const data = + /** @type {CompilationDataItem} */ + (this._compilationData.get(params)); // If there was an error parsing the manifest // file, exit now because the error will be added // as a compilation error in the "compilation" hook. @@ -118,23 +127,27 @@ class DllReferencePlugin { if (manifest) { if (!name) name = manifest.name; if (!sourceType) sourceType = manifest.type; - if (!content) content = manifest.content; + if (!resolvedContent) resolvedContent = manifest.content; } } /** @type {Externals} */ const externals = {}; - const source = "dll-reference " + name; - externals[source] = name; + const source = `dll-reference ${name}`; + externals[source] = /** @type {string} */ (name); const normalModuleFactory = params.normalModuleFactory; new ExternalModuleFactoryPlugin(sourceType || "var", externals).apply( normalModuleFactory ); new DelegatedModuleFactoryPlugin({ - source: source, + source, type: this.options.type, scope: this.options.scope, - context: this.options.context || compiler.options.context, - content, + context: + /** @type {string} */ + (this.options.context || compiler.options.context), + content: + /** @type {DllReferencePluginOptionsContent} */ + (resolvedContent), extensions: this.options.extensions, associatedObjectForCache: compiler.root }).apply(normalModuleFactory); @@ -144,9 +157,11 @@ class DllReferencePlugin { "DllReferencePlugin", (compilation, params) => { if ("manifest" in this.options) { - let manifest = this.options.manifest; + const manifest = this.options.manifest; if (typeof manifest === "string") { - const data = this._compilationData.get(params); + const data = /** @type {CompilationDataItem} */ ( + this._compilationData.get(params) + ); // If there was an error parsing the manifest file, add the // error as a compilation error to make the compilation fail. if (data.error) { diff --git a/node_modules/webpack/lib/DynamicEntryPlugin.js b/node_modules/webpack/lib/DynamicEntryPlugin.js index dcfc993..5e185fb 100644 --- a/node_modules/webpack/lib/DynamicEntryPlugin.js +++ b/node_modules/webpack/lib/DynamicEntryPlugin.js @@ -9,6 +9,7 @@ const EntryOptionPlugin = require("./EntryOptionPlugin"); const EntryPlugin = require("./EntryPlugin"); const EntryDependency = require("./dependencies/EntryDependency"); +/** @typedef {import("../declarations/WebpackOptions").EntryDescriptionNormalized} EntryDescriptionNormalized */ /** @typedef {import("../declarations/WebpackOptions").EntryDynamicNormalized} EntryDynamic */ /** @typedef {import("../declarations/WebpackOptions").EntryItem} EntryItem */ /** @typedef {import("../declarations/WebpackOptions").EntryStaticNormalized} EntryStatic */ @@ -40,22 +41,27 @@ class DynamicEntryPlugin { } ); - compiler.hooks.make.tapPromise( - "DynamicEntryPlugin", - (compilation, callback) => - Promise.resolve(this.entry()) - .then(entry => { - const promises = []; - for (const name of Object.keys(entry)) { - const desc = entry[name]; - const options = EntryOptionPlugin.entryDescriptionToOptions( - compiler, - name, - desc - ); - for (const entry of desc.import) { - promises.push( - new Promise((resolve, reject) => { + compiler.hooks.make.tapPromise("DynamicEntryPlugin", compilation => + Promise.resolve(this.entry()) + .then(entry => { + const promises = []; + for (const name of Object.keys(entry)) { + const desc = entry[name]; + const options = EntryOptionPlugin.entryDescriptionToOptions( + compiler, + name, + desc + ); + for (const entry of /** @type {NonNullable} */ ( + desc.import + )) { + promises.push( + new Promise( + /** + * @param {(value?: any) => void} resolve resolve + * @param {(reason?: Error) => void} reject reject + */ + (resolve, reject) => { compilation.addEntry( this.context, EntryPlugin.createDependency(entry, options), @@ -65,13 +71,14 @@ class DynamicEntryPlugin { resolve(); } ); - }) - ); - } + } + ) + ); } - return Promise.all(promises); - }) - .then(x => {}) + } + return Promise.all(promises); + }) + .then(x => {}) ); } } diff --git a/node_modules/webpack/lib/EntryPlugin.js b/node_modules/webpack/lib/EntryPlugin.js index 05b17ed..77c8797 100644 --- a/node_modules/webpack/lib/EntryPlugin.js +++ b/node_modules/webpack/lib/EntryPlugin.js @@ -12,9 +12,7 @@ const EntryDependency = require("./dependencies/EntryDependency"); class EntryPlugin { /** - * An entry plugin which will handle - * creation of the EntryDependency - * + * An entry plugin which will handle creation of the EntryDependency * @param {string} context context path * @param {string} entry entry path * @param {EntryOptions | string=} options entry options (passing a string is deprecated) diff --git a/node_modules/webpack/lib/EnvironmentPlugin.js b/node_modules/webpack/lib/EnvironmentPlugin.js index 3a8d9dc..eb9e37a 100644 --- a/node_modules/webpack/lib/EnvironmentPlugin.js +++ b/node_modules/webpack/lib/EnvironmentPlugin.js @@ -12,15 +12,19 @@ const WebpackError = require("./WebpackError"); /** @typedef {import("./DefinePlugin").CodeValue} CodeValue */ class EnvironmentPlugin { + /** + * @param {(string | string[] | Record)[]} keys keys + */ constructor(...keys) { if (keys.length === 1 && Array.isArray(keys[0])) { + /** @type {string[]} */ this.keys = keys[0]; this.defaultValues = {}; } else if (keys.length === 1 && keys[0] && typeof keys[0] === "object") { this.keys = Object.keys(keys[0]); - this.defaultValues = keys[0]; + this.defaultValues = /** @type {Record} */ (keys[0]); } else { - this.keys = keys; + this.keys = /** @type {string[]} */ (keys); this.defaultValues = {}; } } diff --git a/node_modules/webpack/lib/ErrorHelpers.js b/node_modules/webpack/lib/ErrorHelpers.js index bec99ef..58c1155 100644 --- a/node_modules/webpack/lib/ErrorHelpers.js +++ b/node_modules/webpack/lib/ErrorHelpers.js @@ -48,9 +48,9 @@ const cutOffMultilineMessage = (stack, message) => { /** @type {string[]} */ const result = []; - stackSplitByLines.forEach((line, idx) => { + for (const [idx, line] of stackSplitByLines.entries()) { if (!line.includes(messageSplitByLines[idx])) result.push(line); - }); + } return result.join("\n"); }; @@ -64,10 +64,9 @@ const cutOffMessage = (stack, message) => { const nextLine = stack.indexOf("\n"); if (nextLine === -1) { return stack === message ? "" : stack; - } else { - const firstLine = stack.slice(0, nextLine); - return firstLine === message ? stack.slice(nextLine + 1) : stack; } + const firstLine = stack.slice(0, nextLine); + return firstLine === message ? stack.slice(nextLine + 1) : stack; }; /** @@ -92,10 +91,10 @@ const cleanUpWebpackOptions = (stack, message) => { return stack; }; -exports.cutOffByFlag = cutOffByFlag; -exports.cutOffLoaderExecution = cutOffLoaderExecution; -exports.cutOffWebpackOptions = cutOffWebpackOptions; -exports.cutOffMultilineMessage = cutOffMultilineMessage; -exports.cutOffMessage = cutOffMessage; -exports.cleanUp = cleanUp; -exports.cleanUpWebpackOptions = cleanUpWebpackOptions; +module.exports.cutOffByFlag = cutOffByFlag; +module.exports.cutOffLoaderExecution = cutOffLoaderExecution; +module.exports.cutOffWebpackOptions = cutOffWebpackOptions; +module.exports.cutOffMultilineMessage = cutOffMultilineMessage; +module.exports.cutOffMessage = cutOffMessage; +module.exports.cleanUp = cleanUp; +module.exports.cleanUpWebpackOptions = cleanUpWebpackOptions; diff --git a/node_modules/webpack/lib/EvalDevToolModulePlugin.js b/node_modules/webpack/lib/EvalDevToolModulePlugin.js index d9d33d2..a364c3f 100644 --- a/node_modules/webpack/lib/EvalDevToolModulePlugin.js +++ b/node_modules/webpack/lib/EvalDevToolModulePlugin.js @@ -39,7 +39,7 @@ class EvalDevToolModulePlugin { /** * @param {EvalDevToolModulePluginOptions=} options options */ - constructor(options) { + constructor(options = {}) { this.namespace = options.namespace || ""; this.sourceUrlComment = options.sourceUrlComment || "\n//# sourceURL=[url]"; this.moduleFilenameTemplate = @@ -57,7 +57,7 @@ class EvalDevToolModulePlugin { const hooks = JavascriptModulesPlugin.getCompilationHooks(compilation); hooks.renderModuleContent.tap( "EvalDevToolModulePlugin", - (source, module, { runtimeTemplate, chunkGraph }) => { + (source, module, { chunk, runtimeTemplate, chunkGraph }) => { const cacheEntry = cache.get(source); if (cacheEntry !== undefined) return cacheEntry; if (module instanceof ExternalModule) { @@ -65,11 +65,14 @@ class EvalDevToolModulePlugin { return source; } const content = source.source(); + const namespace = compilation.getPath(this.namespace, { + chunk + }); const str = ModuleFilenameHelpers.createFilename( module, { moduleFilenameTemplate: this.moduleFilenameTemplate, - namespace: this.namespace + namespace }, { requestShortener: runtimeTemplate.requestShortener, @@ -77,17 +80,15 @@ class EvalDevToolModulePlugin { hashFunction: compilation.outputOptions.hashFunction } ); - const footer = - "\n" + - this.sourceUrlComment.replace( - /\[url\]/g, - encodeURI(str) - .replace(/%2F/g, "/") - .replace(/%20/g, "_") - .replace(/%5E/g, "^") - .replace(/%5C/g, "\\") - .replace(/^\//, "") - ); + const footer = `\n${this.sourceUrlComment.replace( + /\[url\]/g, + encodeURI(str) + .replace(/%2F/g, "/") + .replace(/%20/g, "_") + .replace(/%5E/g, "^") + .replace(/%5C/g, "\\") + .replace(/^\//, "") + )}`; const result = new RawSource( `eval(${ compilation.outputOptions.trustedTypes diff --git a/node_modules/webpack/lib/EvalSourceMapDevToolPlugin.js b/node_modules/webpack/lib/EvalSourceMapDevToolPlugin.js index 4ef3dc2..072d143 100644 --- a/node_modules/webpack/lib/EvalSourceMapDevToolPlugin.js +++ b/node_modules/webpack/lib/EvalSourceMapDevToolPlugin.js @@ -17,6 +17,7 @@ const { makePathsAbsolute } = require("./util/identifier"); /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("../declarations/WebpackOptions").DevTool} DevToolOptions */ /** @typedef {import("../declarations/plugins/SourceMapDevToolPlugin").SourceMapDevToolPluginOptions} SourceMapDevToolPluginOptions */ +/** @typedef {import("./ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("./Compiler")} Compiler */ /** @typedef {import("./NormalModule").SourceMap} SourceMap */ @@ -76,7 +77,7 @@ class EvalSourceMapDevToolPlugin { ); hooks.renderModuleContent.tap( "EvalSourceMapDevToolPlugin", - (source, m, { runtimeTemplate, chunkGraph }) => { + (source, m, { chunk, runtimeTemplate, chunkGraph }) => { const cachedSource = cache.get(source); if (cachedSource !== undefined) { return cachedSource; @@ -112,6 +113,9 @@ class EvalSourceMapDevToolPlugin { return result(source); } + const namespace = compilation.getPath(this.namespace, { + chunk + }); /** @type {SourceMap} */ let sourceMap; let content; @@ -137,20 +141,20 @@ class EvalSourceMapDevToolPlugin { const module = compilation.findModule(source); return module || source; }); - let moduleFilenames = modules.map(module => { - return ModuleFilenameHelpers.createFilename( + let moduleFilenames = modules.map(module => + ModuleFilenameHelpers.createFilename( module, { moduleFilenameTemplate: this.moduleFilenameTemplate, - namespace: this.namespace + namespace }, { requestShortener: runtimeTemplate.requestShortener, chunkGraph, hashFunction: compilation.outputOptions.hashFunction } - ); - }); + ) + ); moduleFilenames = ModuleFilenameHelpers.replaceDuplicates( moduleFilenames, (filename, i, n) => { @@ -163,18 +167,19 @@ class EvalSourceMapDevToolPlugin { sourceMap.sourcesContent = undefined; } sourceMap.sourceRoot = options.sourceRoot || ""; - const moduleId = chunkGraph.getModuleId(m); + const moduleId = + /** @type {ModuleId} */ + (chunkGraph.getModuleId(m)); sourceMap.file = typeof moduleId === "number" ? `${moduleId}.js` : moduleId; - const footer = - this.sourceMapComment.replace( - /\[url\]/g, - `data:application/json;charset=utf-8;base64,${Buffer.from( - JSON.stringify(sourceMap), - "utf8" - ).toString("base64")}` - ) + `\n//# sourceURL=webpack-internal:///${moduleId}\n`; // workaround for chrome bug + const footer = `${this.sourceMapComment.replace( + /\[url\]/g, + `data:application/json;charset=utf-8;base64,${Buffer.from( + JSON.stringify(sourceMap), + "utf8" + ).toString("base64")}` + )}\n//# sourceURL=webpack-internal:///${moduleId}\n`; // workaround for chrome bug return result( new RawSource( diff --git a/node_modules/webpack/lib/ExportsInfo.js b/node_modules/webpack/lib/ExportsInfo.js index 634240c..f55dcf2 100644 --- a/node_modules/webpack/lib/ExportsInfo.js +++ b/node_modules/webpack/lib/ExportsInfo.js @@ -71,9 +71,12 @@ makeSerializable( "RestoreProvidedData" ); +/** @typedef {Map} Exports */ +/** @typedef {string | string[] | false} UsedName */ + class ExportsInfo { constructor() { - /** @type {Map} */ + /** @type {Exports} */ this._exports = new Map(); this._otherExportsInfo = new ExportInfo(null); this._sideEffectsOnlyInfo = new ExportInfo("*side effects only*"); @@ -144,6 +147,10 @@ class ExportsInfo { return this._otherExportsInfo; } + /** + * @param {Exports} exports exports + * @private + */ _sortExportsMap(exports) { if (exports.size > 1) { const namesInOrder = []; @@ -159,7 +166,7 @@ class ExportsInfo { } for (; i < namesInOrder.length; i++) { const name = namesInOrder[i]; - const correctEntry = exports.get(name); + const correctEntry = /** @type {ExportInfo} */ (exports.get(name)); exports.delete(name); exports.set(name, correctEntry); } @@ -261,7 +268,7 @@ class ExportsInfo { getReadOnlyExportInfoRecursive(name) { const exportInfo = this.getReadOnlyExportInfo(name[0]); if (name.length === 1) return exportInfo; - if (!exportInfo.exportsInfo) return undefined; + if (!exportInfo.exportsInfo) return; return exportInfo.exportsInfo.getReadOnlyExportInfoRecursive(name.slice(1)); } @@ -272,7 +279,7 @@ class ExportsInfo { getNestedExportsInfo(name) { if (Array.isArray(name) && name.length > 0) { const info = this.getReadOnlyExportInfo(name[0]); - if (!info.exportsInfo) return undefined; + if (!info.exportsInfo) return; return info.exportsInfo.getNestedExportsInfo(name.slice(1)); } return this; @@ -451,10 +458,8 @@ class ExportsInfo { if (this._redirectTo.isUsed(runtime)) { return true; } - } else { - if (this._otherExportsInfo.getUsed(runtime) !== UsageState.Unused) { - return true; - } + } else if (this._otherExportsInfo.getUsed(runtime) !== UsageState.Unused) { + return true; } for (const exportInfo of this._exports.values()) { if (exportInfo.getUsed(runtime) !== UsageState.Unused) { @@ -522,7 +527,7 @@ class ExportsInfo { return false; } } - return new SortableSet(array); + return /** @type {SortableSet} */ (new SortableSet(array)); } /** @@ -633,13 +638,11 @@ class ExportsInfo { isEquallyUsed(runtimeA, runtimeB) { if (this._redirectTo !== undefined) { if (!this._redirectTo.isEquallyUsed(runtimeA, runtimeB)) return false; - } else { - if ( - this._otherExportsInfo.getUsed(runtimeA) !== - this._otherExportsInfo.getUsed(runtimeB) - ) { - return false; - } + } else if ( + this._otherExportsInfo.getUsed(runtimeA) !== + this._otherExportsInfo.getUsed(runtimeB) + ) { + return false; } if ( this._sideEffectsOnlyInfo.getUsed(runtimeA) !== @@ -662,20 +665,20 @@ class ExportsInfo { getUsed(name, runtime) { if (Array.isArray(name)) { if (name.length === 0) return this.otherExportsInfo.getUsed(runtime); - let info = this.getReadOnlyExportInfo(name[0]); + const info = this.getReadOnlyExportInfo(name[0]); if (info.exportsInfo && name.length > 1) { return info.exportsInfo.getUsed(name.slice(1), runtime); } return info.getUsed(runtime); } - let info = this.getReadOnlyExportInfo(name); + const info = this.getReadOnlyExportInfo(name); return info.getUsed(runtime); } /** - * @param {string | string[] | undefined} name the export name + * @param {string | string[]} name the export name * @param {RuntimeSpec} runtime check usage for this runtime only - * @returns {string | string[] | false} the used name + * @returns {UsedName} the used name */ getUsedName(name, runtime) { if (Array.isArray(name)) { @@ -684,10 +687,12 @@ class ExportsInfo { if (!this.isUsed(runtime)) return false; return name; } - let info = this.getReadOnlyExportInfo(name[0]); + const info = this.getReadOnlyExportInfo(name[0]); const x = info.getUsedName(name[0], runtime); if (x === false) return false; - const arr = x === name[0] && name.length === 1 ? name : [x]; + const arr = + /** @type {string[]} */ + (x === name[0] && name.length === 1 ? name : [x]); if (name.length === 1) { return arr; } @@ -698,14 +703,12 @@ class ExportsInfo { const nested = info.exportsInfo.getUsedName(name.slice(1), runtime); if (!nested) return false; return arr.concat(nested); - } else { - return arr.concat(name.slice(1)); } - } else { - let info = this.getReadOnlyExportInfo(name); - const usedName = info.getUsedName(name, runtime); - return usedName; + return arr.concat(name.slice(1)); } + const info = this.getReadOnlyExportInfo(name); + const usedName = info.getUsedName(name, runtime); + return usedName; } /** @@ -738,6 +741,9 @@ class ExportsInfo { } } + /** + * @returns {RestoreProvidedData} restore provided data + */ getRestoreProvidedData() { const otherProvided = this._otherExportsInfo.provided; const otherCanMangleProvide = this._otherExportsInfo.canMangleProvide; @@ -756,7 +762,8 @@ class ExportsInfo { canMangleProvide: exportInfo.canMangleProvide, terminalBinding: exportInfo.terminalBinding, exportsInfo: exportInfo.exportsInfoOwned - ? exportInfo.exportsInfo.getRestoreProvidedData() + ? /** @type {NonNullable} */ + (exportInfo.exportsInfo).getRestoreProvidedData() : undefined }); } @@ -802,6 +809,10 @@ class ExportsInfo { } } +/** @typedef {{ module: Module, export: string[] }} TargetItemWithoutConnection */ +/** @typedef {{ module: Module, connection: ModuleGraphConnection, export: string[] | undefined }} TargetItem */ +/** @typedef {Map} Target */ + class ExportInfo { /** * @param {string} name the original name of the export @@ -817,7 +828,7 @@ class ExportInfo { this._usedName = initFrom ? initFrom._usedName : null; /** * @private - * @type {UsageStateType} + * @type {UsageStateType | undefined} */ this._globalUsed = initFrom ? initFrom._globalUsed : undefined; /** @@ -864,9 +875,9 @@ class ExportInfo { this.canMangleUse = initFrom ? initFrom.canMangleUse : undefined; /** @type {boolean} */ this.exportsInfoOwned = false; - /** @type {ExportsInfo=} */ + /** @type {ExportsInfo | undefined} */ this.exportsInfo = undefined; - /** @type {Map=} */ + /** @type {Target | undefined} */ this._target = undefined; if (initFrom && initFrom._target) { this._target = new Map(); @@ -878,19 +889,11 @@ class ExportInfo { }); } } - /** @type {Map=} */ + /** @type {Target | undefined} */ this._maxTarget = undefined; } // TODO webpack 5 remove - /** @private */ - get used() { - throw new Error("REMOVED"); - } - /** @private */ - get usedName() { - throw new Error("REMOVED"); - } /** * @private * @param {*} v v @@ -898,6 +901,14 @@ class ExportInfo { set used(v) { throw new Error("REMOVED"); } + + // TODO webpack 5 remove + /** @private */ + get used() { + throw new Error("REMOVED"); + } + + // TODO webpack 5 remove /** * @private * @param {*} v v @@ -906,6 +917,12 @@ class ExportInfo { throw new Error("REMOVED"); } + // TODO webpack 5 remove + /** @private */ + get usedName() { + throw new Error("REMOVED"); + } + get canMangle() { switch (this.canMangleProvide) { case undefined: @@ -973,7 +990,8 @@ class ExportInfo { this.canMangleUse = true; } if (this.exportsInfoOwned) { - this.exportsInfo.setHasUseInfo(); + /** @type {ExportsInfo} */ + (this.exportsInfo).setHasUseInfo(); } } @@ -988,25 +1006,26 @@ class ExportInfo { if (this._globalUsed === undefined) { this._globalUsed = newValue; return true; - } else { - if (this._globalUsed !== newValue && condition(this._globalUsed)) { - this._globalUsed = newValue; - return true; - } + } + if (this._globalUsed !== newValue && condition(this._globalUsed)) { + this._globalUsed = newValue; + return true; } } else if (this._usedInRuntime === undefined) { if (newValue !== UsageState.Unused && condition(UsageState.Unused)) { this._usedInRuntime = new Map(); forEachRuntime(runtime, runtime => - this._usedInRuntime.set(runtime, newValue) + this._usedInRuntime.set(/** @type {string} */ (runtime), newValue) ); return true; } } else { let changed = false; - forEachRuntime(runtime, runtime => { - /** @type {UsageStateType} */ - let oldValue = this._usedInRuntime.get(runtime); + forEachRuntime(runtime, _runtime => { + const runtime = /** @type {string} */ (_runtime); + let oldValue = + /** @type {UsageStateType} */ + (this._usedInRuntime.get(runtime)); if (oldValue === undefined) oldValue = UsageState.Unused; if (newValue !== oldValue && condition(oldValue)) { if (newValue === UsageState.Unused) { @@ -1040,15 +1059,17 @@ class ExportInfo { if (newValue !== UsageState.Unused) { this._usedInRuntime = new Map(); forEachRuntime(runtime, runtime => - this._usedInRuntime.set(runtime, newValue) + this._usedInRuntime.set(/** @type {string} */ (runtime), newValue) ); return true; } } else { let changed = false; - forEachRuntime(runtime, runtime => { - /** @type {UsageStateType} */ - let oldValue = this._usedInRuntime.get(runtime); + forEachRuntime(runtime, _runtime => { + const runtime = /** @type {string} */ (_runtime); + let oldValue = + /** @type {UsageStateType} */ + (this._usedInRuntime.get(runtime)); if (oldValue === undefined) oldValue = UsageState.Unused; if (newValue !== oldValue) { if (newValue === UsageState.Unused) { @@ -1083,7 +1104,7 @@ class ExportInfo { /** * @param {any} key the key * @param {ModuleGraphConnection} connection the target module if a single one - * @param {string[]=} exportName the exported name + * @param {(string[] | null)=} exportName the exported name * @param {number=} priority priority * @returns {boolean} true, if something has changed */ @@ -1091,13 +1112,21 @@ class ExportInfo { if (exportName) exportName = [...exportName]; if (!this._target) { this._target = new Map(); - this._target.set(key, { connection, export: exportName, priority }); + this._target.set(key, { + connection, + export: /** @type {string[]} */ (exportName), + priority + }); return true; } const oldTarget = this._target.get(key); if (!oldTarget) { if (oldTarget === null && !connection) return false; - this._target.set(key, { connection, export: exportName, priority }); + this._target.set(key, { + connection, + export: /** @type {string[]} */ (exportName), + priority + }); this._maxTarget = undefined; return true; } @@ -1109,7 +1138,7 @@ class ExportInfo { : oldTarget.export) ) { oldTarget.connection = connection; - oldTarget.export = exportName; + oldTarget.export = /** @type {string[]} */ (exportName); oldTarget.priority = priority; this._maxTarget = undefined; return true; @@ -1139,20 +1168,20 @@ class ExportInfo { if (max < value) max = value; } return max; - } else { - /** @type {UsageStateType} */ - let max = UsageState.Unused; - for (const item of runtime) { - const value = this._usedInRuntime.get(item); - if (value !== undefined) { - if (value === UsageState.Used) { - return UsageState.Used; - } - if (max < value) max = value; - } - } - return max; } + + /** @type {UsageStateType} */ + let max = UsageState.Unused; + for (const item of runtime) { + const value = this._usedInRuntime.get(item); + if (value !== undefined) { + if (value === UsageState.Used) { + return UsageState.Used; + } + if (max < value) max = value; + } + } + return max; } /** @@ -1171,19 +1200,18 @@ class ExportInfo { if (!this._usedInRuntime.has(runtime)) { return false; } - } else if (runtime !== undefined) { - if ( - Array.from(runtime).every( - runtime => !this._usedInRuntime.has(runtime) - ) - ) { - return false; - } + } else if ( + runtime !== undefined && + Array.from(runtime).every( + runtime => !this._usedInRuntime.has(runtime) + ) + ) { + return false; } } } if (this._usedName !== null) return this._usedName; - return this.name || fallbackName; + return /** @type {string | false} */ (this.name || fallbackName); } /** @@ -1204,13 +1232,13 @@ class ExportInfo { /** * @param {ModuleGraph} moduleGraph the module graph - * @param {function({ module: Module, export: string[] | undefined }): boolean} resolveTargetFilter filter function to further resolve target + * @param {function(TargetItem): boolean} resolveTargetFilter filter function to further resolve target * @returns {ExportInfo | ExportsInfo | undefined} the terminal binding export(s) info if known */ getTerminalBinding(moduleGraph, resolveTargetFilter = RETURNS_TRUE) { if (this.terminalBinding) return this; const target = this.getTarget(moduleGraph, resolveTargetFilter); - if (!target) return undefined; + if (!target) return; const exportsInfo = moduleGraph.getExportsInfo(target.module); if (!target.export) return exportsInfo; return exportsInfo.getReadOnlyExportInfoRecursive(target.export); @@ -1222,10 +1250,11 @@ class ExportInfo { _getMaxTarget() { if (this._maxTarget !== undefined) return this._maxTarget; - if (this._target.size <= 1) return (this._maxTarget = this._target); + if (/** @type {Target} */ (this._target).size <= 1) + return (this._maxTarget = this._target); let maxPriority = -Infinity; let minPriority = Infinity; - for (const { priority } of this._target.values()) { + for (const { priority } of /** @type {Target} */ (this._target).values()) { if (maxPriority < priority) maxPriority = priority; if (minPriority > priority) minPriority = priority; } @@ -1234,7 +1263,7 @@ class ExportInfo { // This is an edge case const map = new Map(); - for (const [key, value] of this._target) { + for (const [key, value] of /** @type {Target} */ (this._target)) { if (maxPriority === value.priority) { map.set(key, value); } @@ -1246,7 +1275,7 @@ class ExportInfo { /** * @param {ModuleGraph} moduleGraph the module graph * @param {function(Module): boolean} validTargetModuleFilter a valid target module - * @returns {{ module: Module, export: string[] | undefined } | undefined | false} the target, undefined when there is no target, false when no target is valid + * @returns {TargetItemWithoutConnection | null | undefined | false} the target, undefined when there is no target, false when no target is valid */ findTarget(moduleGraph, validTargetModuleFilter) { return this._findTarget(moduleGraph, validTargetModuleFilter, new Set()); @@ -1256,13 +1285,15 @@ class ExportInfo { * @param {ModuleGraph} moduleGraph the module graph * @param {function(Module): boolean} validTargetModuleFilter a valid target module * @param {Set} alreadyVisited set of already visited export info to avoid circular references - * @returns {{ module: Module, export: string[] | undefined } | undefined | false} the target, undefined when there is no target, false when no target is valid + * @returns {TargetItemWithoutConnection | null | undefined | false} the target, undefined when there is no target, false when no target is valid */ _findTarget(moduleGraph, validTargetModuleFilter, alreadyVisited) { - if (!this._target || this._target.size === 0) return undefined; - let rawTarget = this._getMaxTarget().values().next().value; - if (!rawTarget) return undefined; - /** @type {{ module: Module, export: string[] | undefined }} */ + if (!this._target || this._target.size === 0) return; + const rawTarget = + /** @type {Target} */ + (this._getMaxTarget()).values().next().value; + if (!rawTarget) return; + /** @type {TargetItemWithoutConnection} */ let target = { module: rawTarget.connection.module, export: rawTarget.export @@ -1293,26 +1324,26 @@ class ExportInfo { /** * @param {ModuleGraph} moduleGraph the module graph - * @param {function({ module: Module, export: string[] | undefined }): boolean} resolveTargetFilter filter function to further resolve target - * @returns {{ module: Module, export: string[] | undefined } | undefined} the target + * @param {function(TargetItem): boolean} resolveTargetFilter filter function to further resolve target + * @returns {TargetItem | undefined} the target */ getTarget(moduleGraph, resolveTargetFilter = RETURNS_TRUE) { const result = this._getTarget(moduleGraph, resolveTargetFilter, undefined); - if (result === CIRCULAR) return undefined; + if (result === CIRCULAR) return; return result; } /** * @param {ModuleGraph} moduleGraph the module graph - * @param {function({ module: Module, connection: ModuleGraphConnection, export: string[] | undefined }): boolean} resolveTargetFilter filter function to further resolve target + * @param {function(TargetItem): boolean} resolveTargetFilter filter function to further resolve target * @param {Set | undefined} alreadyVisited set of already visited export info to avoid circular references - * @returns {{ module: Module, connection: ModuleGraphConnection, export: string[] | undefined } | CIRCULAR | undefined} the target + * @returns {TargetItem | CIRCULAR | undefined} the target */ _getTarget(moduleGraph, resolveTargetFilter, alreadyVisited) { /** - * @param {{ connection: ModuleGraphConnection, export: string[] | undefined } | null} inputTarget unresolved target + * @param {TargetItem | null} inputTarget unresolved target * @param {Set} alreadyVisited set of already visited export info to avoid circular references - * @returns {{ module: Module, connection: ModuleGraphConnection, export: string[] | undefined } | CIRCULAR | null} resolved target + * @returns {TargetItem | CIRCULAR | null} resolved target */ const resolveTarget = (inputTarget, alreadyVisited) => { if (!inputTarget) return null; @@ -1323,7 +1354,7 @@ class ExportInfo { export: undefined }; } - /** @type {{ module: Module, connection: ModuleGraphConnection, export: string[] | undefined }} */ + /** @type {TargetItem} */ let target = { module: inputTarget.connection.module, connection: inputTarget.connection, @@ -1333,7 +1364,10 @@ class ExportInfo { let alreadyVisitedOwned = false; for (;;) { const exportsInfo = moduleGraph.getExportsInfo(target.module); - const exportInfo = exportsInfo.getExportInfo(target.export[0]); + const exportInfo = exportsInfo.getExportInfo( + /** @type {NonNullable} */ + (target.export)[0] + ); if (!exportInfo) return target; if (alreadyVisited.has(exportInfo)) return CIRCULAR; const newTarget = exportInfo._getTarget( @@ -1343,7 +1377,10 @@ class ExportInfo { ); if (newTarget === CIRCULAR) return CIRCULAR; if (!newTarget) return target; - if (target.export.length === 1) { + if ( + /** @type {NonNullable} */ + (target.export).length === 1 + ) { target = newTarget; if (!target.export) return target; } else { @@ -1351,8 +1388,12 @@ class ExportInfo { module: newTarget.module, connection: newTarget.connection, export: newTarget.export - ? newTarget.export.concat(target.export.slice(1)) - : target.export.slice(1) + ? newTarget.export.concat( + /** @type {NonNullable} */ + (target.export).slice(1) + ) + : /** @type {NonNullable} */ + (target.export).slice(1) }; } if (!resolveTargetFilter(target)) return target; @@ -1364,26 +1405,26 @@ class ExportInfo { } }; - if (!this._target || this._target.size === 0) return undefined; + if (!this._target || this._target.size === 0) return; if (alreadyVisited && alreadyVisited.has(this)) return CIRCULAR; const newAlreadyVisited = new Set(alreadyVisited); newAlreadyVisited.add(this); - const values = this._getMaxTarget().values(); + const values = /** @type {Target} */ (this._getMaxTarget()).values(); const target = resolveTarget(values.next().value, newAlreadyVisited); if (target === CIRCULAR) return CIRCULAR; - if (target === null) return undefined; + if (target === null) return; let result = values.next(); while (!result.done) { const t = resolveTarget(result.value, newAlreadyVisited); if (t === CIRCULAR) return CIRCULAR; - if (t === null) return undefined; - if (t.module !== target.module) return undefined; - if (!t.export !== !target.export) return undefined; + if (t === null) return; + if (t.module !== target.module) return; + if (!t.export !== !target.export) return; if ( target.export && !equals(/** @type {ArrayLike} */ (t.export), target.export) ) - return undefined; + return; result = values.next(); } return target; @@ -1392,34 +1433,42 @@ class ExportInfo { /** * Move the target forward as long resolveTargetFilter is fulfilled * @param {ModuleGraph} moduleGraph the module graph - * @param {function({ module: Module, export: string[] | undefined }): boolean} resolveTargetFilter filter function to further resolve target - * @param {function({ module: Module, export: string[] | undefined }): ModuleGraphConnection=} updateOriginalConnection updates the original connection instead of using the target connection - * @returns {{ module: Module, export: string[] | undefined } | undefined} the resolved target when moved + * @param {function(TargetItem): boolean} resolveTargetFilter filter function to further resolve target + * @param {function(TargetItem): ModuleGraphConnection=} updateOriginalConnection updates the original connection instead of using the target connection + * @returns {TargetItem | undefined} the resolved target when moved */ moveTarget(moduleGraph, resolveTargetFilter, updateOriginalConnection) { const target = this._getTarget(moduleGraph, resolveTargetFilter, undefined); - if (target === CIRCULAR) return undefined; - if (!target) return undefined; - const originalTarget = this._getMaxTarget().values().next().value; + if (target === CIRCULAR) return; + if (!target) return; + const originalTarget = + /** @type {Target} */ + (this._getMaxTarget()).values().next().value; if ( originalTarget.connection === target.connection && originalTarget.export === target.export ) { - return undefined; + return; } - this._target.clear(); - this._target.set(undefined, { + /** @type {Target} */ + (this._target).clear(); + /** @type {Target} */ + (this._target).set(undefined, { connection: updateOriginalConnection ? updateOriginalConnection(target) : target.connection, - export: target.export, + export: /** @type {NonNullable} */ (target.export), priority: 0 }); return target; } + /** + * @returns {ExportsInfo} an exports info + */ createNestedExportsInfo() { - if (this.exportsInfoOwned) return this.exportsInfo; + if (this.exportsInfoOwned) + return /** @type {ExportsInfo} */ (this.exportsInfo); this.exportsInfoOwned = true; const oldExportsInfo = this.exportsInfo; this.exportsInfo = new ExportsInfo(); @@ -1434,6 +1483,11 @@ class ExportInfo { return this.exportsInfo; } + /** + * @param {ExportInfo} baseInfo base info + * @param {RuntimeSpec} runtime runtime + * @returns {boolean} true when has info, otherwise false + */ hasInfo(baseInfo, runtime) { return ( (this._usedName && this._usedName !== this.name) || @@ -1443,10 +1497,20 @@ class ExportInfo { ); } + /** + * @param {Hash} hash the hash + * @param {RuntimeSpec} runtime the runtime + * @returns {void} + */ updateHash(hash, runtime) { this._updateHash(hash, runtime, new Set()); } + /** + * @param {Hash} hash the hash + * @param {RuntimeSpec} runtime the runtime + * @param {Set} alreadyVisitedExportsInfo for circular references + */ _updateHash(hash, runtime, alreadyVisitedExportsInfo) { hash.update( `${this._usedName || this.name}${this.getUsed(runtime)}${this.provided}${ @@ -1480,6 +1544,7 @@ class ExportInfo { if (list !== undefined) list.push(runtime); else map.set(used, [runtime]); } + // eslint-disable-next-line array-callback-return const specificInfo = Array.from(map, ([used, runtimes]) => { switch (used) { case UsageState.NoInfo: diff --git a/node_modules/webpack/lib/ExternalModule.js b/node_modules/webpack/lib/ExternalModule.js index b981fb0..c3fa335 100644 --- a/node_modules/webpack/lib/ExternalModule.js +++ b/node_modules/webpack/lib/ExternalModule.js @@ -11,6 +11,11 @@ const EnvironmentNotSupportAsyncWarning = require("./EnvironmentNotSupportAsyncW const { UsageState } = require("./ExportsInfo"); const InitFragment = require("./InitFragment"); const Module = require("./Module"); +const { + JS_TYPES, + CSS_URL_TYPES, + CSS_IMPORT_TYPES +} = require("./ModuleSourceTypesConstants"); const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants"); const RuntimeGlobals = require("./RuntimeGlobals"); const Template = require("./Template"); @@ -30,6 +35,7 @@ const { register } = require("./util/serialization"); /** @typedef {import("./DependencyTemplates")} DependencyTemplates */ /** @typedef {import("./ExportsInfo")} ExportsInfo */ /** @typedef {import("./Generator").GenerateContext} GenerateContext */ +/** @typedef {import("./Generator").SourceTypes} SourceTypes */ /** @typedef {import("./Module").BuildInfo} BuildInfo */ /** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */ /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */ @@ -37,7 +43,6 @@ const { register } = require("./util/serialization"); /** @typedef {import("./Module").LibIdentOptions} LibIdentOptions */ /** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */ /** @typedef {import("./Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */ -/** @typedef {import("./Module").SourceTypes} SourceTypes */ /** @typedef {import("./ModuleGraph")} ModuleGraph */ /** @typedef {import("./NormalModuleFactory")} NormalModuleFactory */ /** @typedef {import("./RequestShortener")} RequestShortener */ @@ -53,10 +58,11 @@ const { register } = require("./util/serialization"); /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */ /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */ -/** @typedef {{ attributes?: ImportAttributes }} ImportDependencyMeta */ +/** @typedef {{ attributes?: ImportAttributes, externalType: "import" | "module" | undefined }} ImportDependencyMeta */ /** @typedef {{ layer?: string, supports?: string, media?: string }} CssImportDependencyMeta */ +/** @typedef {{ sourceType: "css-url" }} AssetDependencyMeta */ -/** @typedef {ImportDependencyMeta | CssImportDependencyMeta} DependencyMeta */ +/** @typedef {ImportDependencyMeta | CssImportDependencyMeta | AssetDependencyMeta} DependencyMeta */ /** * @typedef {object} SourceData @@ -67,8 +73,6 @@ const { register } = require("./util/serialization"); * @property {ReadOnlyRuntimeRequirements=} runtimeRequirements */ -const TYPES = new Set(["javascript"]); -const CSS_TYPES = new Set(["css-import"]); const RUNTIME_REQUIREMENTS = new Set([RuntimeGlobals.module]); const RUNTIME_REQUIREMENTS_FOR_SCRIPT = new Set([RuntimeGlobals.loadScript]); const RUNTIME_REQUIREMENTS_FOR_MODULE = new Set([ @@ -164,7 +168,10 @@ const getSourceForImportExternal = ( dependencyMeta ) => { const importName = runtimeTemplate.outputOptions.importFunctionName; - if (!runtimeTemplate.supportsDynamicImport() && importName === "import") { + if ( + !runtimeTemplate.supportsDynamicImport() && + (importName === "import" || importName === "module-import") + ) { throw new Error( "The target environment doesn't support 'import()' so it's not possible to use external type 'import'" ); @@ -210,7 +217,7 @@ const getSourceForImportExternal = ( */ const importAssertionReplacer = (key, value) => { if (key === "_isLegacyAssert") { - return undefined; + return; } return value; @@ -353,7 +360,7 @@ const getSourceForModuleExternal = ( runtime, runtimeTemplate ); - let expression = moduleRemapping || baseAccess; + const expression = moduleRemapping || baseAccess; return { expression, init: moduleRemapping @@ -415,11 +422,10 @@ const getSourceForScriptExternal = (urlAndGlobal, runtimeTemplate) => { * @param {RuntimeTemplate} runtimeTemplate the runtime template * @returns {string} the generated source */ -const checkExternalVariable = (variableName, request, runtimeTemplate) => { - return `if(typeof ${variableName} === 'undefined') { ${runtimeTemplate.throwMissingModuleErrorBlock( +const checkExternalVariable = (variableName, request, runtimeTemplate) => + `if(typeof ${variableName} === 'undefined') { ${runtimeTemplate.throwMissingModuleErrorBlock( { request } )} }\n`; -}; /** * @param {string|number} id the module id @@ -498,7 +504,18 @@ class ExternalModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return this.externalType === "css-import" ? CSS_TYPES : TYPES; + if ( + this.externalType === "asset" && + this.dependencyMeta && + /** @type {AssetDependencyMeta} */ + (this.dependencyMeta).sourceType === "css-url" + ) { + return CSS_URL_TYPES; + } else if (this.externalType === "css-import") { + return CSS_IMPORT_TYPES; + } + + return JS_TYPES; } /** @@ -524,7 +541,7 @@ class ExternalModule extends Module { * @returns {string} a unique identifier of the module */ identifier() { - return `external ${this.externalType} ${JSON.stringify(this.request)}`; + return `external ${this._resolveExternalType(this.externalType)} ${JSON.stringify(this.request)}`; } /** @@ -532,7 +549,7 @@ class ExternalModule extends Module { * @returns {string} a user readable identifier of the module */ readableIdentifier(requestShortener) { - return "external " + JSON.stringify(this.request); + return `external ${JSON.stringify(this.request)}`; } /** @@ -658,9 +675,43 @@ class ExternalModule extends Module { let { request, externalType } = this; if (typeof request === "object" && !Array.isArray(request)) request = request[externalType]; + externalType = this._resolveExternalType(externalType); return { request, externalType }; } + /** + * Resolve the detailed external type from the raw external type. + * e.g. resolve "module" or "import" from "module-import" type + * @param {string} externalType raw external type + * @returns {string} resolved external type + */ + _resolveExternalType(externalType) { + if (externalType === "module-import") { + if ( + this.dependencyMeta && + /** @type {ImportDependencyMeta} */ + (this.dependencyMeta).externalType + ) { + return /** @type {ImportDependencyMeta} */ (this.dependencyMeta) + .externalType; + } + return "module"; + } else if (externalType === "asset") { + if ( + this.dependencyMeta && + /** @type {AssetDependencyMeta} */ + (this.dependencyMeta).sourceType + ) { + return /** @type {AssetDependencyMeta} */ (this.dependencyMeta) + .sourceType; + } + + return "asset"; + } + + return externalType; + } + /** * @private * @param {string | string[]} request request @@ -702,7 +753,8 @@ class ExternalModule extends Module { request, /** @type {string} */ (runtimeTemplate.outputOptions.importMetaName), - runtimeTemplate.supportNodePrefixForCoreModules() + /** @type {boolean} */ + (runtimeTemplate.supportNodePrefixForCoreModules()) ) : getSourceForCommonJsExternal(request); case "amd": @@ -731,10 +783,11 @@ class ExternalModule extends Module { if (!(/** @type {BuildInfo} */ (this.buildInfo).module)) { if (!runtimeTemplate.supportsDynamicImport()) { throw new Error( - "The target environment doesn't support dynamic import() syntax so it's not possible to use external type 'module' within a script" + - (runtimeTemplate.supportsEcmaScriptModuleSyntax() + `The target environment doesn't support dynamic import() syntax so it's not possible to use external type 'module' within a script${ + runtimeTemplate.supportsEcmaScriptModuleSyntax() ? "\nDid you mean to build a EcmaScript Module ('output.module: true')?" - : "") + : "" + }` ); } return getSourceForImportExternal( @@ -790,7 +843,13 @@ class ExternalModule extends Module { new RawSource(`module.exports = ${JSON.stringify(request)};`) ); const data = new Map(); - data.set("url", request); + data.set("url", { javascript: request }); + return { sources, runtimeRequirements: RUNTIME_REQUIREMENTS, data }; + } + case "css-url": { + const sources = new Map(); + const data = new Map(); + data.set("url", { "css-url": request }); return { sources, runtimeRequirements: RUNTIME_REQUIREMENTS, data }; } case "css-import": { @@ -846,7 +905,7 @@ class ExternalModule extends Module { if (sourceData.init) sourceString = `${sourceData.init}\n${sourceString}`; - let data = undefined; + let data; if (sourceData.chunkInitFragments) { data = new Map(); data.set("chunkInitFragments", sourceData.chunkInitFragments); @@ -899,7 +958,7 @@ class ExternalModule extends Module { updateHash(hash, context) { const { chunkGraph } = context; hash.update( - `${this.externalType}${JSON.stringify(this.request)}${this.isOptional( + `${this._resolveExternalType(this.externalType)}${JSON.stringify(this.request)}${this.isOptional( chunkGraph.moduleGraph )}` ); diff --git a/node_modules/webpack/lib/ExternalModuleFactoryPlugin.js b/node_modules/webpack/lib/ExternalModuleFactoryPlugin.js index 6d11de5..853a88c 100644 --- a/node_modules/webpack/lib/ExternalModuleFactoryPlugin.js +++ b/node_modules/webpack/lib/ExternalModuleFactoryPlugin.js @@ -9,10 +9,12 @@ const util = require("util"); const ExternalModule = require("./ExternalModule"); const ContextElementDependency = require("./dependencies/ContextElementDependency"); const CssImportDependency = require("./dependencies/CssImportDependency"); +const CssUrlDependency = require("./dependencies/CssUrlDependency"); const HarmonyImportDependency = require("./dependencies/HarmonyImportDependency"); const ImportDependency = require("./dependencies/ImportDependency"); const { resolveByProperty, cachedSetProperty } = require("./util/cleverMerge"); +/** @typedef {import("../declarations/WebpackOptions").ExternalItemFunctionData} ExternalItemFunctionData */ /** @typedef {import("../declarations/WebpackOptions").Externals} Externals */ /** @typedef {import("./Compilation").DepConstructor} DepConstructor */ /** @typedef {import("./ExternalModule").DependencyMeta} DependencyMeta */ @@ -24,7 +26,14 @@ const EMPTY_RESOLVE_OPTIONS = {}; // TODO webpack 6 remove this const callDeprecatedExternals = util.deprecate( + /** + * @param {TODO} externalsFunction externals function + * @param {string} context context + * @param {string} request request + * @param {(err: Error | null | undefined, value: ExternalValue | undefined, ty: ExternalType | undefined) => void} cb cb + */ (externalsFunction, context, request, cb) => { + // eslint-disable-next-line no-useless-call externalsFunction.call(null, context, request, cb); }, "The externals-function should be defined like ({context, request}, cb) => { ... }", @@ -33,11 +42,17 @@ const callDeprecatedExternals = util.deprecate( const cache = new WeakMap(); +/** + * @template {object} T + * @param {T} obj obj + * @param {TODO} layer layer + * @returns {Omit} result + */ const resolveLayer = (obj, layer) => { - let map = cache.get(obj); + let map = cache.get(/** @type {object} */ (obj)); if (map === undefined) { map = new Map(); - cache.set(obj, map); + cache.set(/** @type {object} */ (obj), map); } else { const cacheEntry = map.get(layer); if (cacheEntry !== undefined) return cacheEntry; @@ -47,6 +62,9 @@ const resolveLayer = (obj, layer) => { return result; }; +/** @typedef {string | string[] | boolean | Record} ExternalValue */ +/** @typedef {string | undefined} ExternalType */ + class ExternalModuleFactoryPlugin { /** * @param {string | undefined} type default external type @@ -72,8 +90,8 @@ class ExternalModuleFactoryPlugin { const dependencyType = data.dependencyType; /** - * @param {string|string[]|boolean|Record} value the external config - * @param {string|undefined} type type of external + * @param {ExternalValue} value the external config + * @param {ExternalType | undefined} type type of external * @param {function((Error | null)=, ExternalModule=): void} callback callback * @returns {void} */ @@ -83,12 +101,7 @@ class ExternalModuleFactoryPlugin { return callback(); } /** @type {string | string[] | Record} */ - let externalConfig; - if (value === true) { - externalConfig = dependency.request; - } else { - externalConfig = value; - } + let externalConfig = value === true ? dependency.request : value; // When no explicit type is specified, extract it from the externalConfig if (type === undefined) { if ( @@ -113,6 +126,8 @@ class ExternalModuleFactoryPlugin { } } + const resolvedType = /** @type {string} */ (type || globalType); + // TODO make it pluggable/add hooks to `ExternalModule` to allow output modules own externals? /** @type {DependencyMeta | undefined} */ let dependencyMeta; @@ -122,8 +137,16 @@ class ExternalModuleFactoryPlugin { dependency instanceof ImportDependency || dependency instanceof ContextElementDependency ) { + const externalType = + dependency instanceof HarmonyImportDependency + ? "module" + : dependency instanceof ImportDependency + ? "import" + : undefined; + dependencyMeta = { - attributes: dependency.assertions + attributes: dependency.assertions, + externalType }; } else if (dependency instanceof CssImportDependency) { dependencyMeta = { @@ -133,11 +156,18 @@ class ExternalModuleFactoryPlugin { }; } + if ( + resolvedType === "asset" && + dependency instanceof CssUrlDependency + ) { + dependencyMeta = { sourceType: "css-url" }; + } + callback( null, new ExternalModule( externalConfig, - type || globalType, + resolvedType, dependency.request, dependencyMeta ) @@ -191,6 +221,12 @@ class ExternalModuleFactoryPlugin { return handleExternal(dependency.request, undefined, callback); } } else if (typeof externals === "function") { + /** + * @param {Error | null | undefined} err err + * @param {ExternalValue=} value value + * @param {ExternalType=} type type + * @returns {void} + */ const cb = (err, value, type) => { if (err) return callback(err); if (value !== undefined) { @@ -237,7 +273,8 @@ class ExternalModuleFactoryPlugin { context, request, resolveContext, - callback + /** @type {TODO} */ + (callback) ); } else { return new Promise((resolve, reject) => { diff --git a/node_modules/webpack/lib/FileSystemInfo.js b/node_modules/webpack/lib/FileSystemInfo.js index 79738c5..ed7f327 100644 --- a/node_modules/webpack/lib/FileSystemInfo.js +++ b/node_modules/webpack/lib/FileSystemInfo.js @@ -16,6 +16,9 @@ const { join, dirname, relative, lstatReadlinkAbsolute } = require("./util/fs"); const makeSerializable = require("./util/makeSerializable"); const processAsyncTree = require("./util/processAsyncTree"); +/** @typedef {import("enhanced-resolve").Resolver} Resolver */ +/** @typedef {import("enhanced-resolve").ResolveRequest} ResolveRequest */ +/** @typedef {import("enhanced-resolve").ResolveFunctionAsync} ResolveFunctionAsync */ /** @typedef {import("./WebpackError")} WebpackError */ /** @typedef {import("./logging/Logger").Logger} Logger */ /** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ @@ -23,9 +26,20 @@ const processAsyncTree = require("./util/processAsyncTree"); /** @typedef {typeof import("./util/Hash")} Hash */ /** @typedef {import("./util/fs").IStats} IStats */ /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */ +/** @typedef {import("./util/fs").PathLike} PathLike */ +/** @typedef {import("./util/fs").StringCallback} StringCallback */ +/** + * @template T + * @typedef {import("./util/AsyncQueue").Callback} ProcessorCallback + */ +/** + * @template T, R + * @typedef {import("./util/AsyncQueue").Processor} Processor + */ -const supportsEsm = +process.versions.modules >= 83; +const supportsEsm = Number(process.versions.modules) >= 83; +/** @type {Set} */ const builtinModules = new Set(nodeModule.builtinModules); let FS_ACCURACY = 2000; @@ -43,6 +57,8 @@ const RBDT_FILE = 7; const RBDT_DIRECTORY_DEPENDENCIES = 8; const RBDT_FILE_DEPENDENCIES = 9; +/** @typedef {RBDT_RESOLVE_CJS | RBDT_RESOLVE_ESM | RBDT_RESOLVE_DIRECTORY | RBDT_RESOLVE_CJS_FILE | RBDT_RESOLVE_CJS_FILE_AS_CHILD | RBDT_RESOLVE_ESM_FILE | RBDT_DIRECTORY | RBDT_FILE | RBDT_DIRECTORY_DEPENDENCIES | RBDT_FILE_DEPENDENCIES} JobType */ + const INVALID = Symbol("invalid"); /** @@ -79,27 +95,31 @@ const INVALID = Symbol("invalid"); * @property {string} hash */ +/** @typedef {Set} Symlinks */ + /** * @typedef {object} ContextTimestampAndHash * @property {number} safeTime * @property {string=} timestampHash * @property {string} hash * @property {ResolvedContextTimestampAndHash=} resolved - * @property {Set=} symlinks + * @property {Symlinks=} symlinks */ /** * @typedef {object} ContextHash * @property {string} hash * @property {string=} resolved - * @property {Set=} symlinks + * @property {Symlinks=} symlinks */ +/** @typedef {Set} SnapshotContent */ + /** * @typedef {object} SnapshotOptimizationEntry * @property {Snapshot} snapshot * @property {number} shared - * @property {Set | undefined} snapshotContent + * @property {SnapshotContent | undefined} snapshotContent * @property {Set | undefined} children */ @@ -108,7 +128,7 @@ const INVALID = Symbol("invalid"); * @property {Set} files list of files * @property {Set} directories list of directories * @property {Set} missing list of missing entries - * @property {Map} resolveResults stored resolve results + * @property {Map} resolveResults stored resolve results * @property {object} resolveDependencies dependencies of the resolving * @property {Set} resolveDependencies.files list of files * @property {Set} resolveDependencies.directories list of directories @@ -128,12 +148,17 @@ const DONE_ITERATOR_RESULT = new Set().keys().next(); // Tshs = Timestamp + Hash combinations class SnapshotIterator { + /** + * @param {() => IteratorResult} next next + */ constructor(next) { this.next = next; } } -/** @typedef {(snapshot: Snapshot) => (Map | Set)[]} GetMapsFunction */ +/** + * @typedef {(snapshot: Snapshot) => (Map | Set | undefined)[]} GetMapsFunction + */ class SnapshotIterable { /** @@ -149,12 +174,13 @@ class SnapshotIterable { let state = 0; /** @type {IterableIterator} */ let it; - /** @type {(snapshot: Snapshot) => (Map | Set)[]} */ + /** @type {(snapshot: Snapshot) => (Map | Set | undefined)[]} */ let getMaps; - /** @type {(Map | Set)[]} */ + /** @type {(Map | Set | undefined)[]} */ let maps; /** @type {Snapshot} */ let snapshot; + /** @type {Snapshot[] | undefined} */ let queue; return new SnapshotIterator(() => { for (;;) { @@ -202,7 +228,7 @@ class SnapshotIterable { } } if (queue !== undefined && queue.length > 0) { - snapshot = queue.pop(); + snapshot = /** @type {Snapshot} */ (queue.pop()); maps = getMaps(snapshot); state = 1; break; @@ -225,6 +251,12 @@ class SnapshotIterable { /** @typedef {Map} ContextTimestamps */ /** @typedef {Map} ContextHashes */ /** @typedef {Map} ContextTshs */ +/** @typedef {Map} MissingExistence */ +/** @typedef {Map} ManagedItemInfo */ +/** @typedef {Set} ManagedFiles */ +/** @typedef {Set} ManagedContexts */ +/** @typedef {Set} ManagedMissing */ +/** @typedef {Set} Children */ class Snapshot { constructor() { @@ -249,17 +281,17 @@ class Snapshot { this.contextHashes = undefined; /** @type {ContextTshs | undefined} */ this.contextTshs = undefined; - /** @type {Map | undefined} */ + /** @type {MissingExistence | undefined} */ this.missingExistence = undefined; - /** @type {Map | undefined} */ + /** @type {ManagedItemInfo | undefined} */ this.managedItemInfo = undefined; - /** @type {Set | undefined} */ + /** @type {ManagedFiles | undefined} */ this.managedFiles = undefined; - /** @type {Set | undefined} */ + /** @type {ManagedContexts | undefined} */ this.managedContexts = undefined; - /** @type {Set | undefined} */ + /** @type {ManagedMissing | undefined} */ this.managedMissing = undefined; - /** @type {Set | undefined} */ + /** @type {Children | undefined} */ this.children = undefined; } @@ -275,15 +307,28 @@ class Snapshot { this.startTime = value; } + /** + * @param {number | undefined} value value + * @param {Snapshot} snapshot snapshot + */ setMergedStartTime(value, snapshot) { if (value) { if (snapshot.hasStartTime()) { - this.setStartTime(Math.min(value, snapshot.startTime)); + this.setStartTime( + Math.min( + value, + /** @type {NonNullable} */ + (snapshot.startTime) + ) + ); } else { this.setStartTime(value); } - } else { - if (snapshot.hasStartTime()) this.setStartTime(snapshot.startTime); + } else if (snapshot.hasStartTime()) { + this.setStartTime( + /** @type {NonNullable} */ + (snapshot.startTime) + ); } } @@ -291,6 +336,9 @@ class Snapshot { return (this._flags & 2) !== 0; } + /** + * @param {FileTimestamps} value file timestamps + */ setFileTimestamps(value) { this._flags = this._flags | 2; this.fileTimestamps = value; @@ -300,6 +348,9 @@ class Snapshot { return (this._flags & 4) !== 0; } + /** + * @param {FileHashes} value file hashes + */ setFileHashes(value) { this._flags = this._flags | 4; this.fileHashes = value; @@ -309,6 +360,9 @@ class Snapshot { return (this._flags & 8) !== 0; } + /** + * @param {FileTshs} value file tshs + */ setFileTshs(value) { this._flags = this._flags | 8; this.fileTshs = value; @@ -318,6 +372,9 @@ class Snapshot { return (this._flags & 0x10) !== 0; } + /** + * @param {ContextTimestamps} value context timestamps + */ setContextTimestamps(value) { this._flags = this._flags | 0x10; this.contextTimestamps = value; @@ -327,6 +384,9 @@ class Snapshot { return (this._flags & 0x20) !== 0; } + /** + * @param {ContextHashes} value context hashes + */ setContextHashes(value) { this._flags = this._flags | 0x20; this.contextHashes = value; @@ -336,6 +396,9 @@ class Snapshot { return (this._flags & 0x40) !== 0; } + /** + * @param {ContextTshs} value context tshs + */ setContextTshs(value) { this._flags = this._flags | 0x40; this.contextTshs = value; @@ -345,6 +408,9 @@ class Snapshot { return (this._flags & 0x80) !== 0; } + /** + * @param {MissingExistence} value context tshs + */ setMissingExistence(value) { this._flags = this._flags | 0x80; this.missingExistence = value; @@ -354,6 +420,9 @@ class Snapshot { return (this._flags & 0x100) !== 0; } + /** + * @param {ManagedItemInfo} value managed item info + */ setManagedItemInfo(value) { this._flags = this._flags | 0x100; this.managedItemInfo = value; @@ -363,6 +432,9 @@ class Snapshot { return (this._flags & 0x200) !== 0; } + /** + * @param {ManagedFiles} value managed files + */ setManagedFiles(value) { this._flags = this._flags | 0x200; this.managedFiles = value; @@ -372,6 +444,9 @@ class Snapshot { return (this._flags & 0x400) !== 0; } + /** + * @param {ManagedContexts} value managed contexts + */ setManagedContexts(value) { this._flags = this._flags | 0x400; this.managedContexts = value; @@ -381,6 +456,9 @@ class Snapshot { return (this._flags & 0x800) !== 0; } + /** + * @param {ManagedMissing} value managed missing + */ setManagedMissing(value) { this._flags = this._flags | 0x800; this.managedMissing = value; @@ -390,16 +468,23 @@ class Snapshot { return (this._flags & 0x1000) !== 0; } + /** + * @param {Children} value children + */ setChildren(value) { this._flags = this._flags | 0x1000; this.children = value; } + /** + * @param {Snapshot} child children + */ addChild(child) { if (!this.hasChildren()) { this.setChildren(new Set()); } - this.children.add(child); + /** @type {Children} */ + (this.children).add(child); } /** @@ -498,22 +583,35 @@ makeSerializable(Snapshot, "webpack/lib/FileSystemInfo", "Snapshot"); const MIN_COMMON_SNAPSHOT_SIZE = 3; +/** + * @template U, T + * @typedef {U extends true ? Set : Map} SnapshotOptimizationValue + */ + /** * @template T + * @template {boolean} [U=false] */ class SnapshotOptimization { /** * @param {function(Snapshot): boolean} has has value - * @param {function(Snapshot): Map | Set} get get value - * @param {function(Snapshot, Map | Set): void} set set value + * @param {function(Snapshot): SnapshotOptimizationValue | undefined} get get value + * @param {function(Snapshot, SnapshotOptimizationValue): void} set set value * @param {boolean=} useStartTime use the start time of snapshots - * @param {boolean=} isSet value is an Set instead of a Map + * @param {U=} isSet value is an Set instead of a Map */ - constructor(has, get, set, useStartTime = true, isSet = false) { + constructor( + has, + get, + set, + useStartTime = true, + isSet = /** @type {U} */ (false) + ) { this._has = has; this._get = get; this._set = set; this._useStartTime = useStartTime; + /** @type {U} */ this._isSet = isSet; /** @type {Map} */ this._map = new Map(); @@ -525,7 +623,7 @@ class SnapshotOptimization { getStatisticMessage() { const total = this._statItemsShared + this._statItemsUnshared; - if (total === 0) return undefined; + if (total === 0) return; return `${ this._statItemsShared && Math.round((this._statItemsShared * 100) / total) }% (${this._statItemsShared}/${total}) entries shared via ${ @@ -555,7 +653,9 @@ class SnapshotOptimization { */ const increaseSharedAndStoreOptimizationEntry = entry => { if (entry.children !== undefined) { - entry.children.forEach(increaseSharedAndStoreOptimizationEntry); + for (const child of entry.children) { + increaseSharedAndStoreOptimizationEntry(child); + } } entry.shared++; storeOptimizationEntry(entry); @@ -565,8 +665,12 @@ class SnapshotOptimization { * @returns {void} */ const storeOptimizationEntry = entry => { - for (const path of entry.snapshotContent) { - const old = this._map.get(path); + for (const path of /** @type {SnapshotContent} */ ( + entry.snapshotContent + )) { + const old = + /** @type {SnapshotOptimizationEntry} */ + (this._map.get(path)); if (old.shared < entry.shared) { this._map.set(path, entry); } @@ -575,7 +679,7 @@ class SnapshotOptimization { }; /** @type {SnapshotOptimizationEntry | undefined} */ - let newOptimizationEntry = undefined; + let newOptimizationEntry; const capturedFilesSize = capturedFiles.size; @@ -600,7 +704,7 @@ class SnapshotOptimization { } } - optimizationEntries: for (const optimizationEntry of optimizationEntries) { + optimizationEntriesLabel: for (const optimizationEntry of optimizationEntries) { const snapshot = optimizationEntry.snapshot; if (optimizationEntry.shared > 0) { // It's a shared snapshot @@ -614,14 +718,18 @@ class SnapshotOptimization { continue; } const nonSharedFiles = new Set(); - const snapshotContent = optimizationEntry.snapshotContent; - const snapshotEntries = this._get(snapshot); + const snapshotContent = + /** @type {NonNullable} */ + (optimizationEntry.snapshotContent); + const snapshotEntries = + /** @type {SnapshotOptimizationValue} */ + (this._get(snapshot)); for (const path of snapshotContent) { if (!capturedFiles.has(path)) { if (!snapshotEntries.has(path)) { // File is not shared and can't be removed from the snapshot // because it's in a child of the snapshot - continue optimizationEntries; + continue optimizationEntriesLabel; } nonSharedFiles.add(path); continue; @@ -638,7 +746,7 @@ class SnapshotOptimization { const sharedCount = snapshotContent.size - nonSharedFiles.size; if (sharedCount < MIN_COMMON_SNAPSHOT_SIZE) { // Common part it too small - continue optimizationEntries; + continue; } // Extract common timestamps from both snapshots let commonMap; @@ -663,7 +771,10 @@ class SnapshotOptimization { if (this._useStartTime) { commonSnapshot.setMergedStartTime(newSnapshot.startTime, snapshot); } - this._set(commonSnapshot, commonMap); + this._set( + commonSnapshot, + /** @type {SnapshotOptimizationValue} */ (commonMap) + ); newSnapshot.addChild(commonSnapshot); snapshot.addChild(commonSnapshot); // Create optimization entry @@ -686,7 +797,7 @@ class SnapshotOptimization { const snapshotEntries = this._get(snapshot); if (snapshotEntries === undefined) { // Incomplete snapshot, that can't be used - continue optimizationEntries; + continue; } let commonMap; if (this._isSet) { @@ -713,14 +824,18 @@ class SnapshotOptimization { if (commonMap.size < MIN_COMMON_SNAPSHOT_SIZE) { // Common part it too small - continue optimizationEntries; + continue; } // Create and attach snapshot const commonSnapshot = new Snapshot(); if (this._useStartTime) { commonSnapshot.setMergedStartTime(newSnapshot.startTime, snapshot); } - this._set(commonSnapshot, commonMap); + this._set( + commonSnapshot, + /** @type {SnapshotOptimizationValue} */ + (commonMap) + ); newSnapshot.addChild(commonSnapshot); snapshot.addChild(commonSnapshot); // Remove files from snapshot @@ -746,7 +861,7 @@ class SnapshotOptimization { /** * @param {string} str input - * @returns {TODO} result + * @returns {string} result */ const parseString = str => { if (str[0] === "'" || str[0] === "`") @@ -768,13 +883,14 @@ const applyMtime = mtime => { /** * @template T * @template K - * @param {Map} a source map - * @param {Map} b joining map + * @param {Map | undefined} a source map + * @param {Map | undefined} b joining map * @returns {Map} joined map */ const mergeMaps = (a, b) => { - if (!b || b.size === 0) return a; - if (!a || a.size === 0) return b; + if (!b || b.size === 0) return /** @type {Map} */ (a); + if (!a || a.size === 0) return /** @type {Map} */ (b); + /** @type {Map} */ const map = new Map(a); for (const [key, value] of b) { map.set(key, value); @@ -784,13 +900,14 @@ const mergeMaps = (a, b) => { /** * @template T - * @param {Set} a source map - * @param {Set} b joining map + * @param {Set | undefined} a source map + * @param {Set | undefined} b joining map * @returns {Set} joined map */ const mergeSets = (a, b) => { - if (!b || b.size === 0) return a; - if (!a || a.size === 0) return b; + if (!b || b.size === 0) return /** @type {Set} */ (a); + if (!a || a.size === 0) return /** @type {Set} */ (b); + /** @type {Set} */ const map = new Set(a); for (const item of b) { map.add(item); @@ -912,6 +1029,8 @@ const addAll = (source, target) => { for (const key of source) target.add(key); }; +/** @typedef {Set} LoggedPaths */ + /** * Used to access information about the filesystem in a cached way */ @@ -938,9 +1057,10 @@ class FileSystemInfo { this.fs = fs; this.logger = logger; this._remainingLogs = logger ? 40 : 0; + /** @type {LoggedPaths | undefined} */ this._loggedPaths = logger ? new Set() : undefined; this._hashFunction = hashFunction; - /** @type {WeakMap} */ + /** @type {WeakMap} */ this._snapshotCache = new WeakMap(); this._fileTimestampsOptimization = new SnapshotOptimization( s => s.hasFileTimestamps(), @@ -1021,37 +1141,37 @@ class FileSystemInfo { this._contextTshs = new Map(); /** @type {Map} */ this._managedItems = new Map(); - /** @type {AsyncQueue} */ + /** @type {AsyncQueue} */ this.fileTimestampQueue = new AsyncQueue({ name: "file timestamp", parallelism: 30, processor: this._readFileTimestamp.bind(this) }); - /** @type {AsyncQueue} */ + /** @type {AsyncQueue} */ this.fileHashQueue = new AsyncQueue({ name: "file hash", parallelism: 10, processor: this._readFileHash.bind(this) }); - /** @type {AsyncQueue} */ + /** @type {AsyncQueue} */ this.contextTimestampQueue = new AsyncQueue({ name: "context timestamp", parallelism: 2, processor: this._readContextTimestamp.bind(this) }); - /** @type {AsyncQueue} */ + /** @type {AsyncQueue} */ this.contextHashQueue = new AsyncQueue({ name: "context hash", parallelism: 2, processor: this._readContextHash.bind(this) }); - /** @type {AsyncQueue} */ + /** @type {AsyncQueue} */ this.contextTshQueue = new AsyncQueue({ name: "context hash and timestamp", parallelism: 2, processor: this._readContextTimestampAndHash.bind(this) }); - /** @type {AsyncQueue} */ + /** @type {AsyncQueue} */ this.managedItemQueue = new AsyncQueue({ name: "managed item info", parallelism: 10, @@ -1140,51 +1260,51 @@ class FileSystemInfo { `File info in cache: ${this._fileTimestamps.size} timestamps ${this._fileHashes.size} hashes ${this._fileTshs.size} timestamp hash combinations` ); logWhenMessage( - `File timestamp snapshot optimization`, + "File timestamp snapshot optimization", this._fileTimestampsOptimization.getStatisticMessage() ); logWhenMessage( - `File hash snapshot optimization`, + "File hash snapshot optimization", this._fileHashesOptimization.getStatisticMessage() ); logWhenMessage( - `File timestamp hash combination snapshot optimization`, + "File timestamp hash combination snapshot optimization", this._fileTshsOptimization.getStatisticMessage() ); logger.log( `Directory info in cache: ${this._contextTimestamps.size} timestamps ${this._contextHashes.size} hashes ${this._contextTshs.size} timestamp hash combinations` ); logWhenMessage( - `Directory timestamp snapshot optimization`, + "Directory timestamp snapshot optimization", this._contextTimestampsOptimization.getStatisticMessage() ); logWhenMessage( - `Directory hash snapshot optimization`, + "Directory hash snapshot optimization", this._contextHashesOptimization.getStatisticMessage() ); logWhenMessage( - `Directory timestamp hash combination snapshot optimization`, + "Directory timestamp hash combination snapshot optimization", this._contextTshsOptimization.getStatisticMessage() ); logWhenMessage( - `Missing items snapshot optimization`, + "Missing items snapshot optimization", this._missingExistenceOptimization.getStatisticMessage() ); logger.log(`Managed items info in cache: ${this._managedItems.size} items`); logWhenMessage( - `Managed items snapshot optimization`, + "Managed items snapshot optimization", this._managedItemInfoOptimization.getStatisticMessage() ); logWhenMessage( - `Managed files snapshot optimization`, + "Managed files snapshot optimization", this._managedFilesOptimization.getStatisticMessage() ); logWhenMessage( - `Managed contexts snapshot optimization`, + "Managed contexts snapshot optimization", this._managedContextsOptimization.getStatisticMessage() ); logWhenMessage( - `Managed missing snapshot optimization`, + "Managed missing snapshot optimization", this._managedMissingOptimization.getStatisticMessage() ); } @@ -1196,11 +1316,14 @@ class FileSystemInfo { */ _log(path, reason, ...args) { const key = path + reason; - if (this._loggedPaths.has(key)) return; - this._loggedPaths.add(key); - this.logger.debug(`${path} invalidated because ${reason}`, ...args); + const loggedPaths = /** @type {LoggedPaths} */ (this._loggedPaths); + if (loggedPaths.has(key)) return; + loggedPaths.add(key); + /** @type {Logger} */ + (this.logger).debug(`${path} invalidated because ${reason}`, ...args); if (--this._remainingLogs === 0) { - this.logger.debug( + /** @type {Logger} */ + (this.logger).debug( "Logging limit has been reached and no further logging will be emitted by FileSystemInfo" ); } @@ -1284,10 +1407,15 @@ class FileSystemInfo { if (cache === "ignore") return callback(null, "ignore"); const resolved = getResolvedTimestamp(cache); if (resolved !== undefined) return callback(null, resolved); - return this._resolveContextTimestamp(cache, callback); + return this._resolveContextTimestamp( + /** @type {ResolvedContextFileSystemInfoEntry} */ + (cache), + callback + ); } - this.contextTimestampQueue.add(path, (err, entry) => { + this.contextTimestampQueue.add(path, (err, _entry) => { if (err) return callback(err); + const entry = /** @type {ContextFileSystemInfoEntry} */ (_entry); const resolved = getResolvedTimestamp(entry); if (resolved !== undefined) return callback(null, resolved); this._resolveContextTimestamp(entry, callback); @@ -1329,8 +1457,9 @@ class FileSystemInfo { return callback(null, /** @type {string} */ (resolved)); return this._resolveContextHash(cache, callback); } - this.contextHashQueue.add(path, (err, entry) => { + this.contextHashQueue.add(path, (err, _entry) => { if (err) return callback(err); + const entry = /** @type {ContextHash} */ (_entry); const resolved = getResolvedHash(entry); if (resolved !== undefined) return callback(null, /** @type {string} */ (resolved)); @@ -1351,7 +1480,7 @@ class FileSystemInfo { /** * @param {string} path context path - * @param {function((WebpackError | null)=, ResolvedContextTimestampAndHash=): void} callback callback function + * @param {function((WebpackError | null)=, (ResolvedContextTimestampAndHash | null)=): void} callback callback function * @returns {void} */ getContextTsh(path, callback) { @@ -1361,8 +1490,9 @@ class FileSystemInfo { if (resolved !== undefined) return callback(null, resolved); return this._resolveContextTsh(cache, callback); } - this.contextTshQueue.add(path, (err, entry) => { + this.contextTshQueue.add(path, (err, _entry) => { if (err) return callback(err); + const entry = /** @type {ContextTimestampAndHash} */ (_entry); const resolved = getResolvedTimestamp(entry); if (resolved !== undefined) return callback(null, resolved); this._resolveContextTsh(entry, callback); @@ -1443,12 +1573,17 @@ class FileSystemInfo { missingDependencies: resolveMissing }; /** - * @param {string} expected expected result + * @param {undefined | boolean | string} expected expected result * @returns {string} expected result */ - const expectedToString = expected => { - return expected ? ` (expected ${expected})` : ""; - }; + const expectedToString = expected => + expected ? ` (expected ${expected})` : ""; + /** @typedef {{ type: JobType, context: string | undefined, path: string, issuer: Job | undefined, expected: undefined | boolean | string }} Job */ + + /** + * @param {Job} job job + * @returns {`resolve commonjs file ${string}${string}`|`resolve esm file ${string}${string}`|`resolve esm ${string}${string}`|`resolve directory ${string}`|`file ${string}`|`unknown ${string} ${string}`|`resolve commonjs ${string}${string}`|`directory ${string}`|`file dependencies ${string}`|`directory dependencies ${string}`} result + */ const jobToString = job => { switch (job.type) { case RBDT_RESOLVE_CJS: @@ -1478,105 +1613,135 @@ class FileSystemInfo { } return `unknown ${job.type} ${job.path}`; }; + /** + * @param {Job} job job + * @returns {string} string value + */ const pathToString = job => { let result = ` at ${jobToString(job)}`; - job = job.issuer; + /** @type {Job | undefined} */ + (job) = job.issuer; while (job !== undefined) { result += `\n at ${jobToString(job)}`; - job = job.issuer; + job = /** @type {Job} */ (job.issuer); } return result; }; + const logger = /** @type {Logger} */ (this.logger); processAsyncTree( - Array.from(deps, dep => ({ - type: RBDT_RESOLVE_CJS, - context, - path: dep, - expected: undefined, - issuer: undefined - })), + Array.from( + deps, + dep => + /** @type {Job} */ ({ + type: RBDT_RESOLVE_CJS, + context, + path: dep, + expected: undefined, + issuer: undefined + }) + ), 20, (job, push, callback) => { const { type, context, path, expected } = job; + /** + * @param {string} path path + * @returns {void} + */ const resolveDirectory = path => { const key = `d\n${context}\n${path}`; if (resolveResults.has(key)) { return callback(); } resolveResults.set(key, undefined); - resolveContext(context, path, resolverContext, (err, _, result) => { - if (err) { - if (expected === false) { - resolveResults.set(key, false); - return callback(); - } - invalidResolveResults.add(key); - err.message += `\nwhile resolving '${path}' in ${context} to a directory`; - return callback(err); - } - const resultPath = result.path; - resolveResults.set(key, resultPath); - push({ - type: RBDT_DIRECTORY, - context: undefined, - path: /** @type {string} */ (resultPath), - expected: undefined, - issuer: job - }); - callback(); - }); - }; - const resolveFile = (path, symbol, resolve) => { - const key = `${symbol}\n${context}\n${path}`; - if (resolveResults.has(key)) { - return callback(); - } - resolveResults.set(key, undefined); - resolve(context, path, resolverContext, (err, _, result) => { - if (typeof expected === "string") { - if (!err && result && result.path === expected) { - resolveResults.set(key, result.path); - } else { - invalidResolveResults.add(key); - /** @type {Logger} */ - (this.logger).warn( - `Resolving '${path}' in ${context} for build dependencies doesn't lead to expected result '${expected}', but to '${ - err || (result && result.path) - }' instead. Resolving dependencies are ignored for this path.\n${pathToString( - job - )}` - ); - } - } else { + resolveContext( + /** @type {string} */ (context), + path, + resolverContext, + (err, _, result) => { if (err) { if (expected === false) { resolveResults.set(key, false); return callback(); } invalidResolveResults.add(key); - err.message += `\nwhile resolving '${path}' in ${context} as file\n${pathToString( - job - )}`; + err.message += `\nwhile resolving '${path}' in ${context} to a directory`; return callback(err); } - const resultPath = result.path; + const resultPath = /** @type {ResolveRequest} */ (result).path; resolveResults.set(key, resultPath); push({ - type: RBDT_FILE, + type: RBDT_DIRECTORY, context: undefined, - path: resultPath, + path: /** @type {string} */ (resultPath), expected: undefined, issuer: job }); + callback(); } - callback(); - }); + ); + }; + /** + * @param {string} path path + * @param {("f" | "c" | "e")=} symbol symbol + * @param {(ResolveFunctionAsync)=} resolve resolve fn + * @returns {void} + */ + const resolveFile = (path, symbol, resolve) => { + const key = `${symbol}\n${context}\n${path}`; + if (resolveResults.has(key)) { + return callback(); + } + resolveResults.set(key, undefined); + /** @type {ResolveFunctionAsync} */ + (resolve)( + /** @type {string} */ (context), + path, + resolverContext, + (err, _, result) => { + if (typeof expected === "string") { + if (!err && result && result.path === expected) { + resolveResults.set(key, result.path); + } else { + invalidResolveResults.add(key); + logger.warn( + `Resolving '${path}' in ${context} for build dependencies doesn't lead to expected result '${expected}', but to '${ + err || (result && result.path) + }' instead. Resolving dependencies are ignored for this path.\n${pathToString( + job + )}` + ); + } + } else { + if (err) { + if (expected === false) { + resolveResults.set(key, false); + return callback(); + } + invalidResolveResults.add(key); + err.message += `\nwhile resolving '${path}' in ${context} as file\n${pathToString( + job + )}`; + return callback(err); + } + const resultPath = /** @type {ResolveRequest} */ (result).path; + resolveResults.set(key, resultPath); + push({ + type: RBDT_FILE, + context: undefined, + path: /** @type {string} */ (resultPath), + expected: undefined, + issuer: job + }); + } + callback(); + } + ); }; switch (type) { case RBDT_RESOLVE_CJS: { const isDirectory = /[\\/]$/.test(path); if (isDirectory) { - resolveDirectory(path.slice(0, path.length - 1)); + resolveDirectory(path.slice(0, -1)); } else { resolveFile(path, "f", resolveCjs); } @@ -1585,7 +1750,7 @@ class FileSystemInfo { case RBDT_RESOLVE_ESM: { const isDirectory = /[\\/]$/.test(path); if (isDirectory) { - resolveDirectory(path.slice(0, path.length - 1)); + resolveDirectory(path.slice(0, -1)); } else { resolveFile(path); } @@ -1613,7 +1778,8 @@ class FileSystemInfo { break; } files.add(path); - this.fs.realpath(path, (err, _realPath) => { + /** @type {NonNullable} */ + (this.fs.realpath)(path, (err, _realPath) => { if (err) return callback(err); const realPath = /** @type {string} */ (_realPath); if (realPath !== path) { @@ -1639,7 +1805,8 @@ class FileSystemInfo { break; } directories.add(path); - this.fs.realpath(path, (err, _realPath) => { + /** @type {NonNullable} */ + (this.fs.realpath)(path, (err, _realPath) => { if (err) return callback(err); const realPath = /** @type {string} */ (_realPath); if (realPath !== path) { @@ -1670,7 +1837,7 @@ class FileSystemInfo { const module = require.cache[path]; if (module && Array.isArray(module.children)) { children: for (const child of module.children) { - let childPath = child.filename; + const childPath = child.filename; if (childPath) { push({ type: RBDT_FILE, @@ -1682,7 +1849,7 @@ class FileSystemInfo { const context = dirname(this.fs, path); for (const modulePath of module.paths) { if (childPath.startsWith(modulePath)) { - let subPath = childPath.slice(modulePath.length + 1); + const subPath = childPath.slice(modulePath.length + 1); const packageMatch = /^(@[^\\/]+[\\/])[^\\/]+/.exec( subPath ); @@ -1690,12 +1857,12 @@ class FileSystemInfo { push({ type: RBDT_FILE, context: undefined, - path: + path: `${ modulePath + childPath[modulePath.length] + packageMatch[0] + - childPath[modulePath.length] + - "package.json", + childPath[modulePath.length] + }package.json`, expected: false, issuer: job }); @@ -1730,7 +1897,7 @@ class FileSystemInfo { } } else if (supportsEsm && /\.m?js$/.test(path)) { if (!this._warnAboutExperimentalEsmTracking) { - this.logger.log( + logger.log( "Node.js doesn't offer a (nice) way to introspect the ESM dependency graph yet.\n" + "Until a full solution is available webpack uses an experimental ESM tracking based on parsing.\n" + "As best effort webpack parses the ESM files to guess dependencies. But this can lead to expensive and incorrect tracking." @@ -1743,7 +1910,7 @@ class FileSystemInfo { if (err) return callback(err); try { const context = dirname(this.fs, path); - const source = content.toString(); + const source = /** @type {Buffer} */ (content).toString(); const [imports] = lexer.parse(source); for (const imp of imports) { try { @@ -1755,7 +1922,7 @@ class FileSystemInfo { ); } else if (imp.d > -1) { // import() - let expr = source.substring(imp.s, imp.e).trim(); + const expr = source.substring(imp.s, imp.e).trim(); dependency = parseString(expr); } else { // e.g. import.meta @@ -1773,34 +1940,34 @@ class FileSystemInfo { expected: imp.d > -1 ? false : undefined, issuer: job }); - } catch (e) { - this.logger.warn( + } catch (err1) { + logger.warn( `Parsing of ${path} for build dependencies failed at 'import(${source.substring( imp.s, imp.e )})'.\n` + "Build dependencies behind this expression are ignored and might cause incorrect cache invalidation." ); - this.logger.debug(pathToString(job)); - this.logger.debug(e.stack); + logger.debug(pathToString(job)); + logger.debug(/** @type {Error} */ (err1).stack); } } - } catch (e) { - this.logger.warn( + } catch (err2) { + logger.warn( `Parsing of ${path} for build dependencies failed and all dependencies of this file are ignored, which might cause incorrect cache invalidation..` ); - this.logger.debug(pathToString(job)); - this.logger.debug(e.stack); + logger.debug(pathToString(job)); + logger.debug(/** @type {Error} */ (err2).stack); } process.nextTick(callback); }); }, callback); break; } else { - this.logger.log( + logger.log( `Assuming ${path} has no dependencies as we were unable to assign it to any module system.` ); - this.logger.debug(pathToString(job)); + logger.debug(pathToString(job)); } process.nextTick(callback); break; @@ -1832,9 +1999,11 @@ class FileSystemInfo { resolveFiles.add(packageJson); let packageData; try { - packageData = JSON.parse(content.toString("utf-8")); - } catch (e) { - return callback(e); + packageData = JSON.parse( + /** @type {Buffer} */ (content).toString("utf-8") + ); + } catch (parseErr) { + return callback(/** @type {Error} */ (parseErr)); } const depsObject = packageData.dependencies; const optionalDepsObject = packageData.optionalDependencies; @@ -1908,7 +2077,7 @@ class FileSystemInfo { if (expectedResult === false) return callback(err ? undefined : INVALID); if (err) return callback(err); - const resultPath = result.path; + const resultPath = /** @type {ResolveRequest} */ (result).path; if (resultPath !== expectedResult) return callback(INVALID); callback(); }); @@ -1918,7 +2087,7 @@ class FileSystemInfo { if (expectedResult === false) return callback(err ? undefined : INVALID); if (err) return callback(err); - const resultPath = result.path; + const resultPath = /** @type {ResolveRequest} */ (result).path; if (resultPath !== expectedResult) return callback(INVALID); callback(); }); @@ -1928,7 +2097,7 @@ class FileSystemInfo { if (expectedResult === false) return callback(err ? undefined : INVALID); if (err) return callback(err); - const resultPath = result.path; + const resultPath = /** @type {ResolveRequest} */ (result).path; if (resultPath !== expectedResult) return callback(INVALID); callback(); }); @@ -1938,7 +2107,7 @@ class FileSystemInfo { if (expectedResult === false) return callback(err ? undefined : INVALID); if (err) return callback(err); - const resultPath = result.path; + const resultPath = /** @type {ResolveRequest} */ (result).path; if (resultPath !== expectedResult) return callback(INVALID); callback(); }); @@ -1965,39 +2134,38 @@ class FileSystemInfo { } /** - * * @param {number | null | undefined} startTime when processing the files has started * @param {Iterable | null} files all files * @param {Iterable | null} directories all directories * @param {Iterable | null} missing all missing files or directories * @param {SnapshotOptions | null | undefined} options options object (for future extensions) - * @param {function((WebpackError | null)=, (Snapshot | null)=): void} callback callback function + * @param {function(WebpackError | null, Snapshot | null): void} callback callback function * @returns {void} */ createSnapshot(startTime, files, directories, missing, options, callback) { - /** @type {Map} */ + /** @type {FileTimestamps} */ const fileTimestamps = new Map(); - /** @type {Map} */ + /** @type {FileHashes} */ const fileHashes = new Map(); - /** @type {Map} */ + /** @type {FileTshs} */ const fileTshs = new Map(); - /** @type {Map} */ + /** @type {ContextTimestamps} */ const contextTimestamps = new Map(); - /** @type {Map} */ + /** @type {ContextHashes} */ const contextHashes = new Map(); - /** @type {Map} */ + /** @type {ContextTshs} */ const contextTshs = new Map(); - /** @type {Map} */ + /** @type {MissingExistence} */ const missingExistence = new Map(); - /** @type {Map} */ + /** @type {ManagedItemInfo} */ const managedItemInfo = new Map(); - /** @type {Set} */ + /** @type {ManagedFiles} */ const managedFiles = new Set(); - /** @type {Set} */ + /** @type {ManagedContexts} */ const managedContexts = new Set(); - /** @type {Set} */ + /** @type {ManagedMissing} */ const managedMissing = new Set(); - /** @type {Set} */ + /** @type {Children} */ const children = new Set(); const snapshot = new Snapshot(); @@ -2064,6 +2232,11 @@ class FileSystemInfo { callback(null, null); } }; + /** + * @param {string} path path + * @param {Set} managedSet managed set + * @returns {boolean} true when managed + */ const checkManaged = (path, managedSet) => { for (const unmanagedPath of this.unmanagedPathsRegExps) { if (unmanagedPath.test(path)) return false; @@ -2106,6 +2279,11 @@ class FileSystemInfo { } return false; }; + /** + * @param {Iterable} items items + * @param {Set} managedSet managed set + * @returns {Set} result + */ const captureNonManaged = (items, managedSet) => { const capturedItems = new Set(); for (const path of items) { @@ -2135,7 +2313,7 @@ class FileSystemInfo { } jobError(); } else { - fileTshs.set(path, entry); + fileTshs.set(path, /** @type {TimestampAndHash} */ (entry)); jobDone(); } }); @@ -2159,7 +2337,7 @@ class FileSystemInfo { } jobError(); } else { - fileHashes.set(path, entry); + fileHashes.set(path, /** @type {string} */ (entry)); jobDone(); } }); @@ -2185,7 +2363,11 @@ class FileSystemInfo { } jobError(); } else { - fileTimestamps.set(path, entry); + fileTimestamps.set( + path, + /** @type {FileSystemInfoEntry} */ + (entry) + ); jobDone(); } }); @@ -2197,13 +2379,16 @@ class FileSystemInfo { if (files) { processCapturedFiles(captureNonManaged(files, managedFiles)); } + /** + * @param {Set} capturedDirectories captured directories + */ const processCapturedDirectories = capturedDirectories => { switch (mode) { case 3: this._contextTshsOptimization.optimize(snapshot, capturedDirectories); for (const path of capturedDirectories) { const cache = this._contextTshs.get(path); - /** @type {ResolvedContextTimestampAndHash} */ + /** @type {ResolvedContextTimestampAndHash | null | undefined} */ let resolved; if ( cache !== undefined && @@ -2213,8 +2398,8 @@ class FileSystemInfo { } else { jobs++; /** - * @param {Error=} err error - * @param {ResolvedContextTimestampAndHash=} entry entry + * @param {(WebpackError | null)=} err error + * @param {(ResolvedContextTimestampAndHash | null)=} entry entry * @returns {void} */ const callback = (err, entry) => { @@ -2226,7 +2411,11 @@ class FileSystemInfo { } jobError(); } else { - contextTshs.set(path, entry); + contextTshs.set( + path, + /** @type {ResolvedContextTimestampAndHash | null} */ + (entry) + ); jobDone(); } }; @@ -2253,6 +2442,10 @@ class FileSystemInfo { contextHashes.set(path, resolved); } else { jobs++; + /** + * @param {(WebpackError | null)=} err err + * @param {string=} entry entry + */ const callback = (err, entry) => { if (err) { if (this.logger) { @@ -2262,7 +2455,7 @@ class FileSystemInfo { } jobError(); } else { - contextHashes.set(path, entry); + contextHashes.set(path, /** @type {string} */ (entry)); jobDone(); } }; @@ -2291,8 +2484,8 @@ class FileSystemInfo { } else { jobs++; /** - * @param {Error=} err error - * @param {ResolvedContextFileSystemInfoEntry=} entry entry + * @param {(Error | null)=} err error + * @param {(FileSystemInfoEntry | "ignore" | null)=} entry entry * @returns {void} */ const callback = (err, entry) => { @@ -2304,12 +2497,20 @@ class FileSystemInfo { } jobError(); } else { - contextTimestamps.set(path, entry); + contextTimestamps.set( + path, + /** @type {FileSystemInfoEntry | null} */ + (entry) + ); jobDone(); } }; if (cache !== undefined) { - this._resolveContextTimestamp(cache, callback); + this._resolveContextTimestamp( + /** @type {ContextFileSystemInfoEntry} */ + (cache), + callback + ); } else { this.getContextTimestamp(path, callback); } @@ -2323,6 +2524,9 @@ class FileSystemInfo { captureNonManaged(directories, managedContexts) ); } + /** + * @param {Set} capturedMissing captured missing + */ const processCapturedMissing = capturedMissing => { this._missingExistenceOptimization.optimize(snapshot, capturedMissing); for (const path of capturedMissing) { @@ -2382,6 +2586,10 @@ class FileSystemInfo { jobDone(); } else { // Fallback to normal snapshotting + /** + * @param {Set} set set + * @param {function(Set): void} fn fn + */ const process = (set, fn) => { if (set.size === 0) return; const captured = new Set(); @@ -2408,10 +2616,20 @@ class FileSystemInfo { */ mergeSnapshots(snapshot1, snapshot2) { const snapshot = new Snapshot(); - if (snapshot1.hasStartTime() && snapshot2.hasStartTime()) - snapshot.setStartTime(Math.min(snapshot1.startTime, snapshot2.startTime)); - else if (snapshot2.hasStartTime()) snapshot.startTime = snapshot2.startTime; - else if (snapshot1.hasStartTime()) snapshot.startTime = snapshot1.startTime; + if (snapshot1.hasStartTime() && snapshot2.hasStartTime()) { + snapshot.setStartTime( + Math.min( + /** @type {NonNullable} */ + (snapshot1.startTime), + /** @type {NonNullable} */ + (snapshot2.startTime) + ) + ); + } else if (snapshot2.hasStartTime()) { + snapshot.startTime = snapshot2.startTime; + } else if (snapshot1.hasStartTime()) { + snapshot.startTime = snapshot1.startTime; + } if (snapshot1.hasFileTimestamps() || snapshot2.hasFileTimestamps()) { snapshot.setFileTimestamps( mergeMaps(snapshot1.fileTimestamps, snapshot2.fileTimestamps) @@ -2504,7 +2722,7 @@ class FileSystemInfo { */ _checkSnapshotValidNoCache(snapshot, callback) { /** @type {number | undefined} */ - let startTime = undefined; + let startTime; if (snapshot.hasStartTime()) { startTime = snapshot.startTime; } @@ -2523,23 +2741,27 @@ class FileSystemInfo { callback(null, false); } }; + /** + * @param {string} path path + * @param {WebpackError} err err + */ const invalidWithError = (path, err) => { if (this._remainingLogs > 0) { - this._log(path, `error occurred: %s`, err); + this._log(path, "error occurred: %s", err); } invalid(); }; /** * @param {string} path file path - * @param {string} current current hash - * @param {string} snap snapshot hash + * @param {string | null} current current hash + * @param {string | null} snap snapshot hash * @returns {boolean} true, if ok */ const checkHash = (path, current, snap) => { if (current !== snap) { // If hash differ it's invalid if (this._remainingLogs > 0) { - this._log(path, `hashes differ (%s != %s)`, current, snap); + this._log(path, "hashes differ (%s != %s)", current, snap); } return false; } @@ -2567,40 +2789,38 @@ class FileSystemInfo { }; /** * @param {string} path file path - * @param {FileSystemInfoEntry} current current entry - * @param {FileSystemInfoEntry} snap entry from snapshot + * @param {FileSystemInfoEntry | null} c current entry + * @param {FileSystemInfoEntry | null} s entry from snapshot * @param {boolean} log log reason * @returns {boolean} true, if ok */ - const checkFile = (path, current, snap, log = true) => { - if (current === snap) return true; - if (!checkExistence(path, Boolean(current), Boolean(snap))) return false; - if (current) { + const checkFile = (path, c, s, log = true) => { + if (c === s) return true; + if (!checkExistence(path, Boolean(c), Boolean(s))) return false; + if (c) { // For existing items only - if (typeof startTime === "number" && current.safeTime > startTime) { + if (typeof startTime === "number" && c.safeTime > startTime) { // If a change happened after starting reading the item // this may no longer be valid if (log && this._remainingLogs > 0) { this._log( path, - `it may have changed (%d) after the start time of the snapshot (%d)`, - current.safeTime, + "it may have changed (%d) after the start time of the snapshot (%d)", + c.safeTime, startTime ); } return false; } - if ( - snap.timestamp !== undefined && - current.timestamp !== snap.timestamp - ) { + const snap = /** @type {FileSystemInfoEntry} */ (s); + if (snap.timestamp !== undefined && c.timestamp !== snap.timestamp) { // If we have a timestamp (it was a file or symlink) and it differs from current timestamp // it's invalid if (log && this._remainingLogs > 0) { this._log( path, - `timestamps differ (%d != %d)`, - current.timestamp, + "timestamps differ (%d != %d)", + c.timestamp, snap.timestamp ); } @@ -2611,40 +2831,41 @@ class FileSystemInfo { }; /** * @param {string} path file path - * @param {ResolvedContextFileSystemInfoEntry} current current entry - * @param {ResolvedContextFileSystemInfoEntry} snap entry from snapshot + * @param {ResolvedContextFileSystemInfoEntry | null} c current entry + * @param {ResolvedContextFileSystemInfoEntry | null} s entry from snapshot * @param {boolean} log log reason * @returns {boolean} true, if ok */ - const checkContext = (path, current, snap, log = true) => { - if (current === snap) return true; - if (!checkExistence(path, Boolean(current), Boolean(snap))) return false; - if (current) { + const checkContext = (path, c, s, log = true) => { + if (c === s) return true; + if (!checkExistence(path, Boolean(c), Boolean(s))) return false; + if (c) { // For existing items only - if (typeof startTime === "number" && current.safeTime > startTime) { + if (typeof startTime === "number" && c.safeTime > startTime) { // If a change happened after starting reading the item // this may no longer be valid if (log && this._remainingLogs > 0) { this._log( path, - `it may have changed (%d) after the start time of the snapshot (%d)`, - current.safeTime, + "it may have changed (%d) after the start time of the snapshot (%d)", + c.safeTime, startTime ); } return false; } + const snap = /** @type {ResolvedContextFileSystemInfoEntry} */ (s); if ( snap.timestampHash !== undefined && - current.timestampHash !== snap.timestampHash + c.timestampHash !== snap.timestampHash ) { // If we have a timestampHash (it was a directory) and it differs from current timestampHash // it's invalid if (log && this._remainingLogs > 0) { this._log( path, - `timestamps hashes differ (%s != %s)`, - current.timestampHash, + "timestamps hashes differ (%s != %s)", + c.timestampHash, snap.timestampHash ); } @@ -2654,11 +2875,16 @@ class FileSystemInfo { return true; }; if (snapshot.hasChildren()) { + /** + * @param {(WebpackError | null)=} err err + * @param {boolean=} result result + * @returns {void} + */ const childCallback = (err, result) => { if (err || !result) return invalid(); - else jobDone(); + jobDone(); }; - for (const child of snapshot.children) { + for (const child of /** @type {Children} */ (snapshot.children)) { const cache = this._snapshotCache.get(child); if (cache !== undefined) { this._statTestedChildrenCached++; @@ -2680,7 +2906,9 @@ class FileSystemInfo { } } if (snapshot.hasFileTimestamps()) { - const { fileTimestamps } = snapshot; + const fileTimestamps = + /** @type {FileTimestamps} */ + (snapshot.fileTimestamps); this._statTestedEntries += fileTimestamps.size; for (const [path, ts] of fileTimestamps) { const cache = this._fileTimestamps.get(path); @@ -2693,7 +2921,13 @@ class FileSystemInfo { jobs++; this.fileTimestampQueue.add(path, (err, entry) => { if (err) return invalidWithError(path, err); - if (!checkFile(path, entry, ts)) { + if ( + !checkFile( + path, + /** @type {FileSystemInfoEntry | null} */ (entry), + ts + ) + ) { invalid(); } else { jobDone(); @@ -2704,20 +2938,19 @@ class FileSystemInfo { } /** * @param {string} path file path - * @param {string} hash hash + * @param {string | null} hash hash */ const processFileHashSnapshot = (path, hash) => { const cache = this._fileHashes.get(path); if (cache !== undefined) { if (cache !== "ignore" && !checkHash(path, cache, hash)) { invalid(); - return; } } else { jobs++; this.fileHashQueue.add(path, (err, entry) => { if (err) return invalidWithError(path, err); - if (!checkHash(path, entry, hash)) { + if (!checkHash(path, /** @type {string} */ (entry), hash)) { invalid(); } else { jobDone(); @@ -2726,14 +2959,14 @@ class FileSystemInfo { } }; if (snapshot.hasFileHashes()) { - const { fileHashes } = snapshot; + const fileHashes = /** @type {FileHashes} */ (snapshot.fileHashes); this._statTestedEntries += fileHashes.size; for (const [path, hash] of fileHashes) { processFileHashSnapshot(path, hash); } } if (snapshot.hasFileTshs()) { - const { fileTshs } = snapshot; + const fileTshs = /** @type {FileTshs} */ (snapshot.fileTshs); this._statTestedEntries += fileTshs.size; for (const [path, tsh] of fileTshs) { if (typeof tsh === "string") { @@ -2748,7 +2981,15 @@ class FileSystemInfo { jobs++; this.fileTimestampQueue.add(path, (err, entry) => { if (err) return invalidWithError(path, err); - if (!checkFile(path, entry, tsh, false)) { + if ( + !checkFile( + path, + /** @type {FileSystemInfoEntry | null} */ + (entry), + tsh, + false + ) + ) { processFileHashSnapshot(path, tsh && tsh.hash); } jobDone(); @@ -2758,7 +2999,9 @@ class FileSystemInfo { } } if (snapshot.hasContextTimestamps()) { - const { contextTimestamps } = snapshot; + const contextTimestamps = + /** @type {ContextTimestamps} */ + (snapshot.contextTimestamps); this._statTestedEntries += contextTimestamps.size; for (const [path, ts] of contextTimestamps) { const cache = this._contextTimestamps.get(path); @@ -2775,26 +3018,41 @@ class FileSystemInfo { } else { jobs++; /** - * @param {Error=} err error - * @param {ResolvedContextFileSystemInfoEntry=} entry entry + * @param {(WebpackError | null)=} err error + * @param {(ResolvedContextFileSystemInfoEntry | "ignore" | null)=} entry entry * @returns {void} */ const callback = (err, entry) => { if (err) return invalidWithError(path, err); - if (!checkContext(path, entry, ts)) { + if ( + !checkContext( + path, + /** @type {ResolvedContextFileSystemInfoEntry | null} */ + (entry), + ts + ) + ) { invalid(); } else { jobDone(); } }; if (cache !== undefined) { - this._resolveContextTimestamp(cache, callback); + this._resolveContextTimestamp( + /** @type {ContextFileSystemInfoEntry} */ + (cache), + callback + ); } else { this.getContextTimestamp(path, callback); } } } } + /** + * @param {string} path path + * @param {string | null} hash hash + */ const processContextHashSnapshot = (path, hash) => { const cache = this._contextHashes.get(path); let resolved; @@ -2804,13 +3062,17 @@ class FileSystemInfo { ) { if (!checkHash(path, resolved, hash)) { invalid(); - return; } } else { jobs++; + /** + * @param {(WebpackError | null)=} err err + * @param {string=} entry entry + * @returns {void} + */ const callback = (err, entry) => { if (err) return invalidWithError(path, err); - if (!checkHash(path, entry, hash)) { + if (!checkHash(path, /** @type {string} */ (entry), hash)) { invalid(); } else { jobDone(); @@ -2824,14 +3086,16 @@ class FileSystemInfo { } }; if (snapshot.hasContextHashes()) { - const { contextHashes } = snapshot; + const contextHashes = + /** @type {ContextHashes} */ + (snapshot.contextHashes); this._statTestedEntries += contextHashes.size; for (const [path, hash] of contextHashes) { processContextHashSnapshot(path, hash); } } if (snapshot.hasContextTshs()) { - const { contextTshs } = snapshot; + const contextTshs = /** @type {ContextTshs} */ (snapshot.contextTshs); this._statTestedEntries += contextTshs.size; for (const [path, tsh] of contextTshs) { if (typeof tsh === "string") { @@ -2844,25 +3108,46 @@ class FileSystemInfo { cache !== undefined && (resolved = getResolvedTimestamp(cache)) !== undefined ) { - if (!checkContext(path, resolved, tsh, false)) { + if ( + !checkContext( + path, + /** @type {ResolvedContextFileSystemInfoEntry | null} */ + (resolved), + tsh, + false + ) + ) { processContextHashSnapshot(path, tsh && tsh.hash); } } else { jobs++; /** - * @param {Error=} err error - * @param {ResolvedContextFileSystemInfoEntry=} entry entry + * @param {(WebpackError | null)=} err error + * @param {(ResolvedContextFileSystemInfoEntry | "ignore" | null)=} entry entry * @returns {void} */ const callback = (err, entry) => { if (err) return invalidWithError(path, err); - if (!checkContext(path, entry, tsh, false)) { + if ( + !checkContext( + path, + // TODO: test with `"ignore"` + /** @type {ResolvedContextFileSystemInfoEntry | null} */ + (entry), + tsh, + false + ) + ) { processContextHashSnapshot(path, tsh && tsh.hash); } jobDone(); }; if (cache !== undefined) { - this._resolveContextTimestamp(cache, callback); + this._resolveContextTimestamp( + /** @type {ContextFileSystemInfoEntry} */ + (cache), + callback + ); } else { this.getContextTimestamp(path, callback); } @@ -2871,7 +3156,9 @@ class FileSystemInfo { } } if (snapshot.hasMissingExistence()) { - const { missingExistence } = snapshot; + const missingExistence = + /** @type {MissingExistence} */ + (snapshot.missingExistence); this._statTestedEntries += missingExistence.size; for (const [path, existence] of missingExistence) { const cache = this._fileTimestamps.get(path); @@ -2897,7 +3184,9 @@ class FileSystemInfo { } } if (snapshot.hasManagedItemInfo()) { - const { managedItemInfo } = snapshot; + const managedItemInfo = + /** @type {ManagedItemInfo} */ + (snapshot.managedItemInfo); this._statTestedEntries += managedItemInfo.size; for (const [path, info] of managedItemInfo) { const cache = this._managedItems.get(path); @@ -2910,7 +3199,7 @@ class FileSystemInfo { jobs++; this.managedItemQueue.add(path, (err, entry) => { if (err) return invalidWithError(path, err); - if (!checkHash(path, entry, info)) { + if (!checkHash(path, /** @type {string} */ (entry), info)) { invalid(); } else { jobDone(); @@ -2932,17 +3221,21 @@ class FileSystemInfo { } } + /** + * @type {Processor} + * @private + */ _readFileTimestamp(path, callback) { - this.fs.stat(path, (err, stat) => { + this.fs.stat(path, (err, _stat) => { if (err) { if (err.code === "ENOENT") { this._fileTimestamps.set(path, null); this._cachedDeprecatedFileTimestamps = undefined; return callback(null, null); } - return callback(err); + return callback(/** @type {WebpackError} */ (err)); } - + const stat = /** @type {IStats} */ (_stat); let ts; if (stat.isDirectory()) { ts = { @@ -2950,7 +3243,7 @@ class FileSystemInfo { timestamp: undefined }; } else { - const mtime = +stat.mtime; + const mtime = Number(stat.mtime); if (mtime) applyMtime(mtime); @@ -2967,6 +3260,10 @@ class FileSystemInfo { }); } + /** + * @type {Processor} + * @private + */ _readFileHash(path, callback) { this.fs.readFile(path, (err, content) => { if (err) { @@ -2979,11 +3276,12 @@ class FileSystemInfo { return callback(null, null); } if (err.code === "ERR_FS_FILE_TOO_LARGE") { - this.logger.warn(`Ignoring ${path} for hashing as it's very large`); + /** @type {Logger} */ + (this.logger).warn(`Ignoring ${path} for hashing as it's very large`); this._fileHashes.set(path, "too large"); return callback(null, "too large"); } - return callback(err); + return callback(/** @type {WebpackError} */ (err)); } const hash = createHash(this._hashFunction); @@ -2998,45 +3296,54 @@ class FileSystemInfo { }); } + /** + * @param {string} path path + * @param {function(WebpackError | null, TimestampAndHash=) : void} callback callback + * @private + */ _getFileTimestampAndHash(path, callback) { + /** + * @param {string} hash hash + * @returns {void} + */ const continueWithHash = hash => { const cache = this._fileTimestamps.get(path); if (cache !== undefined) { if (cache !== "ignore") { + /** @type {TimestampAndHash} */ const result = { - ...cache, + .../** @type {FileSystemInfoEntry} */ (cache), hash }; this._fileTshs.set(path, result); return callback(null, result); - } else { - this._fileTshs.set(path, hash); - return callback(null, hash); } - } else { - this.fileTimestampQueue.add(path, (err, entry) => { - if (err) { - return callback(err); - } - const result = { - ...entry, - hash - }; - this._fileTshs.set(path, result); - return callback(null, result); - }); + this._fileTshs.set(path, hash); + return callback(null, /** @type {TODO} */ (hash)); } + this.fileTimestampQueue.add(path, (err, entry) => { + if (err) { + return callback(err); + } + /** @type {TimestampAndHash} */ + const result = { + .../** @type {FileSystemInfoEntry} */ (entry), + hash + }; + this._fileTshs.set(path, result); + return callback(null, result); + }); }; const cache = this._fileHashes.get(path); if (cache !== undefined) { - continueWithHash(cache); + continueWithHash(/** @type {string} */ (cache)); } else { this.fileHashQueue.add(path, (err, entry) => { if (err) { return callback(err); } - continueWithHash(entry); + continueWithHash(/** @type {string} */ (entry)); }); } } @@ -3048,9 +3355,9 @@ class FileSystemInfo { * @param {string} options.path path * @param {function(string): ItemType} options.fromImmutablePath called when context item is an immutable path * @param {function(string): ItemType} options.fromManagedItem called when context item is a managed path - * @param {function(string, string, function(Error=, ItemType=): void): void} options.fromSymlink called when context item is a symlink - * @param {function(string, IStats, function(Error=, ItemType=): void): void} options.fromFile called when context item is a file - * @param {function(string, IStats, function(Error=, ItemType=): void): void} options.fromDirectory called when context item is a directory + * @param {function(string, string, function((WebpackError | null)=, ItemType=): void): void} options.fromSymlink called when context item is a symlink + * @param {function(string, IStats, function((WebpackError | null)=, (ItemType | null)=): void): void} options.fromFile called when context item is a file + * @param {function(string, IStats, function((WebpackError | null)=, ItemType=): void): void} options.fromDirectory called when context item is a directory * @param {function(string[], ItemType[]): T} options.reduce called from all context items * @param {function((Error | null)=, (T | null)=): void} callback callback */ @@ -3101,7 +3408,10 @@ class FileSystemInfo { // construct timestampHash from managed info return this.managedItemQueue.add(managedItem, (err, info) => { if (err) return callback(err); - return callback(null, fromManagedItem(info)); + return callback( + null, + fromManagedItem(/** @type {string} */ (info)) + ); }); } } @@ -3113,15 +3423,20 @@ class FileSystemInfo { // construct timestampHash from managed info return this.managedItemQueue.add(managedItem, (err, info) => { if (err) return callback(err); - return callback(null, fromManagedItem(info)); + return callback( + null, + fromManagedItem(/** @type {string} */ (info)) + ); }); } } } - lstatReadlinkAbsolute(this.fs, child, (err, stat) => { + lstatReadlinkAbsolute(this.fs, child, (err, _stat) => { if (err) return callback(err); + const stat = /** @type {IStats | string} */ (_stat); + if (typeof stat === "string") { return fromSymlink(child, stat, callback); } @@ -3137,27 +3452,37 @@ class FileSystemInfo { }, (err, results) => { if (err) return callback(err); - const result = reduce(files, results); + const result = reduce(files, /** @type {ItemType[]} */ (results)); callback(null, result); } ); }); } + /** + * @type {Processor} + * @private + */ _readContextTimestamp(path, callback) { this._readContext( { path, - fromImmutablePath: () => null, + fromImmutablePath: () => + /** @type {ContextFileSystemInfoEntry | FileSystemInfoEntry | "ignore" | null} */ + (null), fromManagedItem: info => ({ safeTime: 0, timestampHash: info }), fromSymlink: (file, target, callback) => { - callback(null, { - timestampHash: target, - symlinks: new Set([target]) - }); + callback( + null, + /** @type {ContextFileSystemInfoEntry} */ + ({ + timestampHash: target, + symlinks: new Set([target]) + }) + ); }, fromFile: (file, stat, callback) => { // Prefer the cached value over our new stat to report consistent results @@ -3165,10 +3490,11 @@ class FileSystemInfo { if (cache !== undefined) return callback(null, cache === "ignore" ? null : cache); - const mtime = +stat.mtime; + const mtime = Number(stat.mtime); if (mtime) applyMtime(mtime); + /** @type {FileSystemInfoEntry} */ const ts = { safeTime: mtime ? mtime + FS_ACCURACY : Infinity, timestamp: mtime @@ -3186,27 +3512,42 @@ class FileSystemInfo { }); }, reduce: (files, tsEntries) => { - let symlinks = undefined; + let symlinks; const hash = createHash(this._hashFunction); for (const file of files) hash.update(file); let safeTime = 0; - for (const entry of tsEntries) { - if (!entry) { + for (const _e of tsEntries) { + if (!_e) { hash.update("n"); continue; } - if (entry.timestamp) { + const entry = + /** @type {FileSystemInfoEntry | ContextFileSystemInfoEntry} */ + (_e); + if (/** @type {FileSystemInfoEntry} */ (entry).timestamp) { hash.update("f"); - hash.update(`${entry.timestamp}`); - } else if (entry.timestampHash) { + hash.update( + `${/** @type {FileSystemInfoEntry} */ (entry).timestamp}` + ); + } else if ( + /** @type {ContextFileSystemInfoEntry} */ (entry).timestampHash + ) { hash.update("d"); - hash.update(`${entry.timestampHash}`); + hash.update( + `${/** @type {ContextFileSystemInfoEntry} */ (entry).timestampHash}` + ); } - if (entry.symlinks !== undefined) { + if ( + /** @type {ContextFileSystemInfoEntry} */ + (entry).symlinks !== undefined + ) { if (symlinks === undefined) symlinks = new Set(); - addAll(entry.symlinks, symlinks); + addAll( + /** @type {ContextFileSystemInfoEntry} */ (entry).symlinks, + symlinks + ); } if (entry.safeTime) { safeTime = Math.max(safeTime, entry.safeTime); @@ -3214,7 +3555,7 @@ class FileSystemInfo { } const digest = /** @type {string} */ (hash.digest("hex")); - + /** @type {ContextFileSystemInfoEntry} */ const result = { safeTime, timestampHash: digest @@ -3224,7 +3565,7 @@ class FileSystemInfo { } }, (err, result) => { - if (err) return callback(err); + if (err) return callback(/** @type {WebpackError} */ (err)); this._contextTimestamps.set(path, result); this._cachedDeprecatedContextTimestamps = undefined; @@ -3235,7 +3576,7 @@ class FileSystemInfo { /** * @param {ContextFileSystemInfoEntry} entry entry - * @param {function((Error | null)=, ResolvedContextFileSystemInfoEntry=): void} callback callback + * @param {function((WebpackError | null)=, (ResolvedContextFileSystemInfoEntry | "ignore" | null)=): void} callback callback * @returns {void} */ _resolveContextTimestamp(entry, callback) { @@ -3243,13 +3584,13 @@ class FileSystemInfo { const hashes = []; let safeTime = 0; processAsyncTree( - entry.symlinks, + /** @type {NonNullable} */ (entry.symlinks), 10, (target, push, callback) => { this._getUnresolvedContextTimestamp(target, (err, entry) => { if (err) return callback(err); if (entry && entry !== "ignore") { - hashes.push(entry.timestampHash); + hashes.push(/** @type {string} */ (entry.timestampHash)); if (entry.safeTime) { safeTime = Math.max(safeTime, entry.safeTime); } @@ -3261,9 +3602,9 @@ class FileSystemInfo { }); }, err => { - if (err) return callback(err); + if (err) return callback(/** @type {WebpackError} */ (err)); const hash = createHash(this._hashFunction); - hash.update(entry.timestampHash); + hash.update(/** @type {string} */ (entry.timestampHash)); if (entry.safeTime) { safeTime = Math.max(safeTime, entry.safeTime); } @@ -3282,17 +3623,25 @@ class FileSystemInfo { ); } + /** + * @type {Processor} + * @private + */ _readContextHash(path, callback) { this._readContext( { path, - fromImmutablePath: () => "", + fromImmutablePath: () => /** @type {ContextHash | ""} */ (""), fromManagedItem: info => info || "", fromSymlink: (file, target, callback) => { - callback(null, { - hash: target, - symlinks: new Set([target]) - }); + callback( + null, + /** @type {ContextHash} */ + ({ + hash: target, + symlinks: new Set([target]) + }) + ); }, fromFile: (file, stat, callback) => this.getFileHash(file, (err, hash) => { @@ -3311,7 +3660,7 @@ class FileSystemInfo { * @returns {ContextHash} reduced hash */ reduce: (files, fileHashes) => { - let symlinks = undefined; + let symlinks; const hash = createHash(this._hashFunction); for (const file of files) hash.update(file); @@ -3327,6 +3676,7 @@ class FileSystemInfo { } } + /** @type {ContextHash} */ const result = { hash: /** @type {string} */ (hash.digest("hex")) }; @@ -3334,8 +3684,9 @@ class FileSystemInfo { return result; } }, - (err, result) => { - if (err) return callback(err); + (err, _result) => { + if (err) return callback(/** @type {WebpackError} */ (err)); + const result = /** @type {ContextHash} */ (_result); this._contextHashes.set(path, result); return callback(null, result); } @@ -3344,14 +3695,14 @@ class FileSystemInfo { /** * @param {ContextHash} entry context hash - * @param {function((WebpackError | null)=, string=): void} callback callback + * @param {function(WebpackError | null, string=): void} callback callback * @returns {void} */ _resolveContextHash(entry, callback) { /** @type {string[]} */ const hashes = []; processAsyncTree( - entry.symlinks, + /** @type {NonNullable} */ (entry.symlinks), 10, (target, push, callback) => { this._getUnresolvedContextHash(target, (err, hash) => { @@ -3381,15 +3732,19 @@ class FileSystemInfo { ); } + /** + * @type {Processor} + * @private + */ _readContextTimestampAndHash(path, callback) { + /** + * @param {ContextFileSystemInfoEntry | "ignore" | null} timestamp timestamp + * @param {ContextHash} hash hash + */ const finalize = (timestamp, hash) => { const result = - timestamp === "ignore" - ? hash - : { - ...timestamp, - ...hash - }; + /** @type {ContextTimestampAndHash} */ + (timestamp === "ignore" ? hash : { ...timestamp, ...hash }); this._contextTshs.set(path, result); callback(null, result); }; @@ -3401,107 +3756,116 @@ class FileSystemInfo { } else { this.contextTimestampQueue.add(path, (err, entry) => { if (err) return callback(err); - finalize(entry, cachedHash); + finalize( + /** @type {ContextFileSystemInfoEntry} */ + (entry), + cachedHash + ); }); } + } else if (cachedTimestamp !== undefined) { + this.contextHashQueue.add(path, (err, entry) => { + if (err) return callback(err); + finalize(cachedTimestamp, /** @type {ContextHash} */ (entry)); + }); } else { - if (cachedTimestamp !== undefined) { - this.contextHashQueue.add(path, (err, entry) => { - if (err) return callback(err); - finalize(cachedTimestamp, entry); - }); - } else { - this._readContext( - { - path, - fromImmutablePath: () => null, - fromManagedItem: info => ({ - safeTime: 0, - timestampHash: info, - hash: info || "" - }), - fromSymlink: (file, target, callback) => { - callback(null, { + this._readContext( + { + path, + fromImmutablePath: () => + /** @type {ContextTimestampAndHash | null} */ (null), + fromManagedItem: info => ({ + safeTime: 0, + timestampHash: info, + hash: info || "" + }), + fromSymlink: (file, target, callback) => { + callback( + null, + /** @type {TODO} */ + ({ timestampHash: target, hash: target, symlinks: new Set([target]) - }); - }, - fromFile: (file, stat, callback) => { - this._getFileTimestampAndHash(file, callback); - }, - fromDirectory: (directory, stat, callback) => { - this.contextTshQueue.increaseParallelism(); - this.contextTshQueue.add(directory, (err, result) => { - this.contextTshQueue.decreaseParallelism(); - callback(err, result); - }); - }, - /** - * @param {string[]} files files - * @param {(Partial & Partial | string | null)[]} results results - * @returns {ContextTimestampAndHash} tsh - */ - reduce: (files, results) => { - let symlinks = undefined; - - const tsHash = createHash(this._hashFunction); - const hash = createHash(this._hashFunction); - - for (const file of files) { - tsHash.update(file); - hash.update(file); - } - let safeTime = 0; - for (const entry of results) { - if (!entry) { - tsHash.update("n"); - continue; - } - if (typeof entry === "string") { - tsHash.update("n"); - hash.update(entry); - continue; - } - if (entry.timestamp) { - tsHash.update("f"); - tsHash.update(`${entry.timestamp}`); - } else if (entry.timestampHash) { - tsHash.update("d"); - tsHash.update(`${entry.timestampHash}`); - } - if (entry.symlinks !== undefined) { - if (symlinks === undefined) symlinks = new Set(); - addAll(entry.symlinks, symlinks); - } - if (entry.safeTime) { - safeTime = Math.max(safeTime, entry.safeTime); - } - hash.update(entry.hash); - } - - const result = { - safeTime, - timestampHash: /** @type {string} */ (tsHash.digest("hex")), - hash: /** @type {string} */ (hash.digest("hex")) - }; - if (symlinks) result.symlinks = symlinks; - return result; - } + }) + ); }, - (err, result) => { - if (err) return callback(err); - this._contextTshs.set(path, result); - return callback(null, result); + fromFile: (file, stat, callback) => { + this._getFileTimestampAndHash(file, callback); + }, + fromDirectory: (directory, stat, callback) => { + this.contextTshQueue.increaseParallelism(); + this.contextTshQueue.add(directory, (err, result) => { + this.contextTshQueue.decreaseParallelism(); + callback(err, result); + }); + }, + /** + * @param {string[]} files files + * @param {(Partial & Partial | string | null)[]} results results + * @returns {ContextTimestampAndHash} tsh + */ + reduce: (files, results) => { + let symlinks; + + const tsHash = createHash(this._hashFunction); + const hash = createHash(this._hashFunction); + + for (const file of files) { + tsHash.update(file); + hash.update(file); + } + let safeTime = 0; + for (const entry of results) { + if (!entry) { + tsHash.update("n"); + continue; + } + if (typeof entry === "string") { + tsHash.update("n"); + hash.update(entry); + continue; + } + if (entry.timestamp) { + tsHash.update("f"); + tsHash.update(`${entry.timestamp}`); + } else if (entry.timestampHash) { + tsHash.update("d"); + tsHash.update(`${entry.timestampHash}`); + } + if (entry.symlinks !== undefined) { + if (symlinks === undefined) symlinks = new Set(); + addAll(entry.symlinks, symlinks); + } + if (entry.safeTime) { + safeTime = Math.max(safeTime, entry.safeTime); + } + hash.update(/** @type {string} */ (entry.hash)); + } + + /** @type {ContextTimestampAndHash} */ + const result = { + safeTime, + timestampHash: /** @type {string} */ (tsHash.digest("hex")), + hash: /** @type {string} */ (hash.digest("hex")) + }; + if (symlinks) result.symlinks = symlinks; + return result; } - ); - } + }, + (err, _result) => { + if (err) return callback(/** @type {WebpackError} */ (err)); + const result = /** @type {ContextTimestampAndHash} */ (_result); + this._contextTshs.set(path, result); + return callback(null, result); + } + ); } } /** * @param {ContextTimestampAndHash} entry entry - * @param {function((Error | null)=, ResolvedContextTimestampAndHash=): void} callback callback + * @param {ProcessorCallback} callback callback * @returns {void} */ _resolveContextTsh(entry, callback) { @@ -3511,7 +3875,7 @@ class FileSystemInfo { const tsHashes = []; let safeTime = 0; processAsyncTree( - entry.symlinks, + /** @type {NonNullable} */ (entry.symlinks), 10, (target, push, callback) => { this._getUnresolvedContextTsh(target, (err, entry) => { @@ -3530,7 +3894,7 @@ class FileSystemInfo { }); }, err => { - if (err) return callback(err); + if (err) return callback(/** @type {WebpackError} */ (err)); const hash = createHash(this._hashFunction); const tsHash = createHash(this._hashFunction); hash.update(entry.hash); @@ -3558,13 +3922,17 @@ class FileSystemInfo { ); } + /** + * @type {Processor>} + * @private + */ _getManagedItemDirectoryInfo(path, callback) { this.fs.readdir(path, (err, elements) => { if (err) { if (err.code === "ENOENT" || err.code === "ENOTDIR") { return callback(null, EMPTY_SET); } - return callback(err); + return callback(/** @type {WebpackError} */ (err)); } const set = new Set( /** @type {string[]} */ (elements).map(element => @@ -3575,13 +3943,17 @@ class FileSystemInfo { }); } + /** + * @type {Processor} + * @private + */ _getManagedItemInfo(path, callback) { const dir = dirname(this.fs, path); this.managedItemDirectoryQueue.add(dir, (err, elements) => { if (err) { return callback(err); } - if (!elements.has(path)) { + if (!(/** @type {Set} */ (elements).has(path))) { // file or directory doesn't exist this._managedItems.set(path, "*missing"); return callback(null, "*missing"); @@ -3606,28 +3978,29 @@ class FileSystemInfo { this.fs.readdir(path, (err, elements) => { if ( !err && - elements.length === 1 && - elements[0] === "node_modules" + /** @type {string[]} */ (elements).length === 1 && + /** @type {string[]} */ (elements)[0] === "node_modules" ) { // This is only a grouping folder e.g. used by yarn // we are only interested in existence of this special directory this._managedItems.set(path, "*nested"); return callback(null, "*nested"); } - this.logger.warn( + /** @type {Logger} */ + (this.logger).warn( `Managed item ${path} isn't a directory or doesn't contain a package.json (see snapshot.managedPaths option)` ); return callback(); }); return; } - return callback(err); + return callback(/** @type {WebpackError} */ (err)); } let data; try { data = JSON.parse(/** @type {Buffer} */ (content).toString("utf-8")); - } catch (e) { - return callback(e); + } catch (parseErr) { + return callback(/** @type {WebpackError} */ (parseErr)); } if (!data.name) { /** @type {Logger} */ diff --git a/node_modules/webpack/lib/FlagAllModulesAsUsedPlugin.js b/node_modules/webpack/lib/FlagAllModulesAsUsedPlugin.js index a7a3625..eb3ee4c 100644 --- a/node_modules/webpack/lib/FlagAllModulesAsUsedPlugin.js +++ b/node_modules/webpack/lib/FlagAllModulesAsUsedPlugin.js @@ -30,7 +30,7 @@ class FlagAllModulesAsUsedPlugin { const moduleGraph = compilation.moduleGraph; compilation.hooks.optimizeDependencies.tap(PLUGIN_NAME, modules => { /** @type {RuntimeSpec} */ - let runtime = undefined; + let runtime; for (const [name, { options }] of compilation.entries) { runtime = mergeRuntimeOwned( runtime, diff --git a/node_modules/webpack/lib/FlagDependencyExportsPlugin.js b/node_modules/webpack/lib/FlagDependencyExportsPlugin.js index 830b3f1..aacbb3d 100644 --- a/node_modules/webpack/lib/FlagDependencyExportsPlugin.js +++ b/node_modules/webpack/lib/FlagDependencyExportsPlugin.js @@ -54,14 +54,15 @@ class FlagDependencyExportsPlugin { const exportsInfo = moduleGraph.getExportsInfo(module); // If the module doesn't have an exportsType, it's a module // without declared exports. - if (!module.buildMeta || !module.buildMeta.exportsType) { - if (exportsInfo.otherExportsInfo.provided !== null) { - // It's a module without declared exports - statNoExports++; - exportsInfo.setHasProvideInfo(); - exportsInfo.setUnknownExportsProvided(); - return callback(); - } + if ( + (!module.buildMeta || !module.buildMeta.exportsType) && + exportsInfo.otherExportsInfo.provided !== null + ) { + // It's a module without declared exports + statNoExports++; + exportsInfo.setHasProvideInfo(); + exportsInfo.setUnknownExportsProvided(); + return callback(); } // If the module has no hash, it's uncacheable if ( @@ -189,9 +190,9 @@ class FlagDependencyExportsPlugin { let name; let canMangle = globalCanMangle; let terminalBinding = globalTerminalBinding; - let exports = undefined; + let exports; let from = globalFrom; - let fromExport = undefined; + let fromExport; let priority = globalPriority; let hidden = false; if (typeof exportNameOrSpec === "string") { @@ -261,7 +262,7 @@ class FlagDependencyExportsPlugin { // Recalculate target exportsInfo const target = exportInfo.getTarget(moduleGraph); - let targetExportsInfo = undefined; + let targetExportsInfo; if (target) { const targetModuleExportsInfo = moduleGraph.getExportsInfo(target.module); diff --git a/node_modules/webpack/lib/FlagDependencyUsagePlugin.js b/node_modules/webpack/lib/FlagDependencyUsagePlugin.js index 3b64240..247dbf9 100644 --- a/node_modules/webpack/lib/FlagDependencyUsagePlugin.js +++ b/node_modules/webpack/lib/FlagDependencyUsagePlugin.js @@ -308,7 +308,7 @@ class FlagDependencyUsagePlugin { } }; /** @type {RuntimeSpec} */ - let globalRuntime = undefined; + let globalRuntime; for (const [ entryName, { dependencies: deps, includeDependencies: includeDeps, options } diff --git a/node_modules/webpack/lib/Generator.js b/node_modules/webpack/lib/Generator.js index 8b7bbdb..2764305 100644 --- a/node_modules/webpack/lib/Generator.js +++ b/node_modules/webpack/lib/Generator.js @@ -14,6 +14,7 @@ /** @typedef {import("./DependencyTemplates")} DependencyTemplates */ /** @typedef {import("./Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */ /** @typedef {import("./Module").RuntimeRequirements} RuntimeRequirements */ +/** @typedef {import("./Module").SourceTypes} SourceTypes */ /** @typedef {import("./ModuleGraph")} ModuleGraph */ /** @typedef {import("./NormalModule")} NormalModule */ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */ @@ -42,9 +43,6 @@ * @property {RuntimeTemplate=} runtimeTemplate */ -/** - * - */ class Generator { /** * @param {Record} map map of types @@ -58,7 +56,7 @@ class Generator { /** * @abstract * @param {NormalModule} module fresh module - * @returns {Set} available types (do not mutate) + * @returns {SourceTypes} available types (do not mutate) */ getTypes(module) { const AbstractMethodError = require("./AbstractMethodError"); @@ -82,7 +80,7 @@ class Generator { * @abstract * @param {NormalModule} module module for which the code should be generated * @param {GenerateContext} generateContext context for generate - * @returns {Source} generated code + * @returns {Source | null} generated code */ generate( module, @@ -122,7 +120,7 @@ class ByTypeGenerator extends Generator { /** * @param {NormalModule} module fresh module - * @returns {Set} available types (do not mutate) + * @returns {SourceTypes} available types (do not mutate) */ getTypes(module) { return this._types; @@ -133,8 +131,8 @@ class ByTypeGenerator extends Generator { * @param {string=} type source type * @returns {number} estimate size of the module */ - getSize(module, type) { - const t = type || "javascript"; + getSize(module, type = "javascript") { + const t = type; const generator = this.map[t]; return generator ? generator.getSize(module, t) : 0; } @@ -142,7 +140,7 @@ class ByTypeGenerator extends Generator { /** * @param {NormalModule} module module for which the code should be generated * @param {GenerateContext} generateContext context for generate - * @returns {Source} generated code + * @returns {Source | null} generated code */ generate(module, generateContext) { const type = generateContext.type; diff --git a/node_modules/webpack/lib/GraphHelpers.js b/node_modules/webpack/lib/GraphHelpers.js index 2925ad7..65d7087 100644 --- a/node_modules/webpack/lib/GraphHelpers.js +++ b/node_modules/webpack/lib/GraphHelpers.js @@ -33,5 +33,6 @@ const connectChunkGroupParentAndChild = (parent, child) => { } }; -exports.connectChunkGroupAndChunk = connectChunkGroupAndChunk; -exports.connectChunkGroupParentAndChild = connectChunkGroupParentAndChild; +module.exports.connectChunkGroupAndChunk = connectChunkGroupAndChunk; +module.exports.connectChunkGroupParentAndChild = + connectChunkGroupParentAndChild; diff --git a/node_modules/webpack/lib/HookWebpackError.js b/node_modules/webpack/lib/HookWebpackError.js index 91dd042..8470240 100644 --- a/node_modules/webpack/lib/HookWebpackError.js +++ b/node_modules/webpack/lib/HookWebpackError.js @@ -55,18 +55,16 @@ module.exports.makeWebpackError = makeWebpackError; * @param {string} hook name of hook * @returns {Callback} generic callback */ -const makeWebpackErrorCallback = (callback, hook) => { - return (err, result) => { - if (err) { - if (err instanceof WebpackError) { - callback(err); - return; - } - callback(new HookWebpackError(err, hook)); +const makeWebpackErrorCallback = (callback, hook) => (err, result) => { + if (err) { + if (err instanceof WebpackError) { + callback(err); return; } - callback(null, result); - }; + callback(new HookWebpackError(err, hook)); + return; + } + callback(null, result); }; module.exports.makeWebpackErrorCallback = makeWebpackErrorCallback; diff --git a/node_modules/webpack/lib/HotModuleReplacementPlugin.js b/node_modules/webpack/lib/HotModuleReplacementPlugin.js index 3f64dc5..94169bc 100644 --- a/node_modules/webpack/lib/HotModuleReplacementPlugin.js +++ b/node_modules/webpack/lib/HotModuleReplacementPlugin.js @@ -44,8 +44,11 @@ const { /** @typedef {import("estree").CallExpression} CallExpression */ /** @typedef {import("estree").Expression} Expression */ +/** @typedef {import("estree").SpreadElement} SpreadElement */ +/** @typedef {import("../declarations/WebpackOptions").OutputNormalized} OutputNormalized */ /** @typedef {import("./Chunk")} Chunk */ /** @typedef {import("./Chunk").ChunkId} ChunkId */ +/** @typedef {import("./ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("./Compilation").AssetInfo} AssetInfo */ /** @typedef {import("./Compiler")} Compiler */ /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */ @@ -58,11 +61,12 @@ const { /** * @typedef {object} HMRJavascriptParserHooks - * @property {SyncBailHook<[TODO, string[]], void>} hotAcceptCallback - * @property {SyncBailHook<[TODO, string[]], void>} hotAcceptWithoutCallback + * @property {SyncBailHook<[Expression | SpreadElement, string[]], void>} hotAcceptCallback + * @property {SyncBailHook<[CallExpression, string[]], void>} hotAcceptWithoutCallback */ -/** @typedef {Map, removedChunkIds: Set, removedModules: Set, filename: string, assetInfo: AssetInfo }>} HotUpdateMainContentByRuntime */ +/** @typedef {{ updatedChunkIds: Set, removedChunkIds: Set, removedModules: Set, filename: string, assetInfo: AssetInfo }} HotUpdateMainContentByRuntimeItem */ +/** @typedef {Map} HotUpdateMainContentByRuntime */ /** @type {WeakMap} */ const parserHooksMap = new WeakMap(); @@ -130,6 +134,7 @@ class HotModuleReplacementPlugin { /** @type {BuildInfo} */ (module.buildInfo).moduleConcatenationBailout = "Hot Module Replacement"; + if (expr.arguments.length >= 1) { const arg = parser.evaluateExpression(expr.arguments[0]); /** @type {BasicEvaluatedExpression[]} */ @@ -142,9 +147,9 @@ class HotModuleReplacementPlugin { (arg.items).filter(param => param.isString()); } /** @type {string[]} */ - let requests = []; + const requests = []; if (params.length > 0) { - params.forEach((param, idx) => { + for (const [idx, param] of params.entries()) { const request = /** @type {string} */ (param.string); const dep = new ParamDependency( request, @@ -157,17 +162,16 @@ class HotModuleReplacementPlugin { dep.loc.index = idx; module.addDependency(dep); requests.push(request); - }); + } if (expr.arguments.length > 1) { hotAcceptCallback.call(expr.arguments[1], requests); for (let i = 1; i < expr.arguments.length; i++) { parser.walkExpression(expr.arguments[i]); } return true; - } else { - hotAcceptWithoutCallback.call(expr, requests); - return true; } + hotAcceptWithoutCallback.call(expr, requests); + return true; } } parser.walkExpressions(expr.arguments); @@ -202,7 +206,7 @@ class HotModuleReplacementPlugin { /** @type {BasicEvaluatedExpression[]} */ (arg.items).filter(param => param.isString()); } - params.forEach((param, idx) => { + for (const [idx, param] of params.entries()) { const dep = new ParamDependency( /** @type {string} */ (param.string), /** @type {Range} */ (param.range) @@ -211,7 +215,7 @@ class HotModuleReplacementPlugin { dep.loc = Object.create(/** @type {DependencyLocation} */ (expr.loc)); dep.loc.index = idx; module.addDependency(dep); - }); + } } return true; }; @@ -244,14 +248,13 @@ class HotModuleReplacementPlugin { name: PLUGIN_NAME, before: "NodeStuffPlugin" }, - expr => { - return evaluateToIdentifier( + expr => + evaluateToIdentifier( "module.hot", "module", () => ["hot"], true - )(expr); - } + )(expr) ); parser.hooks.call .for("module.hot.accept") @@ -277,14 +280,14 @@ class HotModuleReplacementPlugin { const applyImportMetaHot = parser => { parser.hooks.evaluateIdentifier .for("import.meta.webpackHot") - .tap(PLUGIN_NAME, expr => { - return evaluateToIdentifier( + .tap(PLUGIN_NAME, expr => + evaluateToIdentifier( "import.meta.webpackHot", "import.meta", () => ["webpackHot"], true - )(expr); - }); + )(expr) + ); parser.hooks.call .for("import.meta.webpackHot.accept") .tap( @@ -309,7 +312,7 @@ class HotModuleReplacementPlugin { // It should not affect child compilations if (compilation.compiler !== compiler) return; - //#region module.hot.* API + // #region module.hot.* API compilation.dependencyFactories.set( ModuleHotAcceptDependency, normalModuleFactory @@ -326,9 +329,9 @@ class HotModuleReplacementPlugin { ModuleHotDeclineDependency, new ModuleHotDeclineDependency.Template() ); - //#endregion + // #endregion - //#region import.meta.webpackHot.* API + // #region import.meta.webpackHot.* API compilation.dependencyFactories.set( ImportMetaHotAcceptDependency, normalModuleFactory @@ -345,7 +348,7 @@ class HotModuleReplacementPlugin { ImportMetaHotDeclineDependency, new ImportMetaHotDeclineDependency.Template() ); - //#endregion + // #endregion let hotIndex = 0; /** @type {Record} */ @@ -401,10 +404,9 @@ class HotModuleReplacementPlugin { module, chunk.runtime ); - } else { - nonCodeGeneratedModules.add(module, chunk.runtime); - return chunkGraph.getModuleHash(module, chunk.runtime); } + nonCodeGeneratedModules.add(module, chunk.runtime); + return chunkGraph.getModuleHash(module, chunk.runtime); }; const fullHashModulesInThisChunk = chunkGraph.getChunkFullHashModulesSet(chunk); @@ -446,28 +448,26 @@ class HotModuleReplacementPlugin { chunkModuleHashes[key] = hash; } } - } else { - if (fullHashModulesInThisChunk !== undefined) { - for (const module of modules) { - const key = `${chunk.id}|${module.identifier()}`; - const hash = getModuleHash(module); - if ( - fullHashModulesInThisChunk.has( - /** @type {RuntimeModule} */ (module) - ) - ) { - fullHashChunkModuleHashes[key] = hash; - } else { - chunkModuleHashes[key] = hash; - } - } - } else { - for (const module of modules) { - const key = `${chunk.id}|${module.identifier()}`; - const hash = getModuleHash(module); + } else if (fullHashModulesInThisChunk !== undefined) { + for (const module of modules) { + const key = `${chunk.id}|${module.identifier()}`; + const hash = getModuleHash(module); + if ( + fullHashModulesInThisChunk.has( + /** @type {RuntimeModule} */ (module) + ) + ) { + fullHashChunkModuleHashes[key] = hash; + } else { chunkModuleHashes[key] = hash; } } + } else { + for (const module of modules) { + const key = `${chunk.id}|${module.identifier()}`; + const hash = getModuleHash(module); + chunkModuleHashes[key] = hash; + } } } } @@ -517,7 +517,8 @@ class HotModuleReplacementPlugin { forEachRuntime(allOldRuntime, runtime => { const { path: filename, info: assetInfo } = compilation.getPathWithInfo( - compilation.outputOptions.hotUpdateMainFilename, + /** @type {NonNullable} */ + (compilation.outputOptions.hotUpdateMainFilename), { hash: records.hash, runtime @@ -540,7 +541,9 @@ class HotModuleReplacementPlugin { /** @type {Map} */ const allModules = new Map(); for (const module of compilation.modules) { - const id = chunkGraph.getModuleId(module); + const id = + /** @type {ModuleId} */ + (chunkGraph.getModuleId(module)); allModules.set(id, module); } @@ -604,16 +607,20 @@ class HotModuleReplacementPlugin { removedFromRuntime = subtractRuntime(oldRuntime, newRuntime); } else { // chunk has completely removed - chunkId = `${+key}` === key ? +key : key; + chunkId = `${Number(key)}` === key ? Number(key) : key; removedFromRuntime = oldRuntime; newRuntime = oldRuntime; } if (removedFromRuntime) { // chunk was removed from some runtimes forEachRuntime(removedFromRuntime, runtime => { - const item = hotUpdateMainContentByRuntime.get( - /** @type {string} */ (runtime) - ); + const item = + /** @type {HotUpdateMainContentByRuntimeItem} */ + ( + hotUpdateMainContentByRuntime.get( + /** @type {string} */ (runtime) + ) + ); item.removedChunkIds.add(/** @type {ChunkId} */ (chunkId)); }); // dispose modules from the chunk in these runtimes @@ -654,16 +661,18 @@ class HotModuleReplacementPlugin { for (const moduleRuntime of runtimes) { if (typeof moduleRuntime === "string") { if (moduleRuntime === runtime) return; - } else if (moduleRuntime !== undefined) { - if ( - moduleRuntime.has(/** @type {string} */ (runtime)) - ) - return; - } + } else if ( + moduleRuntime !== undefined && + moduleRuntime.has(/** @type {string} */ (runtime)) + ) + return; } - const item = hotUpdateMainContentByRuntime.get( - /** @type {string} */ (runtime) - ); + const item = + /** @type {HotUpdateMainContentByRuntimeItem} */ ( + hotUpdateMainContentByRuntime.get( + /** @type {string} */ (runtime) + ) + ); item.removedModules.add(module); }); } @@ -677,7 +686,9 @@ class HotModuleReplacementPlugin { if (backCompat) ChunkGraph.setChunkGraphForChunk(hotUpdateChunk, chunkGraph); hotUpdateChunk.id = chunkId; - hotUpdateChunk.runtime = newRuntime; + hotUpdateChunk.runtime = currentChunk + ? currentChunk.runtime + : newRuntime; if (currentChunk) { for (const group of currentChunk.groupsIterable) hotUpdateChunk.addGroup(group); @@ -738,9 +749,12 @@ class HotModuleReplacementPlugin { } } forEachRuntime(newRuntime, runtime => { - const item = hotUpdateMainContentByRuntime.get( - /** @type {string} */ (runtime) - ); + const item = + /** @type {HotUpdateMainContentByRuntimeItem} */ ( + hotUpdateMainContentByRuntime.get( + /** @type {string} */ (runtime) + ) + ); item.updatedChunkIds.add(/** @type {ChunkId} */ (chunkId)); }); } @@ -795,8 +809,10 @@ To fix this, make sure to include [runtime] in the output.hotUpdateMainFilename removedModules.size === 0 ? completelyRemovedModulesArray : completelyRemovedModulesArray.concat( - Array.from(removedModules, m => - chunkGraph.getModuleId(m) + Array.from( + removedModules, + m => + /** @type {ModuleId} */ (chunkGraph.getModuleId(m)) ) ) }; diff --git a/node_modules/webpack/lib/IgnoreErrorModuleFactory.js b/node_modules/webpack/lib/IgnoreErrorModuleFactory.js index e6d9a51..4fd73e7 100644 --- a/node_modules/webpack/lib/IgnoreErrorModuleFactory.js +++ b/node_modules/webpack/lib/IgnoreErrorModuleFactory.js @@ -30,9 +30,9 @@ class IgnoreErrorModuleFactory extends ModuleFactory { * @returns {void} */ create(data, callback) { - this.normalModuleFactory.create(data, (err, result) => { - return callback(null, result); - }); + this.normalModuleFactory.create(data, (err, result) => + callback(null, result) + ); } } diff --git a/node_modules/webpack/lib/IgnorePlugin.js b/node_modules/webpack/lib/IgnorePlugin.js index d486b24..8049ac1 100644 --- a/node_modules/webpack/lib/IgnorePlugin.js +++ b/node_modules/webpack/lib/IgnorePlugin.js @@ -5,6 +5,8 @@ "use strict"; +const RawModule = require("./RawModule"); +const EntryDependency = require("./dependencies/EntryDependency"); const createSchemaValidation = require("./util/create-schema-validation"); /** @typedef {import("../declarations/plugins/IgnorePlugin").IgnorePluginOptions} IgnorePluginOptions */ @@ -36,9 +38,7 @@ class IgnorePlugin { } /** - * Note that if "contextRegExp" is given, both the "resourceRegExp" - * and "contextRegExp" have to match. - * + * Note that if "contextRegExp" is given, both the "resourceRegExp" and "contextRegExp" have to match. * @param {ResolveData} resolveData resolve data * @returns {false|undefined} returns false when the request should be ignored, otherwise undefined */ @@ -75,7 +75,23 @@ class IgnorePlugin { */ apply(compiler) { compiler.hooks.normalModuleFactory.tap("IgnorePlugin", nmf => { - nmf.hooks.beforeResolve.tap("IgnorePlugin", this.checkIgnore); + nmf.hooks.beforeResolve.tap("IgnorePlugin", resolveData => { + const result = this.checkIgnore(resolveData); + + if ( + result === false && + resolveData.dependencies.length > 0 && + resolveData.dependencies[0] instanceof EntryDependency + ) { + resolveData.ignoredModule = new RawModule( + "", + "ignored-entry-module", + "(ignored-entry-module)" + ); + } + + return result; + }); }); compiler.hooks.contextModuleFactory.tap("IgnorePlugin", cmf => { cmf.hooks.beforeResolve.tap("IgnorePlugin", this.checkIgnore); diff --git a/node_modules/webpack/lib/IgnoreWarningsPlugin.js b/node_modules/webpack/lib/IgnoreWarningsPlugin.js index 7b5c6cb..e844a83 100644 --- a/node_modules/webpack/lib/IgnoreWarningsPlugin.js +++ b/node_modules/webpack/lib/IgnoreWarningsPlugin.js @@ -15,6 +15,7 @@ class IgnoreWarningsPlugin { constructor(ignoreWarnings) { this._ignoreWarnings = ignoreWarnings; } + /** * Apply the plugin * @param {Compiler} compiler the compiler instance @@ -22,15 +23,11 @@ class IgnoreWarningsPlugin { */ apply(compiler) { compiler.hooks.compilation.tap("IgnoreWarningsPlugin", compilation => { - compilation.hooks.processWarnings.tap( - "IgnoreWarningsPlugin", - warnings => { - return warnings.filter(warning => { - return !this._ignoreWarnings.some(ignore => - ignore(warning, compilation) - ); - }); - } + compilation.hooks.processWarnings.tap("IgnoreWarningsPlugin", warnings => + warnings.filter( + warning => + !this._ignoreWarnings.some(ignore => ignore(warning, compilation)) + ) ); }); } diff --git a/node_modules/webpack/lib/InitFragment.js b/node_modules/webpack/lib/InitFragment.js index 7b97723..7a5d963 100644 --- a/node_modules/webpack/lib/InitFragment.js +++ b/node_modules/webpack/lib/InitFragment.js @@ -116,7 +116,7 @@ class InitFragment { continue; } } - keyedFragments.set(fragment.key || Symbol(), fragment); + keyedFragments.set(fragment.key || Symbol("fragment key"), fragment); } const concatSource = new ConcatSource(); @@ -137,9 +137,8 @@ class InitFragment { concatSource.add(content); } return concatSource; - } else { - return source; } + return source; } /** diff --git a/node_modules/webpack/lib/LibManifestPlugin.js b/node_modules/webpack/lib/LibManifestPlugin.js index 79ebbee..ab9d2fc 100644 --- a/node_modules/webpack/lib/LibManifestPlugin.js +++ b/node_modules/webpack/lib/LibManifestPlugin.js @@ -11,6 +11,7 @@ const { someInIterable } = require("./util/IterableHelpers"); const { compareModulesById } = require("./util/comparators"); const { dirname, mkdirp } = require("./util/fs"); +/** @typedef {import("./ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("./Compiler")} Compiler */ /** @typedef {import("./Compiler").IntermediateFileSystem} IntermediateFileSystem */ /** @typedef {import("./Module").BuildMeta} BuildMeta */ @@ -55,7 +56,7 @@ class LibManifestPlugin { const moduleGraph = compilation.moduleGraph; // store used paths to detect issue and output an error. #18200 const usedPaths = new Set(); - asyncLib.forEach( + asyncLib.each( Array.from(compilation.chunks), (chunk, callback) => { if (!chunk.canBeInitial()) { @@ -67,7 +68,7 @@ class LibManifestPlugin { chunk }); if (usedPaths.has(targetPath)) { - callback(new Error(`each chunk must have a unique path`)); + callback(new Error("each chunk must have a unique path")); return; } usedPaths.add(targetPath); @@ -102,7 +103,7 @@ class LibManifestPlugin { const providedExports = exportsInfo.getProvidedExports(); /** @type {ManifestModuleData} */ const data = { - id: chunkGraph.getModuleId(module), + id: /** @type {ModuleId} */ (chunkGraph.getModuleId(module)), buildMeta: /** @type {BuildMeta} */ (module.buildMeta), exports: Array.isArray(providedExports) ? providedExports diff --git a/node_modules/webpack/lib/LoaderOptionsPlugin.js b/node_modules/webpack/lib/LoaderOptionsPlugin.js index dec3bca..0cd6d7a 100644 --- a/node_modules/webpack/lib/LoaderOptionsPlugin.js +++ b/node_modules/webpack/lib/LoaderOptionsPlugin.js @@ -69,7 +69,9 @@ class LoaderOptionsPlugin { if (key === "include" || key === "exclude" || key === "test") { continue; } - context[key] = options[key]; + + /** @type {any} */ + (context)[key] = options[key]; } } } diff --git a/node_modules/webpack/lib/MainTemplate.js b/node_modules/webpack/lib/MainTemplate.js index 6857847..d05ebad 100644 --- a/node_modules/webpack/lib/MainTemplate.js +++ b/node_modules/webpack/lib/MainTemplate.js @@ -10,6 +10,7 @@ const util = require("util"); const RuntimeGlobals = require("./RuntimeGlobals"); const memoize = require("./util/memoize"); +/** @typedef {import("tapable").Tap} Tap */ /** @typedef {import("webpack-sources").ConcatSource} ConcatSource */ /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("../declarations/WebpackOptions").Output} OutputOptions */ @@ -17,15 +18,24 @@ const memoize = require("./util/memoize"); /** @typedef {import("./Chunk")} Chunk */ /** @typedef {import("./Compilation")} Compilation */ /** @typedef {import("./Compilation").AssetInfo} AssetInfo */ +/** @typedef {import("./Compilation").InterpolatedPathAndAssetInfo} InterpolatedPathAndAssetInfo */ /** @typedef {import("./Module")} Module} */ /** @typedef {import("./util/Hash")} Hash} */ /** @typedef {import("./DependencyTemplates")} DependencyTemplates} */ /** @typedef {import("./javascript/JavascriptModulesPlugin").RenderContext} RenderContext} */ +/** @typedef {import("./javascript/JavascriptModulesPlugin").RenderBootstrapContext} RenderBootstrapContext} */ +/** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkHashContext} ChunkHashContext} */ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate} */ /** @typedef {import("./ModuleGraph")} ModuleGraph} */ /** @typedef {import("./ChunkGraph")} ChunkGraph} */ /** @typedef {import("./Template").RenderManifestOptions} RenderManifestOptions} */ /** @typedef {import("./Template").RenderManifestEntry} RenderManifestEntry} */ +/** @typedef {import("./TemplatedPathPlugin").TemplatePath} TemplatePath} */ +/** @typedef {import("./TemplatedPathPlugin").PathData} PathData} */ +/** + * @template T + * @typedef {import("tapable").IfSet} IfSet + */ const getJavascriptModulesPlugin = memoize(() => require("./javascript/JavascriptModulesPlugin") @@ -40,7 +50,6 @@ const getLoadScriptRuntimeModule = memoize(() => // TODO webpack 6 remove this class class MainTemplate { /** - * * @param {OutputOptions} outputOptions output options for the MainTemplate * @param {Compilation} compilation the compilation */ @@ -50,6 +59,11 @@ class MainTemplate { this.hooks = Object.freeze({ renderManifest: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(RenderManifestEntry[], RenderManifestOptions): RenderManifestEntry[]} fn fn + */ (options, fn) => { compilation.hooks.renderManifest.tap( options, @@ -79,6 +93,11 @@ class MainTemplate { }, require: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(string, RenderBootstrapContext): string} fn fn + */ (options, fn) => { getJavascriptModulesPlugin() .getCompilationHooks(compilation) @@ -111,6 +130,11 @@ class MainTemplate { }, render: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Source, Chunk, string | undefined, ModuleTemplate, DependencyTemplates): Source} fn fn + */ (options, fn) => { getJavascriptModulesPlugin() .getCompilationHooks(compilation) @@ -138,6 +162,11 @@ class MainTemplate { }, renderWithEntry: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Source, Chunk, string | undefined): Source} fn fn + */ (options, fn) => { getJavascriptModulesPlugin() .getCompilationHooks(compilation) @@ -159,6 +188,11 @@ class MainTemplate { }, assetPath: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(string, object, AssetInfo | undefined): string} fn fn + */ (options, fn) => { compilation.hooks.assetPath.tap(options, fn); }, @@ -166,15 +200,23 @@ class MainTemplate { "DEP_WEBPACK_MAIN_TEMPLATE_ASSET_PATH" ), call: util.deprecate( - (filename, options) => { - return compilation.getAssetPath(filename, options); - }, + /** + * @param {TemplatePath} filename used to get asset path with hash + * @param {PathData} options context data + * @returns {string} interpolated path + */ + (filename, options) => compilation.getAssetPath(filename, options), "MainTemplate.hooks.assetPath is deprecated (use Compilation.hooks.assetPath instead)", "DEP_WEBPACK_MAIN_TEMPLATE_ASSET_PATH" ) }, hash: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Hash): void} fn fn + */ (options, fn) => { compilation.hooks.fullHash.tap(options, fn); }, @@ -184,6 +226,11 @@ class MainTemplate { }, hashForChunk: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Hash, Chunk): void} fn fn + */ (options, fn) => { getJavascriptModulesPlugin() .getCompilationHooks(compilation) @@ -259,7 +306,8 @@ class MainTemplate { * @param {string} hash the hash * @param {number=} length length of the hash * @returns {string} generated code - */ (hash, length) => { + */ + (hash, length) => { if (length) { return `${RuntimeGlobals.getFullHash} ? ${ RuntimeGlobals.getFullHash @@ -273,31 +321,36 @@ class MainTemplate { this.getPublicPath = util.deprecate( /** - * - * @param {object} options get public path options - * @returns {string} hook call - */ options => { - return compilation.getAssetPath( - compilation.outputOptions.publicPath, + * @param {PathData} options context data + * @returns {string} interpolated path + */ options => + compilation.getAssetPath( + /** @type {string} */ + (compilation.outputOptions.publicPath), options - ); - }, + ), "MainTemplate.getPublicPath is deprecated (use Compilation.getAssetPath(compilation.outputOptions.publicPath, options) instead)", "DEP_WEBPACK_MAIN_TEMPLATE_GET_PUBLIC_PATH" ); this.getAssetPath = util.deprecate( - (path, options) => { - return compilation.getAssetPath(path, options); - }, + /** + * @param {TemplatePath} path used to get asset path with hash + * @param {PathData} options context data + * @returns {string} interpolated path + */ + (path, options) => compilation.getAssetPath(path, options), "MainTemplate.getAssetPath is deprecated (use Compilation.getAssetPath instead)", "DEP_WEBPACK_MAIN_TEMPLATE_GET_ASSET_PATH" ); this.getAssetPathWithInfo = util.deprecate( - (path, options) => { - return compilation.getAssetPathWithInfo(path, options); - }, + /** + * @param {TemplatePath} path used to get asset path with hash + * @param {PathData} options context data + * @returns {InterpolatedPathAndAssetInfo} interpolated path and asset info + */ + (path, options) => compilation.getAssetPathWithInfo(path, options), "MainTemplate.getAssetPathWithInfo is deprecated (use Compilation.getAssetPath instead)", "DEP_WEBPACK_MAIN_TEMPLATE_GET_ASSET_PATH_WITH_INFO" ); diff --git a/node_modules/webpack/lib/Module.js b/node_modules/webpack/lib/Module.js index 0aec72a..7e0b859 100644 --- a/node_modules/webpack/lib/Module.js +++ b/node_modules/webpack/lib/Module.js @@ -9,6 +9,7 @@ const util = require("util"); const ChunkGraph = require("./ChunkGraph"); const DependenciesBlock = require("./DependenciesBlock"); const ModuleGraph = require("./ModuleGraph"); +const { JS_TYPES } = require("./ModuleSourceTypesConstants"); const RuntimeGlobals = require("./RuntimeGlobals"); const { first } = require("./util/SetHelpers"); const { compareChunksById } = require("./util/comparators"); @@ -18,6 +19,7 @@ const makeSerializable = require("./util/makeSerializable"); /** @typedef {import("../declarations/WebpackOptions").ResolveOptions} ResolveOptions */ /** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */ /** @typedef {import("./Chunk")} Chunk */ +/** @typedef {import("./ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("./ChunkGroup")} ChunkGroup */ /** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */ /** @typedef {import("./Compilation")} Compilation */ @@ -54,6 +56,8 @@ const makeSerializable = require("./util/makeSerializable"); * @property {string=} type the type of source that should be generated */ +/** @typedef {ReadonlySet} SourceTypes */ + // TODO webpack 6: compilation will be required in CodeGenerationContext /** * @typedef {object} CodeGenerationContext @@ -65,7 +69,7 @@ const makeSerializable = require("./util/makeSerializable"); * @property {ConcatenationScope=} concatenationScope when in concatenated module, information about other concatenated modules * @property {CodeGenerationResults | undefined} codeGenerationResults code generation results of other modules (need to have a codeGenerationDependency to use that) * @property {Compilation=} compilation the compilation - * @property {ReadonlySet=} sourceTypes source types + * @property {SourceTypes=} sourceTypes source types */ /** @@ -81,7 +85,7 @@ const makeSerializable = require("./util/makeSerializable"); * @typedef {object} CodeGenerationResult * @property {Map} sources the resulting sources for all source types * @property {Map=} data the resulting data for all source types - * @property {ReadOnlyRuntimeRequirements} runtimeRequirements the runtime requirements + * @property {ReadOnlyRuntimeRequirements | null} runtimeRequirements the runtime requirements * @property {string=} hash a hash of the code generation result (will be automatically calculated from sources and runtimeRequirements if not provided) */ @@ -112,18 +116,20 @@ const makeSerializable = require("./util/makeSerializable"); * @property {LazySet=} contextDependencies * @property {LazySet=} missingDependencies * @property {LazySet=} buildDependencies - * @property {(Map>)=} valueDependencies + * @property {ValueCacheVersions=} valueDependencies * @property {TODO=} hash * @property {Record=} assets * @property {Map=} assetsInfo * @property {(Snapshot | null)=} snapshot */ +/** @typedef {Map>} ValueCacheVersions */ + /** * @typedef {object} NeedBuildContext * @property {Compilation} compilation * @property {FileSystemInfo} fileSystemInfo - * @property {Map>} valueCacheVersions + * @property {ValueCacheVersions} valueCacheVersions */ /** @typedef {KnownBuildMeta & Record} BuildMeta */ @@ -134,8 +140,6 @@ const makeSerializable = require("./util/makeSerializable"); * @property {boolean=} sideEffectFree */ -/** @typedef {Set} SourceTypes */ - /** @typedef {{ factoryMeta: FactoryMeta | undefined, resolveOptions: ResolveOptions | undefined }} UnsafeCacheData */ const EMPTY_RESOLVE_OPTIONS = {}; @@ -143,7 +147,6 @@ const EMPTY_RESOLVE_OPTIONS = {}; let debugId = 1000; const DEFAULT_TYPES_UNKNOWN = new Set(["unknown"]); -const DEFAULT_TYPES_JS = new Set(["javascript"]); const deprecatedNeedRebuild = util.deprecate( /** @@ -151,12 +154,11 @@ const deprecatedNeedRebuild = util.deprecate( * @param {NeedBuildContext} context context info * @returns {boolean} true, when rebuild is needed */ - (module, context) => { - return module.needRebuild( + (module, context) => + module.needRebuild( context.fileSystemInfo.getDeprecatedFileTimestamps(), context.fileSystemInfo.getDeprecatedContextTimestamps() - ); - }, + ), "Module.needRebuild is deprecated in favor of Module.needBuild", "DEP_WEBPACK_MODULE_NEED_REBUILD" ); @@ -214,6 +216,9 @@ class Module extends DependenciesBlock { // TODO remove in webpack 6 // BACKWARD-COMPAT START + /** + * @returns {ModuleId | null} module id + */ get id() { return ChunkGraph.getChunkGraphForModule( this, @@ -222,6 +227,9 @@ class Module extends DependenciesBlock { ).getModuleId(this); } + /** + * @param {ModuleId} value value + */ set id(value) { if (value === "") { this.needId = false; @@ -865,9 +873,8 @@ class Module extends DependenciesBlock { // Better override this method to return the correct types if (this.source === Module.prototype.source) { return DEFAULT_TYPES_UNKNOWN; - } else { - return DEFAULT_TYPES_JS; } + return JS_TYPES; } /** @@ -899,7 +906,11 @@ class Module extends DependenciesBlock { }; const sources = this.codeGeneration(codeGenContext).sources; - return type ? sources.get(type) : sources.get(first(this.getSourceTypes())); + return /** @type {Source} */ ( + type + ? sources.get(type) + : sources.get(/** @type {string} */ (first(this.getSourceTypes()))) + ); } /* istanbul ignore next */ @@ -1105,6 +1116,8 @@ class Module extends DependenciesBlock { makeSerializable(Module, "webpack/lib/Module"); // TODO remove in webpack 6 +// eslint-disable-next-line no-warning-comments +// @ts-ignore https://github.com/microsoft/TypeScript/issues/42919 Object.defineProperty(Module.prototype, "hasEqualsChunks", { get() { throw new Error( @@ -1114,6 +1127,8 @@ Object.defineProperty(Module.prototype, "hasEqualsChunks", { }); // TODO remove in webpack 6 +// eslint-disable-next-line no-warning-comments +// @ts-ignore https://github.com/microsoft/TypeScript/issues/42919 Object.defineProperty(Module.prototype, "isUsed", { get() { throw new Error( @@ -1159,6 +1174,8 @@ Object.defineProperty(Module.prototype, "warnings", { }); // TODO remove in webpack 6 +// eslint-disable-next-line no-warning-comments +// @ts-ignore https://github.com/microsoft/TypeScript/issues/42919 Object.defineProperty(Module.prototype, "used", { get() { throw new Error( diff --git a/node_modules/webpack/lib/ModuleBuildError.js b/node_modules/webpack/lib/ModuleBuildError.js index a24cfda..b97daa1 100644 --- a/node_modules/webpack/lib/ModuleBuildError.js +++ b/node_modules/webpack/lib/ModuleBuildError.js @@ -19,13 +19,9 @@ class ModuleBuildError extends WebpackError { */ constructor(err, { from = null } = {}) { let message = "Module build failed"; - let details = undefined; + let details; - if (from) { - message += ` (from ${from}):\n`; - } else { - message += ": "; - } + message += from ? ` (from ${from}):\n` : ": "; if (err !== null && typeof err === "object") { if (typeof err.stack === "string" && err.stack) { @@ -36,11 +32,8 @@ class ModuleBuildError extends WebpackError { } else { details = stack; - if (typeof err.message === "string" && err.message) { - message += err.message; - } else { - message += err; - } + message += + typeof err.message === "string" && err.message ? err.message : err; } } else if (typeof err.message === "string" && err.message) { message += err.message; diff --git a/node_modules/webpack/lib/ModuleDependencyError.js b/node_modules/webpack/lib/ModuleDependencyError.js index 7aff42c..bb7341d 100644 --- a/node_modules/webpack/lib/ModuleDependencyError.js +++ b/node_modules/webpack/lib/ModuleDependencyError.js @@ -30,11 +30,11 @@ class ModuleDependencyError extends WebpackError { /** error is not (de)serialized, so it might be undefined after deserialization */ this.error = err; - if (err && /** @type {any} */ (err).hideStack) { - this.stack = - /** @type {string} */ (err.stack).split("\n").slice(1).join("\n") + - "\n\n" + - this.stack; + if (err && /** @type {any} */ (err).hideStack && err.stack) { + this.stack = /** @type {string} */ `${err.stack + .split("\n") + .slice(1) + .join("\n")}\n\n${this.stack}`; } } } diff --git a/node_modules/webpack/lib/ModuleDependencyWarning.js b/node_modules/webpack/lib/ModuleDependencyWarning.js index a02d6f1..2fc403b 100644 --- a/node_modules/webpack/lib/ModuleDependencyWarning.js +++ b/node_modules/webpack/lib/ModuleDependencyWarning.js @@ -30,11 +30,11 @@ class ModuleDependencyWarning extends WebpackError { /** error is not (de)serialized, so it might be undefined after deserialization */ this.error = err; - if (err && /** @type {any} */ (err).hideStack) { - this.stack = - /** @type {string} */ (err.stack).split("\n").slice(1).join("\n") + - "\n\n" + - this.stack; + if (err && /** @type {any} */ (err).hideStack && err.stack) { + this.stack = /** @type {string} */ `${err.stack + .split("\n") + .slice(1) + .join("\n")}\n\n${this.stack}`; } } } diff --git a/node_modules/webpack/lib/ModuleError.js b/node_modules/webpack/lib/ModuleError.js index 6f2a5e0..f8227a8 100644 --- a/node_modules/webpack/lib/ModuleError.js +++ b/node_modules/webpack/lib/ModuleError.js @@ -20,11 +20,7 @@ class ModuleError extends WebpackError { constructor(err, { from = null } = {}) { let message = "Module Error"; - if (from) { - message += ` (from ${from}):\n`; - } else { - message += ": "; - } + message += from ? ` (from ${from}):\n` : ": "; if (err && typeof err === "object" && err.message) { message += err.message; diff --git a/node_modules/webpack/lib/ModuleFilenameHelpers.js b/node_modules/webpack/lib/ModuleFilenameHelpers.js index feaca4f..afe3d34 100644 --- a/node_modules/webpack/lib/ModuleFilenameHelpers.js +++ b/node_modules/webpack/lib/ModuleFilenameHelpers.js @@ -17,7 +17,7 @@ const memoize = require("./util/memoize"); /** @typedef {string | RegExp | (string | RegExp)[]} Matcher */ /** @typedef {{test?: Matcher, include?: Matcher, exclude?: Matcher }} MatchObject */ -const ModuleFilenameHelpers = exports; +const ModuleFilenameHelpers = module.exports; // TODO webpack 6: consider removing these ModuleFilenameHelpers.ALL_LOADERS_RESOURCE = "[all-loaders][resource]"; @@ -54,12 +54,10 @@ ModuleFilenameHelpers.REGEXP_NAMESPACE = /\[namespace\]/gi; * @param {string} token the token to search for * @returns {ReturnStringCallback} a function that returns the part of the string after the token */ -const getAfter = (strFn, token) => { - return () => { - const str = strFn(); - const idx = str.indexOf(token); - return idx < 0 ? "" : str.slice(idx); - }; +const getAfter = (strFn, token) => () => { + const str = strFn(); + const idx = str.indexOf(token); + return idx < 0 ? "" : str.slice(idx); }; /** @@ -68,12 +66,10 @@ const getAfter = (strFn, token) => { * @param {string} token the token to search for * @returns {ReturnStringCallback} a function that returns the part of the string before the token */ -const getBefore = (strFn, token) => { - return () => { - const str = strFn(); - const idx = str.lastIndexOf(token); - return idx < 0 ? "" : str.slice(0, idx); - }; +const getBefore = (strFn, token) => () => { + const str = strFn(); + const idx = str.lastIndexOf(token); + return idx < 0 ? "" : str.slice(0, idx); }; /** @@ -82,14 +78,14 @@ const getBefore = (strFn, token) => { * @param {string | Hash=} hashFunction the hash function to use * @returns {ReturnStringCallback} a function that returns the hash of the string */ -const getHash = (strFn, hashFunction = "md4") => { - return () => { +const getHash = + (strFn, hashFunction = "md4") => + () => { const hash = createHash(hashFunction); hash.update(strFn()); const digest = /** @type {string} */ (hash.digest("hex")); return digest.slice(0, 4); }; -}; /** * Returns a function that returns the string with the token replaced with the replacement @@ -108,7 +104,7 @@ const asRegExp = test => { if (typeof test === "string") { // Escape special characters in the string to prevent them from being interpreted as special characters in a regular expression. Do this by // adding a backslash before each special character - test = new RegExp("^" + test.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")); + test = new RegExp(`^${test.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")}`); } return test; }; @@ -143,7 +139,6 @@ const lazyObject = obj => { const SQUARE_BRACKET_TAG_REGEXP = /\[\\*([\w-]+)\\*\]/gi; /** - * * @param {Module | string} module the module * @param {TODO} options options * @param {object} contextInfo context info @@ -153,6 +148,7 @@ const SQUARE_BRACKET_TAG_REGEXP = /\[\\*([\w-]+)\\*\]/gi; * @returns {string} the filename */ ModuleFilenameHelpers.createFilename = ( + // eslint-disable-next-line default-param-last module = "", options, { requestShortener, chunkGraph, hashFunction = "md4" } @@ -213,9 +209,9 @@ ModuleFilenameHelpers.createFilename = ( if (typeof opts.moduleFilenameTemplate === "function") { return opts.moduleFilenameTemplate( lazyObject({ - identifier: identifier, - shortIdentifier: shortIdentifier, - resource: resource, + identifier, + shortIdentifier, + resource, resourcePath: memoize(resourcePath), absoluteResourcePath: memoize(absoluteResourcePath), loaders: memoize(loaders), @@ -285,13 +281,11 @@ ModuleFilenameHelpers.createFilename = ( * Replaces duplicate items in an array with new values generated by a callback function. * The callback function is called with the duplicate item, the index of the duplicate item, and the number of times the item has been replaced. * The callback function should return the new value for the duplicate item. - * * @template T * @param {T[]} array the array with duplicates to be replaced * @param {(duplicateItem: T, duplicateItemIndex: number, numberOfTimesReplaced: number) => T} fn callback function to generate new values for the duplicate items * @param {(firstElement:T, nextElement:T) => -1 | 0 | 1} [comparator] optional comparator function to sort the duplicate items * @returns {T[]} the array with duplicates replaced - * * @example * ```js * const array = ["a", "b", "c", "a", "b", "a"]; @@ -303,33 +297,30 @@ ModuleFilenameHelpers.replaceDuplicates = (array, fn, comparator) => { const countMap = Object.create(null); const posMap = Object.create(null); - array.forEach((item, idx) => { + for (const [idx, item] of array.entries()) { countMap[item] = countMap[item] || []; countMap[item].push(idx); posMap[item] = 0; - }); + } if (comparator) { - Object.keys(countMap).forEach(item => { + for (const item of Object.keys(countMap)) { countMap[item].sort(comparator); - }); + } } return array.map((item, i) => { if (countMap[item].length > 1) { if (comparator && countMap[item][0] === i) return item; return fn(item, i, posMap[item]++); - } else { - return item; } + return item; }); }; /** * Tests if a string matches a RegExp or an array of RegExp. - * * @param {string} str string to test * @param {Matcher} test value which will be used to match against the string * @returns {boolean} true, when the RegExp matches - * * @example * ```js * ModuleFilenameHelpers.matchPart("foo.js", "foo"); // true @@ -349,9 +340,8 @@ ModuleFilenameHelpers.matchPart = (str, test) => { if (Array.isArray(test)) { return test.map(asRegExp).some(regExp => regExp.test(str)); - } else { - return asRegExp(test).test(str); } + return asRegExp(test).test(str); }; /** @@ -361,7 +351,6 @@ ModuleFilenameHelpers.matchPart = (str, test) => { * - `exclude`: a RegExp or an array of RegExp * * The `test` property is tested first, then `include` and then `exclude`. - * * @param {MatchObject} obj a match object to test against the string * @param {string} str string to test against the matching object * @returns {boolean} true, when the object matches @@ -381,20 +370,14 @@ ModuleFilenameHelpers.matchPart = (str, test) => { * ``` */ ModuleFilenameHelpers.matchObject = (obj, str) => { - if (obj.test) { - if (!ModuleFilenameHelpers.matchPart(str, obj.test)) { - return false; - } + if (obj.test && !ModuleFilenameHelpers.matchPart(str, obj.test)) { + return false; } - if (obj.include) { - if (!ModuleFilenameHelpers.matchPart(str, obj.include)) { - return false; - } + if (obj.include && !ModuleFilenameHelpers.matchPart(str, obj.include)) { + return false; } - if (obj.exclude) { - if (ModuleFilenameHelpers.matchPart(str, obj.exclude)) { - return false; - } + if (obj.exclude && ModuleFilenameHelpers.matchPart(str, obj.exclude)) { + return false; } return true; }; diff --git a/node_modules/webpack/lib/ModuleGraph.js b/node_modules/webpack/lib/ModuleGraph.js index 64e7daa..783c6e4 100644 --- a/node_modules/webpack/lib/ModuleGraph.js +++ b/node_modules/webpack/lib/ModuleGraph.js @@ -36,7 +36,7 @@ const getConnectionsByOriginModule = set => { /** @type {Module | 0} */ let lastModule = 0; /** @type {ModuleGraphConnection[] | undefined} */ - let lastList = undefined; + let lastList; for (const connection of set) { const { originModule } = connection; if (lastModule === originModule) { @@ -67,7 +67,7 @@ const getConnectionsByModule = set => { /** @type {Module | 0} */ let lastModule = 0; /** @type {ModuleGraphConnection[] | undefined} */ - let lastList = undefined; + let lastList; for (const connection of set) { const { module } = connection; if (lastModule === module) { @@ -445,7 +445,7 @@ class ModuleGraph { } } this._dependencyMap.set(dependency, null); - return undefined; + return; } return connection === null ? undefined : connection; } @@ -851,12 +851,13 @@ class ModuleGraph { const moduleGraph = moduleGraphForModuleMap.get(module); if (!moduleGraph) throw new Error( - deprecateMessage + - "There was no ModuleGraph assigned to the Module for backward-compat (Use the new API)" + `${ + deprecateMessage + }There was no ModuleGraph assigned to the Module for backward-compat (Use the new API)` ); return moduleGraph; }, - deprecateMessage + ": Use new ModuleGraph API", + `${deprecateMessage}: Use new ModuleGraph API`, deprecationCode ); deprecateMap.set(deprecateMessage, newFn); diff --git a/node_modules/webpack/lib/ModuleGraphConnection.js b/node_modules/webpack/lib/ModuleGraphConnection.js index e96fafd..1f12ac9 100644 --- a/node_modules/webpack/lib/ModuleGraphConnection.js +++ b/node_modules/webpack/lib/ModuleGraphConnection.js @@ -73,7 +73,7 @@ class ModuleGraphConnection { this.resolvedModule = module; this.module = module; this.weak = weak; - this.conditional = !!condition; + this.conditional = Boolean(condition); this._active = condition !== false; /** @type {(function(ModuleGraphConnection, RuntimeSpec): ConnectionState) | undefined} */ this.condition = condition || undefined; @@ -135,11 +135,6 @@ class ModuleGraphConnection { return Array.from(this.explanations).join(" "); } - // TODO webpack 5 remove - get active() { - throw new Error("Use getActiveState instead"); - } - /** * @param {RuntimeSpec} runtime the runtime * @returns {boolean} true, if the connection is active @@ -187,6 +182,11 @@ class ModuleGraphConnection { this._active = value; } + // TODO webpack 5 remove + get active() { + throw new Error("Use getActiveState instead"); + } + set active(value) { throw new Error("Use setActive instead"); } diff --git a/node_modules/webpack/lib/ModuleInfoHeaderPlugin.js b/node_modules/webpack/lib/ModuleInfoHeaderPlugin.js index 0ed0f25..994bfed 100644 --- a/node_modules/webpack/lib/ModuleInfoHeaderPlugin.js +++ b/node_modules/webpack/lib/ModuleInfoHeaderPlugin.js @@ -8,6 +8,7 @@ const { ConcatSource, RawSource, CachedSource } = require("webpack-sources"); const { UsageState } = require("./ExportsInfo"); const Template = require("./Template"); +const CssModulesPlugin = require("./css/CssModulesPlugin"); const JavascriptModulesPlugin = require("./javascript/JavascriptModulesPlugin"); /** @typedef {import("webpack-sources").Source} Source */ @@ -84,7 +85,7 @@ const printExportsInfoToSource = ( for (const exportInfo of printedExports) { const target = exportInfo.getTarget(moduleGraph); source.add( - Template.toComment( + `${Template.toComment( `${indent}export ${JSON.stringify(exportInfo.name).slice( 1, -1 @@ -99,12 +100,12 @@ const printExportsInfoToSource = ( }` : "" }` - ) + "\n" + )}\n` ); if (exportInfo.exportsInfo) { printExportsInfoToSource( source, - indent + " ", + `${indent} `, exportInfo.exportsInfo, moduleGraph, requestShortener, @@ -115,9 +116,9 @@ const printExportsInfoToSource = ( if (alreadyPrintedExports) { source.add( - Template.toComment( + `${Template.toComment( `${indent}... (${alreadyPrintedExports} already listed exports)` - ) + "\n" + )}\n` ); } @@ -133,13 +134,13 @@ const printExportsInfoToSource = ( ? "other exports" : "exports"; source.add( - Template.toComment( + `${Template.toComment( `${indent}${title} [${otherExportsInfo.getProvidedInfo()}] [${otherExportsInfo.getUsedInfo()}]${ target ? ` -> ${target.module.readableIdentifier(requestShortener)}` : "" }` - ) + "\n" + )}\n` ); } } @@ -155,6 +156,7 @@ class ModuleInfoHeaderPlugin { constructor(verbose = true) { this._verbose = verbose; } + /** * @param {Compiler} compiler the compiler * @returns {void} @@ -162,8 +164,9 @@ class ModuleInfoHeaderPlugin { apply(compiler) { const { _verbose: verbose } = this; compiler.hooks.compilation.tap("ModuleInfoHeaderPlugin", compilation => { - const hooks = JavascriptModulesPlugin.getCompilationHooks(compilation); - hooks.renderModulePackage.tap( + const javascriptHooks = + JavascriptModulesPlugin.getCompilationHooks(compilation); + javascriptHooks.renderModulePackage.tap( "ModuleInfoHeaderPlugin", ( moduleSource, @@ -194,11 +197,7 @@ class ModuleInfoHeaderPlugin { const source = new ConcatSource(); let header = cacheEntry.header; if (header === undefined) { - const req = module.readableIdentifier(requestShortener); - const reqStr = req.replace(/\*\//g, "*_/"); - const reqStrStar = "*".repeat(reqStr.length); - const headerStr = `/*!****${reqStrStar}****!*\\\n !*** ${reqStr} ***!\n \\****${reqStrStar}****/\n`; - header = new RawSource(headerStr); + header = this.generateHeader(module, requestShortener); cacheEntry.header = header; } source.add(header); @@ -206,11 +205,11 @@ class ModuleInfoHeaderPlugin { const exportsType = /** @type {BuildMeta} */ (module.buildMeta) .exportsType; source.add( - Template.toComment( + `${Template.toComment( exportsType ? `${exportsType} exports` : "unknown exports (runtime-defined)" - ) + "\n" + )}\n` ); if (exportsType) { const exportsInfo = moduleGraph.getExportsInfo(module); @@ -223,40 +222,93 @@ class ModuleInfoHeaderPlugin { ); } source.add( - Template.toComment( + `${Template.toComment( `runtime requirements: ${joinIterableWithComma( chunkGraph.getModuleRuntimeRequirements(module, chunk.runtime) )}` - ) + "\n" + )}\n` ); const optimizationBailout = moduleGraph.getOptimizationBailout(module); if (optimizationBailout) { for (const text of optimizationBailout) { - let code; - if (typeof text === "function") { - code = text(requestShortener); - } else { - code = text; - } - source.add(Template.toComment(`${code}`) + "\n"); + const code = + typeof text === "function" ? text(requestShortener) : text; + source.add(`${Template.toComment(`${code}`)}\n`); } } source.add(moduleSource); return source; - } else { - source.add(moduleSource); - const cachedSource = new CachedSource(source); - cacheEntry.full.set(moduleSource, cachedSource); - return cachedSource; } + source.add(moduleSource); + const cachedSource = new CachedSource(source); + cacheEntry.full.set(moduleSource, cachedSource); + return cachedSource; } ); - hooks.chunkHash.tap("ModuleInfoHeaderPlugin", (chunk, hash) => { + javascriptHooks.chunkHash.tap( + "ModuleInfoHeaderPlugin", + (_chunk, hash) => { + hash.update("ModuleInfoHeaderPlugin"); + hash.update("1"); + } + ); + const cssHooks = CssModulesPlugin.getCompilationHooks(compilation); + cssHooks.renderModulePackage.tap( + "ModuleInfoHeaderPlugin", + (moduleSource, module, { runtimeTemplate }) => { + const { requestShortener } = runtimeTemplate; + let cacheEntry; + let cache = caches.get(requestShortener); + if (cache === undefined) { + caches.set(requestShortener, (cache = new WeakMap())); + cache.set( + module, + (cacheEntry = { header: undefined, full: new WeakMap() }) + ); + } else { + cacheEntry = cache.get(module); + if (cacheEntry === undefined) { + cache.set( + module, + (cacheEntry = { header: undefined, full: new WeakMap() }) + ); + } else if (!verbose) { + const cachedSource = cacheEntry.full.get(moduleSource); + if (cachedSource !== undefined) return cachedSource; + } + } + const source = new ConcatSource(); + let header = cacheEntry.header; + if (header === undefined) { + header = this.generateHeader(module, requestShortener); + cacheEntry.header = header; + } + source.add(header); + source.add(moduleSource); + const cachedSource = new CachedSource(source); + cacheEntry.full.set(moduleSource, cachedSource); + return cachedSource; + } + ); + cssHooks.chunkHash.tap("ModuleInfoHeaderPlugin", (_chunk, hash) => { hash.update("ModuleInfoHeaderPlugin"); hash.update("1"); }); }); } + + /** + * @param {Module} module the module + * @param {RequestShortener} requestShortener request shortener + * @returns {RawSource} the header + */ + generateHeader(module, requestShortener) { + const req = module.readableIdentifier(requestShortener); + const reqStr = req.replace(/\*\//g, "*_/"); + const reqStrStar = "*".repeat(reqStr.length); + const headerStr = `/*!****${reqStrStar}****!*\\\n !*** ${reqStr} ***!\n \\****${reqStrStar}****/\n`; + return new RawSource(headerStr); + } } module.exports = ModuleInfoHeaderPlugin; diff --git a/node_modules/webpack/lib/ModuleParseError.js b/node_modules/webpack/lib/ModuleParseError.js index 5ffbeb8..d14c763 100644 --- a/node_modules/webpack/lib/ModuleParseError.js +++ b/node_modules/webpack/lib/ModuleParseError.js @@ -16,13 +16,13 @@ const WASM_HEADER = Buffer.from([0x00, 0x61, 0x73, 0x6d]); class ModuleParseError extends WebpackError { /** * @param {string | Buffer} source source code - * @param {Error&any} err the parse error + * @param {Error & any} err the parse error * @param {string[]} loaders the loaders used * @param {string} type module type */ constructor(source, err, loaders, type) { - let message = "Module parse failed: " + (err && err.message); - let loc = undefined; + let message = `Module parse failed: ${err && err.message}`; + let loc; if ( ((Buffer.isBuffer(source) && source.slice(0, 4).equals(WASM_HEADER)) || @@ -57,7 +57,7 @@ class ModuleParseError extends WebpackError { typeof err.loc === "object" && typeof err.loc.line === "number" ) { - var lineNumber = err.loc.line; + const lineNumber = err.loc.line; if ( Buffer.isBuffer(source) || @@ -72,15 +72,14 @@ class ModuleParseError extends WebpackError { const theLine = sourceLines[lineNumber - 1]; const linesAfter = sourceLines.slice(lineNumber, lineNumber + 2); - message += - linesBefore.map(l => `\n| ${l}`).join("") + - `\n> ${theLine}` + - linesAfter.map(l => `\n| ${l}`).join(""); + message += `${linesBefore + .map(l => `\n| ${l}`) + .join("")}\n> ${theLine}${linesAfter.map(l => `\n| ${l}`).join("")}`; } loc = { start: err.loc }; } else if (err && err.stack) { - message += "\n" + err.stack; + message += `\n${err.stack}`; } super(message); diff --git a/node_modules/webpack/lib/ModuleRestoreError.js b/node_modules/webpack/lib/ModuleRestoreError.js index 449e617..2570862 100644 --- a/node_modules/webpack/lib/ModuleRestoreError.js +++ b/node_modules/webpack/lib/ModuleRestoreError.js @@ -17,7 +17,7 @@ class ModuleRestoreError extends WebpackError { constructor(module, err) { let message = "Module restore failed: "; /** @type {string | undefined} */ - let details = undefined; + const details = undefined; if (err !== null && typeof err === "object") { if (typeof err.stack === "string" && err.stack) { const stack = err.stack; diff --git a/node_modules/webpack/lib/ModuleStoreError.js b/node_modules/webpack/lib/ModuleStoreError.js index e00e1cb..26ca0c8 100644 --- a/node_modules/webpack/lib/ModuleStoreError.js +++ b/node_modules/webpack/lib/ModuleStoreError.js @@ -17,7 +17,7 @@ class ModuleStoreError extends WebpackError { constructor(module, err) { let message = "Module storing failed: "; /** @type {string | undefined} */ - let details = undefined; + const details = undefined; if (err !== null && typeof err === "object") { if (typeof err.stack === "string" && err.stack) { const stack = err.stack; diff --git a/node_modules/webpack/lib/ModuleTemplate.js b/node_modules/webpack/lib/ModuleTemplate.js index 5ed5382..7990377 100644 --- a/node_modules/webpack/lib/ModuleTemplate.js +++ b/node_modules/webpack/lib/ModuleTemplate.js @@ -8,6 +8,7 @@ const util = require("util"); const memoize = require("./util/memoize"); +/** @typedef {import("tapable").Tap} Tap */ /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("./Chunk")} Chunk */ /** @typedef {import("./ChunkGraph")} ChunkGraph */ @@ -16,8 +17,14 @@ const memoize = require("./util/memoize"); /** @typedef {import("./Module")} Module */ /** @typedef {import("./ModuleGraph")} ModuleGraph */ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */ +/** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */ /** @typedef {import("./util/Hash")} Hash */ +/** + * @template T + * @typedef {import("tapable").IfSet} IfSet + */ + const getJavascriptModulesPlugin = memoize(() => require("./javascript/JavascriptModulesPlugin") ); @@ -34,6 +41,11 @@ class ModuleTemplate { this.hooks = Object.freeze({ content: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn + */ (options, fn) => { getJavascriptModulesPlugin() .getCompilationHooks(compilation) @@ -54,6 +66,11 @@ class ModuleTemplate { }, module: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn + */ (options, fn) => { getJavascriptModulesPlugin() .getCompilationHooks(compilation) @@ -74,6 +91,11 @@ class ModuleTemplate { }, render: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn + */ (options, fn) => { getJavascriptModulesPlugin() .getCompilationHooks(compilation) @@ -94,6 +116,11 @@ class ModuleTemplate { }, package: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Source, Module, ChunkRenderContext, DependencyTemplates): Source} fn fn + */ (options, fn) => { getJavascriptModulesPlugin() .getCompilationHooks(compilation) @@ -114,6 +141,11 @@ class ModuleTemplate { }, hash: { tap: util.deprecate( + /** + * @template AdditionalOptions + * @param {string | Tap & IfSet} options options + * @param {function(Hash): void} fn fn + */ (options, fn) => { compilation.hooks.fullHash.tap(options, fn); }, @@ -129,7 +161,7 @@ Object.defineProperty(ModuleTemplate.prototype, "runtimeTemplate", { get: util.deprecate( /** * @this {ModuleTemplate} - * @returns {TODO} output options + * @returns {RuntimeTemplate} output options */ function () { return this._runtimeTemplate; diff --git a/node_modules/webpack/lib/ModuleTypeConstants.js b/node_modules/webpack/lib/ModuleTypeConstants.js index b62eda9..dee3ae9 100644 --- a/node_modules/webpack/lib/ModuleTypeConstants.js +++ b/node_modules/webpack/lib/ModuleTypeConstants.js @@ -31,7 +31,6 @@ const JSON_MODULE_TYPE = "json"; /** * @type {Readonly<"webassembly/async">} * This is the module type used for WebAssembly modules. In webpack 5 they are always treated as async modules. - * */ const WEBASSEMBLY_MODULE_TYPE_ASYNC = "webassembly/async"; @@ -144,26 +143,26 @@ const WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY = "lazy-compilation-proxy"; /** @typedef {string} UnknownModuleTypes */ /** @typedef {JavaScriptModuleTypes | JSONModuleType | WebAssemblyModuleTypes | CSSModuleTypes | AssetModuleTypes | WebpackModuleTypes | UnknownModuleTypes} ModuleTypes */ -exports.ASSET_MODULE_TYPE = ASSET_MODULE_TYPE; -exports.ASSET_MODULE_TYPE_RAW_DATA_URL = ASSET_MODULE_TYPE_RAW_DATA_URL; -exports.ASSET_MODULE_TYPE_SOURCE = ASSET_MODULE_TYPE_SOURCE; -exports.ASSET_MODULE_TYPE_RESOURCE = ASSET_MODULE_TYPE_RESOURCE; -exports.ASSET_MODULE_TYPE_INLINE = ASSET_MODULE_TYPE_INLINE; -exports.JAVASCRIPT_MODULE_TYPE_AUTO = JAVASCRIPT_MODULE_TYPE_AUTO; -exports.JAVASCRIPT_MODULE_TYPE_DYNAMIC = JAVASCRIPT_MODULE_TYPE_DYNAMIC; -exports.JAVASCRIPT_MODULE_TYPE_ESM = JAVASCRIPT_MODULE_TYPE_ESM; -exports.JSON_MODULE_TYPE = JSON_MODULE_TYPE; -exports.WEBASSEMBLY_MODULE_TYPE_ASYNC = WEBASSEMBLY_MODULE_TYPE_ASYNC; -exports.WEBASSEMBLY_MODULE_TYPE_SYNC = WEBASSEMBLY_MODULE_TYPE_SYNC; -exports.CSS_MODULE_TYPE = CSS_MODULE_TYPE; -exports.CSS_MODULE_TYPE_GLOBAL = CSS_MODULE_TYPE_GLOBAL; -exports.CSS_MODULE_TYPE_MODULE = CSS_MODULE_TYPE_MODULE; -exports.CSS_MODULE_TYPE_AUTO = CSS_MODULE_TYPE_AUTO; -exports.WEBPACK_MODULE_TYPE_RUNTIME = WEBPACK_MODULE_TYPE_RUNTIME; -exports.WEBPACK_MODULE_TYPE_FALLBACK = WEBPACK_MODULE_TYPE_FALLBACK; -exports.WEBPACK_MODULE_TYPE_REMOTE = WEBPACK_MODULE_TYPE_REMOTE; -exports.WEBPACK_MODULE_TYPE_PROVIDE = WEBPACK_MODULE_TYPE_PROVIDE; -exports.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE = +module.exports.ASSET_MODULE_TYPE = ASSET_MODULE_TYPE; +module.exports.ASSET_MODULE_TYPE_RAW_DATA_URL = ASSET_MODULE_TYPE_RAW_DATA_URL; +module.exports.ASSET_MODULE_TYPE_SOURCE = ASSET_MODULE_TYPE_SOURCE; +module.exports.ASSET_MODULE_TYPE_RESOURCE = ASSET_MODULE_TYPE_RESOURCE; +module.exports.ASSET_MODULE_TYPE_INLINE = ASSET_MODULE_TYPE_INLINE; +module.exports.JAVASCRIPT_MODULE_TYPE_AUTO = JAVASCRIPT_MODULE_TYPE_AUTO; +module.exports.JAVASCRIPT_MODULE_TYPE_DYNAMIC = JAVASCRIPT_MODULE_TYPE_DYNAMIC; +module.exports.JAVASCRIPT_MODULE_TYPE_ESM = JAVASCRIPT_MODULE_TYPE_ESM; +module.exports.JSON_MODULE_TYPE = JSON_MODULE_TYPE; +module.exports.WEBASSEMBLY_MODULE_TYPE_ASYNC = WEBASSEMBLY_MODULE_TYPE_ASYNC; +module.exports.WEBASSEMBLY_MODULE_TYPE_SYNC = WEBASSEMBLY_MODULE_TYPE_SYNC; +module.exports.CSS_MODULE_TYPE = CSS_MODULE_TYPE; +module.exports.CSS_MODULE_TYPE_GLOBAL = CSS_MODULE_TYPE_GLOBAL; +module.exports.CSS_MODULE_TYPE_MODULE = CSS_MODULE_TYPE_MODULE; +module.exports.CSS_MODULE_TYPE_AUTO = CSS_MODULE_TYPE_AUTO; +module.exports.WEBPACK_MODULE_TYPE_RUNTIME = WEBPACK_MODULE_TYPE_RUNTIME; +module.exports.WEBPACK_MODULE_TYPE_FALLBACK = WEBPACK_MODULE_TYPE_FALLBACK; +module.exports.WEBPACK_MODULE_TYPE_REMOTE = WEBPACK_MODULE_TYPE_REMOTE; +module.exports.WEBPACK_MODULE_TYPE_PROVIDE = WEBPACK_MODULE_TYPE_PROVIDE; +module.exports.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE = WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE; -exports.WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY = +module.exports.WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY = WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY; diff --git a/node_modules/webpack/lib/ModuleWarning.js b/node_modules/webpack/lib/ModuleWarning.js index 7030352..9b45a9a 100644 --- a/node_modules/webpack/lib/ModuleWarning.js +++ b/node_modules/webpack/lib/ModuleWarning.js @@ -20,11 +20,7 @@ class ModuleWarning extends WebpackError { constructor(warning, { from = null } = {}) { let message = "Module Warning"; - if (from) { - message += ` (from ${from}):\n`; - } else { - message += ": "; - } + message += from ? ` (from ${from}):\n` : ": "; if (warning && typeof warning === "object" && warning.message) { message += warning.message; diff --git a/node_modules/webpack/lib/MultiCompiler.js b/node_modules/webpack/lib/MultiCompiler.js index 650fb31..8c72da3 100644 --- a/node_modules/webpack/lib/MultiCompiler.js +++ b/node_modules/webpack/lib/MultiCompiler.js @@ -91,6 +91,7 @@ module.exports = class MultiCompiler { const compiler = this.compilers[index]; const compilerIndex = index; let compilerDone = false; + // eslint-disable-next-line no-loop-func compiler.hooks.done.tap("MultiCompiler", stats => { if (!compilerDone) { compilerDone = true; @@ -103,6 +104,7 @@ module.exports = class MultiCompiler { ); } }); + // eslint-disable-next-line no-loop-func compiler.hooks.invalid.tap("MultiCompiler", () => { if (compilerDone) { compilerDone = false; @@ -172,18 +174,6 @@ module.exports = class MultiCompiler { throw new Error("Cannot read inputFileSystem of a MultiCompiler"); } - get outputFileSystem() { - throw new Error("Cannot read outputFileSystem of a MultiCompiler"); - } - - get watchFileSystem() { - throw new Error("Cannot read watchFileSystem of a MultiCompiler"); - } - - get intermediateFileSystem() { - throw new Error("Cannot read outputFileSystem of a MultiCompiler"); - } - /** * @param {InputFileSystem} value the new input file system */ @@ -193,6 +183,10 @@ module.exports = class MultiCompiler { } } + get outputFileSystem() { + throw new Error("Cannot read outputFileSystem of a MultiCompiler"); + } + /** * @param {OutputFileSystem} value the new output file system */ @@ -202,6 +196,10 @@ module.exports = class MultiCompiler { } } + get watchFileSystem() { + throw new Error("Cannot read watchFileSystem of a MultiCompiler"); + } + /** * @param {WatchFileSystem} value the new watch file system */ @@ -220,6 +218,10 @@ module.exports = class MultiCompiler { } } + get intermediateFileSystem() { + throw new Error("Cannot read outputFileSystem of a MultiCompiler"); + } + /** * @param {string | (function(): string)} name name of the logger, or function called once to get the logger name * @returns {Logger} a logger with that name @@ -263,16 +265,11 @@ module.exports = class MultiCompiler { * @param {{source: Compiler, target: Compiler}} e2 edge 2 * @returns {number} result */ - const sortEdges = (e1, e2) => { - return ( - /** @type {string} */ - (e1.source.name).localeCompare( - /** @type {string} */ (e2.source.name) - ) || - /** @type {string} */ - (e1.target.name).localeCompare(/** @type {string} */ (e2.target.name)) - ); - }; + const sortEdges = (e1, e2) => + /** @type {string} */ + (e1.source.name).localeCompare(/** @type {string} */ (e2.source.name)) || + /** @type {string} */ + (e1.target.name).localeCompare(/** @type {string} */ (e2.target.name)); for (const source of this.compilers) { const dependencies = this.dependencies.get(source); if (dependencies) { @@ -340,8 +337,8 @@ module.exports = class MultiCompiler { * @returns {Compiler[]} compilers */ const getReadyCompilers = () => { - let readyCompilers = []; - let list = remainingCompilers; + const readyCompilers = []; + const list = remainingCompilers; remainingCompilers = []; for (const c of list) { const dependencies = this.dependencies.get(c); @@ -514,7 +511,7 @@ module.exports = class MultiCompiler { /** @type {SetupResult[]} */ const setupResults = []; - nodes.forEach((node, i) => { + for (const [i, node] of nodes.entries()) { setupResults.push( (node.setupResult = setup( node.compiler, @@ -525,7 +522,7 @@ module.exports = class MultiCompiler { () => nodeInvalid(node) )) ); - }); + } let processing = true; const processQueue = () => { if (processing) return; @@ -533,6 +530,7 @@ module.exports = class MultiCompiler { process.nextTick(processQueueWorker); }; const processQueueWorker = () => { + // eslint-disable-next-line no-unmodified-loop-condition while (running < parallelism && queue.length > 0 && !errored) { const node = /** @type {Node} */ (queue.dequeue()); if ( diff --git a/node_modules/webpack/lib/MultiStats.js b/node_modules/webpack/lib/MultiStats.js index 4f443bd..bf4771a 100644 --- a/node_modules/webpack/lib/MultiStats.js +++ b/node_modules/webpack/lib/MultiStats.js @@ -8,15 +8,25 @@ const identifierUtils = require("./util/identifier"); /** @typedef {import("../declarations/WebpackOptions").StatsOptions} StatsOptions */ +/** @typedef {import("./Compilation").CreateStatsOptionsContext} CreateStatsOptionsContext */ +/** @typedef {import("./Compilation").NormalizedStatsOptions} NormalizedStatsOptions */ /** @typedef {import("./Stats")} Stats */ /** @typedef {import("./stats/DefaultStatsFactoryPlugin").KnownStatsCompilation} KnownStatsCompilation */ /** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsCompilation} StatsCompilation */ +/** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsError} StatsError */ +/** + * @param {string} str string + * @param {string} prefix pref + * @returns {string} indent + */ const indent = (str, prefix) => { - const rem = str.replace(/\n([^\n])/g, "\n" + prefix + "$1"); + const rem = str.replace(/\n([^\n])/g, `\n${prefix}$1`); return prefix + rem; }; +/** @typedef {{ version: boolean, hash: boolean, errorsCount: boolean, warningsCount: boolean, errors: boolean, warnings: boolean, children: NormalizedStatsOptions[] }} ChildOptions */ + class MultiStats { /** * @param {Stats[]} stats the child stats @@ -43,13 +53,30 @@ class MultiStats { return this.stats.some(stat => stat.hasWarnings()); } + /** + * @param {string | boolean | StatsOptions | undefined} options stats options + * @param {CreateStatsOptionsContext} context context + * @returns {ChildOptions} context context + */ _createChildOptions(options, context) { - if (!options) { - options = {}; - } - const { children: childrenOptions = undefined, ...baseOptions } = - typeof options === "string" ? { preset: options } : options; + const getCreateStatsOptions = () => { + if (!options) { + options = {}; + } + + const { children: childrenOptions = undefined, ...baseOptions } = + typeof options === "string" + ? { preset: options } + : /** @type {StatsOptions} */ (options); + + return { childrenOptions, baseOptions }; + }; + const children = this.stats.map((stat, idx) => { + if (typeof options === "boolean") { + return stat.compilation.createStatsOptions(options, context); + } + const { childrenOptions, baseOptions } = getCreateStatsOptions(); const childOptions = Array.isArray(childrenOptions) ? childrenOptions[idx] : childrenOptions; @@ -77,81 +104,96 @@ class MultiStats { } /** - * @param {any} options stats options + * @param {(string | boolean | StatsOptions)=} options stats options * @returns {StatsCompilation} json output */ toJson(options) { - options = this._createChildOptions(options, { forToString: false }); + const childOptions = this._createChildOptions(options, { + forToString: false + }); /** @type {KnownStatsCompilation} */ const obj = {}; obj.children = this.stats.map((stat, idx) => { - const obj = stat.toJson(options.children[idx]); + const obj = stat.toJson(childOptions.children[idx]); const compilationName = stat.compilation.name; const name = compilationName && identifierUtils.makePathsRelative( - options.context, + stat.compilation.compiler.context, compilationName, stat.compilation.compiler.root ); obj.name = name; return obj; }); - if (options.version) { + if (childOptions.version) { obj.version = obj.children[0].version; } - if (options.hash) { + if (childOptions.hash) { obj.hash = obj.children.map(j => j.hash).join(""); } - const mapError = (j, obj) => { - return { - ...obj, - compilerPath: obj.compilerPath - ? `${j.name}.${obj.compilerPath}` - : j.name - }; - }; - if (options.errors) { + /** + * @param {StatsCompilation} j stats error + * @param {StatsError} obj Stats error + * @returns {TODO} result + */ + const mapError = (j, obj) => ({ + ...obj, + compilerPath: obj.compilerPath ? `${j.name}.${obj.compilerPath}` : j.name + }); + if (childOptions.errors) { obj.errors = []; for (const j of obj.children) { - for (const i of j.errors) { + const errors = + /** @type {NonNullable} */ + (j.errors); + for (const i of errors) { obj.errors.push(mapError(j, i)); } } } - if (options.warnings) { + if (childOptions.warnings) { obj.warnings = []; for (const j of obj.children) { - for (const i of j.warnings) { + const warnings = + /** @type {NonNullable} */ + (j.warnings); + for (const i of warnings) { obj.warnings.push(mapError(j, i)); } } } - if (options.errorsCount) { + if (childOptions.errorsCount) { obj.errorsCount = 0; for (const j of obj.children) { - obj.errorsCount += j.errorsCount; + obj.errorsCount += /** @type {number} */ (j.errorsCount); } } - if (options.warningsCount) { + if (childOptions.warningsCount) { obj.warningsCount = 0; for (const j of obj.children) { - obj.warningsCount += j.warningsCount; + obj.warningsCount += /** @type {number} */ (j.warningsCount); } } return obj; } + /** + * @param {(string | boolean | StatsOptions)=} options stats options + * @returns {string} string output + */ toString(options) { - options = this._createChildOptions(options, { forToString: true }); + const childOptions = this._createChildOptions(options, { + forToString: true + }); const results = this.stats.map((stat, idx) => { - const str = stat.toString(options.children[idx]); + const str = stat.toString(childOptions.children[idx]); const compilationName = stat.compilation.name; const name = compilationName && identifierUtils .makePathsRelative( - options.context, + stat.compilation.compiler.context, compilationName, stat.compilation.compiler.root ) diff --git a/node_modules/webpack/lib/MultiWatching.js b/node_modules/webpack/lib/MultiWatching.js index b4fcd87..cfe95f1 100644 --- a/node_modules/webpack/lib/MultiWatching.js +++ b/node_modules/webpack/lib/MultiWatching.js @@ -62,7 +62,7 @@ class MultiWatching { * @returns {void} */ close(callback) { - asyncLib.forEach( + asyncLib.each( this.watchings, (watching, finishedCallback) => { watching.close(finishedCallback); diff --git a/node_modules/webpack/lib/NormalModule.js b/node_modules/webpack/lib/NormalModule.js index 9006261..54cdddb 100644 --- a/node_modules/webpack/lib/NormalModule.js +++ b/node_modules/webpack/lib/NormalModule.js @@ -65,12 +65,13 @@ const memoize = require("./util/memoize"); /** @typedef {import("./Module").KnownBuildInfo} KnownBuildInfo */ /** @typedef {import("./Module").LibIdentOptions} LibIdentOptions */ /** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */ -/** @typedef {import("./Module").SourceTypes} SourceTypes */ +/** @typedef {import("./Generator").SourceTypes} SourceTypes */ /** @typedef {import("./Module").UnsafeCacheData} UnsafeCacheData */ /** @typedef {import("./ModuleGraph")} ModuleGraph */ /** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */ /** @typedef {import("./ModuleTypeConstants").JavaScriptModuleTypes} JavaScriptModuleTypes */ /** @typedef {import("./NormalModuleFactory")} NormalModuleFactory */ +/** @typedef {import("./NormalModuleFactory").ResourceDataWithData} ResourceDataWithData */ /** @typedef {import("./Parser")} Parser */ /** @typedef {import("./RequestShortener")} RequestShortener */ /** @typedef {import("./ResolverFactory").ResolveContext} ResolveContext */ @@ -82,12 +83,27 @@ const memoize = require("./util/memoize"); /** @typedef {import("./util/Hash")} Hash */ /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */ /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */ +/** @typedef {import("./util/createHash").Algorithm} Algorithm */ +/** + * @template T + * @typedef {import("./util/deprecation").FakeHook} FakeHook + */ /** @typedef {{[k: string]: any}} ParserOptions */ /** @typedef {{[k: string]: any}} GeneratorOptions */ /** @typedef {UnsafeCacheData & { parser: undefined | Parser, parserOptions: undefined | ParserOptions, generator: undefined | Generator, generatorOptions: undefined | GeneratorOptions }} NormalModuleUnsafeCacheData */ +/** + * @template T + * @typedef {import("../declarations/LoaderContext").LoaderContext} LoaderContext + */ + +/** + * @template T + * @typedef {import("../declarations/LoaderContext").NormalModuleLoaderContext} NormalModuleLoaderContext + */ + /** * @typedef {object} SourceMap * @property {number} version @@ -184,11 +200,14 @@ const asBuffer = input => { }; class NonErrorEmittedError extends WebpackError { + /** + * @param {any} error value which is not an instance of Error + */ constructor(error) { super(); this.name = "NonErrorEmittedError"; - this.message = "(Emitted value instead of an instance of Error) " + error; + this.message = `(Emitted value instead of an instance of Error) ${error}`; } } @@ -200,12 +219,12 @@ makeSerializable( /** * @typedef {object} NormalModuleCompilationHooks - * @property {SyncHook<[object, NormalModule]>} loader - * @property {SyncHook<[LoaderItem[], NormalModule, object]>} beforeLoaders + * @property {SyncHook<[LoaderContext, NormalModule]>} loader + * @property {SyncHook<[LoaderItem[], NormalModule, LoaderContext]>} beforeLoaders * @property {SyncHook<[NormalModule]>} beforeParse * @property {SyncHook<[NormalModule]>} beforeSnapshot - * @property {HookMap>} readResourceForScheme - * @property {HookMap>} readResource + * @property {HookMap>>} readResourceForScheme + * @property {HookMap], string | Buffer | null>>} readResource * @property {AsyncSeriesBailHook<[NormalModule, NeedBuildContext], boolean>} needBuild */ @@ -251,20 +270,32 @@ class NormalModule extends Module { beforeSnapshot: new SyncHook(["module"]), // TODO webpack 6 deprecate readResourceForScheme: new HookMap(scheme => { - const hook = hooks.readResource.for(scheme); + const hook = + /** @type {NormalModuleCompilationHooks} */ + (hooks).readResource.for(scheme); return createFakeHook( - /** @type {AsyncSeriesBailHook<[string, NormalModule], string | Buffer>} */ ({ + /** @type {AsyncSeriesBailHook<[string, NormalModule], string | Buffer | null>} */ ({ tap: (options, fn) => hook.tap(options, loaderContext => - fn(loaderContext.resource, loaderContext._module) + fn( + loaderContext.resource, + /** @type {NormalModule} */ (loaderContext._module) + ) ), tapAsync: (options, fn) => hook.tapAsync(options, (loaderContext, callback) => - fn(loaderContext.resource, loaderContext._module, callback) + fn( + loaderContext.resource, + /** @type {NormalModule} */ (loaderContext._module), + callback + ) ), tapPromise: (options, fn) => hook.tapPromise(options, loaderContext => - fn(loaderContext.resource, loaderContext._module) + fn( + loaderContext.resource, + /** @type {NormalModule} */ (loaderContext._module) + ) ) }) ); @@ -343,7 +374,7 @@ class NormalModule extends Module { this._source = null; /** * @private - * @type {Map | undefined} + * @type {Map | undefined} */ this._sourceSizes = undefined; /** @@ -369,12 +400,10 @@ class NormalModule extends Module { if (this.layer === null) { if (this.type === JAVASCRIPT_MODULE_TYPE_AUTO) { return this.request; - } else { - return `${this.type}|${this.request}`; } - } else { - return `${this.type}|${this.request}|${this.layer}`; + return `${this.type}|${this.request}`; } + return `${this.type}|${this.request}|${this.layer}`; } /** @@ -382,7 +411,7 @@ class NormalModule extends Module { * @returns {string} a user readable identifier of the module */ readableIdentifier(requestShortener) { - return requestShortener.shorten(this.userRequest); + return /** @type {string} */ (requestShortener.shorten(this.userRequest)); } /** @@ -556,30 +585,36 @@ class NormalModule extends Module { /** * @returns {ResolveContext} resolve context */ - const getResolveContext = () => { - return { - fileDependencies: { - add: d => /** @type {TODO} */ (loaderContext).addDependency(d) - }, - contextDependencies: { - add: d => /** @type {TODO} */ (loaderContext).addContextDependency(d) - }, - missingDependencies: { - add: d => /** @type {TODO} */ (loaderContext).addMissingDependency(d) - } - }; - }; + const getResolveContext = () => ({ + fileDependencies: { + add: d => /** @type {TODO} */ (loaderContext).addDependency(d) + }, + contextDependencies: { + add: d => /** @type {TODO} */ (loaderContext).addContextDependency(d) + }, + missingDependencies: { + add: d => /** @type {TODO} */ (loaderContext).addMissingDependency(d) + } + }); const getAbsolutify = memoize(() => absolutify.bindCache(compilation.compiler.root) ); const getAbsolutifyInContext = memoize(() => - absolutify.bindContextCache(this.context, compilation.compiler.root) + absolutify.bindContextCache( + /** @type {string} */ + (this.context), + compilation.compiler.root + ) ); const getContextify = memoize(() => contextify.bindCache(compilation.compiler.root) ); const getContextifyInContext = memoize(() => - contextify.bindContextCache(this.context, compilation.compiler.root) + contextify.bindContextCache( + /** @type {string} */ + (this.context), + compilation.compiler.root + ) ); const utils = { /** @@ -587,28 +622,29 @@ class NormalModule extends Module { * @param {string} request request * @returns {string} result */ - absolutify: (context, request) => { - return context === this.context + absolutify: (context, request) => + context === this.context ? getAbsolutifyInContext()(request) - : getAbsolutify()(context, request); - }, + : getAbsolutify()(context, request), /** * @param {string} context context * @param {string} request request * @returns {string} result */ - contextify: (context, request) => { - return context === this.context + contextify: (context, request) => + context === this.context ? getContextifyInContext()(request) - : getContextify()(context, request); - }, + : getContextify()(context, request), /** * @param {(string | typeof import("./util/Hash"))=} type type * @returns {Hash} hash */ - createHash: type => { - return createHash(type || compilation.outputOptions.hashFunction); - } + createHash: type => + createHash( + type || + /** @type {Algorithm} */ + (compilation.outputOptions.hashFunction) + ) }; /** @type {import("../declarations/LoaderContext").NormalModuleLoaderContext} */ const loaderContext = { @@ -622,8 +658,10 @@ class NormalModule extends Module { if (options.startsWith("{") && options.endsWith("}")) { try { options = parseJson(options); - } catch (e) { - throw new Error(`Cannot parse string options: ${e.message}`); + } catch (err) { + throw new Error( + `Cannot parse string options: ${/** @type {Error} */ (err).message}` + ); } } else { options = querystring.parse(options, "&", "=", { @@ -738,17 +776,21 @@ class NormalModule extends Module { utils, rootContext: /** @type {string} */ (options.context), webpack: true, - sourceMap: !!this.useSourceMap, + sourceMap: Boolean(this.useSourceMap), mode: options.mode || "production", + hashFunction: /** @type {TODO} */ (options.output.hashFunction), + hashDigest: /** @type {string} */ (options.output.hashDigest), + hashDigestLength: /** @type {number} */ (options.output.hashDigestLength), + hashSalt: /** @type {string} */ (options.output.hashSalt), _module: this, _compilation: compilation, _compiler: compilation.compiler, - fs: fs + fs }; Object.assign(loaderContext, options.loader); - hooks.loader.call(loaderContext, this); + hooks.loader.call(/** @type {LoaderContext} */ (loaderContext), this); return loaderContext; } @@ -775,7 +817,7 @@ class NormalModule extends Module { /** * @param {string} context the compilation context * @param {string | Buffer} content the content - * @param {(string | SourceMapSource)=} sourceMap an optional source map + * @param {(string | SourceMapSource | null)=} sourceMap an optional source map * @param {object=} associatedObjectForCache object for caching * @returns {Source} the created source */ @@ -832,7 +874,14 @@ class NormalModule extends Module { hooks ); - const processResult = (err, result) => { + /** @typedef {[string | Buffer, string | SourceMapSource, Record]} Result */ + + /** + * @param {Error | null} err err + * @param {(Result | null)=} _result result + * @returns {void} + */ + const processResult = (err, _result) => { if (err) { if (!(err instanceof Error)) { err = new NonErrorEmittedError(err); @@ -848,6 +897,7 @@ class NormalModule extends Module { return callback(error); } + const result = /** @type {Result} */ (_result); const source = result[0]; const sourceMap = result.length >= 1 ? result[1] : null; const extraInfo = result.length >= 2 ? result[2] : null; @@ -896,9 +946,13 @@ class NormalModule extends Module { buildInfo.cacheable = true; try { - hooks.beforeLoaders.call(this.loaders, this, loaderContext); + hooks.beforeLoaders.call( + this.loaders, + this, + /** @type {LoaderContext} */ (loaderContext) + ); } catch (err) { - processResult(err); + processResult(/** @type {Error} */ (err)); return; } @@ -912,6 +966,11 @@ class NormalModule extends Module { resource: this.resource, loaders: this.loaders, context: loaderContext, + /** + * @param {LoaderContext} loaderContext the loader context + * @param {string} resourcePath the resource Path + * @param {(err: Error | null, result?: string | Buffer) => void} callback callback + */ processResource: (loaderContext, resourcePath, callback) => { const resource = loaderContext.resource; const scheme = getScheme(resource); @@ -920,7 +979,13 @@ class NormalModule extends Module { .callAsync(loaderContext, (err, result) => { if (err) return callback(err); if (typeof result !== "string" && !result) { - return callback(new UnhandledSchemeError(scheme, resource)); + return callback( + new UnhandledSchemeError( + /** @type {string} */ + (scheme), + resource + ) + ); } return callback(null, result); }); @@ -1037,7 +1102,10 @@ class NormalModule extends Module { * @private */ _initBuildHash(compilation) { - const hash = createHash(compilation.outputOptions.hashFunction); + const hash = createHash( + /** @type {Algorithm} */ + (compilation.outputOptions.hashFunction) + ); if (this._source) { hash.update("source"); this._source.updateHash(hash); @@ -1128,7 +1196,7 @@ class NormalModule extends Module { try { hooks.beforeSnapshot.call(this); } catch (err) { - this.markModuleAsErrored(err); + this.markModuleAsErrored(/** @type {WebpackError} */ (err)); return callback(); } @@ -1140,7 +1208,7 @@ class NormalModule extends Module { // add warning for all non-absolute paths in fileDependencies, etc // This makes it easier to find problems with watching and/or caching /** @type {undefined | Set} */ - let nonAbsoluteDependencies = undefined; + let nonAbsoluteDependencies; /** * @param {LazySet} deps deps */ @@ -1155,7 +1223,8 @@ class NormalModule extends Module { const depWithoutGlob = dep.replace(/[\\/]?\*.*$/, ""); const absolute = join( compilation.fileSystemInfo.fs, - this.context, + /** @type {string} */ + (this.context), depWithoutGlob ); if (absolute !== dep && ABSOLUTE_PATH_REGEX.test(absolute)) { @@ -1168,7 +1237,7 @@ class NormalModule extends Module { : deps ).add(absolute); } - } catch (e) { + } catch (_err) { // ignore } } @@ -1218,7 +1287,7 @@ class NormalModule extends Module { try { hooks.beforeParse.call(this); } catch (err) { - this.markModuleAsErrored(err); + this.markModuleAsErrored(/** @type {WebpackError} */ (err)); this._initBuildHash(compilation); return callback(); } @@ -1241,11 +1310,11 @@ class NormalModule extends Module { source, current: this, module: this, - compilation: compilation, - options: options + compilation, + options }); - } catch (e) { - handleParseError(/** @type {Error} */ (e)); + } catch (parseErr) { + handleParseError(/** @type {Error} */ (parseErr)); return; } handleParseResult(); @@ -1305,9 +1374,8 @@ class NormalModule extends Module { // When caching is implemented here, make sure to not cache when // at least one circular connection was in the loop above return current; - } else { - return true; } + return true; } /** @@ -1348,15 +1416,13 @@ class NormalModule extends Module { } /** @type {function(): Map} */ - const getData = () => { - return this._codeGeneratorData; - }; + const getData = () => this._codeGeneratorData; const sources = new Map(); for (const type of sourceTypes || chunkGraph.getModuleSourceTypes(this)) { const source = this.error ? new RawSource( - "throw new Error(" + JSON.stringify(this.error.message) + ");" + `throw new Error(${JSON.stringify(this.error.message)});` ) : /** @type {Generator} */ (this.generator).generate(this, { dependencyTemplates, @@ -1453,7 +1519,7 @@ class NormalModule extends Module { ) ); } - callback(null, !!needBuild); + callback(null, Boolean(needBuild)); }); }); } @@ -1519,7 +1585,8 @@ class NormalModule extends Module { */ updateHash(hash, context) { hash.update(/** @type {BuildInfo} */ (this.buildInfo).hash); - this.generator.updateHash(hash, { + /** @type {Generator} */ + (this.generator).updateHash(hash, { module: this, ...context }); @@ -1540,24 +1607,28 @@ class NormalModule extends Module { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + * @returns {TODO} Module + */ static deserialize(context) { const obj = new NormalModule({ // will be deserialized by Module - layer: null, + layer: /** @type {EXPECTED_ANY} */ (null), type: "", // will be filled by updateCacheModule resource: "", context: "", - request: null, - userRequest: null, - rawRequest: null, - loaders: null, - matchResource: null, - parser: null, - parserOptions: null, - generator: null, - generatorOptions: null, - resolveOptions: null + request: /** @type {EXPECTED_ANY} */ (null), + userRequest: /** @type {EXPECTED_ANY} */ (null), + rawRequest: /** @type {EXPECTED_ANY} */ (null), + loaders: /** @type {EXPECTED_ANY} */ (null), + matchResource: /** @type {EXPECTED_ANY} */ (null), + parser: /** @type {EXPECTED_ANY} */ (null), + parserOptions: /** @type {EXPECTED_ANY} */ (null), + generator: /** @type {EXPECTED_ANY} */ (null), + generatorOptions: /** @type {EXPECTED_ANY} */ (null), + resolveOptions: /** @type {EXPECTED_ANY} */ (null) }); obj.deserialize(context); return obj; diff --git a/node_modules/webpack/lib/NormalModuleFactory.js b/node_modules/webpack/lib/NormalModuleFactory.js index 1cf3ac0..546bd59 100644 --- a/node_modules/webpack/lib/NormalModuleFactory.js +++ b/node_modules/webpack/lib/NormalModuleFactory.js @@ -52,8 +52,8 @@ const { /** @typedef {import("./dependencies/ModuleDependency")} ModuleDependency */ /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */ -/** @typedef {Pick} ModuleSettings */ -/** @typedef {Partial} CreateData */ +/** @typedef {Pick} ModuleSettings */ +/** @typedef {Partial} CreateData */ /** * @typedef {object} ResolveData @@ -68,6 +68,7 @@ const { * @property {LazySet} fileDependencies * @property {LazySet} missingDependencies * @property {LazySet} contextDependencies + * @property {Module=} ignoredModule * @property {boolean} cacheable allow to use the unsafe cache */ @@ -116,15 +117,15 @@ const loaderToIdent = data => { return data.loader; } if (typeof data.options === "string") { - return data.loader + "?" + data.options; + return `${data.loader}?${data.options}`; } if (typeof data.options !== "object") { throw new Error("loader options must be string or object"); } if (data.ident) { - return data.loader + "??" + data.ident; + return `${data.loader}??${data.ident}`; } - return data.loader + "?" + JSON.stringify(data.options); + return `${data.loader}?${JSON.stringify(data.options)}`; }; /** @@ -135,7 +136,7 @@ const loaderToIdent = data => { const stringifyLoadersAndResource = (loaders, resource) => { let str = ""; for (const loader of loaders) { - str += loaderToIdent(loader) + "!"; + str += `${loaderToIdent(loader)}!`; } return str + resource; }; @@ -145,16 +146,14 @@ const stringifyLoadersAndResource = (loaders, resource) => { * @param {(err?: null | Error) => void} callback callback * @returns {(err?: null | Error) => void} callback */ -const needCalls = (times, callback) => { - return err => { - if (--times === 0) { - return callback(err); - } - if (err && times > 0) { - times = NaN; - return callback(err); - } - }; +const needCalls = (times, callback) => err => { + if (--times === 0) { + return callback(err); + } + if (err && times > 0) { + times = Number.NaN; + return callback(err); + } }; /** @@ -171,20 +170,18 @@ const mergeGlobalOptions = (globalOptions, type, localOptions) => { let current = ""; for (const part of parts) { current = current ? `${current}/${part}` : part; - const options = globalOptions[current]; + const options = + /** @type {T} */ + (globalOptions[/** @type {keyof T} */ (current)]); if (typeof options === "object") { - if (result === undefined) { - result = options; - } else { - result = cachedCleverMerge(result, options); - } + result = + result === undefined ? options : cachedCleverMerge(result, options); } } if (result === undefined) { return localOptions; - } else { - return cachedCleverMerge(result, localOptions); } + return cachedCleverMerge(result, localOptions); }; // TODO webpack 6 remove @@ -200,9 +197,7 @@ const deprecationChangedHookMessage = (name, hook) => { * @param {TODO} tapped tapped * @returns {string} name */ - tapped => { - return tapped.name; - } + tapped => tapped.name ) .join(", "); @@ -227,16 +222,19 @@ const ruleSetCompiler = new RuleSetCompiler([ new BasicMatcherRulePlugin("issuer"), new BasicMatcherRulePlugin("compiler"), new BasicMatcherRulePlugin("issuerLayer"), - new ObjectMatcherRulePlugin( - "assert", - "assertions", - value => value && /** @type {any} */ (value)._isLegacyAssert !== undefined - ), - new ObjectMatcherRulePlugin( - "with", - "assertions", - value => value && !(/** @type {any} */ (value)._isLegacyAssert) - ), + new ObjectMatcherRulePlugin("assert", "assertions", value => { + if (value) { + return /** @type {any} */ (value)._isLegacyAssert !== undefined; + } + + return false; + }), + new ObjectMatcherRulePlugin("with", "assertions", value => { + if (value) { + return !(/** @type {any} */ (value)._isLegacyAssert); + } + return false; + }), new ObjectMatcherRulePlugin("descriptionData"), new BasicEffectRulePlugin("type"), new BasicEffectRulePlugin("sideEffects"), @@ -254,7 +252,7 @@ class NormalModuleFactory extends ModuleFactory { * @param {InputFileSystem} param.fs file system * @param {ResolverFactory} param.resolverFactory resolverFactory * @param {ModuleOptions} param.options options - * @param {object=} param.associatedObjectForCache an object to which the cache will be attached + * @param {object} param.associatedObjectForCache an object to which the cache will be attached * @param {boolean=} param.layers enable layers */ constructor({ @@ -285,13 +283,13 @@ class NormalModuleFactory extends ModuleFactory { afterResolve: new AsyncSeriesBailHook(["resolveData"]), /** @type {AsyncSeriesBailHook<[ResolveData["createData"], ResolveData], Module | void>} */ createModule: new AsyncSeriesBailHook(["createData", "resolveData"]), - /** @type {SyncWaterfallHook<[Module, ResolveData["createData"], ResolveData], Module>} */ + /** @type {SyncWaterfallHook<[Module, ResolveData["createData"], ResolveData]>} */ module: new SyncWaterfallHook(["module", "createData", "resolveData"]), - /** @type {HookMap>} */ + /** @type {HookMap>} */ createParser: new HookMap(() => new SyncBailHook(["parserOptions"])), /** @type {HookMap>} */ parser: new HookMap(() => new SyncHook(["parser", "parserOptions"])), - /** @type {HookMap>} */ + /** @type {HookMap>} */ createGenerator: new HookMap( () => new SyncBailHook(["generatorOptions"]) ), @@ -299,7 +297,7 @@ class NormalModuleFactory extends ModuleFactory { generator: new HookMap( () => new SyncHook(["generator", "generatorOptions"]) ), - /** @type {HookMap>} */ + /** @type {HookMap>} */ createModuleClass: new HookMap( () => new SyncBailHook(["createData", "resolveData"]) ) @@ -348,8 +346,10 @@ class NormalModuleFactory extends ModuleFactory { if (typeof result === "object") throw new Error( - deprecationChangedHookMessage("resolve", this.hooks.resolve) + - " Returning a Module object will result in this module used as result." + `${deprecationChangedHookMessage( + "resolve", + this.hooks.resolve + )} Returning a Module object will result in this module used as result.` ); this.hooks.afterResolve.callAsync(resolveData, (err, result) => { @@ -380,14 +380,16 @@ class NormalModuleFactory extends ModuleFactory { // TODO webpack 6 make it required and move javascript/wasm/asset properties to own module createdModule = this.hooks.createModuleClass .for( - /** @type {ModuleSettings} */ (createData.settings).type + /** @type {ModuleSettings} */ + (createData.settings).type ) .call(createData, resolveData); if (!createdModule) { createdModule = /** @type {Module} */ ( new NormalModule( - /** @type {NormalModuleCreateData} */ (createData) + /** @type {NormalModuleCreateData} */ + (createData) ) ); } @@ -427,7 +429,7 @@ class NormalModuleFactory extends ModuleFactory { const loaderResolver = this.getResolver("loader"); /** @type {ResourceData | undefined} */ - let matchResourceData = undefined; + let matchResourceData; /** @type {string} */ let unresolvedResource; /** @type {ParsedLoaderRequest[]} */ @@ -538,8 +540,8 @@ class NormalModuleFactory extends ModuleFactory { item.ident = ident; } } - } catch (e) { - return callback(/** @type {Error} */ (e)); + } catch (identErr) { + return callback(/** @type {Error} */ (identErr)); } if (!resourceData) { @@ -617,10 +619,15 @@ class NormalModuleFactory extends ModuleFactory { } else if ( typeof r.value === "object" && r.value !== null && - typeof settings[r.type] === "object" && - settings[r.type] !== null + typeof settings[ + /** @type {keyof ModuleSettings} */ (r.type) + ] === "object" && + settings[/** @type {keyof ModuleSettings} */ (r.type)] !== null ) { - settings[r.type] = cachedCleverMerge(settings[r.type], r.value); + settings[r.type] = cachedCleverMerge( + settings[/** @type {keyof ModuleSettings} */ (r.type)], + r.value + ); } else { settings[r.type] = r.value; } @@ -652,7 +659,7 @@ class NormalModuleFactory extends ModuleFactory { } for (const loader of /** @type {LoaderItem[]} */ (preLoaders)) allLoaders.push(loader); - let type = /** @type {string} */ (settings.type); + const type = /** @type {string} */ (settings.type); const resolveOptions = settings.resolve; const layer = settings.layer; if (layer !== undefined && !layers) { @@ -688,8 +695,8 @@ class NormalModuleFactory extends ModuleFactory { generatorOptions: settings.generator, resolveOptions }); - } catch (e) { - return callback(/** @type {Error} */ (e)); + } catch (createDataErr) { + return callback(/** @type {Error} */ (createDataErr)); } callback(); }); @@ -772,12 +779,17 @@ class NormalModuleFactory extends ModuleFactory { unresolvedResource, normalResolver, resolveContext, - (err, resolvedResource, resolvedResourceResolveData) => { + (err, _resolvedResource, resolvedResourceResolveData) => { if (err) return continueCallback(err); - if (resolvedResource !== false) { + if (_resolvedResource !== false) { + const resolvedResource = + /** @type {string} */ + (_resolvedResource); resourceData = { resource: resolvedResource, - data: resolvedResourceResolveData, + data: + /** @type {ResolveRequest} */ + (resolvedResourceResolveData), ...cacheParseResource(resolvedResource) }; } @@ -883,12 +895,19 @@ class NormalModuleFactory extends ModuleFactory { // Ignored if (result === false) { - return callback(null, { + /** @type {ModuleFactoryResult} * */ + const factoryResult = { fileDependencies, missingDependencies, contextDependencies, cacheable: resolveData.cacheable - }); + }; + + if (resolveData.ignoredModule) { + factoryResult.module = resolveData.ignoredModule; + } + + return callback(null, factoryResult); } if (typeof result === "object") @@ -909,6 +928,7 @@ class NormalModuleFactory extends ModuleFactory { }); } + /** @type {ModuleFactoryResult} * */ const factoryResult = { module, fileDependencies, @@ -1066,13 +1086,12 @@ Add the extension to the request.` /(\.[^.]+)(\?|$)/, "$2" ); - if (resolver.options.extensions.has(match[1])) { - hint = `Did you mean '${fixedRequest}'?`; - } else { - hint = `Did you mean '${fixedRequest}'? Also note that '${match[1]}' is not in 'resolve.extensions' yet and need to be added for this to work?`; - } + hint = resolver.options.extensions.has(match[1]) + ? `Did you mean '${fixedRequest}'?` + : `Did you mean '${fixedRequest}'? Also note that '${match[1]}' is not in 'resolve.extensions' yet and need to be added for this to work?`; } else { - hint = `Did you mean to omit the extension or to remove 'resolve.enforceExtension'?`; + hint = + "Did you mean to omit the extension or to remove 'resolve.enforceExtension'?"; } return callback( null, @@ -1151,18 +1170,17 @@ If changing the source code is not an option there is also a resolve options cal if ( err && /^[^/]*$/.test(item.loader) && - !/-loader$/.test(item.loader) + !item.loader.endsWith("-loader") ) { return resolver.resolve( contextInfo, context, - item.loader + "-loader", + `${item.loader}-loader`, resolveContext, err2 => { if (!err2) { err.message = - err.message + - "\n" + + `${err.message}\n` + "BREAKING CHANGE: It's no longer allowed to omit the '-loader' suffix when using loaders.\n" + ` You need to specify '${item.loader}-loader' instead of '${item.loader}',\n` + " see https://webpack.js.org/migrate/3/#automatic-loader-module-name-extension-removed"; @@ -1173,7 +1191,9 @@ If changing the source code is not an option there is also a resolve options cal } if (err) return callback(err); - const parsedResult = this._parseResourceWithoutFragment(result); + const parsedResult = this._parseResourceWithoutFragment( + /** @type {string} */ (result) + ); const type = /\.mjs$/i.test(parsedResult.path) ? "module" diff --git a/node_modules/webpack/lib/OptimizationStages.js b/node_modules/webpack/lib/OptimizationStages.js index 35988fb..102d613 100644 --- a/node_modules/webpack/lib/OptimizationStages.js +++ b/node_modules/webpack/lib/OptimizationStages.js @@ -5,6 +5,6 @@ "use strict"; -exports.STAGE_BASIC = -10; -exports.STAGE_DEFAULT = 0; -exports.STAGE_ADVANCED = 10; +module.exports.STAGE_BASIC = -10; +module.exports.STAGE_DEFAULT = 0; +module.exports.STAGE_ADVANCED = 10; diff --git a/node_modules/webpack/lib/OptionsApply.js b/node_modules/webpack/lib/OptionsApply.js index 37a4120..b7a3941 100644 --- a/node_modules/webpack/lib/OptionsApply.js +++ b/node_modules/webpack/lib/OptionsApply.js @@ -5,7 +5,18 @@ "use strict"; +/** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */ +/** @typedef {import("./Compiler")} Compiler */ + class OptionsApply { - process(options, compiler) {} + /** + * @param {WebpackOptions} options options object + * @param {Compiler} compiler compiler object + * @returns {WebpackOptions} options object + */ + process(options, compiler) { + return options; + } } + module.exports = OptionsApply; diff --git a/node_modules/webpack/lib/ProgressPlugin.js b/node_modules/webpack/lib/ProgressPlugin.js index bc7986e..b8be139 100644 --- a/node_modules/webpack/lib/ProgressPlugin.js +++ b/node_modules/webpack/lib/ProgressPlugin.js @@ -15,11 +15,18 @@ const { contextify } = require("./util/identifier"); /** @typedef {import("../declarations/plugins/ProgressPlugin").HandlerFunction} HandlerFunction */ /** @typedef {import("../declarations/plugins/ProgressPlugin").ProgressPluginArgument} ProgressPluginArgument */ /** @typedef {import("../declarations/plugins/ProgressPlugin").ProgressPluginOptions} ProgressPluginOptions */ +/** @typedef {import("./Compilation").FactorizeModuleOptions} FactorizeModuleOptions */ /** @typedef {import("./Dependency")} Dependency */ /** @typedef {import("./Entrypoint").EntryOptions} EntryOptions */ /** @typedef {import("./Module")} Module */ +/** @typedef {import("./ModuleFactory").ModuleFactoryResult} ModuleFactoryResult */ /** @typedef {import("./logging/Logger").Logger} Logger */ +/** + * @template T, K, R + * @typedef {import("./util/AsyncQueue")} AsyncQueue + */ + /** * @typedef {object} CountsData * @property {number} modulesCount modules count @@ -41,9 +48,7 @@ const validate = createSchemaValidation( * @param {number} c c * @returns {number} median */ -const median3 = (a, b, c) => { - return a + b + c - Math.max(a, b, c) - Math.min(a, b, c); -}; +const median3 = (a, b, c) => a + b + c - Math.max(a, b, c) - Math.min(a, b, c); /** * @param {boolean | null | undefined} profile need profile @@ -78,11 +83,12 @@ const createDefaultHandler = (profile, logger) => { if (lastStateItem.value) { let reportState = lastStateItem.value; if (i > 0) { - reportState = lastStateInfo[i - 1].value + " > " + reportState; + reportState = `${lastStateInfo[i - 1].value} > ${reportState}`; } const stateMsg = `${" | ".repeat(i)}${diff} ms ${reportState}`; const d = diff; // This depends on timing so we ignore it for coverage + /* eslint-disable no-lone-blocks */ /* istanbul ignore next */ { if (d > 10000) { @@ -97,6 +103,7 @@ const createDefaultHandler = (profile, logger) => { logger.debug(stateMsg); } } + /* eslint-enable no-lone-blocks */ } if (stateItem === undefined) { lastStateInfo.length = i; @@ -121,6 +128,8 @@ const createDefaultHandler = (profile, logger) => { return defaultHandler; }; +const SKIPPED_QUEUE_CONTEXTS = ["import-module", "load-module"]; + /** * @callback ReportProgress * @param {number} p percentage @@ -191,14 +200,14 @@ class ProgressPlugin { const states = compiler.compilers.map( () => /** @type {[number, ...string[]]} */ ([0]) ); - compiler.compilers.forEach((compiler, idx) => { + for (const [idx, item] of compiler.compilers.entries()) { new ProgressPlugin((p, msg, ...args) => { states[idx] = [p, msg, ...args]; let sum = 0; for (const [p] of states) sum += p; handler(sum / states.length, `[${idx}] ${msg}`, ...args); - }).apply(compiler); - }); + }).apply(item); + } } /** @@ -217,7 +226,9 @@ class ProgressPlugin { let lastDependenciesCount = 0; let lastEntriesCount = 0; let modulesCount = 0; + let skippedModulesCount = 0; let dependenciesCount = 0; + let skippedDependenciesCount = 0; let entriesCount = 1; let doneModules = 0; let doneDependencies = 0; @@ -298,7 +309,15 @@ class ProgressPlugin { lastUpdate = Date.now(); }; - const factorizeAdd = () => { + /** + * @template T + * @param {AsyncQueue} factorizeQueue async queue + * @param {T} _item item + */ + const factorizeAdd = (factorizeQueue, _item) => { + if (SKIPPED_QUEUE_CONTEXTS.includes(factorizeQueue.getContext())) { + skippedDependenciesCount++; + } dependenciesCount++; if (dependenciesCount < 50 || dependenciesCount % 100 === 0) updateThrottled(); @@ -310,7 +329,15 @@ class ProgressPlugin { updateThrottled(); }; - const moduleAdd = () => { + /** + * @template T + * @param {AsyncQueue} addModuleQueue async queue + * @param {T} _item item + */ + const moduleAdd = (addModuleQueue, _item) => { + if (SKIPPED_QUEUE_CONTEXTS.includes(addModuleQueue.getContext())) { + skippedModulesCount++; + } modulesCount++; if (modulesCount < 50 || modulesCount % 100 === 0) updateThrottled(); }; @@ -397,12 +424,19 @@ class ProgressPlugin { if (compilation.compiler.isChild()) return Promise.resolve(); return /** @type {Promise} */ (cacheGetPromise).then( async oldData => { + const realModulesCount = modulesCount - skippedModulesCount; + const realDependenciesCount = + dependenciesCount - skippedDependenciesCount; + if ( !oldData || - oldData.modulesCount !== modulesCount || - oldData.dependenciesCount !== dependenciesCount + oldData.modulesCount !== realModulesCount || + oldData.dependenciesCount !== realDependenciesCount ) { - await cache.storePromise({ modulesCount, dependenciesCount }); + await cache.storePromise({ + modulesCount: realModulesCount, + dependenciesCount: realDependenciesCount + }); } } ); @@ -413,19 +447,25 @@ class ProgressPlugin { lastModulesCount = modulesCount; lastEntriesCount = entriesCount; lastDependenciesCount = dependenciesCount; - modulesCount = dependenciesCount = entriesCount = 0; + modulesCount = + skippedModulesCount = + dependenciesCount = + skippedDependenciesCount = + entriesCount = + 0; doneModules = doneDependencies = doneEntries = 0; - compilation.factorizeQueue.hooks.added.tap( - "ProgressPlugin", - factorizeAdd + compilation.factorizeQueue.hooks.added.tap("ProgressPlugin", item => + factorizeAdd(compilation.factorizeQueue, item) ); compilation.factorizeQueue.hooks.result.tap( "ProgressPlugin", factorizeDone ); - compilation.addModuleQueue.hooks.added.tap("ProgressPlugin", moduleAdd); + compilation.addModuleQueue.hooks.added.tap("ProgressPlugin", item => + moduleAdd(compilation.addModuleQueue, item) + ); compilation.processDependenciesQueue.hooks.result.tap( "ProgressPlugin", moduleDone @@ -507,7 +547,7 @@ class ProgressPlugin { afterSeal: "after seal" }; const numberOfHooks = Object.keys(hooks).length; - Object.keys(hooks).forEach((name, idx) => { + for (const [idx, name] of Object.keys(hooks).entries()) { const title = hooks[/** @type {keyof typeof hooks} */ (name)]; const percentage = (idx / numberOfHooks) * 0.25 + 0.7; compilation.hooks[/** @type {keyof typeof hooks} */ (name)].intercept({ @@ -534,7 +574,7 @@ class ProgressPlugin { handler(percentage, "sealing", title, tap.name); } }); - }); + } }); compiler.hooks.make.intercept({ name: "ProgressPlugin", diff --git a/node_modules/webpack/lib/ProvidePlugin.js b/node_modules/webpack/lib/ProvidePlugin.js index 958106d..28c3ce5 100644 --- a/node_modules/webpack/lib/ProvidePlugin.js +++ b/node_modules/webpack/lib/ProvidePlugin.js @@ -58,16 +58,16 @@ class ProvidePlugin { * @returns {void} */ const handler = (parser, parserOptions) => { - Object.keys(definitions).forEach(name => { + for (const name of Object.keys(definitions)) { const request = /** @type {string[]} */ ([]).concat(definitions[name]); const splittedName = name.split("."); if (splittedName.length > 0) { - splittedName.slice(1).forEach((_, i) => { + for (const [i, _] of splittedName.slice(1).entries()) { const name = splittedName.slice(0, i + 1).join("."); parser.hooks.canRename.for(name).tap(PLUGIN_NAME, approve); - }); + } } parser.hooks.expression.for(name).tap(PLUGIN_NAME, expr => { @@ -100,7 +100,7 @@ class ProvidePlugin { parser.walkExpressions(expr.arguments); return true; }); - }); + } }; normalModuleFactory.hooks.parser .for(JAVASCRIPT_MODULE_TYPE_AUTO) diff --git a/node_modules/webpack/lib/RawModule.js b/node_modules/webpack/lib/RawModule.js index 7b59dbc..bd02863 100644 --- a/node_modules/webpack/lib/RawModule.js +++ b/node_modules/webpack/lib/RawModule.js @@ -7,6 +7,7 @@ const { OriginalSource, RawSource } = require("webpack-sources"); const Module = require("./Module"); +const { JS_TYPES } = require("./ModuleSourceTypesConstants"); const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("./ModuleTypeConstants"); const makeSerializable = require("./util/makeSerializable"); @@ -16,11 +17,11 @@ const makeSerializable = require("./util/makeSerializable"); /** @typedef {import("./Compilation")} Compilation */ /** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */ /** @typedef {import("./DependencyTemplates")} DependencyTemplates */ +/** @typedef {import("./Generator").SourceTypes} SourceTypes */ /** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */ /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */ /** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */ /** @typedef {import("./Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */ -/** @typedef {import("./Module").SourceTypes} SourceTypes */ /** @typedef {import("./RequestShortener")} RequestShortener */ /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */ @@ -30,8 +31,6 @@ const makeSerializable = require("./util/makeSerializable"); /** @typedef {import("./util/Hash")} Hash */ /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */ -const TYPES = new Set(["javascript"]); - class RawModule extends Module { /** * @param {string} source source code @@ -51,7 +50,7 @@ class RawModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return TYPES; + return JS_TYPES; } /** diff --git a/node_modules/webpack/lib/RuntimeGlobals.js b/node_modules/webpack/lib/RuntimeGlobals.js index 1455ff9..7d201f6 100644 --- a/node_modules/webpack/lib/RuntimeGlobals.js +++ b/node_modules/webpack/lib/RuntimeGlobals.js @@ -8,157 +8,158 @@ /** * the internal require function */ -exports.require = "__webpack_require__"; +module.exports.require = "__webpack_require__"; /** * access to properties of the internal require function/object */ -exports.requireScope = "__webpack_require__.*"; +module.exports.requireScope = "__webpack_require__.*"; /** * the internal exports object */ -exports.exports = "__webpack_exports__"; +module.exports.exports = "__webpack_exports__"; /** * top-level this need to be the exports object */ -exports.thisAsExports = "top-level-this-exports"; +module.exports.thisAsExports = "top-level-this-exports"; /** * runtime need to return the exports of the last entry module */ -exports.returnExportsFromRuntime = "return-exports-from-runtime"; +module.exports.returnExportsFromRuntime = "return-exports-from-runtime"; /** * the internal module object */ -exports.module = "module"; +module.exports.module = "module"; /** * the internal module object */ -exports.moduleId = "module.id"; +module.exports.moduleId = "module.id"; /** * the internal module object */ -exports.moduleLoaded = "module.loaded"; +module.exports.moduleLoaded = "module.loaded"; /** * the bundle public path */ -exports.publicPath = "__webpack_require__.p"; +module.exports.publicPath = "__webpack_require__.p"; /** * the module id of the entry point */ -exports.entryModuleId = "__webpack_require__.s"; +module.exports.entryModuleId = "__webpack_require__.s"; /** * the module cache */ -exports.moduleCache = "__webpack_require__.c"; +module.exports.moduleCache = "__webpack_require__.c"; /** * the module functions */ -exports.moduleFactories = "__webpack_require__.m"; +module.exports.moduleFactories = "__webpack_require__.m"; /** * the module functions, with only write access */ -exports.moduleFactoriesAddOnly = "__webpack_require__.m (add only)"; +module.exports.moduleFactoriesAddOnly = "__webpack_require__.m (add only)"; /** * the chunk ensure function */ -exports.ensureChunk = "__webpack_require__.e"; +module.exports.ensureChunk = "__webpack_require__.e"; /** * an object with handlers to ensure a chunk */ -exports.ensureChunkHandlers = "__webpack_require__.f"; +module.exports.ensureChunkHandlers = "__webpack_require__.f"; /** * a runtime requirement if ensureChunkHandlers should include loading of chunk needed for entries */ -exports.ensureChunkIncludeEntries = "__webpack_require__.f (include entries)"; +module.exports.ensureChunkIncludeEntries = + "__webpack_require__.f (include entries)"; /** * the chunk prefetch function */ -exports.prefetchChunk = "__webpack_require__.E"; +module.exports.prefetchChunk = "__webpack_require__.E"; /** * an object with handlers to prefetch a chunk */ -exports.prefetchChunkHandlers = "__webpack_require__.F"; +module.exports.prefetchChunkHandlers = "__webpack_require__.F"; /** * the chunk preload function */ -exports.preloadChunk = "__webpack_require__.G"; +module.exports.preloadChunk = "__webpack_require__.G"; /** * an object with handlers to preload a chunk */ -exports.preloadChunkHandlers = "__webpack_require__.H"; +module.exports.preloadChunkHandlers = "__webpack_require__.H"; /** * the exported property define getters function */ -exports.definePropertyGetters = "__webpack_require__.d"; +module.exports.definePropertyGetters = "__webpack_require__.d"; /** * define compatibility on export */ -exports.makeNamespaceObject = "__webpack_require__.r"; +module.exports.makeNamespaceObject = "__webpack_require__.r"; /** * create a fake namespace object */ -exports.createFakeNamespaceObject = "__webpack_require__.t"; +module.exports.createFakeNamespaceObject = "__webpack_require__.t"; /** * compatibility get default export */ -exports.compatGetDefaultExport = "__webpack_require__.n"; +module.exports.compatGetDefaultExport = "__webpack_require__.n"; /** * harmony module decorator */ -exports.harmonyModuleDecorator = "__webpack_require__.hmd"; +module.exports.harmonyModuleDecorator = "__webpack_require__.hmd"; /** * node.js module decorator */ -exports.nodeModuleDecorator = "__webpack_require__.nmd"; +module.exports.nodeModuleDecorator = "__webpack_require__.nmd"; /** * the webpack hash */ -exports.getFullHash = "__webpack_require__.h"; +module.exports.getFullHash = "__webpack_require__.h"; /** * an object containing all installed WebAssembly.Instance export objects keyed by module id */ -exports.wasmInstances = "__webpack_require__.w"; +module.exports.wasmInstances = "__webpack_require__.w"; /** * instantiate a wasm instance from module exports object, id, hash and importsObject */ -exports.instantiateWasm = "__webpack_require__.v"; +module.exports.instantiateWasm = "__webpack_require__.v"; /** * the uncaught error handler for the webpack runtime */ -exports.uncaughtErrorHandler = "__webpack_require__.oe"; +module.exports.uncaughtErrorHandler = "__webpack_require__.oe"; /** * the script nonce */ -exports.scriptNonce = "__webpack_require__.nc"; +module.exports.scriptNonce = "__webpack_require__.nc"; /** * function to load a script tag. @@ -166,101 +167,101 @@ exports.scriptNonce = "__webpack_require__.nc"; * done function is called when loading has finished or timeout occurred. * It will attach to existing script tags with data-webpack == uniqueName + ":" + key or src == url. */ -exports.loadScript = "__webpack_require__.l"; +module.exports.loadScript = "__webpack_require__.l"; /** * function to promote a string to a TrustedScript using webpack's Trusted * Types policy * Arguments: (script: string) => TrustedScript */ -exports.createScript = "__webpack_require__.ts"; +module.exports.createScript = "__webpack_require__.ts"; /** * function to promote a string to a TrustedScriptURL using webpack's Trusted * Types policy * Arguments: (url: string) => TrustedScriptURL */ -exports.createScriptUrl = "__webpack_require__.tu"; +module.exports.createScriptUrl = "__webpack_require__.tu"; /** * function to return webpack's Trusted Types policy * Arguments: () => TrustedTypePolicy */ -exports.getTrustedTypesPolicy = "__webpack_require__.tt"; +module.exports.getTrustedTypesPolicy = "__webpack_require__.tt"; /** * a flag when a chunk has a fetch priority */ -exports.hasFetchPriority = "has fetch priority"; +module.exports.hasFetchPriority = "has fetch priority"; /** * the chunk name of the chunk with the runtime */ -exports.chunkName = "__webpack_require__.cn"; +module.exports.chunkName = "__webpack_require__.cn"; /** * the runtime id of the current runtime */ -exports.runtimeId = "__webpack_require__.j"; +module.exports.runtimeId = "__webpack_require__.j"; /** * the filename of the script part of the chunk */ -exports.getChunkScriptFilename = "__webpack_require__.u"; +module.exports.getChunkScriptFilename = "__webpack_require__.u"; /** * the filename of the css part of the chunk */ -exports.getChunkCssFilename = "__webpack_require__.k"; +module.exports.getChunkCssFilename = "__webpack_require__.k"; /** * a flag when a module/chunk/tree has css modules */ -exports.hasCssModules = "has css modules"; +module.exports.hasCssModules = "has css modules"; /** * the filename of the script part of the hot update chunk */ -exports.getChunkUpdateScriptFilename = "__webpack_require__.hu"; +module.exports.getChunkUpdateScriptFilename = "__webpack_require__.hu"; /** * the filename of the css part of the hot update chunk */ -exports.getChunkUpdateCssFilename = "__webpack_require__.hk"; +module.exports.getChunkUpdateCssFilename = "__webpack_require__.hk"; /** * startup signal from runtime * This will be called when the runtime chunk has been loaded. */ -exports.startup = "__webpack_require__.x"; +module.exports.startup = "__webpack_require__.x"; /** * @deprecated * creating a default startup function with the entry modules */ -exports.startupNoDefault = "__webpack_require__.x (no default handler)"; +module.exports.startupNoDefault = "__webpack_require__.x (no default handler)"; /** * startup signal from runtime but only used to add logic after the startup */ -exports.startupOnlyAfter = "__webpack_require__.x (only after)"; +module.exports.startupOnlyAfter = "__webpack_require__.x (only after)"; /** * startup signal from runtime but only used to add sync logic before the startup */ -exports.startupOnlyBefore = "__webpack_require__.x (only before)"; +module.exports.startupOnlyBefore = "__webpack_require__.x (only before)"; /** * global callback functions for installing chunks */ -exports.chunkCallback = "webpackChunk"; +module.exports.chunkCallback = "webpackChunk"; /** * method to startup an entrypoint with needed chunks. * Signature: (moduleId: Id, chunkIds: Id[]) => any. * Returns the exports of the module or a Promise */ -exports.startupEntrypoint = "__webpack_require__.X"; +module.exports.startupEntrypoint = "__webpack_require__.X"; /** * register deferred code, which will run when certain @@ -270,106 +271,106 @@ exports.startupEntrypoint = "__webpack_require__.X"; * When (priority & 1) it will wait for all other handlers with lower priority to * be executed before itself is executed */ -exports.onChunksLoaded = "__webpack_require__.O"; +module.exports.onChunksLoaded = "__webpack_require__.O"; /** * method to install a chunk that was loaded somehow * Signature: ({ id, ids, modules, runtime }) => void */ -exports.externalInstallChunk = "__webpack_require__.C"; +module.exports.externalInstallChunk = "__webpack_require__.C"; /** * interceptor for module executions */ -exports.interceptModuleExecution = "__webpack_require__.i"; +module.exports.interceptModuleExecution = "__webpack_require__.i"; /** * the global object */ -exports.global = "__webpack_require__.g"; +module.exports.global = "__webpack_require__.g"; /** * an object with all share scopes */ -exports.shareScopeMap = "__webpack_require__.S"; +module.exports.shareScopeMap = "__webpack_require__.S"; /** * The sharing init sequence function (only runs once per share scope). * Has one argument, the name of the share scope. * Creates a share scope if not existing */ -exports.initializeSharing = "__webpack_require__.I"; +module.exports.initializeSharing = "__webpack_require__.I"; /** * The current scope when getting a module from a remote */ -exports.currentRemoteGetScope = "__webpack_require__.R"; +module.exports.currentRemoteGetScope = "__webpack_require__.R"; /** * the filename of the HMR manifest */ -exports.getUpdateManifestFilename = "__webpack_require__.hmrF"; +module.exports.getUpdateManifestFilename = "__webpack_require__.hmrF"; /** * function downloading the update manifest */ -exports.hmrDownloadManifest = "__webpack_require__.hmrM"; +module.exports.hmrDownloadManifest = "__webpack_require__.hmrM"; /** * array with handler functions to download chunk updates */ -exports.hmrDownloadUpdateHandlers = "__webpack_require__.hmrC"; +module.exports.hmrDownloadUpdateHandlers = "__webpack_require__.hmrC"; /** * object with all hmr module data for all modules */ -exports.hmrModuleData = "__webpack_require__.hmrD"; +module.exports.hmrModuleData = "__webpack_require__.hmrD"; /** * array with handler functions when a module should be invalidated */ -exports.hmrInvalidateModuleHandlers = "__webpack_require__.hmrI"; +module.exports.hmrInvalidateModuleHandlers = "__webpack_require__.hmrI"; /** * the prefix for storing state of runtime modules when hmr is enabled */ -exports.hmrRuntimeStatePrefix = "__webpack_require__.hmrS"; +module.exports.hmrRuntimeStatePrefix = "__webpack_require__.hmrS"; /** * the AMD define function */ -exports.amdDefine = "__webpack_require__.amdD"; +module.exports.amdDefine = "__webpack_require__.amdD"; /** * the AMD options */ -exports.amdOptions = "__webpack_require__.amdO"; +module.exports.amdOptions = "__webpack_require__.amdO"; /** * the System polyfill object */ -exports.system = "__webpack_require__.System"; +module.exports.system = "__webpack_require__.System"; /** * the shorthand for Object.prototype.hasOwnProperty * using of it decreases the compiled bundle size */ -exports.hasOwnProperty = "__webpack_require__.o"; +module.exports.hasOwnProperty = "__webpack_require__.o"; /** * the System.register context object */ -exports.systemContext = "__webpack_require__.y"; +module.exports.systemContext = "__webpack_require__.y"; /** * the baseURI of current document */ -exports.baseURI = "__webpack_require__.b"; +module.exports.baseURI = "__webpack_require__.b"; /** * a RelativeURL class when relative URLs are used */ -exports.relativeUrl = "__webpack_require__.U"; +module.exports.relativeUrl = "__webpack_require__.U"; /** * Creates an async module. The body function must be a async function. @@ -383,4 +384,4 @@ exports.relativeUrl = "__webpack_require__.U"; * hasAwaitAfterDependencies?: boolean * ) => void */ -exports.asyncModule = "__webpack_require__.a"; +module.exports.asyncModule = "__webpack_require__.a"; diff --git a/node_modules/webpack/lib/RuntimeModule.js b/node_modules/webpack/lib/RuntimeModule.js index d1ae314..f4fff95 100644 --- a/node_modules/webpack/lib/RuntimeModule.js +++ b/node_modules/webpack/lib/RuntimeModule.js @@ -8,6 +8,7 @@ const { RawSource } = require("webpack-sources"); const OriginalSource = require("webpack-sources").OriginalSource; const Module = require("./Module"); +const { RUNTIME_TYPES } = require("./ModuleSourceTypesConstants"); const { WEBPACK_MODULE_TYPE_RUNTIME } = require("./ModuleTypeConstants"); /** @typedef {import("webpack-sources").Source} Source */ @@ -16,18 +17,16 @@ const { WEBPACK_MODULE_TYPE_RUNTIME } = require("./ModuleTypeConstants"); /** @typedef {import("./ChunkGraph")} ChunkGraph */ /** @typedef {import("./Compilation")} Compilation */ /** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext */ +/** @typedef {import("./Generator").SourceTypes} SourceTypes */ /** @typedef {import("./Module").CodeGenerationContext} CodeGenerationContext */ /** @typedef {import("./Module").CodeGenerationResult} CodeGenerationResult */ /** @typedef {import("./Module").NeedBuildContext} NeedBuildContext */ -/** @typedef {import("./Module").SourceTypes} SourceTypes */ /** @typedef {import("./RequestShortener")} RequestShortener */ /** @typedef {import("./ResolverFactory").ResolverWithOptions} ResolverWithOptions */ /** @typedef {import("./WebpackError")} WebpackError */ /** @typedef {import("./util/Hash")} Hash */ /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */ -const TYPES = new Set([WEBPACK_MODULE_TYPE_RUNTIME]); - class RuntimeModule extends Module { /** * @param {string} name a readable name @@ -127,7 +126,7 @@ class RuntimeModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return TYPES; + return RUNTIME_TYPES; } /** @@ -159,7 +158,7 @@ class RuntimeModule extends Module { try { const source = this.getGeneratedCode(); return source ? source.length : 0; - } catch (e) { + } catch (_err) { return 0; } } diff --git a/node_modules/webpack/lib/RuntimePlugin.js b/node_modules/webpack/lib/RuntimePlugin.js index aae1689..cabdffe 100644 --- a/node_modules/webpack/lib/RuntimePlugin.js +++ b/node_modules/webpack/lib/RuntimePlugin.js @@ -34,10 +34,19 @@ const RuntimeIdRuntimeModule = require("./runtime/RuntimeIdRuntimeModule"); const SystemContextRuntimeModule = require("./runtime/SystemContextRuntimeModule"); const ShareRuntimeModule = require("./sharing/ShareRuntimeModule"); const StringXor = require("./util/StringXor"); +const memoize = require("./util/memoize"); +/** @typedef {import("../declarations/WebpackOptions").LibraryOptions} LibraryOptions */ +/** @typedef {import("../declarations/WebpackOptions").OutputNormalized} OutputNormalized */ /** @typedef {import("./Chunk")} Chunk */ /** @typedef {import("./Compiler")} Compiler */ /** @typedef {import("./Module")} Module */ +/** @typedef {import("./TemplatedPathPlugin").TemplatePath} TemplatePath */ + +const getJavascriptModulesPlugin = memoize(() => + require("./javascript/JavascriptModulesPlugin") +); +const getCssModulesPlugin = memoize(() => require("./css/CssModulesPlugin")); const GLOBALS_ON_REQUIRE = [ RuntimeGlobals.chunkName, @@ -241,13 +250,12 @@ class RuntimePlugin { compilation.hooks.runtimeRequirementInTree .for(RuntimeGlobals.systemContext) .tap("RuntimePlugin", chunk => { - const { outputOptions } = compilation; - const { library: globalLibrary } = outputOptions; const entryOptions = chunk.getEntryOptions(); const libraryType = entryOptions && entryOptions.library !== undefined ? entryOptions.library.type - : globalLibrary.type; + : /** @type {LibraryOptions} */ + (compilation.outputOptions.library).type; if (libraryType === "system") { compilation.addRuntimeModule( @@ -259,7 +267,7 @@ class RuntimePlugin { }); compilation.hooks.runtimeRequirementInTree .for(RuntimeGlobals.getChunkScriptFilename) - .tap("RuntimePlugin", (chunk, set) => { + .tap("RuntimePlugin", (chunk, set, { chunkGraph }) => { if ( typeof compilation.outputOptions.chunkFilename === "string" && /\[(full)?hash(:\d+)?\]/.test( @@ -275,10 +283,13 @@ class RuntimePlugin { "javascript", RuntimeGlobals.getChunkScriptFilename, chunk => - chunk.filenameTemplate || - (chunk.canBeInitial() - ? compilation.outputOptions.filename - : compilation.outputOptions.chunkFilename), + getJavascriptModulesPlugin().chunkHasJs(chunk, chunkGraph) && + /** @type {TemplatePath} */ ( + chunk.filenameTemplate || + (chunk.canBeInitial() + ? compilation.outputOptions.filename + : compilation.outputOptions.chunkFilename) + ), false ) ); @@ -286,7 +297,7 @@ class RuntimePlugin { }); compilation.hooks.runtimeRequirementInTree .for(RuntimeGlobals.getChunkCssFilename) - .tap("RuntimePlugin", (chunk, set) => { + .tap("RuntimePlugin", (chunk, set, { chunkGraph }) => { if ( typeof compilation.outputOptions.cssChunkFilename === "string" && /\[(full)?hash(:\d+)?\]/.test( @@ -302,6 +313,7 @@ class RuntimePlugin { "css", RuntimeGlobals.getChunkCssFilename, chunk => + getCssModulesPlugin().chunkHasCss(chunk, chunkGraph) && getChunkFilenameTemplate(chunk, compilation.outputOptions), set.has(RuntimeGlobals.hmrDownloadUpdateHandlers) ) @@ -313,7 +325,8 @@ class RuntimePlugin { .tap("RuntimePlugin", (chunk, set) => { if ( /\[(full)?hash(:\d+)?\]/.test( - compilation.outputOptions.hotUpdateChunkFilename + /** @type {NonNullable} */ + (compilation.outputOptions.hotUpdateChunkFilename) ) ) set.add(RuntimeGlobals.getFullHash); @@ -323,7 +336,9 @@ class RuntimePlugin { "javascript", "javascript update", RuntimeGlobals.getChunkUpdateScriptFilename, - c => compilation.outputOptions.hotUpdateChunkFilename, + c => + /** @type {NonNullable} */ + (compilation.outputOptions.hotUpdateChunkFilename), true ) ); @@ -334,7 +349,8 @@ class RuntimePlugin { .tap("RuntimePlugin", (chunk, set) => { if ( /\[(full)?hash(:\d+)?\]/.test( - compilation.outputOptions.hotUpdateMainFilename + /** @type {NonNullable} */ + (compilation.outputOptions.hotUpdateMainFilename) ) ) { set.add(RuntimeGlobals.getFullHash); @@ -344,7 +360,8 @@ class RuntimePlugin { new GetMainFilenameRuntimeModule( "update manifest", RuntimeGlobals.getUpdateManifestFilename, - compilation.outputOptions.hotUpdateMainFilename + /** @type {NonNullable} */ + (compilation.outputOptions.hotUpdateMainFilename) ) ); return true; @@ -376,7 +393,9 @@ class RuntimePlugin { compilation.hooks.runtimeRequirementInTree .for(RuntimeGlobals.loadScript) .tap("RuntimePlugin", (chunk, set) => { - const withCreateScriptUrl = !!compilation.outputOptions.trustedTypes; + const withCreateScriptUrl = Boolean( + compilation.outputOptions.trustedTypes + ); if (withCreateScriptUrl) { set.add(RuntimeGlobals.createScriptUrl); } diff --git a/node_modules/webpack/lib/RuntimeTemplate.js b/node_modules/webpack/lib/RuntimeTemplate.js index d625367..b38e9b0 100644 --- a/node_modules/webpack/lib/RuntimeTemplate.js +++ b/node_modules/webpack/lib/RuntimeTemplate.js @@ -34,27 +34,28 @@ const { forEachRuntime, subtractRuntime } = require("./util/runtime"); * @param {ChunkGraph} chunkGraph the chunk graph * @returns {string} error message */ -const noModuleIdErrorMessage = (module, chunkGraph) => { - return `Module ${module.identifier()} has no id assigned. +const noModuleIdErrorMessage = ( + module, + chunkGraph +) => `Module ${module.identifier()} has no id assigned. This should not happen. It's in these chunks: ${ - Array.from( - chunkGraph.getModuleChunksIterable(module), - c => c.name || c.id || c.debugId - ).join(", ") || "none" - } (If module is in no chunk this indicates a bug in some chunk/module optimization logic) + Array.from( + chunkGraph.getModuleChunksIterable(module), + c => c.name || c.id || c.debugId + ).join(", ") || "none" +} (If module is in no chunk this indicates a bug in some chunk/module optimization logic) Module has these incoming connections: ${Array.from( - chunkGraph.moduleGraph.getIncomingConnections(module), - connection => - `\n - ${ - connection.originModule && connection.originModule.identifier() - } ${connection.dependency && connection.dependency.type} ${ - (connection.explanations && - Array.from(connection.explanations).join(", ")) || - "" - }` - ).join("")}`; -}; + chunkGraph.moduleGraph.getIncomingConnections(module), + connection => + `\n - ${ + connection.originModule && connection.originModule.identifier() + } ${connection.dependency && connection.dependency.type} ${ + (connection.explanations && + Array.from(connection.explanations).join(", ")) || + "" + }` +).join("")}`; /** * @param {string | undefined} definition global object definition @@ -66,11 +67,11 @@ function getGlobalObject(definition) { if ( // identifier, we do not need real identifier regarding ECMAScript/Unicode - trimmed.match(/^[_\p{L}][_0-9\p{L}]*$/iu) || + /^[_\p{L}][_0-9\p{L}]*$/iu.test(trimmed) || // iife // call expression // expression in parentheses - trimmed.match(/^([_\p{L}][_0-9\p{L}]*)?\(.*\)$/iu) + /^([_\p{L}][_0-9\p{L}]*)?\(.*\)$/iu.test(trimmed) ) return trimmed; @@ -85,7 +86,7 @@ class RuntimeTemplate { */ constructor(compilation, outputOptions, requestShortener) { this.compilation = compilation; - this.outputOptions = outputOptions || {}; + this.outputOptions = /** @type {OutputOptions} */ (outputOptions || {}); this.requestShortener = requestShortener; this.globalObject = /** @type {string} */ @@ -105,55 +106,47 @@ class RuntimeTemplate { } supportsConst() { - return /** @type {Environment} */ (this.outputOptions.environment).const; + return this.outputOptions.environment.const; } supportsArrowFunction() { - return /** @type {Environment} */ (this.outputOptions.environment) - .arrowFunction; + return this.outputOptions.environment.arrowFunction; } supportsAsyncFunction() { - return /** @type {Environment} */ (this.outputOptions.environment) - .asyncFunction; + return this.outputOptions.environment.asyncFunction; } supportsOptionalChaining() { - return /** @type {Environment} */ (this.outputOptions.environment) - .optionalChaining; + return this.outputOptions.environment.optionalChaining; } supportsForOf() { - return /** @type {Environment} */ (this.outputOptions.environment).forOf; + return this.outputOptions.environment.forOf; } supportsDestructuring() { - return /** @type {Environment} */ (this.outputOptions.environment) - .destructuring; + return this.outputOptions.environment.destructuring; } supportsBigIntLiteral() { - return /** @type {Environment} */ (this.outputOptions.environment) - .bigIntLiteral; + return this.outputOptions.environment.bigIntLiteral; } supportsDynamicImport() { - return /** @type {Environment} */ (this.outputOptions.environment) - .dynamicImport; + return this.outputOptions.environment.dynamicImport; } supportsEcmaScriptModuleSyntax() { - return /** @type {Environment} */ (this.outputOptions.environment).module; + return this.outputOptions.environment.module; } supportTemplateLiteral() { - return /** @type {Environment} */ (this.outputOptions.environment) - .templateLiteral; + return this.outputOptions.environment.templateLiteral; } supportNodePrefixForCoreModules() { - return /** @type {Environment} */ (this.outputOptions.environment) - .nodePrefixForCoreModules; + return this.outputOptions.environment.nodePrefixForCoreModules; } /** @@ -314,7 +307,7 @@ class RuntimeTemplate { * Add a comment * @param {object} options Information content of the comment * @param {string=} options.request request string used originally - * @param {string=} options.chunkName name of the chunk referenced + * @param {(string | null)=} options.chunkName name of the chunk referenced * @param {string=} options.chunkReason reason information of the chunk * @param {string=} options.message additional message * @param {string=} options.exportName name of the export @@ -335,10 +328,9 @@ class RuntimeTemplate { } if (!content) return ""; if (this.outputOptions.pathinfo) { - return Template.toComment(content) + " "; - } else { - return Template.toNormalComment(content) + " "; + return `${Template.toComment(content)} `; } + return `${Template.toNormalComment(content)} `; } /** @@ -412,11 +404,10 @@ class RuntimeTemplate { : JSON.stringify( `Module '${moduleId}' is not available (weak dependency)` ); - const comment = request ? Template.toNormalComment(request) + " " : ""; - const errorStatements = - `var e = new Error(${errorMessage}); ` + - comment + - "e.code = 'MODULE_NOT_FOUND'; throw e;"; + const comment = request ? `${Template.toNormalComment(request)} ` : ""; + const errorStatements = `var e = new Error(${errorMessage}); ${ + comment + }e.code = 'MODULE_NOT_FOUND'; throw e;`; switch (type) { case "statements": return errorStatements; @@ -778,7 +769,6 @@ class RuntimeTemplate { } /** - * * @param {object} options options object * @param {boolean=} options.update whether a new variable should be created or the existing one updated * @param {Module} options.module the module @@ -907,13 +897,13 @@ class RuntimeTemplate { case "dynamic": if (isCall) { return `${importVar}_default()${propertyAccess(exportName, 1)}`; - } else { - return asiSafe - ? `(${importVar}_default()${propertyAccess(exportName, 1)})` - : asiSafe === false - ? `;(${importVar}_default()${propertyAccess(exportName, 1)})` - : `${importVar}_default.a${propertyAccess(exportName, 1)}`; } + return asiSafe + ? `(${importVar}_default()${propertyAccess(exportName, 1)})` + : asiSafe === false + ? `;(${importVar}_default()${propertyAccess(exportName, 1)})` + : `${importVar}_default.a${propertyAccess(exportName, 1)}`; + case "default-only": case "default-with-named": exportName = exportName.slice(1); @@ -921,10 +911,10 @@ class RuntimeTemplate { } } else if (exportName.length > 0) { if (exportsType === "default-only") { - return ( - "/* non-default import from non-esm module */undefined" + - propertyAccess(exportName, 1) - ); + return `/* non-default import from non-esm module */undefined${propertyAccess( + exportName, + 1 + )}`; } else if ( exportsType !== "namespace" && exportName[0] === "__esModule" @@ -963,7 +953,7 @@ class RuntimeTemplate { } const comment = equals(used, exportName) ? "" - : Template.toNormalComment(propertyAccess(exportName)) + " "; + : `${Template.toNormalComment(propertyAccess(exportName))} `; const access = `${importVar}${comment}${propertyAccess(used)}`; if (isCall && callContext === false) { return asiSafe @@ -973,9 +963,8 @@ class RuntimeTemplate { : `/*#__PURE__*/Object(${access})`; } return access; - } else { - return importVar; } + return importVar; } /** @@ -1040,9 +1029,8 @@ class RuntimeTemplate { return `Promise.all(${comment.trim()}[${chunks .map(requireChunkId) .join(", ")}])`; - } else { - return `Promise.resolve(${comment.trim()})`; } + return `Promise.resolve(${comment.trim()})`; } /** @@ -1109,27 +1097,6 @@ class RuntimeTemplate { runtimeRequirements.add(RuntimeGlobals.exports); return `${RuntimeGlobals.makeNamespaceObject}(${exportsArgument});\n`; } - - /** - * @param {object} options options object - * @param {Module} options.module the module - * @param {RuntimeSpec=} options.runtime runtime - * @param {CodeGenerationResults} options.codeGenerationResults the code generation results - * @returns {string} the url of the asset - */ - assetUrl({ runtime, module, codeGenerationResults }) { - if (!module) { - return "data:,"; - } - const codeGen = codeGenerationResults.get(module, runtime); - const data = /** @type {NonNullable} */ ( - codeGen.data - ); - const url = data.get("url"); - if (url) return url.toString(); - const assetPath = data.get("assetPathForCss"); - return assetPath; - } } module.exports = RuntimeTemplate; diff --git a/node_modules/webpack/lib/SizeFormatHelpers.js b/node_modules/webpack/lib/SizeFormatHelpers.js index 51dceea..4c6a748 100644 --- a/node_modules/webpack/lib/SizeFormatHelpers.js +++ b/node_modules/webpack/lib/SizeFormatHelpers.js @@ -9,7 +9,7 @@ * @param {number} size the size in bytes * @returns {string} the formatted size */ -exports.formatSize = size => { +module.exports.formatSize = size => { if (typeof size !== "number" || Number.isNaN(size) === true) { return "unknown size"; } @@ -21,7 +21,5 @@ exports.formatSize = size => { const abbreviations = ["bytes", "KiB", "MiB", "GiB"]; const index = Math.floor(Math.log(size) / Math.log(1024)); - return `${+(size / Math.pow(1024, index)).toPrecision(3)} ${ - abbreviations[index] - }`; + return `${Number((size / 1024 ** index).toPrecision(3))} ${abbreviations[index]}`; }; diff --git a/node_modules/webpack/lib/SourceMapDevToolPlugin.js b/node_modules/webpack/lib/SourceMapDevToolPlugin.js index 1213076..761ef5c 100644 --- a/node_modules/webpack/lib/SourceMapDevToolPlugin.js +++ b/node_modules/webpack/lib/SourceMapDevToolPlugin.js @@ -24,11 +24,12 @@ const { makePathsAbsolute } = require("./util/identifier"); /** @typedef {import("./Chunk")} Chunk */ /** @typedef {import("./Compilation").Asset} Asset */ /** @typedef {import("./Compilation").AssetInfo} AssetInfo */ -/** @typedef {import("./Compilation").PathData} PathData */ /** @typedef {import("./Compiler")} Compiler */ /** @typedef {import("./Module")} Module */ /** @typedef {import("./NormalModule").SourceMap} SourceMap */ +/** @typedef {import("./TemplatedPathPlugin").TemplatePath} TemplatePath */ /** @typedef {import("./util/Hash")} Hash */ +/** @typedef {import("./util/createHash").Algorithm} Algorithm */ /** @typedef {import("./util/fs").OutputFileSystem} OutputFileSystem */ const validate = createSchemaValidation( @@ -63,7 +64,6 @@ const URL_FORMATTING_REGEXP = /^\n\/\/(.*)$/; * For when `test` or `exec` is called on them * @param {RegExp} regexp Stateful Regular Expression to be reset * @returns {void} - * */ const resetRegexpState = regexp => { regexp.lastIndex = -1; @@ -74,9 +74,7 @@ const resetRegexpState = regexp => { * @param {string} str String to quote * @returns {string} Escaped string */ -const quoteMeta = str => { - return str.replace(METACHARACTERS_REGEXP, "\\$&"); -}; +const quoteMeta = str => str.replace(METACHARACTERS_REGEXP, "\\$&"); /** * Creating {@link SourceMapTask} for given file @@ -111,7 +109,7 @@ const getTaskForFile = ( source = asset.source(); } if (!sourceMap || typeof source !== "string") return; - const context = compilation.options.context; + const context = /** @type {string} */ (compilation.options.context); const root = compilation.compiler.root; const cachedAbsolutify = makePathsAbsolute.bindContextCache(context, root); const modules = sourceMap.sources.map(source => { @@ -140,13 +138,13 @@ class SourceMapDevToolPlugin { constructor(options = {}) { validate(options); - /** @type {string | false} */ - this.sourceMapFilename = options.filename; - /** @type {string | false | (function(PathData, AssetInfo=): string)}} */ + this.sourceMapFilename = /** @type {string | false} */ (options.filename); + /** @type {false | TemplatePath}} */ this.sourceMappingURLComment = options.append === false ? false - : options.append || "\n//# source" + "MappingURL=[url]"; + : // eslint-disable-next-line no-useless-concat + options.append || "\n//# source" + "MappingURL=[url]"; /** @type {string | Function} */ this.moduleFilenameTemplate = options.moduleFilenameTemplate || "webpack://[namespace]/[resourcePath]"; @@ -223,7 +221,7 @@ class SourceMapDevToolPlugin { } } - reportProgress(0.0); + reportProgress(0); /** @type {SourceMapTask[]} */ const tasks = []; let fileIndex = 0; @@ -238,11 +236,17 @@ class SourceMapDevToolPlugin { fileIndex++; return callback(); } + + const chunk = fileToChunk.get(file); + const sourceMapNamespace = compilation.getPath(this.namespace, { + chunk + }); + const cacheItem = cache.getItemCache( file, cache.mergeEtags( cache.getLazyHashedEtag(asset.source), - namespace + sourceMapNamespace ) ); @@ -272,11 +276,8 @@ class SourceMapDevToolPlugin { /** * Add file to chunk, if not presented there */ - if (cachedFile !== file) { - const chunk = fileToChunk.get(file); - if (chunk !== undefined) - chunk.auxiliaryFiles.add(cachedFile); - } + if (cachedFile !== file && chunk !== undefined) + chunk.auxiliaryFiles.add(cachedFile); } reportProgress( @@ -312,14 +313,23 @@ class SourceMapDevToolPlugin { for (let idx = 0; idx < modules.length; idx++) { const module = modules[idx]; + + if ( + typeof module === "string" && + /^(data|https?):/.test(module) + ) { + moduleToSourceNameMapping.set(module, module); + continue; + } + if (!moduleToSourceNameMapping.get(module)) { moduleToSourceNameMapping.set( module, ModuleFilenameHelpers.createFilename( module, { - moduleFilenameTemplate: moduleFilenameTemplate, - namespace: namespace + moduleFilenameTemplate, + namespace: sourceMapNamespace }, { requestShortener, @@ -383,7 +393,7 @@ class SourceMapDevToolPlugin { module, { moduleFilenameTemplate: fallbackModuleFilenameTemplate, - namespace: namespace + namespace }, { requestShortener, @@ -429,7 +439,7 @@ class SourceMapDevToolPlugin { const moduleFilenames = modules.map(m => moduleToSourceNameMapping.get(m) ); - sourceMap.sources = moduleFilenames; + sourceMap.sources = /** @type {string[]} */ (moduleFilenames); if (options.noSources) { sourceMap.sourcesContent = undefined; } @@ -444,21 +454,18 @@ class SourceMapDevToolPlugin { // If SourceMap and asset uses contenthash, avoid a circular dependency by hiding hash in `file` if (usesContentHash && task.assetInfo.contenthash) { const contenthash = task.assetInfo.contenthash; - let pattern; - if (Array.isArray(contenthash)) { - pattern = contenthash.map(quoteMeta).join("|"); - } else { - pattern = quoteMeta(contenthash); - } + const pattern = Array.isArray(contenthash) + ? contenthash.map(quoteMeta).join("|") + : quoteMeta(contenthash); sourceMap.file = sourceMap.file.replace( new RegExp(pattern, "g"), m => "x".repeat(m.length) ); } - /** @type {string | false | (function(PathData, AssetInfo=): string)} */ + /** @type {false | TemplatePath} */ let currentSourceMappingURLComment = sourceMappingURLComment; - let cssExtensionDetected = + const cssExtensionDetected = CSS_EXTENSION_DETECT_REGEXP.test(file); resetRegexpState(CSS_EXTENSION_DETECT_REGEXP); if ( @@ -474,13 +481,17 @@ class SourceMapDevToolPlugin { } const sourceMapString = JSON.stringify(sourceMap); if (sourceMapFilename) { - let filename = file; + const filename = file; const sourceMapContentHash = - usesContentHash && - /** @type {string} */ ( - createHash(compilation.outputOptions.hashFunction) - .update(sourceMapString) - .digest("hex") + /** @type {string} */ + ( + usesContentHash && + createHash( + /** @type {Algorithm} */ + (compilation.outputOptions.hashFunction) + ) + .update(sourceMapString) + .digest("hex") ); const pathParams = { chunk, @@ -511,10 +522,10 @@ class SourceMapDevToolPlugin { // Add source map url to compilation asset, if currentSourceMappingURLComment is set asset = new ConcatSource( asset, - compilation.getPath( - currentSourceMappingURLComment, - Object.assign({ url: sourceMapUrl }, pathParams) - ) + compilation.getPath(currentSourceMappingURLComment, { + url: sourceMapUrl, + ...pathParams + }) ); } const assetInfo = { @@ -584,7 +595,7 @@ class SourceMapDevToolPlugin { }); }, err => { - reportProgress(1.0); + reportProgress(1); callback(err); } ); diff --git a/node_modules/webpack/lib/Stats.js b/node_modules/webpack/lib/Stats.js index c694911..22a3663 100644 --- a/node_modules/webpack/lib/Stats.js +++ b/node_modules/webpack/lib/Stats.js @@ -55,13 +55,11 @@ class Stats { * @returns {StatsCompilation} json output */ toJson(options) { - options = this.compilation.createStatsOptions(options, { + const normalizedOptions = this.compilation.createStatsOptions(options, { forToString: false }); - const statsFactory = this.compilation.createStatsFactory( - /** @type {NormalizedStatsOptions} */ (options) - ); + const statsFactory = this.compilation.createStatsFactory(normalizedOptions); return statsFactory.create("compilation", this.compilation, { compilation: this.compilation @@ -73,16 +71,12 @@ class Stats { * @returns {string} string output */ toString(options) { - options = this.compilation.createStatsOptions(options, { + const normalizedOptions = this.compilation.createStatsOptions(options, { forToString: true }); - const statsFactory = this.compilation.createStatsFactory( - /** @type {NormalizedStatsOptions} */ (options) - ); - const statsPrinter = this.compilation.createStatsPrinter( - /** @type {NormalizedStatsOptions} */ (options) - ); + const statsFactory = this.compilation.createStatsFactory(normalizedOptions); + const statsPrinter = this.compilation.createStatsPrinter(normalizedOptions); const data = statsFactory.create("compilation", this.compilation, { compilation: this.compilation diff --git a/node_modules/webpack/lib/Template.js b/node_modules/webpack/lib/Template.js index 4136cb3..3b95cfc 100644 --- a/node_modules/webpack/lib/Template.js +++ b/node_modules/webpack/lib/Template.js @@ -13,6 +13,7 @@ const RuntimeGlobals = require("./RuntimeGlobals"); /** @typedef {import("../declarations/WebpackOptions").Output} OutputOptions */ /** @typedef {import("./Chunk")} Chunk */ /** @typedef {import("./ChunkGraph")} ChunkGraph */ +/** @typedef {import("./ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */ /** @typedef {import("./Compilation").AssetInfo} AssetInfo */ /** @typedef {import("./Compilation").PathData} PathData */ @@ -22,6 +23,7 @@ const RuntimeGlobals = require("./RuntimeGlobals"); /** @typedef {import("./ModuleTemplate")} ModuleTemplate */ /** @typedef {import("./RuntimeModule")} RuntimeModule */ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */ +/** @typedef {import("./TemplatedPathPlugin").TemplatePath} TemplatePath */ /** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */ /** @typedef {import("./javascript/JavascriptModulesPlugin").RenderContext} RenderContext */ @@ -59,7 +61,7 @@ const MATCH_PADDED_HYPHENS_REPLACE_REGEX = /^-|-$/g; /** * @typedef {object} RenderManifestEntryTemplated * @property {function(): Source} render - * @property {string | function(PathData, AssetInfo=): string} filenameTemplate + * @property {TemplatePath} filenameTemplate * @property {PathData=} pathOptions * @property {AssetInfo=} info * @property {string} identifier @@ -88,7 +90,6 @@ const MATCH_PADDED_HYPHENS_REPLACE_REGEX = /^-|-$/g; class Template { /** - * * @param {Function} fn a runtime function (.runtime.js) "template" * @returns {string} the updated and normalized function string */ @@ -110,8 +111,8 @@ class Template { .replace(IDENTIFIER_NAME_REPLACE_REGEX, "_$1") .replace(IDENTIFIER_ALPHA_NUMERIC_NAME_REPLACE_REGEX, "_"); } + /** - * * @param {string} str string to be converted to commented in bundle code * @returns {string} returns a commented version of string */ @@ -121,7 +122,6 @@ class Template { } /** - * * @param {string} str string to be converted to "normal comment" * @returns {string} returns a commented version of string */ @@ -211,23 +211,20 @@ class Template { } /** - * * @param {string | string[]} s string to convert to identity * @returns {string} converted identity */ static indent(s) { if (Array.isArray(s)) { return s.map(Template.indent).join("\n"); - } else { - const str = s.trimEnd(); - if (!str) return ""; - const ind = str[0] === "\n" ? "" : "\t"; - return ind + str.replace(/\n([^\n])/g, "\n\t$1"); } + const str = s.trimEnd(); + if (!str) return ""; + const ind = str[0] === "\n" ? "" : "\t"; + return ind + str.replace(/\n([^\n])/g, "\n\t$1"); } /** - * * @param {string|string[]} s string to create prefix for * @param {string} prefix prefix to compose * @returns {string} returns new prefix string @@ -236,11 +233,10 @@ class Template { const str = Template.asString(s).trim(); if (!str) return ""; const ind = str[0] === "\n" ? "" : prefix; - return ind + str.replace(/\n([^\n])/g, "\n" + prefix + "$1"); + return ind + str.replace(/\n([^\n])/g, `\n${prefix}$1`); } /** - * * @param {string|string[]} str string or string collection * @returns {string} returns a single string from array */ @@ -270,7 +266,7 @@ class Template { if (maxId < moduleId) maxId = moduleId; if (minId > moduleId) minId = moduleId; } - if (minId < 16 + ("" + minId).length) { + if (minId < 16 + String(minId).length) { // add minId x ',' instead of 'Array(minId).concat(…)' minId = 0; } @@ -288,23 +284,21 @@ class Template { /** * @param {ChunkRenderContext} renderContext render context * @param {Module[]} modules modules to render (should be ordered by identifier) - * @param {function(Module): Source} renderModule function to render a module + * @param {function(Module): Source | null} renderModule function to render a module * @param {string=} prefix applying prefix strings * @returns {Source | null} rendered chunk modules in a Source object or null if no modules */ static renderChunkModules(renderContext, modules, renderModule, prefix = "") { const { chunkGraph } = renderContext; - var source = new ConcatSource(); + const source = new ConcatSource(); if (modules.length === 0) { return null; } /** @type {{id: string|number, source: Source|string}[]} */ - const allModules = modules.map(module => { - return { - id: chunkGraph.getModuleId(module), - source: renderModule(module) || "false" - }; - }); + const allModules = modules.map(module => ({ + id: /** @type {ModuleId} */ (chunkGraph.getModuleId(module)), + source: renderModule(module) || "false" + })); const bounds = Template.getModulesArrayBounds(allModules); if (bounds) { // Render a spare array @@ -330,7 +324,7 @@ class Template { source.add(module.source); } } - source.add("\n" + prefix + "]"); + source.add(`\n${prefix}]`); if (minId !== 0) { source.add(")"); } @@ -379,7 +373,7 @@ class Template { runtimeSource = codeGenResult.sources.get("runtime"); } if (runtimeSource) { - source.add(Template.toNormalComment(module.identifier()) + "\n"); + source.add(`${Template.toNormalComment(module.identifier())}\n`); if (!module.shouldIsolate()) { source.add(runtimeSource); source.add("\n\n"); diff --git a/node_modules/webpack/lib/TemplatedPathPlugin.js b/node_modules/webpack/lib/TemplatedPathPlugin.js index a6febf2..e7cc5b9 100644 --- a/node_modules/webpack/lib/TemplatedPathPlugin.js +++ b/node_modules/webpack/lib/TemplatedPathPlugin.js @@ -13,6 +13,7 @@ const Module = require("./Module"); const { parseResource } = require("./util/identifier"); /** @typedef {import("./ChunkGraph")} ChunkGraph */ +/** @typedef {import("./ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("./Compilation").AssetInfo} AssetInfo */ /** @typedef {import("./Compilation").PathData} PathData */ /** @typedef {import("./Compiler")} Compiler */ @@ -55,7 +56,7 @@ const hashLength = (replacer, handler, assetInfo, hashName) => { /** @type {ReplacerFunction} */ const fn = (match, arg, input) => { let result; - const length = arg && parseInt(arg, 10); + const length = arg && Number.parseInt(arg, 10); if (length && handler) { result = handler(length); @@ -101,9 +102,9 @@ const replacer = (value, allowEmpty) => { } return ""; - } else { - return `${value}`; } + + return `${value}`; }; return fn; @@ -129,8 +130,10 @@ const deprecated = (fn, message, code) => { }; }; +/** @typedef {string | function(PathData, AssetInfo=): string} TemplatePath */ + /** - * @param {string | function(PathData, AssetInfo=): string} path the raw path + * @param {TemplatePath} path the raw path * @param {PathData} data context data * @param {AssetInfo | undefined} assetInfo extra info about the asset (will be written to) * @returns {string} the interpolated path @@ -155,23 +158,29 @@ const replacePathVariables = (path, data, assetInfo) => { // [ext] - .js if (typeof data.filename === "string") { // check that filename is data uri - let match = data.filename.match(/^data:([^;,]+)/); + const match = data.filename.match(/^data:([^;,]+)/); if (match) { const ext = mime.extension(match[1]); const emptyReplacer = replacer("", true); + // "XXXX" used for `updateHash`, so we don't need it here + const contentHash = + data.contentHash && !/X+/.test(data.contentHash) + ? data.contentHash + : false; + const baseReplacer = contentHash ? replacer(contentHash) : emptyReplacer; replacements.set("file", emptyReplacer); replacements.set("query", emptyReplacer); replacements.set("fragment", emptyReplacer); replacements.set("path", emptyReplacer); - replacements.set("base", emptyReplacer); - replacements.set("name", emptyReplacer); + replacements.set("base", baseReplacer); + replacements.set("name", baseReplacer); replacements.set("ext", replacer(ext ? `.${ext}` : "", true)); // Legacy replacements.set( "filebase", deprecated( - emptyReplacer, + baseReplacer, "[filebase] is now [base]", "DEP_WEBPACK_TEMPLATE_PATH_PLUGIN_REPLACE_PATH_VARIABLES_FILENAME" ) @@ -292,17 +301,16 @@ const replacePathVariables = (path, data, assetInfo) => { const idReplacer = replacer(() => prepareId( module instanceof Module - ? /** @type {ChunkGraph} */ (chunkGraph).getModuleId(module) + ? /** @type {ModuleId} */ + (/** @type {ChunkGraph} */ (chunkGraph).getModuleId(module)) : module.id ) ); const moduleHashReplacer = hashLength( replacer(() => module instanceof Module - ? /** @type {ChunkGraph} */ (chunkGraph).getRenderedModuleHash( - module, - data.runtime - ) + ? /** @type {ChunkGraph} */ + (chunkGraph).getRenderedModuleHash(module, data.runtime) : module.hash ), "hashWithLength" in module ? module.hashWithLength : undefined, diff --git a/node_modules/webpack/lib/WarnDeprecatedOptionPlugin.js b/node_modules/webpack/lib/WarnDeprecatedOptionPlugin.js index 725cce4..8cad086 100644 --- a/node_modules/webpack/lib/WarnDeprecatedOptionPlugin.js +++ b/node_modules/webpack/lib/WarnDeprecatedOptionPlugin.js @@ -42,7 +42,6 @@ class WarnDeprecatedOptionPlugin { class DeprecatedOptionWarning extends WebpackError { /** * Create an instance deprecated option warning - * * @param {string} option the target option * @param {string | number} value the deprecated option value * @param {string} suggestion the suggestion replacement diff --git a/node_modules/webpack/lib/WatchIgnorePlugin.js b/node_modules/webpack/lib/WatchIgnorePlugin.js index 9dfdda9..a7471e9 100644 --- a/node_modules/webpack/lib/WatchIgnorePlugin.js +++ b/node_modules/webpack/lib/WatchIgnorePlugin.js @@ -9,9 +9,12 @@ const { groupBy } = require("./util/ArrayHelpers"); const createSchemaValidation = require("./util/create-schema-validation"); /** @typedef {import("../declarations/plugins/WatchIgnorePlugin").WatchIgnorePluginOptions} WatchIgnorePluginOptions */ +/** @typedef {import("../declarations/WebpackOptions").WatchOptions} WatchOptions */ /** @typedef {import("./Compiler")} Compiler */ +/** @typedef {import("./util/fs").TimeInfoEntries} TimeInfoEntries */ /** @typedef {import("./util/fs").WatchFileSystem} WatchFileSystem */ - +/** @typedef {import("./util/fs").WatchMethod} WatchMethod */ +/** @typedef {import("./util/fs").Watcher} Watcher */ const validate = createSchemaValidation( require("../schemas/plugins/WatchIgnorePlugin.check.js"), () => require("../schemas/plugins/WatchIgnorePlugin.json"), @@ -26,13 +29,14 @@ const IGNORE_TIME_ENTRY = "ignore"; class IgnoringWatchFileSystem { /** * @param {WatchFileSystem} wfs original file system - * @param {(string|RegExp)[]} paths ignored paths + * @param {WatchIgnorePluginOptions["paths"]} paths ignored paths */ constructor(wfs, paths) { this.wfs = wfs; this.paths = paths; } + /** @type {WatchMethod} */ watch(files, dirs, missing, startTime, options, callback, callbackUndelayed) { files = Array.from(files); dirs = Array.from(dirs); @@ -45,8 +49,16 @@ class IgnoringWatchFileSystem { p instanceof RegExp ? p.test(path) : path.indexOf(p) === 0 ); - const [ignoredFiles, notIgnoredFiles] = groupBy(files, ignored); - const [ignoredDirs, notIgnoredDirs] = groupBy(dirs, ignored); + const [ignoredFiles, notIgnoredFiles] = groupBy( + /** @type {Array} */ + (files), + ignored + ); + const [ignoredDirs, notIgnoredDirs] = groupBy( + /** @type {Array} */ + (dirs), + ignored + ); const watcher = this.wfs.watch( notIgnoredFiles, @@ -57,15 +69,17 @@ class IgnoringWatchFileSystem { (err, fileTimestamps, dirTimestamps, changedFiles, removedFiles) => { if (err) return callback(err); for (const path of ignoredFiles) { - fileTimestamps.set(path, IGNORE_TIME_ENTRY); + /** @type {TimeInfoEntries} */ + (fileTimestamps).set(path, IGNORE_TIME_ENTRY); } for (const path of ignoredDirs) { - dirTimestamps.set(path, IGNORE_TIME_ENTRY); + /** @type {TimeInfoEntries} */ + (dirTimestamps).set(path, IGNORE_TIME_ENTRY); } callback( - err, + null, fileTimestamps, dirTimestamps, changedFiles, @@ -95,7 +109,9 @@ class IgnoringWatchFileSystem { getInfo: watcher.getInfo && (() => { - const info = watcher.getInfo(); + const info = + /** @type {NonNullable} */ + (watcher.getInfo)(); const { fileTimeInfoEntries, contextTimeInfoEntries } = info; for (const path of ignoredFiles) { fileTimeInfoEntries.set(path, IGNORE_TIME_ENTRY); @@ -126,7 +142,8 @@ class WatchIgnorePlugin { apply(compiler) { compiler.hooks.afterEnvironment.tap("WatchIgnorePlugin", () => { compiler.watchFileSystem = new IgnoringWatchFileSystem( - compiler.watchFileSystem, + /** @type {WatchFileSystem} */ + (compiler.watchFileSystem), this.paths ); }); diff --git a/node_modules/webpack/lib/Watching.js b/node_modules/webpack/lib/Watching.js index b5c1a9b..a047f25 100644 --- a/node_modules/webpack/lib/Watching.js +++ b/node_modules/webpack/lib/Watching.js @@ -13,7 +13,9 @@ const Stats = require("./Stats"); /** @typedef {import("./FileSystemInfo").FileSystemInfoEntry} FileSystemInfoEntry */ /** @typedef {import("./WebpackError")} WebpackError */ /** @typedef {import("./logging/Logger").Logger} Logger */ +/** @typedef {import("./util/fs").TimeInfoEntries} TimeInfoEntries */ /** @typedef {import("./util/fs").WatchFileSystem} WatchFileSystem */ +/** @typedef {import("./util/fs").Watcher} Watcher */ /** * @template T @@ -43,12 +45,15 @@ class Watching { this._onChange = () => {}; this._onInvalid = () => {}; if (typeof watchOptions === "number") { + /** @type {WatchOptions} */ this.watchOptions = { aggregateTimeout: watchOptions }; } else if (watchOptions && typeof watchOptions === "object") { + /** @type {WatchOptions} */ this.watchOptions = { ...watchOptions }; } else { + /** @type {WatchOptions} */ this.watchOptions = {}; } if (typeof this.watchOptions.aggregateTimeout !== "number") { @@ -72,8 +77,8 @@ class Watching { } /** - * @param {ReadonlySet=} changedFiles changed files - * @param {ReadonlySet=} removedFiles removed files + * @param {ReadonlySet | undefined | null} changedFiles changed files + * @param {ReadonlySet | undefined | null} removedFiles removed files */ _mergeWithCollected(changedFiles, removedFiles) { if (!changedFiles) return; @@ -95,8 +100,8 @@ class Watching { } /** - * @param {ReadonlyMap=} fileTimeInfoEntries info for files - * @param {ReadonlyMap=} contextTimeInfoEntries info for directories + * @param {TimeInfoEntries=} fileTimeInfoEntries info for files + * @param {TimeInfoEntries=} contextTimeInfoEntries info for directories * @param {ReadonlySet=} changedFiles changed files * @param {ReadonlySet=} removedFiles removed files * @returns {void} @@ -255,7 +260,7 @@ class Watching { (compilation && compilation.getLogger("webpack.Watching")); /** @type {Stats | undefined} */ - let stats = undefined; + let stats; /** * @param {Error} err error @@ -406,8 +411,8 @@ class Watching { } /** - * @param {ReadonlyMap=} fileTimeInfoEntries info for files - * @param {ReadonlyMap=} contextTimeInfoEntries info for directories + * @param {TimeInfoEntries=} fileTimeInfoEntries info for files + * @param {TimeInfoEntries=} contextTimeInfoEntries info for directories * @param {ReadonlySet=} changedFiles changed files * @param {ReadonlySet=} removedFiles removed files * @returns {void} diff --git a/node_modules/webpack/lib/WebpackOptionsApply.js b/node_modules/webpack/lib/WebpackOptionsApply.js index 3396462..499b34b 100644 --- a/node_modules/webpack/lib/WebpackOptionsApply.js +++ b/node_modules/webpack/lib/WebpackOptionsApply.js @@ -56,6 +56,8 @@ const DefaultStatsPrinterPlugin = require("./stats/DefaultStatsPrinterPlugin"); const { cleverMerge } = require("./util/cleverMerge"); /** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptions */ +/** @typedef {import("../declarations/WebpackOptions").WebpackPluginFunction} WebpackPluginFunction */ +/** @typedef {import("../declarations/WebpackOptions").WebpackPluginInstance} WebpackPluginInstance */ /** @typedef {import("./Compiler")} Compiler */ /** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */ /** @typedef {import("./util/fs").IntermediateFileSystem} IntermediateFileSystem */ @@ -71,13 +73,13 @@ class WebpackOptionsApply extends OptionsApply { * @returns {WebpackOptions} options object */ process(options, compiler) { - compiler.outputPath = options.output.path; + compiler.outputPath = /** @type {string} */ (options.output.path); compiler.recordsInputPath = options.recordsInputPath || null; compiler.recordsOutputPath = options.recordsOutputPath || null; compiler.name = options.name; if (options.externals) { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const ExternalsPlugin = require("./ExternalsPlugin"); new ExternalsPlugin(options.externalsType, options.externals).apply( compiler @@ -89,17 +91,17 @@ class WebpackOptionsApply extends OptionsApply { new NodeTargetPlugin().apply(compiler); } if (options.externalsPresets.electronMain) { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const ElectronTargetPlugin = require("./electron/ElectronTargetPlugin"); new ElectronTargetPlugin("main").apply(compiler); } if (options.externalsPresets.electronPreload) { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const ElectronTargetPlugin = require("./electron/ElectronTargetPlugin"); new ElectronTargetPlugin("preload").apply(compiler); } if (options.externalsPresets.electronRenderer) { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const ElectronTargetPlugin = require("./electron/ElectronTargetPlugin"); new ElectronTargetPlugin("renderer").apply(compiler); } @@ -109,74 +111,76 @@ class WebpackOptionsApply extends OptionsApply { !options.externalsPresets.electronPreload && !options.externalsPresets.electronRenderer ) { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const ElectronTargetPlugin = require("./electron/ElectronTargetPlugin"); new ElectronTargetPlugin().apply(compiler); } if (options.externalsPresets.nwjs) { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const ExternalsPlugin = require("./ExternalsPlugin"); new ExternalsPlugin("node-commonjs", "nw.gui").apply(compiler); } if (options.externalsPresets.webAsync) { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const ExternalsPlugin = require("./ExternalsPlugin"); new ExternalsPlugin("import", ({ request, dependencyType }, callback) => { if (dependencyType === "url") { - if (/^(\/\/|https?:\/\/|#)/.test(request)) + if (/^(\/\/|https?:\/\/|#)/.test(/** @type {string} */ (request))) return callback(null, `asset ${request}`); } else if (options.experiments.css && dependencyType === "css-import") { - if (/^(\/\/|https?:\/\/|#)/.test(request)) + if (/^(\/\/|https?:\/\/|#)/.test(/** @type {string} */ (request))) return callback(null, `css-import ${request}`); } else if ( options.experiments.css && - /^(\/\/|https?:\/\/|std:)/.test(request) + /^(\/\/|https?:\/\/|std:)/.test(/** @type {string} */ (request)) ) { - if (/^\.css(\?|$)/.test(request)) + if (/^\.css(\?|$)/.test(/** @type {string} */ (request))) return callback(null, `css-import ${request}`); return callback(null, `import ${request}`); } callback(); }).apply(compiler); } else if (options.externalsPresets.web) { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const ExternalsPlugin = require("./ExternalsPlugin"); new ExternalsPlugin("module", ({ request, dependencyType }, callback) => { if (dependencyType === "url") { - if (/^(\/\/|https?:\/\/|#)/.test(request)) + if (/^(\/\/|https?:\/\/|#)/.test(/** @type {string} */ (request))) return callback(null, `asset ${request}`); } else if (options.experiments.css && dependencyType === "css-import") { - if (/^(\/\/|https?:\/\/|#)/.test(request)) + if (/^(\/\/|https?:\/\/|#)/.test(/** @type {string} */ (request))) return callback(null, `css-import ${request}`); - } else if (/^(\/\/|https?:\/\/|std:)/.test(request)) { - if (options.experiments.css && /^\.css((\?)|$)/.test(request)) + } else if ( + /^(\/\/|https?:\/\/|std:)/.test(/** @type {string} */ (request)) + ) { + if ( + options.experiments.css && + /^\.css((\?)|$)/.test(/** @type {string} */ (request)) + ) + return callback(null, `css-import ${request}`); + return callback(null, `module ${request}`); + } + callback(); + }).apply(compiler); + } else if (options.externalsPresets.node && options.experiments.css) { + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + const ExternalsPlugin = require("./ExternalsPlugin"); + new ExternalsPlugin("module", ({ request, dependencyType }, callback) => { + if (dependencyType === "url") { + if (/^(\/\/|https?:\/\/|#)/.test(/** @type {string} */ (request))) + return callback(null, `asset ${request}`); + } else if (dependencyType === "css-import") { + if (/^(\/\/|https?:\/\/|#)/.test(/** @type {string} */ (request))) + return callback(null, `css-import ${request}`); + } else if ( + /^(\/\/|https?:\/\/|std:)/.test(/** @type {string} */ (request)) + ) { + if (/^\.css(\?|$)/.test(/** @type {string} */ (request))) return callback(null, `css-import ${request}`); return callback(null, `module ${request}`); } callback(); }).apply(compiler); - } else if (options.externalsPresets.node) { - if (options.experiments.css) { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 - const ExternalsPlugin = require("./ExternalsPlugin"); - new ExternalsPlugin( - "module", - ({ request, dependencyType }, callback) => { - if (dependencyType === "url") { - if (/^(\/\/|https?:\/\/|#)/.test(request)) - return callback(null, `asset ${request}`); - } else if (dependencyType === "css-import") { - if (/^(\/\/|https?:\/\/|#)/.test(request)) - return callback(null, `css-import ${request}`); - } else if (/^(\/\/|https?:\/\/|std:)/.test(request)) { - if (/^\.css(\?|$)/.test(request)) - return callback(null, `css-import ${request}`); - return callback(null, `module ${request}`); - } - callback(); - } - ).apply(compiler); - } } new ChunkPrefetchPreloadPlugin().apply(compiler); @@ -200,27 +204,39 @@ class WebpackOptionsApply extends OptionsApply { } default: throw new Error( - "Unsupported chunk format '" + options.output.chunkFormat + "'." + `Unsupported chunk format '${options.output.chunkFormat}'.` ); } } - if (options.output.enabledChunkLoadingTypes.length > 0) { - for (const type of options.output.enabledChunkLoadingTypes) { + const enabledChunkLoadingTypes = + /** @type {NonNullable} */ + (options.output.enabledChunkLoadingTypes); + + if (enabledChunkLoadingTypes.length > 0) { + for (const type of enabledChunkLoadingTypes) { const EnableChunkLoadingPlugin = require("./javascript/EnableChunkLoadingPlugin"); new EnableChunkLoadingPlugin(type).apply(compiler); } } - if (options.output.enabledWasmLoadingTypes.length > 0) { - for (const type of options.output.enabledWasmLoadingTypes) { + const enabledWasmLoadingTypes = + /** @type {NonNullable} */ + (options.output.enabledWasmLoadingTypes); + + if (enabledWasmLoadingTypes.length > 0) { + for (const type of enabledWasmLoadingTypes) { const EnableWasmLoadingPlugin = require("./wasm/EnableWasmLoadingPlugin"); new EnableWasmLoadingPlugin(type).apply(compiler); } } - if (options.output.enabledLibraryTypes.length > 0) { - for (const type of options.output.enabledLibraryTypes) { + const enabledLibraryTypes = + /** @type {NonNullable} */ + (options.output.enabledLibraryTypes); + + if (enabledLibraryTypes.length > 0) { + for (const type of enabledLibraryTypes) { const EnableLibraryPlugin = require("./library/EnableLibraryPlugin"); new EnableLibraryPlugin(type).apply(compiler); } @@ -257,9 +273,9 @@ class WebpackOptionsApply extends OptionsApply { fallbackModuleFilenameTemplate: options.output.devtoolFallbackModuleFilenameTemplate, append: hidden ? false : undefined, - module: moduleMaps ? true : cheap ? false : true, - columns: cheap ? false : true, - noSources: noSources, + module: moduleMaps ? true : !cheap, + columns: !cheap, + noSources, namespace: options.output.devtoolNamespace }).apply(compiler); } else if (options.devtool.includes("eval")) { @@ -291,7 +307,10 @@ class WebpackOptionsApply extends OptionsApply { "library type \"modern-module\" is only allowed when 'experiments.outputModule' is enabled" ); } - if (options.externalsType === "module") { + if ( + options.externalsType === "module" || + options.externalsType === "module-import" + ) { throw new Error( "'externalsType: \"module\"' is only allowed when 'experiments.outputModule' is enabled" ); @@ -322,7 +341,7 @@ class WebpackOptionsApply extends OptionsApply { const lazyOptions = typeof options.experiments.lazyCompilation === "object" ? options.experiments.lazyCompilation - : null; + : {}; new LazyCompilationPlugin({ backend: typeof lazyOptions.backend === "function" @@ -350,7 +369,11 @@ class WebpackOptionsApply extends OptionsApply { } new EntryOptionPlugin().apply(compiler); - compiler.hooks.entryOption.call(options.context, options.entry); + compiler.hooks.entryOption.call( + /** @type {string} */ + (options.context), + options.entry + ); new RuntimePlugin().apply(compiler); @@ -474,8 +497,12 @@ class WebpackOptionsApply extends OptionsApply { if (options.optimization.realContentHash) { const RealContentHashPlugin = require("./optimize/RealContentHashPlugin"); new RealContentHashPlugin({ - hashFunction: options.output.hashFunction, - hashDigest: options.output.hashDigest + hashFunction: + /** @type {NonNullable} */ + (options.output.hashFunction), + hashDigest: + /** @type {NonNullable} */ + (options.output.hashDigest) }).apply(compiler); } if (options.optimization.checkWasmTypes) { @@ -545,7 +572,7 @@ class WebpackOptionsApply extends OptionsApply { break; } case "size": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const OccurrenceChunkIdsPlugin = require("./ids/OccurrenceChunkIdsPlugin"); new OccurrenceChunkIdsPlugin({ prioritiseInitial: true @@ -553,7 +580,7 @@ class WebpackOptionsApply extends OptionsApply { break; } case "total-size": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const OccurrenceChunkIdsPlugin = require("./ids/OccurrenceChunkIdsPlugin"); new OccurrenceChunkIdsPlugin({ prioritiseInitial: false @@ -573,9 +600,12 @@ class WebpackOptionsApply extends OptionsApply { }).apply(compiler); } if (options.optimization.minimize) { - for (const minimizer of options.optimization.minimizer) { + for (const minimizer of /** @type {(WebpackPluginInstance | WebpackPluginFunction | "...")[]} */ ( + options.optimization.minimizer + )) { if (typeof minimizer === "function") { - minimizer.call(compiler, compiler); + /** @type {WebpackPluginFunction} */ + (minimizer).call(compiler, compiler); } else if (minimizer !== "..." && minimizer) { minimizer.apply(compiler); } @@ -597,23 +627,28 @@ class WebpackOptionsApply extends OptionsApply { const AddManagedPathsPlugin = require("./cache/AddManagedPathsPlugin"); new AddManagedPathsPlugin( - options.snapshot.managedPaths, - options.snapshot.immutablePaths, - options.snapshot.unmanagedPaths + /** @type {NonNullable} */ + (options.snapshot.managedPaths), + /** @type {NonNullable} */ + (options.snapshot.immutablePaths), + /** @type {NonNullable} */ + (options.snapshot.unmanagedPaths) ).apply(compiler); if (options.cache && typeof options.cache === "object") { const cacheOptions = options.cache; switch (cacheOptions.type) { case "memory": { - if (isFinite(cacheOptions.maxGenerations)) { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + if (Number.isFinite(cacheOptions.maxGenerations)) { + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const MemoryWithGcCachePlugin = require("./cache/MemoryWithGcCachePlugin"); new MemoryWithGcCachePlugin({ - maxGenerations: cacheOptions.maxGenerations + maxGenerations: + /** @type {number} */ + (cacheOptions.maxGenerations) }).apply(compiler); } else { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const MemoryCachePlugin = require("./cache/MemoryCachePlugin"); new MemoryCachePlugin().apply(compiler); } @@ -629,19 +664,22 @@ class WebpackOptionsApply extends OptionsApply { } case "filesystem": { const AddBuildDependenciesPlugin = require("./cache/AddBuildDependenciesPlugin"); + // eslint-disable-next-line guard-for-in for (const key in cacheOptions.buildDependencies) { const list = cacheOptions.buildDependencies[key]; new AddBuildDependenciesPlugin(list).apply(compiler); } - if (!isFinite(cacheOptions.maxMemoryGenerations)) { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + if (!Number.isFinite(cacheOptions.maxMemoryGenerations)) { + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const MemoryCachePlugin = require("./cache/MemoryCachePlugin"); new MemoryCachePlugin().apply(compiler); } else if (cacheOptions.maxMemoryGenerations !== 0) { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const MemoryWithGcCachePlugin = require("./cache/MemoryWithGcCachePlugin"); new MemoryWithGcCachePlugin({ - maxGenerations: cacheOptions.maxMemoryGenerations + maxGenerations: + /** @type {number} */ + (cacheOptions.maxMemoryGenerations) }).apply(compiler); } if (cacheOptions.memoryCacheUnaffected) { @@ -659,25 +697,30 @@ class WebpackOptionsApply extends OptionsApply { new IdleFileCachePlugin( new PackFileCacheStrategy({ compiler, - fs: /** @type {IntermediateFileSystem} */ ( - compiler.intermediateFileSystem - ), - context: options.context, - cacheLocation: cacheOptions.cacheLocation, - version: cacheOptions.version, + fs: + /** @type {IntermediateFileSystem} */ + (compiler.intermediateFileSystem), + context: /** @type {string} */ (options.context), + cacheLocation: + /** @type {string} */ + (cacheOptions.cacheLocation), + version: /** @type {string} */ (cacheOptions.version), logger: compiler.getInfrastructureLogger( "webpack.cache.PackFileCacheStrategy" ), snapshot: options.snapshot, - maxAge: cacheOptions.maxAge, + maxAge: /** @type {number} */ (cacheOptions.maxAge), profile: cacheOptions.profile, allowCollectingMemory: cacheOptions.allowCollectingMemory, compression: cacheOptions.compression, readonly: cacheOptions.readonly }), - cacheOptions.idleTimeout, - cacheOptions.idleTimeoutForInitialStore, - cacheOptions.idleTimeoutAfterLargeChanges + /** @type {number} */ + (cacheOptions.idleTimeout), + /** @type {number} */ + (cacheOptions.idleTimeoutForInitialStore), + /** @type {number} */ + (cacheOptions.idleTimeoutAfterLargeChanges) ).apply(compiler); break; } diff --git a/node_modules/webpack/lib/asset/AssetGenerator.js b/node_modules/webpack/lib/asset/AssetGenerator.js index b792f8a..4661d6c 100644 --- a/node_modules/webpack/lib/asset/AssetGenerator.js +++ b/node_modules/webpack/lib/asset/AssetGenerator.js @@ -10,6 +10,16 @@ const path = require("path"); const { RawSource } = require("webpack-sources"); const ConcatenationScope = require("../ConcatenationScope"); const Generator = require("../Generator"); +const { + NO_TYPES, + ASSET_TYPES, + ASSET_AND_JS_TYPES, + ASSET_AND_JS_AND_CSS_URL_TYPES, + ASSET_AND_CSS_URL_TYPES, + JS_TYPES, + JS_AND_CSS_URL_TYPES, + CSS_URL_TYPES +} = require("../ModuleSourceTypesConstants"); const { ASSET_MODULE_TYPE } = require("../ModuleTypeConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); const CssUrlDependency = require("../dependencies/CssUrlDependency"); @@ -18,19 +28,36 @@ const { makePathsRelative } = require("../util/identifier"); const nonNumericOnlyHash = require("../util/nonNumericOnlyHash"); /** @typedef {import("webpack-sources").Source} Source */ +/** @typedef {import("../../declarations/WebpackOptions").AssetGeneratorDataUrlOptions} AssetGeneratorDataUrlOptions */ /** @typedef {import("../../declarations/WebpackOptions").AssetGeneratorOptions} AssetGeneratorOptions */ +/** @typedef {import("../../declarations/WebpackOptions").AssetModuleFilename} AssetModuleFilename */ /** @typedef {import("../../declarations/WebpackOptions").AssetModuleOutputPath} AssetModuleOutputPath */ /** @typedef {import("../../declarations/WebpackOptions").RawPublicPath} RawPublicPath */ /** @typedef {import("../Compilation")} Compilation */ +/** @typedef {import("../Compilation").AssetInfo} AssetInfo */ +/** @typedef {import("../Compilation").InterpolatedPathAndAssetInfo} InterpolatedPathAndAssetInfo */ /** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("../Generator").GenerateContext} GenerateContext */ /** @typedef {import("../Generator").UpdateHashContext} UpdateHashContext */ /** @typedef {import("../Module")} Module */ +/** @typedef {import("../Module").BuildInfo} BuildInfo */ +/** @typedef {import("../Module").BuildMeta} BuildMeta */ /** @typedef {import("../Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */ +/** @typedef {import("../Module").SourceTypes} SourceTypes */ +/** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../NormalModule")} NormalModule */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ +/** @typedef {import("../TemplatedPathPlugin").TemplatePath} TemplatePath */ /** @typedef {import("../util/Hash")} Hash */ +/** @typedef {import("../util/createHash").Algorithm} Algorithm */ +/** + * @template T + * @template U + * @param {Array | Set} a a + * @param {Array | Set} b b + * @returns {Array & Array} array + */ const mergeMaybeArrays = (a, b) => { const set = new Set(); if (Array.isArray(a)) for (const item of a) set.add(item); @@ -40,6 +67,13 @@ const mergeMaybeArrays = (a, b) => { return Array.from(set); }; +/** + * @template {object} T + * @template {object} U + * @param {TODO} a a + * @param {TODO} b b + * @returns {T & U} object + */ const mergeAssetInfo = (a, b) => { const result = { ...a, ...b }; for (const key of Object.keys(a)) { @@ -69,6 +103,13 @@ const mergeAssetInfo = (a, b) => { return result; }; +/** + * @template {object} T + * @template {object} U + * @param {TODO} a a + * @param {TODO} b b + * @returns {T & U} object + */ const mergeRelatedInfo = (a, b) => { const result = { ...a, ...b }; for (const key of Object.keys(a)) { @@ -80,7 +121,13 @@ const mergeRelatedInfo = (a, b) => { return result; }; +/** + * @param {"base64" | false} encoding encoding + * @param {Source} source source + * @returns {string} encoded data + */ const encodeDataUri = (encoding, source) => { + /** @type {string | undefined} */ let encodedContent; switch (encoding) { @@ -95,9 +142,13 @@ const encodeDataUri = (encoding, source) => { encodedContent = content.toString("utf-8"); } - encodedContent = encodeURIComponent(encodedContent).replace( + encodedContent = encodeURIComponent( + /** @type {string} */ + (encodedContent) + ).replace( /[!'()*]/g, - character => "%" + character.codePointAt(0).toString(16) + character => + `%${/** @type {number} */ (character.codePointAt(0)).toString(16)}` ); break; } @@ -128,25 +179,32 @@ const decodeDataUriContent = (encoding, content) => { } }; -const JS_TYPES = new Set(["javascript"]); -const JS_AND_ASSET_TYPES = new Set(["javascript", ASSET_MODULE_TYPE]); const DEFAULT_ENCODING = "base64"; class AssetGenerator extends Generator { /** + * @param {ModuleGraph} moduleGraph the module graph * @param {AssetGeneratorOptions["dataUrl"]=} dataUrlOptions the options for the data url - * @param {string=} filename override for output.assetModuleFilename + * @param {AssetModuleFilename=} filename override for output.assetModuleFilename * @param {RawPublicPath=} publicPath override for output.assetModulePublicPath * @param {AssetModuleOutputPath=} outputPath the output path for the emitted file which is not included in the runtime import * @param {boolean=} emit generate output asset */ - constructor(dataUrlOptions, filename, publicPath, outputPath, emit) { + constructor( + moduleGraph, + dataUrlOptions, + filename, + publicPath, + outputPath, + emit + ) { super(); this.dataUrlOptions = dataUrlOptions; this.filename = filename; this.publicPath = publicPath; this.outputPath = outputPath; this.emit = emit; + this._moduleGraph = moduleGraph; } /** @@ -183,9 +241,14 @@ class AssetGenerator extends Generator { } /** @type {string | boolean | undefined} */ - let mimeType = this.dataUrlOptions.mimetype; + let mimeType = + /** @type {AssetGeneratorDataUrlOptions} */ + (this.dataUrlOptions).mimetype; if (mimeType === undefined) { - const ext = path.extname(module.nameForCondition()); + const ext = path.extname( + /** @type {string} */ + (module.nameForCondition()) + ); if ( module.resourceResolveData && module.resourceResolveData.mimetype !== undefined @@ -220,205 +283,348 @@ class AssetGenerator extends Generator { /** * @param {NormalModule} module module for which the code should be generated - * @param {GenerateContext} generateContext context for generate - * @returns {Source} generated code + * @returns {string} DataURI */ - generate( + generateDataUri(module) { + const source = /** @type {Source} */ (module.originalSource()); + + let encodedSource; + + if (typeof this.dataUrlOptions === "function") { + encodedSource = this.dataUrlOptions.call(null, source.source(), { + filename: module.matchResource || module.resource, + module + }); + } else { + /** @type {"base64" | false | undefined} */ + let encoding = + /** @type {AssetGeneratorDataUrlOptions} */ + (this.dataUrlOptions).encoding; + if ( + encoding === undefined && + module.resourceResolveData && + module.resourceResolveData.encoding !== undefined + ) { + encoding = module.resourceResolveData.encoding; + } + if (encoding === undefined) { + encoding = DEFAULT_ENCODING; + } + const mimeType = this.getMimeType(module); + + let encodedContent; + + if ( + module.resourceResolveData && + module.resourceResolveData.encoding === encoding && + decodeDataUriContent( + module.resourceResolveData.encoding, + module.resourceResolveData.encodedContent + ).equals(source.buffer()) + ) { + encodedContent = module.resourceResolveData.encodedContent; + } else { + encodedContent = encodeDataUri(encoding, source); + } + + encodedSource = `data:${mimeType}${ + encoding ? `;${encoding}` : "" + },${encodedContent}`; + } + + return encodedSource; + } + + /** + * @private + * @param {NormalModule} module module for which the code should be generated + * @param {GenerateContext} generateContext context for generate + * @param {string} contentHash the content hash + * @returns {{ filename: string, originalFilename: string, assetInfo: AssetInfo }} info + */ + _getFilenameWithInfo( module, - { - runtime, - concatenationScope, - chunkGraph, + { runtime, runtimeTemplate, chunkGraph }, + contentHash + ) { + const assetModuleFilename = + this.filename || + /** @type {AssetModuleFilename} */ + (runtimeTemplate.outputOptions.assetModuleFilename); + + const sourceFilename = this.getSourceFileName(module, runtimeTemplate); + let { path: filename, info: assetInfo } = + runtimeTemplate.compilation.getAssetPathWithInfo(assetModuleFilename, { + module, + runtime, + filename: sourceFilename, + chunkGraph, + contentHash + }); + + const originalFilename = filename; + + if (this.outputPath) { + const { path: outputPath, info } = + runtimeTemplate.compilation.getAssetPathWithInfo(this.outputPath, { + module, + runtime, + filename: sourceFilename, + chunkGraph, + contentHash + }); + filename = path.posix.join(outputPath, filename); + assetInfo = mergeAssetInfo(assetInfo, info); + } + + return { originalFilename, filename, assetInfo }; + } + + /** + * @private + * @param {NormalModule} module module for which the code should be generated + * @param {GenerateContext} generateContext context for generate + * @param {string} filename the filename + * @param {AssetInfo} assetInfo the asset info + * @param {string} contentHash the content hash + * @returns {{ assetPath: string, assetInfo: AssetInfo }} asset path and info + */ + _getAssetPathWithInfo( + module, + { runtimeTemplate, runtime, chunkGraph, type, runtimeRequirements }, + filename, + assetInfo, + contentHash + ) { + const sourceFilename = this.getSourceFileName(module, runtimeTemplate); + + let assetPath; + + if (this.publicPath !== undefined && type === "javascript") { + const { path, info } = runtimeTemplate.compilation.getAssetPathWithInfo( + this.publicPath, + { + module, + runtime, + filename: sourceFilename, + chunkGraph, + contentHash + } + ); + assetInfo = mergeAssetInfo(assetInfo, info); + assetPath = JSON.stringify(path + filename); + } else if (this.publicPath !== undefined && type === "css-url") { + const { path, info } = runtimeTemplate.compilation.getAssetPathWithInfo( + this.publicPath, + { + module, + runtime, + filename: sourceFilename, + chunkGraph, + contentHash + } + ); + assetInfo = mergeAssetInfo(assetInfo, info); + assetPath = path + filename; + } else if (type === "javascript") { + // add __webpack_require__.p + runtimeRequirements.add(RuntimeGlobals.publicPath); + assetPath = runtimeTemplate.concatenation( + { expr: RuntimeGlobals.publicPath }, + filename + ); + } else if (type === "css-url") { + const compilation = runtimeTemplate.compilation; + const path = + compilation.outputOptions.publicPath === "auto" + ? CssUrlDependency.PUBLIC_PATH_AUTO + : compilation.getAssetPath( + /** @type {TemplatePath} */ + (compilation.outputOptions.publicPath), + { + hash: compilation.hash + } + ); + + assetPath = path + filename; + } + + return { + // eslint-disable-next-line object-shorthand + assetPath: /** @type {string} */ (assetPath), + assetInfo: { sourceFilename, ...assetInfo } + }; + } + + /** + * @param {NormalModule} module module for which the code should be generated + * @param {GenerateContext} generateContext context for generate + * @returns {Source | null} generated code + */ + generate(module, generateContext) { + const { + type, + getData, runtimeTemplate, runtimeRequirements, - type, - getData - } - ) { - switch (type) { - case ASSET_MODULE_TYPE: - return /** @type {Source} */ (module.originalSource()); - default: { - let content; - const originalSource = /** @type {Source} */ (module.originalSource()); - if (module.buildInfo.dataUrl) { - let encodedSource; - if (typeof this.dataUrlOptions === "function") { - encodedSource = this.dataUrlOptions.call( - null, - originalSource.source(), - { - filename: module.matchResource || module.resource, - module - } - ); - } else { - /** @type {string | false | undefined} */ - let encoding = this.dataUrlOptions.encoding; - if (encoding === undefined) { - if ( - module.resourceResolveData && - module.resourceResolveData.encoding !== undefined - ) { - encoding = module.resourceResolveData.encoding; - } - } - if (encoding === undefined) { - encoding = DEFAULT_ENCODING; - } - const mimeType = this.getMimeType(module); + concatenationScope + } = generateContext; - let encodedContent; + let content; - if ( - module.resourceResolveData && - module.resourceResolveData.encoding === encoding && - decodeDataUriContent( - module.resourceResolveData.encoding, - module.resourceResolveData.encodedContent - ).equals(originalSource.buffer()) - ) { - encodedContent = module.resourceResolveData.encodedContent; - } else { - encodedContent = encodeDataUri(encoding, originalSource); - } + const needContent = type === "javascript" || type === "css-url"; - encodedSource = `data:${mimeType}${ - encoding ? `;${encoding}` : "" - },${encodedContent}`; - } - const data = getData(); - data.set("url", Buffer.from(encodedSource)); - content = JSON.stringify(encodedSource); - } else { - const assetModuleFilename = - this.filename || runtimeTemplate.outputOptions.assetModuleFilename; - const hash = createHash(runtimeTemplate.outputOptions.hashFunction); - if (runtimeTemplate.outputOptions.hashSalt) { - hash.update(runtimeTemplate.outputOptions.hashSalt); - } - hash.update(originalSource.buffer()); - const fullHash = /** @type {string} */ ( - hash.digest(runtimeTemplate.outputOptions.hashDigest) - ); - const contentHash = nonNumericOnlyHash( - fullHash, - runtimeTemplate.outputOptions.hashDigestLength - ); - module.buildInfo.fullContentHash = fullHash; - const sourceFilename = this.getSourceFileName( - module, - runtimeTemplate - ); - let { path: filename, info: assetInfo } = - runtimeTemplate.compilation.getAssetPathWithInfo( - assetModuleFilename, - { - module, - runtime, - filename: sourceFilename, - chunkGraph, - contentHash - } - ); - let assetPath; - let assetPathForCss; - if (this.publicPath !== undefined) { - const { path, info } = - runtimeTemplate.compilation.getAssetPathWithInfo( - this.publicPath, - { - module, - runtime, - filename: sourceFilename, - chunkGraph, - contentHash - } - ); - assetInfo = mergeAssetInfo(assetInfo, info); - assetPath = JSON.stringify(path + filename); - assetPathForCss = path + filename; - } else { - runtimeRequirements.add(RuntimeGlobals.publicPath); // add __webpack_require__.p - assetPath = runtimeTemplate.concatenation( - { expr: RuntimeGlobals.publicPath }, - filename - ); - const compilation = runtimeTemplate.compilation; - const path = - compilation.outputOptions.publicPath === "auto" - ? CssUrlDependency.PUBLIC_PATH_AUTO - : compilation.getAssetPath( - compilation.outputOptions.publicPath, - { - hash: compilation.hash - } - ); - assetPathForCss = path + filename; - } - assetInfo = { - sourceFilename, - ...assetInfo - }; - if (this.outputPath) { - const { path: outputPath, info } = - runtimeTemplate.compilation.getAssetPathWithInfo( - this.outputPath, - { - module, - runtime, - filename: sourceFilename, - chunkGraph, - contentHash - } - ); - assetInfo = mergeAssetInfo(assetInfo, info); - filename = path.posix.join(outputPath, filename); - } - module.buildInfo.filename = filename; - module.buildInfo.assetInfo = assetInfo; - if (getData) { - // Due to code generation caching module.buildInfo.XXX can't used to store such information - // It need to be stored in the code generation results instead, where it's cached too - // TODO webpack 6 For back-compat reasons we also store in on module.buildInfo - const data = getData(); - data.set("fullContentHash", fullHash); - data.set("filename", filename); - data.set("assetInfo", assetInfo); - data.set("assetPathForCss", assetPathForCss); - } - content = assetPath; - } + const data = getData ? getData() : undefined; - if (concatenationScope) { - concatenationScope.registerNamespaceExport( - ConcatenationScope.NAMESPACE_OBJECT_EXPORT - ); - return new RawSource( - `${runtimeTemplate.supportsConst() ? "const" : "var"} ${ - ConcatenationScope.NAMESPACE_OBJECT_EXPORT - } = ${content};` - ); - } else { - runtimeRequirements.add(RuntimeGlobals.module); - return new RawSource( - `${RuntimeGlobals.module}.exports = ${content};` - ); - } + if ( + /** @type {BuildInfo} */ + (module.buildInfo).dataUrl && + needContent + ) { + const encodedSource = this.generateDataUri(module); + content = + type === "javascript" ? JSON.stringify(encodedSource) : encodedSource; + + if (data) { + data.set("url", { [type]: content, ...data.get("url") }); } + } else { + const hash = createHash( + /** @type {Algorithm} */ + (runtimeTemplate.outputOptions.hashFunction) + ); + + if (runtimeTemplate.outputOptions.hashSalt) { + hash.update(runtimeTemplate.outputOptions.hashSalt); + } + + hash.update(/** @type {Source} */ (module.originalSource()).buffer()); + + const fullHash = + /** @type {string} */ + (hash.digest(runtimeTemplate.outputOptions.hashDigest)); + + if (data) { + data.set("fullContentHash", fullHash); + } + + /** @type {BuildInfo} */ + (module.buildInfo).fullContentHash = fullHash; + + /** @type {string} */ + const contentHash = nonNumericOnlyHash( + fullHash, + /** @type {number} */ + (generateContext.runtimeTemplate.outputOptions.hashDigestLength) + ); + + if (data) { + data.set("contentHash", contentHash); + } + + const { originalFilename, filename, assetInfo } = + this._getFilenameWithInfo(module, generateContext, contentHash); + + if (data) { + data.set("filename", filename); + } + + let { assetPath, assetInfo: newAssetInfo } = this._getAssetPathWithInfo( + module, + generateContext, + originalFilename, + assetInfo, + contentHash + ); + + if (data && (type === "javascript" || type === "css-url")) { + data.set("url", { [type]: assetPath, ...data.get("url") }); + } + + if (data && data.get("assetInfo")) { + newAssetInfo = mergeAssetInfo(data.get("assetInfo"), newAssetInfo); + } + + if (data) { + data.set("assetInfo", newAssetInfo); + } + + // Due to code generation caching module.buildInfo.XXX can't used to store such information + // It need to be stored in the code generation results instead, where it's cached too + // TODO webpack 6 For back-compat reasons we also store in on module.buildInfo + /** @type {BuildInfo} */ + (module.buildInfo).filename = filename; + + /** @type {BuildInfo} */ + (module.buildInfo).assetInfo = newAssetInfo; + + content = assetPath; } + + if (type === "javascript") { + if (concatenationScope) { + concatenationScope.registerNamespaceExport( + ConcatenationScope.NAMESPACE_OBJECT_EXPORT + ); + + return new RawSource( + `${runtimeTemplate.supportsConst() ? "const" : "var"} ${ + ConcatenationScope.NAMESPACE_OBJECT_EXPORT + } = ${content};` + ); + } + + runtimeRequirements.add(RuntimeGlobals.module); + + return new RawSource(`${RuntimeGlobals.module}.exports = ${content};`); + } else if (type === "css-url") { + return null; + } + + return /** @type {Source} */ (module.originalSource()); } /** * @param {NormalModule} module fresh module - * @returns {Set} available types (do not mutate) + * @returns {SourceTypes} available types (do not mutate) */ getTypes(module) { - if ((module.buildInfo && module.buildInfo.dataUrl) || this.emit === false) { - return JS_TYPES; - } else { - return JS_AND_ASSET_TYPES; + const sourceTypes = new Set(); + const connections = this._moduleGraph.getIncomingConnections(module); + + for (const connection of connections) { + if (!connection.originModule) { + continue; + } + + sourceTypes.add(connection.originModule.type.split("/")[0]); } + + if ((module.buildInfo && module.buildInfo.dataUrl) || this.emit === false) { + if (sourceTypes) { + if (sourceTypes.has("javascript") && sourceTypes.has("css")) { + return JS_AND_CSS_URL_TYPES; + } else if (sourceTypes.has("javascript")) { + return JS_TYPES; + } else if (sourceTypes.has("css")) { + return CSS_URL_TYPES; + } + } + + return NO_TYPES; + } + + if (sourceTypes) { + if (sourceTypes.has("javascript") && sourceTypes.has("css")) { + return ASSET_AND_JS_AND_CSS_URL_TYPES; + } else if (sourceTypes.has("javascript")) { + return ASSET_AND_JS_TYPES; + } else if (sourceTypes.has("css")) { + return ASSET_AND_CSS_URL_TYPES; + } + } + + return ASSET_TYPES; } /** @@ -450,11 +656,10 @@ class AssetGenerator extends Generator { // 4/3 = base64 encoding // 34 = ~ data url header + footer + rounding return originalSource.size() * 1.34 + 36; - } else { - // it's only estimated so this number is probably fine - // Example: m.exports=r.p+"0123456789012345678901.ext" - return 42; } + // it's only estimated so this number is probably fine + // Example: m.exports=r.p+"0123456789012345678901.ext" + return 42; } } @@ -462,8 +667,12 @@ class AssetGenerator extends Generator { * @param {Hash} hash hash that will be modified * @param {UpdateHashContext} updateHashContext context for updating hash */ - updateHash(hash, { module, runtime, runtimeTemplate, chunkGraph }) { - if (module.buildInfo.dataUrl) { + updateHash(hash, updateHashContext) { + const { module } = updateHashContext; + if ( + /** @type {BuildInfo} */ + (module.buildInfo).dataUrl + ) { hash.update("data-url"); // this.dataUrlOptions as function should be pure and only depend on input source and filename // therefore it doesn't need to be hashed @@ -472,19 +681,26 @@ class AssetGenerator extends Generator { .ident; if (ident) hash.update(ident); } else { + const dataUrlOptions = + /** @type {AssetGeneratorDataUrlOptions} */ + (this.dataUrlOptions); if ( - this.dataUrlOptions.encoding && - this.dataUrlOptions.encoding !== DEFAULT_ENCODING + dataUrlOptions.encoding && + dataUrlOptions.encoding !== DEFAULT_ENCODING ) { - hash.update(this.dataUrlOptions.encoding); + hash.update(dataUrlOptions.encoding); } - if (this.dataUrlOptions.mimetype) - hash.update(this.dataUrlOptions.mimetype); + if (dataUrlOptions.mimetype) hash.update(dataUrlOptions.mimetype); // computed mimetype depends only on module filename which is already part of the hash } } else { hash.update("resource"); + const { module, chunkGraph, runtime } = updateHashContext; + const runtimeTemplate = + /** @type {NonNullable} */ + (updateHashContext.runtimeTemplate); + const pathData = { module, runtime, @@ -506,7 +722,9 @@ class AssetGenerator extends Generator { } const assetModuleFilename = - this.filename || runtimeTemplate.outputOptions.assetModuleFilename; + this.filename || + /** @type {AssetModuleFilename} */ + (runtimeTemplate.outputOptions.assetModuleFilename); const { path: filename, info } = runtimeTemplate.compilation.getAssetPathWithInfo( assetModuleFilename, diff --git a/node_modules/webpack/lib/asset/AssetModulesPlugin.js b/node_modules/webpack/lib/asset/AssetModulesPlugin.js index f77fc82..ecd9434 100644 --- a/node_modules/webpack/lib/asset/AssetModulesPlugin.js +++ b/node_modules/webpack/lib/asset/AssetModulesPlugin.js @@ -17,9 +17,12 @@ const createSchemaValidation = require("../util/create-schema-validation"); const memoize = require("../util/memoize"); /** @typedef {import("webpack-sources").Source} Source */ +/** @typedef {import("../../declarations/WebpackOptions").AssetParserOptions} AssetParserOptions */ /** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("../Module")} Module */ +/** @typedef {import("../Module").BuildInfo} BuildInfo */ +/** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */ /** * @param {string} name name of definitions @@ -89,7 +92,8 @@ class AssetModulesPlugin { .tap(plugin, parserOptions => { validateParserOptions(parserOptions); parserOptions = cleverMerge( - compiler.options.module.parser.asset, + /** @type {AssetParserOptions} */ + (compiler.options.module.parser.asset), parserOptions ); @@ -107,21 +111,21 @@ class AssetModulesPlugin { }); normalModuleFactory.hooks.createParser .for(ASSET_MODULE_TYPE_INLINE) - .tap(plugin, parserOptions => { + .tap(plugin, _parserOptions => { const AssetParser = getAssetParser(); return new AssetParser(true); }); normalModuleFactory.hooks.createParser .for(ASSET_MODULE_TYPE_RESOURCE) - .tap(plugin, parserOptions => { + .tap(plugin, _parserOptions => { const AssetParser = getAssetParser(); return new AssetParser(false); }); normalModuleFactory.hooks.createParser .for(ASSET_MODULE_TYPE_SOURCE) - .tap(plugin, parserOptions => { + .tap(plugin, _parserOptions => { const AssetSourceParser = getAssetSourceParser(); return new AssetSourceParser(); @@ -137,7 +141,7 @@ class AssetModulesPlugin { .tap(plugin, generatorOptions => { validateGeneratorOptions[type](generatorOptions); - let dataUrl = undefined; + let dataUrl; if (type !== ASSET_MODULE_TYPE_RESOURCE) { dataUrl = generatorOptions.dataUrl; if (!dataUrl || typeof dataUrl === "object") { @@ -149,9 +153,9 @@ class AssetModulesPlugin { } } - let filename = undefined; - let publicPath = undefined; - let outputPath = undefined; + let filename; + let publicPath; + let outputPath; if (type !== ASSET_MODULE_TYPE_INLINE) { filename = generatorOptions.filename; publicPath = generatorOptions.publicPath; @@ -161,6 +165,7 @@ class AssetModulesPlugin { const AssetGenerator = getAssetGenerator(); return new AssetGenerator( + compilation.moduleGraph, dataUrl, filename, publicPath, @@ -174,7 +179,7 @@ class AssetModulesPlugin { .tap(plugin, () => { const AssetSourceGenerator = getAssetSourceGenerator(); - return new AssetSourceGenerator(); + return new AssetSourceGenerator(compilation.moduleGraph); }); compilation.hooks.renderManifest.tap(plugin, (result, options) => { @@ -193,24 +198,23 @@ class AssetModulesPlugin { module, chunk.runtime ); + const buildInfo = /** @type {BuildInfo} */ (module.buildInfo); + const data = + /** @type {NonNullable} */ + (codeGenResult.data); result.push({ - render: () => codeGenResult.sources.get(type), - filename: - module.buildInfo.filename || - codeGenResult.data.get("filename"), - info: - module.buildInfo.assetInfo || - codeGenResult.data.get("assetInfo"), + render: () => + /** @type {Source} */ (codeGenResult.sources.get(type)), + filename: buildInfo.filename || data.get("filename"), + info: buildInfo.assetInfo || data.get("assetInfo"), auxiliary: true, identifier: `assetModule${chunkGraph.getModuleId(module)}`, - hash: - module.buildInfo.fullContentHash || - codeGenResult.data.get("fullContentHash") + hash: buildInfo.fullContentHash || data.get("fullContentHash") }); - } catch (e) { - /** @type {Error} */ (e).message += + } catch (err) { + /** @type {Error} */ (err).message += `\nduring rendering of asset ${module.identifier()}`; - throw e; + throw err; } } } @@ -224,9 +228,12 @@ class AssetModulesPlugin { const { codeGenerationResult } = options; const source = codeGenerationResult.sources.get(ASSET_MODULE_TYPE); if (source === undefined) return; - context.assets.set(codeGenerationResult.data.get("filename"), { + const data = + /** @type {NonNullable} */ + (codeGenerationResult.data); + context.assets.set(data.get("filename"), { source, - info: codeGenerationResult.data.get("assetInfo") + info: data.get("assetInfo") }); } ); diff --git a/node_modules/webpack/lib/asset/AssetSourceGenerator.js b/node_modules/webpack/lib/asset/AssetSourceGenerator.js index 6c0e51e..c6f2633 100644 --- a/node_modules/webpack/lib/asset/AssetSourceGenerator.js +++ b/node_modules/webpack/lib/asset/AssetSourceGenerator.js @@ -8,55 +8,86 @@ const { RawSource } = require("webpack-sources"); const ConcatenationScope = require("../ConcatenationScope"); const Generator = require("../Generator"); +const { + NO_TYPES, + CSS_URL_TYPES, + JS_TYPES, + JS_AND_CSS_URL_TYPES +} = require("../ModuleSourceTypesConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("../Generator").GenerateContext} GenerateContext */ /** @typedef {import("../Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */ +/** @typedef {import("../Module").SourceTypes} SourceTypes */ +/** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../NormalModule")} NormalModule */ -const TYPES = new Set(["javascript"]); - class AssetSourceGenerator extends Generator { + /** + * @param {ModuleGraph} moduleGraph the module graph + */ + constructor(moduleGraph) { + super(); + + this._moduleGraph = moduleGraph; + } + /** * @param {NormalModule} module module for which the code should be generated * @param {GenerateContext} generateContext context for generate - * @returns {Source} generated code + * @returns {Source | null} generated code */ generate( module, - { concatenationScope, chunkGraph, runtimeTemplate, runtimeRequirements } + { type, concatenationScope, getData, runtimeTemplate, runtimeRequirements } ) { const originalSource = module.originalSource(); + const data = getData ? getData() : undefined; - if (!originalSource) { - return new RawSource(""); + switch (type) { + case "javascript": { + if (!originalSource) { + return new RawSource(""); + } + + const content = originalSource.source(); + const encodedSource = + typeof content === "string" ? content : content.toString("utf-8"); + + let sourceContent; + if (concatenationScope) { + concatenationScope.registerNamespaceExport( + ConcatenationScope.NAMESPACE_OBJECT_EXPORT + ); + sourceContent = `${runtimeTemplate.supportsConst() ? "const" : "var"} ${ + ConcatenationScope.NAMESPACE_OBJECT_EXPORT + } = ${JSON.stringify(encodedSource)};`; + } else { + runtimeRequirements.add(RuntimeGlobals.module); + sourceContent = `${RuntimeGlobals.module}.exports = ${JSON.stringify( + encodedSource + )};`; + } + return new RawSource(sourceContent); + } + case "css-url": { + if (!originalSource) { + return null; + } + + const content = originalSource.source(); + const encodedSource = + typeof content === "string" ? content : content.toString("utf-8"); + + if (data) { + data.set("url", { [type]: encodedSource }); + } + return null; + } + default: + return null; } - - const content = originalSource.source(); - - let encodedSource; - if (typeof content === "string") { - encodedSource = content; - } else { - encodedSource = content.toString("utf-8"); - } - - let sourceContent; - if (concatenationScope) { - concatenationScope.registerNamespaceExport( - ConcatenationScope.NAMESPACE_OBJECT_EXPORT - ); - sourceContent = `${runtimeTemplate.supportsConst() ? "const" : "var"} ${ - ConcatenationScope.NAMESPACE_OBJECT_EXPORT - } = ${JSON.stringify(encodedSource)};`; - } else { - runtimeRequirements.add(RuntimeGlobals.module); - sourceContent = `${RuntimeGlobals.module}.exports = ${JSON.stringify( - encodedSource - )};`; - } - return new RawSource(sourceContent); } /** @@ -70,10 +101,29 @@ class AssetSourceGenerator extends Generator { /** * @param {NormalModule} module fresh module - * @returns {Set} available types (do not mutate) + * @returns {SourceTypes} available types (do not mutate) */ getTypes(module) { - return TYPES; + const sourceTypes = new Set(); + const connections = this._moduleGraph.getIncomingConnections(module); + + for (const connection of connections) { + if (!connection.originModule) { + continue; + } + + sourceTypes.add(connection.originModule.type.split("/")[0]); + } + + if (sourceTypes.has("javascript") && sourceTypes.has("css")) { + return JS_AND_CSS_URL_TYPES; + } else if (sourceTypes.has("javascript")) { + return JS_TYPES; + } else if (sourceTypes.has("css")) { + return CSS_URL_TYPES; + } + + return NO_TYPES; } /** diff --git a/node_modules/webpack/lib/asset/RawDataUrlModule.js b/node_modules/webpack/lib/asset/RawDataUrlModule.js index 3098b9c..509efa5 100644 --- a/node_modules/webpack/lib/asset/RawDataUrlModule.js +++ b/node_modules/webpack/lib/asset/RawDataUrlModule.js @@ -7,6 +7,7 @@ const { RawSource } = require("webpack-sources"); const Module = require("../Module"); +const { JS_TYPES } = require("../ModuleSourceTypesConstants"); const { ASSET_MODULE_TYPE_RAW_DATA_URL } = require("../ModuleTypeConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); const makeSerializable = require("../util/makeSerializable"); @@ -26,8 +27,6 @@ const makeSerializable = require("../util/makeSerializable"); /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */ -const TYPES = new Set(["javascript"]); - class RawDataUrlModule extends Module { /** * @param {string} url raw url @@ -46,7 +45,7 @@ class RawDataUrlModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return TYPES; + return JS_TYPES; } /** @@ -114,7 +113,9 @@ class RawDataUrlModule extends Module { new RawSource(`module.exports = ${JSON.stringify(this.url)};`) ); const data = new Map(); - data.set("url", this.urlBuffer); + data.set("url", { + javascript: this.url + }); const runtimeRequirements = new Set(); runtimeRequirements.add(RuntimeGlobals.module); return { sources, runtimeRequirements, data }; diff --git a/node_modules/webpack/lib/async-modules/AwaitDependenciesInitFragment.js b/node_modules/webpack/lib/async-modules/AwaitDependenciesInitFragment.js index 84c96a0..84abf28 100644 --- a/node_modules/webpack/lib/async-modules/AwaitDependenciesInitFragment.js +++ b/node_modules/webpack/lib/async-modules/AwaitDependenciesInitFragment.js @@ -52,13 +52,12 @@ class AwaitDependenciesInitFragment extends InitFragment { return ""; } if (promises.size === 1) { - for (const p of promises) { - return Template.asString([ - `var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([${p}]);`, - `${p} = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];`, - "" - ]); - } + const [p] = promises; + return Template.asString([ + `var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([${p}]);`, + `${p} = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];`, + "" + ]); } const sepPromises = Array.from(promises).join(", "); // TODO check if destructuring is supported diff --git a/node_modules/webpack/lib/buildChunkGraph.js b/node_modules/webpack/lib/buildChunkGraph.js index f7400d4..ce2dafe 100644 --- a/node_modules/webpack/lib/buildChunkGraph.js +++ b/node_modules/webpack/lib/buildChunkGraph.js @@ -38,6 +38,7 @@ const { getEntryRuntime, mergeRuntime } = require("./util/runtime"); * @typedef {object} ChunkGroupInfo * @property {ChunkGroup} chunkGroup the chunk group * @property {RuntimeSpec} runtime the runtimes + * @property {boolean} initialized is this chunk group initialized * @property {bigint | undefined} minAvailableModules current minimal set of modules available at this point * @property {bigint[]} availableModulesToBeMerged enqueued updates to the minimal set of available modules * @property {Set=} skippedItems modules that were skipped because module is already available in parent chunks (need to reconsider when minAvailableModules is shrinking) @@ -209,7 +210,7 @@ const extractBlockModules = (module, moduleGraph, runtime, blockModulesMap) => { const merged = /** @type {ConnectionState} */ (modules[idx]); /** @type {ModuleGraphConnection[]} */ (/** @type {unknown} */ (modules[idx + 1])).push(connection); - if (merged === true) continue outer; + if (merged === true) continue; modules[idx] = ModuleGraphConnection.addConnectionStates( merged, state @@ -234,7 +235,6 @@ const extractBlockModules = (module, moduleGraph, runtime, blockModulesMap) => { }; /** - * * @param {Logger} logger a logger * @param {Compilation} compilation the compilation * @param {InputEntrypointsAndModules} inputEntrypointsAndModules chunk groups which are processed with the modules @@ -286,7 +286,6 @@ const visitModules = ( } /** - * * @param {DependenciesBlock} block block * @param {RuntimeSpec} runtime runtime * @returns {BlockModulesInFlattenTuples} block modules in flatten tuples @@ -316,15 +315,14 @@ const visitModules = ( for (const [block, blockModules] of map) blockModulesMap.set(block, blockModules); return map.get(block); - } else { - logger.time("visitModules: prepare"); - extractBlockModules(module, moduleGraph, runtime, blockModulesMap); - blockModules = - /** @type {BlockModulesInFlattenTuples} */ - (blockModulesMap.get(block)); - logger.timeAggregate("visitModules: prepare"); - return blockModules; } + logger.time("visitModules: prepare"); + extractBlockModules(module, moduleGraph, runtime, blockModulesMap); + blockModules = + /** @type {BlockModulesInFlattenTuples} */ + (blockModulesMap.get(block)); + logger.timeAggregate("visitModules: prepare"); + return blockModules; }; let statProcessedQueueItems = 0; @@ -332,12 +330,12 @@ const visitModules = ( let statConnectedChunkGroups = 0; let statProcessedChunkGroupsForMerging = 0; let statMergedAvailableModuleSets = 0; - let statForkedAvailableModules = 0; - let statForkedAvailableModulesCount = 0; - let statForkedAvailableModulesCountPlus = 0; - let statForkedMergedModulesCount = 0; - let statForkedMergedModulesCountPlus = 0; - let statForkedResultModulesCount = 0; + const statForkedAvailableModules = 0; + const statForkedAvailableModulesCount = 0; + const statForkedAvailableModulesCountPlus = 0; + const statForkedMergedModulesCount = 0; + const statForkedMergedModulesCountPlus = 0; + const statForkedResultModulesCount = 0; let statChunkGroupInfoUpdated = 0; let statChildChunkGroupsReconnected = 0; @@ -348,8 +346,8 @@ const visitModules = ( /** @type {Map} */ const blockChunkGroups = new Map(); - /** @type {Map} */ - const blockByChunkGroups = new Map(); + /** @type {Map>} */ + const blocksByChunkGroups = new Map(); /** @type {Map} */ const namedChunkGroups = new Map(); @@ -370,7 +368,7 @@ const visitModules = ( /** @type {QueueItem[]} */ let queue = []; - /** @type {Map>} */ + /** @type {Map>} */ const queueConnect = new Map(); /** @type {Set} */ const chunkGroupsForCombining = new Set(); @@ -385,6 +383,7 @@ const visitModules = ( ); /** @type {ChunkGroupInfo} */ const chunkGroupInfo = { + initialized: false, chunkGroup, runtime, minAvailableModules: undefined, @@ -455,7 +454,7 @@ const visitModules = ( /** @type {Set} */ const outdatedChunkGroupInfo = new Set(); - /** @type {Set} */ + /** @type {Set<[ChunkGroupInfo, QueueItem | null]>} */ const chunkGroupsForMerging = new Set(); /** @type {QueueItem[]} */ let queueDelayed = []; @@ -508,6 +507,7 @@ const visitModules = ( entrypoint.index = nextChunkGroupIndex++; cgi = { chunkGroup: entrypoint, + initialized: false, runtime: entrypoint.options.runtime || entrypoint.name, minAvailableModules: ZERO_BIGINT, availableModulesToBeMerged: [], @@ -575,6 +575,7 @@ const visitModules = ( maskByChunk.set(c.chunks[0], ZERO_BIGINT); c.index = nextChunkGroupIndex++; cgi = { + initialized: false, chunkGroup: c, runtime: chunkGroupInfo.runtime, minAvailableModules: undefined, @@ -617,7 +618,6 @@ const visitModules = ( blockConnections.set(b, []); } blockChunkGroups.set(b, /** @type {ChunkGroupInfo} */ (cgi)); - blockByChunkGroups.set(/** @type {ChunkGroupInfo} */ (cgi), b); } else if (entryOptions) { entrypoint = /** @type {Entrypoint} */ (cgi.chunkGroup); } else { @@ -639,19 +639,17 @@ const visitModules = ( connectList = new Set(); queueConnect.set(chunkGroupInfo, connectList); } - connectList.add(/** @type {ChunkGroupInfo} */ (cgi)); - - // TODO check if this really need to be done for each traversal - // or if it is enough when it's queued when created - // 4. We enqueue the DependenciesBlock for traversal - queueDelayed.push({ - action: PROCESS_BLOCK, - block: b, - module, - chunk: c.chunks[0], - chunkGroup: c, - chunkGroupInfo: /** @type {ChunkGroupInfo} */ (cgi) - }); + connectList.add([ + /** @type {ChunkGroupInfo} */ (cgi), + { + action: PROCESS_BLOCK, + block: b, + module, + chunk: c.chunks[0], + chunkGroup: c, + chunkGroupInfo: /** @type {ChunkGroupInfo} */ (cgi) + } + ]); } else if (entrypoint !== undefined) { chunkGroupInfo.chunkGroup.addAsyncEntrypoint(entrypoint); } @@ -904,11 +902,10 @@ const visitModules = ( for (const [chunkGroupInfo, targets] of queueConnect) { // 1. Add new targets to the list of children if (chunkGroupInfo.children === undefined) { - chunkGroupInfo.children = targets; - } else { - for (const target of targets) { - chunkGroupInfo.children.add(target); - } + chunkGroupInfo.children = new Set(); + } + for (const [target] of targets) { + chunkGroupInfo.children.add(target); } // 2. Calculate resulting available modules @@ -918,9 +915,9 @@ const visitModules = ( const runtime = chunkGroupInfo.runtime; // 3. Update chunk group info - for (const target of targets) { + for (const [target, processBlock] of targets) { target.availableModulesToBeMerged.push(resultingAvailableModules); - chunkGroupsForMerging.add(target); + chunkGroupsForMerging.add([target, processBlock]); const oldRuntime = target.runtime; const newRuntime = mergeRuntime(oldRuntime, runtime); if (oldRuntime !== newRuntime) { @@ -938,7 +935,7 @@ const visitModules = ( statProcessedChunkGroupsForMerging += chunkGroupsForMerging.size; // Execute the merge - for (const info of chunkGroupsForMerging) { + for (const [info, processBlock] of chunkGroupsForMerging) { const availableModulesToBeMerged = info.availableModulesToBeMerged; const cachedMinAvailableModules = info.minAvailableModules; let minAvailableModules = cachedMinAvailableModules; @@ -961,6 +958,27 @@ const visitModules = ( info.resultingAvailableModules = undefined; outdatedChunkGroupInfo.add(info); } + + if (processBlock) { + let blocks = blocksByChunkGroups.get(info); + if (!blocks) { + blocksByChunkGroups.set(info, (blocks = new Set())); + } + + // Whether to walk block depends on minAvailableModules and input block. + // We can treat creating chunk group as a function with 2 input, entry block and minAvailableModules + // If input is the same, we can skip re-walk + let needWalkBlock = !info.initialized || changed; + if (!blocks.has(processBlock.block)) { + needWalkBlock = true; + blocks.add(processBlock.block); + } + + if (needWalkBlock) { + info.initialized = true; + queueDelayed.push(processBlock); + } + } } chunkGroupsForMerging.clear(); }; @@ -1060,7 +1078,7 @@ const visitModules = ( connectList = new Set(); queueConnect.set(info, connectList); } - connectList.add(cgi); + connectList.add([cgi, null]); } } @@ -1120,48 +1138,44 @@ const visitModules = ( for (const info of outdatedOrderIndexChunkGroups) { const { chunkGroup, runtime } = info; - const block = blockByChunkGroups.get(info); + const blocks = blocksByChunkGroups.get(info); - if (!block) { + if (!blocks) { continue; } - let preOrderIndex = 0; - let postOrderIndex = 0; + for (const block of blocks) { + let preOrderIndex = 0; + let postOrderIndex = 0; + /** + * @param {DependenciesBlock} current current + * @param {BlocksWithNestedBlocks} visited visited dependencies blocks + */ + const process = (current, visited) => { + const blockModules = getBlockModules(current, runtime); + for (let i = 0, len = blockModules.length; i < len; i += 3) { + const activeState = /** @type {ConnectionState} */ ( + blockModules[i + 1] + ); + if (activeState === false) { + continue; + } + const refModule = /** @type {Module} */ (blockModules[i]); + if (visited.has(refModule)) { + continue; + } - /** - * @param {DependenciesBlock} current current - * @param {BlocksWithNestedBlocks} visited visited dependencies blocks - */ - const process = (current, visited) => { - const blockModules = getBlockModules(current, runtime); - if (blockModules === undefined) { - return; - } + visited.add(refModule); - for (let i = 0, len = blockModules.length; i < len; i += 3) { - const activeState = /** @type {ConnectionState} */ ( - blockModules[i + 1] - ); - if (activeState === false) { - continue; + if (refModule) { + chunkGroup.setModulePreOrderIndex(refModule, preOrderIndex++); + process(refModule, visited); + chunkGroup.setModulePostOrderIndex(refModule, postOrderIndex++); + } } - const refModule = /** @type {Module} */ (blockModules[i]); - if (visited.has(refModule)) { - continue; - } - - visited.add(refModule); - - if (refModule) { - chunkGroup.setModulePreOrderIndex(refModule, preOrderIndex++); - process(refModule, visited); - chunkGroup.setModulePostOrderIndex(refModule, postOrderIndex++); - } - } - }; - - process(block, new Set()); + }; + process(block, new Set()); + } } outdatedOrderIndexChunkGroups.clear(); ordinalByModule.clear(); @@ -1179,7 +1193,6 @@ const visitModules = ( }; /** - * * @param {Compilation} compilation the compilation * @param {BlocksWithNestedBlocks} blocksWithNestedBlocks flag for blocks that have nested blocks * @param {BlockConnections} blockConnections connection for blocks @@ -1195,7 +1208,6 @@ const connectChunkGroups = ( /** * Helper function to check if all modules of a chunk are available - * * @param {ChunkGroup} chunkGroup the chunkGroup to scan * @param {bigint} availableModules the comparator set * @returns {boolean} return true if all modules of a chunk are available diff --git a/node_modules/webpack/lib/cache/IdleFileCachePlugin.js b/node_modules/webpack/lib/cache/IdleFileCachePlugin.js index 2bf0044..3ac5912 100644 --- a/node_modules/webpack/lib/cache/IdleFileCachePlugin.js +++ b/node_modules/webpack/lib/cache/IdleFileCachePlugin.js @@ -11,7 +11,7 @@ const ProgressPlugin = require("../ProgressPlugin"); /** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("./PackFileCacheStrategy")} PackFileCacheStrategy */ -const BUILD_DEPENDENCIES_KEY = Symbol(); +const BUILD_DEPENDENCIES_KEY = Symbol("build dependencies key"); class IdleFileCachePlugin { /** @@ -38,7 +38,7 @@ class IdleFileCachePlugin { * @returns {void} */ apply(compiler) { - let strategy = this.strategy; + const strategy = this.strategy; const idleTimeout = this.idleTimeout; const idleTimeoutForInitialStore = Math.min( idleTimeout, @@ -119,7 +119,7 @@ class IdleFileCachePlugin { currentIdlePromise = promise.then(() => strategy.afterAllStored()); if (reportProgress) { currentIdlePromise = currentIdlePromise.then(() => { - reportProgress(1, `stored`); + reportProgress(1, "stored"); }); } return currentIdlePromise.then(() => { @@ -175,7 +175,7 @@ class IdleFileCachePlugin { } }; /** @type {ReturnType | undefined} */ - let idleTimer = undefined; + let idleTimer; compiler.cache.hooks.beginIdle.tap( { name: "IdleFileCachePlugin", stage: Cache.STAGE_DISK }, () => { diff --git a/node_modules/webpack/lib/cache/MemoryWithGcCachePlugin.js b/node_modules/webpack/lib/cache/MemoryWithGcCachePlugin.js index 11cee61..ddfb80b 100644 --- a/node_modules/webpack/lib/cache/MemoryWithGcCachePlugin.js +++ b/node_modules/webpack/lib/cache/MemoryWithGcCachePlugin.js @@ -20,6 +20,7 @@ class MemoryWithGcCachePlugin { constructor({ maxGenerations }) { this._maxGenerations = maxGenerations; } + /** * Apply the plugin * @param {Compiler} compiler the compiler instance @@ -106,12 +107,11 @@ class MemoryWithGcCachePlugin { oldCache.delete(identifier); cache.set(identifier, cacheEntry); return null; - } else { - if (cacheEntry.etag !== etag) return null; - oldCache.delete(identifier); - cache.set(identifier, cacheEntry); - return cacheEntry.data; } + if (cacheEntry.etag !== etag) return null; + oldCache.delete(identifier); + cache.set(identifier, cacheEntry); + return cacheEntry.data; } gotHandlers.push((result, callback) => { if (result === undefined) { diff --git a/node_modules/webpack/lib/cache/PackFileCacheStrategy.js b/node_modules/webpack/lib/cache/PackFileCacheStrategy.js index 7b2a6d6..df89588 100644 --- a/node_modules/webpack/lib/cache/PackFileCacheStrategy.js +++ b/node_modules/webpack/lib/cache/PackFileCacheStrategy.js @@ -98,7 +98,7 @@ const MAX_TIME_IN_FRESH_PACK = 1 * 60 * 1000; // 1 min class PackItemInfo { /** * @param {string} identifier identifier of item - * @param {string | null} etag etag of item + * @param {string | null | undefined} etag etag of item * @param {any} value fresh value of item */ constructor(identifier, etag, value) { @@ -160,19 +160,18 @@ class Pack { const info = this.itemInfo.get(identifier); this._addRequest(identifier); if (info === undefined) { - return undefined; + return; } if (info.etag !== etag) return null; info.lastAccess = Date.now(); const loc = info.location; if (loc === -1) { return info.freshValue; - } else { - if (!this.content[loc]) { - return undefined; - } - return /** @type {PackContent} */ (this.content[loc]).get(identifier); } + if (!this.content[loc]) { + return; + } + return /** @type {PackContent} */ (this.content[loc]).get(identifier); } /** @@ -269,20 +268,21 @@ class Pack { } _persistFreshContent() { + /** @typedef {{ items: Items, map: Map, loc: number }} PackItem */ const itemsCount = this.freshContent.size; if (itemsCount > 0) { const packCount = Math.ceil(itemsCount / MAX_ITEMS_IN_FRESH_PACK); const itemsPerPack = Math.ceil(itemsCount / packCount); + /** @type {PackItem[]} */ const packs = []; let i = 0; let ignoreNextTimeTick = false; const createNextPack = () => { const loc = this._findLocation(); - this.content[loc] = null; // reserve + this.content[loc] = /** @type {EXPECTED_ANY} */ (null); // reserve + /** @type {PackItem} */ const pack = { - /** @type {Items} */ items: new Set(), - /** @type {Map} */ map: new Map(), loc }; @@ -408,7 +408,9 @@ class Pack { await content.unpack( "it should be merged with other small pack contents" ); - for (const [identifier, value] of content.content) { + for (const [identifier, value] of /** @type {Content} */ ( + content.content + )) { map.set(identifier, value); } }); @@ -424,7 +426,7 @@ class Pack { mergedItems, mergedUsedItems, memoize(async () => { - /** @type {Map} */ + /** @type {Content} */ const map = new Map(); await Promise.all(addToMergedMap.map(fn => fn(map))); return new PackContentItems(map); @@ -472,7 +474,11 @@ class Pack { ); const map = new Map(); for (const identifier of usedItems) { - map.set(identifier, content.content.get(identifier)); + map.set( + identifier, + /** @type {Content} */ + (content.content).get(identifier) + ); } return new PackContentItems(map); } @@ -499,7 +505,11 @@ class Pack { ); const map = new Map(); for (const identifier of unusedItems) { - map.set(identifier, content.content.get(identifier)); + map.set( + identifier, + /** @type {Content} */ + (content.content).get(identifier) + ); } return new PackContentItems(map); } @@ -528,7 +538,7 @@ class Pack { */ _gcOldestContent() { /** @type {PackItemInfo | undefined} */ - let oldest = undefined; + let oldest; for (const info of this.itemInfo.values()) { if (oldest === undefined || info.lastAccess < oldest.lastAccess) { oldest = info; @@ -553,7 +563,11 @@ class Pack { ); const map = new Map(); for (const identifier of items) { - map.set(identifier, content.content.get(identifier)); + map.set( + identifier, + /** @type {Content} */ + (content.content).get(identifier) + ); } return new PackContentItems(map); }) @@ -634,7 +648,8 @@ class Pack { ) ); for (const identifier of items) { - this.itemInfo.get(identifier).location = idx; + /** @type {PackItemInfo} */ + (this.itemInfo.get(identifier)).location = idx; } } items = read(); @@ -644,9 +659,11 @@ class Pack { makeSerializable(Pack, "webpack/lib/cache/PackFileCacheStrategy", "Pack"); +/** @typedef {Map} Content */ + class PackContentItems { /** - * @param {Map} map items + * @param {Content} map items */ constructor(map) { this.map = map; @@ -677,16 +694,21 @@ class PackContentItems { logger.log(`Serialization of '${key}': ${duration} ms`); else logger.debug(`Serialization of '${key}': ${duration} ms`); } - } catch (e) { + } catch (err) { rollback(s); - if (e === NOT_SERIALIZABLE) continue; + if (err === NOT_SERIALIZABLE) continue; const msg = "Skipped not serializable cache item"; - if (e.message.includes("ModuleBuildError")) { - logger.log(`${msg} (in build error): ${e.message}`); - logger.debug(`${msg} '${key}' (in build error): ${e.stack}`); + const notSerializableErr = /** @type {Error} */ (err); + if (notSerializableErr.message.includes("ModuleBuildError")) { + logger.log( + `${msg} (in build error): ${notSerializableErr.message}` + ); + logger.debug( + `${msg} '${key}' (in build error): ${notSerializableErr.stack}` + ); } else { - logger.warn(`${msg}: ${e.message}`); - logger.debug(`${msg} '${key}': ${e.stack}`); + logger.warn(`${msg}: ${notSerializableErr.message}`); + logger.debug(`${msg} '${key}': ${notSerializableErr.stack}`); } } } @@ -698,7 +720,7 @@ class PackContentItems { try { write(true); write(this.map); - } catch (e) { + } catch (_err) { rollback(s); // Try to serialize each item on it's own @@ -708,13 +730,14 @@ class PackContentItems { try { write(key); write(value); - } catch (e) { + } catch (err) { rollback(s); - if (e === NOT_SERIALIZABLE) continue; + if (err === NOT_SERIALIZABLE) continue; + const notSerializableErr = /** @type {Error} */ (err); logger.warn( - `Skipped not serializable cache item '${key}': ${e.message}` + `Skipped not serializable cache item '${key}': ${notSerializableErr.message}` ); - logger.debug(e.stack); + logger.debug(notSerializableErr.stack); } } write(null); @@ -768,6 +791,8 @@ makeSerializable( "PackContentItems" ); +/** @typedef {(function(): Promise | PackContentItems)} LazyFn */ + class PackContent { /* This class can be in these states: @@ -797,9 +822,9 @@ class PackContent { */ constructor(items, usedItems, dataOrFn, logger, lazyName) { this.items = items; - /** @type {(function(): Promise | PackContentItems) | undefined} */ + /** @type {LazyFn | undefined} */ this.lazy = typeof dataOrFn === "function" ? dataOrFn : undefined; - /** @type {Map | undefined} */ + /** @type {Content | undefined} */ this.content = typeof dataOrFn === "function" ? undefined : dataOrFn.map; this.outdated = false; this.used = usedItems; @@ -817,6 +842,7 @@ class PackContent { return this.content.get(identifier); } + const logger = /** @type {Logger} */ (this.logger); // We are in state B const { lazyName } = this; /** @type {string | undefined} */ @@ -827,35 +853,41 @@ class PackContent { timeMessage = `restore cache content ${lazyName} (${formatSize( this.getSize() )})`; - this.logger.log( + logger.log( `starting to restore cache content ${lazyName} (${formatSize( this.getSize() )}) because of request to: ${identifier}` ); - this.logger.time(timeMessage); + logger.time(timeMessage); } - const value = this.lazy(); + const value = /** @type {LazyFn} */ (this.lazy)(); if ("then" in value) { return value.then(data => { const map = data.map; if (timeMessage) { - this.logger.timeEnd(timeMessage); + logger.timeEnd(timeMessage); } // Move to state C this.content = map; - this.lazy = SerializerMiddleware.unMemoizeLazy(this.lazy); + this.lazy = SerializerMiddleware.unMemoizeLazy( + /** @type {LazyFn} */ + (this.lazy) + ); return map.get(identifier); }); - } else { - const map = value.map; - if (timeMessage) { - this.logger.timeEnd(timeMessage); - } - // Move to state C - this.content = map; - this.lazy = SerializerMiddleware.unMemoizeLazy(this.lazy); - return map.get(identifier); } + + const map = value.map; + if (timeMessage) { + logger.timeEnd(timeMessage); + } + // Move to state C + this.content = map; + this.lazy = SerializerMiddleware.unMemoizeLazy( + /** @type {LazyFn} */ + (this.lazy) + ); + return map.get(identifier); } /** @@ -865,6 +897,7 @@ class PackContent { unpack(reason) { if (this.content) return; + const logger = /** @type {Logger} */ (this.logger); // Move from state B to C if (this.lazy) { const { lazyName } = this; @@ -876,27 +909,26 @@ class PackContent { timeMessage = `unpack cache content ${lazyName} (${formatSize( this.getSize() )})`; - this.logger.log( + logger.log( `starting to unpack cache content ${lazyName} (${formatSize( this.getSize() )}) because ${reason}` ); - this.logger.time(timeMessage); + logger.time(timeMessage); } const value = this.lazy(); if ("then" in value) { return value.then(data => { if (timeMessage) { - this.logger.timeEnd(timeMessage); + logger.timeEnd(timeMessage); } this.content = data.map; }); - } else { - if (timeMessage) { - this.logger.timeEnd(timeMessage); - } - this.content = value.map; } + if (timeMessage) { + logger.timeEnd(timeMessage); + } + this.content = value.map; } } @@ -944,7 +976,7 @@ class PackContent { } if (this.content) { // State A2 or C2 - /** @type {Map} */ + /** @type {Content} */ const map = new Map(); for (const item of this.items) { map.set(item, this.content.get(item)); @@ -957,6 +989,7 @@ class PackContent { ); return; } + const logger = /** @type {Logger} */ (this.logger); // State B2 const { lazyName } = this; /** @type {string | undefined} */ @@ -967,31 +1000,34 @@ class PackContent { timeMessage = `unpack cache content ${lazyName} (${formatSize( this.getSize() )})`; - this.logger.log( + logger.log( `starting to unpack cache content ${lazyName} (${formatSize( this.getSize() )}) because it's outdated and need to be serialized` ); - this.logger.time(timeMessage); + logger.time(timeMessage); } - const value = this.lazy(); + const value = /** @type {LazyFn} */ (this.lazy)(); this.outdated = false; if ("then" in value) { // Move to state B1 this.lazy = write(() => value.then(data => { if (timeMessage) { - this.logger.timeEnd(timeMessage); + logger.timeEnd(timeMessage); } const oldMap = data.map; - /** @type {Map} */ + /** @type {Content} */ const map = new Map(); for (const item of this.items) { map.set(item, oldMap.get(item)); } // Move to state C1 (or maybe C2) this.content = map; - this.lazy = SerializerMiddleware.unMemoizeLazy(this.lazy); + this.lazy = SerializerMiddleware.unMemoizeLazy( + /** @type {LazyFn} */ + (this.lazy) + ); return new PackContentItems(map); }) @@ -999,10 +1035,10 @@ class PackContent { } else { // Move to state C1 if (timeMessage) { - this.logger.timeEnd(timeMessage); + logger.timeEnd(timeMessage); } const oldMap = value.map; - /** @type {Map} */ + /** @type {Content} */ const map = new Map(); for (const item of this.items) { map.set(item, oldMap.get(item)); @@ -1148,19 +1184,19 @@ class PackFileCacheStrategy { }) .then(packContainer => { logger.timeEnd("restore cache container"); - if (!packContainer) return undefined; + if (!packContainer) return; if (!(packContainer instanceof PackContainer)) { logger.warn( `Restored pack from ${cacheLocation}${this._extension}, but contained content is unexpected.`, packContainer ); - return undefined; + return; } if (packContainer.version !== version) { logger.log( `Restored pack from ${cacheLocation}${this._extension}, but version doesn't match.` ); - return undefined; + return; } logger.time("check build dependencies"); return Promise.all([ @@ -1321,7 +1357,7 @@ class PackFileCacheStrategy { pack.stopCapturingRequests(); if (!pack.invalid) return; this.packPromise = undefined; - this.logger.log(`Storing pack...`); + this.logger.log("Storing pack..."); let promise; const newBuildDependencies = new Set(); for (const dep of this.newBuildDependencies) { @@ -1439,7 +1475,7 @@ class PackFileCacheStrategy { } return promise.then(() => { if (reportProgress) reportProgress(0.8, "serialize pack"); - this.logger.time(`store pack`); + this.logger.time("store pack"); const updatedBuildDependencies = new Set(this.buildDependencies); for (const dep of newBuildDependencies) { updatedBuildDependencies.add(dep); @@ -1447,10 +1483,13 @@ class PackFileCacheStrategy { const content = new PackContainer( pack, this.version, - /** @type {Snapshot} */ (this.buildSnapshot), + /** @type {Snapshot} */ + (this.buildSnapshot), updatedBuildDependencies, - this.resolveResults, - this.resolveBuildDependenciesSnapshot + /** @type {ResolveResults} */ + (this.resolveResults), + /** @type {Snapshot} */ + (this.resolveBuildDependenciesSnapshot) ); return this.fileSerializer .serialize(content, { @@ -1464,7 +1503,7 @@ class PackFileCacheStrategy { this.buildDependencies.add(dep); } this.newBuildDependencies.clear(); - this.logger.timeEnd(`store pack`); + this.logger.timeEnd("store pack"); const stats = pack.getContentStats(); this.logger.log( "Stored pack (%d items, %d files, %d MiB)", @@ -1474,7 +1513,7 @@ class PackFileCacheStrategy { ); }) .catch(err => { - this.logger.timeEnd(`store pack`); + this.logger.timeEnd("store pack"); this.logger.warn(`Caching failed for pack: ${err}`); this.logger.debug(err.stack); }); diff --git a/node_modules/webpack/lib/cache/ResolverCachePlugin.js b/node_modules/webpack/lib/cache/ResolverCachePlugin.js index 7cdee59..adb320b 100644 --- a/node_modules/webpack/lib/cache/ResolverCachePlugin.js +++ b/node_modules/webpack/lib/cache/ResolverCachePlugin.js @@ -8,23 +8,45 @@ const LazySet = require("../util/LazySet"); const makeSerializable = require("../util/makeSerializable"); +/** @typedef {import("enhanced-resolve").ResolveContext} ResolveContext */ +/** @typedef {import("enhanced-resolve").ResolveOptions} ResolveOptions */ +/** @typedef {import("enhanced-resolve").ResolveRequest} ResolveRequest */ /** @typedef {import("enhanced-resolve").Resolver} Resolver */ /** @typedef {import("../CacheFacade").ItemCacheFacade} ItemCacheFacade */ /** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("../FileSystemInfo")} FileSystemInfo */ /** @typedef {import("../FileSystemInfo").Snapshot} Snapshot */ +/** @typedef {import("../FileSystemInfo").SnapshotOptions} SnapshotOptions */ +/** @typedef {import("../ResolverFactory").ResolveOptionsWithDependencyType} ResolveOptionsWithDependencyType */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ + +/** + * @template T + * @typedef {import("tapable").SyncHook} SyncHook + */ class CacheEntry { + /** + * @param {ResolveRequest} result result + * @param {Snapshot} snapshot snapshot + */ constructor(result, snapshot) { this.result = result; this.snapshot = snapshot; } + /** + * @param {ObjectSerializerContext} context context + */ serialize({ write }) { write(this.result); write(this.snapshot); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize({ read }) { this.result = read(); this.snapshot = read(); @@ -36,7 +58,7 @@ makeSerializable(CacheEntry, "webpack/lib/cache/ResolverCachePlugin"); /** * @template T * @param {Set | LazySet} set set to add items to - * @param {Set | LazySet} otherSet set to add items from + * @param {Set | LazySet | Iterable} otherSet set to add items from * @returns {void} */ const addAllToSet = (set, otherSet) => { @@ -50,7 +72,8 @@ const addAllToSet = (set, otherSet) => { }; /** - * @param {object} object an object + * @template {object} T + * @param {T} object an object * @param {boolean} excludeContext if true, context is not included in string * @returns {string} stringified version */ @@ -59,11 +82,10 @@ const objectToString = (object, excludeContext) => { for (const key in object) { if (excludeContext && key === "context") continue; const value = object[key]; - if (typeof value === "object" && value !== null) { - str += `|${key}=[${objectToString(value, false)}|]`; - } else { - str += `|${key}=|${value}`; - } + str += + typeof value === "object" && value !== null + ? `|${key}=[${objectToString(value, false)}|]` + : `|${key}=|${value}`; } return str; }; @@ -78,6 +100,7 @@ class ResolverCachePlugin { const cache = compiler.getCache("ResolverCachePlugin"); /** @type {FileSystemInfo} */ let fileSystemInfo; + /** @type {SnapshotOptions | undefined} */ let snapshotOptions; let realResolves = 0; let cachedResolves = 0; @@ -101,12 +124,16 @@ class ResolverCachePlugin { } }); }); + + /** @typedef {function((Error | null)=, ResolveRequest=): void} Callback */ + /** @typedef {ResolveRequest & { _ResolverCachePluginCacheMiss: true }} ResolveRequestWithCacheMiss */ + /** * @param {ItemCacheFacade} itemCache cache * @param {Resolver} resolver the resolver - * @param {object} resolveContext context for resolving meta info - * @param {object} request the request info object - * @param {function((Error | null)=, object=): void} callback callback function + * @param {ResolveContext} resolveContext context for resolving meta info + * @param {ResolveRequest} request the request info object + * @param {Callback} callback callback function * @returns {void} */ const doRealResolve = ( @@ -117,10 +144,13 @@ class ResolverCachePlugin { callback ) => { realResolves++; - const newRequest = { - _ResolverCachePluginCacheMiss: true, - ...request - }; + const newRequest = + /** @type {ResolveRequestWithCacheMiss} */ + ({ + _ResolverCachePluginCacheMiss: true, + ...request + }); + /** @type {ResolveContext} */ const newResolveContext = { ...resolveContext, stack: new Set(), @@ -131,16 +161,25 @@ class ResolverCachePlugin { /** @type {LazySet} */ contextDependencies: new LazySet() }; + /** @type {ResolveRequest[] | undefined} */ let yieldResult; let withYield = false; if (typeof newResolveContext.yield === "function") { yieldResult = []; withYield = true; - newResolveContext.yield = obj => yieldResult.push(obj); + newResolveContext.yield = obj => + /** @type {ResolveRequest[]} */ + (yieldResult).push(obj); } + /** + * @param {"fileDependencies" | "contextDependencies" | "missingDependencies"} key key + */ const propagate = key => { if (resolveContext[key]) { - addAllToSet(resolveContext[key], newResolveContext[key]); + addAllToSet( + /** @type {Set} */ (resolveContext[key]), + /** @type {Set} */ (newResolveContext[key]) + ); } }; const resolveTime = Date.now(); @@ -159,25 +198,43 @@ class ResolverCachePlugin { const missingDependencies = newResolveContext.missingDependencies; fileSystemInfo.createSnapshot( resolveTime, - fileDependencies, - contextDependencies, - missingDependencies, + /** @type {Set} */ + (fileDependencies), + /** @type {Set} */ + (contextDependencies), + /** @type {Set} */ + (missingDependencies), snapshotOptions, (err, snapshot) => { if (err) return callback(err); const resolveResult = withYield ? yieldResult : result; // since we intercept resolve hook // we still can get result in callback - if (withYield && result) yieldResult.push(result); + if (withYield && result) + /** @type {ResolveRequest[]} */ (yieldResult).push(result); if (!snapshot) { - if (resolveResult) return callback(null, resolveResult); + if (resolveResult) + return callback( + null, + /** @type {ResolveRequest} */ + (resolveResult) + ); return callback(); } itemCache.store( - new CacheEntry(resolveResult, snapshot), + new CacheEntry( + /** @type {ResolveRequest} */ + (resolveResult), + snapshot + ), storeErr => { if (storeErr) return callback(storeErr); - if (resolveResult) return callback(null, resolveResult); + if (resolveResult) + return callback( + null, + /** @type {ResolveRequest} */ + (resolveResult) + ); callback(); } ); @@ -188,174 +245,192 @@ class ResolverCachePlugin { }; compiler.resolverFactory.hooks.resolver.intercept({ factory(type, hook) { - /** @type {Map} */ + /** @type {Map} */ const activeRequests = new Map(); - /** @type {Map} */ + /** @type {Map][]>} */ const activeRequestsWithYield = new Map(); - hook.tap( - "ResolverCachePlugin", - /** - * @param {Resolver} resolver the resolver - * @param {object} options resolve options - * @param {object} userOptions resolve options passed by the user - * @returns {void} - */ - (resolver, options, userOptions) => { - if (options.cache !== true) return; - const optionsIdent = objectToString(userOptions, false); - const cacheWithContext = - options.cacheWithContext !== undefined - ? options.cacheWithContext - : false; - resolver.hooks.resolve.tapAsync( - { - name: "ResolverCachePlugin", - stage: -100 - }, - (request, resolveContext, callback) => { - if ( - /** @type {TODO} */ (request)._ResolverCachePluginCacheMiss || - !fileSystemInfo - ) { - return callback(); - } - const withYield = typeof resolveContext.yield === "function"; - const identifier = `${type}${ - withYield ? "|yield" : "|default" - }${optionsIdent}${objectToString(request, !cacheWithContext)}`; + /** @type {SyncHook<[Resolver, ResolveOptions, ResolveOptionsWithDependencyType]>} */ + (hook).tap("ResolverCachePlugin", (resolver, options, userOptions) => { + if (/** @type {TODO} */ (options).cache !== true) return; + const optionsIdent = objectToString(userOptions, false); + const cacheWithContext = + options.cacheWithContext !== undefined + ? options.cacheWithContext + : false; + resolver.hooks.resolve.tapAsync( + { + name: "ResolverCachePlugin", + stage: -100 + }, + (request, resolveContext, callback) => { + if ( + /** @type {ResolveRequestWithCacheMiss} */ + (request)._ResolverCachePluginCacheMiss || + !fileSystemInfo + ) { + return callback(); + } + const withYield = typeof resolveContext.yield === "function"; + const identifier = `${type}${ + withYield ? "|yield" : "|default" + }${optionsIdent}${objectToString(request, !cacheWithContext)}`; - if (withYield) { - const activeRequest = activeRequestsWithYield.get(identifier); - if (activeRequest) { - activeRequest[0].push(callback); - activeRequest[1].push( - /** @type {TODO} */ (resolveContext.yield) - ); - return; - } - } else { - const activeRequest = activeRequests.get(identifier); - if (activeRequest) { - activeRequest.push(callback); - return; - } - } - const itemCache = cache.getItemCache(identifier, null); - let callbacks, yields; - const done = withYield - ? (err, result) => { - if (callbacks === undefined) { - if (err) { - callback(err); - } else { - if (result) - for (const r of result) resolveContext.yield(r); - callback(null, null); - } - yields = undefined; - callbacks = false; - } else { - if (err) { - for (const cb of callbacks) cb(err); - } else { - for (let i = 0; i < callbacks.length; i++) { - const cb = callbacks[i]; - const yield_ = yields[i]; - if (result) for (const r of result) yield_(r); - cb(null, null); - } - } - activeRequestsWithYield.delete(identifier); - yields = undefined; - callbacks = false; - } - } - : (err, result) => { - if (callbacks === undefined) { - callback(err, result); - callbacks = false; - } else { - for (const callback of callbacks) { - callback(err, result); - } - activeRequests.delete(identifier); - callbacks = false; - } - }; - /** - * @param {Error=} err error if any - * @param {CacheEntry=} cacheEntry cache entry - * @returns {void} - */ - const processCacheResult = (err, cacheEntry) => { - if (err) return done(err); - - if (cacheEntry) { - const { snapshot, result } = cacheEntry; - fileSystemInfo.checkSnapshotValid( - snapshot, - (err, valid) => { - if (err || !valid) { - cacheInvalidResolves++; - return doRealResolve( - itemCache, - resolver, - resolveContext, - request, - done - ); - } - cachedResolves++; - if (resolveContext.missingDependencies) { - addAllToSet( - /** @type {LazySet} */ - (resolveContext.missingDependencies), - snapshot.getMissingIterable() - ); - } - if (resolveContext.fileDependencies) { - addAllToSet( - /** @type {LazySet} */ - (resolveContext.fileDependencies), - snapshot.getFileIterable() - ); - } - if (resolveContext.contextDependencies) { - addAllToSet( - /** @type {LazySet} */ - (resolveContext.contextDependencies), - snapshot.getContextIterable() - ); - } - done(null, result); - } - ); - } else { - doRealResolve( - itemCache, - resolver, - resolveContext, - request, - done - ); - } - }; - itemCache.get(processCacheResult); - if (withYield && callbacks === undefined) { - callbacks = [callback]; - yields = [resolveContext.yield]; - activeRequestsWithYield.set( - identifier, - /** @type {[any, any]} */ ([callbacks, yields]) + if (withYield) { + const activeRequest = activeRequestsWithYield.get(identifier); + if (activeRequest) { + activeRequest[0].push(callback); + activeRequest[1].push( + /** @type {NonNullable} */ + (resolveContext.yield) ); - } else if (callbacks === undefined) { - callbacks = [callback]; - activeRequests.set(identifier, callbacks); + return; + } + } else { + const activeRequest = activeRequests.get(identifier); + if (activeRequest) { + activeRequest.push(callback); + return; } } - ); - } - ); + const itemCache = cache.getItemCache(identifier, null); + /** @type {Callback[] | false | undefined} */ + let callbacks; + /** @type {NonNullable[] | undefined} */ + let yields; + + /** + * @type {function((Error | null)=, ResolveRequest | ResolveRequest[]=): void} + */ + const done = withYield + ? (err, result) => { + if (callbacks === undefined) { + if (err) { + callback(err); + } else { + if (result) + for (const r of /** @type {ResolveRequest[]} */ ( + result + )) { + /** @type {NonNullable} */ + (resolveContext.yield)(r); + } + callback(null, null); + } + yields = undefined; + callbacks = false; + } else { + const definedCallbacks = + /** @type {Callback[]} */ + (callbacks); + + if (err) { + for (const cb of definedCallbacks) cb(err); + } else { + for (let i = 0; i < definedCallbacks.length; i++) { + const cb = definedCallbacks[i]; + const yield_ = + /** @type {NonNullable[]} */ + (yields)[i]; + if (result) + for (const r of /** @type {ResolveRequest[]} */ ( + result + )) + yield_(r); + cb(null, null); + } + } + activeRequestsWithYield.delete(identifier); + yields = undefined; + callbacks = false; + } + } + : (err, result) => { + if (callbacks === undefined) { + callback(err, /** @type {ResolveRequest} */ (result)); + callbacks = false; + } else { + for (const callback of /** @type {Callback[]} */ ( + callbacks + )) { + callback(err, /** @type {ResolveRequest} */ (result)); + } + activeRequests.delete(identifier); + callbacks = false; + } + }; + /** + * @param {(Error | null)=} err error if any + * @param {(CacheEntry | null)=} cacheEntry cache entry + * @returns {void} + */ + const processCacheResult = (err, cacheEntry) => { + if (err) return done(err); + + if (cacheEntry) { + const { snapshot, result } = cacheEntry; + fileSystemInfo.checkSnapshotValid(snapshot, (err, valid) => { + if (err || !valid) { + cacheInvalidResolves++; + return doRealResolve( + itemCache, + resolver, + resolveContext, + request, + done + ); + } + cachedResolves++; + if (resolveContext.missingDependencies) { + addAllToSet( + /** @type {Set} */ + (resolveContext.missingDependencies), + snapshot.getMissingIterable() + ); + } + if (resolveContext.fileDependencies) { + addAllToSet( + /** @type {Set} */ + (resolveContext.fileDependencies), + snapshot.getFileIterable() + ); + } + if (resolveContext.contextDependencies) { + addAllToSet( + /** @type {Set} */ + (resolveContext.contextDependencies), + snapshot.getContextIterable() + ); + } + done(null, result); + }); + } else { + doRealResolve( + itemCache, + resolver, + resolveContext, + request, + done + ); + } + }; + itemCache.get(processCacheResult); + if (withYield && callbacks === undefined) { + callbacks = [callback]; + yields = [ + /** @type {NonNullable} */ + (resolveContext.yield) + ]; + activeRequestsWithYield.set( + identifier, + /** @type {[any, any]} */ ([callbacks, yields]) + ); + } else if (callbacks === undefined) { + callbacks = [callback]; + activeRequests.set(identifier, callbacks); + } + } + ); + }); return hook; } }); diff --git a/node_modules/webpack/lib/cache/mergeEtags.js b/node_modules/webpack/lib/cache/mergeEtags.js index 8c6af34..9a212f2 100644 --- a/node_modules/webpack/lib/cache/mergeEtags.js +++ b/node_modules/webpack/lib/cache/mergeEtags.js @@ -34,27 +34,23 @@ const mergeEtags = (a, b) => { if (typeof a === "string") { if (typeof b === "string") { return `${a}|${b}`; - } else { - const temp = b; - b = a; - a = temp; } - } else { - if (typeof b !== "string") { - // both a and b are objects - let map = dualObjectMap.get(a); - if (map === undefined) { - dualObjectMap.set(a, (map = new WeakMap())); - } - const mergedEtag = map.get(b); - if (mergedEtag === undefined) { - const newMergedEtag = new MergedEtag(a, b); - map.set(b, newMergedEtag); - return newMergedEtag; - } else { - return mergedEtag; - } + const temp = b; + b = a; + a = temp; + } else if (typeof b !== "string") { + // both a and b are objects + let map = dualObjectMap.get(a); + if (map === undefined) { + dualObjectMap.set(a, (map = new WeakMap())); } + const mergedEtag = map.get(b); + if (mergedEtag === undefined) { + const newMergedEtag = new MergedEtag(a, b); + map.set(b, newMergedEtag); + return newMergedEtag; + } + return mergedEtag; } // a is object, b is string let map = objectStringMap.get(a); @@ -66,9 +62,8 @@ const mergeEtags = (a, b) => { const newMergedEtag = new MergedEtag(a, b); map.set(b, newMergedEtag); return newMergedEtag; - } else { - return mergedEtag; } + return mergedEtag; }; module.exports = mergeEtags; diff --git a/node_modules/webpack/lib/cli.js b/node_modules/webpack/lib/cli.js index f8b43a5..c7ff52b 100644 --- a/node_modules/webpack/lib/cli.js +++ b/node_modules/webpack/lib/cli.js @@ -8,6 +8,8 @@ const path = require("path"); const webpackSchema = require("../schemas/WebpackOptions.json"); +/** @typedef {TODO & { absolutePath: boolean, instanceof: string, cli: { helper?: boolean, exclude?: boolean } }} Schema */ + // TODO add originPath to PathItem for better errors /** * @typedef {object} PathItem @@ -36,7 +38,7 @@ const webpackSchema = require("../schemas/WebpackOptions.json"); /** * @typedef {object} ArgumentConfig - * @property {string} description + * @property {string | undefined} description * @property {string} [negatedDescription] * @property {string} path * @property {boolean} multiple @@ -44,24 +46,34 @@ const webpackSchema = require("../schemas/WebpackOptions.json"); * @property {any[]=} values */ +/** @typedef {"string" | "number" | "boolean"} SimpleType */ + /** * @typedef {object} Argument - * @property {string} description - * @property {"string"|"number"|"boolean"} simpleType + * @property {string | undefined} description + * @property {SimpleType} simpleType * @property {boolean} multiple * @property {ArgumentConfig[]} configs */ +/** @typedef {string | number | boolean | RegExp | (string | number | boolean | RegExp)} Value */ + +/** @typedef {Record} Flags */ + /** - * @param {any=} schema a json schema to create arguments for (by default webpack schema is used) - * @returns {Record} object of arguments + * @param {Schema=} schema a json schema to create arguments for (by default webpack schema is used) + * @returns {Flags} object of arguments */ const getArguments = (schema = webpackSchema) => { - /** @type {Record} */ + /** @type {Flags} */ const flags = {}; - const pathToArgumentName = input => { - return input + /** + * @param {string} input input + * @returns {string} result + */ + const pathToArgumentName = input => + input .replace(/\./g, "-") .replace(/\[\]/g, "") .replace( @@ -70,8 +82,11 @@ const getArguments = (schema = webpackSchema) => { ) .replace(/-?[^\p{Uppercase_Letter}\p{Lowercase_Letter}\d]+/gu, "-") .toLowerCase(); - }; + /** + * @param {string} path path + * @returns {Schema} schema part + */ const getSchemaPart = path => { const newPath = path.split("/"); @@ -91,7 +106,6 @@ const getArguments = (schema = webpackSchema) => { }; /** - * * @param {PathItem[]} path path in the schema * @returns {string | undefined} description */ @@ -106,7 +120,6 @@ const getArguments = (schema = webpackSchema) => { }; /** - * * @param {PathItem[]} path path in the schema * @returns {string | undefined} negative description */ @@ -120,7 +133,6 @@ const getArguments = (schema = webpackSchema) => { }; /** - * * @param {PathItem[]} path path in the schema * @returns {string | undefined} reset description */ @@ -134,9 +146,8 @@ const getArguments = (schema = webpackSchema) => { }; /** - * - * @param {any} schemaPart schema - * @returns {Pick} partial argument config + * @param {Schema} schemaPart schema + * @returns {Pick | undefined} partial argument config */ const schemaToArgumentConfig = schemaPart => { if (schemaPart.enum) { @@ -189,8 +200,10 @@ const getArguments = (schema = webpackSchema) => { } ], description: undefined, - simpleType: undefined, - multiple: undefined + simpleType: + /** @type {SimpleType} */ + (/** @type {unknown} */ (undefined)), + multiple: /** @type {boolean} */ (/** @type {unknown} */ (undefined)) }; }; @@ -221,8 +234,10 @@ const getArguments = (schema = webpackSchema) => { flags[name] = { configs: [], description: undefined, - simpleType: undefined, - multiple: undefined + simpleType: + /** @type {SimpleType} */ + (/** @type {unknown} */ (undefined)), + multiple: /** @type {boolean} */ (/** @type {unknown} */ (undefined)) }; } @@ -255,8 +270,7 @@ const getArguments = (schema = webpackSchema) => { // TODO support `not` and `if/then/else` // TODO support `const`, but we don't use it on our schema /** - * - * @param {object} schemaPart the current schema + * @param {Schema} schemaPart the current schema * @param {string} schemaPath the current path in the schema * @param {{schema: object, path: string}[]} path all previous visited schemaParts * @param {string | null} inArray if inside of an array, the path to the array @@ -281,13 +295,14 @@ const getArguments = (schema = webpackSchema) => { let addedArguments = 0; - addedArguments += addFlag(fullPath, !!inArray); + addedArguments += addFlag(fullPath, Boolean(inArray)); if (schemaPart.type === "object") { if (schemaPart.properties) { for (const property of Object.keys(schemaPart.properties)) { addedArguments += traverse( - schemaPart.properties[property], + /** @type {Schema} */ + (schemaPart.properties[property]), schemaPath ? `${schemaPath}.${property}` : property, fullPath, inArray @@ -303,10 +318,11 @@ const getArguments = (schema = webpackSchema) => { return 0; } if (Array.isArray(schemaPart.items)) { - let i = 0; + const i = 0; for (const item of schemaPart.items) { addedArguments += traverse( - item, + /** @type {Schema} */ + (item), `${schemaPath}.${i}`, fullPath, schemaPath @@ -317,7 +333,8 @@ const getArguments = (schema = webpackSchema) => { } addedArguments += traverse( - schemaPart.items, + /** @type {Schema} */ + (schemaPart.items), `${schemaPath}[]`, fullPath, schemaPath @@ -337,7 +354,13 @@ const getArguments = (schema = webpackSchema) => { const items = maybeOf; for (let i = 0; i < items.length; i++) { - addedArguments += traverse(items[i], schemaPath, fullPath, inArray); + addedArguments += traverse( + /** @type {Schema} */ + (items[i]), + schemaPath, + fullPath, + inArray + ); } return addedArguments; @@ -350,6 +373,7 @@ const getArguments = (schema = webpackSchema) => { // Summarize flags for (const name of Object.keys(flags)) { + /** @type {Argument} */ const argument = flags[name]; argument.description = argument.configs.reduce((desc, { description }) => { if (!desc) return description; @@ -357,27 +381,34 @@ const getArguments = (schema = webpackSchema) => { if (desc.includes(description)) return desc; return `${desc} ${description}`; }, /** @type {string | undefined} */ (undefined)); - argument.simpleType = argument.configs.reduce((t, argConfig) => { - /** @type {"string" | "number" | "boolean"} */ - let type = "string"; - switch (argConfig.type) { - case "number": - type = "number"; - break; - case "reset": - case "boolean": - type = "boolean"; - break; - case "enum": - if (argConfig.values.every(v => typeof v === "boolean")) - type = "boolean"; - if (argConfig.values.every(v => typeof v === "number")) - type = "number"; - break; - } - if (t === undefined) return type; - return t === type ? t : "string"; - }, /** @type {"string" | "number" | "boolean" | undefined} */ (undefined)); + argument.simpleType = + /** @type {SimpleType} */ + ( + argument.configs.reduce((t, argConfig) => { + /** @type {SimpleType} */ + let type = "string"; + switch (argConfig.type) { + case "number": + type = "number"; + break; + case "reset": + case "boolean": + type = "boolean"; + break; + case "enum": { + const values = + /** @type {NonNullable} */ + (argConfig.values); + + if (values.every(v => typeof v === "boolean")) type = "boolean"; + if (values.every(v => typeof v === "number")) type = "number"; + break; + } + } + if (t === undefined) return type; + return t === type ? t : "string"; + }, /** @type {SimpleType | undefined} */ (undefined)) + ); argument.multiple = argument.configs.some(c => c.multiple); } @@ -386,16 +417,18 @@ const getArguments = (schema = webpackSchema) => { const cliAddedItems = new WeakMap(); +/** @typedef {string | number} Property */ + /** - * @param {any} config configuration + * @param {Configuration} config configuration * @param {string} schemaPath path in the config * @param {number | undefined} index index of value when multiple values are provided, otherwise undefined - * @returns {{ problem?: LocalProblem, object?: any, property?: string | number, value?: any }} problem or object with property and value + * @returns {{ problem?: LocalProblem, object?: any, property?: Property, value?: any }} problem or object with property and value */ const getObjectAndProperty = (config, schemaPath, index = 0) => { if (!schemaPath) return { value: config }; const parts = schemaPath.split("."); - let property = parts.pop(); + const property = /** @type {string} */ (parts.pop()); let current = config; let i = 0; for (const part of parts) { @@ -434,22 +467,20 @@ const getObjectAndProperty = (config, schemaPath, index = 0) => { } value = value[x]; } - } else { - if (value === undefined) { - value = current[name] = {}; - } else if (value === null || typeof value !== "object") { - return { - problem: { - type: "unexpected-non-object-in-path", - path: parts.slice(0, i).join(".") - } - }; - } + } else if (value === undefined) { + value = current[name] = {}; + } else if (value === null || typeof value !== "object") { + return { + problem: { + type: "unexpected-non-object-in-path", + path: parts.slice(0, i).join(".") + } + }; } current = value; i++; } - let value = current[property]; + const value = current[property]; if (property.endsWith("[]")) { const name = property.slice(0, -2); const value = current[name]; @@ -461,36 +492,35 @@ const getObjectAndProperty = (config, schemaPath, index = 0) => { current[name] = [value, ...Array.from({ length: index }), undefined]; cliAddedItems.set(current[name], index + 1); return { object: current[name], property: index + 1, value: undefined }; - } else { - let addedItems = cliAddedItems.get(value) || 0; - while (addedItems <= index) { - value.push(undefined); - addedItems++; - } - cliAddedItems.set(value, addedItems); - const x = value.length - addedItems + index; - if (value[x] === undefined) { - value[x] = {}; - } else if (value[x] === null || typeof value[x] !== "object") { - return { - problem: { - type: "unexpected-non-object-in-path", - path: schemaPath - } - }; - } + } + let addedItems = cliAddedItems.get(value) || 0; + while (addedItems <= index) { + value.push(undefined); + addedItems++; + } + cliAddedItems.set(value, addedItems); + const x = value.length - addedItems + index; + if (value[x] === undefined) { + value[x] = {}; + } else if (value[x] === null || typeof value[x] !== "object") { return { - object: value, - property: x, - value: value[x] + problem: { + type: "unexpected-non-object-in-path", + path: schemaPath + } }; } + return { + object: value, + property: x, + value: value[x] + }; } return { object: current, property, value }; }; /** - * @param {any} config configuration + * @param {Configuration} config configuration * @param {string} schemaPath path in the config * @param {any} value parsed value * @param {number | undefined} index index of value when multiple values are provided, otherwise undefined @@ -503,14 +533,14 @@ const setValue = (config, schemaPath, value, index) => { index ); if (problem) return problem; - object[property] = value; + object[/** @type {Property} */ (property)] = value; return null; }; /** * @param {ArgumentConfig} argConfig processing instructions - * @param {any} config configuration - * @param {any} value the value + * @param {Configuration} config configuration + * @param {Value} value the value * @param {number | undefined} index the index if multiple values provided * @returns {LocalProblem | null} a problem if any */ @@ -540,22 +570,26 @@ const processArgumentConfig = (argConfig, config, value, index) => { */ const getExpectedValue = argConfig => { switch (argConfig.type) { - default: - return argConfig.type; case "boolean": return "true | false"; case "RegExp": return "regular expression (example: /ab?c*/)"; case "enum": - return argConfig.values.map(v => `${v}`).join(" | "); + return /** @type {NonNullable} */ ( + argConfig.values + ) + .map(v => `${v}`) + .join(" | "); case "reset": return "true (will reset the previous value to an empty array)"; + default: + return argConfig.type; } }; /** * @param {ArgumentConfig} argConfig processing instructions - * @param {any} value the value + * @param {Value} value the value * @returns {any | undefined} parsed value */ const parseValueForArgumentConfig = (argConfig, value) => { @@ -573,8 +607,8 @@ const parseValueForArgumentConfig = (argConfig, value) => { case "number": if (typeof value === "number") return value; if (typeof value === "string" && /^[+-]?\d*(\.\d*)[eE]\d+$/) { - const n = +value; - if (!isNaN(n)) return n; + const n = Number(value); + if (!Number.isNaN(n)) return n; } break; case "boolean": @@ -591,22 +625,28 @@ const parseValueForArgumentConfig = (argConfig, value) => { return new RegExp(match[1], match[2]); } break; - case "enum": - if (argConfig.values.includes(value)) return value; - for (const item of argConfig.values) { + case "enum": { + const values = + /** @type {NonNullable} */ + (argConfig.values); + if (values.includes(value)) return value; + for (const item of values) { if (`${item}` === value) return item; } break; + } case "reset": if (value === true) return []; break; } }; +/** @typedef {any} Configuration */ + /** - * @param {Record} args object of arguments - * @param {any} config configuration - * @param {Record} values object with values + * @param {Flags} args object of arguments + * @param {Configuration} config configuration + * @param {Record} values object with values * @returns {Problem[] | null} problems or null for success */ const processArguments = (args, config, values) => { @@ -622,6 +662,10 @@ const processArguments = (args, config, values) => { }); continue; } + /** + * @param {Value} value value + * @param {number | undefined} i index + */ const processValue = (value, i) => { const currentProblems = []; for (const argConfig of arg.configs) { @@ -632,13 +676,13 @@ const processArguments = (args, config, values) => { currentProblems.push({ ...problem, argument: key, - value: value, + value, index: i }); } problems.push(...currentProblems); }; - let value = values[key]; + const value = values[key]; if (Array.isArray(value)) { for (let i = 0; i < value.length; i++) { processValue(value[i], i); @@ -651,5 +695,5 @@ const processArguments = (args, config, values) => { return problems; }; -exports.getArguments = getArguments; -exports.processArguments = processArguments; +module.exports.getArguments = getArguments; +module.exports.processArguments = processArguments; diff --git a/node_modules/webpack/lib/config/browserslistTargetHandler.js b/node_modules/webpack/lib/config/browserslistTargetHandler.js index f2e6b78..51b0896 100644 --- a/node_modules/webpack/lib/config/browserslistTargetHandler.js +++ b/node_modules/webpack/lib/config/browserslistTargetHandler.js @@ -57,14 +57,14 @@ const load = (input, context) => { // if a query is specified, then use it, else // if a path to a config is specified then load it, else // find a nearest config - const config = query - ? query - : configPath + const config = + query || + (configPath ? browserslist.loadConfig({ config: configPath, env }) - : browserslist.loadConfig({ path: context, env }); + : browserslist.loadConfig({ path: context, env })); if (!config) return; return browserslist(config); @@ -80,8 +80,8 @@ const resolve = browsers => { * @param {Record} versions first supported version * @returns {boolean} true if supports */ - const rawChecker = versions => { - return browsers.every(v => { + const rawChecker = versions => + browsers.every(v => { const [name, parsedVersion] = v.split(" "); if (!name) return false; const requiredVersion = versions[name]; @@ -94,19 +94,19 @@ const resolve = browsers => { ? parsedVersion.split("-")[0].split(".") : parsedVersion.split("."); if (typeof requiredVersion === "number") { - return +parsedMajor >= requiredVersion; + return Number(parsedMajor) >= requiredVersion; } - return requiredVersion[0] === +parsedMajor - ? +parserMinor >= requiredVersion[1] - : +parsedMajor > requiredVersion[0]; + return requiredVersion[0] === Number(parsedMajor) + ? Number(parserMinor) >= requiredVersion[1] + : Number(parsedMajor) > requiredVersion[0]; }); - }; - const anyNode = browsers.some(b => /^node /.test(b)); + const anyNode = browsers.some(b => b.startsWith("node ")); const anyBrowser = browsers.some(b => /^(?!node)/.test(b)); const browserProperty = !anyBrowser ? false : anyNode ? null : true; const nodeProperty = !anyNode ? false : anyBrowser ? null : true; // Internet Explorer Mobile, Blackberry browser and Opera Mini are very old browsers, they do not support new features const es6DynamicImport = rawChecker({ + /* eslint-disable camelcase */ chrome: 63, and_chr: 63, edge: 79, @@ -124,9 +124,11 @@ const resolve = browsers => { and_uc: [15, 5], kaios: [3, 0], node: [12, 17] + /* eslint-enable camelcase */ }); return { + /* eslint-disable camelcase */ const: rawChecker({ chrome: 49, and_chr: 49, @@ -331,6 +333,7 @@ const resolve = browsers => { kaios: 3, node: [7, 6] }), + /* eslint-enable camelcase */ browser: browserProperty, electron: false, node: nodeProperty, @@ -346,7 +349,7 @@ const resolve = browsers => { nodeBuiltins: nodeProperty, nodePrefixForCoreModules: nodeProperty && - !browsers.some(b => /^node 15/.test(b)) && + !browsers.some(b => b.startsWith("node 15")) && rawChecker({ node: [14, 18] }), diff --git a/node_modules/webpack/lib/config/defaults.js b/node_modules/webpack/lib/config/defaults.js index 3b6c77b..2923e7d 100644 --- a/node_modules/webpack/lib/config/defaults.js +++ b/node_modules/webpack/lib/config/defaults.js @@ -9,15 +9,18 @@ const fs = require("fs"); const path = require("path"); const { JAVASCRIPT_MODULE_TYPE_AUTO, - JSON_MODULE_TYPE, - WEBASSEMBLY_MODULE_TYPE_ASYNC, JAVASCRIPT_MODULE_TYPE_ESM, JAVASCRIPT_MODULE_TYPE_DYNAMIC, + JSON_MODULE_TYPE, + WEBASSEMBLY_MODULE_TYPE_ASYNC, WEBASSEMBLY_MODULE_TYPE_SYNC, ASSET_MODULE_TYPE, + ASSET_MODULE_TYPE_INLINE, + ASSET_MODULE_TYPE_RESOURCE, CSS_MODULE_TYPE_AUTO, CSS_MODULE_TYPE, - CSS_MODULE_TYPE_MODULE + CSS_MODULE_TYPE_MODULE, + CSS_MODULE_TYPE_GLOBAL } = require("../ModuleTypeConstants"); const Template = require("../Template"); const { cleverMerge } = require("../util/cleverMerge"); @@ -123,8 +126,8 @@ const A = (obj, prop, factory) => { if (value === undefined) { obj[prop] = factory(); } else if (Array.isArray(value)) { - /** @type {any[] | undefined} */ - let newArray = undefined; + /** @type {EXPECTED_ANY[] | undefined} */ + let newArray; for (let i = 0; i < value.length; i++) { const item = value[i]; if (item === "...") { @@ -132,7 +135,9 @@ const A = (obj, prop, factory) => { newArray = value.slice(0, i); obj[prop] = /** @type {T[P]} */ (/** @type {unknown} */ (newArray)); } - const items = /** @type {any[]} */ (/** @type {unknown} */ (factory())); + const items = /** @type {EXPECTED_ANY[]} */ ( + /** @type {unknown} */ (factory()) + ); if (items !== undefined) { for (const item of items) { newArray.push(item); @@ -161,13 +166,13 @@ const applyWebpackOptionsBaseDefaults = options => { */ const applyWebpackOptionsDefaults = (options, compilerIndex) => { F(options, "context", () => process.cwd()); - F(options, "target", () => { - return getDefaultTarget(/** @type {string} */ (options.context)); - }); + F(options, "target", () => + getDefaultTarget(/** @type {string} */ (options.context)) + ); const { mode, name, target } = options; - let targetProperties = + const targetProperties = target === false ? /** @type {false} */ (false) : typeof target === "string" @@ -217,7 +222,7 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => { cacheUnaffected: options.experiments.cacheUnaffected, compilerIndex }); - const cache = !!options.cache; + const cache = Boolean(options.cache); applySnapshotDefaults(options.snapshot, { production, @@ -258,7 +263,7 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => { applyExternalsPresetsDefaults(options.externalsPresets, { targetProperties, - buildHttp: !!options.experiments.buildHttp + buildHttp: Boolean(options.experiments.buildHttp) }); applyLoaderDefaults( @@ -275,7 +280,7 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => { validExternalTypes.includes(options.output.library.type) ? /** @type {ExternalsType} */ (options.output.library.type) : options.output.module - ? "module" + ? "module-import" : "var"; }); @@ -283,7 +288,9 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => { futureDefaults: /** @type {NonNullable} */ (options.experiments.futureDefaults), - outputModule: options.output.module, + outputModule: + /** @type {NonNullable} */ + (options.output.module), targetProperties }); @@ -308,7 +315,7 @@ const applyWebpackOptionsDefaults = (options, compilerIndex) => { css: /** @type {NonNullable} */ (options.experiments.css), - records: !!(options.recordsInputPath || options.recordsOutputPath) + records: Boolean(options.recordsInputPath || options.recordsOutputPath) }); options.resolve = cleverMerge( @@ -399,8 +406,8 @@ const applyCacheDefaults = ( case "filesystem": F(cache, "name", () => compilerIndex !== undefined - ? `${name + "-" + mode}__compiler${compilerIndex + 1}__` - : name + "-" + mode + ? `${`${name}-${mode}`}__compiler${compilerIndex + 1}__` + : `${name}-${mode}` ); D(cache, "version", ""); F(cache, "cacheDirectory", () => { @@ -411,7 +418,7 @@ const applyCacheDefaults = ( try { if (fs.statSync(path.join(dir, "package.json")).isFile()) break; // eslint-disable-next-line no-empty - } catch (e) {} + } catch (_err) {} const parent = path.dirname(dir); if (dir === parent) { dir = undefined; @@ -425,9 +432,8 @@ const applyCacheDefaults = ( return path.resolve(dir, ".pnp/.cache/webpack"); } else if (process.versions.pnp === "3") { return path.resolve(dir, ".yarn/.cache/webpack"); - } else { - return path.resolve(dir, "node_modules/.cache/webpack"); } + return path.resolve(dir, "node_modules/.cache/webpack"); }); F(cache, "cacheLocation", () => path.resolve( @@ -632,19 +638,19 @@ const applyModuleDefaults = ( F(module.parser, ASSET_MODULE_TYPE, () => ({})); F( /** @type {NonNullable} */ - (module.parser.asset), + (module.parser[ASSET_MODULE_TYPE]), "dataUrlCondition", () => ({}) ); if ( typeof ( /** @type {NonNullable} */ - (module.parser.asset).dataUrlCondition + (module.parser[ASSET_MODULE_TYPE]).dataUrlCondition ) === "object" ) { D( /** @type {NonNullable} */ - (module.parser.asset).dataUrlCondition, + (module.parser[ASSET_MODULE_TYPE]).dataUrlCondition, "maxSize", 8096 ); @@ -662,41 +668,41 @@ const applyModuleDefaults = ( ); if (css) { - F(module.parser, "css", () => ({})); + F(module.parser, CSS_MODULE_TYPE, () => ({})); - D(module.parser.css, "namedExports", true); + D(module.parser[CSS_MODULE_TYPE], "namedExports", true); - F(module.generator, "css", () => ({})); + F(module.generator, CSS_MODULE_TYPE, () => ({})); applyCssGeneratorOptionsDefaults( /** @type {NonNullable} */ - (module.generator.css), + (module.generator[CSS_MODULE_TYPE]), { targetProperties } ); - F(module.generator, "css/auto", () => ({})); + F(module.generator, CSS_MODULE_TYPE_AUTO, () => ({})); D( - module.generator["css/auto"], + module.generator[CSS_MODULE_TYPE_AUTO], "localIdentName", "[uniqueName]-[id]-[local]" ); - D(module.generator["css/auto"], "exportsConvention", "as-is"); + D(module.generator[CSS_MODULE_TYPE_AUTO], "exportsConvention", "as-is"); - F(module.generator, "css/module", () => ({})); + F(module.generator, CSS_MODULE_TYPE_MODULE, () => ({})); D( - module.generator["css/module"], + module.generator[CSS_MODULE_TYPE_MODULE], "localIdentName", "[uniqueName]-[id]-[local]" ); - D(module.generator["css/module"], "exportsConvention", "as-is"); + D(module.generator[CSS_MODULE_TYPE_MODULE], "exportsConvention", "as-is"); - F(module.generator, "css/global", () => ({})); + F(module.generator, CSS_MODULE_TYPE_GLOBAL, () => ({})); D( - module.generator["css/global"], + module.generator[CSS_MODULE_TYPE_GLOBAL], "localIdentName", "[uniqueName]-[id]-[local]" ); - D(module.generator["css/global"], "exportsConvention", "as-is"); + D(module.generator[CSS_MODULE_TYPE_GLOBAL], "exportsConvention", "as-is"); } A(module, "defaultRules", () => { @@ -828,19 +834,19 @@ const applyModuleDefaults = ( oneOf: [ { scheme: /^data$/, - type: "asset/inline" + type: ASSET_MODULE_TYPE_INLINE }, { - type: "asset/resource" + type: ASSET_MODULE_TYPE_RESOURCE } ] }, { - assert: { type: "json" }, + assert: { type: JSON_MODULE_TYPE }, type: JSON_MODULE_TYPE }, { - with: { type: "json" }, + with: { type: JSON_MODULE_TYPE }, type: JSON_MODULE_TYPE } ); @@ -909,196 +915,18 @@ const applyOutputDefaults = ( try { const packageInfo = JSON.parse(fs.readFileSync(pkgPath, "utf-8")); return packageInfo.name || ""; - } catch (e) { - if (/** @type {Error & { code: string }} */ (e).code !== "ENOENT") { + } catch (err) { + if (/** @type {Error & { code: string }} */ (err).code !== "ENOENT") { /** @type {Error & { code: string }} */ - (e).message += + (err).message += `\nwhile determining default 'output.uniqueName' from 'name' in ${pkgPath}`; - throw e; + throw err; } return ""; } }); - F(output, "module", () => !!outputModule); - D(output, "filename", output.module ? "[name].mjs" : "[name].js"); - F(output, "iife", () => !output.module); - D(output, "importFunctionName", "import"); - D(output, "importMetaName", "import.meta"); - F(output, "chunkFilename", () => { - const filename = - /** @type {NonNullable} */ - (output.filename); - if (typeof filename !== "function") { - const hasName = filename.includes("[name]"); - const hasId = filename.includes("[id]"); - const hasChunkHash = filename.includes("[chunkhash]"); - const hasContentHash = filename.includes("[contenthash]"); - // Anything changing depending on chunk is fine - if (hasChunkHash || hasContentHash || hasName || hasId) return filename; - // Otherwise prefix "[id]." in front of the basename to make it changing - return filename.replace(/(^|\/)([^/]*(?:\?|$))/, "$1[id].$2"); - } - return output.module ? "[id].mjs" : "[id].js"; - }); - F(output, "cssFilename", () => { - const filename = - /** @type {NonNullable} */ - (output.filename); - if (typeof filename !== "function") { - return filename.replace(/\.[mc]?js(\?|$)/, ".css$1"); - } - return "[id].css"; - }); - F(output, "cssChunkFilename", () => { - const chunkFilename = - /** @type {NonNullable} */ - (output.chunkFilename); - if (typeof chunkFilename !== "function") { - return chunkFilename.replace(/\.[mc]?js(\?|$)/, ".css$1"); - } - return "[id].css"; - }); - D(output, "cssHeadDataCompression", !development); - D(output, "assetModuleFilename", "[hash][ext][query]"); - D(output, "webassemblyModuleFilename", "[hash].module.wasm"); - D(output, "compareBeforeEmit", true); - D(output, "charset", true); - const uniqueNameId = Template.toIdentifier( - /** @type {NonNullable} */ (output.uniqueName) - ); - F(output, "hotUpdateGlobal", () => "webpackHotUpdate" + uniqueNameId); - F(output, "chunkLoadingGlobal", () => "webpackChunk" + uniqueNameId); - F(output, "globalObject", () => { - if (tp) { - if (tp.global) return "global"; - if (tp.globalThis) return "globalThis"; - } - return "self"; - }); - F(output, "chunkFormat", () => { - if (tp) { - const helpMessage = isAffectedByBrowserslist - ? "Make sure that your 'browserslist' includes only platforms that support these features or select an appropriate 'target' to allow selecting a chunk format by default. Alternatively specify the 'output.chunkFormat' directly." - : "Select an appropriate 'target' to allow selecting one by default, or specify the 'output.chunkFormat' directly."; - if (output.module) { - if (tp.dynamicImport) return "module"; - if (tp.document) return "array-push"; - throw new Error( - "For the selected environment is no default ESM chunk format available:\n" + - "ESM exports can be chosen when 'import()' is available.\n" + - "JSONP Array push can be chosen when 'document' is available.\n" + - helpMessage - ); - } else { - if (tp.document) return "array-push"; - if (tp.require) return "commonjs"; - if (tp.nodeBuiltins) return "commonjs"; - if (tp.importScripts) return "array-push"; - throw new Error( - "For the selected environment is no default script chunk format available:\n" + - "JSONP Array push can be chosen when 'document' or 'importScripts' is available.\n" + - "CommonJs exports can be chosen when 'require' or node builtins are available.\n" + - helpMessage - ); - } - } - throw new Error( - "Chunk format can't be selected by default when no target is specified" - ); - }); - D(output, "asyncChunks", true); - F(output, "chunkLoading", () => { - if (tp) { - switch (output.chunkFormat) { - case "array-push": - if (tp.document) return "jsonp"; - if (tp.importScripts) return "import-scripts"; - break; - case "commonjs": - if (tp.require) return "require"; - if (tp.nodeBuiltins) return "async-node"; - break; - case "module": - if (tp.dynamicImport || output.module) return "import"; - break; - } - if ( - tp.require === null || - tp.nodeBuiltins === null || - tp.document === null || - tp.importScripts === null - ) { - return "universal"; - } - } - return false; - }); - F(output, "workerChunkLoading", () => { - if (tp) { - switch (output.chunkFormat) { - case "array-push": - if (tp.importScriptsInWorker) return "import-scripts"; - break; - case "commonjs": - if (tp.require) return "require"; - if (tp.nodeBuiltins) return "async-node"; - break; - case "module": - if (tp.dynamicImportInWorker || output.module) return "import"; - break; - } - if ( - tp.require === null || - tp.nodeBuiltins === null || - tp.importScriptsInWorker === null - ) { - return "universal"; - } - } - return false; - }); - F(output, "wasmLoading", () => { - if (tp) { - if (tp.fetchWasm) return "fetch"; - if (tp.nodeBuiltins) - return output.module ? "async-node-module" : "async-node"; - if (tp.nodeBuiltins === null || tp.fetchWasm === null) { - return "universal"; - } - } - return false; - }); - F(output, "workerWasmLoading", () => output.wasmLoading); - F(output, "devtoolNamespace", () => output.uniqueName); - if (output.library) { - F(output.library, "type", () => (output.module ? "module" : "var")); - } - F(output, "path", () => path.join(process.cwd(), "dist")); - F(output, "pathinfo", () => development); - D(output, "sourceMapFilename", "[file].map[query]"); - D( - output, - "hotUpdateChunkFilename", - `[id].[fullhash].hot-update.${output.module ? "mjs" : "js"}` - ); - D(output, "hotUpdateMainFilename", "[runtime].[fullhash].hot-update.json"); - D(output, "crossOriginLoading", false); - F(output, "scriptType", () => (output.module ? "module" : false)); - D( - output, - "publicPath", - (tp && (tp.document || tp.importScripts)) || output.scriptType === "module" - ? "auto" - : "" - ); - D(output, "workerPublicPath", ""); - D(output, "chunkLoadTimeout", 120000); - D(output, "hashFunction", futureDefaults ? "xxhash64" : "md4"); - D(output, "hashDigest", "hex"); - D(output, "hashDigestLength", futureDefaults ? 16 : 20); - D(output, "strictModuleErrorHandling", false); - D(output, "strictModuleExceptionHandling", false); + F(output, "module", () => Boolean(outputModule)); const environment = /** @type {Environment} */ (output.environment); /** @@ -1121,7 +949,8 @@ const applyOutputDefaults = ( F( environment, "bigIntLiteral", - () => /** @type {boolean | undefined} */ (tp && tp.bigIntLiteral) + () => + tp && optimistic(/** @type {boolean | undefined} */ (tp.bigIntLiteral)) ); F( environment, @@ -1196,6 +1025,187 @@ const applyOutputDefaults = ( () => tp && optimistic(/** @type {boolean | undefined} */ (tp.document)) ); + D(output, "filename", output.module ? "[name].mjs" : "[name].js"); + F(output, "iife", () => !output.module); + D(output, "importFunctionName", "import"); + D(output, "importMetaName", "import.meta"); + F(output, "chunkFilename", () => { + const filename = + /** @type {NonNullable} */ + (output.filename); + if (typeof filename !== "function") { + const hasName = filename.includes("[name]"); + const hasId = filename.includes("[id]"); + const hasChunkHash = filename.includes("[chunkhash]"); + const hasContentHash = filename.includes("[contenthash]"); + // Anything changing depending on chunk is fine + if (hasChunkHash || hasContentHash || hasName || hasId) return filename; + // Otherwise prefix "[id]." in front of the basename to make it changing + return filename.replace(/(^|\/)([^/]*(?:\?|$))/, "$1[id].$2"); + } + return output.module ? "[id].mjs" : "[id].js"; + }); + F(output, "cssFilename", () => { + const filename = + /** @type {NonNullable} */ + (output.filename); + if (typeof filename !== "function") { + return filename.replace(/\.[mc]?js(\?|$)/, ".css$1"); + } + return "[id].css"; + }); + F(output, "cssChunkFilename", () => { + const chunkFilename = + /** @type {NonNullable} */ + (output.chunkFilename); + if (typeof chunkFilename !== "function") { + return chunkFilename.replace(/\.[mc]?js(\?|$)/, ".css$1"); + } + return "[id].css"; + }); + D(output, "cssHeadDataCompression", !development); + D(output, "assetModuleFilename", "[hash][ext][query]"); + D(output, "webassemblyModuleFilename", "[hash].module.wasm"); + D(output, "compareBeforeEmit", true); + D(output, "charset", true); + const uniqueNameId = Template.toIdentifier( + /** @type {NonNullable} */ (output.uniqueName) + ); + F(output, "hotUpdateGlobal", () => `webpackHotUpdate${uniqueNameId}`); + F(output, "chunkLoadingGlobal", () => `webpackChunk${uniqueNameId}`); + F(output, "globalObject", () => { + if (tp) { + if (tp.global) return "global"; + if (tp.globalThis) return "globalThis"; + } + return "self"; + }); + F(output, "chunkFormat", () => { + if (tp) { + const helpMessage = isAffectedByBrowserslist + ? "Make sure that your 'browserslist' includes only platforms that support these features or select an appropriate 'target' to allow selecting a chunk format by default. Alternatively specify the 'output.chunkFormat' directly." + : "Select an appropriate 'target' to allow selecting one by default, or specify the 'output.chunkFormat' directly."; + if (output.module) { + if (environment.dynamicImport) return "module"; + if (tp.document) return "array-push"; + throw new Error( + "For the selected environment is no default ESM chunk format available:\n" + + "ESM exports can be chosen when 'import()' is available.\n" + + `JSONP Array push can be chosen when 'document' is available.\n${ + helpMessage + }` + ); + } else { + if (tp.document) return "array-push"; + if (tp.require) return "commonjs"; + if (tp.nodeBuiltins) return "commonjs"; + if (tp.importScripts) return "array-push"; + throw new Error( + "For the selected environment is no default script chunk format available:\n" + + "JSONP Array push can be chosen when 'document' or 'importScripts' is available.\n" + + `CommonJs exports can be chosen when 'require' or node builtins are available.\n${ + helpMessage + }` + ); + } + } + throw new Error( + "Chunk format can't be selected by default when no target is specified" + ); + }); + D(output, "asyncChunks", true); + F(output, "chunkLoading", () => { + if (tp) { + switch (output.chunkFormat) { + case "array-push": + if (tp.document) return "jsonp"; + if (tp.importScripts) return "import-scripts"; + break; + case "commonjs": + if (tp.require) return "require"; + if (tp.nodeBuiltins) return "async-node"; + break; + case "module": + if (environment.dynamicImport) return "import"; + break; + } + if ( + tp.require === null || + tp.nodeBuiltins === null || + tp.document === null || + tp.importScripts === null + ) { + return "universal"; + } + } + return false; + }); + F(output, "workerChunkLoading", () => { + if (tp) { + switch (output.chunkFormat) { + case "array-push": + if (tp.importScriptsInWorker) return "import-scripts"; + break; + case "commonjs": + if (tp.require) return "require"; + if (tp.nodeBuiltins) return "async-node"; + break; + case "module": + if (environment.dynamicImportInWorker) return "import"; + break; + } + if ( + tp.require === null || + tp.nodeBuiltins === null || + tp.importScriptsInWorker === null + ) { + return "universal"; + } + } + return false; + }); + F(output, "wasmLoading", () => { + if (tp) { + if (tp.fetchWasm) return "fetch"; + if (tp.nodeBuiltins) + return output.module ? "async-node-module" : "async-node"; + if (tp.nodeBuiltins === null || tp.fetchWasm === null) { + return "universal"; + } + } + return false; + }); + F(output, "workerWasmLoading", () => output.wasmLoading); + F(output, "devtoolNamespace", () => output.uniqueName); + if (output.library) { + F(output.library, "type", () => (output.module ? "module" : "var")); + } + F(output, "path", () => path.join(process.cwd(), "dist")); + F(output, "pathinfo", () => development); + D(output, "sourceMapFilename", "[file].map[query]"); + D( + output, + "hotUpdateChunkFilename", + `[id].[fullhash].hot-update.${output.module ? "mjs" : "js"}` + ); + D(output, "hotUpdateMainFilename", "[runtime].[fullhash].hot-update.json"); + D(output, "crossOriginLoading", false); + F(output, "scriptType", () => (output.module ? "module" : false)); + D( + output, + "publicPath", + (tp && (tp.document || tp.importScripts)) || output.scriptType === "module" + ? "auto" + : "" + ); + D(output, "workerPublicPath", ""); + D(output, "chunkLoadTimeout", 120000); + D(output, "hashFunction", futureDefaults ? "xxhash64" : "md4"); + D(output, "hashDigest", "hex"); + D(output, "hashDigestLength", futureDefaults ? 16 : 20); + D(output, "strictModuleErrorHandling", false); + D(output, "strictModuleExceptionHandling", false); + const { trustedTypes } = output; if (trustedTypes) { F( @@ -1432,6 +1442,7 @@ const applyOptimizationDefaults = ( D(optimization, "innerGraph", production); D(optimization, "mangleExports", production); D(optimization, "concatenateModules", production); + D(optimization, "avoidEntryIife", production); D(optimization, "runtimeChunk", false); D(optimization, "emitOnErrors", !production); D(optimization, "checkWasmTypes", production); @@ -1632,5 +1643,6 @@ const applyInfrastructureLoggingDefaults = infrastructureLogging => { D(infrastructureLogging, "appendOnly", !tty); }; -exports.applyWebpackOptionsBaseDefaults = applyWebpackOptionsBaseDefaults; -exports.applyWebpackOptionsDefaults = applyWebpackOptionsDefaults; +module.exports.applyWebpackOptionsBaseDefaults = + applyWebpackOptionsBaseDefaults; +module.exports.applyWebpackOptionsDefaults = applyWebpackOptionsDefaults; diff --git a/node_modules/webpack/lib/config/normalization.js b/node_modules/webpack/lib/config/normalization.js index e1022fa..1fa5a3d 100644 --- a/node_modules/webpack/lib/config/normalization.js +++ b/node_modules/webpack/lib/config/normalization.js @@ -56,10 +56,7 @@ const nestedConfig = (value, fn) => * @param {T|undefined} value value or not * @returns {T} result value */ -const cloneObject = value => { - return /** @type {T} */ ({ ...value }); -}; - +const cloneObject = value => /** @type {T} */ ({ ...value }); /** * @template T * @template R @@ -98,6 +95,7 @@ const optionalNestedArray = (value, fn) => * @returns {Record} result value */ const keyedNestedConfig = (value, fn, customKeys) => { + /* eslint-disable no-sequences */ const result = value === undefined ? {} @@ -110,6 +108,7 @@ const keyedNestedConfig = (value, fn, customKeys) => { ), /** @type {Record} */ ({}) ); + /* eslint-enable no-sequences */ if (customKeys) { for (const key of Object.keys(customKeys)) { if (!(key in result)) { @@ -124,357 +123,349 @@ const keyedNestedConfig = (value, fn, customKeys) => { * @param {WebpackOptions} config input config * @returns {WebpackOptionsNormalized} normalized options */ -const getNormalizedWebpackOptions = config => { - return { - amd: config.amd, - bail: config.bail, - cache: - /** @type {NonNullable} */ - ( - optionalNestedConfig(config.cache, cache => { - if (cache === false) return false; - if (cache === true) { +const getNormalizedWebpackOptions = config => ({ + amd: config.amd, + bail: config.bail, + cache: + /** @type {NonNullable} */ + ( + optionalNestedConfig(config.cache, cache => { + if (cache === false) return false; + if (cache === true) { + return { + type: "memory", + maxGenerations: undefined + }; + } + switch (cache.type) { + case "filesystem": + return { + type: "filesystem", + allowCollectingMemory: cache.allowCollectingMemory, + maxMemoryGenerations: cache.maxMemoryGenerations, + maxAge: cache.maxAge, + profile: cache.profile, + buildDependencies: cloneObject(cache.buildDependencies), + cacheDirectory: cache.cacheDirectory, + cacheLocation: cache.cacheLocation, + hashAlgorithm: cache.hashAlgorithm, + compression: cache.compression, + idleTimeout: cache.idleTimeout, + idleTimeoutForInitialStore: cache.idleTimeoutForInitialStore, + idleTimeoutAfterLargeChanges: cache.idleTimeoutAfterLargeChanges, + name: cache.name, + store: cache.store, + version: cache.version, + readonly: cache.readonly + }; + case undefined: + case "memory": return { type: "memory", - maxGenerations: undefined + maxGenerations: cache.maxGenerations }; + default: + // @ts-expect-error Property 'type' does not exist on type 'never'. ts(2339) + throw new Error(`Not implemented cache.type ${cache.type}`); + } + }) + ), + context: config.context, + dependencies: config.dependencies, + devServer: optionalNestedConfig(config.devServer, devServer => { + if (devServer === false) return false; + return { ...devServer }; + }), + devtool: config.devtool, + entry: + config.entry === undefined + ? { main: {} } + : typeof config.entry === "function" + ? ( + fn => () => + Promise.resolve().then(fn).then(getNormalizedEntryStatic) + )(config.entry) + : getNormalizedEntryStatic(config.entry), + experiments: nestedConfig(config.experiments, experiments => ({ + ...experiments, + buildHttp: optionalNestedConfig(experiments.buildHttp, options => + Array.isArray(options) ? { allowedUris: options } : options + ), + lazyCompilation: optionalNestedConfig( + experiments.lazyCompilation, + options => (options === true ? {} : options) + ) + })), + externals: /** @type {NonNullable} */ (config.externals), + externalsPresets: cloneObject(config.externalsPresets), + externalsType: config.externalsType, + ignoreWarnings: config.ignoreWarnings + ? config.ignoreWarnings.map(ignore => { + if (typeof ignore === "function") return ignore; + const i = ignore instanceof RegExp ? { message: ignore } : ignore; + return (warning, { requestShortener }) => { + if (!i.message && !i.module && !i.file) return false; + if (i.message && !i.message.test(warning.message)) { + return false; } - switch (cache.type) { - case "filesystem": - return { - type: "filesystem", - allowCollectingMemory: cache.allowCollectingMemory, - maxMemoryGenerations: cache.maxMemoryGenerations, - maxAge: cache.maxAge, - profile: cache.profile, - buildDependencies: cloneObject(cache.buildDependencies), - cacheDirectory: cache.cacheDirectory, - cacheLocation: cache.cacheLocation, - hashAlgorithm: cache.hashAlgorithm, - compression: cache.compression, - idleTimeout: cache.idleTimeout, - idleTimeoutForInitialStore: cache.idleTimeoutForInitialStore, - idleTimeoutAfterLargeChanges: - cache.idleTimeoutAfterLargeChanges, - name: cache.name, - store: cache.store, - version: cache.version, - readonly: cache.readonly - }; - case undefined: - case "memory": - return { - type: "memory", - maxGenerations: cache.maxGenerations - }; - default: - // @ts-expect-error Property 'type' does not exist on type 'never'. ts(2339) - throw new Error(`Not implemented cache.type ${cache.type}`); + if ( + i.module && + (!warning.module || + !i.module.test( + warning.module.readableIdentifier(requestShortener) + )) + ) { + return false; } - }) - ), - context: config.context, - dependencies: config.dependencies, - devServer: optionalNestedConfig(config.devServer, devServer => { - if (devServer === false) return false; - return { ...devServer }; - }), - devtool: config.devtool, - entry: - config.entry === undefined - ? { main: {} } - : typeof config.entry === "function" - ? ( - fn => () => - Promise.resolve().then(fn).then(getNormalizedEntryStatic) - )(config.entry) - : getNormalizedEntryStatic(config.entry), - experiments: nestedConfig(config.experiments, experiments => ({ - ...experiments, - buildHttp: optionalNestedConfig(experiments.buildHttp, options => - Array.isArray(options) ? { allowedUris: options } : options - ), - lazyCompilation: optionalNestedConfig( - experiments.lazyCompilation, - options => (options === true ? {} : options) - ) - })), - externals: /** @type {NonNullable} */ (config.externals), - externalsPresets: cloneObject(config.externalsPresets), - externalsType: config.externalsType, - ignoreWarnings: config.ignoreWarnings - ? config.ignoreWarnings.map(ignore => { - if (typeof ignore === "function") return ignore; - const i = ignore instanceof RegExp ? { message: ignore } : ignore; - return (warning, { requestShortener }) => { - if (!i.message && !i.module && !i.file) return false; - if (i.message && !i.message.test(warning.message)) { - return false; - } - if ( - i.module && - (!warning.module || - !i.module.test( - warning.module.readableIdentifier(requestShortener) - )) - ) { - return false; - } - if (i.file && (!warning.file || !i.file.test(warning.file))) { - return false; - } - return true; - }; - }) - : undefined, - infrastructureLogging: cloneObject(config.infrastructureLogging), - loader: cloneObject(config.loader), - mode: config.mode, - module: - /** @type {ModuleOptionsNormalized} */ - ( - nestedConfig(config.module, module => ({ - noParse: module.noParse, - unsafeCache: module.unsafeCache, - parser: keyedNestedConfig(module.parser, cloneObject, { - javascript: parserOptions => ({ - unknownContextRequest: module.unknownContextRequest, - unknownContextRegExp: module.unknownContextRegExp, - unknownContextRecursive: module.unknownContextRecursive, - unknownContextCritical: module.unknownContextCritical, - exprContextRequest: module.exprContextRequest, - exprContextRegExp: module.exprContextRegExp, - exprContextRecursive: module.exprContextRecursive, - exprContextCritical: module.exprContextCritical, - wrappedContextRegExp: module.wrappedContextRegExp, - wrappedContextRecursive: module.wrappedContextRecursive, - wrappedContextCritical: module.wrappedContextCritical, - // TODO webpack 6 remove - strictExportPresence: module.strictExportPresence, - strictThisContextOnImports: module.strictThisContextOnImports, - ...parserOptions - }) - }), - generator: cloneObject(module.generator), - defaultRules: optionalNestedArray(module.defaultRules, r => [...r]), - rules: nestedArray(module.rules, r => [...r]) - })) - ), - name: config.name, - node: nestedConfig( - config.node, - node => - node && { - ...node + if (i.file && (!warning.file || !i.file.test(warning.file))) { + return false; + } + return true; + }; + }) + : undefined, + infrastructureLogging: cloneObject(config.infrastructureLogging), + loader: cloneObject(config.loader), + mode: config.mode, + module: + /** @type {ModuleOptionsNormalized} */ + ( + nestedConfig(config.module, module => ({ + noParse: module.noParse, + unsafeCache: module.unsafeCache, + parser: keyedNestedConfig(module.parser, cloneObject, { + javascript: parserOptions => ({ + unknownContextRequest: module.unknownContextRequest, + unknownContextRegExp: module.unknownContextRegExp, + unknownContextRecursive: module.unknownContextRecursive, + unknownContextCritical: module.unknownContextCritical, + exprContextRequest: module.exprContextRequest, + exprContextRegExp: module.exprContextRegExp, + exprContextRecursive: module.exprContextRecursive, + exprContextCritical: module.exprContextCritical, + wrappedContextRegExp: module.wrappedContextRegExp, + wrappedContextRecursive: module.wrappedContextRecursive, + wrappedContextCritical: module.wrappedContextCritical, + // TODO webpack 6 remove + strictExportPresence: module.strictExportPresence, + strictThisContextOnImports: module.strictThisContextOnImports, + ...parserOptions + }) + }), + generator: cloneObject(module.generator), + defaultRules: optionalNestedArray(module.defaultRules, r => [...r]), + rules: nestedArray(module.rules, r => [...r]) + })) + ), + name: config.name, + node: nestedConfig( + config.node, + node => + node && { + ...node + } + ), + optimization: nestedConfig(config.optimization, optimization => ({ + ...optimization, + runtimeChunk: getNormalizedOptimizationRuntimeChunk( + optimization.runtimeChunk + ), + splitChunks: nestedConfig( + optimization.splitChunks, + splitChunks => + splitChunks && { + ...splitChunks, + defaultSizeTypes: splitChunks.defaultSizeTypes + ? [...splitChunks.defaultSizeTypes] + : ["..."], + cacheGroups: cloneObject(splitChunks.cacheGroups) } ), - optimization: nestedConfig(config.optimization, optimization => { - return { - ...optimization, - runtimeChunk: getNormalizedOptimizationRuntimeChunk( - optimization.runtimeChunk - ), - splitChunks: nestedConfig( - optimization.splitChunks, - splitChunks => - splitChunks && { - ...splitChunks, - defaultSizeTypes: splitChunks.defaultSizeTypes - ? [...splitChunks.defaultSizeTypes] - : ["..."], - cacheGroups: cloneObject(splitChunks.cacheGroups) - } - ), - emitOnErrors: - optimization.noEmitOnErrors !== undefined - ? handledDeprecatedNoEmitOnErrors( - optimization.noEmitOnErrors, - optimization.emitOnErrors - ) - : optimization.emitOnErrors - }; - }), - output: nestedConfig(config.output, output => { - const { library } = output; - const libraryAsName = /** @type {LibraryName} */ (library); - const libraryBase = - typeof library === "object" && - library && - !Array.isArray(library) && - "type" in library - ? library - : libraryAsName || output.libraryTarget - ? /** @type {LibraryOptions} */ ({ - name: libraryAsName - }) - : undefined; - /** @type {OutputNormalized} */ - const result = { - assetModuleFilename: output.assetModuleFilename, - asyncChunks: output.asyncChunks, - charset: output.charset, - chunkFilename: output.chunkFilename, - chunkFormat: output.chunkFormat, - chunkLoading: output.chunkLoading, - chunkLoadingGlobal: output.chunkLoadingGlobal, - chunkLoadTimeout: output.chunkLoadTimeout, - cssFilename: output.cssFilename, - cssChunkFilename: output.cssChunkFilename, - cssHeadDataCompression: output.cssHeadDataCompression, - clean: output.clean, - compareBeforeEmit: output.compareBeforeEmit, - crossOriginLoading: output.crossOriginLoading, - devtoolFallbackModuleFilenameTemplate: - output.devtoolFallbackModuleFilenameTemplate, - devtoolModuleFilenameTemplate: output.devtoolModuleFilenameTemplate, - devtoolNamespace: output.devtoolNamespace, - environment: cloneObject(output.environment), - enabledChunkLoadingTypes: output.enabledChunkLoadingTypes - ? [...output.enabledChunkLoadingTypes] - : ["..."], - enabledLibraryTypes: output.enabledLibraryTypes - ? [...output.enabledLibraryTypes] - : ["..."], - enabledWasmLoadingTypes: output.enabledWasmLoadingTypes - ? [...output.enabledWasmLoadingTypes] - : ["..."], - filename: output.filename, - globalObject: output.globalObject, - hashDigest: output.hashDigest, - hashDigestLength: output.hashDigestLength, - hashFunction: output.hashFunction, - hashSalt: output.hashSalt, - hotUpdateChunkFilename: output.hotUpdateChunkFilename, - hotUpdateGlobal: output.hotUpdateGlobal, - hotUpdateMainFilename: output.hotUpdateMainFilename, - ignoreBrowserWarnings: output.ignoreBrowserWarnings, - iife: output.iife, - importFunctionName: output.importFunctionName, - importMetaName: output.importMetaName, - scriptType: output.scriptType, - library: libraryBase && { - type: - output.libraryTarget !== undefined - ? output.libraryTarget - : libraryBase.type, - auxiliaryComment: - output.auxiliaryComment !== undefined - ? output.auxiliaryComment - : libraryBase.auxiliaryComment, - amdContainer: - output.amdContainer !== undefined - ? output.amdContainer - : libraryBase.amdContainer, - export: - output.libraryExport !== undefined - ? output.libraryExport - : libraryBase.export, - name: libraryBase.name, - umdNamedDefine: - output.umdNamedDefine !== undefined - ? output.umdNamedDefine - : libraryBase.umdNamedDefine - }, - module: output.module, - path: output.path, - pathinfo: output.pathinfo, - publicPath: output.publicPath, - sourceMapFilename: output.sourceMapFilename, - sourcePrefix: output.sourcePrefix, - strictModuleErrorHandling: output.strictModuleErrorHandling, - strictModuleExceptionHandling: output.strictModuleExceptionHandling, - trustedTypes: optionalNestedConfig( - output.trustedTypes, - trustedTypes => { - if (trustedTypes === true) return {}; - if (typeof trustedTypes === "string") - return { policyName: trustedTypes }; - return { ...trustedTypes }; - } - ), - uniqueName: output.uniqueName, - wasmLoading: output.wasmLoading, - webassemblyModuleFilename: output.webassemblyModuleFilename, - workerPublicPath: output.workerPublicPath, - workerChunkLoading: output.workerChunkLoading, - workerWasmLoading: output.workerWasmLoading - }; - return result; - }), - parallelism: config.parallelism, - performance: optionalNestedConfig(config.performance, performance => { - if (performance === false) return false; - return { - ...performance - }; - }), - plugins: /** @type {Plugins} */ (nestedArray(config.plugins, p => [...p])), - profile: config.profile, - recordsInputPath: - config.recordsInputPath !== undefined - ? config.recordsInputPath - : config.recordsPath, - recordsOutputPath: - config.recordsOutputPath !== undefined - ? config.recordsOutputPath - : config.recordsPath, - resolve: nestedConfig(config.resolve, resolve => ({ - ...resolve, - byDependency: keyedNestedConfig(resolve.byDependency, cloneObject) + emitOnErrors: + optimization.noEmitOnErrors !== undefined + ? handledDeprecatedNoEmitOnErrors( + optimization.noEmitOnErrors, + optimization.emitOnErrors + ) + : optimization.emitOnErrors + })), + output: nestedConfig(config.output, output => { + const { library } = output; + const libraryAsName = /** @type {LibraryName} */ (library); + const libraryBase = + typeof library === "object" && + library && + !Array.isArray(library) && + "type" in library + ? library + : libraryAsName || output.libraryTarget + ? /** @type {LibraryOptions} */ ({ + name: libraryAsName + }) + : undefined; + /** @type {OutputNormalized} */ + const result = { + assetModuleFilename: output.assetModuleFilename, + asyncChunks: output.asyncChunks, + charset: output.charset, + chunkFilename: output.chunkFilename, + chunkFormat: output.chunkFormat, + chunkLoading: output.chunkLoading, + chunkLoadingGlobal: output.chunkLoadingGlobal, + chunkLoadTimeout: output.chunkLoadTimeout, + cssFilename: output.cssFilename, + cssChunkFilename: output.cssChunkFilename, + cssHeadDataCompression: output.cssHeadDataCompression, + clean: output.clean, + compareBeforeEmit: output.compareBeforeEmit, + crossOriginLoading: output.crossOriginLoading, + devtoolFallbackModuleFilenameTemplate: + output.devtoolFallbackModuleFilenameTemplate, + devtoolModuleFilenameTemplate: output.devtoolModuleFilenameTemplate, + devtoolNamespace: output.devtoolNamespace, + environment: cloneObject(output.environment), + enabledChunkLoadingTypes: output.enabledChunkLoadingTypes + ? [...output.enabledChunkLoadingTypes] + : ["..."], + enabledLibraryTypes: output.enabledLibraryTypes + ? [...output.enabledLibraryTypes] + : ["..."], + enabledWasmLoadingTypes: output.enabledWasmLoadingTypes + ? [...output.enabledWasmLoadingTypes] + : ["..."], + filename: output.filename, + globalObject: output.globalObject, + hashDigest: output.hashDigest, + hashDigestLength: output.hashDigestLength, + hashFunction: output.hashFunction, + hashSalt: output.hashSalt, + hotUpdateChunkFilename: output.hotUpdateChunkFilename, + hotUpdateGlobal: output.hotUpdateGlobal, + hotUpdateMainFilename: output.hotUpdateMainFilename, + ignoreBrowserWarnings: output.ignoreBrowserWarnings, + iife: output.iife, + importFunctionName: output.importFunctionName, + importMetaName: output.importMetaName, + scriptType: output.scriptType, + library: libraryBase && { + type: + output.libraryTarget !== undefined + ? output.libraryTarget + : libraryBase.type, + auxiliaryComment: + output.auxiliaryComment !== undefined + ? output.auxiliaryComment + : libraryBase.auxiliaryComment, + amdContainer: + output.amdContainer !== undefined + ? output.amdContainer + : libraryBase.amdContainer, + export: + output.libraryExport !== undefined + ? output.libraryExport + : libraryBase.export, + name: libraryBase.name, + umdNamedDefine: + output.umdNamedDefine !== undefined + ? output.umdNamedDefine + : libraryBase.umdNamedDefine + }, + module: output.module, + path: output.path, + pathinfo: output.pathinfo, + publicPath: output.publicPath, + sourceMapFilename: output.sourceMapFilename, + sourcePrefix: output.sourcePrefix, + strictModuleErrorHandling: output.strictModuleErrorHandling, + strictModuleExceptionHandling: output.strictModuleExceptionHandling, + trustedTypes: optionalNestedConfig(output.trustedTypes, trustedTypes => { + if (trustedTypes === true) return {}; + if (typeof trustedTypes === "string") + return { policyName: trustedTypes }; + return { ...trustedTypes }; + }), + uniqueName: output.uniqueName, + wasmLoading: output.wasmLoading, + webassemblyModuleFilename: output.webassemblyModuleFilename, + workerPublicPath: output.workerPublicPath, + workerChunkLoading: output.workerChunkLoading, + workerWasmLoading: output.workerWasmLoading + }; + return result; + }), + parallelism: config.parallelism, + performance: optionalNestedConfig(config.performance, performance => { + if (performance === false) return false; + return { + ...performance + }; + }), + plugins: /** @type {Plugins} */ (nestedArray(config.plugins, p => [...p])), + profile: config.profile, + recordsInputPath: + config.recordsInputPath !== undefined + ? config.recordsInputPath + : config.recordsPath, + recordsOutputPath: + config.recordsOutputPath !== undefined + ? config.recordsOutputPath + : config.recordsPath, + resolve: nestedConfig(config.resolve, resolve => ({ + ...resolve, + byDependency: keyedNestedConfig(resolve.byDependency, cloneObject) + })), + resolveLoader: cloneObject(config.resolveLoader), + snapshot: nestedConfig(config.snapshot, snapshot => ({ + resolveBuildDependencies: optionalNestedConfig( + snapshot.resolveBuildDependencies, + resolveBuildDependencies => ({ + timestamp: resolveBuildDependencies.timestamp, + hash: resolveBuildDependencies.hash + }) + ), + buildDependencies: optionalNestedConfig( + snapshot.buildDependencies, + buildDependencies => ({ + timestamp: buildDependencies.timestamp, + hash: buildDependencies.hash + }) + ), + resolve: optionalNestedConfig(snapshot.resolve, resolve => ({ + timestamp: resolve.timestamp, + hash: resolve.hash })), - resolveLoader: cloneObject(config.resolveLoader), - snapshot: nestedConfig(config.snapshot, snapshot => ({ - resolveBuildDependencies: optionalNestedConfig( - snapshot.resolveBuildDependencies, - resolveBuildDependencies => ({ - timestamp: resolveBuildDependencies.timestamp, - hash: resolveBuildDependencies.hash - }) - ), - buildDependencies: optionalNestedConfig( - snapshot.buildDependencies, - buildDependencies => ({ - timestamp: buildDependencies.timestamp, - hash: buildDependencies.hash - }) - ), - resolve: optionalNestedConfig(snapshot.resolve, resolve => ({ - timestamp: resolve.timestamp, - hash: resolve.hash - })), - module: optionalNestedConfig(snapshot.module, module => ({ - timestamp: module.timestamp, - hash: module.hash - })), - immutablePaths: optionalNestedArray(snapshot.immutablePaths, p => [...p]), - managedPaths: optionalNestedArray(snapshot.managedPaths, p => [...p]), - unmanagedPaths: optionalNestedArray(snapshot.unmanagedPaths, p => [...p]) + module: optionalNestedConfig(snapshot.module, module => ({ + timestamp: module.timestamp, + hash: module.hash })), - stats: nestedConfig(config.stats, stats => { - if (stats === false) { - return { - preset: "none" - }; - } - if (stats === true) { - return { - preset: "normal" - }; - } - if (typeof stats === "string") { - return { - preset: stats - }; - } + immutablePaths: optionalNestedArray(snapshot.immutablePaths, p => [...p]), + managedPaths: optionalNestedArray(snapshot.managedPaths, p => [...p]), + unmanagedPaths: optionalNestedArray(snapshot.unmanagedPaths, p => [...p]) + })), + stats: nestedConfig(config.stats, stats => { + if (stats === false) { return { - ...stats + preset: "none" }; - }), - target: config.target, - watch: config.watch, - watchOptions: cloneObject(config.watchOptions) - }; -}; + } + if (stats === true) { + return { + preset: "normal" + }; + } + if (typeof stats === "string") { + return { + preset: stats + }; + } + return { + ...stats + }; + }), + target: config.target, + watch: config.watch, + watchOptions: cloneObject(config.watchOptions) +}); /** * @param {EntryStatic} entry static entry options @@ -543,7 +534,7 @@ const getNormalizedEntryStatic = entry => { * @returns {OptimizationRuntimeChunkNormalized=} normalized runtimeChunk option */ const getNormalizedOptimizationRuntimeChunk = runtimeChunk => { - if (runtimeChunk === undefined) return undefined; + if (runtimeChunk === undefined) return; if (runtimeChunk === false) return false; if (runtimeChunk === "single") { return { @@ -565,4 +556,4 @@ const getNormalizedOptimizationRuntimeChunk = runtimeChunk => { }; }; -exports.getNormalizedWebpackOptions = getNormalizedWebpackOptions; +module.exports.getNormalizedWebpackOptions = getNormalizedWebpackOptions; diff --git a/node_modules/webpack/lib/config/target.js b/node_modules/webpack/lib/config/target.js index 836d262..bd1de94 100644 --- a/node_modules/webpack/lib/config/target.js +++ b/node_modules/webpack/lib/config/target.js @@ -65,8 +65,6 @@ const getDefaultTarget = context => { * @property {boolean | null} asyncFunction async functions and await are available */ -///** @typedef {PlatformTargetProperties | ApiTargetProperties | EcmaTargetProperties | PlatformTargetProperties & ApiTargetProperties | PlatformTargetProperties & EcmaTargetProperties | ApiTargetProperties & EcmaTargetProperties} TargetProperties */ - /** * @template T * @typedef {{ [P in keyof T]?: never }} Never @@ -90,12 +88,11 @@ const versionDependent = (major, minor) => { return () => /** @type {undefined} */ (undefined); } /** @type {number} */ - const nMajor = +major; + const nMajor = Number(major); /** @type {number} */ - const nMinor = minor ? +minor : 0; - return (vMajor, vMinor = 0) => { - return nMajor > vMajor || (nMajor === vMajor && nMinor >= vMinor); - }; + const nMinor = minor ? Number(minor) : 0; + return (vMajor, vMinor = 0) => + nMajor > vMajor || (nMajor === vMajor && nMinor >= vMinor); }; /** @type {[string, string, RegExp, (...args: string[]) => Partial][]} */ @@ -124,47 +121,43 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis "web", "Web browser.", /^web$/, - () => { - return { - web: true, - browser: true, - webworker: null, - node: false, - electron: false, - nwjs: false, + () => ({ + web: true, + browser: true, + webworker: null, + node: false, + electron: false, + nwjs: false, - document: true, - importScriptsInWorker: true, - fetchWasm: true, - nodeBuiltins: false, - importScripts: false, - require: false, - global: false - }; - } + document: true, + importScriptsInWorker: true, + fetchWasm: true, + nodeBuiltins: false, + importScripts: false, + require: false, + global: false + }) ], [ "webworker", "Web Worker, SharedWorker or Service Worker.", /^webworker$/, - () => { - return { - web: true, - browser: true, - webworker: true, - node: false, - electron: false, - nwjs: false, + () => ({ + web: true, + browser: true, + webworker: true, + node: false, + electron: false, + nwjs: false, - importScripts: true, - importScriptsInWorker: true, - fetchWasm: true, - nodeBuiltins: false, - require: false, - document: false, - global: false - }; - } + importScripts: true, + importScriptsInWorker: true, + fetchWasm: true, + nodeBuiltins: false, + require: false, + document: false, + global: false + }) ], [ "[async-]node[X[.Y]]", @@ -184,7 +177,7 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis require: !asyncFlag, nodeBuiltins: true, // v16.0.0, v14.18.0 - nodePrefixForCoreModules: +major < 15 ? v(14, 18) : v(16), + nodePrefixForCoreModules: Number(major) < 15 ? v(14, 18) : v(16), global: true, document: false, fetchWasm: false, @@ -295,7 +288,7 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis "EcmaScript in this version. Examples: es2020, es5.", /^es(\d+)$/, version => { - let v = +version; + let v = Number(version); if (v < 1000) v = v + 2009; return { const: v >= 2015, @@ -366,7 +359,7 @@ const mergeTargetProperties = targetProperties => { } if (hasTrue || hasFalse) /** @type {TargetProperties} */ - (result)[key] = hasFalse && hasTrue ? null : hasTrue ? true : false; + (result)[key] = hasFalse && hasTrue ? null : Boolean(hasTrue); } return /** @type {TargetProperties} */ (result); }; @@ -376,12 +369,9 @@ const mergeTargetProperties = targetProperties => { * @param {string} context the context directory * @returns {TargetProperties} target properties */ -const getTargetsProperties = (targets, context) => { - return mergeTargetProperties( - targets.map(t => getTargetProperties(t, context)) - ); -}; +const getTargetsProperties = (targets, context) => + mergeTargetProperties(targets.map(t => getTargetProperties(t, context))); -exports.getDefaultTarget = getDefaultTarget; -exports.getTargetProperties = getTargetProperties; -exports.getTargetsProperties = getTargetsProperties; +module.exports.getDefaultTarget = getDefaultTarget; +module.exports.getTargetProperties = getTargetProperties; +module.exports.getTargetsProperties = getTargetsProperties; diff --git a/node_modules/webpack/lib/container/ContainerEntryModule.js b/node_modules/webpack/lib/container/ContainerEntryModule.js index 3c13c7d..3b22c71 100644 --- a/node_modules/webpack/lib/container/ContainerEntryModule.js +++ b/node_modules/webpack/lib/container/ContainerEntryModule.js @@ -8,6 +8,7 @@ const { OriginalSource, RawSource } = require("webpack-sources"); const AsyncDependenciesBlock = require("../AsyncDependenciesBlock"); const Module = require("../Module"); +const { JS_TYPES } = require("../ModuleSourceTypesConstants"); const { JAVASCRIPT_MODULE_TYPE_DYNAMIC } = require("../ModuleTypeConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); const Template = require("../Template"); @@ -41,8 +42,6 @@ const ContainerExposedDependency = require("./ContainerExposedDependency"); /** @typedef {[string, ExposeOptions][]} ExposesList */ -const SOURCE_TYPES = new Set(["javascript"]); - class ContainerEntryModule extends Module { /** * @param {string} name container entry name @@ -60,7 +59,7 @@ class ContainerEntryModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return SOURCE_TYPES; + return JS_TYPES; } /** @@ -77,7 +76,7 @@ class ContainerEntryModule extends Module { * @returns {string} a user readable identifier of the module */ readableIdentifier(requestShortener) { - return `container entry`; + return "container entry"; } /** @@ -205,7 +204,7 @@ class ContainerEntryModule extends Module { } const source = Template.asString([ - `var moduleMap = {`, + "var moduleMap = {", Template.indent(getters.join(",\n")), "};", `var get = ${runtimeTemplate.basicFunction("module, getScope", [ @@ -230,7 +229,7 @@ class ContainerEntryModule extends Module { `if (!${RuntimeGlobals.shareScopeMap}) return;`, `var name = ${JSON.stringify(this._shareScope)}`, `var oldScope = ${RuntimeGlobals.shareScopeMap}[name];`, - `if(oldScope && oldScope !== shareScope) throw new Error("Container initialization failed as it has already been initialized with a different share scope");`, + 'if(oldScope && oldScope !== shareScope) throw new Error("Container initialization failed as it has already been initialized with a different share scope");', `${RuntimeGlobals.shareScopeMap}[name] = shareScope;`, `return ${RuntimeGlobals.initializeSharing}(name, initScope);` ])};`, diff --git a/node_modules/webpack/lib/container/ContainerPlugin.js b/node_modules/webpack/lib/container/ContainerPlugin.js index 9b6c471..ec3fe84 100644 --- a/node_modules/webpack/lib/container/ContainerPlugin.js +++ b/node_modules/webpack/lib/container/ContainerPlugin.js @@ -6,6 +6,7 @@ "use strict"; const createSchemaValidation = require("../util/create-schema-validation"); +const memoize = require("../util/memoize"); const ContainerEntryDependency = require("./ContainerEntryDependency"); const ContainerEntryModuleFactory = require("./ContainerEntryModuleFactory"); const ContainerExposedDependency = require("./ContainerExposedDependency"); @@ -16,6 +17,10 @@ const { parseOptions } = require("./options"); /** @typedef {import("./ContainerEntryModule").ExposeOptions} ExposeOptions */ /** @typedef {import("./ContainerEntryModule").ExposesList} ExposesList */ +const getModuleFederationPlugin = memoize(() => + require("./ModuleFederationPlugin") +); + const validate = createSchemaValidation( require("../../schemas/plugins/container/ContainerPlugin.check.js"), () => require("../../schemas/plugins/container/ContainerPlugin.json"), @@ -73,10 +78,12 @@ class ContainerPlugin { } compiler.hooks.make.tapAsync(PLUGIN_NAME, (compilation, callback) => { + const hooks = + getModuleFederationPlugin().getCompilationHooks(compilation); const dep = new ContainerEntryDependency(name, exposes, shareScope); dep.loc = { name }; compilation.addEntry( - compilation.options.context, + /** @type {string} */ (compilation.options.context), dep, { name, @@ -86,6 +93,7 @@ class ContainerPlugin { }, error => { if (error) return callback(error); + hooks.addContainerEntryDependency.call(dep); callback(); } ); diff --git a/node_modules/webpack/lib/container/FallbackModule.js b/node_modules/webpack/lib/container/FallbackModule.js index 59bf27c..50ea21b 100644 --- a/node_modules/webpack/lib/container/FallbackModule.js +++ b/node_modules/webpack/lib/container/FallbackModule.js @@ -7,6 +7,7 @@ const { RawSource } = require("webpack-sources"); const Module = require("../Module"); +const { JS_TYPES } = require("../ModuleSourceTypesConstants"); const { WEBPACK_MODULE_TYPE_FALLBACK } = require("../ModuleTypeConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); const Template = require("../Template"); @@ -31,7 +32,6 @@ const FallbackItemDependency = require("./FallbackItemDependency"); /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */ -const TYPES = new Set(["javascript"]); const RUNTIME_REQUIREMENTS = new Set([RuntimeGlobals.module]); class FallbackModule extends Module { @@ -120,7 +120,7 @@ class FallbackModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return TYPES; + return JS_TYPES; } /** diff --git a/node_modules/webpack/lib/container/ModuleFederationPlugin.js b/node_modules/webpack/lib/container/ModuleFederationPlugin.js index 3652bf5..94e2aac 100644 --- a/node_modules/webpack/lib/container/ModuleFederationPlugin.js +++ b/node_modules/webpack/lib/container/ModuleFederationPlugin.js @@ -5,16 +5,26 @@ "use strict"; +const { SyncHook } = require("tapable"); const isValidExternalsType = require("../../schemas/plugins/container/ExternalsType.check.js"); +const Compilation = require("../Compilation"); const SharePlugin = require("../sharing/SharePlugin"); const createSchemaValidation = require("../util/create-schema-validation"); const ContainerPlugin = require("./ContainerPlugin"); const ContainerReferencePlugin = require("./ContainerReferencePlugin"); +const HoistContainerReferences = require("./HoistContainerReferencesPlugin"); /** @typedef {import("../../declarations/plugins/container/ModuleFederationPlugin").ExternalsType} ExternalsType */ /** @typedef {import("../../declarations/plugins/container/ModuleFederationPlugin").ModuleFederationPluginOptions} ModuleFederationPluginOptions */ /** @typedef {import("../../declarations/plugins/container/ModuleFederationPlugin").Shared} Shared */ /** @typedef {import("../Compiler")} Compiler */ +/** @typedef {import("../Dependency")} Dependency */ + +/** + * @typedef {object} CompilationHooks + * @property {SyncHook} addContainerEntryDependency + * @property {SyncHook} addFederationRuntimeDependency + */ const validate = createSchemaValidation( require("../../schemas/plugins/container/ModuleFederationPlugin.check.js"), @@ -24,6 +34,10 @@ const validate = createSchemaValidation( baseDataPath: "options" } ); + +/** @type {WeakMap} */ +const compilationHooksMap = new WeakMap(); + class ModuleFederationPlugin { /** * @param {ModuleFederationPluginOptions} options options @@ -34,6 +48,28 @@ class ModuleFederationPlugin { this._options = options; } + /** + * Get the compilation hooks associated with this plugin. + * @param {Compilation} compilation The compilation instance. + * @returns {CompilationHooks} The hooks for the compilation. + */ + static getCompilationHooks(compilation) { + if (!(compilation instanceof Compilation)) { + throw new TypeError( + "The 'compilation' argument must be an instance of Compilation" + ); + } + let hooks = compilationHooksMap.get(compilation); + if (!hooks) { + hooks = { + addContainerEntryDependency: new SyncHook(["dependency"]), + addFederationRuntimeDependency: new SyncHook(["dependency"]) + }; + compilationHooksMap.set(compilation, hooks); + } + return hooks; + } + /** * Apply the plugin * @param {Compiler} compiler the compiler instance @@ -61,7 +97,7 @@ class ModuleFederationPlugin { : Object.keys(options.exposes).length > 0) ) { new ContainerPlugin({ - name: options.name, + name: /** @type {string} */ (options.name), library, filename: options.filename, runtime: options.runtime, @@ -87,6 +123,7 @@ class ModuleFederationPlugin { shareScope: options.shareScope }).apply(compiler); } + new HoistContainerReferences().apply(compiler); }); } } diff --git a/node_modules/webpack/lib/container/RemoteModule.js b/node_modules/webpack/lib/container/RemoteModule.js index 86e4acc..4a2cf12 100644 --- a/node_modules/webpack/lib/container/RemoteModule.js +++ b/node_modules/webpack/lib/container/RemoteModule.js @@ -7,6 +7,9 @@ const { RawSource } = require("webpack-sources"); const Module = require("../Module"); +const { + REMOTE_AND_SHARE_INIT_TYPES +} = require("../ModuleSourceTypesConstants"); const { WEBPACK_MODULE_TYPE_REMOTE } = require("../ModuleTypeConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); const makeSerializable = require("../util/makeSerializable"); @@ -30,7 +33,6 @@ const RemoteToExternalDependency = require("./RemoteToExternalDependency"); /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */ -const TYPES = new Set(["remote", "share-init"]); const RUNTIME_REQUIREMENTS = new Set([RuntimeGlobals.module]); class RemoteModule extends Module { @@ -123,7 +125,7 @@ class RemoteModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return TYPES; + return REMOTE_AND_SHARE_INIT_TYPES; } /** diff --git a/node_modules/webpack/lib/container/RemoteRuntimeModule.js b/node_modules/webpack/lib/container/RemoteRuntimeModule.js index daf778b..1e871e2 100644 --- a/node_modules/webpack/lib/container/RemoteRuntimeModule.js +++ b/node_modules/webpack/lib/container/RemoteRuntimeModule.js @@ -12,6 +12,7 @@ const Template = require("../Template"); /** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../Chunk").ChunkId} ChunkId */ /** @typedef {import("../ChunkGraph")} ChunkGraph */ +/** @typedef {import("../ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("../Compilation")} Compilation */ /** @typedef {import("./RemoteModule")} RemoteModule */ @@ -29,27 +30,31 @@ class RemoteRuntimeModule extends RuntimeModule { const { runtimeTemplate, moduleGraph } = compilation; /** @type {Record} */ const chunkToRemotesMapping = {}; - /** @type {Record} */ + /** @type {Record} */ const idToExternalAndNameMapping = {}; - for (const chunk of /** @type {Chunk} */ (this.chunk).getAllAsyncChunks()) { + for (const chunk of /** @type {Chunk} */ ( + this.chunk + ).getAllReferencedChunks()) { const modules = chunkGraph.getChunkModulesIterableBySourceType( chunk, "remote" ); if (!modules) continue; - /** @type {(string | number)[]} */ + /** @type {ModuleId[]} */ const remotes = (chunkToRemotesMapping[ - /** @type {ChunkId} */ (chunk.id) + /** @type {ChunkId} */ + (chunk.id) ] = []); for (const m of modules) { const module = /** @type {RemoteModule} */ (m); const name = module.internalRequest; - const id = chunkGraph.getModuleId(module); + const id = /** @type {ModuleId} */ (chunkGraph.getModuleId(module)); const shareScope = module.shareScope; const dep = module.dependencies[0]; const externalModule = moduleGraph.getModule(dep); const externalModuleId = - externalModule && chunkGraph.getModuleId(externalModule); + /** @type {ModuleId} */ + (externalModule && chunkGraph.getModuleId(externalModule)); remotes.push(id); idToExternalAndNameMapping[id] = [shareScope, name, externalModuleId]; } @@ -76,12 +81,12 @@ class RemoteRuntimeModule extends RuntimeModule { "var data = idToExternalAndNameMapping[id];", "if(getScope.indexOf(data) >= 0) return;", "getScope.push(data);", - `if(data.p) return promises.push(data.p);`, + "if(data.p) return promises.push(data.p);", `var onError = ${runtimeTemplate.basicFunction("error", [ 'if(!error) error = new Error("Container missing");', 'if(typeof error.message === "string")', Template.indent( - `error.message += '\\nwhile loading "' + data[1] + '" from ' + data[2];` + "error.message += '\\nwhile loading \"' + data[1] + '\" from ' + data[2];" ), `${ RuntimeGlobals.moduleFactories @@ -100,7 +105,7 @@ class RemoteRuntimeModule extends RuntimeModule { "next(result, d)", "result" )}, onError);`, - `if(first) promises.push(data.p = p); else return p;` + "if(first) promises.push(data.p = p); else return p;" ]), "} else {", Template.indent(["return next(promise, d, first);"]), @@ -116,7 +121,7 @@ class RemoteRuntimeModule extends RuntimeModule { "external, _, first" )};`, `var onInitialized = ${runtimeTemplate.returningFunction( - `handleFunction(external.get, data[1], getScope, 0, onFactory, first)`, + "handleFunction(external.get, data[1], getScope, 0, onFactory, first)", "_, external, first" )};`, `var onFactory = ${runtimeTemplate.basicFunction("factory", [ diff --git a/node_modules/webpack/lib/container/options.js b/node_modules/webpack/lib/container/options.js index 8cd9698..cb7df0d 100644 --- a/node_modules/webpack/lib/container/options.js +++ b/node_modules/webpack/lib/container/options.js @@ -5,7 +5,15 @@ "use strict"; -/** @template T @typedef {(string | Record)[] | Record} ContainerOptionsFormat */ +/** + * @template T + * @typedef {Record} Item + */ + +/** + * @template T + * @typedef {(string | Item)[] | Item} ContainerOptionsFormat + */ /** * @template T @@ -17,6 +25,9 @@ * @returns {void} */ const process = (options, normalizeSimple, normalizeOptions, fn) => { + /** + * @param {(string | Item)[]} items items + */ const array = items => { for (const item of items) { if (typeof item === "string") { @@ -28,6 +39,9 @@ const process = (options, normalizeSimple, normalizeOptions, fn) => { } } }; + /** + * @param {Item} obj an object + */ const object = obj => { for (const [key, value] of Object.entries(obj)) { if (typeof value === "string" || Array.isArray(value)) { @@ -38,7 +52,7 @@ const process = (options, normalizeSimple, normalizeOptions, fn) => { } }; if (!options) { - return; + // Do nothing } else if (Array.isArray(options)) { array(options); } else if (typeof options === "object") { @@ -87,5 +101,5 @@ const scope = (scope, options) => { return obj; }; -exports.parseOptions = parseOptions; -exports.scope = scope; +module.exports.parseOptions = parseOptions; +module.exports.scope = scope; diff --git a/node_modules/webpack/lib/css/CssExportsGenerator.js b/node_modules/webpack/lib/css/CssExportsGenerator.js index 019f79c..e4b389d 100644 --- a/node_modules/webpack/lib/css/CssExportsGenerator.js +++ b/node_modules/webpack/lib/css/CssExportsGenerator.js @@ -8,18 +8,21 @@ const { ReplaceSource, RawSource, ConcatSource } = require("webpack-sources"); const { UsageState } = require("../ExportsInfo"); const Generator = require("../Generator"); +const { JS_TYPES } = require("../ModuleSourceTypesConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); const Template = require("../Template"); /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("../../declarations/WebpackOptions").CssGeneratorExportsConvention} CssGeneratorExportsConvention */ /** @typedef {import("../../declarations/WebpackOptions").CssGeneratorLocalIdentName} CssGeneratorLocalIdentName */ +/** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../DependencyTemplate").CssExportsData} CssExportsData */ /** @typedef {import("../Generator").GenerateContext} GenerateContext */ /** @typedef {import("../Generator").UpdateHashContext} UpdateHashContext */ /** @typedef {import("../Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */ +/** @typedef {import("../Module").SourceTypes} SourceTypes */ /** @typedef {import("../NormalModule")} NormalModule */ /** @typedef {import("../util/Hash")} Hash */ @@ -28,19 +31,15 @@ const Template = require("../Template"); * @typedef {import("../InitFragment")} InitFragment */ -const TYPES = new Set(["javascript"]); - class CssExportsGenerator extends Generator { /** - * @param {CssGeneratorExportsConvention | undefined} convention the convention of the exports name - * @param {CssGeneratorLocalIdentName | undefined} localIdentName css export local ident name + * @param {CssGeneratorExportsConvention} convention the convention of the exports name + * @param {CssGeneratorLocalIdentName} localIdentName css export local ident name * @param {boolean} esModule whether to use ES modules syntax */ constructor(convention, localIdentName, esModule) { super(); - /** @type {CssGeneratorExportsConvention | undefined} */ this.convention = convention; - /** @type {CssGeneratorLocalIdentName | undefined} */ this.localIdentName = localIdentName; /** @type {boolean} */ this.esModule = esModule; @@ -68,11 +67,11 @@ class CssExportsGenerator extends Generator { /** * @param {NormalModule} module module for which the code should be generated * @param {GenerateContext} generateContext context for generate - * @returns {Source} generated code + * @returns {Source | null} generated code */ generate(module, generateContext) { const source = new ReplaceSource(new RawSource("")); - /** @type {InitFragment[]} */ + /** @type {InitFragment[]} */ const initFragments = []; /** @type {CssExportsData} */ const cssExportsData = { @@ -82,6 +81,7 @@ class CssExportsGenerator extends Generator { generateContext.runtimeRequirements.add(RuntimeGlobals.module); + /** @type {InitFragment[] | undefined} */ let chunkInitFragments; const runtimeRequirements = new Set(); @@ -93,14 +93,18 @@ class CssExportsGenerator extends Generator { chunkGraph: generateContext.chunkGraph, module, runtime: generateContext.runtime, - runtimeRequirements: runtimeRequirements, + runtimeRequirements, concatenationScope: generateContext.concatenationScope, - codeGenerationResults: generateContext.codeGenerationResults, + codeGenerationResults: + /** @type {CodeGenerationResults} */ + (generateContext.codeGenerationResults), initFragments, cssExportsData, get chunkInitFragments() { if (!chunkInitFragments) { - const data = generateContext.getData(); + const data = + /** @type {NonNullable} */ + (generateContext.getData)(); chunkInitFragments = data.get("chunkInitFragments"); if (!chunkInitFragments) { chunkInitFragments = []; @@ -122,20 +126,23 @@ class CssExportsGenerator extends Generator { const template = generateContext.dependencyTemplates.get(constructor); if (!template) { throw new Error( - "No template for dependency: " + dependency.constructor.name + `No template for dependency: ${dependency.constructor.name}` ); } template.apply(dependency, source, templateContext); }; - module.dependencies.forEach(handleDependency); + + for (const dependency of module.dependencies) { + handleDependency(dependency); + } if (generateContext.concatenationScope) { const source = new ConcatSource(); const usedIdentifiers = new Set(); for (const [name, v] of cssExportsData.exports) { let identifier = Template.toIdentifier(name); - let i = 0; + const i = 0; while (usedIdentifiers.has(identifier)) { identifier = Template.toIdentifier(name + i); } @@ -148,36 +155,35 @@ class CssExportsGenerator extends Generator { ); } return source; - } else { - const needNsObj = - this.esModule && - generateContext.moduleGraph - .getExportsInfo(module) - .otherExportsInfo.getUsed(generateContext.runtime) !== - UsageState.Unused; - if (needNsObj) { - generateContext.runtimeRequirements.add( - RuntimeGlobals.makeNamespaceObject - ); - } - const exports = []; - for (let [name, v] of cssExportsData.exports) { - exports.push(`\t${JSON.stringify(name)}: ${JSON.stringify(v)}`); - } - return new RawSource( - `${needNsObj ? `${RuntimeGlobals.makeNamespaceObject}(` : ""}${ - module.moduleArgument - }.exports = {\n${exports.join(",\n")}\n}${needNsObj ? ")" : ""};` + } + const needNsObj = + this.esModule && + generateContext.moduleGraph + .getExportsInfo(module) + .otherExportsInfo.getUsed(generateContext.runtime) !== + UsageState.Unused; + if (needNsObj) { + generateContext.runtimeRequirements.add( + RuntimeGlobals.makeNamespaceObject ); } + const exports = []; + for (const [name, v] of cssExportsData.exports) { + exports.push(`\t${JSON.stringify(name)}: ${JSON.stringify(v)}`); + } + return new RawSource( + `${needNsObj ? `${RuntimeGlobals.makeNamespaceObject}(` : ""}${ + module.moduleArgument + }.exports = {\n${exports.join(",\n")}\n}${needNsObj ? ")" : ""};` + ); } /** * @param {NormalModule} module fresh module - * @returns {Set} available types (do not mutate) + * @returns {SourceTypes} available types (do not mutate) */ getTypes(module) { - return TYPES; + return JS_TYPES; } /** diff --git a/node_modules/webpack/lib/css/CssGenerator.js b/node_modules/webpack/lib/css/CssGenerator.js index 3a2336c..75d834f 100644 --- a/node_modules/webpack/lib/css/CssGenerator.js +++ b/node_modules/webpack/lib/css/CssGenerator.js @@ -8,32 +8,31 @@ const { ReplaceSource } = require("webpack-sources"); const Generator = require("../Generator"); const InitFragment = require("../InitFragment"); +const { CSS_TYPES } = require("../ModuleSourceTypesConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("../../declarations/WebpackOptions").CssGeneratorExportsConvention} CssGeneratorExportsConvention */ /** @typedef {import("../../declarations/WebpackOptions").CssGeneratorLocalIdentName} CssGeneratorLocalIdentName */ +/** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../DependencyTemplate").CssExportsData} CssExportsData */ /** @typedef {import("../Generator").GenerateContext} GenerateContext */ /** @typedef {import("../Generator").UpdateHashContext} UpdateHashContext */ +/** @typedef {import("../Module").SourceTypes} SourceTypes */ /** @typedef {import("../NormalModule")} NormalModule */ /** @typedef {import("../util/Hash")} Hash */ -const TYPES = new Set(["css"]); - class CssGenerator extends Generator { /** - * @param {CssGeneratorExportsConvention | undefined} convention the convention of the exports name - * @param {CssGeneratorLocalIdentName | undefined} localIdentName css export local ident name + * @param {CssGeneratorExportsConvention} convention the convention of the exports name + * @param {CssGeneratorLocalIdentName} localIdentName css export local ident name * @param {boolean} esModule whether to use ES modules syntax */ constructor(convention, localIdentName, esModule) { super(); - /** @type {CssGeneratorExportsConvention | undefined} */ this.convention = convention; - /** @type {CssGeneratorLocalIdentName | undefined} */ this.localIdentName = localIdentName; /** @type {boolean} */ this.esModule = esModule; @@ -42,12 +41,12 @@ class CssGenerator extends Generator { /** * @param {NormalModule} module module for which the code should be generated * @param {GenerateContext} generateContext context for generate - * @returns {Source} generated code + * @returns {Source | null} generated code */ generate(module, generateContext) { const originalSource = /** @type {Source} */ (module.originalSource()); const source = new ReplaceSource(originalSource); - /** @type {InitFragment[]} */ + /** @type {InitFragment[]} */ const initFragments = []; /** @type {CssExportsData} */ const cssExportsData = { @@ -57,6 +56,7 @@ class CssGenerator extends Generator { generateContext.runtimeRequirements.add(RuntimeGlobals.hasCssModules); + /** @type {InitFragment[] | undefined} */ let chunkInitFragments; /** @type {DependencyTemplateContext} */ const templateContext = { @@ -68,12 +68,16 @@ class CssGenerator extends Generator { runtime: generateContext.runtime, runtimeRequirements: generateContext.runtimeRequirements, concatenationScope: generateContext.concatenationScope, - codeGenerationResults: generateContext.codeGenerationResults, + codeGenerationResults: + /** @type {CodeGenerationResults} */ + (generateContext.codeGenerationResults), initFragments, cssExportsData, get chunkInitFragments() { if (!chunkInitFragments) { - const data = generateContext.getData(); + const data = + /** @type {NonNullable} */ + (generateContext.getData)(); chunkInitFragments = data.get("chunkInitFragments"); if (!chunkInitFragments) { chunkInitFragments = []; @@ -89,23 +93,30 @@ class CssGenerator extends Generator { * @param {Dependency} dependency dependency */ const handleDependency = dependency => { - const constructor = /** @type {new (...args: any[]) => Dependency} */ ( - dependency.constructor - ); + const constructor = + /** @type {new (...args: EXPECTED_ANY[]) => Dependency} */ + (dependency.constructor); const template = generateContext.dependencyTemplates.get(constructor); if (!template) { throw new Error( - "No template for dependency: " + dependency.constructor.name + `No template for dependency: ${dependency.constructor.name}` ); } template.apply(dependency, source, templateContext); }; - module.dependencies.forEach(handleDependency); - if (module.presentationalDependencies !== undefined) - module.presentationalDependencies.forEach(handleDependency); + for (const dependency of module.dependencies) { + handleDependency(dependency); + } + if (module.presentationalDependencies !== undefined) { + for (const dependency of module.presentationalDependencies) { + handleDependency(dependency); + } + } - const data = generateContext.getData(); + const data = + /** @type {NonNullable} */ + (generateContext.getData)(); data.set("css-exports", cssExportsData); return InitFragment.addToSource(source, initFragments, generateContext); @@ -113,10 +124,10 @@ class CssGenerator extends Generator { /** * @param {NormalModule} module fresh module - * @returns {Set} available types (do not mutate) + * @returns {SourceTypes} available types (do not mutate) */ getTypes(module) { - return TYPES; + return CSS_TYPES; } /** diff --git a/node_modules/webpack/lib/css/CssLoadingRuntimeModule.js b/node_modules/webpack/lib/css/CssLoadingRuntimeModule.js index 0b1a852..189c3b9 100644 --- a/node_modules/webpack/lib/css/CssLoadingRuntimeModule.js +++ b/node_modules/webpack/lib/css/CssLoadingRuntimeModule.js @@ -86,19 +86,13 @@ class CssLoadingRuntimeModule extends RuntimeModule { * @returns {boolean} true, if the chunk has css */ (chunk, chunkGraph) => - !!chunkGraph.getChunkModulesIterableBySourceType(chunk, "css") + Boolean(chunkGraph.getChunkModulesIterableBySourceType(chunk, "css")) ); const hasCssMatcher = compileBooleanMatcher(conditionMap); const withLoading = _runtimeRequirements.has(RuntimeGlobals.ensureChunkHandlers) && hasCssMatcher !== false; - const withPrefetch = this._runtimeRequirements.has( - RuntimeGlobals.prefetchChunkHandlers - ); - const withPreload = this._runtimeRequirements.has( - RuntimeGlobals.preloadChunkHandlers - ); /** @type {boolean} */ const withHmr = _runtimeRequirements.has( RuntimeGlobals.hmrDownloadUpdateHandlers @@ -118,6 +112,13 @@ class CssLoadingRuntimeModule extends RuntimeModule { return null; } + const withPrefetch = + this._runtimeRequirements.has(RuntimeGlobals.prefetchChunkHandlers) && + chunk.hasChildByOrder(chunkGraph, "prefetch", true, chunkHasCss); + const withPreload = + this._runtimeRequirements.has(RuntimeGlobals.preloadChunkHandlers) && + chunk.hasChildByOrder(chunkGraph, "preload", true, chunkHasCss); + const { linkPreload, linkPrefetch } = CssLoadingRuntimeModule.getCompilationHooks(compilation); @@ -210,7 +211,7 @@ class CssLoadingRuntimeModule extends RuntimeModule { Template.indent([ "var style = cssRules[j--].style;", "if(!style) continue;", - `data = style.getPropertyValue(name);` + "data = style.getPropertyValue(name);" ]), "}" ]), @@ -224,7 +225,7 @@ class CssLoadingRuntimeModule extends RuntimeModule { withCompression ? Template.asString([ // LZW decode - `var map = {}, char = data[0], oldPhrase = char, decoded = char, code = 256, maxCode = ${"\uffff".charCodeAt( + `var map = {}, char = data[0], oldPhrase = char, decoded = char, code = 256, maxCode = ${"\uFFFF".charCodeAt( 0 )}, phrase;`, "for (i = 1; i < data.length; i++) {", @@ -255,12 +256,12 @@ class CssLoadingRuntimeModule extends RuntimeModule { "," )}) { token = token.replace(/^_/, ""); target[token] = (${runtimeTemplate.basicFunction( "exports, module", - `module.exports = exports;` + "module.exports = exports;" )}).bind(null, exports); ${ withHmr ? "moduleIds.push(token); " : "" }token = ""; token2 = ""; exports = {}; }`, `else if(cc == ${cc("\\")}) { token += data[++i] }`, - `else { token += data[i]; }` + "else { token += data[i]; }" ]), "}", `${ @@ -271,9 +272,9 @@ class CssLoadingRuntimeModule extends RuntimeModule { )}`, 'var loadingAttribute = "data-webpack-loading";', `var loadStylesheet = ${runtimeTemplate.basicFunction( - "chunkId, url, done" + - (withHmr ? ", hmr" : "") + - (withFetchPriority ? ", fetchPriority" : ""), + `chunkId, url, done${withHmr ? ", hmr" : ""}${ + withFetchPriority ? ", fetchPriority" : "" + }`, [ 'var link, needAttach, key = "chunk-" + chunkId;', withHmr ? "if(!hmr) {" : "", @@ -360,7 +361,7 @@ class CssLoadingRuntimeModule extends RuntimeModule { Template.indent([ "// setup Promise in chunk cache", `var promise = new Promise(${runtimeTemplate.expressionFunction( - `installedChunkData = installedChunks[chunkId] = [resolve, reject]`, + "installedChunkData = installedChunks[chunkId] = [resolve, reject]", "resolve, reject" )});`, "promises.push(installedChunkData[2] = promise);", @@ -516,7 +517,7 @@ class CssLoadingRuntimeModule extends RuntimeModule { "}", "while(newTags.length) {", Template.indent([ - `var info = newTags.pop();`, + "var info = newTags.pop();", `var chunkModuleIds = loadCssChunkData(${RuntimeGlobals.moduleFactories}, info[1], info[0]);`, `chunkModuleIds.forEach(${runtimeTemplate.expressionFunction( "moduleIds.push(id)", diff --git a/node_modules/webpack/lib/css/CssModulesPlugin.js b/node_modules/webpack/lib/css/CssModulesPlugin.js index 1da2425..f31c98f 100644 --- a/node_modules/webpack/lib/css/CssModulesPlugin.js +++ b/node_modules/webpack/lib/css/CssModulesPlugin.js @@ -5,13 +5,16 @@ "use strict"; +const { SyncWaterfallHook, SyncHook } = require("tapable"); const { ConcatSource, PrefixSource, ReplaceSource, CachedSource } = require("webpack-sources"); +const Compilation = require("../Compilation"); const CssModule = require("../CssModule"); +const { tryRunOrWebpackError } = require("../HookWebpackError"); const HotUpdateChunk = require("../HotUpdateChunk"); const { CSS_MODULE_TYPE, @@ -39,17 +42,49 @@ const CssGenerator = require("./CssGenerator"); const CssParser = require("./CssParser"); /** @typedef {import("webpack-sources").Source} Source */ -/** @typedef {import("../../declarations/WebpackOptions").Output} OutputOptions */ +/** @typedef {import("../../declarations/WebpackOptions").OutputNormalized} OutputOptions */ /** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../ChunkGraph")} ChunkGraph */ /** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */ -/** @typedef {import("../Compilation")} Compilation */ +/** @typedef {import("../Compilation").ChunkHashContext} ChunkHashContext */ /** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("../CssModule").Inheritance} Inheritance */ /** @typedef {import("../DependencyTemplate").CssExportsData} CssExportsData */ /** @typedef {import("../Module")} Module */ +/** @typedef {import("../Template").RuntimeTemplate} RuntimeTemplate */ +/** @typedef {import("../TemplatedPathPlugin").TemplatePath} TemplatePath */ +/** @typedef {import("../util/Hash")} Hash */ +/** @typedef {import("../util/createHash").Algorithm} Algorithm */ /** @typedef {import("../util/memoize")} Memoize */ +/** + * @typedef {object} RenderContext + * @property {Chunk} chunk the chunk + * @property {ChunkGraph} chunkGraph the chunk graph + * @property {CodeGenerationResults} codeGenerationResults results of code generation + * @property {RuntimeTemplate} runtimeTemplate the runtime template + * @property {string} uniqueName the unique name + * @property {boolean} cssHeadDataCompression need compress + * @property {string} undoPath undo path to css file + * @property {CssModule[]} modules modules + */ + +/** + * @typedef {object} ChunkRenderContext + * @property {Chunk} chunk the chunk + * @property {ChunkGraph} chunkGraph the chunk graph + * @property {CodeGenerationResults} codeGenerationResults results of code generation + * @property {RuntimeTemplate} runtimeTemplate the runtime template + * @property {string[]} metaData meta data for runtime + * @property {string} undoPath undo path to css file + */ + +/** + * @typedef {object} CompilationHooks + * @property {SyncWaterfallHook<[Source, Module, ChunkRenderContext]>} renderModulePackage + * @property {SyncHook<[Chunk, Hash, ChunkHashContext]>} chunkHash + */ + const getCssLoadingRuntimeModule = memoize(() => require("./CssLoadingRuntimeModule") ); @@ -120,6 +155,9 @@ const validateParserOptions = { ) }; +/** @type {WeakMap} */ +const compilationHooksMap = new WeakMap(); + /** * @param {string} str string * @param {boolean=} omitOptionalUnderscore if true, optional underscore is not added @@ -128,7 +166,7 @@ const validateParserOptions = { const escapeCss = (str, omitOptionalUnderscore) => { const escaped = `${str}`.replace( // cspell:word uffff - /[^a-zA-Z0-9_\u0081-\uffff-]/g, + /[^a-zA-Z0-9_\u0081-\uFFFF-]/g, s => `\\${s}` ); return !omitOptionalUnderscore && /^(?!--)[0-9_-]/.test(escaped) @@ -140,13 +178,13 @@ const escapeCss = (str, omitOptionalUnderscore) => { * @param {string} str string * @returns {string} encoded string */ -const LZWEncode = str => { +const lzwEncode = str => { /** @type {Map} */ const map = new Map(); let encoded = ""; let phrase = str[0]; let code = 256; - let maxCode = "\uffff".charCodeAt(0); + const maxCode = "\uFFFF".charCodeAt(0); for (let i = 1; i < str.length; i++) { const c = str[i]; if (map.has(phrase + c)) { @@ -165,9 +203,34 @@ const LZWEncode = str => { return encoded; }; -const plugin = "CssModulesPlugin"; +const PLUGIN_NAME = "CssModulesPlugin"; class CssModulesPlugin { + /** + * @param {Compilation} compilation the compilation + * @returns {CompilationHooks} the attached hooks + */ + static getCompilationHooks(compilation) { + if (!(compilation instanceof Compilation)) { + throw new TypeError( + "The 'compilation' argument must be an instance of Compilation" + ); + } + let hooks = compilationHooksMap.get(compilation); + if (hooks === undefined) { + hooks = { + renderModulePackage: new SyncWaterfallHook([ + "source", + "module", + "renderContext" + ]), + chunkHash: new SyncHook(["chunk", "hash", "context"]) + }; + compilationHooksMap.set(compilation, hooks); + } + return hooks; + } + constructor() { /** @type {WeakMap} */ this._moduleCache = new WeakMap(); @@ -180,8 +243,9 @@ class CssModulesPlugin { */ apply(compiler) { compiler.hooks.compilation.tap( - plugin, + PLUGIN_NAME, (compilation, { normalModuleFactory }) => { + const hooks = CssModulesPlugin.getCompilationHooks(compilation); const selfFactory = new SelfModuleFactory(compilation.moduleGraph); compilation.dependencyFactories.set( CssUrlDependency, @@ -227,19 +291,18 @@ class CssModulesPlugin { ]) { normalModuleFactory.hooks.createParser .for(type) - .tap(plugin, parserOptions => { + .tap(PLUGIN_NAME, parserOptions => { validateParserOptions[type](parserOptions); const { namedExports } = parserOptions; switch (type) { - case CSS_MODULE_TYPE_GLOBAL: - case CSS_MODULE_TYPE_AUTO: + case CSS_MODULE_TYPE: return new CssParser({ namedExports }); - case CSS_MODULE_TYPE: + case CSS_MODULE_TYPE_GLOBAL: return new CssParser({ - allowModeSwitch: false, + defaultMode: "global", namedExports }); case CSS_MODULE_TYPE_MODULE: @@ -247,11 +310,16 @@ class CssModulesPlugin { defaultMode: "local", namedExports }); + case CSS_MODULE_TYPE_AUTO: + return new CssParser({ + defaultMode: "auto", + namedExports + }); } }); normalModuleFactory.hooks.createGenerator .for(type) - .tap(plugin, generatorOptions => { + .tap(PLUGIN_NAME, generatorOptions => { validateGeneratorOptions[type](generatorOptions); return generatorOptions.exportsOnly @@ -268,7 +336,7 @@ class CssModulesPlugin { }); normalModuleFactory.hooks.createModuleClass .for(type) - .tap(plugin, (createData, resolveData) => { + .tap(PLUGIN_NAME, (createData, resolveData) => { if (resolveData.dependencies.length > 0) { // When CSS is imported from CSS there is only one dependency const dependency = resolveData.dependencies[0]; @@ -283,8 +351,7 @@ class CssModulesPlugin { let inheritance; if ( - (parent.cssLayer !== null && - parent.cssLayer !== undefined) || + parent.cssLayer !== undefined || parent.supports || parent.media ) { @@ -340,9 +407,18 @@ class CssModulesPlugin { } } }); + compilation.hooks.chunkHash.tap( + "CssModulesPlugin", + (chunk, hash, context) => { + hooks.chunkHash.call(chunk, hash, context); + } + ); compilation.hooks.contentHash.tap("CssModulesPlugin", chunk => { const { chunkGraph, + codeGenerationResults, + moduleGraph, + runtimeTemplate, outputOptions: { hashSalt, hashDigest, @@ -350,19 +426,31 @@ class CssModulesPlugin { hashFunction } } = compilation; - const modules = orderedCssModulesPerChunk.get(chunk); - if (modules === undefined) return; - const hash = createHash(hashFunction); + const hash = createHash(/** @type {Algorithm} */ (hashFunction)); if (hashSalt) hash.update(hashSalt); - for (const module of modules) { - hash.update(chunkGraph.getModuleHash(module, chunk.runtime)); + hooks.chunkHash.call(chunk, hash, { + chunkGraph, + codeGenerationResults, + moduleGraph, + runtimeTemplate + }); + const modules = orderedCssModulesPerChunk.get(chunk); + if (modules) { + for (const module of modules) { + hash.update(chunkGraph.getModuleHash(module, chunk.runtime)); + } } const digest = /** @type {string} */ (hash.digest(hashDigest)); - chunk.contentHash.css = nonNumericOnlyHash(digest, hashDigestLength); + chunk.contentHash.css = nonNumericOnlyHash( + digest, + /** @type {number} */ + (hashDigestLength) + ); }); - compilation.hooks.renderManifest.tap(plugin, (result, options) => { + compilation.hooks.renderManifest.tap(PLUGIN_NAME, (result, options) => { const { chunkGraph } = compilation; - const { hash, chunk, codeGenerationResults } = options; + const { hash, chunk, codeGenerationResults, runtimeTemplate } = + options; if (chunk instanceof HotUpdateChunk) return result; @@ -383,21 +471,26 @@ class CssModulesPlugin { ); const undoPath = getUndoPath( filename, - compilation.outputOptions.path, + /** @type {string} */ + (compilation.outputOptions.path), false ); result.push({ render: () => - this.renderChunk({ - chunk, - chunkGraph, - codeGenerationResults, - uniqueName: compilation.outputOptions.uniqueName, - cssHeadDataCompression: - compilation.outputOptions.cssHeadDataCompression, - undoPath, - modules - }), + this.renderChunk( + { + chunk, + chunkGraph, + codeGenerationResults, + uniqueName: compilation.outputOptions.uniqueName, + cssHeadDataCompression: + compilation.outputOptions.cssHeadDataCompression, + undoPath, + modules, + runtimeTemplate + }, + hooks + ), filename, info, identifier: `css${chunk.id}`, @@ -429,9 +522,6 @@ class CssModulesPlugin { onceForChunkSet.add(chunk); if (!isEnabledForChunk(chunk)) return; - set.add(RuntimeGlobals.publicPath); - set.add(RuntimeGlobals.getChunkCssFilename); - set.add(RuntimeGlobals.hasOwnProperty); set.add(RuntimeGlobals.moduleFactoriesAddOnly); set.add(RuntimeGlobals.makeNamespaceObject); @@ -440,13 +530,48 @@ class CssModulesPlugin { }; compilation.hooks.runtimeRequirementInTree .for(RuntimeGlobals.hasCssModules) - .tap(plugin, handler); + .tap(PLUGIN_NAME, handler); compilation.hooks.runtimeRequirementInTree .for(RuntimeGlobals.ensureChunkHandlers) - .tap(plugin, handler); + .tap(PLUGIN_NAME, (chunk, set, { chunkGraph }) => { + if (!isEnabledForChunk(chunk)) return; + if ( + !chunkGraph.hasModuleInGraph( + chunk, + m => + m.type === CSS_MODULE_TYPE || + m.type === CSS_MODULE_TYPE_GLOBAL || + m.type === CSS_MODULE_TYPE_MODULE || + m.type === CSS_MODULE_TYPE_AUTO + ) + ) { + return; + } + + set.add(RuntimeGlobals.hasOwnProperty); + set.add(RuntimeGlobals.publicPath); + set.add(RuntimeGlobals.getChunkCssFilename); + }); compilation.hooks.runtimeRequirementInTree .for(RuntimeGlobals.hmrDownloadUpdateHandlers) - .tap(plugin, handler); + .tap(PLUGIN_NAME, (chunk, set, { chunkGraph }) => { + if (!isEnabledForChunk(chunk)) return; + if ( + !chunkGraph.hasModuleInGraph( + chunk, + m => + m.type === CSS_MODULE_TYPE || + m.type === CSS_MODULE_TYPE_GLOBAL || + m.type === CSS_MODULE_TYPE_MODULE || + m.type === CSS_MODULE_TYPE_AUTO + ) + ) { + return; + } + set.add(RuntimeGlobals.publicPath); + set.add(RuntimeGlobals.getChunkCssFilename); + set.add(RuntimeGlobals.moduleFactoriesAddOnly); + }); } ); } @@ -467,12 +592,10 @@ class CssModulesPlugin { // Lists are in reverse order to allow to use Array.pop() const modulesByChunkGroup = Array.from(chunk.groupsIterable, chunkGroup => { const sortedModules = modulesList - .map(module => { - return { - module, - index: chunkGroup.getModulePostOrderIndex(module) - }; - }) + .map(module => ({ + module, + index: chunkGroup.getModulePostOrderIndex(module) + })) .filter(item => item.index !== undefined) .sort( (a, b) => @@ -486,13 +609,17 @@ class CssModulesPlugin { if (modulesByChunkGroup.length === 1) return modulesByChunkGroup[0].list.reverse(); + /** + * @param {{ list: Module[] }} a a + * @param {{ list: Module[] }} b b + * @returns {-1 | 0 | 1} result + */ const compareModuleLists = ({ list: a }, { list: b }) => { if (a.length === 0) { return b.length === 0 ? 0 : 1; - } else { - if (b.length === 0) return -1; - return compareModulesByIdentifier(a[a.length - 1], b[b.length - 1]); } + if (b.length === 0) return -1; + return compareModulesByIdentifier(a[a.length - 1], b[b.length - 1]); }; modulesByChunkGroup.sort(compareModuleLists); @@ -509,7 +636,7 @@ class CssModulesPlugin { } /** @type {Module} */ let selectedModule = list[list.length - 1]; - let hasFailed = undefined; + let hasFailed; outer: for (;;) { for (const { list, set } of modulesByChunkGroup) { if (list.length === 0) continue; @@ -595,23 +722,14 @@ class CssModulesPlugin { } /** - * @param {object} options options - * @param {string[]} options.metaData meta data - * @param {string} options.undoPath undo path for public path auto - * @param {Chunk} options.chunk chunk - * @param {ChunkGraph} options.chunkGraph chunk graph - * @param {CodeGenerationResults} options.codeGenerationResults code generation results - * @param {CssModule} options.module css module + * @param {CssModule} module css module + * @param {ChunkRenderContext} renderContext options object + * @param {CompilationHooks} hooks hooks * @returns {Source} css module source */ - renderModule({ - metaData, - undoPath, - chunk, - chunkGraph, - codeGenerationResults, - module - }) { + renderModule(module, renderContext, hooks) { + const { codeGenerationResults, chunk, undoPath, chunkGraph, metaData } = + renderContext; const codeGenResult = codeGenerationResults.get(module, chunk.runtime); const moduleSourceContent = /** @type {Source} */ @@ -623,7 +741,7 @@ class CssModulesPlugin { const cacheEntry = this._moduleCache.get(moduleSourceContent); /** @type {Inheritance} */ - let inheritance = [[module.cssLayer, module.supports, module.media]]; + const inheritance = [[module.cssLayer, module.supports, module.media]]; if (module.inheritance) { inheritance.push(...module.inheritance); } @@ -707,7 +825,7 @@ class CssModulesPlugin { codeGenResult.data && codeGenResult.data.get("css-exports"); const exports = cssExportsData && cssExportsData.exports; const esModule = cssExportsData && cssExportsData.esModule; - let moduleId = chunkGraph.getModuleId(module) + ""; + let moduleId = String(chunkGraph.getModuleId(module)); // When `optimization.moduleIds` is `named` the module id is a path, so we need to normalize it between platforms if (typeof moduleId === "string") { @@ -724,72 +842,77 @@ class CssModulesPlugin { : "" }${esModule ? "&" : ""}${escapeCss(moduleId)}` ); - return source; + return tryRunOrWebpackError( + () => hooks.renderModulePackage.call(source, module, renderContext), + "CssModulesPlugin.getCompilationHooks().renderModulePackage" + ); } /** - * @param {object} options options - * @param {string | undefined} options.uniqueName unique name - * @param {boolean | undefined} options.cssHeadDataCompression compress css head data - * @param {string} options.undoPath undo path for public path auto - * @param {Chunk} options.chunk chunk - * @param {ChunkGraph} options.chunkGraph chunk graph - * @param {CodeGenerationResults} options.codeGenerationResults code generation results - * @param {CssModule[]} options.modules ordered css modules + * @param {RenderContext} renderContext the render context + * @param {CompilationHooks} hooks hooks * @returns {Source} generated source */ - renderChunk({ - uniqueName, - cssHeadDataCompression, - undoPath, - chunk, - chunkGraph, - codeGenerationResults, - modules - }) { + renderChunk( + { + uniqueName, + cssHeadDataCompression, + undoPath, + chunk, + chunkGraph, + codeGenerationResults, + modules, + runtimeTemplate + }, + hooks + ) { const source = new ConcatSource(); /** @type {string[]} */ const metaData = []; for (const module of modules) { try { - const moduleSource = this.renderModule({ - metaData, - undoPath, - chunk, - chunkGraph, - codeGenerationResults, - module - }); + const moduleSource = this.renderModule( + module, + { + metaData, + undoPath, + chunk, + chunkGraph, + codeGenerationResults, + runtimeTemplate + }, + hooks + ); source.add(moduleSource); - } catch (e) { + } catch (err) { /** @type {Error} */ - (e).message += `\nduring rendering of css ${module.identifier()}`; - throw e; + (err).message += `\nduring rendering of css ${module.identifier()}`; + throw err; } } const metaDataStr = metaData.join(","); source.add( `head{--webpack-${escapeCss( - (uniqueName ? uniqueName + "-" : "") + chunk.id, + (uniqueName ? `${uniqueName}-` : "") + chunk.id, true - )}:${cssHeadDataCompression ? LZWEncode(metaDataStr) : metaDataStr};}` + )}:${cssHeadDataCompression ? lzwEncode(metaDataStr) : metaDataStr};}` ); + chunk.rendered = true; return source; } /** * @param {Chunk} chunk chunk * @param {OutputOptions} outputOptions output options - * @returns {Chunk["cssFilenameTemplate"] | OutputOptions["cssFilename"] | OutputOptions["cssChunkFilename"]} used filename template + * @returns {TemplatePath} used filename template */ static getChunkFilenameTemplate(chunk, outputOptions) { if (chunk.cssFilenameTemplate) { return chunk.cssFilenameTemplate; } else if (chunk.canBeInitial()) { - return outputOptions.cssFilename; - } else { - return outputOptions.cssChunkFilename; + return /** @type {TemplatePath} */ (outputOptions.cssFilename); } + return /** @type {TemplatePath} */ (outputOptions.cssChunkFilename); } /** @@ -799,8 +922,10 @@ class CssModulesPlugin { */ static chunkHasCss(chunk, chunkGraph) { return ( - !!chunkGraph.getChunkModulesIterableBySourceType(chunk, "css") || - !!chunkGraph.getChunkModulesIterableBySourceType(chunk, "css-import") + Boolean(chunkGraph.getChunkModulesIterableBySourceType(chunk, "css")) || + Boolean( + chunkGraph.getChunkModulesIterableBySourceType(chunk, "css-import") + ) ); } } diff --git a/node_modules/webpack/lib/css/CssParser.js b/node_modules/webpack/lib/css/CssParser.js index a1f086a..e6a72aa 100644 --- a/node_modules/webpack/lib/css/CssParser.js +++ b/node_modules/webpack/lib/css/CssParser.js @@ -5,9 +5,12 @@ "use strict"; +const vm = require("vm"); +const CommentCompilationWarning = require("../CommentCompilationWarning"); const ModuleDependencyWarning = require("../ModuleDependencyWarning"); const { CSS_MODULE_TYPE_AUTO } = require("../ModuleTypeConstants"); const Parser = require("../Parser"); +const UnsupportedFeatureWarning = require("../UnsupportedFeatureWarning"); const WebpackError = require("../WebpackError"); const ConstDependency = require("../dependencies/ConstDependency"); const CssExportDependency = require("../dependencies/CssExportDependency"); @@ -16,18 +19,29 @@ const CssLocalIdentifierDependency = require("../dependencies/CssLocalIdentifier const CssSelfLocalIdentifierDependency = require("../dependencies/CssSelfLocalIdentifierDependency"); const CssUrlDependency = require("../dependencies/CssUrlDependency"); const StaticExportsDependency = require("../dependencies/StaticExportsDependency"); +const binarySearchBounds = require("../util/binarySearchBounds"); const { parseResource } = require("../util/identifier"); +const { + webpackCommentRegExp, + createMagicCommentContext +} = require("../util/magicComment"); const walkCssTokens = require("./walkCssTokens"); +/** @typedef {import("../Module").BuildInfo} BuildInfo */ +/** @typedef {import("../Module").BuildMeta} BuildMeta */ /** @typedef {import("../Parser").ParserState} ParserState */ /** @typedef {import("../Parser").PreparsedAst} PreparsedAst */ + /** @typedef {[number, number]} Range */ +/** @typedef {{ line: number, column: number }} Position */ +/** @typedef {{ value: string, range: Range, loc: { start: Position, end: Position } }} Comment */ const CC_LEFT_CURLY = "{".charCodeAt(0); const CC_RIGHT_CURLY = "}".charCodeAt(0); const CC_COLON = ":".charCodeAt(0); const CC_SLASH = "/".charCodeAt(0); const CC_SEMICOLON = ";".charCodeAt(0); +const CC_LEFT_PARENTHESIS = "(".charCodeAt(0); // https://www.w3.org/TR/css-syntax-3/#newline // We don't have `preprocessing` stage, so we need specify all of them @@ -60,10 +74,9 @@ const normalizeUrl = (str, isString) => { // Unescape .replace(UNESCAPE, match => { if (match.length > 2) { - return String.fromCharCode(parseInt(match.slice(1).trim(), 16)); - } else { - return match[1]; + return String.fromCharCode(Number.parseInt(match.slice(1).trim(), 16)); } + return match[1]; }); if (/^data:/i.test(str)) { @@ -74,7 +87,7 @@ const normalizeUrl = (str, isString) => { // Convert `url('%2E/img.png')` -> `url('./img.png')` try { str = decodeURIComponent(str); - } catch (error) { + } catch (_err) { // Ignore } } @@ -124,22 +137,27 @@ class LocConverter { } } +const EMPTY_COMMENT_OPTIONS = { + options: null, + errors: null +}; + const CSS_MODE_TOP_LEVEL = 0; const CSS_MODE_IN_BLOCK = 1; -const CSS_MODE_IN_AT_IMPORT = 2; -const CSS_MODE_AT_IMPORT_INVALID = 3; -const CSS_MODE_AT_NAMESPACE_INVALID = 4; class CssParser extends Parser { - constructor({ - allowModeSwitch = true, - defaultMode = "global", - namedExports = true - } = {}) { + /** + * @param {object} options options + * @param {("pure" | "global" | "local" | "auto")=} options.defaultMode default mode + * @param {boolean=} options.namedExports is named exports + */ + constructor({ defaultMode = "pure", namedExports = true } = {}) { super(); - this.allowModeSwitch = allowModeSwitch; this.defaultMode = defaultMode; this.namedExports = namedExports; + /** @type {Comment[] | undefined} */ + this.comments = undefined; + this.magicCommentContext = createMagicCommentContext(); } /** @@ -172,47 +190,48 @@ class CssParser extends Parser { } else if (typeof source === "object") { throw new Error("webpackAst is unexpected for the CssParser"); } - if (source[0] === "\ufeff") { + if (source[0] === "\uFEFF") { source = source.slice(1); } + let mode = this.defaultMode; + const module = state.module; - /** @type {string | undefined} */ - let oldDefaultMode; - if ( + mode === "auto" && module.type === CSS_MODULE_TYPE_AUTO && IS_MODULES.test( parseResource(module.matchResource || module.resource).path ) ) { - oldDefaultMode = this.defaultMode; - - this.defaultMode = "local"; + mode = "local"; } + const isModules = mode === "global" || mode === "local"; + const locConverter = new LocConverter(source); - /** @type {Set}*/ - const declaredCssVariables = new Set(); + /** @type {number} */ let scope = CSS_MODE_TOP_LEVEL; - /** @type {number} */ - let blockNestingLevel = 0; /** @type {boolean} */ let allowImportAtRule = true; - /** @type {"local" | "global" | undefined} */ - let modeData = undefined; - /** @type {[number, number] | undefined} */ - let lastIdentifier = undefined; /** @type [string, number, number][] */ - let balanced = []; - /** @type {undefined | { start: number, url?: string, urlStart?: number, urlEnd?: number, layer?: string, layerStart?: number, layerEnd?: number, supports?: string, supportsStart?: number, supportsEnd?: number, inSupports?:boolean, media?: string }} */ - let importData = undefined; + const balanced = []; + let lastTokenEndForComments = 0; + + /** @type {boolean} */ + let isNextRulePrelude = isModules; + /** @type {number} */ + let blockNestingLevel = 0; + /** @type {"local" | "global" | undefined} */ + let modeData; /** @type {boolean} */ let inAnimationProperty = false; - /** @type {boolean} */ - let isNextRulePrelude = true; + /** @type {Set} */ + const declaredCssVariables = new Set(); + /** @type {[number, number, boolean] | undefined} */ + let lastIdentifier; /** * @param {string} input input @@ -237,32 +256,8 @@ class CssParser extends Parser { * @returns {boolean} true, when in local scope */ const isLocalMode = () => - modeData === "local" || - (this.defaultMode === "local" && modeData === undefined); - /** - * @param {string} chars characters - * @returns {(input: string, pos: number) => number} function to eat characters - */ - const eatUntil = chars => { - const charCodes = Array.from({ length: chars.length }, (_, i) => - chars.charCodeAt(i) - ); - const arr = Array.from( - { length: charCodes.reduce((a, b) => Math.max(a, b), 0) + 1 }, - () => false - ); - charCodes.forEach(cc => (arr[cc] = true)); - return (input, pos) => { - for (;;) { - const cc = input.charCodeAt(pos); - if (cc < arr.length && arr[cc]) { - return pos; - } - pos++; - if (pos === input.length) return pos; - } - }; - }; + modeData === "local" || (mode === "local" && modeData === undefined); + /** * @param {string} input input * @param {number} pos start position @@ -294,8 +289,8 @@ class CssParser extends Parser { } return [pos, text.trimEnd()]; }; - const eatExportName = eatUntil(":};/"); - const eatExportValue = eatUntil("};/"); + const eatExportName = walkCssTokens.eatUntil(":};/"); + const eatExportValue = walkCssTokens.eatUntil("};/"); /** * @param {string} input input * @param {number} pos start position @@ -320,7 +315,7 @@ class CssParser extends Parser { if (input.charCodeAt(pos) === CC_RIGHT_CURLY) break; pos = walkCssTokens.eatWhitespaceAndComments(input, pos); if (pos === input.length) return pos; - let start = pos; + const start = pos; let name; [pos, name] = eatText(input, pos, eatExportName); if (pos === input.length) return pos; @@ -368,7 +363,7 @@ class CssParser extends Parser { pos = walkCssTokens.eatWhiteLine(input, pos); return pos; }; - const eatPropertyName = eatUntil(":{};"); + const eatPropertyName = walkCssTokens.eatUntil(":{};"); /** * @param {string} input input * @param {number} pos name start position @@ -400,7 +395,6 @@ class CssParser extends Parser { module.addDependency(dep); declaredCssVariables.add(name); } else if ( - !propertyName.startsWith("--") && OPTIONALLY_VENDOR_PREFIXED_ANIMATION_PROPERTY.test(propertyName) ) { inAnimationProperty = true; @@ -414,379 +408,64 @@ class CssParser extends Parser { if (inAnimationProperty && lastIdentifier) { const { line: sl, column: sc } = locConverter.get(lastIdentifier[0]); const { line: el, column: ec } = locConverter.get(lastIdentifier[1]); - const name = input.slice(lastIdentifier[0], lastIdentifier[1]); - const dep = new CssSelfLocalIdentifierDependency(name, lastIdentifier); + const name = lastIdentifier[2] + ? input.slice(lastIdentifier[0], lastIdentifier[1]) + : input.slice(lastIdentifier[0] + 1, lastIdentifier[1] - 1); + const dep = new CssSelfLocalIdentifierDependency(name, [ + lastIdentifier[0], + lastIdentifier[1] + ]); dep.setLoc(sl, sc, el, ec); module.addDependency(dep); lastIdentifier = undefined; } }; - const eatKeyframes = eatUntil("{};/"); - const eatNameInVar = eatUntil(",)};/"); + + const eatUntilSemi = walkCssTokens.eatUntil(";"); + const eatUntilLeftCurly = walkCssTokens.eatUntil("{"); + + /** + * @param {string} input input + * @param {number} start start + * @param {number} end end + * @returns {number} end + */ + const comment = (input, start, end) => { + if (!this.comments) this.comments = []; + const { line: sl, column: sc } = locConverter.get(start); + const { line: el, column: ec } = locConverter.get(end); + + /** @type {Comment} */ + const comment = { + value: input.slice(start + 2, end - 2), + range: [start, end], + loc: { + start: { line: sl, column: sc }, + end: { line: el, column: ec } + } + }; + this.comments.push(comment); + return end; + }; + walkCssTokens(source, { - isSelector: () => { - return isNextRulePrelude; - }, - url: (input, start, end, contentStart, contentEnd) => { - let value = normalizeUrl(input.slice(contentStart, contentEnd), false); - - switch (scope) { - case CSS_MODE_IN_AT_IMPORT: { - // Do not parse URLs in `supports(...)` - if (importData.inSupports) { - break; - } - - if (importData.url) { - this._emitWarning( - state, - `Duplicate of 'url(...)' in '${input.slice( - importData.start, - end - )}'`, - locConverter, - start, - end - ); - - break; - } - - importData.url = value; - importData.urlStart = start; - importData.urlEnd = end; - break; - } - // Do not parse URLs in import between rules - case CSS_MODE_AT_NAMESPACE_INVALID: - case CSS_MODE_AT_IMPORT_INVALID: { - break; - } - case CSS_MODE_IN_BLOCK: { - // Ignore `url()`, `url('')` and `url("")`, they are valid by spec - if (value.length === 0) { - break; - } - - const dep = new CssUrlDependency(value, [start, end], "url"); - const { line: sl, column: sc } = locConverter.get(start); - const { line: el, column: ec } = locConverter.get(end); - dep.setLoc(sl, sc, el, ec); - module.addDependency(dep); - module.addCodeGenerationDependency(dep); - break; - } - } - return end; - }, - string: (input, start, end) => { - switch (scope) { - case CSS_MODE_IN_AT_IMPORT: { - const insideURLFunction = - balanced[balanced.length - 1] && - balanced[balanced.length - 1][0] === "url"; - - // Do not parse URLs in `supports(...)` and other strings if we already have a URL - if ( - importData.inSupports || - (!insideURLFunction && importData.url) - ) { - break; - } - - if (insideURLFunction && importData.url) { - this._emitWarning( - state, - `Duplicate of 'url(...)' in '${input.slice( - importData.start, - end - )}'`, - locConverter, - start, - end - ); - - break; - } - - importData.url = normalizeUrl( - input.slice(start + 1, end - 1), - true - ); - - if (!insideURLFunction) { - importData.urlStart = start; - importData.urlEnd = end; - } - - break; - } - case CSS_MODE_IN_BLOCK: { - // TODO move escaped parsing to tokenizer - const last = balanced[balanced.length - 1]; - - if ( - last && - (last[0].replace(/\\/g, "").toLowerCase() === "url" || - IMAGE_SET_FUNCTION.test(last[0].replace(/\\/g, ""))) - ) { - let value = normalizeUrl(input.slice(start + 1, end - 1), true); - - // Ignore `url()`, `url('')` and `url("")`, they are valid by spec - if (value.length === 0) { - break; - } - - const isUrl = last[0].replace(/\\/g, "").toLowerCase() === "url"; - const dep = new CssUrlDependency( - value, - [start, end], - isUrl ? "string" : "url" - ); - const { line: sl, column: sc } = locConverter.get(start); - const { line: el, column: ec } = locConverter.get(end); - dep.setLoc(sl, sc, el, ec); - module.addDependency(dep); - module.addCodeGenerationDependency(dep); - } - } - } - return end; - }, - atKeyword: (input, start, end) => { - const name = input.slice(start, end).toLowerCase(); - if (name === "@namespace") { - scope = CSS_MODE_AT_NAMESPACE_INVALID; - this._emitWarning( - state, - "'@namespace' is not supported in bundled CSS", - locConverter, - start, - end - ); - return end; - } else if (name === "@import") { - if (!allowImportAtRule) { - scope = CSS_MODE_AT_IMPORT_INVALID; - this._emitWarning( - state, - "Any '@import' rules must precede all other rules", - locConverter, - start, - end - ); - return end; - } - - scope = CSS_MODE_IN_AT_IMPORT; - importData = { start }; - } else if ( - this.allowModeSwitch && - OPTIONALLY_VENDOR_PREFIXED_KEYFRAMES_AT_RULE.test(name) - ) { - let pos = end; - pos = walkCssTokens.eatWhitespaceAndComments(input, pos); - if (pos === input.length) return pos; - const [newPos, name] = eatText(input, pos, eatKeyframes); - if (newPos === input.length) return newPos; - if (input.charCodeAt(newPos) !== CC_LEFT_CURLY) { - this._emitWarning( - state, - `Unexpected '${input[newPos]}' at ${newPos} during parsing of @keyframes (expected '{')`, - locConverter, - start, - end - ); - - return newPos; - } - if (isLocalMode()) { - const { line: sl, column: sc } = locConverter.get(pos); - const { line: el, column: ec } = locConverter.get(newPos); - const dep = new CssLocalIdentifierDependency(name, [pos, newPos]); - dep.setLoc(sl, sc, el, ec); - module.addDependency(dep); - } - pos = newPos; - return pos + 1; - } else if (this.allowModeSwitch && name === "@property") { - let pos = end; - pos = walkCssTokens.eatWhitespaceAndComments(input, pos); - if (pos === input.length) return pos; - const propertyNameStart = pos; - const [propertyNameEnd, propertyName] = eatText( - input, - pos, - eatKeyframes - ); - if (propertyNameEnd === input.length) return propertyNameEnd; - if (!propertyName.startsWith("--")) return propertyNameEnd; - if (input.charCodeAt(propertyNameEnd) !== CC_LEFT_CURLY) { - this._emitWarning( - state, - `Unexpected '${input[propertyNameEnd]}' at ${propertyNameEnd} during parsing of @property (expected '{')`, - locConverter, - start, - end - ); - - return propertyNameEnd; - } - const name = propertyName.slice(2); - declaredCssVariables.add(name); - if (isLocalMode()) { - const { line: sl, column: sc } = locConverter.get(pos); - const { line: el, column: ec } = locConverter.get(propertyNameEnd); - const dep = new CssLocalIdentifierDependency( - name, - [propertyNameStart, propertyNameEnd], - "--" - ); - dep.setLoc(sl, sc, el, ec); - module.addDependency(dep); - } - pos = propertyNameEnd; - return pos + 1; - } else if ( - name === "@media" || - name === "@supports" || - name === "@layer" || - name === "@container" - ) { - modeData = isLocalMode() ? "local" : "global"; - isNextRulePrelude = true; - return end; - } else if (this.allowModeSwitch) { - modeData = "global"; - isNextRulePrelude = false; - } - return end; - }, - semicolon: (input, start, end) => { - switch (scope) { - case CSS_MODE_IN_AT_IMPORT: { - const { start } = importData; - - if (importData.url === undefined) { - this._emitWarning( - state, - `Expected URL in '${input.slice(start, end)}'`, - locConverter, - start, - end - ); - importData = undefined; - scope = CSS_MODE_TOP_LEVEL; - return end; - } - if ( - importData.urlStart > importData.layerStart || - importData.urlStart > importData.supportsStart - ) { - this._emitWarning( - state, - `An URL in '${input.slice( - start, - end - )}' should be before 'layer(...)' or 'supports(...)'`, - locConverter, - start, - end - ); - importData = undefined; - scope = CSS_MODE_TOP_LEVEL; - return end; - } - if (importData.layerStart > importData.supportsStart) { - this._emitWarning( - state, - `The 'layer(...)' in '${input.slice( - start, - end - )}' should be before 'supports(...)'`, - locConverter, - start, - end - ); - importData = undefined; - scope = CSS_MODE_TOP_LEVEL; - return end; - } - - const semicolonPos = end; - end = walkCssTokens.eatWhiteLine(input, end); - const { line: sl, column: sc } = locConverter.get(start); - const { line: el, column: ec } = locConverter.get(end); - const lastEnd = - importData.supportsEnd || - importData.layerEnd || - importData.urlEnd || - start; - const pos = walkCssTokens.eatWhitespaceAndComments(input, lastEnd); - // Prevent to consider comments as a part of media query - if (pos !== semicolonPos - 1) { - importData.media = input.slice(lastEnd, semicolonPos - 1).trim(); - } - - const url = importData.url.trim(); - - if (url.length === 0) { - const dep = new ConstDependency("", [start, end]); - module.addPresentationalDependency(dep); - dep.setLoc(sl, sc, el, ec); - } else { - const dep = new CssImportDependency( - url, - [start, end], - importData.layer, - importData.supports, - importData.media && importData.media.length > 0 - ? importData.media - : undefined - ); - dep.setLoc(sl, sc, el, ec); - module.addDependency(dep); - } - - importData = undefined; - scope = CSS_MODE_TOP_LEVEL; - - break; - } - case CSS_MODE_AT_IMPORT_INVALID: - case CSS_MODE_AT_NAMESPACE_INVALID: { - scope = CSS_MODE_TOP_LEVEL; - - break; - } - case CSS_MODE_IN_BLOCK: { - if (this.allowModeSwitch) { - processDeclarationValueDone(input); - inAnimationProperty = false; - isNextRulePrelude = isNextNestedSyntax(input, end); - } - break; - } - } - return end; - }, + comment, leftCurlyBracket: (input, start, end) => { switch (scope) { case CSS_MODE_TOP_LEVEL: { allowImportAtRule = false; scope = CSS_MODE_IN_BLOCK; - blockNestingLevel = 1; - if (this.allowModeSwitch) { + if (isModules) { + blockNestingLevel = 1; isNextRulePrelude = isNextNestedSyntax(input, end); } break; } case CSS_MODE_IN_BLOCK: { - blockNestingLevel++; - - if (this.allowModeSwitch) { + if (isModules) { + blockNestingLevel++; isNextRulePrelude = isNextNestedSyntax(input, end); } break; @@ -797,18 +476,19 @@ class CssParser extends Parser { rightCurlyBracket: (input, start, end) => { switch (scope) { case CSS_MODE_IN_BLOCK: { - if (isLocalMode()) { - processDeclarationValueDone(input); - inAnimationProperty = false; - } if (--blockNestingLevel === 0) { scope = CSS_MODE_TOP_LEVEL; - if (this.allowModeSwitch) { + if (isModules) { isNextRulePrelude = true; modeData = undefined; } - } else if (this.allowModeSwitch) { + } else if (isModules) { + if (isLocalMode()) { + processDeclarationValueDone(input); + inAnimationProperty = false; + } + isNextRulePrelude = isNextNestedSyntax(input, end); } break; @@ -816,34 +496,303 @@ class CssParser extends Parser { } return end; }, + url: (input, start, end, contentStart, contentEnd) => { + const { options, errors: commentErrors } = this.parseCommentOptions([ + lastTokenEndForComments, + end + ]); + if (commentErrors) { + for (const e of commentErrors) { + const { comment } = e; + state.module.addWarning( + new CommentCompilationWarning( + `Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`, + comment.loc + ) + ); + } + } + if (options && options.webpackIgnore !== undefined) { + if (typeof options.webpackIgnore !== "boolean") { + const { line: sl, column: sc } = locConverter.get( + lastTokenEndForComments + ); + const { line: el, column: ec } = locConverter.get(end); + + state.module.addWarning( + new UnsupportedFeatureWarning( + `\`webpackIgnore\` expected a boolean, but received: ${options.webpackIgnore}.`, + { + start: { line: sl, column: sc }, + end: { line: el, column: ec } + } + ) + ); + } else if (options.webpackIgnore) { + return end; + } + } + const value = normalizeUrl( + input.slice(contentStart, contentEnd), + false + ); + // Ignore `url()`, `url('')` and `url("")`, they are valid by spec + if (value.length === 0) return end; + const dep = new CssUrlDependency(value, [start, end], "url"); + const { line: sl, column: sc } = locConverter.get(start); + const { line: el, column: ec } = locConverter.get(end); + dep.setLoc(sl, sc, el, ec); + module.addDependency(dep); + module.addCodeGenerationDependency(dep); + return end; + }, + string: (_input, start, end) => { + switch (scope) { + case CSS_MODE_IN_BLOCK: { + if (inAnimationProperty && balanced.length === 0) { + lastIdentifier = [start, end, false]; + } + } + } + return end; + }, + atKeyword: (input, start, end) => { + const name = input.slice(start, end).toLowerCase(); + + switch (name) { + case "@namespace": { + this._emitWarning( + state, + "'@namespace' is not supported in bundled CSS", + locConverter, + start, + end + ); + + return eatUntilSemi(input, start); + } + case "@import": { + if (!allowImportAtRule) { + this._emitWarning( + state, + "Any '@import' rules must precede all other rules", + locConverter, + start, + end + ); + return end; + } + + const tokens = walkCssTokens.eatImportTokens(input, end, { + comment + }); + if (!tokens[3]) return end; + const semi = tokens[3][1]; + if (!tokens[0]) { + this._emitWarning( + state, + `Expected URL in '${input.slice(start, semi)}'`, + locConverter, + start, + semi + ); + return end; + } + + const urlToken = tokens[0]; + const url = normalizeUrl( + input.slice(urlToken[2], urlToken[3]), + true + ); + const newline = walkCssTokens.eatWhiteLine(input, semi); + const { options, errors: commentErrors } = this.parseCommentOptions( + [end, urlToken[1]] + ); + if (commentErrors) { + for (const e of commentErrors) { + const { comment } = e; + state.module.addWarning( + new CommentCompilationWarning( + `Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`, + comment.loc + ) + ); + } + } + if (options && options.webpackIgnore !== undefined) { + if (typeof options.webpackIgnore !== "boolean") { + const { line: sl, column: sc } = locConverter.get(start); + const { line: el, column: ec } = locConverter.get(newline); + + state.module.addWarning( + new UnsupportedFeatureWarning( + `\`webpackIgnore\` expected a boolean, but received: ${options.webpackIgnore}.`, + { + start: { line: sl, column: sc }, + end: { line: el, column: ec } + } + ) + ); + } else if (options.webpackIgnore) { + return newline; + } + } + if (url.length === 0) { + const { line: sl, column: sc } = locConverter.get(start); + const { line: el, column: ec } = locConverter.get(newline); + const dep = new ConstDependency("", [start, newline]); + module.addPresentationalDependency(dep); + dep.setLoc(sl, sc, el, ec); + + return newline; + } + + let layer; + + if (tokens[1]) { + layer = input.slice(tokens[1][0] + 6, tokens[1][1] - 1).trim(); + } + + let supports; + + if (tokens[2]) { + supports = input.slice(tokens[2][0] + 9, tokens[2][1] - 1).trim(); + } + + const last = tokens[2] || tokens[1] || tokens[0]; + const mediaStart = walkCssTokens.eatWhitespaceAndComments( + input, + last[1] + ); + + let media; + + if (mediaStart !== semi - 1) { + media = input.slice(mediaStart, semi - 1).trim(); + } + + const { line: sl, column: sc } = locConverter.get(start); + const { line: el, column: ec } = locConverter.get(newline); + const dep = new CssImportDependency( + url, + [start, newline], + layer, + supports && supports.length > 0 ? supports : undefined, + media && media.length > 0 ? media : undefined + ); + dep.setLoc(sl, sc, el, ec); + module.addDependency(dep); + + return newline; + } + default: { + if (isModules) { + if (OPTIONALLY_VENDOR_PREFIXED_KEYFRAMES_AT_RULE.test(name)) { + const ident = walkCssTokens.eatIdentSequenceOrString( + input, + end + ); + if (!ident) return end; + const name = + ident[2] === true + ? input.slice(ident[0], ident[1]) + : input.slice(ident[0] + 1, ident[1] - 1); + if (isLocalMode()) { + const { line: sl, column: sc } = locConverter.get(ident[0]); + const { line: el, column: ec } = locConverter.get(ident[1]); + const dep = new CssLocalIdentifierDependency(name, [ + ident[0], + ident[1] + ]); + dep.setLoc(sl, sc, el, ec); + module.addDependency(dep); + } + return ident[1]; + } else if (name === "@property") { + const ident = walkCssTokens.eatIdentSequence(input, end); + if (!ident) return end; + let name = input.slice(ident[0], ident[1]); + if (!name.startsWith("--")) return end; + name = name.slice(2); + declaredCssVariables.add(name); + if (isLocalMode()) { + const { line: sl, column: sc } = locConverter.get(ident[0]); + const { line: el, column: ec } = locConverter.get(ident[1]); + const dep = new CssLocalIdentifierDependency( + name, + [ident[0], ident[1]], + "--" + ); + dep.setLoc(sl, sc, el, ec); + module.addDependency(dep); + } + return ident[1]; + } else if (isModules && name === "@scope") { + modeData = isLocalMode() ? "local" : "global"; + isNextRulePrelude = true; + return end; + } + + isNextRulePrelude = false; + } + } + } + + return end; + }, + semicolon: (input, start, end) => { + if (isModules && scope === CSS_MODE_IN_BLOCK) { + if (isLocalMode()) { + processDeclarationValueDone(input); + inAnimationProperty = false; + } + + isNextRulePrelude = isNextNestedSyntax(input, end); + } + return end; + }, identifier: (input, start, end) => { switch (scope) { case CSS_MODE_IN_BLOCK: { if (isLocalMode()) { // Handle only top level values and not inside functions if (inAnimationProperty && balanced.length === 0) { - lastIdentifier = [start, end]; + lastIdentifier = [start, end, true]; } else { return processLocalDeclaration(input, start, end); } } break; } - case CSS_MODE_IN_AT_IMPORT: { - if (input.slice(start, end).toLowerCase() === "layer") { - importData.layer = ""; - importData.layerStart = start; - importData.layerEnd = end; - } - break; - } } return end; }, - class: (input, start, end) => { - if (isLocalMode()) { - const name = input.slice(start + 1, end); - const dep = new CssLocalIdentifierDependency(name, [start + 1, end]); + delim: (input, start, end) => { + if (isNextRulePrelude && isLocalMode()) { + const ident = walkCssTokens.skipCommentsAndEatIdentSequence( + input, + end + ); + if (!ident) return end; + const name = input.slice(ident[0], ident[1]); + const dep = new CssLocalIdentifierDependency(name, [ + ident[0], + ident[1] + ]); + const { line: sl, column: sc } = locConverter.get(ident[0]); + const { line: el, column: ec } = locConverter.get(ident[1]); + dep.setLoc(sl, sc, el, ec); + module.addDependency(dep); + return ident[1]; + } + + return end; + }, + hash: (input, start, end, isID) => { + if (isNextRulePrelude && isLocalMode() && isID) { + const valueStart = start + 1; + const name = input.slice(valueStart, end); + const dep = new CssLocalIdentifierDependency(name, [valueStart, end]); const { line: sl, column: sc } = locConverter.get(start); const { line: el, column: ec } = locConverter.get(end); dep.setLoc(sl, sc, el, ec); @@ -852,53 +801,247 @@ class CssParser extends Parser { return end; }, - id: (input, start, end) => { - if (isLocalMode()) { - const name = input.slice(start + 1, end); - const dep = new CssLocalIdentifierDependency(name, [start + 1, end]); - const { line: sl, column: sc } = locConverter.get(start); - const { line: el, column: ec } = locConverter.get(end); - dep.setLoc(sl, sc, el, ec); - module.addDependency(dep); + colon: (input, start, end) => { + if (isModules) { + const ident = walkCssTokens.skipCommentsAndEatIdentSequence( + input, + end + ); + if (!ident) return end; + const name = input.slice(ident[0], ident[1]).toLowerCase(); + + switch (scope) { + case CSS_MODE_TOP_LEVEL: { + if (name === "export") { + const pos = parseExports(input, ident[1]); + const dep = new ConstDependency("", [start, pos]); + module.addPresentationalDependency(dep); + return pos; + } + } + // falls through + default: { + if (isNextRulePrelude) { + const isFn = input.charCodeAt(ident[1]) === CC_LEFT_PARENTHESIS; + + if (isFn && name === "local") { + const end = ident[1] + 1; + modeData = "local"; + const dep = new ConstDependency("", [start, end]); + module.addPresentationalDependency(dep); + balanced.push([":local", start, end]); + return end; + } else if (name === "local") { + modeData = "local"; + // Eat extra whitespace + end = walkCssTokens.eatWhitespace(input, ident[1]); + + if (ident[1] === end) { + this._emitWarning( + state, + `Missing whitespace after ':local' in '${input.slice( + start, + eatUntilLeftCurly(input, end) + 1 + )}'`, + locConverter, + start, + end + ); + } + + const dep = new ConstDependency("", [start, end]); + module.addPresentationalDependency(dep); + return end; + } else if (isFn && name === "global") { + const end = ident[1] + 1; + modeData = "global"; + const dep = new ConstDependency("", [start, end]); + module.addPresentationalDependency(dep); + balanced.push([":global", start, end]); + return end; + } else if (name === "global") { + modeData = "global"; + // Eat extra whitespace + end = walkCssTokens.eatWhitespace(input, ident[1]); + + if (ident[1] === end) { + this._emitWarning( + state, + `Missing whitespace after ':global' in '${input.slice( + start, + eatUntilLeftCurly(input, end) + 1 + )}'`, + locConverter, + start, + end + ); + } + + const dep = new ConstDependency("", [start, end]); + module.addPresentationalDependency(dep); + return end; + } + } + } + } } + + lastTokenEndForComments = end; + return end; }, function: (input, start, end) => { - let name = input.slice(start, end - 1); + const name = input + .slice(start, end - 1) + .replace(/\\/g, "") + .toLowerCase(); balanced.push([name, start, end]); - if ( - scope === CSS_MODE_IN_AT_IMPORT && - name.toLowerCase() === "supports" - ) { - importData.inSupports = true; - } - - if (isLocalMode()) { - name = name.toLowerCase(); - - // Don't rename animation name when we have `var()` function - if (inAnimationProperty && balanced.length === 1) { - lastIdentifier = undefined; - } - - if (name === "var") { - let pos = walkCssTokens.eatWhitespaceAndComments(input, end); - if (pos === input.length) return pos; - const [newPos, name] = eatText(input, pos, eatNameInVar); - if (!name.startsWith("--")) return end; - const { line: sl, column: sc } = locConverter.get(pos); - const { line: el, column: ec } = locConverter.get(newPos); - const dep = new CssSelfLocalIdentifierDependency( - name.slice(2), - [pos, newPos], - "--", - declaredCssVariables + switch (name) { + case "src": + case "url": { + const string = walkCssTokens.eatString(input, end); + if (!string) return end; + const { options, errors: commentErrors } = this.parseCommentOptions( + [lastTokenEndForComments, end] ); + if (commentErrors) { + for (const e of commentErrors) { + const { comment } = e; + state.module.addWarning( + new CommentCompilationWarning( + `Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`, + comment.loc + ) + ); + } + } + if (options && options.webpackIgnore !== undefined) { + if (typeof options.webpackIgnore !== "boolean") { + const { line: sl, column: sc } = locConverter.get(string[0]); + const { line: el, column: ec } = locConverter.get(string[1]); + + state.module.addWarning( + new UnsupportedFeatureWarning( + `\`webpackIgnore\` expected a boolean, but received: ${options.webpackIgnore}.`, + { + start: { line: sl, column: sc }, + end: { line: el, column: ec } + } + ) + ); + } else if (options.webpackIgnore) { + return end; + } + } + const value = normalizeUrl( + input.slice(string[0] + 1, string[1] - 1), + true + ); + // Ignore `url()`, `url('')` and `url("")`, they are valid by spec + if (value.length === 0) return end; + const isUrl = name === "url" || name === "src"; + const dep = new CssUrlDependency( + value, + [string[0], string[1]], + isUrl ? "string" : "url" + ); + const { line: sl, column: sc } = locConverter.get(string[0]); + const { line: el, column: ec } = locConverter.get(string[1]); dep.setLoc(sl, sc, el, ec); module.addDependency(dep); - return newPos; + module.addCodeGenerationDependency(dep); + return string[1]; + } + default: { + if (IMAGE_SET_FUNCTION.test(name)) { + lastTokenEndForComments = end; + const values = walkCssTokens.eatImageSetStrings(input, end, { + comment + }); + if (values.length === 0) return end; + for (const [index, string] of values.entries()) { + const value = normalizeUrl( + input.slice(string[0] + 1, string[1] - 1), + true + ); + if (value.length === 0) return end; + const { options, errors: commentErrors } = + this.parseCommentOptions([ + index === 0 ? start : values[index - 1][1], + string[1] + ]); + if (commentErrors) { + for (const e of commentErrors) { + const { comment } = e; + state.module.addWarning( + new CommentCompilationWarning( + `Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`, + comment.loc + ) + ); + } + } + if (options && options.webpackIgnore !== undefined) { + if (typeof options.webpackIgnore !== "boolean") { + const { line: sl, column: sc } = locConverter.get( + string[0] + ); + const { line: el, column: ec } = locConverter.get( + string[1] + ); + + state.module.addWarning( + new UnsupportedFeatureWarning( + `\`webpackIgnore\` expected a boolean, but received: ${options.webpackIgnore}.`, + { + start: { line: sl, column: sc }, + end: { line: el, column: ec } + } + ) + ); + } else if (options.webpackIgnore) { + continue; + } + } + const dep = new CssUrlDependency( + value, + [string[0], string[1]], + "url" + ); + const { line: sl, column: sc } = locConverter.get(string[0]); + const { line: el, column: ec } = locConverter.get(string[1]); + dep.setLoc(sl, sc, el, ec); + module.addDependency(dep); + module.addCodeGenerationDependency(dep); + } + // Can contain `url()` inside, so let's return end to allow parse them + return end; + } else if (isLocalMode()) { + // Don't rename animation name when we have `var()` function + if (inAnimationProperty && balanced.length === 1) { + lastIdentifier = undefined; + } + + if (name === "var") { + const ident = walkCssTokens.eatIdentSequence(input, end); + if (!ident) return end; + const name = input.slice(ident[0], ident[1]); + if (!name.startsWith("--")) return end; + const { line: sl, column: sc } = locConverter.get(ident[0]); + const { line: el, column: ec } = locConverter.get(ident[1]); + const dep = new CssSelfLocalIdentifierDependency( + name.slice(2), + [ident[0], ident[1]], + "--", + declaredCssVariables + ); + dep.setLoc(sl, sc, el, ec); + module.addDependency(dep); + return ident[1]; + } + } } } @@ -910,11 +1053,10 @@ class CssParser extends Parser { return end; }, rightParenthesis: (input, start, end) => { - const last = balanced[balanced.length - 1]; const popped = balanced.pop(); if ( - this.allowModeSwitch && + isModules && popped && (popped[0] === ":local" || popped[0] === ":global") ) { @@ -924,124 +1066,113 @@ class CssParser extends Parser { : undefined; const dep = new ConstDependency("", [start, end]); module.addPresentationalDependency(dep); - - return end; - } - - switch (scope) { - case CSS_MODE_IN_AT_IMPORT: { - if (last && last[0] === "url" && !importData.inSupports) { - importData.urlStart = last[1]; - importData.urlEnd = end; - } else if ( - last && - last[0].toLowerCase() === "layer" && - !importData.inSupports - ) { - importData.layer = input.slice(last[2], end - 1).trim(); - importData.layerStart = last[1]; - importData.layerEnd = end; - } else if (last && last[0].toLowerCase() === "supports") { - importData.supports = input.slice(last[2], end - 1).trim(); - importData.supportsStart = last[1]; - importData.supportsEnd = end; - importData.inSupports = false; - } - break; - } - } - - return end; - }, - pseudoClass: (input, start, end) => { - if (this.allowModeSwitch) { - const name = input.slice(start, end).toLowerCase(); - - if (name === ":global") { - modeData = "global"; - // Eat extra whitespace and comments - end = walkCssTokens.eatWhitespace(input, end); - const dep = new ConstDependency("", [start, end]); - module.addPresentationalDependency(dep); - return end; - } else if (name === ":local") { - modeData = "local"; - // Eat extra whitespace and comments - end = walkCssTokens.eatWhitespace(input, end); - const dep = new ConstDependency("", [start, end]); - module.addPresentationalDependency(dep); - return end; - } - - switch (scope) { - case CSS_MODE_TOP_LEVEL: { - if (name === ":export") { - const pos = parseExports(input, end); - const dep = new ConstDependency("", [start, pos]); - module.addPresentationalDependency(dep); - return pos; - } - break; - } - } - } - - return end; - }, - pseudoFunction: (input, start, end) => { - let name = input.slice(start, end - 1); - - balanced.push([name, start, end]); - - if (this.allowModeSwitch) { - name = name.toLowerCase(); - - if (name === ":global") { - modeData = "global"; - const dep = new ConstDependency("", [start, end]); - module.addPresentationalDependency(dep); - } else if (name === ":local") { - modeData = "local"; - const dep = new ConstDependency("", [start, end]); - module.addPresentationalDependency(dep); - } } return end; }, comma: (input, start, end) => { - if (this.allowModeSwitch) { + if (isModules) { // Reset stack for `:global .class :local .class-other` selector after modeData = undefined; - switch (scope) { - case CSS_MODE_IN_BLOCK: { - if (isLocalMode()) { - processDeclarationValueDone(input); - } - - break; - } + if (scope === CSS_MODE_IN_BLOCK && isLocalMode()) { + processDeclarationValueDone(input); } } + + lastTokenEndForComments = start; + return end; } }); - if (oldDefaultMode) { - this.defaultMode = oldDefaultMode; - } - - module.buildInfo.strict = true; - module.buildMeta.exportsType = this.namedExports ? "namespace" : "default"; + /** @type {BuildInfo} */ + (module.buildInfo).strict = true; + /** @type {BuildMeta} */ + (module.buildMeta).exportsType = this.namedExports + ? "namespace" + : "default"; if (!this.namedExports) { - module.buildMeta.defaultObject = "redirect"; + /** @type {BuildMeta} */ + (module.buildMeta).defaultObject = "redirect"; } module.addDependency(new StaticExportsDependency([], true)); return state; } + + /** + * @param {Range} range range + * @returns {Comment[]} comments in the range + */ + getComments(range) { + if (!this.comments) return []; + const [rangeStart, rangeEnd] = range; + /** + * @param {Comment} comment comment + * @param {number} needle needle + * @returns {number} compared + */ + const compare = (comment, needle) => + /** @type {Range} */ (comment.range)[0] - needle; + const comments = /** @type {Comment[]} */ (this.comments); + let idx = binarySearchBounds.ge(comments, rangeStart, compare); + /** @type {Comment[]} */ + const commentsInRange = []; + while ( + comments[idx] && + /** @type {Range} */ (comments[idx].range)[1] <= rangeEnd + ) { + commentsInRange.push(comments[idx]); + idx++; + } + + return commentsInRange; + } + + /** + * @param {Range} range range of the comment + * @returns {{ options: Record | null, errors: (Error & { comment: Comment })[] | null }} result + */ + parseCommentOptions(range) { + const comments = this.getComments(range); + if (comments.length === 0) { + return EMPTY_COMMENT_OPTIONS; + } + /** @type {Record } */ + const options = {}; + /** @type {(Error & { comment: Comment })[]} */ + const errors = []; + for (const comment of comments) { + const { value } = comment; + if (value && webpackCommentRegExp.test(value)) { + // try compile only if webpack options comment is present + try { + for (let [key, val] of Object.entries( + vm.runInContext( + `(function(){return {${value}};})()`, + this.magicCommentContext + ) + )) { + if (typeof val === "object" && val !== null) { + val = + val.constructor.name === "RegExp" + ? new RegExp(val) + : JSON.parse(JSON.stringify(val)); + } + options[key] = val; + } + } catch (err) { + const newErr = new Error(String(/** @type {Error} */ (err).message)); + newErr.stack = String(/** @type {Error} */ (err).stack); + Object.assign(newErr, { comment }); + errors.push(/** @type (Error & { comment: Comment }) */ (newErr)); + } + } + } + return { options, errors }; + } } module.exports = CssParser; diff --git a/node_modules/webpack/lib/css/walkCssTokens.js b/node_modules/webpack/lib/css/walkCssTokens.js index 31285b5..5670470 100644 --- a/node_modules/webpack/lib/css/walkCssTokens.js +++ b/node_modules/webpack/lib/css/walkCssTokens.js @@ -7,22 +7,21 @@ /** * @typedef {object} CssTokenCallbacks - * @property {function(string, number): boolean=} isSelector - * @property {function(string, number, number, number, number): number=} url - * @property {function(string, number, number): number=} string - * @property {function(string, number, number): number=} leftParenthesis - * @property {function(string, number, number): number=} rightParenthesis - * @property {function(string, number, number): number=} pseudoFunction - * @property {function(string, number, number): number=} function - * @property {function(string, number, number): number=} pseudoClass - * @property {function(string, number, number): number=} atKeyword - * @property {function(string, number, number): number=} class - * @property {function(string, number, number): number=} identifier - * @property {function(string, number, number): number=} id - * @property {function(string, number, number): number=} leftCurlyBracket - * @property {function(string, number, number): number=} rightCurlyBracket - * @property {function(string, number, number): number=} semicolon - * @property {function(string, number, number): number=} comma + * @property {(function(string, number, number, number, number): number)=} url + * @property {(function(string, number, number): number)=} comment + * @property {(function(string, number, number): number)=} string + * @property {(function(string, number, number): number)=} leftParenthesis + * @property {(function(string, number, number): number)=} rightParenthesis + * @property {(function(string, number, number): number)=} function + * @property {(function(string, number, number): number)=} colon + * @property {(function(string, number, number): number)=} atKeyword + * @property {(function(string, number, number): number)=} delim + * @property {(function(string, number, number): number)=} identifier + * @property {(function(string, number, number, boolean): number)=} hash + * @property {(function(string, number, number): number)=} leftCurlyBracket + * @property {(function(string, number, number): number)=} rightCurlyBracket + * @property {(function(string, number, number): number)=} semicolon + * @property {(function(string, number, number): number)=} comma */ /** @typedef {function(string, number, CssTokenCallbacks): number} CharHandler */ @@ -59,12 +58,14 @@ const CC_AT_SIGN = "@".charCodeAt(0); const CC_LOW_LINE = "_".charCodeAt(0); const CC_LOWER_A = "a".charCodeAt(0); -const CC_LOWER_U = "u".charCodeAt(0); +const CC_LOWER_F = "f".charCodeAt(0); const CC_LOWER_E = "e".charCodeAt(0); +const CC_LOWER_U = "u".charCodeAt(0); const CC_LOWER_Z = "z".charCodeAt(0); const CC_UPPER_A = "A".charCodeAt(0); +const CC_UPPER_F = "F".charCodeAt(0); const CC_UPPER_E = "E".charCodeAt(0); -const CC_UPPER_U = "U".charCodeAt(0); +const CC_UPPER_U = "E".charCodeAt(0); const CC_UPPER_Z = "Z".charCodeAt(0); const CC_0 = "0".charCodeAt(0); const CC_9 = "9".charCodeAt(0); @@ -80,20 +81,17 @@ const CC_GREATER_THAN_SIGN = ">".charCodeAt(0); * @param {number} cc char code * @returns {boolean} true, if cc is a newline */ -const _isNewLine = cc => { - return ( - cc === CC_LINE_FEED || cc === CC_CARRIAGE_RETURN || cc === CC_FORM_FEED - ); -}; +const _isNewLine = cc => + cc === CC_LINE_FEED || cc === CC_CARRIAGE_RETURN || cc === CC_FORM_FEED; /** @type {CharHandler} */ -const consumeSpace = (input, pos, callbacks) => { - /** @type {number} */ - let cc; - do { +const consumeSpace = (input, pos, _callbacks) => { + // Consume as much whitespace as possible. + while (_isWhiteSpace(input.charCodeAt(pos))) { pos++; - cc = input.charCodeAt(pos); - } while (_isWhiteSpace(cc)); + } + + // Return a . return pos; }; @@ -101,354 +99,589 @@ const consumeSpace = (input, pos, callbacks) => { * @param {number} cc char code * @returns {boolean} true, if cc is a newline */ -const _isNewline = cc => { - return ( - cc === CC_LINE_FEED || cc === CC_CARRIAGE_RETURN || cc === CC_FORM_FEED - ); -}; +const _isNewline = cc => + cc === CC_LINE_FEED || cc === CC_CARRIAGE_RETURN || cc === CC_FORM_FEED; /** * @param {number} cc char code * @returns {boolean} true, if cc is a space (U+0009 CHARACTER TABULATION or U+0020 SPACE) */ -const _isSpace = cc => { - return cc === CC_TAB || cc === CC_SPACE; -}; +const _isSpace = cc => cc === CC_TAB || cc === CC_SPACE; /** * @param {number} cc char code * @returns {boolean} true, if cc is a whitespace */ -const _isWhiteSpace = cc => { - return _isNewline(cc) || _isSpace(cc); -}; +const _isWhiteSpace = cc => _isNewline(cc) || _isSpace(cc); /** * ident-start code point * * A letter, a non-ASCII code point, or U+005F LOW LINE (_). - * * @param {number} cc char code * @returns {boolean} true, if cc is a start code point of an identifier */ -const isIdentStartCodePoint = cc => { - return ( - (cc >= CC_LOWER_A && cc <= CC_LOWER_Z) || - (cc >= CC_UPPER_A && cc <= CC_UPPER_Z) || - cc === CC_LOW_LINE || - cc >= 0x80 - ); -}; +const isIdentStartCodePoint = cc => + (cc >= CC_LOWER_A && cc <= CC_LOWER_Z) || + (cc >= CC_UPPER_A && cc <= CC_UPPER_Z) || + cc === CC_LOW_LINE || + cc >= 0x80; /** @type {CharHandler} */ -const consumeDelimToken = (input, pos, callbacks) => { - return pos + 1; -}; +const consumeDelimToken = (input, pos, _callbacks) => + // Return a with its value set to the current input code point. + pos; /** @type {CharHandler} */ const consumeComments = (input, pos, callbacks) => { - // If the next two input code point are U+002F SOLIDUS (/) followed by a U+002A - // ASTERISK (*), consume them and all following code points up to and including - // the first U+002A ASTERISK (*) followed by a U+002F SOLIDUS (/), or up to an - // EOF code point. Return to the start of this step. - // - // If the preceding paragraph ended by consuming an EOF code point, this is a parse error. - // But we are silent on errors. - if ( + // This section describes how to consume comments from a stream of code points. It returns nothing. + // If the next two input code point are U+002F SOLIDUS (/) followed by a U+002A ASTERISK (*), + // consume them and all following code points up to and including the first U+002A ASTERISK (*) + // followed by a U+002F SOLIDUS (/), or up to an EOF code point. + // Return to the start of this step. + while ( input.charCodeAt(pos) === CC_SOLIDUS && input.charCodeAt(pos + 1) === CC_ASTERISK ) { - pos += 1; - while (pos < input.length) { + const start = pos; + pos += 2; + + for (;;) { + if (pos === input.length) { + // If the preceding paragraph ended by consuming an EOF code point, this is a parse error. + return pos; + } + if ( input.charCodeAt(pos) === CC_ASTERISK && input.charCodeAt(pos + 1) === CC_SOLIDUS ) { pos += 2; + + if (callbacks.comment) { + pos = callbacks.comment(input, start, pos); + } + break; } + pos++; } } - return pos; -}; -/** @type {function(number): CharHandler} */ -const consumeString = quote_cc => (input, pos, callbacks) => { - const start = pos; - pos = _consumeString(input, pos, quote_cc); - if (callbacks.string !== undefined) { - pos = callbacks.string(input, start, pos); - } return pos; }; +/** + * @param {number} cc char code + * @returns {boolean} true, if cc is a hex digit + */ +const _isHexDigit = cc => + _isDigit(cc) || + (cc >= CC_UPPER_A && cc <= CC_UPPER_F) || + (cc >= CC_LOWER_A && cc <= CC_LOWER_F); + /** * @param {string} input input * @param {number} pos position - * @param {number} quote_cc quote char code - * @returns {number} new position + * @returns {number} position */ -const _consumeString = (input, pos, quote_cc) => { +const _consumeAnEscapedCodePoint = (input, pos) => { + // This section describes how to consume an escaped code point. + // It assumes that the U+005C REVERSE SOLIDUS (\) has already been consumed and that the next input code point has already been verified to be part of a valid escape. + // It will return a code point. + + // Consume the next input code point. + const cc = input.charCodeAt(pos); pos++; + + // EOF + // This is a parse error. Return U+FFFD REPLACEMENT CHARACTER (οΏ½). + if (pos === input.length) { + return pos; + } + + // hex digit + // Consume as many hex digits as possible, but no more than 5. + // Note that this means 1-6 hex digits have been consumed in total. + // If the next input code point is whitespace, consume it as well. + // Interpret the hex digits as a hexadecimal number. + // If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point, return U+FFFD REPLACEMENT CHARACTER (οΏ½). + // Otherwise, return the code point with that value. + if (_isHexDigit(cc)) { + for (let i = 0; i < 5; i++) { + if (_isHexDigit(input.charCodeAt(pos))) { + pos++; + } + } + + if (_isWhiteSpace(input.charCodeAt(pos))) { + pos++; + } + + return pos; + } + + // anything else + // Return the current input code point. + return pos; +}; + +/** @type {CharHandler} */ +const consumeAStringToken = (input, pos, callbacks) => { + // This section describes how to consume a string token from a stream of code points. + // It returns either a or . + // + // This algorithm may be called with an ending code point, which denotes the code point that ends the string. + // If an ending code point is not specified, the current input code point is used. + const start = pos - 1; + const endingCodePoint = input.charCodeAt(pos - 1); + + // Initially create a with its value set to the empty string. + + // Repeatedly consume the next input code point from the stream: for (;;) { - if (pos === input.length) return pos; + // EOF + // This is a parse error. Return the . + if (pos === input.length) { + if (callbacks.string !== undefined) { + return callbacks.string(input, start, pos); + } + + return pos; + } + const cc = input.charCodeAt(pos); - if (cc === quote_cc) return pos + 1; - if (_isNewLine(cc)) { + pos++; + + // ending code point + // Return the . + if (cc === endingCodePoint) { + if (callbacks.string !== undefined) { + return callbacks.string(input, start, pos); + } + + return pos; + } + // newline + // This is a parse error. + // Reconsume the current input code point, create a , and return it. + else if (_isNewLine(cc)) { + pos--; // bad string return pos; } - if (cc === CC_REVERSE_SOLIDUS) { - // we don't need to fully parse the escaped code point - // just skip over a potential new line - pos++; - if (pos === input.length) return pos; - pos++; - } else { - pos++; + // U+005C REVERSE SOLIDUS (\) + else if (cc === CC_REVERSE_SOLIDUS) { + // If the next input code point is EOF, do nothing. + if (pos === input.length) { + return pos; + } + // Otherwise, if the next input code point is a newline, consume it. + else if (_isNewLine(input.charCodeAt(pos))) { + pos++; + } + // Otherwise, (the stream starts with a valid escape) consume an escaped code point and append the returned code point to the ’s value. + else if (_ifTwoCodePointsAreValidEscape(input, pos)) { + pos = _consumeAnEscapedCodePoint(input, pos); + } + } + // anything else + // Append the current input code point to the ’s value. + else { + // Append } } }; /** * @param {number} cc char code - * @returns {boolean} is identifier start code + * @param {number} q char code + * @returns {boolean} is non-ASCII code point */ -const _isIdentifierStartCode = cc => { - return ( - cc === CC_LOW_LINE || - (cc >= CC_LOWER_A && cc <= CC_LOWER_Z) || - (cc >= CC_UPPER_A && cc <= CC_UPPER_Z) || - cc > 0x80 - ); -}; +const isNonASCIICodePoint = (cc, q) => + // Simplify + cc > 0x80; +/** + * @param {number} cc char code + * @returns {boolean} is letter + */ +const isLetter = cc => + (cc >= CC_LOWER_A && cc <= CC_LOWER_Z) || + (cc >= CC_UPPER_A && cc <= CC_UPPER_Z); /** - * @param {number} first first code point - * @param {number} second second code point - * @returns {boolean} true if two code points are a valid escape + * @param {number} cc char code + * @param {number} q char code + * @returns {boolean} is identifier start code */ -const _isTwoCodePointsAreValidEscape = (first, second) => { - if (first !== CC_REVERSE_SOLIDUS) return false; - if (_isNewLine(second)) return false; - return true; -}; +const _isIdentStartCodePoint = (cc, q) => + isLetter(cc) || isNonASCIICodePoint(cc, q) || cc === CC_LOW_LINE; +/** + * @param {number} cc char code + * @param {number} q char code + * @returns {boolean} is identifier code + */ +const _isIdentCodePoint = (cc, q) => + _isIdentStartCodePoint(cc, q) || _isDigit(cc) || cc === CC_HYPHEN_MINUS; /** * @param {number} cc char code * @returns {boolean} is digit */ -const _isDigit = cc => { - return cc >= CC_0 && cc <= CC_9; +const _isDigit = cc => cc >= CC_0 && cc <= CC_9; + +/** + * @param {string} input input + * @param {number} pos position + * @param {number=} f first code point + * @param {number=} s second code point + * @returns {boolean} true if two code points are a valid escape + */ +const _ifTwoCodePointsAreValidEscape = (input, pos, f, s) => { + // This section describes how to check if two code points are a valid escape. + // The algorithm described here can be called explicitly with two code points, or can be called with the input stream itself. + // In the latter case, the two code points in question are the current input code point and the next input code point, in that order. + + // Note: This algorithm will not consume any additional code point. + const first = f || input.charCodeAt(pos - 1); + const second = s || input.charCodeAt(pos); + + // If the first code point is not U+005C REVERSE SOLIDUS (\), return false. + if (first !== CC_REVERSE_SOLIDUS) return false; + // Otherwise, if the second code point is a newline, return false. + if (_isNewLine(second)) return false; + // Otherwise, return true. + return true; }; /** * @param {string} input input * @param {number} pos position + * @param {number=} f first + * @param {number=} s second + * @param {number=} t third * @returns {boolean} true, if input at pos starts an identifier */ -const _startsIdentifier = (input, pos) => { - const cc = input.charCodeAt(pos); - if (cc === CC_HYPHEN_MINUS) { - if (pos === input.length) return false; - const cc = input.charCodeAt(pos + 1); - if (cc === CC_HYPHEN_MINUS) return true; - if (cc === CC_REVERSE_SOLIDUS) { - const cc = input.charCodeAt(pos + 2); - return !_isNewLine(cc); +const _ifThreeCodePointsWouldStartAnIdentSequence = (input, pos, f, s, t) => { + // This section describes how to check if three code points would start an ident sequence. + // The algorithm described here can be called explicitly with three code points, or can be called with the input stream itself. + // In the latter case, the three code points in question are the current input code point and the next two input code points, in that order. + + // Note: This algorithm will not consume any additional code points. + + const first = f || input.charCodeAt(pos - 1); + const second = s || input.charCodeAt(pos); + const third = t || input.charCodeAt(pos + 1); + + // Look at the first code point: + + // U+002D HYPHEN-MINUS + if (first === CC_HYPHEN_MINUS) { + // If the second code point is an ident-start code point or a U+002D HYPHEN-MINUS + // or a U+002D HYPHEN-MINUS, or the second and third code points are a valid escape, return true. + if ( + _isIdentStartCodePoint(second, pos) || + second === CC_HYPHEN_MINUS || + _ifTwoCodePointsAreValidEscape(input, pos, second, third) + ) { + return true; } - return _isIdentifierStartCode(cc); + return false; } - if (cc === CC_REVERSE_SOLIDUS) { - const cc = input.charCodeAt(pos + 1); - return !_isNewLine(cc); + // ident-start code point + else if (_isIdentStartCodePoint(first, pos - 1)) { + return true; } - return _isIdentifierStartCode(cc); + // U+005C REVERSE SOLIDUS (\) + // If the first and second code points are a valid escape, return true. Otherwise, return false. + else if (first === CC_REVERSE_SOLIDUS) { + if (_ifTwoCodePointsAreValidEscape(input, pos, first, second)) { + return true; + } + + return false; + } + // anything else + // Return false. + return false; +}; + +/** + * @param {string} input input + * @param {number} pos position + * @param {number=} f first + * @param {number=} s second + * @param {number=} t third + * @returns {boolean} true, if input at pos starts an identifier + */ +const _ifThreeCodePointsWouldStartANumber = (input, pos, f, s, t) => { + // This section describes how to check if three code points would start a number. + // The algorithm described here can be called explicitly with three code points, or can be called with the input stream itself. + // In the latter case, the three code points in question are the current input code point and the next two input code points, in that order. + + // Note: This algorithm will not consume any additional code points. + + const first = f || input.charCodeAt(pos - 1); + const second = s || input.charCodeAt(pos); + const third = t || input.charCodeAt(pos); + + // Look at the first code point: + + // U+002B PLUS SIGN (+) + // U+002D HYPHEN-MINUS (-) + // + // If the second code point is a digit, return true. + // Otherwise, if the second code point is a U+002E FULL STOP (.) and the third code point is a digit, return true. + // Otherwise, return false. + if (first === CC_PLUS_SIGN || first === CC_HYPHEN_MINUS) { + if (_isDigit(second)) { + return true; + } else if (second === CC_FULL_STOP && _isDigit(third)) { + return true; + } + + return false; + } + // U+002E FULL STOP (.) + // If the second code point is a digit, return true. Otherwise, return false. + else if (first === CC_FULL_STOP) { + if (_isDigit(second)) { + return true; + } + + return false; + } + // digit + // Return true. + else if (_isDigit(first)) { + return true; + } + + // anything else + // Return false. + return false; }; /** @type {CharHandler} */ const consumeNumberSign = (input, pos, callbacks) => { - const start = pos; - pos++; - if (pos === input.length) return pos; - if (callbacks.isSelector(input, pos) && _startsIdentifier(input, pos)) { - pos = _consumeIdentifier(input, pos, callbacks); - if (callbacks.id !== undefined) { - return callbacks.id(input, start, pos); - } - } - return pos; -}; + // If the next input code point is an ident code point or the next two input code points are a valid escape, then: + // - Create a . + // - If the next 3 input code points would start an ident sequence, set the ’s type flag to "id". + // - Consume an ident sequence, and set the ’s value to the returned string. + // - Return the . + const start = pos - 1; + const first = input.charCodeAt(pos); + const second = input.charCodeAt(pos + 1); -/** @type {CharHandler} */ -const consumeMinus = (input, pos, callbacks) => { - const start = pos; - pos++; - if (pos === input.length) return pos; - const cc = input.charCodeAt(pos); - // If the input stream starts with a number, reconsume the current input code point, consume a numeric token, and return it. - if (cc === CC_FULL_STOP || _isDigit(cc)) { - return consumeNumericToken(input, pos, callbacks); - } else if (cc === CC_HYPHEN_MINUS) { - pos++; - if (pos === input.length) return pos; - const cc = input.charCodeAt(pos); - if (cc === CC_GREATER_THAN_SIGN) { - return pos + 1; - } else { - pos = _consumeIdentifier(input, pos, callbacks); - if (callbacks.identifier !== undefined) { - return callbacks.identifier(input, start, pos); - } - } - } else if (cc === CC_REVERSE_SOLIDUS) { - if (pos + 1 === input.length) return pos; - const cc = input.charCodeAt(pos + 1); - if (_isNewLine(cc)) return pos; - pos = _consumeIdentifier(input, pos, callbacks); - if (callbacks.identifier !== undefined) { - return callbacks.identifier(input, start, pos); - } - } else if (_isIdentifierStartCode(cc)) { - pos = consumeOtherIdentifier(input, pos - 1, callbacks); - } - return pos; -}; - -/** @type {CharHandler} */ -const consumeDot = (input, pos, callbacks) => { - const start = pos; - pos++; - if (pos === input.length) return pos; - const cc = input.charCodeAt(pos); - if (_isDigit(cc)) return consumeNumericToken(input, pos - 2, callbacks); - if (!callbacks.isSelector(input, pos) || !_startsIdentifier(input, pos)) - return pos; - pos = _consumeIdentifier(input, pos, callbacks); - if (callbacks.class !== undefined) return callbacks.class(input, start, pos); - return pos; -}; - -/** @type {CharHandler} */ -const consumeNumericToken = (input, pos, callbacks) => { - pos = _consumeNumber(input, pos, callbacks); - if (pos === input.length) return pos; - if (_startsIdentifier(input, pos)) - return _consumeIdentifier(input, pos, callbacks); - const cc = input.charCodeAt(pos); - if (cc === CC_PERCENTAGE) return pos + 1; - return pos; -}; - -/** @type {CharHandler} */ -const consumeOtherIdentifier = (input, pos, callbacks) => { - const start = pos; - pos = _consumeIdentifier(input, pos, callbacks); - if (pos !== input.length && input.charCodeAt(pos) === CC_LEFT_PARENTHESIS) { - pos++; - if (callbacks.function !== undefined) { - return callbacks.function(input, start, pos); - } - } else { - if (callbacks.identifier !== undefined) { - return callbacks.identifier(input, start, pos); - } - } - return pos; -}; - -/** @type {CharHandler} */ -const consumePotentialUrl = (input, pos, callbacks) => { - const start = pos; - pos = _consumeIdentifier(input, pos, callbacks); - const nextPos = pos + 1; if ( - pos === start + 3 && - input.slice(start, nextPos).toLowerCase() === "url(" + _isIdentCodePoint(first, pos - 1) || + _ifTwoCodePointsAreValidEscape(input, pos, first, second) + ) { + const third = input.charCodeAt(pos + 2); + let isId = false; + + if ( + _ifThreeCodePointsWouldStartAnIdentSequence( + input, + pos, + first, + second, + third + ) + ) { + isId = true; + } + + pos = _consumeAnIdentSequence(input, pos, callbacks); + + if (callbacks.hash !== undefined) { + return callbacks.hash(input, start, pos, isId); + } + + return pos; + } + + // Otherwise, return a with its value set to the current input code point. + return pos; +}; + +/** @type {CharHandler} */ +const consumeHyphenMinus = (input, pos, callbacks) => { + // If the input stream starts with a number, reconsume the current input code point, consume a numeric token, and return it. + if (_ifThreeCodePointsWouldStartANumber(input, pos)) { + pos--; + return consumeANumericToken(input, pos, callbacks); + } + // Otherwise, if the next 2 input code points are U+002D HYPHEN-MINUS U+003E GREATER-THAN SIGN (->), consume them and return a . + else if ( + input.charCodeAt(pos) === CC_HYPHEN_MINUS && + input.charCodeAt(pos + 1) === CC_GREATER_THAN_SIGN + ) { + return pos + 2; + } + // Otherwise, if the input stream starts with an ident sequence, reconsume the current input code point, consume an ident-like token, and return it. + else if (_ifThreeCodePointsWouldStartAnIdentSequence(input, pos)) { + pos--; + return consumeAnIdentLikeToken(input, pos, callbacks); + } + + // Otherwise, return a with its value set to the current input code point. + return pos; +}; + +/** @type {CharHandler} */ +const consumeFullStop = (input, pos, callbacks) => { + const start = pos - 1; + + // If the input stream starts with a number, reconsume the current input code point, consume a numeric token, and return it. + if (_ifThreeCodePointsWouldStartANumber(input, pos)) { + pos--; + return consumeANumericToken(input, pos, callbacks); + } + + // Otherwise, return a with its value set to the current input code point. + if (callbacks.delim !== undefined) { + return callbacks.delim(input, start, pos); + } + + return pos; +}; + +/** @type {CharHandler} */ +const consumePlusSign = (input, pos, callbacks) => { + // If the input stream starts with a number, reconsume the current input code point, consume a numeric token, and return it. + if (_ifThreeCodePointsWouldStartANumber(input, pos)) { + pos--; + return consumeANumericToken(input, pos, callbacks); + } + + // Otherwise, return a with its value set to the current input code point. + return pos; +}; + +/** @type {CharHandler} */ +const _consumeANumber = (input, pos) => { + // This section describes how to consume a number from a stream of code points. + // It returns a numeric value, and a type which is either "integer" or "number". + + // Execute the following steps in order: + // Initially set type to "integer". Let repr be the empty string. + + // If the next input code point is U+002B PLUS SIGN (+) or U+002D HYPHEN-MINUS (-), consume it and append it to repr. + if ( + input.charCodeAt(pos) === CC_HYPHEN_MINUS || + input.charCodeAt(pos) === CC_PLUS_SIGN ) { pos++; - let cc = input.charCodeAt(pos); - while (_isWhiteSpace(cc)) { - pos++; - if (pos === input.length) return pos; - cc = input.charCodeAt(pos); - } - if (cc === CC_QUOTATION_MARK || cc === CC_APOSTROPHE) { - if (callbacks.function !== undefined) { - return callbacks.function(input, start, nextPos); - } - return nextPos; - } else { - const contentStart = pos; - /** @type {number} */ - let contentEnd; - for (;;) { - if (cc === CC_REVERSE_SOLIDUS) { - pos++; - if (pos === input.length) return pos; - pos++; - } else if (_isWhiteSpace(cc)) { - contentEnd = pos; - do { - pos++; - if (pos === input.length) return pos; - cc = input.charCodeAt(pos); - } while (_isWhiteSpace(cc)); - if (cc !== CC_RIGHT_PARENTHESIS) return pos; - pos++; - if (callbacks.url !== undefined) { - return callbacks.url(input, start, pos, contentStart, contentEnd); - } - return pos; - } else if (cc === CC_RIGHT_PARENTHESIS) { - contentEnd = pos; - pos++; - if (callbacks.url !== undefined) { - return callbacks.url(input, start, pos, contentStart, contentEnd); - } - return pos; - } else if (cc === CC_LEFT_PARENTHESIS) { - return pos; - } else { - pos++; - } - if (pos === input.length) return pos; - cc = input.charCodeAt(pos); - } - } - } else { - if (callbacks.identifier !== undefined) { - return callbacks.identifier(input, start, pos); - } - return pos; } + + // While the next input code point is a digit, consume it and append it to repr. + while (_isDigit(input.charCodeAt(pos))) { + pos++; + } + + // If the next 2 input code points are U+002E FULL STOP (.) followed by a digit, then: + // 1. Consume the next input code point and append it to number part. + // 2. While the next input code point is a digit, consume it and append it to number part. + // 3. Set type to "number". + if ( + input.charCodeAt(pos) === CC_FULL_STOP && + _isDigit(input.charCodeAt(pos + 1)) + ) { + pos++; + + while (_isDigit(input.charCodeAt(pos))) { + pos++; + } + } + + // If the next 2 or 3 input code points are U+0045 LATIN CAPITAL LETTER E (E) or U+0065 LATIN SMALL LETTER E (e), optionally followed by U+002D HYPHEN-MINUS (-) or U+002B PLUS SIGN (+), followed by a digit, then: + // 1. Consume the next input code point. + // 2. If the next input code point is "+" or "-", consume it and append it to exponent part. + // 3. While the next input code point is a digit, consume it and append it to exponent part. + // 4. Set type to "number". + if ( + (input.charCodeAt(pos) === CC_LOWER_E || + input.charCodeAt(pos) === CC_UPPER_E) && + (((input.charCodeAt(pos + 1) === CC_HYPHEN_MINUS || + input.charCodeAt(pos + 1) === CC_PLUS_SIGN) && + _isDigit(input.charCodeAt(pos + 2))) || + _isDigit(input.charCodeAt(pos + 1))) + ) { + pos++; + + if ( + input.charCodeAt(pos) === CC_PLUS_SIGN || + input.charCodeAt(pos) === CC_HYPHEN_MINUS + ) { + pos++; + } + + while (_isDigit(input.charCodeAt(pos))) { + pos++; + } + } + + // Let value be the result of interpreting number part as a base-10 number. + + // If exponent part is non-empty, interpret it as a base-10 integer, then raise 10 to the power of the result, multiply it by value, and set value to that result. + + // Return value and type. + return pos; }; /** @type {CharHandler} */ -const consumePotentialPseudo = (input, pos, callbacks) => { - const start = pos; - pos++; - if (!callbacks.isSelector(input, pos) || !_startsIdentifier(input, pos)) - return pos; - pos = _consumeIdentifier(input, pos, callbacks); - let cc = input.charCodeAt(pos); - if (cc === CC_LEFT_PARENTHESIS) { - pos++; - if (callbacks.pseudoFunction !== undefined) { - return callbacks.pseudoFunction(input, start, pos); - } - return pos; +const consumeANumericToken = (input, pos, callbacks) => { + // This section describes how to consume a numeric token from a stream of code points. + // It returns either a , , or . + + // Consume a number and let number be the result. + pos = _consumeANumber(input, pos, callbacks); + + // If the next 3 input code points would start an ident sequence, then: + // + // - Create a with the same value and type flag as number, and a unit set initially to the empty string. + // - Consume an ident sequence. Set the ’s unit to the returned value. + // - Return the . + + const first = input.charCodeAt(pos); + const second = input.charCodeAt(pos + 1); + const third = input.charCodeAt(pos + 2); + + if ( + _ifThreeCodePointsWouldStartAnIdentSequence( + input, + pos, + first, + second, + third + ) + ) { + return _consumeAnIdentSequence(input, pos, callbacks); } - if (callbacks.pseudoClass !== undefined) { - return callbacks.pseudoClass(input, start, pos); + // Otherwise, if the next input code point is U+0025 PERCENTAGE SIGN (%), consume it. + // Create a with the same value as number, and return it. + else if (first === CC_PERCENTAGE) { + return pos + 1; + } + + // Otherwise, create a with the same value and type flag as number, and return it. + return pos; +}; + +/** @type {CharHandler} */ +const consumeColon = (input, pos, callbacks) => { + // Return a . + if (callbacks.colon !== undefined) { + return callbacks.colon(input, pos - 1, pos); } return pos; }; /** @type {CharHandler} */ const consumeLeftParenthesis = (input, pos, callbacks) => { - pos++; + // Return a <(-token>. if (callbacks.leftParenthesis !== undefined) { return callbacks.leftParenthesis(input, pos - 1, pos); } @@ -457,16 +690,26 @@ const consumeLeftParenthesis = (input, pos, callbacks) => { /** @type {CharHandler} */ const consumeRightParenthesis = (input, pos, callbacks) => { - pos++; + // Return a <)-token>. if (callbacks.rightParenthesis !== undefined) { return callbacks.rightParenthesis(input, pos - 1, pos); } return pos; }; +/** @type {CharHandler} */ +const consumeLeftSquareBracket = (input, pos, callbacks) => + // Return a <]-token>. + pos; + +/** @type {CharHandler} */ +const consumeRightSquareBracket = (input, pos, callbacks) => + // Return a <]-token>. + pos; + /** @type {CharHandler} */ const consumeLeftCurlyBracket = (input, pos, callbacks) => { - pos++; + // Return a <{-token>. if (callbacks.leftCurlyBracket !== undefined) { return callbacks.leftCurlyBracket(input, pos - 1, pos); } @@ -475,7 +718,7 @@ const consumeLeftCurlyBracket = (input, pos, callbacks) => { /** @type {CharHandler} */ const consumeRightCurlyBracket = (input, pos, callbacks) => { - pos++; + // Return a <}-token>. if (callbacks.rightCurlyBracket !== undefined) { return callbacks.rightCurlyBracket(input, pos - 1, pos); } @@ -484,7 +727,7 @@ const consumeRightCurlyBracket = (input, pos, callbacks) => { /** @type {CharHandler} */ const consumeSemicolon = (input, pos, callbacks) => { - pos++; + // Return a . if (callbacks.semicolon !== undefined) { return callbacks.semicolon(input, pos - 1, pos); } @@ -493,7 +736,7 @@ const consumeSemicolon = (input, pos, callbacks) => { /** @type {CharHandler} */ const consumeComma = (input, pos, callbacks) => { - pos++; + // Return a . if (callbacks.comma !== undefined) { return callbacks.comma(input, pos - 1, pos); } @@ -501,117 +744,319 @@ const consumeComma = (input, pos, callbacks) => { }; /** @type {CharHandler} */ -const _consumeIdentifier = (input, pos) => { +const _consumeAnIdentSequence = (input, pos) => { + // This section describes how to consume an ident sequence from a stream of code points. + // It returns a string containing the largest name that can be formed from adjacent code points in the stream, starting from the first. + + // Note: This algorithm does not do the verification of the first few code points that are necessary to ensure the returned code points would constitute an . + // If that is the intended use, ensure that the stream starts with an ident sequence before calling this algorithm. + + // Let result initially be an empty string. + + // Repeatedly consume the next input code point from the stream: for (;;) { const cc = input.charCodeAt(pos); - if (cc === CC_REVERSE_SOLIDUS) { - pos++; - if (pos === input.length) return pos; - pos++; - } else if ( - _isIdentifierStartCode(cc) || - _isDigit(cc) || - cc === CC_HYPHEN_MINUS - ) { - pos++; - } else { + pos++; + + // ident code point + // Append the code point to result. + if (_isIdentCodePoint(cc, pos - 1)) { + // Nothing + } + // the stream starts with a valid escape + // Consume an escaped code point. Append the returned code point to result. + else if (_ifTwoCodePointsAreValidEscape(input, pos)) { + pos = _consumeAnEscapedCodePoint(input, pos); + } + // anything else + // Reconsume the current input code point. Return result. + else { + return pos - 1; + } + } +}; + +/** + * @param {number} cc char code + * @returns {boolean} true, when cc is the non-printable code point, otherwise false + */ +const _isNonPrintableCodePoint = cc => + (cc >= 0x00 && cc <= 0x08) || + cc === 0x0b || + (cc >= 0x0e && cc <= 0x1f) || + cc === 0x7f; + +/** + * @param {string} input input + * @param {number} pos position + * @returns {number} position + */ +const consumeTheRemnantsOfABadUrl = (input, pos) => { + // This section describes how to consume the remnants of a bad url from a stream of code points, + // "cleaning up" after the tokenizer realizes that it’s in the middle of a rather than a . + // It returns nothing; its sole use is to consume enough of the input stream to reach a recovery point where normal tokenizing can resume. + + // Repeatedly consume the next input code point from the stream: + for (;;) { + // EOF + // Return. + if (pos === input.length) { return pos; } + + const cc = input.charCodeAt(pos); + pos++; + + // U+0029 RIGHT PARENTHESIS ()) + // Return. + if (cc === CC_RIGHT_PARENTHESIS) { + return pos; + } + // the input stream starts with a valid escape + // Consume an escaped code point. + // This allows an escaped right parenthesis ("\)") to be encountered without ending the . + // This is otherwise identical to the "anything else" clause. + else if (_ifTwoCodePointsAreValidEscape(input, pos)) { + pos = _consumeAnEscapedCodePoint(input, pos); + } + // anything else + // Do nothing. + else { + // Do nothing. + } + } +}; + +/** + * @param {string} input input + * @param {number} pos position + * @param {number} fnStart start + * @param {CssTokenCallbacks} callbacks callbacks + * @returns {pos} pos + */ +const consumeAUrlToken = (input, pos, fnStart, callbacks) => { + // This section describes how to consume a url token from a stream of code points. + // It returns either a or a . + + // Note: This algorithm assumes that the initial "url(" has already been consumed. + // This algorithm also assumes that it’s being called to consume an "unquoted" value, like url(foo). + // A quoted value, like url("foo"), is parsed as a . + // Consume an ident-like token automatically handles this distinction; this algorithm shouldn’t be called directly otherwise. + + // Initially create a with its value set to the empty string. + + // Consume as much whitespace as possible. + while (_isWhiteSpace(input.charCodeAt(pos))) { + pos++; + } + + const contentStart = pos; + + // Repeatedly consume the next input code point from the stream: + for (;;) { + // EOF + // This is a parse error. Return the . + if (pos === input.length) { + if (callbacks.url !== undefined) { + return callbacks.url(input, fnStart, pos, contentStart, pos - 1); + } + + return pos; + } + + const cc = input.charCodeAt(pos); + pos++; + + // U+0029 RIGHT PARENTHESIS ()) + // Return the . + if (cc === CC_RIGHT_PARENTHESIS) { + if (callbacks.url !== undefined) { + return callbacks.url(input, fnStart, pos, contentStart, pos - 1); + } + + return pos; + } + // whitespace + // Consume as much whitespace as possible. + // If the next input code point is U+0029 RIGHT PARENTHESIS ()) or EOF, consume it and return the + // (if EOF was encountered, this is a parse error); otherwise, consume the remnants of a bad url, create a , and return it. + else if (_isWhiteSpace(cc)) { + const end = pos - 1; + + while (_isWhiteSpace(input.charCodeAt(pos))) { + pos++; + } + + if (pos === input.length) { + if (callbacks.url !== undefined) { + return callbacks.url(input, fnStart, pos, contentStart, end); + } + + return pos; + } + + if (input.charCodeAt(pos) === CC_RIGHT_PARENTHESIS) { + pos++; + + if (callbacks.url !== undefined) { + return callbacks.url(input, fnStart, pos, contentStart, end); + } + + return pos; + } + + // Don't handle bad urls + return consumeTheRemnantsOfABadUrl(input, pos); + } + // U+0022 QUOTATION MARK (") + // U+0027 APOSTROPHE (') + // U+0028 LEFT PARENTHESIS (() + // non-printable code point + // This is a parse error. Consume the remnants of a bad url, create a , and return it. + else if ( + cc === CC_QUOTATION_MARK || + cc === CC_APOSTROPHE || + cc === CC_LEFT_PARENTHESIS || + _isNonPrintableCodePoint(cc) + ) { + // Don't handle bad urls + return consumeTheRemnantsOfABadUrl(input, pos); + } + // // U+005C REVERSE SOLIDUS (\) + // // If the stream starts with a valid escape, consume an escaped code point and append the returned code point to the ’s value. + // // Otherwise, this is a parse error. Consume the remnants of a bad url, create a , and return it. + else if (cc === CC_REVERSE_SOLIDUS) { + if (_ifTwoCodePointsAreValidEscape(input, pos)) { + pos = _consumeAnEscapedCodePoint(input, pos); + } else { + // Don't handle bad urls + return consumeTheRemnantsOfABadUrl(input, pos); + } + } + // anything else + // Append the current input code point to the ’s value. + else { + // Nothing + } } }; /** @type {CharHandler} */ -const _consumeNumber = (input, pos) => { - pos++; - if (pos === input.length) return pos; - let cc = input.charCodeAt(pos); - while (_isDigit(cc)) { +const consumeAnIdentLikeToken = (input, pos, callbacks) => { + const start = pos; + // This section describes how to consume an ident-like token from a stream of code points. + // It returns an , , , or . + pos = _consumeAnIdentSequence(input, pos, callbacks); + + // If string’s value is an ASCII case-insensitive match for "url", and the next input code point is U+0028 LEFT PARENTHESIS ((), consume it. + // While the next two input code points are whitespace, consume the next input code point. + // If the next one or two input code points are U+0022 QUOTATION MARK ("), U+0027 APOSTROPHE ('), or whitespace followed by U+0022 QUOTATION MARK (") or U+0027 APOSTROPHE ('), then create a with its value set to string and return it. + // Otherwise, consume a url token, and return it. + if ( + input.slice(start, pos).toLowerCase() === "url" && + input.charCodeAt(pos) === CC_LEFT_PARENTHESIS + ) { pos++; - if (pos === input.length) return pos; - cc = input.charCodeAt(pos); - } - if (cc === CC_FULL_STOP && pos + 1 !== input.length) { - const next = input.charCodeAt(pos + 1); - if (_isDigit(next)) { - pos += 2; - cc = input.charCodeAt(pos); - while (_isDigit(cc)) { - pos++; - if (pos === input.length) return pos; - cc = input.charCodeAt(pos); - } + const end = pos; + + while ( + _isWhiteSpace(input.charCodeAt(pos)) && + _isWhiteSpace(input.charCodeAt(pos + 1)) + ) { + pos++; } - } - if (cc === CC_LOWER_E || cc === CC_UPPER_E) { - if (pos + 1 !== input.length) { - const next = input.charCodeAt(pos + 2); - if (_isDigit(next)) { - pos += 2; - } else if ( - (next === CC_HYPHEN_MINUS || next === CC_PLUS_SIGN) && - pos + 2 !== input.length - ) { - const next = input.charCodeAt(pos + 2); - if (_isDigit(next)) { - pos += 3; - } else { - return pos; - } - } else { - return pos; + + if ( + input.charCodeAt(pos) === CC_QUOTATION_MARK || + input.charCodeAt(pos) === CC_APOSTROPHE || + (_isWhiteSpace(input.charCodeAt(pos)) && + (input.charCodeAt(pos + 1) === CC_QUOTATION_MARK || + input.charCodeAt(pos + 1) === CC_APOSTROPHE)) + ) { + if (callbacks.function !== undefined) { + return callbacks.function(input, start, end); } + + return pos; } - } else { + + return consumeAUrlToken(input, pos, start, callbacks); + } + + // Otherwise, if the next input code point is U+0028 LEFT PARENTHESIS ((), consume it. + // Create a with its value set to string and return it. + if (input.charCodeAt(pos) === CC_LEFT_PARENTHESIS) { + pos++; + + if (callbacks.function !== undefined) { + return callbacks.function(input, start, pos); + } + return pos; } - cc = input.charCodeAt(pos); - while (_isDigit(cc)) { - pos++; - if (pos === input.length) return pos; - cc = input.charCodeAt(pos); + + // Otherwise, create an with its value set to string and return it. + if (callbacks.identifier !== undefined) { + return callbacks.identifier(input, start, pos); } + return pos; }; /** @type {CharHandler} */ -const consumeLessThan = (input, pos, callbacks) => { - if (input.slice(pos + 1, pos + 4) === "!--") return pos + 4; - return pos + 1; +const consumeLessThan = (input, pos, _callbacks) => { + // If the next 3 input code points are U+0021 EXCLAMATION MARK U+002D HYPHEN-MINUS U+002D HYPHEN-MINUS (!--), consume them and return a . + if (input.slice(pos, pos + 3) === "!--") { + return pos + 3; + } + + // Otherwise, return a with its value set to the current input code point. + return pos; }; /** @type {CharHandler} */ -const consumeAt = (input, pos, callbacks) => { - const start = pos; - pos++; - if (pos === input.length) return pos; - if (_startsIdentifier(input, pos)) { - pos = _consumeIdentifier(input, pos, callbacks); +const consumeCommercialAt = (input, pos, callbacks) => { + const start = pos - 1; + + // If the next 3 input code points would start an ident sequence, consume an ident sequence, create an with its value set to the returned value, and return it. + if ( + _ifThreeCodePointsWouldStartAnIdentSequence( + input, + pos, + input.charCodeAt(pos), + input.charCodeAt(pos + 1), + input.charCodeAt(pos + 2) + ) + ) { + pos = _consumeAnIdentSequence(input, pos, callbacks); + if (callbacks.atKeyword !== undefined) { pos = callbacks.atKeyword(input, start, pos); } + + return pos; } + + // Otherwise, return a with its value set to the current input code point. return pos; }; /** @type {CharHandler} */ const consumeReverseSolidus = (input, pos, callbacks) => { - const start = pos; - pos++; - if (pos === input.length) return pos; // If the input stream starts with a valid escape, reconsume the current input code point, consume an ident-like token, and return it. - if ( - _isTwoCodePointsAreValidEscape( - input.charCodeAt(start), - input.charCodeAt(pos) - ) - ) { - return consumeOtherIdentifier(input, pos - 1, callbacks); + if (_ifTwoCodePointsAreValidEscape(input, pos)) { + pos--; + return consumeAnIdentLikeToken(input, pos, callbacks); } + // Otherwise, this is a parse error. Return a with its value set to the current input code point. return pos; }; -const CHAR_MAP = Array.from({ length: 0x80 }, (_, cc) => { +/** @type {CharHandler} */ +const consumeAToken = (input, pos, callbacks) => { + const cc = input.charCodeAt(pos - 1); + // https://drafts.csswg.org/css-syntax/#consume-token switch (cc) { // whitespace @@ -620,77 +1065,94 @@ const CHAR_MAP = Array.from({ length: 0x80 }, (_, cc) => { case CC_FORM_FEED: case CC_TAB: case CC_SPACE: - return consumeSpace; + return consumeSpace(input, pos, callbacks); // U+0022 QUOTATION MARK (") case CC_QUOTATION_MARK: - return consumeString(cc); + return consumeAStringToken(input, pos, callbacks); // U+0023 NUMBER SIGN (#) case CC_NUMBER_SIGN: - return consumeNumberSign; + return consumeNumberSign(input, pos, callbacks); // U+0027 APOSTROPHE (') case CC_APOSTROPHE: - return consumeString(cc); + return consumeAStringToken(input, pos, callbacks); // U+0028 LEFT PARENTHESIS (() case CC_LEFT_PARENTHESIS: - return consumeLeftParenthesis; + return consumeLeftParenthesis(input, pos, callbacks); // U+0029 RIGHT PARENTHESIS ()) case CC_RIGHT_PARENTHESIS: - return consumeRightParenthesis; + return consumeRightParenthesis(input, pos, callbacks); // U+002B PLUS SIGN (+) case CC_PLUS_SIGN: - return consumeNumericToken; + return consumePlusSign(input, pos, callbacks); // U+002C COMMA (,) case CC_COMMA: - return consumeComma; + return consumeComma(input, pos, callbacks); // U+002D HYPHEN-MINUS (-) case CC_HYPHEN_MINUS: - return consumeMinus; + return consumeHyphenMinus(input, pos, callbacks); // U+002E FULL STOP (.) case CC_FULL_STOP: - return consumeDot; + return consumeFullStop(input, pos, callbacks); // U+003A COLON (:) case CC_COLON: - return consumePotentialPseudo; + return consumeColon(input, pos, callbacks); // U+003B SEMICOLON (;) case CC_SEMICOLON: - return consumeSemicolon; + return consumeSemicolon(input, pos, callbacks); // U+003C LESS-THAN SIGN (<) case CC_LESS_THAN_SIGN: - return consumeLessThan; + return consumeLessThan(input, pos, callbacks); // U+0040 COMMERCIAL AT (@) case CC_AT_SIGN: - return consumeAt; + return consumeCommercialAt(input, pos, callbacks); // U+005B LEFT SQUARE BRACKET ([) case CC_LEFT_SQUARE: - return consumeDelimToken; + return consumeLeftSquareBracket(input, pos, callbacks); // U+005C REVERSE SOLIDUS (\) case CC_REVERSE_SOLIDUS: - return consumeReverseSolidus; + return consumeReverseSolidus(input, pos, callbacks); // U+005D RIGHT SQUARE BRACKET (]) case CC_RIGHT_SQUARE: - return consumeDelimToken; + return consumeRightSquareBracket(input, pos, callbacks); // U+007B LEFT CURLY BRACKET ({) case CC_LEFT_CURLY: - return consumeLeftCurlyBracket; + return consumeLeftCurlyBracket(input, pos, callbacks); // U+007D RIGHT CURLY BRACKET (}) case CC_RIGHT_CURLY: - return consumeRightCurlyBracket; - // Optimization - case CC_LOWER_U: - case CC_UPPER_U: - return consumePotentialUrl; + return consumeRightCurlyBracket(input, pos, callbacks); default: // digit - if (_isDigit(cc)) return consumeNumericToken; - // ident-start code point - if (isIdentStartCodePoint(cc)) { - return consumeOtherIdentifier; + // Reconsume the current input code point, consume a numeric token, and return it. + if (_isDigit(cc)) { + pos--; + return consumeANumericToken(input, pos, callbacks); + } else if (cc === CC_LOWER_U || cc === CC_UPPER_U) { + // If unicode ranges allowed is true and the input stream would start a unicode-range, + // reconsume the current input code point, consume a unicode-range token, and return it. + // Skip now + // if (_ifThreeCodePointsWouldStartAUnicodeRange(input, pos)) { + // pos--; + // return consumeAUnicodeRangeToken(input, pos, callbacks); + // } + + // Otherwise, reconsume the current input code point, consume an ident-like token, and return it. + pos--; + return consumeAnIdentLikeToken(input, pos, callbacks); } + // ident-start code point + // Reconsume the current input code point, consume an ident-like token, and return it. + else if (isIdentStartCodePoint(cc)) { + pos--; + return consumeAnIdentLikeToken(input, pos, callbacks); + } + // EOF, but we don't have it + // anything else - return consumeDelimToken; + // Return a with its value set to the current input code point. + return consumeDelimToken(input, pos, callbacks); } -}); +}; /** * @param {string} input input css @@ -704,14 +1166,9 @@ module.exports = (input, callbacks) => { // Consume comments. pos = consumeComments(input, pos, callbacks); - const cc = input.charCodeAt(pos); - // Consume the next input code point. - if (cc < 0x80) { - pos = CHAR_MAP[cc](input, pos, callbacks); - } else { - pos++; - } + pos++; + pos = consumeAToken(input, pos, callbacks); } }; @@ -724,7 +1181,7 @@ module.exports.isIdentStartCodePoint = isIdentStartCodePoint; */ module.exports.eatComments = (input, pos) => { for (;;) { - let originalPos = pos; + const originalPos = pos; pos = consumeComments(input, pos, {}); if (originalPos === pos) { break; @@ -754,7 +1211,7 @@ module.exports.eatWhitespace = (input, pos) => { */ module.exports.eatWhitespaceAndComments = (input, pos) => { for (;;) { - let originalPos = pos; + const originalPos = pos; pos = consumeComments(input, pos, {}); while (_isWhiteSpace(input.charCodeAt(pos))) { pos++; @@ -767,6 +1224,23 @@ module.exports.eatWhitespaceAndComments = (input, pos) => { return pos; }; +/** + * @param {string} input input + * @param {number} pos position + * @returns {number} position after whitespace and comments + */ +module.exports.eatComments = (input, pos) => { + for (;;) { + const originalPos = pos; + pos = consumeComments(input, pos, {}); + if (originalPos === pos) { + break; + } + } + + return pos; +}; + /** * @param {string} input input * @param {number} pos position @@ -788,3 +1262,344 @@ module.exports.eatWhiteLine = (input, pos) => { return pos; }; + +/** + * @param {string} input input + * @param {number} pos position + * @returns {[number, number] | undefined} positions of ident sequence + */ +module.exports.skipCommentsAndEatIdentSequence = (input, pos) => { + pos = module.exports.eatComments(input, pos); + + const start = pos; + + if ( + _ifThreeCodePointsWouldStartAnIdentSequence( + input, + pos, + input.charCodeAt(pos), + input.charCodeAt(pos + 1), + input.charCodeAt(pos + 2) + ) + ) { + return [start, _consumeAnIdentSequence(input, pos, {})]; + } + + return undefined; +}; + +/** + * @param {string} input input + * @param {number} pos position + * @returns {[number, number] | undefined} positions of ident sequence + */ +module.exports.eatString = (input, pos) => { + pos = module.exports.eatWhitespaceAndComments(input, pos); + + const start = pos; + + if ( + input.charCodeAt(pos) === CC_QUOTATION_MARK || + input.charCodeAt(pos) === CC_APOSTROPHE + ) { + return [start, consumeAStringToken(input, pos + 1, {})]; + } + + return undefined; +}; + +/** + * @param {string} input input + * @param {number} pos position + * @param {CssTokenCallbacks} cbs callbacks + * @returns {[number, number][]} positions of ident sequence + */ +module.exports.eatImageSetStrings = (input, pos, cbs) => { + /** @type {[number, number][]} */ + const result = []; + + let isFirst = true; + let needStop = false; + // We already in `func(` token + let balanced = 1; + + /** @type {CssTokenCallbacks} */ + const callbacks = { + ...cbs, + string: (_input, start, end) => { + if (isFirst && balanced === 1) { + result.push([start, end]); + isFirst = false; + } + + return end; + }, + comma: (_input, _start, end) => { + if (balanced === 1) { + isFirst = true; + } + + return end; + }, + leftParenthesis: (input, start, end) => { + balanced++; + + return end; + }, + function: (_input, start, end) => { + balanced++; + + return end; + }, + rightParenthesis: (_input, _start, end) => { + balanced--; + + if (balanced === 0) { + needStop = true; + } + + return end; + } + }; + + while (pos < input.length) { + // Consume comments. + pos = consumeComments(input, pos, callbacks); + + // Consume the next input code point. + pos++; + pos = consumeAToken(input, pos, callbacks); + + if (needStop) { + break; + } + } + + return result; +}; + +/** + * @param {string} input input + * @param {number} pos position + * @param {CssTokenCallbacks} cbs callbacks + * @returns {[[number, number, number, number] | undefined, [number, number] | undefined, [number, number] | undefined, [number, number] | undefined]} positions of top level tokens + */ +module.exports.eatImportTokens = (input, pos, cbs) => { + const result = + /** @type {[[number, number, number, number] | undefined, [number, number] | undefined, [number, number] | undefined, [number, number] | undefined]} */ + (new Array(4)); + + /** @type {0 | 1 | 2 | undefined} */ + let scope; + let needStop = false; + let balanced = 0; + + /** @type {CssTokenCallbacks} */ + const callbacks = { + ...cbs, + url: (_input, start, end, contentStart, contentEnd) => { + if ( + result[0] === undefined && + balanced === 0 && + result[1] === undefined && + result[2] === undefined && + result[3] === undefined + ) { + result[0] = [start, end, contentStart, contentEnd]; + scope = undefined; + } + + return end; + }, + string: (_input, start, end) => { + if ( + balanced === 0 && + result[0] === undefined && + result[1] === undefined && + result[2] === undefined && + result[3] === undefined + ) { + result[0] = [start, end, start + 1, end - 1]; + scope = undefined; + } else if (result[0] !== undefined && scope === 0) { + result[0][2] = start + 1; + result[0][3] = end - 1; + } + + return end; + }, + leftParenthesis: (_input, _start, end) => { + balanced++; + + return end; + }, + rightParenthesis: (_input, _start, end) => { + balanced--; + + if (balanced === 0 && scope !== undefined) { + /** @type {[number, number]} */ + (result[scope])[1] = end; + scope = undefined; + } + + return end; + }, + function: (input, start, end) => { + if (balanced === 0) { + const name = input + .slice(start, end - 1) + .replace(/\\/g, "") + .toLowerCase(); + + if ( + name === "url" && + result[0] === undefined && + result[1] === undefined && + result[2] === undefined && + result[3] === undefined + ) { + scope = 0; + result[scope] = [start, end + 1, end + 1, end + 1]; + } else if ( + name === "layer" && + result[1] === undefined && + result[2] === undefined + ) { + scope = 1; + result[scope] = [start, end]; + } else if (name === "supports" && result[2] === undefined) { + scope = 2; + result[scope] = [start, end]; + } else { + scope = undefined; + } + } + + balanced++; + + return end; + }, + identifier: (input, start, end) => { + if ( + balanced === 0 && + result[1] === undefined && + result[2] === undefined + ) { + const name = input.slice(start, end).replace(/\\/g, "").toLowerCase(); + + if (name === "layer") { + result[1] = [start, end]; + scope = undefined; + } + } + + return end; + }, + semicolon: (_input, start, end) => { + if (balanced === 0) { + needStop = true; + result[3] = [start, end]; + } + + return end; + } + }; + + while (pos < input.length) { + // Consume comments. + pos = consumeComments(input, pos, callbacks); + + // Consume the next input code point. + pos++; + pos = consumeAToken(input, pos, callbacks); + + if (needStop) { + break; + } + } + + return result; +}; + +/** + * @param {string} input input + * @param {number} pos position + * @returns {[number, number] | undefined} positions of ident sequence + */ +module.exports.eatIdentSequence = (input, pos) => { + pos = module.exports.eatWhitespaceAndComments(input, pos); + + const start = pos; + + if ( + _ifThreeCodePointsWouldStartAnIdentSequence( + input, + pos, + input.charCodeAt(pos), + input.charCodeAt(pos + 1), + input.charCodeAt(pos + 2) + ) + ) { + return [start, _consumeAnIdentSequence(input, pos, {})]; + } + + return undefined; +}; + +/** + * @param {string} input input + * @param {number} pos position + * @returns {[number, number, boolean] | undefined} positions of ident sequence or string + */ +module.exports.eatIdentSequenceOrString = (input, pos) => { + pos = module.exports.eatWhitespaceAndComments(input, pos); + + const start = pos; + + if ( + input.charCodeAt(pos) === CC_QUOTATION_MARK || + input.charCodeAt(pos) === CC_APOSTROPHE + ) { + return [start, consumeAStringToken(input, pos + 1, {}), false]; + } else if ( + _ifThreeCodePointsWouldStartAnIdentSequence( + input, + pos, + input.charCodeAt(pos), + input.charCodeAt(pos + 1), + input.charCodeAt(pos + 2) + ) + ) { + return [start, _consumeAnIdentSequence(input, pos, {}), true]; + } + + return undefined; +}; + +/** + * @param {string} chars characters + * @returns {(input: string, pos: number) => number} function to eat characters + */ +module.exports.eatUntil = chars => { + const charCodes = Array.from({ length: chars.length }, (_, i) => + chars.charCodeAt(i) + ); + const arr = Array.from( + { length: charCodes.reduce((a, b) => Math.max(a, b), 0) + 1 }, + () => false + ); + for (const cc of charCodes) { + arr[cc] = true; + } + + return (input, pos) => { + for (;;) { + const cc = input.charCodeAt(pos); + if (cc < arr.length && arr[cc]) { + return pos; + } + pos++; + if (pos === input.length) return pos; + } + }; +}; diff --git a/node_modules/webpack/lib/debug/ProfilingPlugin.js b/node_modules/webpack/lib/debug/ProfilingPlugin.js index 197f566..9f2d445 100644 --- a/node_modules/webpack/lib/debug/ProfilingPlugin.js +++ b/node_modules/webpack/lib/debug/ProfilingPlugin.js @@ -36,12 +36,12 @@ const validate = createSchemaValidation( ); /** @type {Inspector | undefined} */ -let inspector = undefined; +let inspector; try { // eslint-disable-next-line n/no-unsupported-features/node-builtins inspector = require("inspector"); -} catch (e) { +} catch (_err) { console.log("Unable to CPU profile in < node 8.0"); } @@ -92,7 +92,7 @@ class Profiler { sendCommand(method, params) { if (this.hasSession()) { return new Promise((res, rej) => { - return this.session.post(method, params, (err, params) => { + this.session.post(method, params, (err, params) => { if (err !== null) { rej(err); } else { @@ -100,9 +100,8 @@ class Profiler { } }); }); - } else { - return Promise.resolve(); } + return Promise.resolve(); } destroy() { @@ -234,19 +233,20 @@ class ProfilingPlugin { tracer.profiler.startProfiling(); // Compiler Hooks - Object.keys(compiler.hooks).forEach(hookName => { - const hook = compiler.hooks[hookName]; + for (const hookName of Object.keys(compiler.hooks)) { + const hook = + compiler.hooks[/** @type {keyof Compiler["hooks"]} */ (hookName)]; if (hook) { hook.intercept(makeInterceptorFor("Compiler", tracer)(hookName)); } - }); + } - Object.keys(compiler.resolverFactory.hooks).forEach(hookName => { + for (const hookName of Object.keys(compiler.resolverFactory.hooks)) { const hook = compiler.resolverFactory.hooks[hookName]; if (hook) { hook.intercept(makeInterceptorFor("Resolver", tracer)(hookName)); } - }); + } compiler.hooks.compilation.tap( PLUGIN_NAME, @@ -291,7 +291,9 @@ class ProfilingPlugin { cat: ["toplevel"], ts: cpuStartTime, args: { + // eslint-disable-next-line camelcase src_file: "../../ipc/ipc_moji_bootstrap.cc", + // eslint-disable-next-line camelcase src_func: "Accept" } }); @@ -339,12 +341,12 @@ class ProfilingPlugin { */ const interceptAllHooksFor = (instance, tracer, logLabel) => { if (Reflect.has(instance, "hooks")) { - Object.keys(instance.hooks).forEach(hookName => { + for (const hookName of Object.keys(instance.hooks)) { const hook = instance.hooks[hookName]; if (hook && !hook._fakeHook) { hook.intercept(makeInterceptorFor(logLabel, tracer)(hookName)); } - }); + } } }; @@ -362,13 +364,13 @@ const interceptAllParserHooks = (moduleFactory, tracer) => { WEBASSEMBLY_MODULE_TYPE_SYNC ]; - moduleTypes.forEach(moduleType => { + for (const moduleType of moduleTypes) { moduleFactory.hooks.parser .for(moduleType) .tap(PLUGIN_NAME, (parser, parserOpts) => { interceptAllHooksFor(parser, tracer, "Parser"); }); - }); + } }; /** @@ -388,6 +390,11 @@ const interceptAllJavascriptModulesPluginHooks = (compilation, tracer) => { ); }; +/** + * @param {string} instance instance + * @param {Trace} tracer tracer + * @returns {TODO} interceptor + */ const makeInterceptorFor = (instance, tracer) => hookName => ({ register: tapInfo => { const { name, type, fn } = tapInfo; @@ -400,10 +407,7 @@ const makeInterceptorFor = (instance, tracer) => hookName => ({ type, fn }); - return { - ...tapInfo, - fn: newFn - }; + return { ...tapInfo, fn: newFn }; } }); @@ -476,13 +480,13 @@ const makeNewProfiledTapFn = (hookName, tracer, { name, type, fn }) => { let r; try { r = fn(...args); - } catch (error) { + } catch (err) { tracer.trace.end({ name, id, cat: defaultCategory }); - throw error; + throw err; } tracer.trace.end({ name, diff --git a/node_modules/webpack/lib/dependencies/AMDDefineDependency.js b/node_modules/webpack/lib/dependencies/AMDDefineDependency.js index 9f58ad0..4acb152 100644 --- a/node_modules/webpack/lib/dependencies/AMDDefineDependency.js +++ b/node_modules/webpack/lib/dependencies/AMDDefineDependency.js @@ -111,7 +111,7 @@ class AMDDefineDependency extends NullDependency { * @param {Range | null} arrayRange array range * @param {Range | null} functionRange function range * @param {Range | null} objectRange object range - * @param {boolean | null} namedModule true, when define is called with a name + * @param {string | null} namedModule true, when define is called with a name */ constructor(range, arrayRange, functionRange, objectRange, namedModule) { super(); diff --git a/node_modules/webpack/lib/dependencies/AMDDefineDependencyParserPlugin.js b/node_modules/webpack/lib/dependencies/AMDDefineDependencyParserPlugin.js index 3e193fd..14fbe4a 100644 --- a/node_modules/webpack/lib/dependencies/AMDDefineDependencyParserPlugin.js +++ b/node_modules/webpack/lib/dependencies/AMDDefineDependencyParserPlugin.js @@ -20,7 +20,11 @@ const { addLocalModule, getLocalModule } = require("./LocalModulesHelpers"); /** @typedef {import("estree").CallExpression} CallExpression */ /** @typedef {import("estree").Expression} Expression */ /** @typedef {import("estree").FunctionExpression} FunctionExpression */ +/** @typedef {import("estree").Identifier} Identifier */ /** @typedef {import("estree").Literal} Literal */ +/** @typedef {import("estree").MemberExpression} MemberExpression */ +/** @typedef {import("estree").ObjectExpression} ObjectExpression */ +/** @typedef {import("estree").SimpleCallExpression} SimpleCallExpression */ /** @typedef {import("estree").SpreadElement} SpreadElement */ /** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */ /** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */ @@ -30,7 +34,7 @@ const { addLocalModule, getLocalModule } = require("./LocalModulesHelpers"); /** * @param {Expression | SpreadElement} expr expression - * @returns {boolean} true if it's a bound function expression + * @returns {expr is CallExpression} true if it's a bound function expression */ const isBoundFunctionExpression = expr => { if (expr.type !== "CallExpression") return false; @@ -46,7 +50,7 @@ const isBoundFunctionExpression = expr => { /** * @param {Expression | SpreadElement} expr expression - * @returns {boolean} true when unbound function expression + * @returns {expr is FunctionExpression | ArrowFunctionExpression} true when unbound function expression */ const isUnboundFunctionExpression = expr => { if (expr.type === "FunctionExpression") return true; @@ -56,7 +60,7 @@ const isUnboundFunctionExpression = expr => { /** * @param {Expression | SpreadElement} expr expression - * @returns {boolean} true when callable + * @returns {expr is FunctionExpression | ArrowFunctionExpression | CallExpression} true when callable */ const isCallable = expr => { if (isUnboundFunctionExpression(expr)) return true; @@ -95,26 +99,28 @@ class AMDDefineDependencyParserPlugin { */ processArray(parser, expr, param, identifiers, namedModule) { if (param.isArray()) { - /** @type {BasicEvaluatedExpression[]} */ - (param.items).forEach((param, idx) => { + const items = /** @type {BasicEvaluatedExpression[]} */ (param.items); + for (const [idx, item] of items.entries()) { if ( - param.isString() && + item.isString() && ["require", "module", "exports"].includes( - /** @type {string} */ (param.string) + /** @type {string} */ (item.string) ) ) - identifiers[/** @type {number} */ (idx)] = param.string; - const result = this.processItem(parser, expr, param, namedModule); + identifiers[/** @type {number} */ (idx)] = /** @type {string} */ ( + item.string + ); + const result = this.processItem(parser, expr, item, namedModule); if (result === undefined) { - this.processContext(parser, expr, param); + this.processContext(parser, expr, item); } - }); + } return true; } else if (param.isConstArray()) { /** @type {(string | LocalModuleDependency | AMDRequireItemDependency)[]} */ const deps = []; - /** @type {string[]} */ - (param.array).forEach((request, idx) => { + const array = /** @type {string[]} */ (param.array); + for (const [idx, request] of array.entries()) { let dep; let localModule; if (request === "require") { @@ -131,17 +137,17 @@ class AMDDefineDependencyParserPlugin { } else { dep = this.newRequireItemDependency(request); dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.current.addDependency(dep); } deps.push(dep); - }); + } const dep = this.newRequireArrayDependency( deps, /** @type {Range} */ (param.range) ); dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.module.addPresentationalDependency(dep); return true; } @@ -156,16 +162,19 @@ class AMDDefineDependencyParserPlugin { */ processItem(parser, expr, param, namedModule) { if (param.isConditional()) { - /** @type {BasicEvaluatedExpression[]} */ - (param.options).forEach(param => { - const result = this.processItem(parser, expr, param); + const options = /** @type {BasicEvaluatedExpression[]} */ (param.options); + for (const item of options) { + const result = this.processItem(parser, expr, item); if (result === undefined) { - this.processContext(parser, expr, param); + this.processContext(parser, expr, item); } - }); + } + return true; } else if (param.isString()) { - let dep, localModule; + let dep; + let localModule; + if (param.string === "require") { dep = new ConstDependency( RuntimeGlobals.require, @@ -198,7 +207,7 @@ class AMDDefineDependencyParserPlugin { /** @type {string} */ (param.string), param.range ); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.current.addDependency(dep); return true; } @@ -228,7 +237,7 @@ class AMDDefineDependencyParserPlugin { ); if (!dep) return; dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.current.addDependency(dep); return true; } @@ -239,7 +248,14 @@ class AMDDefineDependencyParserPlugin { * @returns {boolean | undefined} result */ processCallDefine(parser, expr) { - let array, fn, obj, namedModule; + /** @type {TODO} */ + let array; + /** @type {FunctionExpression | ArrowFunctionExpression | CallExpression | Identifier | undefined} */ + let fn; + /** @type {ObjectExpression | Identifier | undefined} */ + let obj; + /** @type {string | undefined} */ + let namedModule; switch (expr.arguments.length) { case 1: if (isCallable(expr.arguments[0])) { @@ -251,12 +267,12 @@ class AMDDefineDependencyParserPlugin { } else { // define(expr) // unclear if function or object - obj = fn = expr.arguments[0]; + obj = fn = /** @type {Identifier} */ (expr.arguments[0]); } break; case 2: if (expr.arguments[0].type === "Literal") { - namedModule = expr.arguments[0].value; + namedModule = /** @type {string} */ (expr.arguments[0].value); // define("…", …) if (isCallable(expr.arguments[1])) { // define("…", f() {…}) @@ -267,7 +283,7 @@ class AMDDefineDependencyParserPlugin { } else { // define("…", expr) // unclear if function or object - obj = fn = expr.arguments[1]; + obj = fn = /** @type {Identifier} */ (expr.arguments[1]); } } else { array = expr.arguments[0]; @@ -280,13 +296,18 @@ class AMDDefineDependencyParserPlugin { } else { // define([…], expr) // unclear if function or object - obj = fn = expr.arguments[1]; + obj = fn = /** @type {Identifier} */ (expr.arguments[1]); } } break; case 3: // define("…", […], f() {…}) - namedModule = /** @type {TODO} */ (expr).arguments[0].value; + namedModule = + /** @type {string} */ + ( + /** @type {Literal} */ + (expr.arguments[0]).value + ); array = expr.arguments[1]; if (isCallable(expr.arguments[2])) { // define("…", […], f() {}) @@ -297,27 +318,36 @@ class AMDDefineDependencyParserPlugin { } else { // define("…", […], expr) // unclear if function or object - obj = fn = expr.arguments[2]; + obj = fn = /** @type {Identifier} */ (expr.arguments[2]); } break; default: return; } DynamicExports.bailout(parser.state); + /** @type {Identifier[] | null} */ let fnParams = null; let fnParamsOffset = 0; if (fn) { if (isUnboundFunctionExpression(fn)) { - fnParams = /** @type {UnboundFunctionExpression} */ (fn).params; + fnParams = + /** @type {Identifier[]} */ + (fn.params); } else if (isBoundFunctionExpression(fn)) { - fnParams = /** @type {TODO} */ (fn).callee.object.params; - fnParamsOffset = /** @type {TODO} */ (fn).arguments.length - 1; + const object = + /** @type {FunctionExpression} */ + (/** @type {MemberExpression} */ (fn.callee).object); + + fnParams = + /** @type {Identifier[]} */ + (object.params); + fnParamsOffset = fn.arguments.length - 1; if (fnParamsOffset < 0) { fnParamsOffset = 0; } } } - let fnRenames = new Map(); + const fnRenames = new Map(); if (array) { /** @type {Record} */ const identifiers = {}; @@ -372,9 +402,14 @@ class AMDDefineDependencyParserPlugin { }); } else if (fn && isBoundFunctionExpression(fn)) { inTry = parser.scope.inTry; + + const object = + /** @type {FunctionExpression} */ + (/** @type {MemberExpression} */ (fn.callee).object); + parser.inScope( - /** @type {TODO} */ - (fn).callee.object.params.filter( + /** @type {Identifier[]} */ + (object.params).filter( i => !["require", "module", "exports"].includes(i.name) ), () => { @@ -382,19 +417,20 @@ class AMDDefineDependencyParserPlugin { parser.setVariable(name, varInfo); } parser.scope.inTry = /** @type {boolean} */ (inTry); - if (fn.callee.object.body.type === "BlockStatement") { - parser.detectMode(fn.callee.object.body.body); + + if (object.body.type === "BlockStatement") { + parser.detectMode(object.body.body); const prev = parser.prevStatement; - parser.preWalkStatement(fn.callee.object.body); + parser.preWalkStatement(object.body); parser.prevStatement = prev; - parser.walkStatement(fn.callee.object.body); + parser.walkStatement(object.body); } else { - parser.walkExpression(fn.callee.object.body); + parser.walkExpression(object.body); } } ); - if (/** @type {TODO} */ (fn).arguments) { - parser.walkExpressions(/** @type {TODO} */ (fn).arguments); + if (fn.arguments) { + parser.walkExpressions(fn.arguments); } } else if (fn || obj) { parser.walkExpression(fn || obj); @@ -405,7 +441,7 @@ class AMDDefineDependencyParserPlugin { array ? /** @type {Range} */ (array.range) : null, fn ? /** @type {Range} */ (fn.range) : null, obj ? /** @type {Range} */ (obj.range) : null, - namedModule ? namedModule : null + namedModule || null ); dep.loc = /** @type {DependencyLocation} */ (expr.loc); if (namedModule) { @@ -420,7 +456,7 @@ class AMDDefineDependencyParserPlugin { * @param {Range | null} arrayRange array range * @param {Range | null} functionRange function range * @param {Range | null} objectRange object range - * @param {boolean | null} namedModule true, when define is called with a name + * @param {string | null} namedModule true, when define is called with a name * @returns {AMDDefineDependency} AMDDefineDependency */ newDefineDependency( @@ -440,7 +476,7 @@ class AMDDefineDependencyParserPlugin { } /** - * @param {TODO[]} depsArray deps array + * @param {(string | LocalModuleDependency | AMDRequireItemDependency)[]} depsArray deps array * @param {Range} range range * @returns {AMDRequireArrayDependency} AMDRequireArrayDependency */ diff --git a/node_modules/webpack/lib/dependencies/AMDRequireArrayDependency.js b/node_modules/webpack/lib/dependencies/AMDRequireArrayDependency.js index d37966b..a182f6c 100644 --- a/node_modules/webpack/lib/dependencies/AMDRequireArrayDependency.js +++ b/node_modules/webpack/lib/dependencies/AMDRequireArrayDependency.js @@ -89,9 +89,9 @@ AMDRequireArrayDependency.Template = class AMDRequireArrayDependencyTemplate ext * @returns {string} content */ getContent(dep, templateContext) { - const requires = dep.depsArray.map(dependency => { - return this.contentForDependency(dependency, templateContext); - }); + const requires = dep.depsArray.map(dependency => + this.contentForDependency(dependency, templateContext) + ); return `[${requires.join(", ")}]`; } @@ -110,14 +110,13 @@ AMDRequireArrayDependency.Template = class AMDRequireArrayDependencyTemplate ext if (dep.localModule) { return dep.localModule.variableName(); - } else { - return runtimeTemplate.moduleExports({ - module: moduleGraph.getModule(dep), - chunkGraph, - request: dep.request, - runtimeRequirements - }); } + return runtimeTemplate.moduleExports({ + module: moduleGraph.getModule(dep), + chunkGraph, + request: dep.request, + runtimeRequirements + }); } }; diff --git a/node_modules/webpack/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js b/node_modules/webpack/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js index 1ac2215..803ce39 100644 --- a/node_modules/webpack/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +++ b/node_modules/webpack/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js @@ -49,11 +49,12 @@ class AMDRequireDependenciesBlockParserPlugin { const fnData = getFunctionExpression(expression); if (fnData) { parser.inScope( - fnData.fn.params.filter(i => { - return !["require", "module", "exports"].includes( - /** @type {Identifier} */ (i).name - ); - }), + fnData.fn.params.filter( + i => + !["require", "module", "exports"].includes( + /** @type {Identifier} */ (i).name + ) + ), () => { if (fnData.fn.body.type === "BlockStatement") { parser.walkStatement(fnData.fn.body); @@ -104,7 +105,8 @@ class AMDRequireDependenciesBlockParserPlugin { /** @type {(string | LocalModuleDependency | AMDRequireItemDependency)[]} */ const deps = []; for (const request of /** @type {any[]} */ (param.array)) { - let dep, localModule; + let dep; + let localModule; if (request === "require") { dep = RuntimeGlobals.require; } else if (["exports", "module"].includes(request)) { @@ -117,7 +119,7 @@ class AMDRequireDependenciesBlockParserPlugin { } else { dep = this.newRequireItemDependency(request); dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.current.addDependency(dep); } deps.push(dep); @@ -127,7 +129,7 @@ class AMDRequireDependenciesBlockParserPlugin { /** @type {Range} */ (param.range) ); dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.module.addPresentationalDependency(dep); return true; } @@ -151,7 +153,8 @@ class AMDRequireDependenciesBlockParserPlugin { } return true; } else if (param.isString()) { - let dep, localModule; + let dep; + let localModule; if (param.string === "require") { dep = new ConstDependency( RuntimeGlobals.require, @@ -186,7 +189,7 @@ class AMDRequireDependenciesBlockParserPlugin { param.range ); dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.current.addDependency(dep); return true; } @@ -216,7 +219,7 @@ class AMDRequireDependenciesBlockParserPlugin { ); if (!dep) return; dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.current.addDependency(dep); return true; } @@ -269,10 +272,12 @@ class AMDRequireDependenciesBlockParserPlugin { const old = parser.state.current; if (expr.arguments.length >= 1) { - param = parser.evaluateExpression(expr.arguments[0]); + param = parser.evaluateExpression( + /** @type {Expression} */ (expr.arguments[0]) + ); depBlock = this.newRequireDependenciesBlock( /** @type {DependencyLocation} */ (expr.loc), - /** @type {string} */ (this.processArrayForRequestString(param)) + this.processArrayForRequestString(param) ); dep = this.newRequireDependency( /** @type {Range} */ (expr.range), @@ -324,8 +329,9 @@ class AMDRequireDependenciesBlockParserPlugin { if (parser.state.module) { parser.state.module.addError( new UnsupportedFeatureWarning( - "Cannot statically analyse 'require(…, …)' in line " + - /** @type {SourceLocation} */ (expr.loc).start.line, + `Cannot statically analyse 'require(…, …)' in line ${ + /** @type {SourceLocation} */ (expr.loc).start.line + }`, /** @type {DependencyLocation} */ (expr.loc) ) ); @@ -355,7 +361,7 @@ class AMDRequireDependenciesBlockParserPlugin { /** * @param {DependencyLocation} loc location - * @param {string} request request + * @param {string=} request request * @returns {AMDRequireDependenciesBlock} AMDRequireDependenciesBlock */ newRequireDependenciesBlock(loc, request) { diff --git a/node_modules/webpack/lib/dependencies/AMDRuntimeModules.js b/node_modules/webpack/lib/dependencies/AMDRuntimeModules.js index c82f2ed..cec00bb 100644 --- a/node_modules/webpack/lib/dependencies/AMDRuntimeModules.js +++ b/node_modules/webpack/lib/dependencies/AMDRuntimeModules.js @@ -44,5 +44,5 @@ class AMDOptionsRuntimeModule extends RuntimeModule { } } -exports.AMDDefineRuntimeModule = AMDDefineRuntimeModule; -exports.AMDOptionsRuntimeModule = AMDOptionsRuntimeModule; +module.exports.AMDDefineRuntimeModule = AMDDefineRuntimeModule; +module.exports.AMDOptionsRuntimeModule = AMDOptionsRuntimeModule; diff --git a/node_modules/webpack/lib/dependencies/CommonJsDependencyHelpers.js b/node_modules/webpack/lib/dependencies/CommonJsDependencyHelpers.js index 4eed82c..0cd457e 100644 --- a/node_modules/webpack/lib/dependencies/CommonJsDependencyHelpers.js +++ b/node_modules/webpack/lib/dependencies/CommonJsDependencyHelpers.js @@ -17,8 +17,12 @@ const RuntimeGlobals = require("../RuntimeGlobals"); * @param {RuntimeRequirements} runtimeRequirements runtime requirements * @returns {[string, string]} type and base */ -exports.handleDependencyBase = (depBase, module, runtimeRequirements) => { - let base = undefined; +module.exports.handleDependencyBase = ( + depBase, + module, + runtimeRequirements +) => { + let base; let type; switch (depBase) { case "exports": diff --git a/node_modules/webpack/lib/dependencies/CommonJsExportRequireDependency.js b/node_modules/webpack/lib/dependencies/CommonJsExportRequireDependency.js index b1f3f93..d4f7a73 100644 --- a/node_modules/webpack/lib/dependencies/CommonJsExportRequireDependency.js +++ b/node_modules/webpack/lib/dependencies/CommonJsExportRequireDependency.js @@ -96,14 +96,13 @@ class CommonJsExportRequireDependency extends ModuleDependency { const getFullResult = () => { if (ids.length === 0) { return Dependency.EXPORTS_OBJECT_REFERENCED; - } else { - return [ - { - name: ids, - canMangle: false - } - ]; } + return [ + { + name: ids, + canMangle: false + } + ]; }; if (this.resultUsed) return getFullResult(); /** @type {ExportsInfo | undefined} */ @@ -146,8 +145,8 @@ class CommonJsExportRequireDependency extends ModuleDependency { * @returns {ExportsSpec | undefined} export names */ getExports(moduleGraph) { - const ids = this.getIds(moduleGraph); if (this.names.length === 1) { + const ids = this.getIds(moduleGraph); const name = this.names[0]; const from = moduleGraph.getConnection(this); if (!from) return; @@ -179,39 +178,36 @@ class CommonJsExportRequireDependency extends ModuleDependency { ], dependencies: undefined }; - } else { - const from = moduleGraph.getConnection(this); - if (!from) return; - const reexportInfo = this.getStarReexports( - moduleGraph, - undefined, - from.module - ); - if (reexportInfo) { - return { - exports: Array.from( - /** @type {TODO} */ (reexportInfo).exports, - name => { - return { - name, - from, - export: ids.concat(name), - canMangle: !(name in EMPTY_OBJECT) && false - }; - } - ), - // TODO handle deep reexports - dependencies: [from.module] - }; - } else { - return { - exports: true, - from: ids.length === 0 ? from : undefined, - canMangle: false, - dependencies: [from.module] - }; - } } + const from = moduleGraph.getConnection(this); + if (!from) return; + const reexportInfo = this.getStarReexports( + moduleGraph, + undefined, + from.module + ); + const ids = this.getIds(moduleGraph); + if (reexportInfo) { + return { + exports: Array.from( + /** @type {TODO} */ (reexportInfo).exports, + name => ({ + name, + from, + export: ids.concat(name), + canMangle: !(name in EMPTY_OBJECT) && false + }) + ), + // TODO handle deep reexports + dependencies: [from.module] + }; + } + return { + exports: true, + from: ids.length === 0 ? from : undefined, + canMangle: false, + dependencies: [from.module] + }; } /** @@ -382,7 +378,7 @@ CommonJsExportRequireDependency.Template = class CommonJsExportRequireDependency if (usedImported) { const comment = equals(usedImported, ids) ? "" - : Template.toNormalComment(propertyAccess(ids)) + " "; + : `${Template.toNormalComment(propertyAccess(ids))} `; requireExpr += `${comment}${propertyAccess(usedImported)}`; } } diff --git a/node_modules/webpack/lib/dependencies/CommonJsExportsDependency.js b/node_modules/webpack/lib/dependencies/CommonJsExportsDependency.js index 9d466c5..93c831b 100644 --- a/node_modules/webpack/lib/dependencies/CommonJsExportsDependency.js +++ b/node_modules/webpack/lib/dependencies/CommonJsExportsDependency.js @@ -176,7 +176,6 @@ CommonJsExportsDependency.Template = class CommonJsExportsDependencyTemplate ext dep.range[1] - 1, "))" ); - return; } } }; diff --git a/node_modules/webpack/lib/dependencies/CommonJsExportsParserPlugin.js b/node_modules/webpack/lib/dependencies/CommonJsExportsParserPlugin.js index 1e6e6df..a37e052 100644 --- a/node_modules/webpack/lib/dependencies/CommonJsExportsParserPlugin.js +++ b/node_modules/webpack/lib/dependencies/CommonJsExportsParserPlugin.js @@ -26,6 +26,7 @@ const ModuleDecoratorDependency = require("./ModuleDecoratorDependency"); /** @typedef {import("../javascript/BasicEvaluatedExpression")} BasicEvaluatedExpression */ /** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */ /** @typedef {import("../javascript/JavascriptParser").Range} Range */ +/** @typedef {import("../javascript/JavascriptParser").StatementPath} StatementPath */ /** @typedef {import("./CommonJsDependencyHelpers").CommonJSDependencyBaseKeywords} CommonJSDependencyBaseKeywords */ /** @@ -43,7 +44,6 @@ const ModuleDecoratorDependency = require("./ModuleDecoratorDependency"); * exports.foo = void 0; * exports.foo = "bar"; * ``` - * * @param {TODO} expr expression * @returns {Expression | undefined} returns the value of property descriptor */ @@ -61,15 +61,13 @@ const getValueOfPropertyDescription = expr => { * The purpose of this function is to check whether an expression is a truthy literal or not. This is * useful when parsing CommonJS exports, because CommonJS modules can export any value, including falsy * values like `null` and `false`. However, exports should only be created if the exported value is truthy. - * * @param {Expression} expr expression being checked * @returns {boolean} true, when the expression is a truthy literal - * */ const isTruthyLiteral = expr => { switch (expr.type) { case "Literal": - return !!expr.value; + return Boolean(expr.value); case "UnaryExpression": if (expr.operator === "!") return isFalsyLiteral(expr.argument); } @@ -80,7 +78,6 @@ const isTruthyLiteral = expr => { * The purpose of this function is to check whether an expression is a falsy literal or not. This is * useful when parsing CommonJS exports, because CommonJS modules can export any value, including falsy * values like `null` and `false`. However, exports should only be created if the exported value is truthy. - * * @param {Expression} expr expression being checked * @returns {boolean} true, when the expression is a falsy literal */ @@ -215,7 +212,7 @@ class CommonJsExportsParserPlugin { !parser.isStatementLevelExpression(expr) ); dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.module.addDependency(dep); return true; } @@ -223,7 +220,8 @@ class CommonJsExportsParserPlugin { enableStructuredExports(); const remainingMembers = members; checkNamespace( - parser.statementPath.length === 1 && + /** @type {StatementPath} */ + (parser.statementPath).length === 1 && parser.isStatementLevelExpression(expr), remainingMembers, expr.right @@ -241,9 +239,9 @@ class CommonJsExportsParserPlugin { }; parser.hooks.assignMemberChain .for("exports") - .tap("CommonJsExportsParserPlugin", (expr, members) => { - return handleAssignExport(expr, "exports", members); - }); + .tap("CommonJsExportsParserPlugin", (expr, members) => + handleAssignExport(expr, "exports", members) + ); parser.hooks.assignMemberChain .for("this") .tap("CommonJsExportsParserPlugin", (expr, members) => { @@ -280,7 +278,8 @@ class CommonJsExportsParserPlugin { enableStructuredExports(); const descArg = expr.arguments[2]; checkNamespace( - parser.statementPath.length === 1, + /** @type {StatementPath} */ + (parser.statementPath).length === 1, [property], getValueOfPropertyDescription(descArg) ); @@ -306,7 +305,7 @@ class CommonJsExportsParserPlugin { * @param {CallExpression=} call call expression * @returns {boolean | void} true, when the expression was handled */ - const handleAccessExport = (expr, base, members, call = undefined) => { + const handleAccessExport = (expr, base, members, call) => { if (HarmonyExports.isEnabled(parser.state)) return; if (members.length === 0) { bailout( @@ -328,7 +327,7 @@ class CommonJsExportsParserPlugin { /** @type {Range} */ (expr.range), base, members, - !!call + Boolean(call) ); dep.loc = /** @type {DependencyLocation} */ (expr.loc); parser.state.module.addDependency(dep); @@ -339,19 +338,19 @@ class CommonJsExportsParserPlugin { }; parser.hooks.callMemberChain .for("exports") - .tap("CommonJsExportsParserPlugin", (expr, members) => { - return handleAccessExport(expr.callee, "exports", members, expr); - }); + .tap("CommonJsExportsParserPlugin", (expr, members) => + handleAccessExport(expr.callee, "exports", members, expr) + ); parser.hooks.expressionMemberChain .for("exports") - .tap("CommonJsExportsParserPlugin", (expr, members) => { - return handleAccessExport(expr, "exports", members); - }); + .tap("CommonJsExportsParserPlugin", (expr, members) => + handleAccessExport(expr, "exports", members) + ); parser.hooks.expression .for("exports") - .tap("CommonJsExportsParserPlugin", expr => { - return handleAccessExport(expr, "exports", []); - }); + .tap("CommonJsExportsParserPlugin", expr => + handleAccessExport(expr, "exports", []) + ); parser.hooks.callMemberChain .for("module") .tap("CommonJsExportsParserPlugin", (expr, members) => { @@ -371,9 +370,9 @@ class CommonJsExportsParserPlugin { }); parser.hooks.expression .for("module.exports") - .tap("CommonJsExportsParserPlugin", expr => { - return handleAccessExport(expr, "module.exports", []); - }); + .tap("CommonJsExportsParserPlugin", expr => + handleAccessExport(expr, "module.exports", []) + ); parser.hooks.callMemberChain .for("this") .tap("CommonJsExportsParserPlugin", (expr, members) => { diff --git a/node_modules/webpack/lib/dependencies/CommonJsFullRequireDependency.js b/node_modules/webpack/lib/dependencies/CommonJsFullRequireDependency.js index 74f6c42..1164eee 100644 --- a/node_modules/webpack/lib/dependencies/CommonJsFullRequireDependency.js +++ b/node_modules/webpack/lib/dependencies/CommonJsFullRequireDependency.js @@ -146,7 +146,7 @@ CommonJsFullRequireDependency.Template = class CommonJsFullRequireDependencyTemp if (usedImported) { const comment = equals(usedImported, trimmedIds) ? "" - : Template.toNormalComment(propertyAccess(trimmedIds)) + " "; + : `${Template.toNormalComment(propertyAccess(trimmedIds))} `; const access = `${comment}${propertyAccess(usedImported)}`; requireExpr = dep.asiSafe === true diff --git a/node_modules/webpack/lib/dependencies/CommonJsImportsParserPlugin.js b/node_modules/webpack/lib/dependencies/CommonJsImportsParserPlugin.js index cd01e40..15e87b9 100644 --- a/node_modules/webpack/lib/dependencies/CommonJsImportsParserPlugin.js +++ b/node_modules/webpack/lib/dependencies/CommonJsImportsParserPlugin.js @@ -63,7 +63,7 @@ class CommonJsImportsParserPlugin { } }; - //#region metadata + // #region metadata /** * @param {string} expression expression * @param {() => string[]} getMembers get members @@ -102,7 +102,7 @@ class CommonJsImportsParserPlugin { tapRequireExpression("require", () => []); tapRequireExpression("require.resolve", () => ["resolve"]); tapRequireExpression("require.resolveWeak", () => ["resolveWeak"]); - //#endregion + // #endregion // Weird stuff // parser.hooks.assign @@ -115,7 +115,7 @@ class CommonJsImportsParserPlugin { return true; }); - //#region Unsupported + // #region Unsupported parser.hooks.expression .for("require.main") .tap( @@ -152,9 +152,9 @@ class CommonJsImportsParserPlugin { "module.parent.require is not supported by webpack." ) ); - //#endregion + // #endregion - //#region Renaming + // #region Renaming /** * @param {Expression} expr expression * @returns {boolean} true when set undefined @@ -175,9 +175,9 @@ class CommonJsImportsParserPlugin { parser.hooks.rename .for("require") .tap("CommonJsImportsParserPlugin", defineUndefined); - //#endregion + // #endregion - //#region Inspection + // #region Inspection const requireCache = toConstantDependency( parser, RuntimeGlobals.moduleCache, @@ -191,9 +191,9 @@ class CommonJsImportsParserPlugin { parser.hooks.expression .for("require.cache") .tap("CommonJsImportsParserPlugin", requireCache); - //#endregion + // #endregion - //#region Require as expression + // #region Require as expression /** * @param {Expression} expr expression * @returns {boolean} true when handled @@ -215,16 +215,16 @@ class CommonJsImportsParserPlugin { options.unknownContextCritical && "require function is used in a way in which dependencies cannot be statically extracted"; dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.current.addDependency(dep); return true; }; parser.hooks.expression .for("require") .tap("CommonJsImportsParserPlugin", requireAsExpressionHandler); - //#endregion + // #endregion - //#region Require + // #region Require /** * @param {CallExpression | NewExpression} expr expression * @param {BasicEvaluatedExpression} param param @@ -238,7 +238,7 @@ class CommonJsImportsParserPlugin { getContext() ); dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.current.addDependency(dep); return true; } @@ -264,7 +264,7 @@ class CommonJsImportsParserPlugin { ); if (!dep) return; dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.current.addDependency(dep); return true; }; @@ -283,26 +283,22 @@ class CommonJsImportsParserPlugin { parser.state.module.addWarning( new CommentCompilationWarning( `Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`, - comment.loc + /** @type {DependencyLocation} */ (comment.loc) ) ); } } - if (requireOptions) { - if (requireOptions.webpackIgnore !== undefined) { - if (typeof requireOptions.webpackIgnore !== "boolean") { - parser.state.module.addWarning( - new UnsupportedFeatureWarning( - `\`webpackIgnore\` expected a boolean, but received: ${requireOptions.webpackIgnore}.`, - /** @type {DependencyLocation} */ (expr.loc) - ) - ); - } else { - // Do not instrument `require()` if `webpackIgnore` is `true` - if (requireOptions.webpackIgnore) { - return true; - } - } + if (requireOptions && requireOptions.webpackIgnore !== undefined) { + if (typeof requireOptions.webpackIgnore !== "boolean") { + parser.state.module.addWarning( + new UnsupportedFeatureWarning( + `\`webpackIgnore\` expected a boolean, but received: ${requireOptions.webpackIgnore}.`, + /** @type {DependencyLocation} */ (expr.loc) + ) + ); + } else if (requireOptions.webpackIgnore) { + // Do not instrument `require()` if `webpackIgnore` is `true` + return true; } } } @@ -370,9 +366,9 @@ class CommonJsImportsParserPlugin { parser.hooks.new .for("module.require") .tap("CommonJsImportsParserPlugin", createRequireHandler(true)); - //#endregion + // #endregion - //#region Require with property access + // #region Require with property access /** * @param {Expression} expr expression * @param {string[]} calleeMembers callee members @@ -403,7 +399,7 @@ class CommonJsImportsParserPlugin { dep.asiSafe = !parser.isAsiPosition( /** @type {Range} */ (expr.range)[0] ); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); dep.loc = /** @type {DependencyLocation} */ (expr.loc); parser.state.current.addDependency(dep); return true; @@ -440,7 +436,7 @@ class CommonJsImportsParserPlugin { dep.asiSafe = !parser.isAsiPosition( /** @type {Range} */ (expr.range)[0] ); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); dep.loc = /** @type {DependencyLocation} */ (expr.callee.loc); parser.state.current.addDependency(dep); parser.walkExpressions(expr.arguments); @@ -459,9 +455,9 @@ class CommonJsImportsParserPlugin { parser.hooks.callMemberChainOfCallMemberChain .for("module.require") .tap("CommonJsImportsParserPlugin", callChainHandler); - //#endregion + // #endregion - //#region Require.resolve + // #region Require.resolve /** * @param {CallExpression} expr call expression * @param {boolean} weak weak @@ -485,18 +481,17 @@ class CommonJsImportsParserPlugin { dep.loc = /** @type {DependencyLocation} */ (expr.loc); parser.state.module.addPresentationalDependency(dep); return true; - } else { - const result = processResolveItem(expr, param, weak); - if (result === undefined) { - processResolveContext(expr, param, weak); - } - const dep = new RequireResolveHeaderDependency( - /** @type {Range} */ (expr.callee.range) - ); - dep.loc = /** @type {DependencyLocation} */ (expr.loc); - parser.state.module.addPresentationalDependency(dep); - return true; } + const result = processResolveItem(expr, param, weak); + if (result === undefined) { + processResolveContext(expr, param, weak); + } + const dep = new RequireResolveHeaderDependency( + /** @type {Range} */ (expr.callee.range) + ); + dep.loc = /** @type {DependencyLocation} */ (expr.loc); + parser.state.module.addPresentationalDependency(dep); + return true; }; /** * @param {CallExpression} expr call expression @@ -512,7 +507,7 @@ class CommonJsImportsParserPlugin { getContext() ); dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); dep.weak = weak; parser.state.current.addDependency(dep); return true; @@ -540,24 +535,20 @@ class CommonJsImportsParserPlugin { ); if (!dep) return; dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.current.addDependency(dep); return true; }; parser.hooks.call .for("require.resolve") - .tap("CommonJsImportsParserPlugin", expr => { - return processResolve(expr, false); - }); + .tap("CommonJsImportsParserPlugin", expr => processResolve(expr, false)); parser.hooks.call .for("require.resolveWeak") - .tap("CommonJsImportsParserPlugin", expr => { - return processResolve(expr, true); - }); - //#endregion + .tap("CommonJsImportsParserPlugin", expr => processResolve(expr, true)); + // #endregion - //#region Create require + // #region Create require if (!options.createRequire) return; @@ -599,23 +590,20 @@ class CommonJsImportsParserPlugin { data: { context }, next: undefined }); + return new BasicEvaluatedExpression() - .setIdentifier( - /** @type {TODO} */ (ident), - /** @type {TODO} */ (ident), - () => [] - ) + .setIdentifier(ident, ident, () => []) .setSideEffects(false) .setRange(/** @type {Range} */ (expr.range)); }); parser.hooks.unhandledExpressionMemberChain .for(createdRequireIdentifierTag) - .tap("CommonJsImportsParserPlugin", (expr, members) => { - return expressionIsUnsupported( + .tap("CommonJsImportsParserPlugin", (expr, members) => + expressionIsUnsupported( parser, `createRequire().${members.join(".")} is not supported by webpack.` - )(expr); - }); + )(expr) + ); parser.hooks.canRename .for(createdRequireIdentifierTag) .tap("CommonJsImportsParserPlugin", () => true); @@ -789,7 +777,7 @@ class CommonJsImportsParserPlugin { parser.state.module.addPresentationalDependency(clearDep); return true; }); - //#endregion + // #endregion } } module.exports = CommonJsImportsParserPlugin; diff --git a/node_modules/webpack/lib/dependencies/CommonJsSelfReferenceDependency.js b/node_modules/webpack/lib/dependencies/CommonJsSelfReferenceDependency.js index 2aef8ce..b1b368e 100644 --- a/node_modules/webpack/lib/dependencies/CommonJsSelfReferenceDependency.js +++ b/node_modules/webpack/lib/dependencies/CommonJsSelfReferenceDependency.js @@ -50,7 +50,7 @@ class CommonJsSelfReferenceDependency extends NullDependency { * @returns {string | null} an identifier to merge equal requests */ getResourceIdentifier() { - return `self`; + return "self"; } /** @@ -108,19 +108,17 @@ CommonJsSelfReferenceDependency.Template = class CommonJsSelfReferenceDependency { module, moduleGraph, runtime, runtimeRequirements } ) { const dep = /** @type {CommonJsSelfReferenceDependency} */ (dependency); - let used; - if (dep.names.length === 0) { - used = dep.names; - } else { - used = moduleGraph.getExportsInfo(module).getUsedName(dep.names, runtime); - } + const used = + dep.names.length === 0 + ? dep.names + : moduleGraph.getExportsInfo(module).getUsedName(dep.names, runtime); if (!used) { throw new Error( "Self-reference dependency has unused export name: This should not happen" ); } - let base = undefined; + let base; switch (dep.base) { case "exports": runtimeRequirements.add(RuntimeGlobals.exports); diff --git a/node_modules/webpack/lib/dependencies/ConstDependency.js b/node_modules/webpack/lib/dependencies/ConstDependency.js index d1996ac..e41acef 100644 --- a/node_modules/webpack/lib/dependencies/ConstDependency.js +++ b/node_modules/webpack/lib/dependencies/ConstDependency.js @@ -44,7 +44,7 @@ class ConstDependency extends NullDependency { */ updateHash(hash, context) { if (this._hashUpdate === undefined) { - let hashUpdate = "" + this.range + "|" + this.expression; + let hashUpdate = `${this.range}|${this.expression}`; if (this.runtimeRequirements) { for (const item of this.runtimeRequirements) { hashUpdate += "|"; diff --git a/node_modules/webpack/lib/dependencies/ContextDependency.js b/node_modules/webpack/lib/dependencies/ContextDependency.js index a5c5702..e1d94b5 100644 --- a/node_modules/webpack/lib/dependencies/ContextDependency.js +++ b/node_modules/webpack/lib/dependencies/ContextDependency.js @@ -27,7 +27,7 @@ const getCriticalDependencyWarning = memoize(() => * @param {RegExp | null | undefined} r regexp * @returns {string} stringified regexp */ -const regExpToString = r => (r ? r + "" : ""); +const regExpToString = r => (r ? String(r) : ""); class ContextDependency extends Dependency { /** @@ -91,7 +91,12 @@ class ContextDependency extends Dependency { this.options.include )} ${regExpToString(this.options.exclude)} ` + `${this.options.mode} ${this.options.chunkName} ` + - `${JSON.stringify(this.options.groupOptions)}` + `${JSON.stringify(this.options.groupOptions)}` + + `${ + this.options.referencedExports + ? ` ${JSON.stringify(this.options.referencedExports)}` + : "" + }` ); } diff --git a/node_modules/webpack/lib/dependencies/ContextDependencyHelpers.js b/node_modules/webpack/lib/dependencies/ContextDependencyHelpers.js index 19aa320..ed63532 100644 --- a/node_modules/webpack/lib/dependencies/ContextDependencyHelpers.js +++ b/node_modules/webpack/lib/dependencies/ContextDependencyHelpers.js @@ -22,9 +22,7 @@ const { parseResource } = require("../util/identifier"); * @param {string} str String to quote * @returns {string} Escaped string */ -const quoteMeta = str => { - return str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&"); -}; +const quoteMeta = str => str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&"); /** * @param {string} prefix prefix @@ -57,7 +55,7 @@ const splitContextFromPrefix = prefix => { * @param {...any} depArgs depArgs * @returns {ContextDependency} the created Dependency */ -exports.create = ( +module.exports.create = ( Dep, range, param, @@ -69,8 +67,8 @@ exports.create = ( ) => { if (param.isTemplateString()) { const quasis = /** @type {BasicEvaluatedExpression[]} */ (param.quasis); - let prefixRaw = /** @type {string} */ (quasis[0].string); - let postfixRaw = + const prefixRaw = /** @type {string} */ (quasis[0].string); + const postfixRaw = /** @type {string} */ (quasis.length > 1 ? quasis[quasis.length - 1].string : ""); @@ -84,7 +82,7 @@ exports.create = ( // When there are more than two quasis, the generated RegExp can be more precise // We join the quasis with the expression regexp - const innerQuasis = quasis.slice(1, quasis.length - 1); + const innerQuasis = quasis.slice(1, -1); const innerRegExp = /** @type {RegExp} */ (options.wrappedContextRegExp).source + innerQuasis @@ -125,14 +123,14 @@ exports.create = ( const replaces = []; const parts = /** @type {BasicEvaluatedExpression[]} */ (param.parts); - parts.forEach((part, i) => { + for (const [i, part] of parts.entries()) { if (i % 2 === 0) { // Quasis or merged quasi let range = /** @type {Range} */ (part.range); let value = /** @type {string} */ (part.string); if (param.templateStringKind === "cooked") { value = JSON.stringify(value); - value = value.slice(1, value.length - 1); + value = value.slice(1, -1); } if (i === 0) { // prefix @@ -151,14 +149,14 @@ exports.create = ( /** @type {Range} */ (part.range)[0], /** @type {Range} */ (param.range)[1] ]; - value = value + "`"; + value = `${value}\``; } else if ( part.expression && part.expression.type === "TemplateElement" && part.expression.value.raw === value ) { // Shortcut when it's a single quasi and doesn't need to be replaced - return; + continue; } replaces.push({ range, @@ -168,7 +166,7 @@ exports.create = ( // Expression parser.walkExpression(part.expression); } - }); + } dep.replaces = replaces; dep.critical = @@ -180,10 +178,10 @@ exports.create = ( ((param.prefix && param.prefix.isString()) || (param.postfix && param.postfix.isString())) ) { - let prefixRaw = + const prefixRaw = /** @type {string} */ (param.prefix && param.prefix.isString() ? param.prefix.string : ""); - let postfixRaw = + const postfixRaw = /** @type {string} */ (param.postfix && param.postfix.isString() ? param.postfix.string : ""); const prefixRange = @@ -239,27 +237,26 @@ exports.create = ( } } - return dep; - } else { - const dep = new Dep( - { - request: /** @type {string} */ (options.exprContextRequest), - recursive: /** @type {boolean} */ (options.exprContextRecursive), - regExp: /** @type {RegExp} */ (options.exprContextRegExp), - mode: "sync", - ...contextOptions - }, - range, - /** @type {Range} */ (param.range), - ...depArgs - ); - dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.critical = - options.exprContextCritical && - "the request of a dependency is an expression"; - - parser.walkExpression(param.expression); - return dep; } + const dep = new Dep( + { + request: /** @type {string} */ (options.exprContextRequest), + recursive: /** @type {boolean} */ (options.exprContextRecursive), + regExp: /** @type {RegExp} */ (options.exprContextRegExp), + mode: "sync", + ...contextOptions + }, + range, + /** @type {Range} */ (param.range), + ...depArgs + ); + dep.loc = /** @type {DependencyLocation} */ (expr.loc); + dep.critical = + options.exprContextCritical && + "the request of a dependency is an expression"; + + parser.walkExpression(param.expression); + + return dep; }; diff --git a/node_modules/webpack/lib/dependencies/ContextElementDependency.js b/node_modules/webpack/lib/dependencies/ContextElementDependency.js index 071998f..43d06ed 100644 --- a/node_modules/webpack/lib/dependencies/ContextElementDependency.js +++ b/node_modules/webpack/lib/dependencies/ContextElementDependency.js @@ -9,7 +9,10 @@ const Dependency = require("../Dependency"); const makeSerializable = require("../util/makeSerializable"); const ModuleDependency = require("./ModuleDependency"); +/** @typedef {import("../ContextModule")} ContextModule */ /** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */ +/** @typedef {import("../Module")} Module */ +/** @typedef {import("../Module").BuildMeta} BuildMeta */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../javascript/JavascriptParser").ImportAttributes} ImportAttributes */ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ @@ -20,9 +23,9 @@ class ContextElementDependency extends ModuleDependency { /** * @param {string} request request * @param {string|undefined} userRequest user request - * @param {string} typePrefix type prefix + * @param {string | undefined} typePrefix type prefix * @param {string} category category - * @param {string[][]=} referencedExports referenced exports + * @param {(string[][] | null)=} referencedExports referenced exports * @param {string=} context context * @param {ImportAttributes=} attributes import assertions */ @@ -67,12 +70,36 @@ class ContextElementDependency extends ModuleDependency { * @returns {(string[] | ReferencedExport)[]} referenced exports */ getReferencedExports(moduleGraph, runtime) { - return this.referencedExports - ? this.referencedExports.map(e => ({ - name: e, - canMangle: false - })) - : Dependency.EXPORTS_OBJECT_REFERENCED; + if (!this.referencedExports) return Dependency.EXPORTS_OBJECT_REFERENCED; + const refs = []; + for (const referencedExport of this.referencedExports) { + if ( + this._typePrefix === "import()" && + referencedExport[0] === "default" + ) { + const selfModule = + /** @type {ContextModule} */ + (moduleGraph.getParentModule(this)); + const importedModule = + /** @type {Module} */ + (moduleGraph.getModule(this)); + const exportsType = importedModule.getExportsType( + moduleGraph, + selfModule.options.namespaceObject === "strict" + ); + if ( + exportsType === "default-only" || + exportsType === "default-with-named" + ) { + return Dependency.EXPORTS_OBJECT_REFERENCED; + } + } + refs.push({ + name: referencedExport, + canMangle: false + }); + } + return refs; } /** diff --git a/node_modules/webpack/lib/dependencies/CriticalDependencyWarning.js b/node_modules/webpack/lib/dependencies/CriticalDependencyWarning.js index 653bcc1..3299150 100644 --- a/node_modules/webpack/lib/dependencies/CriticalDependencyWarning.js +++ b/node_modules/webpack/lib/dependencies/CriticalDependencyWarning.js @@ -16,7 +16,7 @@ class CriticalDependencyWarning extends WebpackError { super(); this.name = "CriticalDependencyWarning"; - this.message = "Critical dependency: " + message; + this.message = `Critical dependency: ${message}`; } } diff --git a/node_modules/webpack/lib/dependencies/CssExportDependency.js b/node_modules/webpack/lib/dependencies/CssExportDependency.js index 6753797..ab9ee61 100644 --- a/node_modules/webpack/lib/dependencies/CssExportDependency.js +++ b/node_modules/webpack/lib/dependencies/CssExportDependency.js @@ -58,9 +58,9 @@ class CssExportDependency extends NullDependency { */ getExports(moduleGraph) { const module = /** @type {CssModule} */ (moduleGraph.getParentModule(this)); - const convention = /** @type {CssGenerator | CssExportsGenerator} */ ( - module.generator - ).convention; + const convention = + /** @type {CssGenerator | CssExportsGenerator} */ + (module.generator).convention; const names = this.getExportsConventionNames(this.name, convention); return { exports: names.map(name => ({ @@ -81,14 +81,14 @@ class CssExportDependency extends NullDependency { const module = /** @type {CssModule} */ ( chunkGraph.moduleGraph.getParentModule(this) ); - const generator = /** @type {CssGenerator | CssExportsGenerator} */ ( - module.generator - ); + const generator = + /** @type {CssGenerator | CssExportsGenerator} */ + (module.generator); const names = this.getExportsConventionNames( this.name, generator.convention ); - hash.update(`exportsConvention`); + hash.update("exportsConvention"); hash.update(JSON.stringify(names)); } @@ -129,9 +129,9 @@ CssExportDependency.Template = class CssExportDependencyTemplate extends ( ) { const dep = /** @type {CssExportDependency} */ (dependency); const module = /** @type {CssModule} */ (m); - const convention = /** @type {CssGenerator | CssExportsGenerator} */ ( - module.generator - ).convention; + const convention = + /** @type {CssGenerator | CssExportsGenerator} */ + (module.generator).convention; const names = dep.getExportsConventionNames(dep.name, convention); const usedNames = /** @type {string[]} */ ( names diff --git a/node_modules/webpack/lib/dependencies/CssImportDependency.js b/node_modules/webpack/lib/dependencies/CssImportDependency.js index 94629d4..c235be4 100644 --- a/node_modules/webpack/lib/dependencies/CssImportDependency.js +++ b/node_modules/webpack/lib/dependencies/CssImportDependency.js @@ -26,9 +26,7 @@ const ModuleDependency = require("./ModuleDependency"); class CssImportDependency extends ModuleDependency { /** * Example of dependency: - * * \@import url("landscape.css") layer(forms) screen and (orientation: landscape) screen and (orientation: landscape); - * * @param {string} request request * @param {Range} range range of the argument * @param {string | undefined} layer layer diff --git a/node_modules/webpack/lib/dependencies/CssLocalIdentifierDependency.js b/node_modules/webpack/lib/dependencies/CssLocalIdentifierDependency.js index 6365663..5922c13 100644 --- a/node_modules/webpack/lib/dependencies/CssLocalIdentifierDependency.js +++ b/node_modules/webpack/lib/dependencies/CssLocalIdentifierDependency.js @@ -21,6 +21,7 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */ /** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../NormalModuleFactory").ResourceDataWithData} ResourceDataWithData */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ /** @typedef {import("../css/CssExportsGenerator")} CssExportsGenerator */ /** @typedef {import("../css/CssGenerator")} CssGenerator */ @@ -28,6 +29,7 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ +/** @typedef {import("../util/createHash").Algorithm} Algorithm */ /** * @param {string} local css local @@ -41,12 +43,16 @@ const getLocalIdent = (local, module, chunkGraph, runtimeTemplate) => { /** @type {CssGenerator | CssExportsGenerator} */ (module.generator).localIdentName; const relativeResourcePath = makePathsRelative( - /** @type {string} */ (module.context), - module.resourceResolveData.path + /** @type {string} */ + (module.context), + /** @type {string} */ ( + /** @type {ResourceDataWithData} */ + (module.resourceResolveData).path + ) ); const { hashFunction, hashDigest, hashDigestLength, hashSalt, uniqueName } = runtimeTemplate.outputOptions; - const hash = createHash(hashFunction); + const hash = createHash(/** @type {Algorithm} */ (hashFunction)); if (hashSalt) { hash.update(hashSalt); } @@ -71,7 +77,7 @@ const getLocalIdent = (local, module, chunkGraph, runtimeTemplate) => { module }) .replace(/\[local\]/g, local) - .replace(/\[uniqueName\]/g, uniqueName); + .replace(/\[uniqueName\]/g, /** @type {string} */ (uniqueName)); }; class CssLocalIdentifierDependency extends NullDependency { @@ -141,9 +147,9 @@ class CssLocalIdentifierDependency extends NullDependency { this.name, generator.convention ); - hash.update(`exportsConvention`); + hash.update("exportsConvention"); hash.update(JSON.stringify(names)); - hash.update(`localIdentName`); + hash.update("localIdentName"); hash.update(generator.localIdentName); } @@ -178,7 +184,7 @@ class CssLocalIdentifierDependency extends NullDependency { const escapeCssIdentifier = (str, omitUnderscore) => { const escaped = `${str}`.replace( // cspell:word uffff - /[^a-zA-Z0-9_\u0081-\uffff-]/g, + /[^a-zA-Z0-9_\u0081-\uFFFF-]/g, s => `\\${s}` ); return !omitUnderscore && /^(?!--)[0-9-]/.test(escaped) @@ -209,28 +215,31 @@ CssLocalIdentifierDependency.Template = class CssLocalIdentifierDependencyTempla ) { const dep = /** @type {CssLocalIdentifierDependency} */ (dependency); const module = /** @type {CssModule} */ (m); - const convention = /** @type {CssGenerator | CssExportsGenerator} */ ( - module.generator - ).convention; + const convention = + /** @type {CssGenerator | CssExportsGenerator} */ + (module.generator).convention; const names = dep.getExportsConventionNames(dep.name, convention); - const usedNames = /** @type {string[]} */ ( - names - .map(name => - moduleGraph.getExportInfo(module, name).getUsedName(name, runtime) - ) - .filter(Boolean) - ); - if (usedNames.length === 0) return; + const usedNames = + /** @type {(string)[]} */ + ( + names + .map(name => + moduleGraph.getExportInfo(module, name).getUsedName(name, runtime) + ) + .filter(Boolean) + ); + const used = usedNames.length === 0 ? names[0] : usedNames[0]; // use the first usedName to generate localIdent, it's shorter when mangle exports enabled const localIdent = - dep.prefix + - getLocalIdent(usedNames[0], module, chunkGraph, runtimeTemplate); + dep.prefix + getLocalIdent(used, module, chunkGraph, runtimeTemplate); + source.replace( dep.range[0], dep.range[1] - 1, escapeCssIdentifier(localIdent, dep.prefix) ); + for (const used of usedNames) { cssExportsData.exports.set(used, localIdent); } diff --git a/node_modules/webpack/lib/dependencies/CssSelfLocalIdentifierDependency.js b/node_modules/webpack/lib/dependencies/CssSelfLocalIdentifierDependency.js index 246cf1b..b63ff53 100644 --- a/node_modules/webpack/lib/dependencies/CssSelfLocalIdentifierDependency.js +++ b/node_modules/webpack/lib/dependencies/CssSelfLocalIdentifierDependency.js @@ -43,8 +43,9 @@ class CssSelfLocalIdentifierDependency extends CssLocalIdentifierDependency { * @returns {string | null} an identifier to merge equal requests */ getResourceIdentifier() { - return `self`; + return "self"; } + /** * Returns the exported names * @param {ModuleGraph} moduleGraph module graph diff --git a/node_modules/webpack/lib/dependencies/CssUrlDependency.js b/node_modules/webpack/lib/dependencies/CssUrlDependency.js index a54e903..745c994 100644 --- a/node_modules/webpack/lib/dependencies/CssUrlDependency.js +++ b/node_modules/webpack/lib/dependencies/CssUrlDependency.js @@ -12,10 +12,12 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */ /** @typedef {import("../ChunkGraph")} ChunkGraph */ +/** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../Module")} Module */ +/** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */ /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */ @@ -25,15 +27,15 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ -const getIgnoredRawDataUrlModule = memoize(() => { - return new RawDataUrlModule("data:,", `ignored-asset`, `(ignored asset)`); -}); +const getIgnoredRawDataUrlModule = memoize( + () => new RawDataUrlModule("data:,", "ignored-asset", "(ignored asset)") +); class CssUrlDependency extends ModuleDependency { /** * @param {string} request request * @param {Range} range range of the argument - * @param {"string" | "url"} urlType dependency type e.g. url() or string + * @param {"string" | "url" | "src"} urlType dependency type e.g. url() or string */ constructor(request, range, urlType) { super(request); @@ -106,9 +108,8 @@ const cssEscapeString = str => { return str.replace(/[\n\t ()'"\\]/g, m => `\\${m}`); } else if (countQuotation <= countApostrophe) { return `"${str.replace(/[\n"\\]/g, m => `\\${m}`)}"`; - } else { - return `'${str.replace(/[\n'\\]/g, m => `\\${m}`)}'`; } + return `'${str.replace(/[\n'\\]/g, m => `\\${m}`)}'`; }; CssUrlDependency.Template = class CssUrlDependencyTemplate extends ( @@ -134,7 +135,7 @@ CssUrlDependency.Template = class CssUrlDependencyTemplate extends ( switch (dep.urlType) { case "string": newValue = cssEscapeString( - runtimeTemplate.assetUrl({ + this.assetUrl({ module, codeGenerationResults }) @@ -142,7 +143,15 @@ CssUrlDependency.Template = class CssUrlDependencyTemplate extends ( break; case "url": newValue = `url(${cssEscapeString( - runtimeTemplate.assetUrl({ + this.assetUrl({ + module, + codeGenerationResults + }) + )})`; + break; + case "src": + newValue = `src(${cssEscapeString( + this.assetUrl({ module, codeGenerationResults }) @@ -156,6 +165,26 @@ CssUrlDependency.Template = class CssUrlDependencyTemplate extends ( /** @type {string} */ (newValue) ); } + + /** + * @param {object} options options object + * @param {Module} options.module the module + * @param {RuntimeSpec=} options.runtime runtime + * @param {CodeGenerationResults} options.codeGenerationResults the code generation results + * @returns {string} the url of the asset + */ + assetUrl({ runtime, module, codeGenerationResults }) { + if (!module) { + return "data:,"; + } + const codeGen = codeGenerationResults.get(module, runtime); + const data = + /** @type {NonNullable} */ + (codeGen.data); + const url = data.get("url"); + if (!url || !url["css-url"]) return "data:,"; + return url["css-url"]; + } }; makeSerializable(CssUrlDependency, "webpack/lib/dependencies/CssUrlDependency"); diff --git a/node_modules/webpack/lib/dependencies/DynamicExports.js b/node_modules/webpack/lib/dependencies/DynamicExports.js index a96fc9a..cdc5e9c 100644 --- a/node_modules/webpack/lib/dependencies/DynamicExports.js +++ b/node_modules/webpack/lib/dependencies/DynamicExports.js @@ -15,7 +15,7 @@ const parserStateExportsState = new WeakMap(); * @param {ParserState} parserState parser state * @returns {void} */ -exports.bailout = parserState => { +module.exports.bailout = parserState => { const value = parserStateExportsState.get(parserState); parserStateExportsState.set(parserState, false); if (value === true) { @@ -29,7 +29,7 @@ exports.bailout = parserState => { * @param {ParserState} parserState parser state * @returns {void} */ -exports.enable = parserState => { +module.exports.enable = parserState => { const value = parserStateExportsState.get(parserState); if (value === false) return; parserStateExportsState.set(parserState, true); @@ -44,7 +44,7 @@ exports.enable = parserState => { * @param {ParserState} parserState parser state * @returns {void} */ -exports.setFlagged = parserState => { +module.exports.setFlagged = parserState => { const value = parserStateExportsState.get(parserState); if (value !== true) return; const buildMeta = /** @type {BuildMeta} */ (parserState.module.buildMeta); @@ -56,7 +56,7 @@ exports.setFlagged = parserState => { * @param {ParserState} parserState parser state * @returns {void} */ -exports.setDynamic = parserState => { +module.exports.setDynamic = parserState => { const value = parserStateExportsState.get(parserState); if (value !== true) return; /** @type {BuildMeta} */ @@ -67,7 +67,7 @@ exports.setDynamic = parserState => { * @param {ParserState} parserState parser state * @returns {boolean} true, when enabled */ -exports.isEnabled = parserState => { +module.exports.isEnabled = parserState => { const value = parserStateExportsState.get(parserState); return value === true; }; diff --git a/node_modules/webpack/lib/dependencies/ExportsInfoDependency.js b/node_modules/webpack/lib/dependencies/ExportsInfoDependency.js index e35548c..70383e2 100644 --- a/node_modules/webpack/lib/dependencies/ExportsInfoDependency.js +++ b/node_modules/webpack/lib/dependencies/ExportsInfoDependency.js @@ -72,7 +72,7 @@ const getProperty = (moduleGraph, module, _exportName, property, runtime) => { case UsageState.Unused: return false; case UsageState.NoInfo: - return undefined; + return; case UsageState.Unknown: return null; default: @@ -82,7 +82,6 @@ const getProperty = (moduleGraph, module, _exportName, property, runtime) => { case "provideInfo": return moduleGraph.getExportsInfo(module).isExportProvided(exportName); } - return undefined; }; class ExportsInfoDependency extends NullDependency { diff --git a/node_modules/webpack/lib/dependencies/HarmonyAcceptImportDependency.js b/node_modules/webpack/lib/dependencies/HarmonyAcceptImportDependency.js index bcf01ef..03cb000 100644 --- a/node_modules/webpack/lib/dependencies/HarmonyAcceptImportDependency.js +++ b/node_modules/webpack/lib/dependencies/HarmonyAcceptImportDependency.js @@ -18,7 +18,7 @@ class HarmonyAcceptImportDependency extends HarmonyImportDependency { * @param {string} request the request string */ constructor(request) { - super(request, NaN); + super(request, Number.NaN); this.weak = true; } diff --git a/node_modules/webpack/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js b/node_modules/webpack/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js index b59d066..09ceb8e 100644 --- a/node_modules/webpack/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +++ b/node_modules/webpack/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js @@ -112,11 +112,10 @@ HarmonyEvaluatedImportSpecifierDependency.Template = class HarmonyEvaluatedImpor break; } case "namespace": { - if (ids[0] === "__esModule") { - value = ids.length === 1 || undefined; - } else { - value = exportsInfo.isExportProvided(ids); - } + value = + ids[0] === "__esModule" + ? ids.length === 1 || undefined + : exportsInfo.isExportProvided(ids); break; } case "dynamic": { diff --git a/node_modules/webpack/lib/dependencies/HarmonyExportDependencyParserPlugin.js b/node_modules/webpack/lib/dependencies/HarmonyExportDependencyParserPlugin.js index 0a9b3ea..247d0c1 100644 --- a/node_modules/webpack/lib/dependencies/HarmonyExportDependencyParserPlugin.js +++ b/node_modules/webpack/lib/dependencies/HarmonyExportDependencyParserPlugin.js @@ -5,6 +5,7 @@ "use strict"; +const { getImportAttributes } = require("../javascript/JavascriptParser"); const InnerGraph = require("../optimize/InnerGraph"); const ConstDependency = require("./ConstDependency"); const HarmonyExportExpressionDependency = require("./HarmonyExportExpressionDependency"); @@ -13,8 +14,7 @@ const HarmonyExportImportedSpecifierDependency = require("./HarmonyExportImporte const HarmonyExportSpecifierDependency = require("./HarmonyExportSpecifierDependency"); const { ExportPresenceModes } = require("./HarmonyImportDependency"); const { - harmonySpecifierTag, - getAttributes + harmonySpecifierTag } = require("./HarmonyImportDependencyParserPlugin"); const HarmonyImportSideEffectDependency = require("./HarmonyImportSideEffectDependency"); @@ -78,7 +78,7 @@ module.exports = class HarmonyExportDependencyParserPlugin { const sideEffectDep = new HarmonyImportSideEffectDependency( /** @type {string} */ (source), parser.state.lastHarmonyImportOrder, - getAttributes(statement) + getImportAttributes(statement) ); sideEffectDep.loc = Object.create( /** @type {DependencyLocation} */ (statement.loc) @@ -145,30 +145,34 @@ module.exports = class HarmonyExportDependencyParserPlugin { "HarmonyExportDependencyParserPlugin", (statement, id, name, idx) => { const settings = parser.getTagData(id, harmonySpecifierTag); - let dep; const harmonyNamedExports = (parser.state.harmonyNamedExports = parser.state.harmonyNamedExports || new Set()); harmonyNamedExports.add(name); InnerGraph.addVariableUsage(parser, id, name); - if (settings) { - dep = new HarmonyExportImportedSpecifierDependency( - settings.source, - settings.sourceOrder, - settings.ids, - name, - harmonyNamedExports, - null, - exportPresenceMode, - null, - settings.assertions - ); - } else { - dep = new HarmonyExportSpecifierDependency(id, name); - } + const dep = settings + ? new HarmonyExportImportedSpecifierDependency( + settings.source, + settings.sourceOrder, + settings.ids, + name, + harmonyNamedExports, + null, + exportPresenceMode, + null, + settings.assertions + ) + : new HarmonyExportSpecifierDependency(id, name); dep.loc = Object.create( /** @type {DependencyLocation} */ (statement.loc) ); dep.loc.index = idx; + const isAsiSafe = !parser.isAsiPosition( + /** @type {Range} */ + (statement.range)[0] + ); + if (!isAsiSafe) { + parser.setAsiPosition(/** @type {Range} */ (statement.range)[1]); + } parser.state.current.addDependency(dep); return true; } @@ -202,6 +206,13 @@ module.exports = class HarmonyExportDependencyParserPlugin { /** @type {DependencyLocation} */ (statement.loc) ); dep.loc.index = idx; + const isAsiSafe = !parser.isAsiPosition( + /** @type {Range} */ + (statement.range)[0] + ); + if (!isAsiSafe) { + parser.setAsiPosition(/** @type {Range} */ (statement.range)[1]); + } parser.state.current.addDependency(dep); return true; } diff --git a/node_modules/webpack/lib/dependencies/HarmonyExportExpressionDependency.js b/node_modules/webpack/lib/dependencies/HarmonyExportExpressionDependency.js index db78aec..12481cf 100644 --- a/node_modules/webpack/lib/dependencies/HarmonyExportExpressionDependency.js +++ b/node_modules/webpack/lib/dependencies/HarmonyExportExpressionDependency.js @@ -193,7 +193,7 @@ HarmonyExportExpressionDependency.Template = class HarmonyExportDependencyTempla source.replace( dep.rangeStatement[0], dep.range[0] - 1, - content + "(" + dep.prefix + `${content}(${dep.prefix}` ); source.replace(dep.range[1], dep.rangeStatement[1] - 0.5, ");"); return; diff --git a/node_modules/webpack/lib/dependencies/HarmonyExportImportedSpecifierDependency.js b/node_modules/webpack/lib/dependencies/HarmonyExportImportedSpecifierDependency.js index 9b46b1e..95d4507 100644 --- a/node_modules/webpack/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +++ b/node_modules/webpack/lib/dependencies/HarmonyExportImportedSpecifierDependency.js @@ -5,6 +5,7 @@ "use strict"; +const ConditionalInitFragment = require("../ConditionalInitFragment"); const Dependency = require("../Dependency"); const { UsageState } = require("../ExportsInfo"); const HarmonyLinkingError = require("../HarmonyLinkingError"); @@ -16,7 +17,11 @@ const { first, combine } = require("../util/SetHelpers"); const makeSerializable = require("../util/makeSerializable"); const propertyAccess = require("../util/propertyAccess"); const { propertyName } = require("../util/propertyName"); -const { getRuntimeKey, keyToRuntime } = require("../util/runtime"); +const { + getRuntimeKey, + keyToRuntime, + filterRuntime +} = require("../util/runtime"); const HarmonyExportInitFragment = require("./HarmonyExportInitFragment"); const HarmonyImportDependency = require("./HarmonyImportDependency"); const processExportInfo = require("./processExportInfo"); @@ -31,6 +36,7 @@ const processExportInfo = require("./processExportInfo"); /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ExportsInfo")} ExportsInfo */ /** @typedef {import("../ExportsInfo").ExportInfo} ExportInfo */ +/** @typedef {import("../ExportsInfo").UsedName} UsedName */ /** @typedef {import("../Generator").GenerateContext} GenerateContext */ /** @typedef {import("../Module")} Module */ /** @typedef {import("../Module").BuildMeta} BuildMeta */ @@ -45,6 +51,7 @@ const processExportInfo = require("./processExportInfo"); /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ +/** @typedef {import("./processExportInfo").ReferencedExports} ReferencedExports */ /** @typedef {"missing"|"unused"|"empty-star"|"reexport-dynamic-default"|"reexport-named-default"|"reexport-namespace-object"|"reexport-fake-namespace-object"|"reexport-undefined"|"normal-reexport"|"dynamic-reexport"} ExportModeType */ @@ -69,6 +76,9 @@ class NormalReexportItem { } } +/** @typedef {Set} ExportModeIgnored */ +/** @typedef {Set} ExportModeHidden */ + class ExportMode { /** * @param {ExportModeType} type type of the mode @@ -88,11 +98,11 @@ class ExportMode { this.partialNamespaceExportInfo = null; // for "dynamic-reexport": - /** @type {Set | null} */ + /** @type {ExportModeIgnored | null} */ this.ignored = null; // for "dynamic-reexport" | "empty-star": - /** @type {Set | null} */ + /** @type {ExportModeHidden | undefined | null} */ this.hidden = null; // for "missing": @@ -105,12 +115,19 @@ class ExportMode { } } +/** + * @param {ModuleGraph} moduleGraph module graph + * @param {TODO} dependencies dependencies + * @param {TODO=} additionalDependency additional dependency + * @returns {TODO} result + */ const determineExportAssignments = ( moduleGraph, dependencies, additionalDependency ) => { const names = new Set(); + /** @type {number[]} */ const dependencyIndices = []; if (additionalDependency) { @@ -306,7 +323,8 @@ const getMode = (moduleGraph, dep, runtimeKey) => { exportName, [exportName], exportsInfo.getReadOnlyExportInfo(exportName), - checked.has(exportName), + /** @type {Set} */ + (checked).has(exportName), false ) ); @@ -327,11 +345,17 @@ const getMode = (moduleGraph, dep, runtimeKey) => { return mode; }; +/** @typedef {string[]} Ids */ +/** @typedef {Set} Exports */ +/** @typedef {Set} Checked */ +/** @typedef {Set} Hidden */ +/** @typedef {Set} IgnoredExports */ + class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { /** * @param {string} request the request string * @param {number} sourceOrder the order in the original source file - * @param {string[]} ids the requested export name of the imported module + * @param {Ids} ids the requested export name of the imported module * @param {string | null} name the export name of for this module * @param {Set} activeExports other named exports in the module * @param {ReadonlyArray | Iterable | null} otherStarExports other star exports in the module before this import @@ -388,7 +412,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { /** * @param {ModuleGraph} moduleGraph the module graph - * @returns {string[]} the imported id + * @returns {Ids} the imported id */ getIds(moduleGraph) { return moduleGraph.getMeta(this)[idsSymbol] || this.ids; @@ -396,11 +420,12 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { /** * @param {ModuleGraph} moduleGraph the module graph - * @param {string[]} ids the imported ids + * @param {Ids} ids the imported ids * @returns {void} */ setIds(moduleGraph, ids) { - moduleGraph.getMeta(this)[idsSymbol] = ids; + /** @type {TODO} */ + (moduleGraph.getMeta(this))[idsSymbol] = ids; } /** @@ -421,7 +446,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { * @param {RuntimeSpec} runtime the runtime * @param {ExportsInfo} exportsInfo exports info about the current module (optional) * @param {Module} importedModule the imported module (optional) - * @returns {{exports?: Set, checked?: Set, ignoredExports: Set, hidden?: Set}} information + * @returns {{exports?: Exports, checked?: Checked, ignoredExports: IgnoredExports, hidden?: Hidden}} information */ getStarReexports( moduleGraph, @@ -439,7 +464,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { const ignoredExports = new Set(["default", ...this.activeExports]); - let hiddenExports = undefined; + let hiddenExports; const otherStarExports = this._discoverActiveExportsFromOtherStarExports(moduleGraph); if (otherStarExports !== undefined) { @@ -457,11 +482,11 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { }; } - /** @type {Set} */ + /** @type {Exports} */ const exports = new Set(); - /** @type {Set} */ + /** @type {Checked} */ const checked = new Set(); - /** @type {Set | undefined} */ + /** @type {Hidden | undefined} */ const hidden = hiddenExports !== undefined ? new Set() : undefined; if (noExtraImports) { @@ -489,7 +514,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { const exportInfo = exportsInfo.getReadOnlyExportInfo(name); if (exportInfo.getUsed(runtime) === UsageState.Unused) continue; if (hiddenExports !== undefined && hiddenExports.has(name)) { - /** @type {Set} */ + /** @type {ExportModeHidden} */ (hidden).add(name); continue; } @@ -543,7 +568,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { case "reexport-named-default": { if (!mode.partialNamespaceExportInfo) return Dependency.EXPORTS_OBJECT_REFERENCED; - /** @type {string[][]} */ + /** @type {ReferencedExports} */ const referencedExports = []; processExportInfo( runtime, @@ -558,7 +583,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { case "reexport-fake-namespace-object": { if (!mode.partialNamespaceExportInfo) return Dependency.EXPORTS_OBJECT_REFERENCED; - /** @type {string[][]} */ + /** @type {ReferencedExports} */ const referencedExports = []; processExportInfo( runtime, @@ -574,8 +599,13 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { return Dependency.EXPORTS_OBJECT_REFERENCED; case "normal-reexport": { + /** @type {ReferencedExports} */ const referencedExports = []; - for (const { ids, exportInfo, hidden } of mode.items) { + for (const { + ids, + exportInfo, + hidden + } of /** @type {NormalReexportItem[]} */ (mode.items)) { if (hidden) continue; processExportInfo(runtime, referencedExports, ids, exportInfo, false); } @@ -592,13 +622,13 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { * @returns {{ names: string[], namesSlice: number, dependencyIndices: number[], dependencyIndex: number } | undefined} exported names and their origin dependency */ _discoverActiveExportsFromOtherStarExports(moduleGraph) { - if (!this.otherStarExports) return undefined; + if (!this.otherStarExports) return; const i = "length" in this.otherStarExports ? this.otherStarExports.length : countIterable(this.otherStarExports); - if (i === 0) return undefined; + if (i === 0) return; if (this.allStarExports) { const { names, dependencyIndices } = moduleGraph.cached( @@ -638,7 +668,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { switch (mode.type) { case "missing": - return undefined; + return; case "dynamic-reexport": { const from = /** @type {ModuleGraphConnection} */ @@ -648,8 +678,11 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { from, canMangle: false, excludeExports: mode.hidden - ? combine(mode.ignored, mode.hidden) - : mode.ignored, + ? combine( + /** @type {ExportModeIgnored} */ (mode.ignored), + mode.hidden + ) + : /** @type {ExportModeIgnored} */ (mode.ignored), hideExports: mode.hidden, dependencies: [from.module] }; @@ -666,33 +699,34 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { /** @type {ModuleGraphConnection} */ (moduleGraph.getConnection(this)); return { - exports: Array.from(mode.items, item => ({ - name: item.name, - from, - export: item.ids, - hidden: item.hidden - })), + exports: Array.from( + /** @type {NormalReexportItem[]} */ (mode.items), + item => ({ + name: item.name, + from, + export: item.ids, + hidden: item.hidden + }) + ), priority: 1, dependencies: [from.module] }; } case "reexport-dynamic-default": { - { - const from = - /** @type {ModuleGraphConnection} */ - (moduleGraph.getConnection(this)); - return { - exports: [ - { - name: /** @type {string} */ (mode.name), - from, - export: ["default"] - } - ], - priority: 1, - dependencies: [from.module] - }; - } + const from = + /** @type {ModuleGraphConnection} */ + (moduleGraph.getConnection(this)); + return { + exports: [ + { + name: /** @type {string} */ (mode.name), + from, + export: ["default"] + } + ], + priority: 1, + dependencies: [from.module] + }; } case "reexport-undefined": return { @@ -825,6 +859,7 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { const importedModule = moduleGraph.getModule(this); if (importedModule) { const exportsInfo = moduleGraph.getExportsInfo(importedModule); + /** @type {Map} */ const conflicts = new Map(); for (const exportInfo of exportsInfo.orderedExports) { if (exportInfo.provided !== true) continue; @@ -841,12 +876,12 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { if (!conflictingDependency) continue; const target = exportInfo.getTerminalBinding(moduleGraph); if (!target) continue; - const conflictingModule = moduleGraph.getModule( - conflictingDependency - ); + const conflictingModule = + /** @type {Module} */ + (moduleGraph.getModule(conflictingDependency)); if (conflictingModule === importedModule) continue; const conflictingExportInfo = moduleGraph.getExportInfo( - /** @type {Module} */ (conflictingModule), + conflictingModule, exportInfo.name ); const conflictingTarget = @@ -944,7 +979,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS switch (mode.type) { case "reexport-undefined": concatenationScope.registerRawExport( - mode.name, + /** @type {NonNullable} */ (mode.name), "/* reexport non-default export from non-harmony */ undefined" ); } @@ -1020,7 +1055,9 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS this.getReexportFragment( module, "reexport default from dynamic", - moduleGraph.getExportsInfo(module).getUsedName(mode.name, runtime), + moduleGraph + .getExportsInfo(module) + .getUsedName(/** @type {string} */ (mode.name), runtime), importVar, null, runtimeRequirements @@ -1032,7 +1069,9 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS initFragments.push( ...this.getReexportFakeNamespaceObjectFragments( module, - moduleGraph.getExportsInfo(module).getUsedName(mode.name, runtime), + moduleGraph + .getExportsInfo(module) + .getUsedName(/** @type {string} */ (mode.name), runtime), importVar, mode.fakeType, runtimeRequirements @@ -1045,7 +1084,9 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS this.getReexportFragment( module, "reexport non-default export from non-harmony", - moduleGraph.getExportsInfo(module).getUsedName(mode.name, runtime), + moduleGraph + .getExportsInfo(module) + .getUsedName(/** @type {string} */ (mode.name), runtime), "undefined", "", runtimeRequirements @@ -1058,7 +1099,9 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS this.getReexportFragment( module, "reexport default export from named module", - moduleGraph.getExportsInfo(module).getUsedName(mode.name, runtime), + moduleGraph + .getExportsInfo(module) + .getUsedName(/** @type {string} */ (mode.name), runtime), importVar, "", runtimeRequirements @@ -1071,7 +1114,9 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS this.getReexportFragment( module, "reexport module object", - moduleGraph.getExportsInfo(module).getUsedName(mode.name, runtime), + moduleGraph + .getExportsInfo(module) + .getUsedName(/** @type {string} */ (mode.name), runtime), importVar, "", runtimeRequirements @@ -1080,23 +1125,36 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS break; case "normal-reexport": - for (const { name, ids, checked, hidden } of mode.items) { + for (const { + name, + ids, + checked, + hidden + } of /** @type {NormalReexportItem[]} */ (mode.items)) { if (hidden) continue; if (checked) { + const connection = moduleGraph.getConnection(dep); + const key = `harmony reexport (checked) ${importVar} ${name}`; + const runtimeCondition = dep.weak + ? false + : connection + ? filterRuntime(runtime, r => connection.isTargetActive(r)) + : true; initFragments.push( - new InitFragment( - "/* harmony reexport (checked) */ " + - this.getConditionalReexportStatement( - module, - name, - importVar, - ids, - runtimeRequirements - ), + new ConditionalInitFragment( + `/* harmony reexport (checked) */ ${this.getConditionalReexportStatement( + module, + name, + importVar, + ids, + runtimeRequirements + )}`, moduleGraph.isAsync(importedModule) ? InitFragment.STAGE_ASYNC_HARMONY_IMPORTS : InitFragment.STAGE_HARMONY_IMPORTS, - dep.sourceOrder + dep.sourceOrder, + key, + runtimeCondition ) ); } else { @@ -1118,8 +1176,12 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS case "dynamic-reexport": { const ignored = mode.hidden - ? combine(mode.ignored, mode.hidden) - : mode.ignored; + ? combine( + /** @type {ExportModeIgnored} */ + (mode.ignored), + mode.hidden + ) + : /** @type {ExportModeIgnored} */ (mode.ignored); const modern = runtimeTemplate.supportsConst() && runtimeTemplate.supportsArrowFunction(); @@ -1132,22 +1194,19 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS // Filter out exports which are defined by other exports // and filter out default export because it cannot be reexported with * if (ignored.size > 1) { - content += - "if(" + - JSON.stringify(Array.from(ignored)) + - ".indexOf(__WEBPACK_IMPORT_KEY__) < 0) "; + content += `if(${JSON.stringify( + Array.from(ignored) + )}.indexOf(__WEBPACK_IMPORT_KEY__) < 0) `; } else if (ignored.size === 1) { content += `if(__WEBPACK_IMPORT_KEY__ !== ${JSON.stringify( first(ignored) )}) `; } - content += `__WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = `; - if (modern) { - content += `() => ${importVar}[__WEBPACK_IMPORT_KEY__]`; - } else { - content += `function(key) { return ${importVar}[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)`; - } + content += "__WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = "; + content += modern + ? `() => ${importVar}[__WEBPACK_IMPORT_KEY__]` + : `function(key) { return ${importVar}[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)`; runtimeRequirements.add(RuntimeGlobals.exports); runtimeRequirements.add(RuntimeGlobals.definePropertyGetters); @@ -1170,6 +1229,15 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS } } + /** + * @param {Module} module the current module + * @param {string} comment comment + * @param {UsedName} key key + * @param {string} name name + * @param {string | string[] | null | false} valueKey value key + * @param {RuntimeRequirements} runtimeRequirements runtime requirements + * @returns {HarmonyExportInitFragment} harmony export init fragment + */ getReexportFragment( module, comment, diff --git a/node_modules/webpack/lib/dependencies/HarmonyExports.js b/node_modules/webpack/lib/dependencies/HarmonyExports.js index 1763ef8..1f6e6d4 100644 --- a/node_modules/webpack/lib/dependencies/HarmonyExports.js +++ b/node_modules/webpack/lib/dependencies/HarmonyExports.js @@ -19,7 +19,7 @@ const parserStateExportsState = new WeakMap(); * @param {boolean} isStrictHarmony strict harmony mode should be enabled * @returns {void} */ -exports.enable = (parserState, isStrictHarmony) => { +module.exports.enable = (parserState, isStrictHarmony) => { const value = parserStateExportsState.get(parserState); if (value === false) return; parserStateExportsState.set(parserState, true); @@ -40,7 +40,7 @@ exports.enable = (parserState, isStrictHarmony) => { * @param {ParserState} parserState parser state * @returns {boolean} true, when enabled */ -exports.isEnabled = parserState => { +module.exports.isEnabled = parserState => { const value = parserStateExportsState.get(parserState); return value === true; }; diff --git a/node_modules/webpack/lib/dependencies/HarmonyImportDependency.js b/node_modules/webpack/lib/dependencies/HarmonyImportDependency.js index 6e55c45..e9f26fc 100644 --- a/node_modules/webpack/lib/dependencies/HarmonyImportDependency.js +++ b/node_modules/webpack/lib/dependencies/HarmonyImportDependency.js @@ -59,7 +59,6 @@ const ExportPresenceModes = { class HarmonyImportDependency extends ModuleDependency { /** - * * @param {string} request request string * @param {number} sourceOrder source order * @param {ImportAttributes=} attributes import attributes @@ -89,7 +88,7 @@ class HarmonyImportDependency extends ModuleDependency { * @returns {string} name of the variable for the import */ getImportVar(moduleGraph) { - const module = moduleGraph.getParentModule(this); + const module = /** @type {Module} */ (moduleGraph.getParentModule(this)); const meta = /** @type {TODO} */ (moduleGraph.getMeta(module)); let importVarMap = meta.importVarMap; if (!importVarMap) meta.importVarMap = importVarMap = new Map(); @@ -351,7 +350,7 @@ HarmonyImportDependency.Template = class HarmonyImportDependencyTemplate extends importStatement[1], InitFragment.STAGE_ASYNC_HARMONY_IMPORTS, dep.sourceOrder, - key + " compat", + `${key} compat`, runtimeCondition ) ); @@ -369,7 +368,6 @@ HarmonyImportDependency.Template = class HarmonyImportDependencyTemplate extends } /** - * * @param {Module} module the module * @param {Module} referencedModule the referenced module * @returns {RuntimeSpec | boolean} runtimeCondition in which this import has been emitted diff --git a/node_modules/webpack/lib/dependencies/HarmonyImportDependencyParserPlugin.js b/node_modules/webpack/lib/dependencies/HarmonyImportDependencyParserPlugin.js index b9782bc..e7c5563 100644 --- a/node_modules/webpack/lib/dependencies/HarmonyImportDependencyParserPlugin.js +++ b/node_modules/webpack/lib/dependencies/HarmonyImportDependencyParserPlugin.js @@ -6,6 +6,7 @@ "use strict"; const HotModuleReplacementPlugin = require("../HotModuleReplacementPlugin"); +const { getImportAttributes } = require("../javascript/JavascriptParser"); const InnerGraph = require("../optimize/InnerGraph"); const ConstDependency = require("./ConstDependency"); const HarmonyAcceptDependency = require("./HarmonyAcceptDependency"); @@ -16,11 +17,7 @@ const { ExportPresenceModes } = require("./HarmonyImportDependency"); const HarmonyImportSideEffectDependency = require("./HarmonyImportSideEffectDependency"); const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDependency"); -/** @typedef {import("estree").ExportAllDeclaration} ExportAllDeclaration */ -/** @typedef {import("estree").ExportNamedDeclaration} ExportNamedDeclaration */ /** @typedef {import("estree").Identifier} Identifier */ -/** @typedef {import("estree").ImportDeclaration} ImportDeclaration */ -/** @typedef {import("estree").ImportExpression} ImportExpression */ /** @typedef {import("estree").Literal} Literal */ /** @typedef {import("estree").MemberExpression} MemberExpression */ /** @typedef {import("estree").ObjectExpression} ObjectExpression */ @@ -30,7 +27,11 @@ const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDepend /** @typedef {import("../javascript/BasicEvaluatedExpression")} BasicEvaluatedExpression */ /** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */ /** @typedef {import("../javascript/JavascriptParser").DestructuringAssignmentProperty} DestructuringAssignmentProperty */ +/** @typedef {import("../javascript/JavascriptParser").ExportAllDeclaration} ExportAllDeclaration */ +/** @typedef {import("../javascript/JavascriptParser").ExportNamedDeclaration} ExportNamedDeclaration */ /** @typedef {import("../javascript/JavascriptParser").ImportAttributes} ImportAttributes */ +/** @typedef {import("../javascript/JavascriptParser").ImportDeclaration} ImportDeclaration */ +/** @typedef {import("../javascript/JavascriptParser").ImportExpression} ImportExpression */ /** @typedef {import("../javascript/JavascriptParser").Range} Range */ /** @typedef {import("../optimize/InnerGraph").InnerGraph} InnerGraph */ /** @typedef {import("../optimize/InnerGraph").TopLevelSymbol} TopLevelSymbol */ @@ -48,73 +49,6 @@ const harmonySpecifierTag = Symbol("harmony import"); * @property {Record | undefined} assertions */ -/** - * @param {ImportDeclaration | ExportNamedDeclaration | ExportAllDeclaration | (ImportExpression & { arguments?: ObjectExpression[] })} node node with assertions - * @returns {ImportAttributes} import attributes - */ -function getAttributes(node) { - if ( - node.type === "ImportExpression" && - node.arguments && - node.arguments[0] && - node.arguments[0].type === "ObjectExpression" && - node.arguments[0].properties[0] && - node.arguments[0].properties[0].type === "Property" && - node.arguments[0].properties[0].value.type === "ObjectExpression" && - node.arguments[0].properties[0].value.properties - ) { - const properties = - /** @type {Property[]} */ - (node.arguments[0].properties[0].value.properties); - const result = /** @type {ImportAttributes} */ ({}); - for (const property of properties) { - const key = - /** @type {string} */ - ( - property.key.type === "Identifier" - ? property.key.name - : /** @type {Literal} */ (property.key).value - ); - result[key] = - /** @type {string} */ - (/** @type {Literal} */ (property.value).value); - } - const key = - node.arguments[0].properties[0].key.type === "Identifier" - ? node.arguments[0].properties[0].key.name - : /** @type {Literal} */ (node.arguments[0].properties[0].key).value; - if (key === "assert") { - result._isLegacyAssert = true; - } - return result; - } - // TODO remove cast when @types/estree has been updated to import assertions - const isImportAssertion = - /** @type {{ assertions?: ImportAttributeNode[] }} */ (node).assertions !== - undefined; - const attributes = isImportAssertion - ? /** @type {{ assertions?: ImportAttributeNode[] }} */ (node).assertions - : /** @type {{ attributes?: ImportAttributeNode[] }} */ (node).attributes; - if (attributes === undefined) { - return undefined; - } - const result = /** @type {ImportAttributes} */ ({}); - for (const attribute of attributes) { - const key = - /** @type {string} */ - ( - attribute.key.type === "Identifier" - ? attribute.key.name - : attribute.key.value - ); - result[key] = /** @type {string} */ (attribute.value.value); - } - if (isImportAssertion) { - result._isLegacyAssert = true; - } - return result; -} - module.exports = class HarmonyImportDependencyParserPlugin { /** * @param {JavascriptParserOptions} options options @@ -138,12 +72,22 @@ module.exports = class HarmonyImportDependencyParserPlugin { apply(parser) { const { exportPresenceMode } = this; + /** + * @param {string[]} members members + * @param {boolean[]} membersOptionals members Optionals + * @returns {string[]} a non optional part + */ function getNonOptionalPart(members, membersOptionals) { let i = 0; while (i < members.length && membersOptionals[i] === false) i++; return i !== members.length ? members.slice(0, i) : members; } + /** + * @param {TODO} node member expression + * @param {number} count count + * @returns {TODO} member expression + */ function getNonOptionalMemberChain(node, count) { while (count--) node = node.object; return node; @@ -174,7 +118,7 @@ module.exports = class HarmonyImportDependencyParserPlugin { clearDep.loc = /** @type {DependencyLocation} */ (statement.loc); parser.state.module.addPresentationalDependency(clearDep); parser.unsetAsiPosition(/** @type {Range} */ (statement.range)[1]); - const attributes = getAttributes(statement); + const attributes = getImportAttributes(statement); const sideEffectDep = new HarmonyImportSideEffectDependency( /** @type {string} */ (source), parser.state.lastHarmonyImportOrder, @@ -194,7 +138,7 @@ module.exports = class HarmonyImportDependencyParserPlugin { source, ids, sourceOrder: parser.state.lastHarmonyImportOrder, - assertions: getAttributes(statement) + assertions: getImportAttributes(statement) }); return true; } @@ -221,7 +165,9 @@ module.exports = class HarmonyImportDependencyParserPlugin { ) return; const settings = rootInfo.tagInfo.data; - const members = rightPart.getMembers(); + const members = + /** @type {(() => string[])} */ + (rightPart.getMembers)(); const dep = new HarmonyEvaluatedImportSpecifierDependency( settings.source, settings.sourceOrder, @@ -280,6 +226,7 @@ module.exports = class HarmonyImportDependencyParserPlugin { members, membersOptionals ); + /** @type {Range[]} */ const ranges = memberRanges.slice( 0, memberRanges.length - (members.length - nonOptionalMembers.length) @@ -326,6 +273,7 @@ module.exports = class HarmonyImportDependencyParserPlugin { members, membersOptionals ); + /** @type {Range[]} */ const ranges = memberRanges.slice( 0, memberRanges.length - (members.length - nonOptionalMembers.length) @@ -355,7 +303,8 @@ module.exports = class HarmonyImportDependencyParserPlugin { ); // only in case when we strictly follow the spec we need a special case here dep.namespaceObjectAsContext = - members.length > 0 && this.strictThisContextOnImports; + members.length > 0 && + /** @type {boolean} */ (this.strictThisContextOnImports); dep.loc = /** @type {DependencyLocation} */ (expr.loc); parser.state.module.addDependency(dep); if (args) parser.walkExpressions(args); @@ -374,17 +323,18 @@ module.exports = class HarmonyImportDependencyParserPlugin { } const dependencies = requests.map(request => { const dep = new HarmonyAcceptImportDependency(request); - dep.loc = expr.loc; + dep.loc = /** @type {DependencyLocation} */ (expr.loc); parser.state.module.addDependency(dep); return dep; }); if (dependencies.length > 0) { const dep = new HarmonyAcceptDependency( - expr.range, + /** @type {Range} */ + (expr.range), dependencies, true ); - dep.loc = expr.loc; + dep.loc = /** @type {DependencyLocation} */ (expr.loc); parser.state.module.addDependency(dep); } } @@ -398,17 +348,18 @@ module.exports = class HarmonyImportDependencyParserPlugin { } const dependencies = requests.map(request => { const dep = new HarmonyAcceptImportDependency(request); - dep.loc = expr.loc; + dep.loc = /** @type {DependencyLocation} */ (expr.loc); parser.state.module.addDependency(dep); return dep; }); if (dependencies.length > 0) { const dep = new HarmonyAcceptDependency( - expr.range, + /** @type {Range} */ + (expr.range), dependencies, false ); - dep.loc = expr.loc; + dep.loc = /** @type {DependencyLocation} */ (expr.loc); parser.state.module.addDependency(dep); } } @@ -417,6 +368,3 @@ module.exports = class HarmonyImportDependencyParserPlugin { }; module.exports.harmonySpecifierTag = harmonySpecifierTag; -// TODO remove it in webpack@6 in favor getAttributes -module.exports.getAssertions = getAttributes; -module.exports.getAttributes = getAttributes; diff --git a/node_modules/webpack/lib/dependencies/HarmonyImportSpecifierDependency.js b/node_modules/webpack/lib/dependencies/HarmonyImportSpecifierDependency.js index 45f9cdf..3ea38c1 100644 --- a/node_modules/webpack/lib/dependencies/HarmonyImportSpecifierDependency.js +++ b/node_modules/webpack/lib/dependencies/HarmonyImportSpecifierDependency.js @@ -42,7 +42,7 @@ const { ExportPresenceModes } = HarmonyImportDependency; class HarmonyImportSpecifierDependency extends HarmonyImportDependency { /** - * @param {TODO} request request + * @param {string} request request * @param {number} sourceOrder source order * @param {string[]} ids ids * @param {string} name name @@ -67,7 +67,6 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency { this.range = range; this.idRanges = idRanges; this.exportPresenceMode = exportPresenceMode; - /** @type {boolean | undefined} */ this.namespaceObjectAsContext = false; this.call = undefined; this.directImport = undefined; @@ -105,7 +104,7 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency { getIds(moduleGraph) { const meta = moduleGraph.getMetaIfExisting(this); if (meta === undefined) return this.ids; - const ids = meta[idsSymbol]; + const ids = meta[/** @type {keyof object} */ (idsSymbol)]; return ids !== undefined ? ids : this.ids; } @@ -115,7 +114,8 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency { * @returns {void} */ setIds(moduleGraph, ids) { - moduleGraph.getMeta(this)[idsSymbol] = ids; + /** @type {TODO} */ + (moduleGraph.getMeta(this))[idsSymbol] = ids; } /** @@ -149,7 +149,9 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency { if (ids.length === 0) return this._getReferencedExportsInDestructuring(); let namespaceObjectAsContext = this.namespaceObjectAsContext; if (ids[0] === "default") { - const selfModule = moduleGraph.getParentModule(this); + const selfModule = + /** @type {Module} */ + (moduleGraph.getParentModule(this)); const importedModule = /** @type {Module} */ (moduleGraph.getModule(this)); @@ -196,9 +198,8 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency { refs.push(ids ? ids.concat([id]) : [id]); } return refs; - } else { - return ids ? [ids] : Dependency.EXPORTS_OBJECT_REFERENCED; } + return ids ? [ids] : Dependency.EXPORTS_OBJECT_REFERENCED; } /** @@ -208,9 +209,12 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency { _getEffectiveExportPresenceLevel(moduleGraph) { if (this.exportPresenceMode !== ExportPresenceModes.AUTO) return this.exportPresenceMode; - const buildMeta = /** @type {BuildMeta} */ ( - moduleGraph.getParentModule(this).buildMeta - ); + const buildMeta = + /** @type {BuildMeta} */ + ( + /** @type {Module} */ + (moduleGraph.getParentModule(this)).buildMeta + ); return buildMeta.strictHarmonyModule ? ExportPresenceModes.ERROR : ExportPresenceModes.WARN; @@ -344,14 +348,36 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen } if (dep.referencedPropertiesInDestructuring) { - const prefixedIds = ids[0] === "default" ? ids.slice(1) : ids; - for (let { + let prefixedIds = ids; + + if (ids[0] === "default") { + const selfModule = + /** @type {Module} */ + (moduleGraph.getParentModule(dep)); + const importedModule = + /** @type {Module} */ + (moduleGraph.getModule(dep)); + const exportsType = importedModule.getExportsType( + moduleGraph, + /** @type {BuildMeta} */ + (selfModule.buildMeta).strictHarmonyModule + ); + if ( + (exportsType === "default-only" || + exportsType === "default-with-named") && + ids.length >= 1 + ) { + prefixedIds = ids.slice(1); + } + } + + for (const { id, shorthand, range } of dep.referencedPropertiesInDestructuring) { const concatedIds = prefixedIds.concat([id]); - const module = moduleGraph.getModule(dep); + const module = /** @type {Module} */ (moduleGraph.getModule(dep)); const used = moduleGraph .getExportsInfo(module) .getUsedName(concatedIds, runtime); @@ -360,11 +386,13 @@ HarmonyImportSpecifierDependency.Template = class HarmonyImportSpecifierDependen const name = concatedIds[concatedIds.length - 1]; if (newName === name) continue; - const comment = Template.toNormalComment(name) + " "; + const comment = `${Template.toNormalComment(name)} `; const key = comment + JSON.stringify(newName); source.replace( - range[0], - range[1] - 1, + /** @type {Range} */ + (range)[0], + /** @type {Range} */ + (range)[1] - 1, shorthand ? `${key}: ${name}` : `${key}` ); } diff --git a/node_modules/webpack/lib/dependencies/ImportDependency.js b/node_modules/webpack/lib/dependencies/ImportDependency.js index 1c81427..1368d40 100644 --- a/node_modules/webpack/lib/dependencies/ImportDependency.js +++ b/node_modules/webpack/lib/dependencies/ImportDependency.js @@ -124,7 +124,7 @@ ImportDependency.Template = class ImportDependencyTemplate extends ( ); const content = runtimeTemplate.moduleNamespacePromise({ chunkGraph, - block: block, + block, module: /** @type {Module} */ (moduleGraph.getModule(dep)), request: dep.request, strict: /** @type {BuildMeta} */ (module.buildMeta).strictHarmonyModule, diff --git a/node_modules/webpack/lib/dependencies/ImportMetaContextDependencyParserPlugin.js b/node_modules/webpack/lib/dependencies/ImportMetaContextDependencyParserPlugin.js index 86a624c..753f043 100644 --- a/node_modules/webpack/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +++ b/node_modules/webpack/lib/dependencies/ImportMetaContextDependencyParserPlugin.js @@ -57,14 +57,14 @@ module.exports = class ImportMetaContextDependencyParserPlugin { apply(parser) { parser.hooks.evaluateIdentifier .for("import.meta.webpackContext") - .tap("ImportMetaContextDependencyParserPlugin", expr => { - return evaluateToIdentifier( + .tap("ImportMetaContextDependencyParserPlugin", expr => + evaluateToIdentifier( "import.meta.webpackContext", "import.meta", () => ["webpackContext"], true - )(expr); - }); + )(expr) + ); parser.hooks.call .for("import.meta.webpackContext") .tap("ImportMetaContextDependencyParserPlugin", expr => { @@ -293,7 +293,7 @@ module.exports = class ImportMetaContextDependencyParserPlugin { /** @type {Range} */ (expr.range) ); dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.current.addDependency(dep); return true; }); diff --git a/node_modules/webpack/lib/dependencies/ImportMetaPlugin.js b/node_modules/webpack/lib/dependencies/ImportMetaPlugin.js index 8bbeab5..ff9231d 100644 --- a/node_modules/webpack/lib/dependencies/ImportMetaPlugin.js +++ b/node_modules/webpack/lib/dependencies/ImportMetaPlugin.js @@ -49,9 +49,7 @@ class ImportMetaPlugin { * @param {NormalModule} module module * @returns {string} file url */ - const getUrl = module => { - return pathToFileURL(module.resource).toString(); - }; + const getUrl = module => pathToFileURL(module.resource).toString(); /** * @param {Parser} parser parser parser * @param {JavascriptParserOptions} parserOptions parserOptions @@ -76,8 +74,8 @@ class ImportMetaPlugin { return; } - /// import.meta direct /// - const webpackVersion = parseInt( + // import.meta direct + const webpackVersion = Number.parseInt( require("../../package.json").version, 10 ); @@ -90,7 +88,7 @@ class ImportMetaPlugin { */ const importMetaUnknownProperty = members => `${Template.toNormalComment( - "unsupported import.meta." + members.join(".") + `unsupported import.meta.${members.join(".")}` )} undefined${propertyAccess(members, 1)}`; parser.hooks.typeof .for("import.meta") @@ -162,7 +160,7 @@ class ImportMetaPlugin { evaluateToIdentifier("import.meta", "import.meta", () => [], true) ); - /// import.meta.url /// + // import.meta.url parser.hooks.typeof .for("import.meta.url") .tap( @@ -185,13 +183,13 @@ class ImportMetaPlugin { .tap(PLUGIN_NAME, evaluateToString("string")); parser.hooks.evaluateIdentifier .for("import.meta.url") - .tap(PLUGIN_NAME, expr => { - return new BasicEvaluatedExpression() + .tap(PLUGIN_NAME, expr => + new BasicEvaluatedExpression() .setString(getUrl(parser.state.module)) - .setRange(/** @type {Range} */ (expr.range)); - }); + .setRange(/** @type {Range} */ (expr.range)) + ); - /// import.meta.webpack /// + // import.meta.webpack parser.hooks.typeof .for("import.meta.webpack") .tap( @@ -211,7 +209,7 @@ class ImportMetaPlugin { .for("import.meta.webpack") .tap(PLUGIN_NAME, evaluateToNumber(webpackVersion)); - /// Unknown properties /// + // Unknown properties parser.hooks.unhandledExpressionMemberChain .for("import.meta") .tap(PLUGIN_NAME, (expr, members) => { diff --git a/node_modules/webpack/lib/dependencies/ImportParserPlugin.js b/node_modules/webpack/lib/dependencies/ImportParserPlugin.js index 7efffe5..52fdb93 100644 --- a/node_modules/webpack/lib/dependencies/ImportParserPlugin.js +++ b/node_modules/webpack/lib/dependencies/ImportParserPlugin.js @@ -8,20 +8,20 @@ const AsyncDependenciesBlock = require("../AsyncDependenciesBlock"); const CommentCompilationWarning = require("../CommentCompilationWarning"); const UnsupportedFeatureWarning = require("../UnsupportedFeatureWarning"); +const { getImportAttributes } = require("../javascript/JavascriptParser"); const ContextDependencyHelpers = require("./ContextDependencyHelpers"); -const { getAttributes } = require("./HarmonyImportDependencyParserPlugin"); const ImportContextDependency = require("./ImportContextDependency"); const ImportDependency = require("./ImportDependency"); const ImportEagerDependency = require("./ImportEagerDependency"); const ImportWeakDependency = require("./ImportWeakDependency"); -/** @typedef {import("estree").ImportExpression} ImportExpression */ /** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */ /** @typedef {import("../ChunkGroup").RawChunkGroupOptions} RawChunkGroupOptions */ /** @typedef {import("../ContextModule").ContextMode} ContextMode */ /** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */ /** @typedef {import("../Module").BuildMeta} BuildMeta */ /** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */ +/** @typedef {import("../javascript/JavascriptParser").ImportExpression} ImportExpression */ /** @typedef {import("../javascript/JavascriptParser").Range} Range */ class ImportParserPlugin { @@ -85,7 +85,7 @@ class ImportParserPlugin { parser.state.module.addWarning( new CommentCompilationWarning( `Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`, - comment.loc + /** @type {DependencyLocation} */ (comment.loc) ) ); } @@ -100,11 +100,9 @@ class ImportParserPlugin { /** @type {DependencyLocation} */ (expr.loc) ) ); - } else { + } else if (importOptions.webpackIgnore) { // Do not instrument `import()` if `webpackIgnore` is `true` - if (importOptions.webpackIgnore) { - return false; - } + return false; } } if (importOptions.webpackChunkName !== undefined) { @@ -128,7 +126,7 @@ class ImportParserPlugin { ) ); } else { - mode = importOptions.webpackMode; + mode = /** @type {ContextMode} */ (importOptions.webpackMode); } } if (importOptions.webpackPrefetch !== undefined) { @@ -164,7 +162,9 @@ class ImportParserPlugin { typeof importOptions.webpackFetchPriority === "string" && ["high", "low", "auto"].includes(importOptions.webpackFetchPriority) ) { - groupOptions.fetchPriority = importOptions.webpackFetchPriority; + groupOptions.fetchPriority = + /** @type {"low" | "high" | "auto"} */ + (importOptions.webpackFetchPriority); } else { parser.state.module.addWarning( new UnsupportedFeatureWarning( @@ -220,12 +220,10 @@ class ImportParserPlugin { /** @type {DependencyLocation} */ (expr.loc) ) ); + } else if (typeof importOptions.webpackExports === "string") { + exports = [[importOptions.webpackExports]]; } else { - if (typeof importOptions.webpackExports === "string") { - exports = [[importOptions.webpackExports]]; - } else { - exports = exportsFromEnumerable(importOptions.webpackExports); - } + exports = exportsFromEnumerable(importOptions.webpackExports); } } } @@ -251,7 +249,7 @@ class ImportParserPlugin { if (exports) { parser.state.module.addWarning( new UnsupportedFeatureWarning( - `\`webpackExports\` could not be used with destructuring assignment.`, + "`webpackExports` could not be used with destructuring assignment.", /** @type {DependencyLocation} */ (expr.loc) ) ); @@ -262,7 +260,7 @@ class ImportParserPlugin { } if (param.isString()) { - const attributes = getAttributes(expr); + const attributes = getImportAttributes(expr); if (mode === "eager") { const dep = new ImportEagerDependency( @@ -296,45 +294,44 @@ class ImportParserPlugin { attributes ); dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); depBlock.addDependency(dep); parser.state.current.addBlock(depBlock); } return true; - } else { - if (mode === "weak") { - mode = "async-weak"; - } - const dep = ContextDependencyHelpers.create( - ImportContextDependency, - /** @type {Range} */ (expr.range), - param, - expr, - this.options, - { - chunkName, - groupOptions, - include, - exclude, - mode, - namespaceObject: /** @type {BuildMeta} */ ( - parser.state.module.buildMeta - ).strictHarmonyModule - ? "strict" - : true, - typePrefix: "import()", - category: "esm", - referencedExports: exports, - attributes: getAttributes(expr) - }, - parser - ); - if (!dep) return; - dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; - parser.state.current.addDependency(dep); - return true; } + if (mode === "weak") { + mode = "async-weak"; + } + const dep = ContextDependencyHelpers.create( + ImportContextDependency, + /** @type {Range} */ (expr.range), + param, + expr, + this.options, + { + chunkName, + groupOptions, + include, + exclude, + mode, + namespaceObject: /** @type {BuildMeta} */ ( + parser.state.module.buildMeta + ).strictHarmonyModule + ? "strict" + : true, + typePrefix: "import()", + category: "esm", + referencedExports: exports, + attributes: getImportAttributes(expr) + }, + parser + ); + if (!dep) return; + dep.loc = /** @type {DependencyLocation} */ (expr.loc); + dep.optional = Boolean(parser.scope.inTry); + parser.state.current.addDependency(dep); + return true; }); } } diff --git a/node_modules/webpack/lib/dependencies/JsonExportsDependency.js b/node_modules/webpack/lib/dependencies/JsonExportsDependency.js index c688e00..39ce927 100644 --- a/node_modules/webpack/lib/dependencies/JsonExportsDependency.js +++ b/node_modules/webpack/lib/dependencies/JsonExportsDependency.js @@ -14,33 +14,35 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../json/JsonData")} JsonData */ +/** @typedef {import("../json/JsonData").RawJsonData} RawJsonData */ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ +/** + * @param {RawJsonData} data data + * @returns {TODO} value + */ const getExportsFromData = data => { if (data && typeof data === "object") { if (Array.isArray(data)) { return data.length < 100 - ? data.map((item, idx) => { - return { - name: `${idx}`, - canMangle: true, - exports: getExportsFromData(item) - }; - }) + ? data.map((item, idx) => ({ + name: `${idx}`, + canMangle: true, + exports: getExportsFromData(item) + })) : undefined; - } else { - const exports = []; - for (const key of Object.keys(data)) { - exports.push({ - name: key, - canMangle: true, - exports: getExportsFromData(data[key]) - }); - } - return exports; } + const exports = []; + for (const key of Object.keys(data)) { + exports.push({ + name: key, + canMangle: true, + exports: getExportsFromData(data[key]) + }); + } + return exports; } return undefined; }; @@ -65,7 +67,9 @@ class JsonExportsDependency extends NullDependency { */ getExports(moduleGraph) { return { - exports: getExportsFromData(this.data && this.data.get()), + exports: getExportsFromData( + this.data && /** @type {RawJsonData} */ (this.data.get()) + ), dependencies: undefined }; } diff --git a/node_modules/webpack/lib/dependencies/LoaderPlugin.js b/node_modules/webpack/lib/dependencies/LoaderPlugin.js index dd24af0..3612cbe 100644 --- a/node_modules/webpack/lib/dependencies/LoaderPlugin.js +++ b/node_modules/webpack/lib/dependencies/LoaderPlugin.js @@ -10,17 +10,12 @@ const LazySet = require("../util/LazySet"); const LoaderDependency = require("./LoaderDependency"); const LoaderImportDependency = require("./LoaderImportDependency"); +/** @typedef {import("../../declarations/LoaderContext").LoaderPluginLoaderContext} LoaderPluginLoaderContext */ /** @typedef {import("../Compilation").DepConstructor} DepConstructor */ +/** @typedef {import("../Compilation").ExecuteModuleResult} ExecuteModuleResult */ /** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("../Module")} Module */ - -/** - * @callback LoadModuleCallback - * @param {(Error | null)=} err error object - * @param {string | Buffer=} source source code - * @param {object=} map source map - * @param {Module=} module loaded module if successful - */ +/** @typedef {import("../Module").BuildInfo} BuildInfo */ /** * @callback ImportModuleCallback @@ -66,11 +61,6 @@ class LoaderPlugin { NormalModule.getCompilationHooks(compilation).loader.tap( "LoaderPlugin", loaderContext => { - /** - * @param {string} request the request string to load the module from - * @param {LoadModuleCallback} callback callback returning the loaded module or error - * @returns {void} - */ loaderContext.loadModule = (request, callback) => { const dep = new LoaderDependency(request); dep.loc = { @@ -86,16 +76,26 @@ class LoaderPlugin { ) ); } + const oldFactorizeQueueContext = + compilation.factorizeQueue.getContext(); + compilation.factorizeQueue.setContext("load-module"); + const oldAddModuleQueueContext = + compilation.addModuleQueue.getContext(); + compilation.addModuleQueue.setContext("load-module"); compilation.buildQueue.increaseParallelism(); compilation.handleModuleCreation( { factory, dependencies: [dep], - originModule: loaderContext._module, + originModule: + /** @type {NormalModule} */ + (loaderContext._module), context: loaderContext.context, recursive: false }, err => { + compilation.factorizeQueue.setContext(oldFactorizeQueueContext); + compilation.addModuleQueue.setContext(oldAddModuleQueueContext); compilation.buildQueue.decreaseParallelism(); if (err) { return callback(err); @@ -117,7 +117,8 @@ class LoaderPlugin { ) ); } - let source, map; + let map; + let source; if (moduleSource.sourceAndMap) { const sourceAndMap = moduleSource.sourceAndMap(); map = sourceAndMap.map; @@ -149,15 +150,20 @@ class LoaderPlugin { for (const d of buildDependencies) { loaderContext.addBuildDependency(d); } - return callback(null, source, map, referencedModule); + return callback( + null, + source, + /** @type {object | null} */ (map), + referencedModule + ); } ); }; /** * @param {string} request the request string to load the module from - * @param {ImportModuleOptions=} options options - * @param {ImportModuleCallback=} callback callback returning the exports + * @param {ImportModuleOptions} options options + * @param {ImportModuleCallback} callback callback returning the exports * @returns {void} */ const importModule = (request, options, callback) => { @@ -175,12 +181,21 @@ class LoaderPlugin { ) ); } + + const oldFactorizeQueueContext = + compilation.factorizeQueue.getContext(); + compilation.factorizeQueue.setContext("import-module"); + const oldAddModuleQueueContext = + compilation.addModuleQueue.getContext(); + compilation.addModuleQueue.setContext("import-module"); compilation.buildQueue.increaseParallelism(); compilation.handleModuleCreation( { factory, dependencies: [dep], - originModule: loaderContext._module, + originModule: + /** @type {NormalModule} */ + (loaderContext._module), contextInfo: { issuerLayer: options.layer }, @@ -189,6 +204,8 @@ class LoaderPlugin { checkCycle: true }, err => { + compilation.factorizeQueue.setContext(oldFactorizeQueueContext); + compilation.addModuleQueue.setContext(oldAddModuleQueueContext); compilation.buildQueue.decreaseParallelism(); if (err) { return callback(err); @@ -197,6 +214,7 @@ class LoaderPlugin { if (!referencedModule) { return callback(new Error("Cannot load the module")); } + compilation.buildQueue.increaseParallelism(); compilation.executeModule( referencedModule, { @@ -206,43 +224,55 @@ class LoaderPlugin { } }, (err, result) => { + compilation.buildQueue.decreaseParallelism(); if (err) return callback(err); - for (const d of result.fileDependencies) { + const { + fileDependencies, + contextDependencies, + missingDependencies, + buildDependencies, + cacheable, + assets, + exports + } = /** @type {ExecuteModuleResult} */ (result); + for (const d of fileDependencies) { loaderContext.addDependency(d); } - for (const d of result.contextDependencies) { + for (const d of contextDependencies) { loaderContext.addContextDependency(d); } - for (const d of result.missingDependencies) { + for (const d of missingDependencies) { loaderContext.addMissingDependency(d); } - for (const d of result.buildDependencies) { + for (const d of buildDependencies) { loaderContext.addBuildDependency(d); } - if (result.cacheable === false) - loaderContext.cacheable(false); - for (const [name, { source, info }] of result.assets) { - const { buildInfo } = loaderContext._module; + if (cacheable === false) loaderContext.cacheable(false); + for (const [name, { source, info }] of assets) { + const buildInfo = + /** @type {BuildInfo} */ + ( + /** @type {NormalModule} */ (loaderContext._module) + .buildInfo + ); if (!buildInfo.assets) { buildInfo.assets = Object.create(null); buildInfo.assetsInfo = new Map(); } - buildInfo.assets[name] = source; - buildInfo.assetsInfo.set(name, info); + /** @type {NonNullable} */ + (buildInfo.assets)[name] = source; + /** @type {NonNullable} */ + (buildInfo.assetsInfo).set(name, info); } - callback(null, result.exports); + callback(null, exports); } ); } ); }; - /** - * @param {string} request the request string to load the module from - * @param {ImportModuleOptions} options options - * @param {ImportModuleCallback=} callback callback returning the exports - * @returns {Promise | void} exports - */ + // eslint-disable-next-line no-warning-comments + // @ts-ignore Overloading doesn't work loaderContext.importModule = (request, options, callback) => { if (!callback) { return new Promise((resolve, reject) => { diff --git a/node_modules/webpack/lib/dependencies/LocalModule.js b/node_modules/webpack/lib/dependencies/LocalModule.js index c7e2338..7748a06 100644 --- a/node_modules/webpack/lib/dependencies/LocalModule.js +++ b/node_modules/webpack/lib/dependencies/LocalModule.js @@ -29,7 +29,7 @@ class LocalModule { * @returns {string} variable name */ variableName() { - return "__WEBPACK_LOCAL_MODULE_" + this.idx + "__"; + return `__WEBPACK_LOCAL_MODULE_${this.idx}__`; } /** diff --git a/node_modules/webpack/lib/dependencies/LocalModulesHelpers.js b/node_modules/webpack/lib/dependencies/LocalModulesHelpers.js index 21157eb..bcb947c 100644 --- a/node_modules/webpack/lib/dependencies/LocalModulesHelpers.js +++ b/node_modules/webpack/lib/dependencies/LocalModulesHelpers.js @@ -17,8 +17,8 @@ const LocalModule = require("./LocalModule"); const lookup = (parent, mod) => { if (mod.charAt(0) !== ".") return mod; - var path = parent.split("/"); - var segments = mod.split("/"); + const path = parent.split("/"); + const segments = mod.split("/"); path.pop(); for (let i = 0; i < segments.length; i++) { @@ -38,7 +38,7 @@ const lookup = (parent, mod) => { * @param {string} name name * @returns {LocalModule} local module */ -exports.addLocalModule = (state, name) => { +module.exports.addLocalModule = (state, name) => { if (!state.localModules) { state.localModules = []; } @@ -53,7 +53,7 @@ exports.addLocalModule = (state, name) => { * @param {string} [namedModule] named module * @returns {LocalModule | null} local module or null */ -exports.getLocalModule = (state, name, namedModule) => { +module.exports.getLocalModule = (state, name, namedModule) => { if (!state.localModules) return null; if (namedModule) { // resolve dependency name relative to the defining named module diff --git a/node_modules/webpack/lib/dependencies/ModuleDecoratorDependency.js b/node_modules/webpack/lib/dependencies/ModuleDecoratorDependency.js index c5ae9f3..fd2b3fe 100644 --- a/node_modules/webpack/lib/dependencies/ModuleDecoratorDependency.js +++ b/node_modules/webpack/lib/dependencies/ModuleDecoratorDependency.js @@ -50,7 +50,7 @@ class ModuleDecoratorDependency extends NullDependency { * @returns {string | null} an identifier to merge equal requests */ getResourceIdentifier() { - return `self`; + return "self"; } /** diff --git a/node_modules/webpack/lib/dependencies/ProvidedDependency.js b/node_modules/webpack/lib/dependencies/ProvidedDependency.js index ae85447..9f1d3f6 100644 --- a/node_modules/webpack/lib/dependencies/ProvidedDependency.js +++ b/node_modules/webpack/lib/dependencies/ProvidedDependency.js @@ -64,7 +64,7 @@ class ProvidedDependency extends ModuleDependency { * @returns {(string[] | ReferencedExport)[]} referenced exports */ getReferencedExports(moduleGraph, runtime) { - let ids = this.ids; + const ids = this.ids; if (ids.length === 0) return Dependency.EXPORTS_OBJECT_REFERENCED; return [ids]; } diff --git a/node_modules/webpack/lib/dependencies/PureExpressionDependency.js b/node_modules/webpack/lib/dependencies/PureExpressionDependency.js index 272cce2..3c4312c 100644 --- a/node_modules/webpack/lib/dependencies/PureExpressionDependency.js +++ b/node_modules/webpack/lib/dependencies/PureExpressionDependency.js @@ -77,12 +77,12 @@ class PureExpressionDependency extends NullDependency { hash.update("null"); } else { hash.update( - runtimeToString(runtimeCondition) + - "|" + - runtimeToString(context.runtime) + `${runtimeToString(runtimeCondition)}|${runtimeToString( + context.runtime + )}` ); } - hash.update(this.range + ""); + hash.update(String(this.range)); } /** @@ -136,11 +136,11 @@ PureExpressionDependency.Template = class PureExpressionDependencyTemplate exten const dep = /** @type {PureExpressionDependency} */ (dependency); const runtimeCondition = dep._getRuntimeCondition(moduleGraph, runtime); if (runtimeCondition === true) { - return; + // Do nothing } else if (runtimeCondition === false) { source.insert( dep.range[0], - `(/* unused pure expression or super */ null && (` + "(/* unused pure expression or super */ null && (" ); source.insert(dep.range[1], "))"); } else { diff --git a/node_modules/webpack/lib/dependencies/RequireContextDependencyParserPlugin.js b/node_modules/webpack/lib/dependencies/RequireContextDependencyParserPlugin.js index 8074076..02ce1c1 100644 --- a/node_modules/webpack/lib/dependencies/RequireContextDependencyParserPlugin.js +++ b/node_modules/webpack/lib/dependencies/RequireContextDependencyParserPlugin.js @@ -56,7 +56,7 @@ module.exports = class RequireContextDependencyParserPlugin { /** @type {Range} */ (expr.range) ); dep.loc = /** @type {DependencyLocation} */ (expr.loc); - dep.optional = !!parser.scope.inTry; + dep.optional = Boolean(parser.scope.inTry); parser.state.current.addDependency(dep); return true; } diff --git a/node_modules/webpack/lib/dependencies/RuntimeRequirementsDependency.js b/node_modules/webpack/lib/dependencies/RuntimeRequirementsDependency.js index 65752df..714567b 100644 --- a/node_modules/webpack/lib/dependencies/RuntimeRequirementsDependency.js +++ b/node_modules/webpack/lib/dependencies/RuntimeRequirementsDependency.js @@ -36,7 +36,7 @@ class RuntimeRequirementsDependency extends NullDependency { */ updateHash(hash, context) { if (this._hashUpdate === undefined) { - this._hashUpdate = Array.from(this.runtimeRequirements).join() + ""; + this._hashUpdate = `${Array.from(this.runtimeRequirements).join()}`; } hash.update(this._hashUpdate); } diff --git a/node_modules/webpack/lib/dependencies/SystemPlugin.js b/node_modules/webpack/lib/dependencies/SystemPlugin.js index 8099337..367020d 100644 --- a/node_modules/webpack/lib/dependencies/SystemPlugin.js +++ b/node_modules/webpack/lib/dependencies/SystemPlugin.js @@ -73,7 +73,7 @@ class SystemPlugin { PLUGIN_NAME, expressionIsUnsupported( parser, - name + " is not supported by webpack." + `${name} is not supported by webpack.` ) ); }; @@ -125,7 +125,8 @@ class SystemPlugin { /** @type {import("estree").Literal} */ (expr.arguments[0]), loc: expr.loc, - range: expr.range + range: expr.range, + options: null }); }); }; diff --git a/node_modules/webpack/lib/dependencies/URLDependency.js b/node_modules/webpack/lib/dependencies/URLDependency.js index eedd4fd..0d5b0a5 100644 --- a/node_modules/webpack/lib/dependencies/URLDependency.js +++ b/node_modules/webpack/lib/dependencies/URLDependency.js @@ -30,9 +30,9 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ -const getIgnoredRawDataUrlModule = memoize(() => { - return new RawDataUrlModule("data:,", `ignored-asset`, `(ignored asset)`); -}); +const getIgnoredRawDataUrlModule = memoize( + () => new RawDataUrlModule("data:,", "ignored-asset", "(ignored asset)") +); class URLDependency extends ModuleDependency { /** diff --git a/node_modules/webpack/lib/dependencies/URLPlugin.js b/node_modules/webpack/lib/dependencies/URLPlugin.js index 7ae95ea..0409f06 100644 --- a/node_modules/webpack/lib/dependencies/URLPlugin.js +++ b/node_modules/webpack/lib/dependencies/URLPlugin.js @@ -6,15 +6,20 @@ "use strict"; const { pathToFileURL } = require("url"); +const CommentCompilationWarning = require("../CommentCompilationWarning"); const { JAVASCRIPT_MODULE_TYPE_AUTO, JAVASCRIPT_MODULE_TYPE_ESM } = require("../ModuleTypeConstants"); +const RuntimeGlobals = require("../RuntimeGlobals"); +const UnsupportedFeatureWarning = require("../UnsupportedFeatureWarning"); const BasicEvaluatedExpression = require("../javascript/BasicEvaluatedExpression"); const { approve } = require("../javascript/JavascriptParserHelpers"); const InnerGraph = require("../optimize/InnerGraph"); +const ConstDependency = require("./ConstDependency"); const URLDependency = require("./URLDependency"); +/** @typedef {import("estree").MemberExpression} MemberExpression */ /** @typedef {import("estree").NewExpression} NewExpressionNode */ /** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */ /** @typedef {import("../Compiler")} Compiler */ @@ -44,8 +49,26 @@ class URLPlugin { * @param {NormalModule} module module * @returns {URL} file url */ - const getUrl = module => { - return pathToFileURL(module.resource); + const getUrl = module => pathToFileURL(module.resource); + + /** + * @param {Parser} parser parser parser + * @param {MemberExpression} arg arg + * @returns {boolean} true when it is `meta.url`, otherwise false + */ + const isMetaUrl = (parser, arg) => { + const chain = parser.extractMemberExpressionChain(arg); + + if ( + chain.members.length !== 1 || + chain.object.type !== "MetaProperty" || + chain.object.meta.name !== "import" || + chain.object.property.name !== "meta" || + chain.members[0] !== "url" + ) + return false; + + return true; }; /** @@ -72,16 +95,7 @@ class URLPlugin { ) return; - const chain = parser.extractMemberExpressionChain(arg2); - - if ( - chain.members.length !== 1 || - chain.object.type !== "MetaProperty" || - chain.object.meta.name !== "import" || - chain.object.property.name !== "meta" || - chain.members[0] !== "url" - ) - return; + if (!isMetaUrl(parser, arg2)) return; return parser.evaluateExpression(arg1).asString(); }; @@ -100,6 +114,52 @@ class URLPlugin { }); parser.hooks.new.for("URL").tap(PLUGIN_NAME, _expr => { const expr = /** @type {NewExpressionNode} */ (_expr); + const { options: importOptions, errors: commentErrors } = + parser.parseCommentOptions(/** @type {Range} */ (expr.range)); + + if (commentErrors) { + for (const e of commentErrors) { + const { comment } = e; + parser.state.module.addWarning( + new CommentCompilationWarning( + `Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`, + /** @type {DependencyLocation} */ (comment.loc) + ) + ); + } + } + + if (importOptions && importOptions.webpackIgnore !== undefined) { + if (typeof importOptions.webpackIgnore !== "boolean") { + parser.state.module.addWarning( + new UnsupportedFeatureWarning( + `\`webpackIgnore\` expected a boolean, but received: ${importOptions.webpackIgnore}.`, + /** @type {DependencyLocation} */ (expr.loc) + ) + ); + return; + } else if (importOptions.webpackIgnore) { + if (expr.arguments.length !== 2) return; + + const [, arg2] = expr.arguments; + + if ( + arg2.type !== "MemberExpression" || + !isMetaUrl(parser, arg2) + ) + return; + + const dep = new ConstDependency( + RuntimeGlobals.baseURI, + /** @type {Range} */ (arg2.range), + [RuntimeGlobals.baseURI] + ); + dep.loc = /** @type {DependencyLocation} */ (expr.loc); + parser.state.module.addPresentationalDependency(dep); + + return true; + } + } const request = getUrlRequest(expr); diff --git a/node_modules/webpack/lib/dependencies/WorkerPlugin.js b/node_modules/webpack/lib/dependencies/WorkerPlugin.js index 1d5e0e3..4da16c5 100644 --- a/node_modules/webpack/lib/dependencies/WorkerPlugin.js +++ b/node_modules/webpack/lib/dependencies/WorkerPlugin.js @@ -45,15 +45,14 @@ const WorkerDependency = require("./WorkerDependency"); /** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */ /** @typedef {import("../javascript/JavascriptParser")} Parser */ /** @typedef {import("../javascript/JavascriptParser").Range} Range */ +/** @typedef {import("../util/createHash").Algorithm} Algorithm */ /** @typedef {import("./HarmonyImportDependencyParserPlugin").HarmonySettings} HarmonySettings */ /** * @param {NormalModule} module module * @returns {string} url */ -const getUrl = module => { - return pathToFileURL(module.resource).toString(); -}; +const getUrl = module => pathToFileURL(module.resource).toString(); const WorkerSpecifierTag = Symbol("worker specifier tag"); @@ -82,6 +81,7 @@ class WorkerPlugin { this._module = module; this._workerPublicPath = workerPublicPath; } + /** * Apply the plugin * @param {Compiler} compiler the compiler instance @@ -251,14 +251,14 @@ class WorkerPlugin { parser.state.module.addWarning( new CommentCompilationWarning( `Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`, - comment.loc + /** @type {DependencyLocation} */ (comment.loc) ) ); } } /** @type {EntryOptions} */ - let entryOptions = {}; + const entryOptions = {}; if (importOptions) { if (importOptions.webpackIgnore !== undefined) { @@ -269,10 +269,8 @@ class WorkerPlugin { /** @type {DependencyLocation} */ (expr.loc) ) ); - } else { - if (importOptions.webpackIgnore) { - return false; - } + } else if (importOptions.webpackIgnore) { + return false; } } if (importOptions.webpackEntryOptions !== undefined) { @@ -316,16 +314,19 @@ class WorkerPlugin { } if (entryOptions.runtime === undefined) { - let i = workerIndexMap.get(parser.state) || 0; + const i = workerIndexMap.get(parser.state) || 0; workerIndexMap.set(parser.state, i + 1); - let name = `${cachedContextify( + const name = `${cachedContextify( parser.state.module.identifier() )}|${i}`; - const hash = createHash(compilation.outputOptions.hashFunction); - hash.update(name); - const digest = /** @type {string} */ ( - hash.digest(compilation.outputOptions.hashDigest) + const hash = createHash( + /** @type {Algorithm} */ + (compilation.outputOptions.hashFunction) ); + hash.update(name); + const digest = + /** @type {string} */ + (hash.digest(compilation.outputOptions.hashDigest)); entryOptions.runtime = digest.slice( 0, compilation.outputOptions.hashDigestLength @@ -394,15 +395,13 @@ class WorkerPlugin { dep2.loc = /** @type {DependencyLocation} */ (expr.loc); parser.state.module.addPresentationalDependency(dep1); parser.state.module.addPresentationalDependency(dep2); - } else if (insertType === "argument") { - if (this._module) { - const dep = new ConstDependency( - ', { type: "module" }', - insertLocation - ); - dep.loc = /** @type {DependencyLocation} */ (expr.loc); - parser.state.module.addPresentationalDependency(dep); - } + } else if (insertType === "argument" && this._module) { + const dep = new ConstDependency( + ', { type: "module" }', + insertLocation + ); + dep.loc = /** @type {DependencyLocation} */ (expr.loc); + parser.state.module.addPresentationalDependency(dep); } parser.walkExpression(expr.callee); @@ -482,7 +481,9 @@ class WorkerPlugin { }; for (const item of options) { if (item === "...") { - DEFAULT_SYNTAX.forEach(processItem); + for (const itemFromDefault of DEFAULT_SYNTAX) { + processItem(itemFromDefault); + } } else processItem(item); } }; diff --git a/node_modules/webpack/lib/dependencies/processExportInfo.js b/node_modules/webpack/lib/dependencies/processExportInfo.js index 435c4ac..9bafcae 100644 --- a/node_modules/webpack/lib/dependencies/processExportInfo.js +++ b/node_modules/webpack/lib/dependencies/processExportInfo.js @@ -10,9 +10,11 @@ const { UsageState } = require("../ExportsInfo"); /** @typedef {import("../ExportsInfo").ExportInfo} ExportInfo */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ +/** @typedef {string[][]} ReferencedExports */ + /** * @param {RuntimeSpec} runtime the runtime - * @param {string[][]} referencedExports list of referenced exports, will be added to + * @param {ReferencedExports} referencedExports list of referenced exports, will be added to * @param {string[]} prefix export prefix * @param {ExportInfo=} exportInfo the export info * @param {boolean} defaultPointsToSelf when true, using default will reference itself diff --git a/node_modules/webpack/lib/electron/ElectronTargetPlugin.js b/node_modules/webpack/lib/electron/ElectronTargetPlugin.js index b62e4bf..e8c4e84 100644 --- a/node_modules/webpack/lib/electron/ElectronTargetPlugin.js +++ b/node_modules/webpack/lib/electron/ElectronTargetPlugin.js @@ -16,6 +16,7 @@ class ElectronTargetPlugin { constructor(context) { this._context = context; } + /** * Apply the plugin * @param {Compiler} compiler the compiler instance diff --git a/node_modules/webpack/lib/esm/ModuleChunkFormatPlugin.js b/node_modules/webpack/lib/esm/ModuleChunkFormatPlugin.js index c3f2f47..e6d1178 100644 --- a/node_modules/webpack/lib/esm/ModuleChunkFormatPlugin.js +++ b/node_modules/webpack/lib/esm/ModuleChunkFormatPlugin.js @@ -58,9 +58,9 @@ class ModuleChunkFormatPlugin { } else { source.add(`export const id = ${JSON.stringify(chunk.id)};\n`); source.add(`export const ids = ${JSON.stringify(chunk.ids)};\n`); - source.add(`export const modules = `); + source.add("export const modules = "); source.add(modules); - source.add(`;\n`); + source.add(";\n"); const runtimeModules = chunkGraph.getChunkRuntimeModulesInOrder(chunk); if (runtimeModules.length > 0) { @@ -103,7 +103,7 @@ class ModuleChunkFormatPlugin { compilation.outputOptions ), { - chunk: chunk, + chunk, contentHashType: "javascript" } ) diff --git a/node_modules/webpack/lib/esm/ModuleChunkLoadingRuntimeModule.js b/node_modules/webpack/lib/esm/ModuleChunkLoadingRuntimeModule.js index f5f1475..d0cf39b 100644 --- a/node_modules/webpack/lib/esm/ModuleChunkLoadingRuntimeModule.js +++ b/node_modules/webpack/lib/esm/ModuleChunkLoadingRuntimeModule.js @@ -17,6 +17,7 @@ const { getInitialChunkIds } = require("../javascript/StartupHelpers"); const compileBooleanMatcher = require("../util/compileBooleanMatcher"); const { getUndoPath } = require("../util/identifier"); +/** @typedef {import("../../declarations/WebpackOptions").Environment} Environment */ /** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../ChunkGraph")} ChunkGraph */ /** @typedef {import("../Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */ @@ -87,9 +88,12 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule { const compilation = /** @type {Compilation} */ (this.compilation); const chunkGraph = /** @type {ChunkGraph} */ (this.chunkGraph); const chunk = /** @type {Chunk} */ (this.chunk); + const environment = + /** @type {Environment} */ + (compilation.outputOptions.environment); const { runtimeTemplate, - outputOptions: { environment, importFunctionName, crossOriginLoading } + outputOptions: { importFunctionName, crossOriginLoading } } = compilation; const fn = RuntimeGlobals.ensureChunkHandlers; const withBaseURI = this._runtimeRequirements.has(RuntimeGlobals.baseURI); @@ -109,10 +113,12 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule { ModuleChunkLoadingRuntimeModule.getCompilationHooks(compilation); const withPrefetch = environment.document && - this._runtimeRequirements.has(RuntimeGlobals.prefetchChunkHandlers); + this._runtimeRequirements.has(RuntimeGlobals.prefetchChunkHandlers) && + chunk.hasChildByOrder(chunkGraph, "prefetch", true, chunkHasJs); const withPreload = environment.document && - this._runtimeRequirements.has(RuntimeGlobals.preloadChunkHandlers); + this._runtimeRequirements.has(RuntimeGlobals.preloadChunkHandlers) && + chunk.hasChildByOrder(chunkGraph, "preload", true, chunkHasJs); const conditionMap = chunkGraph.getChunkConditionMap(chunk, chunkHasJs); const hasJsMatcher = compileBooleanMatcher(conditionMap); const initialChunkIds = getInitialChunkIds(chunk, chunkGraph, chunkHasJs); @@ -219,10 +225,10 @@ class ModuleChunkLoadingRuntimeModule extends RuntimeModule { ] )});`, `var promise = Promise.race([promise, new Promise(${runtimeTemplate.expressionFunction( - `installedChunkData = installedChunks[chunkId] = [resolve]`, + "installedChunkData = installedChunks[chunkId] = [resolve]", "resolve" )})])`, - `promises.push(installedChunkData[1] = promise);` + "promises.push(installedChunkData[1] = promise);" ]), hasJsMatcher === true ? "}" diff --git a/node_modules/webpack/lib/formatLocation.js b/node_modules/webpack/lib/formatLocation.js index f42eea2..780d4a4 100644 --- a/node_modules/webpack/lib/formatLocation.js +++ b/node_modules/webpack/lib/formatLocation.js @@ -48,9 +48,8 @@ const formatLocation = loc => { typeof loc.end.column !== "number" ) { return `${loc.start.line}-${loc.end.line}`; - } else { - return `${formatPosition(loc.start)}-${formatPosition(loc.end)}`; } + return `${formatPosition(loc.start)}-${formatPosition(loc.end)}`; } if ("start" in loc && loc.start) { return formatPosition(loc.start); diff --git a/node_modules/webpack/lib/hmr/HotModuleReplacement.runtime.js b/node_modules/webpack/lib/hmr/HotModuleReplacement.runtime.js index db67365..e9fec89 100644 --- a/node_modules/webpack/lib/hmr/HotModuleReplacement.runtime.js +++ b/node_modules/webpack/lib/hmr/HotModuleReplacement.runtime.js @@ -1,3 +1,4 @@ +// @ts-nocheck /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra @@ -201,7 +202,7 @@ module.exports = function () { if (idx >= 0) registeredStatusHandlers.splice(idx, 1); }, - //inherit from previous dispose call + // inherit from previous dispose call data: currentModuleData[moduleId] }; currentChildModule = undefined; @@ -293,11 +294,10 @@ module.exports = function () { return waitForBlockingPromises(function () { if (applyOnUpdate) { return internalApply(applyOnUpdate); - } else { - return setStatus("ready").then(function () { - return updatedModules; - }); } + return setStatus("ready").then(function () { + return updatedModules; + }); }); }); }); diff --git a/node_modules/webpack/lib/hmr/HotModuleReplacementRuntimeModule.js b/node_modules/webpack/lib/hmr/HotModuleReplacementRuntimeModule.js index 81efffc..19d4984 100644 --- a/node_modules/webpack/lib/hmr/HotModuleReplacementRuntimeModule.js +++ b/node_modules/webpack/lib/hmr/HotModuleReplacementRuntimeModule.js @@ -13,6 +13,7 @@ class HotModuleReplacementRuntimeModule extends RuntimeModule { constructor() { super("hot module replacement", RuntimeModule.STAGE_BASIC); } + /** * @returns {string | null} runtime code */ diff --git a/node_modules/webpack/lib/hmr/JavascriptHotModuleReplacement.runtime.js b/node_modules/webpack/lib/hmr/JavascriptHotModuleReplacement.runtime.js index c16c872..ad26d87 100644 --- a/node_modules/webpack/lib/hmr/JavascriptHotModuleReplacement.runtime.js +++ b/node_modules/webpack/lib/hmr/JavascriptHotModuleReplacement.runtime.js @@ -1,3 +1,4 @@ +// @ts-nocheck /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra @@ -117,15 +118,12 @@ module.exports = function () { if ($hasOwnProperty$(currentUpdate, moduleId)) { var newModuleFactory = currentUpdate[moduleId]; /** @type {TODO} */ - var result; - if (newModuleFactory) { - result = getAffectedModuleEffects(moduleId); - } else { - result = { - type: "disposed", - moduleId: moduleId - }; - } + var result = newModuleFactory + ? getAffectedModuleEffects(moduleId) + : { + type: "disposed", + moduleId: moduleId + }; /** @type {Error|false} */ var abortError = false; var doApply = false; @@ -376,17 +374,17 @@ module.exports = function () { moduleId: moduleId, module: $moduleCache$[moduleId] }); - } catch (err2) { + } catch (err1) { if (options.onErrored) { options.onErrored({ type: "self-accept-error-handler-errored", moduleId: moduleId, - error: err2, + error: err1, originalError: err }); } if (!options.ignoreErrored) { - reportError(err2); + reportError(err1); reportError(err); } } diff --git a/node_modules/webpack/lib/hmr/LazyCompilationPlugin.js b/node_modules/webpack/lib/hmr/LazyCompilationPlugin.js index 3674c10..083cefb 100644 --- a/node_modules/webpack/lib/hmr/LazyCompilationPlugin.js +++ b/node_modules/webpack/lib/hmr/LazyCompilationPlugin.js @@ -10,6 +10,7 @@ const AsyncDependenciesBlock = require("../AsyncDependenciesBlock"); const Dependency = require("../Dependency"); const Module = require("../Module"); const ModuleFactory = require("../ModuleFactory"); +const { JS_TYPES } = require("../ModuleSourceTypesConstants"); const { WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY } = require("../ModuleTypeConstants"); @@ -37,10 +38,12 @@ const { registerNotSerializable } = require("../util/serialization"); /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */ +/** @typedef {{ client: string, data: string, active: boolean }} ModuleResult */ + /** * @typedef {object} BackendApi - * @property {function(Error=): void} dispose - * @property {function(Module): { client: string, data: string, active: boolean }} module + * @property {function(function((Error | null)=) : void): void} dispose + * @property {function(Module): ModuleResult} module */ const HMR_DEPENDENCY_TYPES = new Set([ @@ -53,7 +56,7 @@ const HMR_DEPENDENCY_TYPES = new Set([ /** * @param {undefined|string|RegExp|Function} test test option * @param {Module} module the module - * @returns {boolean} true, if the module should be selected + * @returns {boolean | null | string} true, if the module should be selected */ const checkTest = (test, module) => { if (test === undefined) return true; @@ -71,9 +74,10 @@ const checkTest = (test, module) => { return false; }; -const TYPES = new Set(["javascript"]); - class LazyCompilationDependency extends Dependency { + /** + * @param {LazyCompilationProxyModule} proxyModule proxy module + */ constructor(proxyModule) { super(); this.proxyModule = proxyModule; @@ -98,6 +102,14 @@ class LazyCompilationDependency extends Dependency { registerNotSerializable(LazyCompilationDependency); class LazyCompilationProxyModule extends Module { + /** + * @param {string} context context + * @param {Module} originalModule an original module + * @param {string} request request + * @param {ModuleResult["client"]} client client + * @param {ModuleResult["data"]} data data + * @param {ModuleResult["active"]} active true when active, otherwise false + */ constructor(context, originalModule, request, client, data, active) { super( WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY, @@ -194,7 +206,7 @@ class LazyCompilationProxyModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return TYPES; + return JS_TYPES; } /** @@ -229,13 +241,13 @@ class LazyCompilationProxyModule extends Module { ]); const keepActive = Template.asString([ `var dispose = client.keepAlive({ data: data, active: ${JSON.stringify( - !!block + Boolean(block) )}, module: module, onError: onError });` ]); let source; if (block) { const dep = block.dependencies[0]; - const module = moduleGraph.getModule(dep); + const module = /** @type {Module} */ (moduleGraph.getModule(dep)); source = Template.asString([ client, `module.exports = ${runtimeTemplate.moduleNamespacePromise({ @@ -264,7 +276,7 @@ class LazyCompilationProxyModule extends Module { source = Template.asString([ client, "var resolveSelf, onError;", - `module.exports = new Promise(function(resolve, reject) { resolveSelf = resolve; onError = reject; });`, + "module.exports = new Promise(function(resolve, reject) { resolveSelf = resolve; onError = reject; });", "if (module.hot) {", Template.indent([ "module.hot.accept();", @@ -297,9 +309,8 @@ class LazyCompilationProxyModule extends Module { registerNotSerializable(LazyCompilationProxyModule); class LazyCompilationDependencyFactory extends ModuleFactory { - constructor(factory) { + constructor() { super(); - this._factory = factory; } /** @@ -317,13 +328,26 @@ class LazyCompilationDependencyFactory extends ModuleFactory { } } +/** + * @callback BackendHandler + * @param {Compiler} compiler compiler + * @param {function(Error | null, BackendApi=): void} callback callback + * @returns {void} + */ + +/** + * @callback PromiseBackendHandler + * @param {Compiler} compiler compiler + * @returns {Promise} backend + */ + class LazyCompilationPlugin { /** * @param {object} options options - * @param {(function(Compiler, function(Error?, BackendApi?): void): void) | function(Compiler): Promise} options.backend the backend + * @param {BackendHandler | PromiseBackendHandler} options.backend the backend * @param {boolean} options.entries true, when entries are lazy compiled * @param {boolean} options.imports true, when import() modules are lazy compiled - * @param {RegExp | string | (function(Module): boolean)} options.test additional filter for lazy compiled entrypoint modules + * @param {RegExp | string | (function(Module): boolean) | undefined} options.test additional filter for lazy compiled entrypoint modules */ constructor({ backend, entries, imports, test }) { this.backend = backend; @@ -331,12 +355,14 @@ class LazyCompilationPlugin { this.imports = imports; this.test = test; } + /** * Apply the plugin * @param {Compiler} compiler the compiler instance * @returns {void} */ apply(compiler) { + /** @type {BackendApi} */ let backend; compiler.hooks.beforeCompile.tapAsync( "LazyCompilationPlugin", @@ -344,7 +370,7 @@ class LazyCompilationPlugin { if (backend !== undefined) return callback(); const promise = this.backend(compiler, (err, result) => { if (err) return callback(err); - backend = result; + backend = /** @type {BackendApi} */ (result); callback(); }); if (promise && promise.then) { @@ -370,7 +396,8 @@ class LazyCompilationPlugin { // an import() or not const hmrDep = resolveData.dependencies[0]; const originModule = - compilation.moduleGraph.getParentModule(hmrDep); + /** @type {Module} */ + (compilation.moduleGraph.getParentModule(hmrDep)); const isReferringToDynamicImport = originModule.blocks.some( block => block.dependencies.some( diff --git a/node_modules/webpack/lib/hmr/lazyCompilationBackend.js b/node_modules/webpack/lib/hmr/lazyCompilationBackend.js index dcc0130..383a16d 100644 --- a/node_modules/webpack/lib/hmr/lazyCompilationBackend.js +++ b/node_modules/webpack/lib/hmr/lazyCompilationBackend.js @@ -5,17 +5,18 @@ "use strict"; +/** @typedef {import("http").IncomingMessage} IncomingMessage */ +/** @typedef {import("http").RequestListener} RequestListener */ /** @typedef {import("http").ServerOptions} HttpServerOptions */ +/** @typedef {import("http").ServerResponse} ServerResponse */ /** @typedef {import("https").ServerOptions} HttpsServerOptions */ +/** @typedef {import("net").AddressInfo} AddressInfo */ +/** @typedef {import("net").Server} Server */ /** @typedef {import("../../declarations/WebpackOptions").LazyCompilationDefaultBackendOptions} LazyCompilationDefaultBackendOptions */ /** @typedef {import("../Compiler")} Compiler */ - -/** - * @callback BackendHandler - * @param {Compiler} compiler compiler - * @param {function((Error | null)=, any=): void} callback callback - * @returns {void} - */ +/** @typedef {import("../Module")} Module */ +/** @typedef {import("./LazyCompilationPlugin").BackendApi} BackendApi */ +/** @typedef {import("./LazyCompilationPlugin").BackendHandler} BackendHandler */ /** * @param {Omit & { client: NonNullable}} options additional options for the backend @@ -36,8 +37,13 @@ module.exports = options => (compiler, callback) => { ? options.server : (() => { const http = isHttps ? require("https") : require("http"); - return http.createServer.bind(http, options.server); + return http.createServer.bind( + http, + /** @type {HttpServerOptions | HttpsServerOptions} */ + (options.server) + ); })(); + /** @type {function(Server): void} */ const listen = typeof options.listen === "function" ? options.listen @@ -50,7 +56,9 @@ module.exports = options => (compiler, callback) => { const protocol = options.protocol || (isHttps ? "https" : "http"); + /** @type {RequestListener} */ const requestListener = (req, res) => { + if (req.url === undefined) return; const keys = req.url.slice(prefix.length).split("@"); req.socket.on("close", () => { setTimeout(() => { @@ -85,7 +93,7 @@ module.exports = options => (compiler, callback) => { if (moduleActivated && compiler.watching) compiler.watching.invalidate(); }; - const server = /** @type {import("net").Server} */ (createServer()); + const server = /** @type {Server} */ (createServer()); server.on("request", requestListener); let isClosing = false; @@ -101,43 +109,53 @@ module.exports = options => (compiler, callback) => { server.on("clientError", e => { if (e.message !== "Server is disposing") logger.warn(e); }); - server.on("listening", err => { - if (err) return callback(err); - const addr = server.address(); - if (typeof addr === "string") throw new Error("addr must not be a string"); - const urlBase = - addr.address === "::" || addr.address === "0.0.0.0" - ? `${protocol}://localhost:${addr.port}` - : addr.family === "IPv6" - ? `${protocol}://[${addr.address}]:${addr.port}` - : `${protocol}://${addr.address}:${addr.port}`; - logger.log( - `Server-Sent-Events server for lazy compilation open at ${urlBase}.` - ); - callback(null, { - dispose(callback) { - isClosing = true; - // Removing the listener is a workaround for a memory leak in node.js - server.off("request", requestListener); - server.close(err => { - callback(err); - }); - for (const socket of sockets) { - socket.destroy(new Error("Server is disposing")); + + server.on( + "listening", + /** + * @param {Error} err error + * @returns {void} + */ + err => { + if (err) return callback(err); + const _addr = server.address(); + if (typeof _addr === "string") + throw new Error("addr must not be a string"); + const addr = /** @type {AddressInfo} */ (_addr); + const urlBase = + addr.address === "::" || addr.address === "0.0.0.0" + ? `${protocol}://localhost:${addr.port}` + : addr.family === "IPv6" + ? `${protocol}://[${addr.address}]:${addr.port}` + : `${protocol}://${addr.address}:${addr.port}`; + logger.log( + `Server-Sent-Events server for lazy compilation open at ${urlBase}.` + ); + callback(null, { + dispose(callback) { + isClosing = true; + // Removing the listener is a workaround for a memory leak in node.js + server.off("request", requestListener); + server.close(err => { + callback(err); + }); + for (const socket of sockets) { + socket.destroy(new Error("Server is disposing")); + } + }, + module(originalModule) { + const key = `${encodeURIComponent( + originalModule.identifier().replace(/\\/g, "/").replace(/@/g, "_") + ).replace(/%(2F|3A|24|26|2B|2C|3B|3D)/g, decodeURIComponent)}`; + const active = activeModules.get(key) > 0; + return { + client: `${options.client}?${encodeURIComponent(urlBase + prefix)}`, + data: key, + active + }; } - }, - module(originalModule) { - const key = `${encodeURIComponent( - originalModule.identifier().replace(/\\/g, "/").replace(/@/g, "_") - ).replace(/%(2F|3A|24|26|2B|2C|3B|3D|3A)/g, decodeURIComponent)}`; - const active = activeModules.get(key) > 0; - return { - client: `${options.client}?${encodeURIComponent(urlBase + prefix)}`, - data: key, - active - }; - } - }); - }); + }); + } + ); listen(server); }; diff --git a/node_modules/webpack/lib/ids/ChunkModuleIdRangePlugin.js b/node_modules/webpack/lib/ids/ChunkModuleIdRangePlugin.js index 280cce7..e0922b4 100644 --- a/node_modules/webpack/lib/ids/ChunkModuleIdRangePlugin.js +++ b/node_modules/webpack/lib/ids/ChunkModuleIdRangePlugin.js @@ -70,9 +70,7 @@ class ChunkModuleIdRangePlugin { chunkModules = chunkGraph.getOrderedChunkModules(chunk, cmpFn); } else { chunkModules = Array.from(modules) - .filter(m => { - return chunkGraph.isModuleInChunk(m, chunk); - }) + .filter(m => chunkGraph.isModuleInChunk(m, chunk)) .sort(compareModulesByPreOrderIndexOrIdentifier(moduleGraph)); } diff --git a/node_modules/webpack/lib/ids/DeterministicChunkIdsPlugin.js b/node_modules/webpack/lib/ids/DeterministicChunkIdsPlugin.js index fbd8302..735bc5f 100644 --- a/node_modules/webpack/lib/ids/DeterministicChunkIdsPlugin.js +++ b/node_modules/webpack/lib/ids/DeterministicChunkIdsPlugin.js @@ -51,9 +51,7 @@ class DeterministicChunkIdsPlugin { const usedIds = getUsedChunkIds(compilation); assignDeterministicIds( - Array.from(chunks).filter(chunk => { - return chunk.id === null; - }), + Array.from(chunks).filter(chunk => chunk.id === null), chunk => getFullChunkName(chunk, chunkGraph, context, compiler.root), compareNatural, @@ -65,7 +63,7 @@ class DeterministicChunkIdsPlugin { chunk.ids = [id]; return true; }, - [Math.pow(10, maxLength)], + [10 ** maxLength], 10, usedIds.size ); diff --git a/node_modules/webpack/lib/ids/DeterministicModuleIdsPlugin.js b/node_modules/webpack/lib/ids/DeterministicModuleIdsPlugin.js index b4e33e6..8cf07e0 100644 --- a/node_modules/webpack/lib/ids/DeterministicModuleIdsPlugin.js +++ b/node_modules/webpack/lib/ids/DeterministicModuleIdsPlugin.js @@ -77,7 +77,7 @@ class DeterministicModuleIdsPlugin { chunkGraph.setModuleId(module, id); return true; }, - [Math.pow(10, maxLength)], + [10 ** maxLength], fixedLength ? 0 : 10, usedIds.size, salt diff --git a/node_modules/webpack/lib/ids/HashedModuleIdsPlugin.js b/node_modules/webpack/lib/ids/HashedModuleIdsPlugin.js index a1375a9..e3891a4 100644 --- a/node_modules/webpack/lib/ids/HashedModuleIdsPlugin.js +++ b/node_modules/webpack/lib/ids/HashedModuleIdsPlugin.js @@ -64,7 +64,11 @@ class HashedModuleIdsPlugin { ); for (const module of modulesInNaturalOrder) { const ident = getFullModuleName(module, context, compiler.root); - const hash = createHash(options.hashFunction); + const hash = createHash( + /** @type {NonNullable} */ ( + options.hashFunction + ) + ); hash.update(ident || ""); const hashId = /** @type {string} */ ( hash.digest(options.hashDigest) diff --git a/node_modules/webpack/lib/ids/IdHelpers.js b/node_modules/webpack/lib/ids/IdHelpers.js index 0bf1c5d..78cdaef 100644 --- a/node_modules/webpack/lib/ids/IdHelpers.js +++ b/node_modules/webpack/lib/ids/IdHelpers.js @@ -43,7 +43,7 @@ const avoidNumber = str => { } else if (firstChar > 57) { return str; } - if (str === +str + "") { + if (str === String(Number(str))) { return `_${str}`; } return str; @@ -53,12 +53,9 @@ const avoidNumber = str => { * @param {string} request the request * @returns {string} id representation */ -const requestToId = request => { - return request - .replace(/^(\.\.?\/)+/, "") - .replace(/(^[.-]|[^a-zA-Z0-9_-])+/g, "_"); -}; -exports.requestToId = requestToId; +const requestToId = request => + request.replace(/^(\.\.?\/)+/, "").replace(/(^[.-]|[^a-zA-Z0-9_-])+/g, "_"); +module.exports.requestToId = requestToId; /** * @param {string} string the string @@ -91,7 +88,7 @@ const getShortModuleName = (module, context, associatedObjectForCache) => { ); return ""; }; -exports.getShortModuleName = getShortModuleName; +module.exports.getShortModuleName = getShortModuleName; /** * @param {string} shortName the short name @@ -111,7 +108,7 @@ const getLongModuleName = ( const fullName = getFullModuleName(module, context, associatedObjectForCache); return `${shortName}?${getHash(fullName, 4, hashFunction)}`; }; -exports.getLongModuleName = getLongModuleName; +module.exports.getLongModuleName = getLongModuleName; /** * @param {Module} module the module @@ -119,14 +116,9 @@ exports.getLongModuleName = getLongModuleName; * @param {object=} associatedObjectForCache an object to which the cache will be attached * @returns {string} full module name */ -const getFullModuleName = (module, context, associatedObjectForCache) => { - return makePathsRelative( - context, - module.identifier(), - associatedObjectForCache - ); -}; -exports.getFullModuleName = getFullModuleName; +const getFullModuleName = (module, context, associatedObjectForCache) => + makePathsRelative(context, module.identifier(), associatedObjectForCache); +module.exports.getFullModuleName = getFullModuleName; /** * @param {Chunk} chunk the chunk @@ -156,7 +148,7 @@ const getShortChunkName = ( .join(delimiter); return shortenLongString(chunkName, delimiter, hashFunction); }; -exports.getShortChunkName = getShortChunkName; +module.exports.getShortChunkName = getShortChunkName; /** * @param {Chunk} chunk the chunk @@ -191,7 +183,7 @@ const getLongChunkName = ( .join(delimiter); return shortenLongString(chunkName, delimiter, hashFunction); }; -exports.getLongChunkName = getLongChunkName; +module.exports.getLongChunkName = getLongChunkName; /** * @param {Chunk} chunk the chunk @@ -213,7 +205,7 @@ const getFullChunkName = ( ); return fullModuleNames.join(); }; -exports.getFullChunkName = getFullChunkName; +module.exports.getFullChunkName = getFullChunkName; /** * @template K @@ -246,7 +238,7 @@ const getUsedModuleIdsAndModules = (compilation, filter) => { const usedIds = new Set(); if (compilation.usedModuleIds) { for (const id of compilation.usedModuleIds) { - usedIds.add(id + ""); + usedIds.add(String(id)); } } @@ -254,20 +246,18 @@ const getUsedModuleIdsAndModules = (compilation, filter) => { if (!module.needId) continue; const moduleId = chunkGraph.getModuleId(module); if (moduleId !== null) { - usedIds.add(moduleId + ""); - } else { - if ( - (!filter || filter(module)) && - chunkGraph.getNumberOfModuleChunks(module) !== 0 - ) { - modules.push(module); - } + usedIds.add(String(moduleId)); + } else if ( + (!filter || filter(module)) && + chunkGraph.getNumberOfModuleChunks(module) !== 0 + ) { + modules.push(module); } } return [usedIds, modules]; }; -exports.getUsedModuleIdsAndModules = getUsedModuleIdsAndModules; +module.exports.getUsedModuleIdsAndModules = getUsedModuleIdsAndModules; /** * @param {Compilation} compilation the compilation @@ -278,20 +268,20 @@ const getUsedChunkIds = compilation => { const usedIds = new Set(); if (compilation.usedChunkIds) { for (const id of compilation.usedChunkIds) { - usedIds.add(id + ""); + usedIds.add(String(id)); } } for (const chunk of compilation.chunks) { const chunkId = chunk.id; if (chunkId !== null) { - usedIds.add(chunkId + ""); + usedIds.add(String(chunkId)); } } return usedIds; }; -exports.getUsedChunkIds = getUsedChunkIds; +module.exports.getUsedChunkIds = getUsedChunkIds; /** * @template T @@ -359,7 +349,7 @@ const assignNames = ( unnamedItems.sort(comparator); return unnamedItems; }; -exports.assignNames = assignNames; +module.exports.assignNames = assignNames; /** * @template T @@ -413,7 +403,7 @@ const assignDeterministicIds = ( } while (!assignId(item, id)); } }; -exports.assignDeterministicIds = assignDeterministicIds; +module.exports.assignDeterministicIds = assignDeterministicIds; /** * @param {Set} usedIds used ids @@ -432,7 +422,7 @@ const assignAscendingModuleIds = (usedIds, modules, compilation) => { */ assignId = module => { if (chunkGraph.getModuleId(module) === null) { - while (usedIds.has(nextId + "")) nextId++; + while (usedIds.has(String(nextId))) nextId++; chunkGraph.setModuleId(module, nextId++); } }; @@ -450,7 +440,7 @@ const assignAscendingModuleIds = (usedIds, modules, compilation) => { assignId(module); } }; -exports.assignAscendingModuleIds = assignAscendingModuleIds; +module.exports.assignAscendingModuleIds = assignAscendingModuleIds; /** * @param {Iterable} chunks the chunks @@ -464,7 +454,7 @@ const assignAscendingChunkIds = (chunks, compilation) => { if (usedIds.size > 0) { for (const chunk of chunks) { if (chunk.id === null) { - while (usedIds.has(nextId + "")) nextId++; + while (usedIds.has(String(nextId))) nextId++; chunk.id = nextId; chunk.ids = [nextId]; nextId++; @@ -480,4 +470,4 @@ const assignAscendingChunkIds = (chunks, compilation) => { } } }; -exports.assignAscendingChunkIds = assignAscendingChunkIds; +module.exports.assignAscendingChunkIds = assignAscendingChunkIds; diff --git a/node_modules/webpack/lib/ids/SyncModuleIdsPlugin.js b/node_modules/webpack/lib/ids/SyncModuleIdsPlugin.js index 564ccc2..aa83762 100644 --- a/node_modules/webpack/lib/ids/SyncModuleIdsPlugin.js +++ b/node_modules/webpack/lib/ids/SyncModuleIdsPlugin.js @@ -10,6 +10,7 @@ const { getUsedModuleIdsAndModules } = require("./IdHelpers"); /** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("../Module")} Module */ +/** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */ const plugin = "SyncModuleIdsPlugin"; @@ -42,7 +43,9 @@ class SyncModuleIdsPlugin { let dataChanged = false; if (this._read) { compiler.hooks.readRecords.tapAsync(plugin, callback => { - const fs = compiler.intermediateFileSystem; + const fs = + /** @type {IntermediateFileSystem} */ + (compiler.intermediateFileSystem); fs.readFile(this._path, (err, buffer) => { if (err) { if (err.code !== "ENOENT") { @@ -69,7 +72,9 @@ class SyncModuleIdsPlugin { for (const [key, value] of sorted) { json[key] = value; } - const fs = compiler.intermediateFileSystem; + const fs = + /** @type {IntermediateFileSystem} */ + (compiler.intermediateFileSystem); fs.writeFile(this._path, JSON.stringify(json), callback); }); } diff --git a/node_modules/webpack/lib/index.js b/node_modules/webpack/lib/index.js index 9764b4f..80d1a17 100644 --- a/node_modules/webpack/lib/index.js +++ b/node_modules/webpack/lib/index.js @@ -71,9 +71,11 @@ const memoize = require("./util/memoize"); const lazyFunction = factory => { const fac = memoize(factory); const f = /** @type {any} */ ( - (...args) => { - return fac()(...args); - } + /** + * @param {...any} args args + * @returns {T} result + */ + (...args) => fac()(...args) ); return /** @type {T} */ (f); }; @@ -117,15 +119,24 @@ module.exports = mergeExports(fn, { get webpack() { return require("./webpack"); }, + /** + * @returns {function(Configuration | Configuration[]): void} validate fn + */ get validate() { const webpackOptionsSchemaCheck = require("../schemas/WebpackOptions.check.js"); - const getRealValidate = memoize(() => { - const validateSchema = require("./validateSchema"); - const webpackOptionsSchema = require("../schemas/WebpackOptions.json"); - return options => validateSchema(webpackOptionsSchema, options); - }); + const getRealValidate = memoize( + /** + * @returns {function(Configuration | Configuration[]): void} validate fn + */ + () => { + const validateSchema = require("./validateSchema"); + const webpackOptionsSchema = require("../schemas/WebpackOptions.json"); + return options => validateSchema(webpackOptionsSchema, options); + } + ); return options => { - if (!webpackOptionsSchemaCheck(options)) getRealValidate()(options); + if (!webpackOptionsSchemaCheck(/** @type {TODO} */ (options))) + getRealValidate()(options); }; }, get validateSchema() { @@ -479,6 +490,15 @@ module.exports = mergeExports(fn, { }, get JsonpTemplatePlugin() { return require("./web/JsonpTemplatePlugin"); + }, + get CssLoadingRuntimeModule() { + return require("./css/CssLoadingRuntimeModule"); + } + }, + + esm: { + get ModuleChunkLoadingRuntimeModule() { + return require("./esm/ModuleChunkLoadingRuntimeModule"); } }, @@ -521,6 +541,12 @@ module.exports = mergeExports(fn, { } }, + css: { + get CssModulesPlugin() { + return require("./css/CssModulesPlugin"); + } + }, + library: { get AbstractLibraryPlugin() { return require("./library/AbstractLibraryPlugin"); diff --git a/node_modules/webpack/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js b/node_modules/webpack/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js index a3973e4..1bb04ab 100644 --- a/node_modules/webpack/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +++ b/node_modules/webpack/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js @@ -84,10 +84,11 @@ class ArrayPushCallbackChunkFormatPlugin { ); if (runtimeModules.length > 0 || entries.length > 0) { const runtime = new ConcatSource( - (runtimeTemplate.supportsArrowFunction() - ? `${RuntimeGlobals.require} =>` - : `function(${RuntimeGlobals.require})`) + - " { // webpackRuntimeModules\n" + `${ + runtimeTemplate.supportsArrowFunction() + ? `${RuntimeGlobals.require} =>` + : `function(${RuntimeGlobals.require})` + } { // webpackRuntimeModules\n` ); if (runtimeModules.length > 0) { runtime.add( diff --git a/node_modules/webpack/lib/javascript/BasicEvaluatedExpression.js b/node_modules/webpack/lib/javascript/BasicEvaluatedExpression.js index 9306b03..05dd14c 100644 --- a/node_modules/webpack/lib/javascript/BasicEvaluatedExpression.js +++ b/node_modules/webpack/lib/javascript/BasicEvaluatedExpression.js @@ -184,7 +184,7 @@ class BasicEvaluatedExpression { asCompileTimeValue() { switch (this.type) { case TypeUndefined: - return undefined; + return; case TypeNull: return null; case TypeString: @@ -252,7 +252,6 @@ class BasicEvaluatedExpression { const str = this.asString(); if (typeof str === "string") return str !== ""; } - return undefined; } /** @@ -275,8 +274,6 @@ class BasicEvaluatedExpression { if (this.isConstArray()) return false; if (this.isTemplateString()) return false; if (this.isRegExp()) return false; - - return undefined; } /** @@ -292,12 +289,12 @@ class BasicEvaluatedExpression { if (this.isBigInt()) return `${this.bigint}`; if (this.isRegExp()) return `${this.regExp}`; if (this.isArray()) { - let array = []; + const array = []; for (const item of /** @type {BasicEvaluatedExpression[]} */ ( this.items )) { const itemStr = item.asString(); - if (itemStr === undefined) return undefined; + if (itemStr === undefined) return; array.push(itemStr); } return `${array}`; @@ -309,12 +306,11 @@ class BasicEvaluatedExpression { this.parts )) { const partStr = part.asString(); - if (partStr === undefined) return undefined; + if (partStr === undefined) return; str += partStr; } return str; } - return undefined; } /** @@ -390,7 +386,6 @@ class BasicEvaluatedExpression { /** * Set's the value of this expression to a particular identifier and its members. - * * @param {string | VariableInfoInterface} identifier identifier to set * @param {string | VariableInfoInterface} rootInfo root info * @param {() => string[]} getMembers members @@ -417,7 +412,6 @@ class BasicEvaluatedExpression { /** * Wraps an array of expressions with a prefix and postfix expression. - * * @param {BasicEvaluatedExpression | null | undefined} prefix Expression to be added before the innerExpressions * @param {BasicEvaluatedExpression | null | undefined} postfix Expression to be added after the innerExpressions * @param {BasicEvaluatedExpression[] | undefined} innerExpressions Expressions to be wrapped @@ -434,7 +428,6 @@ class BasicEvaluatedExpression { /** * Stores the options of a conditional expression. - * * @param {BasicEvaluatedExpression[]} options optional (consequent/alternate) expressions to be set * @returns {this} this */ @@ -447,7 +440,6 @@ class BasicEvaluatedExpression { /** * Adds options to a conditional expression. - * * @param {BasicEvaluatedExpression[]} options optional (consequent/alternate) expressions to be added * @returns {this} this */ @@ -465,7 +457,6 @@ class BasicEvaluatedExpression { /** * Set's the value of this expression to an array of expressions. - * * @param {BasicEvaluatedExpression[]} items expressions to set * @returns {this} this */ @@ -478,7 +469,6 @@ class BasicEvaluatedExpression { /** * Set's the value of this expression to an array of strings. - * * @param {string[]} array array to set * @returns {this} this */ @@ -492,7 +482,6 @@ class BasicEvaluatedExpression { /** * Set's the value of this expression to a processed/unprocessed template string. Used * for evaluating TemplateLiteral expressions in the JavaScript Parser. - * * @param {BasicEvaluatedExpression[]} quasis template string quasis * @param {BasicEvaluatedExpression[]} parts template string parts * @param {"cooked" | "raw"} kind template string kind @@ -522,7 +511,6 @@ class BasicEvaluatedExpression { /** * Set's the value of the expression to nullish. - * * @param {boolean} value true, if the expression is nullish * @returns {this} this */ @@ -536,7 +524,6 @@ class BasicEvaluatedExpression { /** * Set's the range for the expression. - * * @param {[number, number]} range range to set * @returns {this} this */ @@ -547,7 +534,6 @@ class BasicEvaluatedExpression { /** * Set whether or not the expression has side effects. - * * @param {boolean} sideEffects true, if the expression has side effects * @returns {this} this */ @@ -558,7 +544,6 @@ class BasicEvaluatedExpression { /** * Set the expression node for the expression. - * * @param {Node | undefined} expression expression * @returns {this} this */ diff --git a/node_modules/webpack/lib/javascript/ChunkHelpers.js b/node_modules/webpack/lib/javascript/ChunkHelpers.js index d84f423..f2e8a12 100644 --- a/node_modules/webpack/lib/javascript/ChunkHelpers.js +++ b/node_modules/webpack/lib/javascript/ChunkHelpers.js @@ -30,4 +30,4 @@ const getAllChunks = (entrypoint, excludedChunk1, excludedChunk2) => { } return chunks; }; -exports.getAllChunks = getAllChunks; +module.exports.getAllChunks = getAllChunks; diff --git a/node_modules/webpack/lib/javascript/CommonJsChunkFormatPlugin.js b/node_modules/webpack/lib/javascript/CommonJsChunkFormatPlugin.js index 169f1e1..75384ab 100644 --- a/node_modules/webpack/lib/javascript/CommonJsChunkFormatPlugin.js +++ b/node_modules/webpack/lib/javascript/CommonJsChunkFormatPlugin.js @@ -51,7 +51,7 @@ class CommonJsChunkFormatPlugin { const source = new ConcatSource(); source.add(`exports.id = ${JSON.stringify(chunk.id)};\n`); source.add(`exports.ids = ${JSON.stringify(chunk.ids)};\n`); - source.add(`exports.modules = `); + source.add("exports.modules = "); source.add(modules); source.add(";\n"); const runtimeModules = @@ -85,7 +85,8 @@ class CommonJsChunkFormatPlugin { const runtimeOutputName = compilation .getPath( getChunkFilenameTemplate( - runtimeChunk, + /** @type {Chunk} */ + (runtimeChunk), compilation.outputOptions ), { diff --git a/node_modules/webpack/lib/javascript/EnableChunkLoadingPlugin.js b/node_modules/webpack/lib/javascript/EnableChunkLoadingPlugin.js index 3756e4a..014c44e 100644 --- a/node_modules/webpack/lib/javascript/EnableChunkLoadingPlugin.js +++ b/node_modules/webpack/lib/javascript/EnableChunkLoadingPlugin.js @@ -53,8 +53,9 @@ class EnableChunkLoadingPlugin { "EnableChunkLoadingPlugin need to be used to enable this type of chunk loading. " + 'This usually happens through the "output.enabledChunkLoadingTypes" option. ' + 'If you are using a function as entry which sets "chunkLoading", you need to add all potential chunk loading types to "output.enabledChunkLoadingTypes". ' + - "These types are enabled: " + - Array.from(getEnabledTypes(compiler)).join(", ") + `These types are enabled: ${Array.from( + getEnabledTypes(compiler) + ).join(", ")}` ); } } @@ -85,7 +86,7 @@ class EnableChunkLoadingPlugin { break; } case "require": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const CommonJsChunkLoadingPlugin = require("../node/CommonJsChunkLoadingPlugin"); new CommonJsChunkLoadingPlugin({ asyncChunkLoading: false @@ -93,7 +94,7 @@ class EnableChunkLoadingPlugin { break; } case "async-node": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const CommonJsChunkLoadingPlugin = require("../node/CommonJsChunkLoadingPlugin"); new CommonJsChunkLoadingPlugin({ asyncChunkLoading: true diff --git a/node_modules/webpack/lib/javascript/JavascriptGenerator.js b/node_modules/webpack/lib/javascript/JavascriptGenerator.js index 7c2724c..6bba975 100644 --- a/node_modules/webpack/lib/javascript/JavascriptGenerator.js +++ b/node_modules/webpack/lib/javascript/JavascriptGenerator.js @@ -9,15 +9,19 @@ const util = require("util"); const { RawSource, ReplaceSource } = require("webpack-sources"); const Generator = require("../Generator"); const InitFragment = require("../InitFragment"); +const { JS_TYPES } = require("../ModuleSourceTypesConstants"); const HarmonyCompatibilityDependency = require("../dependencies/HarmonyCompatibilityDependency"); /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("../DependenciesBlock")} DependenciesBlock */ /** @typedef {import("../Dependency")} Dependency */ +/** @typedef {import("../DependencyTemplate")} DependencyTemplate */ +/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../DependencyTemplates")} DependencyTemplates */ /** @typedef {import("../Generator").GenerateContext} GenerateContext */ /** @typedef {import("../Module")} Module */ /** @typedef {import("../Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */ +/** @typedef {import("../Module").SourceTypes} SourceTypes */ /** @typedef {import("../NormalModule")} NormalModule */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ @@ -25,21 +29,26 @@ const HarmonyCompatibilityDependency = require("../dependencies/HarmonyCompatibi // replace with newer constructs const deprecatedGetInitFragments = util.deprecate( + /** + * @param {DependencyTemplate} template template + * @param {Dependency} dependency dependency + * @param {DependencyTemplateContext} templateContext template context + * @returns {InitFragment[]} init fragments + */ (template, dependency, templateContext) => - template.getInitFragments(dependency, templateContext), + /** @type {DependencyTemplate & { getInitFragments: function(Dependency, DependencyTemplateContext): InitFragment[] }} */ + (template).getInitFragments(dependency, templateContext), "DependencyTemplate.getInitFragment is deprecated (use apply(dep, source, { initFragments }) instead)", "DEP_WEBPACK_JAVASCRIPT_GENERATOR_GET_INIT_FRAGMENTS" ); -const TYPES = new Set(["javascript"]); - class JavascriptGenerator extends Generator { /** * @param {NormalModule} module fresh module - * @returns {Set} available types (do not mutate) + * @returns {SourceTypes} available types (do not mutate) */ getTypes(module) { - return TYPES; + return JS_TYPES; } /** @@ -84,7 +93,7 @@ class JavascriptGenerator extends Generator { /** * @param {NormalModule} module module for which the code should be generated * @param {GenerateContext} generateContext context for generate - * @returns {Source} generated code + * @returns {Source | null} generated code */ generate(module, generateContext) { const originalSource = module.originalSource(); @@ -93,6 +102,7 @@ class JavascriptGenerator extends Generator { } const source = new ReplaceSource(originalSource); + /** @type {InitFragment[]} */ const initFragments = []; this.sourceModule(module, initFragments, source, generateContext); @@ -102,7 +112,7 @@ class JavascriptGenerator extends Generator { /** * @param {Module} module the module to generate - * @param {InitFragment[]} initFragments mutable list of init fragments + * @param {InitFragment[]} initFragments mutable list of init fragments * @param {ReplaceSource} source the current replace source which can be modified * @param {GenerateContext} generateContext the generateContext * @returns {void} @@ -144,7 +154,7 @@ class JavascriptGenerator extends Generator { /** * @param {Module} module the module to generate * @param {DependenciesBlock} block the dependencies block which will be processed - * @param {InitFragment[]} initFragments mutable list of init fragments + * @param {InitFragment[]} initFragments mutable list of init fragments * @param {ReplaceSource} source the current replace source which can be modified * @param {GenerateContext} generateContext the generateContext * @returns {void} @@ -174,24 +184,26 @@ class JavascriptGenerator extends Generator { /** * @param {Module} module the current module * @param {Dependency} dependency the dependency to generate - * @param {InitFragment[]} initFragments mutable list of init fragments + * @param {InitFragment[]} initFragments mutable list of init fragments * @param {ReplaceSource} source the current replace source which can be modified * @param {GenerateContext} generateContext the render context * @returns {void} */ sourceDependency(module, dependency, initFragments, source, generateContext) { - const constructor = /** @type {new (...args: any[]) => Dependency} */ ( - dependency.constructor - ); + const constructor = + /** @type {new (...args: EXPECTED_ANY[]) => Dependency} */ + (dependency.constructor); const template = generateContext.dependencyTemplates.get(constructor); if (!template) { throw new Error( - "No template for dependency: " + dependency.constructor.name + `No template for dependency: ${dependency.constructor.name}` ); } + /** @type {InitFragment[] | undefined} */ let chunkInitFragments; + /** @type {DependencyTemplateContext} */ const templateContext = { runtimeTemplate: generateContext.runtimeTemplate, dependencyTemplates: generateContext.dependencyTemplates, @@ -201,11 +213,15 @@ class JavascriptGenerator extends Generator { runtime: generateContext.runtime, runtimeRequirements: generateContext.runtimeRequirements, concatenationScope: generateContext.concatenationScope, - codeGenerationResults: generateContext.codeGenerationResults, + codeGenerationResults: + /** @type {NonNullable} */ + (generateContext.codeGenerationResults), initFragments, get chunkInitFragments() { if (!chunkInitFragments) { - const data = generateContext.getData(); + const data = + /** @type {NonNullable} */ + (generateContext.getData)(); chunkInitFragments = data.get("chunkInitFragments"); if (!chunkInitFragments) { chunkInitFragments = []; diff --git a/node_modules/webpack/lib/javascript/JavascriptModulesPlugin.js b/node_modules/webpack/lib/javascript/JavascriptModulesPlugin.js index df76ac6..6b4046c 100644 --- a/node_modules/webpack/lib/javascript/JavascriptModulesPlugin.js +++ b/node_modules/webpack/lib/javascript/JavascriptModulesPlugin.js @@ -31,25 +31,42 @@ const Template = require("../Template"); const { last, someInIterable } = require("../util/IterableHelpers"); const StringXor = require("../util/StringXor"); const { compareModulesByIdentifier } = require("../util/comparators"); +const { + getPathInAst, + getAllReferences, + RESERVED_NAMES, + findNewName, + addScopeSymbols, + getUsedNamesInScopeInfo +} = require("../util/concatenate"); const createHash = require("../util/createHash"); -const { getPathInAst, getAllReferences } = require("../util/mergeScope"); const nonNumericOnlyHash = require("../util/nonNumericOnlyHash"); const { intersectRuntime } = require("../util/runtime"); const JavascriptGenerator = require("./JavascriptGenerator"); const JavascriptParser = require("./JavascriptParser"); +/** @typedef {import("eslint-scope").Reference} Reference */ +/** @typedef {import("eslint-scope").Scope} Scope */ /** @typedef {import("eslint-scope").Variable} Variable */ /** @typedef {import("webpack-sources").Source} Source */ +/** @typedef {import("../../declarations/WebpackOptions").Output} OutputOptions */ /** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../ChunkGraph")} ChunkGraph */ /** @typedef {import("../CodeGenerationResults")} CodeGenerationResults */ /** @typedef {import("../Compilation").ChunkHashContext} ChunkHashContext */ +/** @typedef {import("../Compilation").ModuleObject} ModuleObject */ /** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("../DependencyTemplates")} DependencyTemplates */ +/** @typedef {import("../Entrypoint")} Entrypoint */ /** @typedef {import("../Module")} Module */ +/** @typedef {import("../Module").BuildInfo} BuildInfo */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ +/** @typedef {import("../TemplatedPathPlugin").TemplatePath} TemplatePath */ +/** @typedef {import("../WebpackError")} WebpackError */ +/** @typedef {import("../javascript/JavascriptParser").Range} Range */ /** @typedef {import("../util/Hash")} Hash */ +/** @typedef {import("../util/createHash").Algorithm} Algorithm */ /** * @param {Chunk} chunk a chunk @@ -59,9 +76,28 @@ const JavascriptParser = require("./JavascriptParser"); const chunkHasJs = (chunk, chunkGraph) => { if (chunkGraph.getNumberOfEntryModules(chunk) > 0) return true; - return chunkGraph.getChunkModulesIterableBySourceType(chunk, "javascript") - ? true - : false; + return Boolean( + chunkGraph.getChunkModulesIterableBySourceType(chunk, "javascript") + ); +}; + +/** + * @param {Chunk} chunk a chunk + * @param {ChunkGraph} chunkGraph the chunk graph + * @returns {boolean} true, when a JS file is needed for this chunk + */ +const chunkHasRuntimeOrJs = (chunk, chunkGraph) => { + if ( + chunkGraph.getChunkModulesIterableBySourceType( + chunk, + WEBPACK_MODULE_TYPE_RUNTIME + ) + ) + return true; + + return Boolean( + chunkGraph.getChunkModulesIterableBySourceType(chunk, "javascript") + ); }; /** @@ -96,7 +132,7 @@ const printGeneratedCodeForStack = (module, code) => { * @property {ModuleGraph} moduleGraph the module graph * @property {ChunkGraph} chunkGraph the chunk graph * @property {CodeGenerationResults} codeGenerationResults results of code generation - * @property {boolean} strictMode rendering in strict context + * @property {boolean | undefined} strictMode rendering in strict context */ /** @@ -108,7 +144,7 @@ const printGeneratedCodeForStack = (module, code) => { * @property {ChunkGraph} chunkGraph the chunk graph * @property {CodeGenerationResults} codeGenerationResults results of code generation * @property {string} hash hash to be used for render call - * @property {boolean} strictMode rendering in strict context + * @property {boolean | undefined} strictMode rendering in strict context */ /** @@ -120,7 +156,7 @@ const printGeneratedCodeForStack = (module, code) => { * @property {ChunkGraph} chunkGraph the chunk graph * @property {CodeGenerationResults} codeGenerationResults results of code generation * @property {InitFragment[]} chunkInitFragments init fragments for the chunk - * @property {boolean} strictMode rendering in strict context + * @property {boolean | undefined} strictMode rendering in strict context */ /** @@ -146,11 +182,11 @@ const printGeneratedCodeForStack = (module, code) => { * @property {SyncWaterfallHook<[Source, RenderContext]>} render * @property {SyncWaterfallHook<[Source, Module, StartupRenderContext]>} renderStartup * @property {SyncWaterfallHook<[string, RenderBootstrapContext]>} renderRequire - * @property {SyncBailHook<[Module, RenderBootstrapContext], string>} inlineInRuntimeBailout + * @property {SyncBailHook<[Module, RenderBootstrapContext], string | void>} inlineInRuntimeBailout * @property {SyncBailHook<[Module, RenderContext], string | void>} embedInRuntimeBailout * @property {SyncBailHook<[RenderContext], string | void>} strictRuntimeBailout * @property {SyncHook<[Chunk, Hash, ChunkHashContext]>} chunkHash - * @property {SyncBailHook<[Chunk, RenderContext], boolean>} useSourceMap + * @property {SyncBailHook<[Chunk, RenderContext], boolean | void>} useSourceMap */ /** @type {WeakMap} */ @@ -158,6 +194,8 @@ const compilationHooksMap = new WeakMap(); const PLUGIN_NAME = "JavascriptModulesPlugin"; +/** @typedef {{ header: string[], beforeStartup: string[], startup: string[], afterStartup: string[], allowInlineStartup: boolean }} Bootstrap */ + class JavascriptModulesPlugin { /** * @param {Compilation} compilation the compilation @@ -226,34 +264,22 @@ class JavascriptModulesPlugin { const hooks = JavascriptModulesPlugin.getCompilationHooks(compilation); normalModuleFactory.hooks.createParser .for(JAVASCRIPT_MODULE_TYPE_AUTO) - .tap(PLUGIN_NAME, options => { - return new JavascriptParser("auto"); - }); + .tap(PLUGIN_NAME, options => new JavascriptParser("auto")); normalModuleFactory.hooks.createParser .for(JAVASCRIPT_MODULE_TYPE_DYNAMIC) - .tap(PLUGIN_NAME, options => { - return new JavascriptParser("script"); - }); + .tap(PLUGIN_NAME, options => new JavascriptParser("script")); normalModuleFactory.hooks.createParser .for(JAVASCRIPT_MODULE_TYPE_ESM) - .tap(PLUGIN_NAME, options => { - return new JavascriptParser("module"); - }); + .tap(PLUGIN_NAME, options => new JavascriptParser("module")); normalModuleFactory.hooks.createGenerator .for(JAVASCRIPT_MODULE_TYPE_AUTO) - .tap(PLUGIN_NAME, () => { - return new JavascriptGenerator(); - }); + .tap(PLUGIN_NAME, () => new JavascriptGenerator()); normalModuleFactory.hooks.createGenerator .for(JAVASCRIPT_MODULE_TYPE_DYNAMIC) - .tap(PLUGIN_NAME, () => { - return new JavascriptGenerator(); - }); + .tap(PLUGIN_NAME, () => new JavascriptGenerator()); normalModuleFactory.hooks.createGenerator .for(JAVASCRIPT_MODULE_TYPE_ESM) - .tap(PLUGIN_NAME, () => { - return new JavascriptGenerator(); - }); + .tap(PLUGIN_NAME, () => new JavascriptGenerator()); compilation.hooks.renderManifest.tap(PLUGIN_NAME, (result, options) => { const { hash, @@ -267,13 +293,14 @@ class JavascriptModulesPlugin { } = options; const hotUpdateChunk = chunk instanceof HotUpdateChunk ? chunk : null; - - let render; const filenameTemplate = JavascriptModulesPlugin.getChunkFilenameTemplate( chunk, outputOptions ); + + let render; + if (hotUpdateChunk) { render = () => this.renderChunk( @@ -289,6 +316,10 @@ class JavascriptModulesPlugin { hooks ); } else if (chunk.hasRuntime()) { + if (!chunkHasRuntimeOrJs(chunk, chunkGraph)) { + return result; + } + render = () => this.renderMain( { @@ -374,7 +405,7 @@ class JavascriptModulesPlugin { hashFunction } } = compilation; - const hash = createHash(hashFunction); + const hash = createHash(/** @type {Algorithm} */ (hashFunction)); if (hashSalt) hash.update(hashSalt); if (chunk.hasRuntime()) { this.updateHashWithBootstrap( @@ -424,7 +455,8 @@ class JavascriptModulesPlugin { const digest = /** @type {string} */ (hash.digest(hashDigest)); chunk.contentHash.javascript = nonNumericOnlyHash( digest, - hashDigestLength + /** @type {number} */ + (hashDigestLength) ); }); compilation.hooks.additionalTreeRuntimeRequirements.tap( @@ -443,7 +475,7 @@ class JavascriptModulesPlugin { compilation.hooks.executeModule.tap(PLUGIN_NAME, (options, context) => { const source = options.codeGenerationResult.sources.get("javascript"); if (source === undefined) return; - const { module, moduleObject } = options; + const { module } = options; const code = source.source(); const fn = vm.runInThisContext( @@ -453,6 +485,11 @@ class JavascriptModulesPlugin { lineOffset: -1 } ); + + const moduleObject = + /** @type {ModuleObject} */ + (options.moduleObject); + try { fn.call( moduleObject.exports, @@ -460,12 +497,13 @@ class JavascriptModulesPlugin { moduleObject.exports, context.__webpack_require__ ); - } catch (e) { - e.stack += printGeneratedCodeForStack( + } catch (err) { + /** @type {Error} */ + (err).stack += printGeneratedCodeForStack( options.module, /** @type {string} */ (code) ); - throw e; + throw err; } }); compilation.hooks.executeModule.tap(PLUGIN_NAME, (options, context) => { @@ -482,26 +520,32 @@ class JavascriptModulesPlugin { } ); try { + // eslint-disable-next-line no-useless-call fn.call(null, context.__webpack_require__); - } catch (e) { - e.stack += printGeneratedCodeForStack(options.module, code); - throw e; + } catch (err) { + /** @type {Error} */ + (err).stack += printGeneratedCodeForStack(options.module, code); + throw err; } }); } ); } + /** + * @param {Chunk} chunk chunk + * @param {OutputOptions} outputOptions output options + * @returns {TemplatePath} used filename template + */ static getChunkFilenameTemplate(chunk, outputOptions) { if (chunk.filenameTemplate) { return chunk.filenameTemplate; } else if (chunk instanceof HotUpdateChunk) { - return outputOptions.hotUpdateChunkFilename; + return /** @type {TemplatePath} */ (outputOptions.hotUpdateChunkFilename); } else if (chunk.canBeInitial()) { - return outputOptions.filename; - } else { - return outputOptions.chunkFilename; + return /** @type {TemplatePath} */ (outputOptions.filename); } + return /** @type {TemplatePath} */ (outputOptions.chunkFilename); } /** @@ -509,7 +553,7 @@ class JavascriptModulesPlugin { * @param {ChunkRenderContext} renderContext options object * @param {CompilationHooks} hooks hooks * @param {boolean} factory true: renders as factory method, false: pure module content - * @returns {Source} the newly generated source from rendering + * @returns {Source | null} the newly generated source from rendering */ renderModule(module, renderContext, hooks, factory) { const { @@ -549,7 +593,9 @@ class JavascriptModulesPlugin { const needThisAsExports = runtimeRequirements.has( RuntimeGlobals.thisAsExports ); - const needStrict = module.buildInfo.strict && !strictMode; + const needStrict = + /** @type {BuildInfo} */ + (module.buildInfo).strict && !strictMode; const cacheEntry = this._moduleFactoryCache.get( moduleSourcePostContent ); @@ -570,19 +616,19 @@ class JavascriptModulesPlugin { args.push( needModule ? module.moduleArgument - : "__unused_webpack_" + module.moduleArgument + : `__unused_webpack_${module.moduleArgument}` ); if (needExports || needRequire) args.push( needExports ? module.exportsArgument - : "__unused_webpack_" + module.exportsArgument + : `__unused_webpack_${module.exportsArgument}` ); if (needRequire) args.push(RuntimeGlobals.require); if (!needThisAsExports && runtimeTemplate.supportsArrowFunction()) { - factorySource.add("/***/ ((" + args.join(", ") + ") => {\n\n"); + factorySource.add(`/***/ ((${args.join(", ")}) => {\n\n`); } else { - factorySource.add("/***/ (function(" + args.join(", ") + ") {\n\n"); + factorySource.add(`/***/ (function(${args.join(", ")}) {\n\n`); } if (needStrict) { factorySource.add('"use strict";\n'); @@ -615,9 +661,10 @@ class JavascriptModulesPlugin { ), "JavascriptModulesPlugin.getCompilationHooks().renderModulePackage" ); - } catch (e) { - e.module = module; - throw e; + } catch (err) { + /** @type {WebpackError} */ + (err).module = module; + throw err; } } @@ -636,7 +683,10 @@ class JavascriptModulesPlugin { const allModules = modules ? Array.from(modules) : []; let strictHeader; let allStrict = renderContext.strictMode; - if (!allStrict && allModules.every(m => m.buildInfo.strict)) { + if ( + !allStrict && + allModules.every(m => /** @type {BuildInfo} */ (m.buildInfo).strict) + ) { const strictBailout = hooks.strictRuntimeBailout.call(renderContext); strictHeader = strictBailout ? `// runtime can't be in strict mode because ${strictBailout}.\n` @@ -718,7 +768,7 @@ class JavascriptModulesPlugin { inlinedModules = new Set(chunkGraph.getChunkEntryModulesIterable(chunk)); } - let source = new ConcatSource(); + const source = new ConcatSource(); let prefix; if (iife) { if (runtimeTemplate.supportsArrowFunction()) { @@ -731,16 +781,20 @@ class JavascriptModulesPlugin { prefix = "/******/ "; } let allStrict = renderContext.strictMode; - if (!allStrict && allModules.every(m => m.buildInfo.strict)) { + if ( + !allStrict && + allModules.every(m => /** @type {BuildInfo} */ (m.buildInfo).strict) + ) { const strictBailout = hooks.strictRuntimeBailout.call(renderContext); if (strictBailout) { source.add( - prefix + - `// runtime can't be in strict mode because ${strictBailout}.\n` + `${ + prefix + }// runtime can't be in strict mode because ${strictBailout}.\n` ); } else { allStrict = true; - source.add(prefix + '"use strict";\n'); + source.add(`${prefix}"use strict";\n`); } } @@ -767,7 +821,7 @@ class JavascriptModulesPlugin { runtimeRequirements.has(RuntimeGlobals.moduleFactoriesAddOnly) || runtimeRequirements.has(RuntimeGlobals.require) ) { - source.add(prefix + "var __webpack_modules__ = ("); + source.add(`${prefix}var __webpack_modules__ = (`); source.add(chunkModules || "{}"); source.add(");\n"); source.add( @@ -776,7 +830,7 @@ class JavascriptModulesPlugin { } if (bootstrap.header.length > 0) { - const header = Template.asString(bootstrap.header) + "\n"; + const header = `${Template.asString(bootstrap.header)}\n`; source.add( new PrefixSource( prefix, @@ -810,7 +864,7 @@ class JavascriptModulesPlugin { } if (inlinedModules) { if (bootstrap.beforeStartup.length > 0) { - const beforeStartup = Template.asString(bootstrap.beforeStartup) + "\n"; + const beforeStartup = `${Template.asString(bootstrap.beforeStartup)}\n`; source.add( new PrefixSource( prefix, @@ -820,28 +874,36 @@ class JavascriptModulesPlugin { ) ); } - const lastInlinedModule = last(inlinedModules); + const lastInlinedModule = /** @type {Module} */ (last(inlinedModules)); const startupSource = new ConcatSource(); if (runtimeRequirements.has(RuntimeGlobals.exports)) { startupSource.add(`var ${RuntimeGlobals.exports} = {};\n`); } - const renamedInlinedModule = this.renameInlineModule( - allModules, - renderContext, - inlinedModules, - chunkRenderContext, - hooks - ); + const avoidEntryIife = compilation.options.optimization.avoidEntryIife; + /** @type {Map | false} */ + let renamedInlinedModule = false; + if (avoidEntryIife) { + renamedInlinedModule = this.getRenamedInlineModule( + allModules, + renderContext, + inlinedModules, + chunkRenderContext, + hooks, + allStrict, + Boolean(chunkModules) + ); + } for (const m of inlinedModules) { - const renderedModule = - renamedInlinedModule.get(m) || - this.renderModule(m, chunkRenderContext, hooks, false); + const renderedModule = renamedInlinedModule + ? renamedInlinedModule.get(m) + : this.renderModule(m, chunkRenderContext, hooks, false); if (renderedModule) { - const innerStrict = !allStrict && m.buildInfo.strict; + const innerStrict = + !allStrict && /** @type {BuildInfo} */ (m.buildInfo).strict; const runtimeRequirements = chunkGraph.getModuleRuntimeRequirements( m, chunk.runtime @@ -849,19 +911,21 @@ class JavascriptModulesPlugin { const exports = runtimeRequirements.has(RuntimeGlobals.exports); const webpackExports = exports && m.exportsArgument === RuntimeGlobals.exports; - let iife = innerStrict - ? "it need to be in strict mode." + const iife = innerStrict + ? "it needs to be in strict mode." : inlinedModules.size > 1 ? // TODO check globals and top-level declarations of other entries and chunk modules // to make a better decision - "it need to be isolated against other entry modules." - : exports && !webpackExports - ? `it uses a non-standard name for the exports (${m.exportsArgument}).` - : hooks.embedInRuntimeBailout.call(m, renderContext); + "it needs to be isolated against other entry modules." + : chunkModules && !renamedInlinedModule + ? "it needs to be isolated against other modules in the chunk." + : exports && !webpackExports + ? `it uses a non-standard name for the exports (${m.exportsArgument}).` + : hooks.embedInRuntimeBailout.call(m, renderContext); let footer; if (iife !== undefined) { startupSource.add( - `// This entry need to be wrapped in an IIFE because ${iife}\n` + `// This entry needs to be wrapped in an IIFE because ${iife}\n` ); const arrow = runtimeTemplate.supportsArrowFunction(); if (arrow) { @@ -899,7 +963,7 @@ class JavascriptModulesPlugin { }) ); if (bootstrap.afterStartup.length > 0) { - const afterStartup = Template.asString(bootstrap.afterStartup) + "\n"; + const afterStartup = `${Template.asString(bootstrap.afterStartup)}\n`; source.add( new PrefixSource( prefix, @@ -910,9 +974,10 @@ class JavascriptModulesPlugin { ); } } else { - const lastEntryModule = last( - chunkGraph.getChunkEntryModulesIterable(chunk) - ); + const lastEntryModule = + /** @type {Module} */ + (last(chunkGraph.getChunkEntryModulesIterable(chunk))); + /** @type {function(string[], string): Source} */ const toSource = useSourceMap ? (content, name) => new OriginalSource(Template.asString(content), name) @@ -992,7 +1057,8 @@ class JavascriptModulesPlugin { */ updateHashWithBootstrap(hash, renderContext, hooks) { const bootstrap = this.renderBootstrap(renderContext, hooks); - for (const key of Object.keys(bootstrap)) { + for (const _k of Object.keys(bootstrap)) { + const key = /** @type {keyof Bootstrap} */ (_k); hash.update(key); if (Array.isArray(bootstrap[key])) { for (const line of bootstrap[key]) { @@ -1007,7 +1073,7 @@ class JavascriptModulesPlugin { /** * @param {RenderBootstrapContext} renderContext options object * @param {CompilationHooks} hooks hooks - * @returns {{ header: string[], beforeStartup: string[], startup: string[], afterStartup: string[], allowInlineStartup: boolean }} the generated source of the bootstrap code + * @returns {Bootstrap} the generated source of the bootstrap code */ renderBootstrap(renderContext, hooks) { const { @@ -1047,7 +1113,7 @@ class JavascriptModulesPlugin { allowInlineStartup: true }; - let { header: buf, startup, beforeStartup, afterStartup } = result; + const { header: buf, startup, beforeStartup, afterStartup } = result; if (result.allowInlineStartup && moduleFactories) { startup.push( @@ -1117,7 +1183,13 @@ class JavascriptModulesPlugin { entryModule, entrypoint ] of chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk)) { - const chunks = entrypoint.chunks.filter(c => c !== chunk); + if (!chunkGraph.getModuleSourceTypes(entryModule).has("javascript")) { + i--; + continue; + } + const chunks = + /** @type {Entrypoint} */ + (entrypoint).chunks.filter(c => c !== chunk); if (result.allowInlineStartup && chunks.length > 0) { buf2.push( "// This entry module depends on other loaded chunks and execution need to be delayed" @@ -1403,23 +1475,43 @@ class JavascriptModulesPlugin { * @param {Set} inlinedModules inlinedModules * @param {ChunkRenderContext} chunkRenderContext chunkRenderContext * @param {CompilationHooks} hooks hooks - * @returns {Map} renamed inlined modules + * @param {boolean | undefined} allStrict allStrict + * @param {boolean} hasChunkModules hasChunkModules + * @returns {Map | false} renamed inlined modules */ - renameInlineModule( + getRenamedInlineModule( allModules, renderContext, inlinedModules, chunkRenderContext, - hooks + hooks, + allStrict, + hasChunkModules ) { + const innerStrict = + !allStrict && + allModules.every(m => /** @type {BuildInfo} */ (m.buildInfo).strict); + const isMultipleEntries = inlinedModules.size > 1; + const singleEntryWithModules = inlinedModules.size === 1 && hasChunkModules; + + // TODO: + // This step is before the IIFE reason calculation. Ideally, it should only be executed when this function can optimize the + // IIFE reason. Otherwise, it should directly return false. There are four reasons now, we have skipped two already, the left + // one is 'it uses a non-standard name for the exports'. + if (isMultipleEntries || innerStrict || !singleEntryWithModules) { + return false; + } + + /** @type {Map} */ + const renamedInlinedModules = new Map(); const { runtimeTemplate } = renderContext; - /** @type {Map, usedInNonInlined: Set}>} */ + /** @typedef {{ source: Source, module: Module, ast: any, variables: Set, through: Set, usedInNonInlined: Set, moduleScope: Scope }} Info */ + /** @type {Map} */ const inlinedModulesToInfo = new Map(); /** @type {Set} */ const nonInlinedModuleThroughIdentifiers = new Set(); /** @type {Map} */ - const renamedInlinedModules = new Map(); for (const m of allModules) { const isInlinedModule = inlinedModules && inlinedModules.has(m); @@ -1427,7 +1519,7 @@ class JavascriptModulesPlugin { m, chunkRenderContext, hooks, - isInlinedModule ? false : true + !isInlinedModule ); if (!moduleSource) continue; @@ -1443,14 +1535,17 @@ class JavascriptModulesPlugin { ignoreEval: true }); - const globalScope = scopeManager.acquire(ast); + const globalScope = /** @type {Scope} */ (scopeManager.acquire(ast)); if (inlinedModules && inlinedModules.has(m)) { const moduleScope = globalScope.childScopes[0]; inlinedModulesToInfo.set(m, { source: moduleSource, ast, + module: m, variables: new Set(moduleScope.variables), - usedInNonInlined: new Set() + through: new Set(moduleScope.through), + usedInNonInlined: new Set(), + moduleScope }); } else { for (const ref of globalScope.through) { @@ -1461,7 +1556,10 @@ class JavascriptModulesPlugin { for (const [, { variables, usedInNonInlined }] of inlinedModulesToInfo) { for (const variable of variables) { - if (nonInlinedModuleThroughIdentifiers.has(variable.name)) { + if ( + nonInlinedModuleThroughIdentifiers.has(variable.name) || + RESERVED_NAMES.has(variable.name) + ) { usedInNonInlined.add(variable); } } @@ -1475,36 +1573,70 @@ class JavascriptModulesPlugin { continue; } - const usedNames = new Set( - Array.from(inlinedModulesToInfo.get(m).variables).map(v => v.name) + const info = /** @type {Info} */ (inlinedModulesToInfo.get(m)); + const allUsedNames = new Set( + Array.from(info.through, v => v.identifier.name) ); for (const variable of usedInNonInlined) { + allUsedNames.add(variable.name); + } + + for (const variable of info.variables) { + allUsedNames.add(variable.name); const references = getAllReferences(variable); const allIdentifiers = new Set( references.map(r => r.identifier).concat(variable.identifiers) ); - const newName = this.findNewName( - variable.name, - usedNames, - m.readableIdentifier(runtimeTemplate.requestShortener) + const usedNamesInScopeInfo = new Map(); + const ignoredScopes = new Set(); + + const name = variable.name; + const { usedNames, alreadyCheckedScopes } = getUsedNamesInScopeInfo( + usedNamesInScopeInfo, + info.module.identifier(), + name ); - usedNames.add(newName); - for (const identifier of allIdentifiers) { - const r = identifier.range; - const path = getPathInAst(ast, identifier); - if (path && path.length > 1) { - const maybeProperty = - path[1].type === "AssignmentPattern" && path[1].left === path[0] - ? path[2] - : path[1]; - if (maybeProperty.type === "Property" && maybeProperty.shorthand) { - source.insert(r[1], `: ${newName}`); - continue; - } + + if (allUsedNames.has(name) || usedNames.has(name)) { + const references = getAllReferences(variable); + for (const ref of references) { + addScopeSymbols( + ref.from, + usedNames, + alreadyCheckedScopes, + ignoredScopes + ); } - source.replace(r[0], r[1] - 1, newName); + + const newName = findNewName( + variable.name, + allUsedNames, + usedNames, + m.readableIdentifier(runtimeTemplate.requestShortener) + ); + allUsedNames.add(newName); + for (const identifier of allIdentifiers) { + const r = /** @type {Range} */ (identifier.range); + const path = getPathInAst(ast, identifier); + if (path && path.length > 1) { + const maybeProperty = + path[1].type === "AssignmentPattern" && path[1].left === path[0] + ? path[2] + : path[1]; + if ( + maybeProperty.type === "Property" && + maybeProperty.shorthand + ) { + source.insert(r[1], `: ${newName}`); + continue; + } + } + source.replace(r[0], r[1] - 1, newName); + } + } else { + allUsedNames.add(name); } } @@ -1513,38 +1645,6 @@ class JavascriptModulesPlugin { return renamedInlinedModules; } - - /** - * @param {string} oldName oldName - * @param {Set} usedName usedName - * @param {string} extraInfo extraInfo - * @returns {string} extraInfo - */ - findNewName(oldName, usedName, extraInfo) { - let name = oldName; - - // Remove uncool stuff - extraInfo = extraInfo.replace( - /\.+\/|(\/index)?\.([a-zA-Z0-9]{1,4})($|\s|\?)|\s*\+\s*\d+\s*modules/g, - "" - ); - const splittedInfo = extraInfo.split("/"); - while (splittedInfo.length) { - name = splittedInfo.pop() + (name ? "_" + name : ""); - const nameIdent = Template.toIdentifier(name); - if (!usedName.has(nameIdent)) { - return nameIdent; - } - } - - let i = 0; - let nameWithNumber = Template.toIdentifier(`${name}_${i}`); - while (usedName.has(nameWithNumber)) { - i++; - nameWithNumber = Template.toIdentifier(`${name}_${i}`); - } - return nameWithNumber; - } } module.exports = JavascriptModulesPlugin; diff --git a/node_modules/webpack/lib/javascript/JavascriptParser.js b/node_modules/webpack/lib/javascript/JavascriptParser.js index 3a61898..f9d2497 100644 --- a/node_modules/webpack/lib/javascript/JavascriptParser.js +++ b/node_modules/webpack/lib/javascript/JavascriptParser.js @@ -5,13 +5,16 @@ "use strict"; -const { Parser: AcornParser } = require("acorn"); -const { importAttributesOrAssertions } = require("acorn-import-attributes"); +const { Parser: AcornParser, tokTypes } = require("acorn"); const { SyncBailHook, HookMap } = require("tapable"); const vm = require("vm"); const Parser = require("../Parser"); const StackedMap = require("../util/StackedMap"); const binarySearchBounds = require("../util/binarySearchBounds"); +const { + webpackCommentRegExp, + createMagicCommentContext +} = require("../util/magicComment"); const memoize = require("../util/memoize"); const BasicEvaluatedExpression = require("./BasicEvaluatedExpression"); @@ -23,11 +26,9 @@ const BasicEvaluatedExpression = require("./BasicEvaluatedExpression"); /** @typedef {import("estree").CallExpression} CallExpression */ /** @typedef {import("estree").BaseCallExpression} BaseCallExpression */ /** @typedef {import("estree").StaticBlock} StaticBlock */ -/** @typedef {import("estree").ImportExpression} ImportExpression */ /** @typedef {import("estree").ClassDeclaration} ClassDeclaration */ /** @typedef {import("estree").ForStatement} ForStatement */ /** @typedef {import("estree").SwitchStatement} SwitchStatement */ -/** @typedef {import("estree").ExportNamedDeclaration} ExportNamedDeclaration */ /** @typedef {import("estree").ClassExpression} ClassExpression */ /** @typedef {import("estree").Comment} Comment */ /** @typedef {import("estree").ConditionalExpression} ConditionalExpression */ @@ -67,7 +68,6 @@ const BasicEvaluatedExpression = require("./BasicEvaluatedExpression"); /** @typedef {import("estree").WithStatement} WithStatement */ /** @typedef {import("estree").ThrowStatement} ThrowStatement */ /** @typedef {import("estree").MethodDefinition} MethodDefinition */ -/** @typedef {import("estree").ModuleDeclaration} ModuleDeclaration */ /** @typedef {import("estree").NewExpression} NewExpression */ /** @typedef {import("estree").SpreadElement} SpreadElement */ /** @typedef {import("estree").FunctionExpression} FunctionExpression */ @@ -77,13 +77,11 @@ const BasicEvaluatedExpression = require("./BasicEvaluatedExpression"); /** @typedef {import("estree").FunctionDeclaration} FunctionDeclaration */ /** @typedef {import("estree").DoWhileStatement} DoWhileStatement */ /** @typedef {import("estree").TryStatement} TryStatement */ -/** @typedef {import("estree").Node} AnyNode */ +/** @typedef {import("estree").Node} Node */ /** @typedef {import("estree").Program} Program */ /** @typedef {import("estree").Directive} Directive */ /** @typedef {import("estree").Statement} Statement */ -/** @typedef {import("estree").ImportDeclaration} ImportDeclaration */ /** @typedef {import("estree").ExportDefaultDeclaration} ExportDefaultDeclaration */ -/** @typedef {import("estree").ExportAllDeclaration} ExportAllDeclaration */ /** @typedef {import("estree").Super} Super */ /** @typedef {import("estree").TaggedTemplateExpression} TaggedTemplateExpression */ /** @typedef {import("estree").TemplateLiteral} TemplateLiteral */ @@ -94,12 +92,20 @@ const BasicEvaluatedExpression = require("./BasicEvaluatedExpression"); */ /** @typedef {import("../Parser").ParserState} ParserState */ /** @typedef {import("../Parser").PreparsedAst} PreparsedAst */ -/** @typedef {{declaredScope: ScopeInfo, freeName: string | true, tagInfo: TagInfo | undefined}} VariableInfoInterface */ +/** @typedef {{declaredScope: ScopeInfo, freeName: string | true | undefined, tagInfo: TagInfo | undefined}} VariableInfoInterface */ /** @typedef {{ name: string | VariableInfo, rootInfo: string | VariableInfo, getMembers: () => string[], getMembersOptionals: () => boolean[], getMemberRanges: () => Range[] }} GetInfoResult */ /** @typedef {Statement | ModuleDeclaration | Expression} StatementPathItem */ -/** @typedef {TODO} OnIdent */ +/** @typedef {function(string): void} OnIdentString */ +/** @typedef {function(string, Identifier): void} OnIdent */ +/** @typedef {StatementPathItem[]} StatementPath */ -/** @typedef {Record & { _isLegacyAssert?: boolean }} ImportAttributes */ +// TODO remove cast when @types/estree has been updated to import assertions +/** @typedef {import("estree").BaseNode & { type: "ImportAttribute", key: Identifier | Literal, value: Literal }} ImportAttribute */ +/** @typedef {import("estree").ImportDeclaration & { attributes?: Array }} ImportDeclaration */ +/** @typedef {import("estree").ExportNamedDeclaration & { attributes?: Array }} ExportNamedDeclaration */ +/** @typedef {import("estree").ExportAllDeclaration & { attributes?: Array }} ExportAllDeclaration */ +/** @typedef {import("estree").ImportExpression & { options?: Expression | null }} ImportExpression */ +/** @typedef {ImportDeclaration | ExportNamedDeclaration | ExportDefaultDeclaration | ExportAllDeclaration} ModuleDeclaration */ /** @type {string[]} */ const EMPTY_ARRAY = []; @@ -107,9 +113,146 @@ const ALLOWED_MEMBER_TYPES_CALL_EXPRESSION = 0b01; const ALLOWED_MEMBER_TYPES_EXPRESSION = 0b10; const ALLOWED_MEMBER_TYPES_ALL = 0b11; -// Syntax: https://developer.mozilla.org/en/SpiderMonkey/Parser_API +const LEGACY_ASSERT_ATTRIBUTES = Symbol("assert"); -const parser = AcornParser.extend(importAttributesOrAssertions); +/** + * @param {any} Parser parser + * @returns {typeof AcornParser} extender acorn parser + */ +const importAssertions = Parser => + /** @type {typeof AcornParser} */ ( + /** @type {unknown} */ ( + class extends Parser { + parseWithClause() { + const nodes = []; + + const isAssertLegacy = this.value === "assert"; + + if (isAssertLegacy) { + if (!this.eat(tokTypes.name)) { + return nodes; + } + } else if (!this.eat(tokTypes._with)) { + return nodes; + } + + this.expect(tokTypes.braceL); + + const attributeKeys = {}; + let first = true; + + while (!this.eat(tokTypes.braceR)) { + if (!first) { + this.expect(tokTypes.comma); + if (this.afterTrailingComma(tokTypes.braceR)) { + break; + } + } else { + first = false; + } + + const attr = this.parseImportAttribute(); + const keyName = + attr.key.type === "Identifier" ? attr.key.name : attr.key.value; + + if (Object.prototype.hasOwnProperty.call(attributeKeys, keyName)) { + this.raiseRecoverable( + attr.key.start, + `Duplicate attribute key '${keyName}'` + ); + } + + attributeKeys[keyName] = true; + nodes.push(attr); + } + + if (isAssertLegacy) { + nodes[LEGACY_ASSERT_ATTRIBUTES] = true; + } + + return nodes; + } + } + ) + ); + +// Syntax: https://developer.mozilla.org/en/SpiderMonkey/Parser_API +const parser = AcornParser.extend(importAssertions); + +/** @typedef {Record & { _isLegacyAssert?: boolean }} ImportAttributes */ + +/** + * @param {ImportDeclaration | ExportNamedDeclaration | ExportAllDeclaration | ImportExpression} node node with assertions + * @returns {ImportAttributes | undefined} import attributes + */ +const getImportAttributes = node => { + if (node.type === "ImportExpression") { + if ( + node.options && + node.options.type === "ObjectExpression" && + node.options.properties[0] && + node.options.properties[0].type === "Property" && + node.options.properties[0].key.type === "Identifier" && + (node.options.properties[0].key.name === "with" || + node.options.properties[0].key.name === "assert") && + node.options.properties[0].value.type === "ObjectExpression" && + node.options.properties[0].value.properties.length > 0 + ) { + const properties = + /** @type {Property[]} */ + (node.options.properties[0].value.properties); + const result = /** @type {ImportAttributes} */ ({}); + for (const property of properties) { + const key = + /** @type {string} */ + ( + property.key.type === "Identifier" + ? property.key.name + : /** @type {Literal} */ (property.key).value + ); + result[key] = + /** @type {string} */ + (/** @type {Literal} */ (property.value).value); + } + const key = + node.options.properties[0].key.type === "Identifier" + ? node.options.properties[0].key.name + : /** @type {Literal} */ (node.options.properties[0].key).value; + + if (key === "assert") { + result._isLegacyAssert = true; + } + + return result; + } + + return; + } + + if (node.attributes === undefined || node.attributes.length === 0) { + return; + } + + const result = /** @type {ImportAttributes} */ ({}); + + for (const attribute of node.attributes) { + const key = + /** @type {string} */ + ( + attribute.key.type === "Identifier" + ? attribute.key.name + : attribute.key.value + ); + + result[key] = /** @type {string} */ (attribute.value.value); + } + + if (node.attributes[LEGACY_ASSERT_ATTRIBUTES]) { + result._isLegacyAssert = true; + } + + return result; +}; class VariableInfo { /** @@ -159,11 +302,9 @@ class VariableInfo { * Helper function for joining two ranges into a single range. This is useful * when working with AST nodes, as it allows you to combine the ranges of child nodes * to create the range of the _parent node_. - * * @param {[number, number]} startRange start range to join * @param {[number, number]} endRange end range to join * @returns {[number, number]} joined range - * * @example * ```js * const startRange = [0, 5]; @@ -171,7 +312,6 @@ class VariableInfo { * const joinedRange = joinRanges(startRange, endRange); * console.log(joinedRange); // [0, 15] * ``` - * */ const joinRanges = (startRange, endRange) => { if (!endRange) return startRange; @@ -182,7 +322,6 @@ const joinRanges = (startRange, endRange) => { /** * Helper function used to generate a string representation of a * [member expression](https://github.com/estree/estree/blob/master/es5.md#memberexpression). - * * @param {string} object object to name * @param {string[]} membersReversed reversed list of members * @returns {string} member expression as a string @@ -193,12 +332,11 @@ const joinRanges = (startRange, endRange) => { * * console.log(name); // "myObject.property1.property2.property3" * ``` - * */ const objectAndMembersToName = (object, membersReversed) => { let name = object; for (let i = membersReversed.length - 1; i >= 0; i--) { - name = name + "." + membersReversed[i]; + name = `${name}.${membersReversed[i]}`; } return name; }; @@ -209,8 +347,7 @@ const objectAndMembersToName = (object, membersReversed) => { * [ThisExpressions](https://github.com/estree/estree/blob/master/es5.md#identifier), and * [MetaProperties](https://github.com/estree/estree/blob/master/es2015.md#metaproperty) which is * specifically for handling the `new.target` meta property. - * - * @param {Expression | Super} expression expression + * @param {Expression | SpreadElement | Super} expression expression * @returns {string | "this" | undefined} name or variable info */ const getRootName = expression => { @@ -234,12 +371,9 @@ const defaultParserOptions = { sourceType: "module", // https://github.com/tc39/proposal-hashbang allowHashBang: true, - onComment: null + onComment: undefined }; -// regexp to match at least one "magic comment" -const webpackCommentRegExp = new RegExp(/(^|\W)webpack[A-Z]{1,}[A-Za-z]{1,}:/); - const EMPTY_COMMENT_OPTIONS = { options: null, errors: null @@ -252,25 +386,25 @@ class JavascriptParser extends Parser { constructor(sourceType = "auto") { super(); this.hooks = Object.freeze({ - /** @type {HookMap>} */ + /** @type {HookMap>} */ evaluateTypeof: new HookMap(() => new SyncBailHook(["expression"])), - /** @type {HookMap>} */ + /** @type {HookMap>} */ evaluate: new HookMap(() => new SyncBailHook(["expression"])), - /** @type {HookMap>} */ + /** @type {HookMap>} */ evaluateIdentifier: new HookMap(() => new SyncBailHook(["expression"])), - /** @type {HookMap>} */ + /** @type {HookMap>} */ evaluateDefinedIdentifier: new HookMap( () => new SyncBailHook(["expression"]) ), - /** @type {HookMap>} */ + /** @type {HookMap>} */ evaluateNewExpression: new HookMap( () => new SyncBailHook(["expression"]) ), - /** @type {HookMap>} */ + /** @type {HookMap>} */ evaluateCallExpression: new HookMap( () => new SyncBailHook(["expression"]) ), - /** @type {HookMap>} */ + /** @type {HookMap>} */ evaluateCallExpressionMember: new HookMap( () => new SyncBailHook(["expression", "param"]) ), @@ -304,7 +438,7 @@ class JavascriptParser extends Parser { label: new HookMap(() => new SyncBailHook(["statement"])), /** @type {SyncBailHook<[ImportDeclaration, ImportSource], boolean | void>} */ import: new SyncBailHook(["statement", "source"]), - /** @type {SyncBailHook<[ImportDeclaration, ImportSource, string, string], boolean | void>} */ + /** @type {SyncBailHook<[ImportDeclaration, ImportSource, string | null, string], boolean | void>} */ importSpecifier: new SyncBailHook([ "statement", "source", @@ -326,7 +460,7 @@ class JavascriptParser extends Parser { "exportName", "index" ]), - /** @type {SyncBailHook<[ExportNamedDeclaration | ExportAllDeclaration, ImportSource, string, string, number | undefined], boolean | void>} */ + /** @type {SyncBailHook<[ExportNamedDeclaration | ExportAllDeclaration, ImportSource, string | null, string | null, number | undefined], boolean | void>} */ exportImportSpecifier: new SyncBailHook([ "statement", "source", @@ -441,17 +575,14 @@ class JavascriptParser extends Parser { this.comments = undefined; /** @type {Set | undefined} */ this.semicolons = undefined; - /** @type {StatementPathItem[]} */ + /** @type {StatementPath | undefined} */ this.statementPath = undefined; /** @type {Statement | ModuleDeclaration | Expression | undefined} */ this.prevStatement = undefined; /** @type {WeakMap> | undefined} */ this.destructuringAssignmentProperties = undefined; this.currentTagData = undefined; - this.magicCommentContext = vm.createContext(undefined, { - name: "Webpack Magic Comment Parser", - codeGeneration: { strings: false, wasm: false } - }); + this.magicCommentContext = createMagicCommentContext(); this._initializeEvaluating(); } @@ -504,7 +635,7 @@ class JavascriptParser extends Parser { ) return; - let regExp, flags; + let regExp; const arg1 = expr.arguments[0]; if (arg1) { @@ -518,11 +649,15 @@ class JavascriptParser extends Parser { if (!regExp) return; } else { - return new BasicEvaluatedExpression() - .setRegExp(new RegExp("")) - .setRange(/** @type {Range} */ (expr.range)); + return ( + new BasicEvaluatedExpression() + // eslint-disable-next-line prefer-regex-literals + .setRegExp(new RegExp("")) + .setRange(/** @type {Range} */ (expr.range)) + ); } + let flags; const arg2 = expr.arguments[1]; if (arg2) { @@ -554,7 +689,7 @@ class JavascriptParser extends Parser { const left = this.evaluateExpression(expr.left); let returnRight = false; - /** @type {boolean|undefined} */ + /** @type {boolean | undefined} */ let allowedRight; if (expr.operator === "&&") { const leftAsBool = left.asBool(); @@ -669,7 +804,6 @@ class JavascriptParser extends Parser { /** * Evaluates a binary expression if and only if it is a const operation (e.g. 1 + 2, "a" + "b", etc.). - * * @template T * @param {(leftOperand: T, rightOperand: T) => boolean | number | bigint | string} operandHandler the handler for the operation (e.g. (a, b) => a + b) * @returns {BasicEvaluatedExpression | undefined} the evaluated expression @@ -695,7 +829,6 @@ class JavascriptParser extends Parser { /** * Helper function to determine if two booleans are always different. This is used in `handleStrictEqualityComparison` * to determine if an expressions boolean or nullish conversion is equal or not. - * * @param {boolean} a first boolean to compare * @param {boolean} b second boolean to compare * @returns {boolean} true if the two booleans are always different, false otherwise @@ -984,7 +1117,7 @@ class JavascriptParser extends Parser { res.setWrapped( left.prefix, new BasicEvaluatedExpression() - .setString(right.number + "") + .setString(String(right.number)) .setRange(/** @type {Range} */ (right.range)), left.wrappedInnerExpressions ); @@ -1013,25 +1146,23 @@ class JavascriptParser extends Parser { ) ); } + } else if (right.isString()) { + // left + "right" + // => ([null] + left + "right") + res.setWrapped(null, right, [left]); + } else if (right.isWrapped()) { + // left + (prefix + inner + "postfix") + // => ([null] + left + prefix + inner + "postfix") + res.setWrapped( + null, + right.postfix, + right.wrappedInnerExpressions && + (right.prefix ? [left, right.prefix] : [left]).concat( + right.wrappedInnerExpressions + ) + ); } else { - if (right.isString()) { - // left + "right" - // => ([null] + left + "right") - res.setWrapped(null, right, [left]); - } else if (right.isWrapped()) { - // left + (prefix + inner + "postfix") - // => ([null] + left + prefix + inner + "postfix") - res.setWrapped( - null, - right.postfix, - right.wrappedInnerExpressions && - (right.prefix ? [left, right.prefix] : [left]).concat( - right.wrappedInnerExpressions - ) - ); - } else { - return; - } + return; } if (left.couldHaveSideEffects() || right.couldHaveSideEffects()) res.setSideEffects(); @@ -1082,7 +1213,6 @@ class JavascriptParser extends Parser { /** * Evaluates a UnaryExpression if and only if it is a basic const operator (e.g. +a, -a, ~a). - * * @template T * @param {(operand: T) => boolean | number | bigint | string} operandHandler handler for the operand * @returns {BasicEvaluatedExpression | undefined} evaluated expression @@ -1112,7 +1242,7 @@ class JavascriptParser extends Parser { case "MetaProperty": { const res = this.callHooksForName( this.hooks.evaluateTypeof, - getRootName(expr.argument), + /** @type {string} */ (getRootName(expr.argument)), expr ); if (res !== undefined) return res; @@ -1197,16 +1327,19 @@ class JavascriptParser extends Parser { } else if (expr.operator === "~") { return handleConstOperation(v => ~v); } else if (expr.operator === "+") { + // eslint-disable-next-line no-implicit-coercion return handleConstOperation(v => +v); } else if (expr.operator === "-") { return handleConstOperation(v => -v); } }); - this.hooks.evaluateTypeof.for("undefined").tap("JavascriptParser", expr => { - return new BasicEvaluatedExpression() - .setString("undefined") - .setRange(/** @type {Range} */ (expr.range)); - }); + this.hooks.evaluateTypeof + .for("undefined") + .tap("JavascriptParser", expr => + new BasicEvaluatedExpression() + .setString("undefined") + .setRange(/** @type {Range} */ (expr.range)) + ); this.hooks.evaluate.for("Identifier").tap("JavascriptParser", expr => { if (/** @type {Identifier} */ (expr).name === "undefined") { return new BasicEvaluatedExpression() @@ -1215,19 +1348,20 @@ class JavascriptParser extends Parser { } }); /** - * @param {string} exprType expression type name - * @param {function(Expression): GetInfoResult | undefined} getInfo get info + * @param {"Identifier" | "ThisExpression" | "MemberExpression"} exprType expression type name + * @param {function(Expression | SpreadElement): GetInfoResult | undefined} getInfo get info * @returns {void} */ const tapEvaluateWithVariableInfo = (exprType, getInfo) => { /** @type {Expression | undefined} */ - let cachedExpression = undefined; + let cachedExpression; /** @type {GetInfoResult | undefined} */ - let cachedInfo = undefined; + let cachedInfo; this.hooks.evaluate.for(exprType).tap("JavascriptParser", expr => { - const expression = /** @type {MemberExpression} */ (expr); + const expression = + /** @type {Identifier | ThisExpression | MemberExpression} */ (expr); - const info = getInfo(expr); + const info = getInfo(expression); if (info !== undefined) { return this.callHooksForInfoWithFallback( this.hooks.evaluateIdentifier, @@ -1249,7 +1383,11 @@ class JavascriptParser extends Parser { this.hooks.evaluate .for(exprType) .tap({ name: "JavascriptParser", stage: 100 }, expr => { - const info = cachedExpression === expr ? cachedInfo : getInfo(expr); + const expression = + /** @type {Identifier | ThisExpression | MemberExpression} */ + (expr); + const info = + cachedExpression === expression ? cachedInfo : getInfo(expression); if (info !== undefined) { return new BasicEvaluatedExpression() .setIdentifier( @@ -1259,7 +1397,7 @@ class JavascriptParser extends Parser { info.getMembersOptionals, info.getMemberRanges ) - .setRange(/** @type {Range} */ (expr.range)); + .setRange(/** @type {Range} */ (expression.range)); } }); this.hooks.finish.tap("JavascriptParser", () => { @@ -1302,7 +1440,7 @@ class JavascriptParser extends Parser { return this.callHooksForName( this.hooks.evaluateIdentifier, - getRootName(expr), + /** @type {string} */ (getRootName(metaProperty)), metaProperty ); }); @@ -1375,8 +1513,8 @@ class JavascriptParser extends Parser { if (expr.arguments.length !== 2) return; if (expr.arguments[0].type === "SpreadElement") return; if (expr.arguments[1].type === "SpreadElement") return; - let arg1 = this.evaluateExpression(expr.arguments[0]); - let arg2 = this.evaluateExpression(expr.arguments[1]); + const arg1 = this.evaluateExpression(expr.arguments[0]); + const arg2 = this.evaluateExpression(expr.arguments[1]); if (!arg1.isString() && !arg1.isRegExp()) return; const arg1Value = /** @type {string | RegExp} */ ( arg1.regExp || arg1.string @@ -1390,14 +1528,14 @@ class JavascriptParser extends Parser { .setSideEffects(param.couldHaveSideEffects()) .setRange(/** @type {Range} */ (expr.range)); }); - ["substr", "substring", "slice"].forEach(fn => { + for (const fn of ["substr", "substring", "slice"]) { this.hooks.evaluateCallExpressionMember .for(fn) .tap("JavascriptParser", (expr, param) => { if (!param.isString()) return; let arg1; - let result, - str = /** @type {string} */ (param.string); + let result; + const str = /** @type {string} */ (param.string); switch (expr.arguments.length) { case 1: if (expr.arguments[0].type === "SpreadElement") return; @@ -1430,7 +1568,7 @@ class JavascriptParser extends Parser { .setSideEffects(param.couldHaveSideEffects()) .setRange(/** @type {Range} */ (expr.range)); }); - }); + } /** * @param {"cooked" | "raw"} kind kind of values to get @@ -1538,7 +1676,7 @@ class JavascriptParser extends Parser { /** @type {string} */ const value = argExpr.isString() ? /** @type {string} */ (argExpr.string) - : "" + /** @type {number} */ (argExpr.number); + : String(/** @type {number} */ (argExpr.number)); /** @type {string} */ const newString = value + (stringSuffix ? stringSuffix.string : ""); @@ -1572,18 +1710,17 @@ class JavascriptParser extends Parser { return new BasicEvaluatedExpression() .setWrapped(param.prefix, postfix, inner) .setRange(/** @type {Range} */ (expr.range)); - } else { - const newString = - /** @type {string} */ (param.string) + - (stringSuffix ? stringSuffix.string : ""); - return new BasicEvaluatedExpression() - .setString(newString) - .setSideEffects( - (stringSuffix && stringSuffix.couldHaveSideEffects()) || - param.couldHaveSideEffects() - ) - .setRange(/** @type {Range} */ (expr.range)); } + const newString = + /** @type {string} */ (param.string) + + (stringSuffix ? stringSuffix.string : ""); + return new BasicEvaluatedExpression() + .setString(newString) + .setSideEffects( + (stringSuffix && stringSuffix.couldHaveSideEffects()) || + param.couldHaveSideEffects() + ) + .setRange(/** @type {Range} */ (expr.range)); }); this.hooks.evaluateCallExpressionMember .for("split") @@ -1649,13 +1786,12 @@ class JavascriptParser extends Parser { .tap("JavascriptParser", _expr => { const expr = /** @type {ArrayExpression} */ (_expr); - const items = expr.elements.map(element => { - return ( + const items = expr.elements.map( + element => element !== null && element.type !== "SpreadElement" && this.evaluateExpression(element) - ); - }); + ); if (!items.every(Boolean)) return; return new BasicEvaluatedExpression() .setItems(/** @type {BasicEvaluatedExpression[]} */ (items)) @@ -1712,12 +1848,12 @@ class JavascriptParser extends Parser { * @returns {Set | undefined} destructured identifiers */ destructuringAssignmentPropertiesFor(node) { - if (!this.destructuringAssignmentProperties) return undefined; + if (!this.destructuringAssignmentProperties) return; return this.destructuringAssignmentProperties.get(node); } /** - * @param {Expression} expr expression + * @param {Expression | SpreadElement} expr expression * @returns {string | VariableInfoInterface | undefined} identifier */ getRenameIdentifier(expr) { @@ -1732,10 +1868,11 @@ class JavascriptParser extends Parser { * @returns {void} */ walkClass(classy) { - if (classy.superClass) { - if (!this.hooks.classExtendsExpression.call(classy.superClass, classy)) { - this.walkExpression(classy.superClass); - } + if ( + classy.superClass && + !this.hooks.classExtendsExpression.call(classy.superClass, classy) + ) { + this.walkExpression(classy.superClass); } if (classy.body && classy.body.type === "ClassBody") { const scopeParams = []; @@ -1776,7 +1913,6 @@ class JavascriptParser extends Parser { /** * Pre walking iterates the scope for variable declarations - * * @param {(Statement | ModuleDeclaration)[]} statements statements */ preWalkStatements(statements) { @@ -1788,7 +1924,6 @@ class JavascriptParser extends Parser { /** * Block pre walking iterates the scope for block variable declarations - * * @param {(Statement | ModuleDeclaration)[]} statements statements */ blockPreWalkStatements(statements) { @@ -1800,7 +1935,6 @@ class JavascriptParser extends Parser { /** * Walking iterates the statements and expressions and processes them - * * @param {(Statement | ModuleDeclaration)[]} statements statements */ walkStatements(statements) { @@ -1812,13 +1946,15 @@ class JavascriptParser extends Parser { /** * Walking iterates the statements and expressions and processes them - * * @param {Statement | ModuleDeclaration} statement statement */ preWalkStatement(statement) { - this.statementPath.push(statement); + /** @type {StatementPath} */ + (this.statementPath).push(statement); if (this.hooks.preStatement.call(statement)) { - this.prevStatement = this.statementPath.pop(); + this.prevStatement = + /** @type {StatementPath} */ + (this.statementPath).pop(); return; } switch (statement.type) { @@ -1862,16 +1998,21 @@ class JavascriptParser extends Parser { this.preWalkWithStatement(statement); break; } - this.prevStatement = this.statementPath.pop(); + this.prevStatement = + /** @type {StatementPath} */ + (this.statementPath).pop(); } /** * @param {Statement | ModuleDeclaration} statement statement */ blockPreWalkStatement(statement) { - this.statementPath.push(statement); + /** @type {StatementPath} */ + (this.statementPath).push(statement); if (this.hooks.blockPreStatement.call(statement)) { - this.prevStatement = this.statementPath.pop(); + this.prevStatement = + /** @type {StatementPath} */ + (this.statementPath).pop(); return; } switch (statement.type) { @@ -1896,16 +2037,21 @@ class JavascriptParser extends Parser { case "ExpressionStatement": this.blockPreWalkExpressionStatement(statement); } - this.prevStatement = this.statementPath.pop(); + this.prevStatement = + /** @type {StatementPath} */ + (this.statementPath).pop(); } /** * @param {Statement | ModuleDeclaration} statement statement */ walkStatement(statement) { - this.statementPath.push(statement); + /** @type {StatementPath} */ + (this.statementPath).push(statement); if (this.hooks.statement.call(statement) !== undefined) { - this.prevStatement = this.statementPath.pop(); + this.prevStatement = + /** @type {StatementPath} */ + (this.statementPath).pop(); return; } switch (statement.type) { @@ -1967,14 +2113,15 @@ class JavascriptParser extends Parser { this.walkWithStatement(statement); break; } - this.prevStatement = this.statementPath.pop(); + this.prevStatement = + /** @type {StatementPath} */ + (this.statementPath).pop(); } /** * Walks a statements that is nested within a parent statement * and can potentially be a non-block statement. * This enforces the nested statement to never be in ASI position. - * * @param {Statement} statement the nested statement */ walkNestedStatement(statement) { @@ -2031,12 +2178,10 @@ class JavascriptParser extends Parser { if (statement.alternate) { this.walkNestedStatement(statement.alternate); } - } else { - if (result) { - this.walkNestedStatement(statement.consequent); - } else if (statement.alternate) { - this.walkNestedStatement(statement.alternate); - } + } else if (result) { + this.walkNestedStatement(statement.consequent); + } else if (statement.alternate) { + this.walkNestedStatement(statement.alternate); } } @@ -2168,10 +2313,8 @@ class JavascriptParser extends Parser { * @param {ForStatement} statement for statement */ preWalkForStatement(statement) { - if (statement.init) { - if (statement.init.type === "VariableDeclaration") { - this.preWalkStatement(statement.init); - } + if (statement.init && statement.init.type === "VariableDeclaration") { + this.preWalkStatement(statement.init); } this.preWalkStatement(statement.body); } @@ -2379,12 +2522,13 @@ class JavascriptParser extends Parser { !this.hooks.importSpecifier.call( statement, source, - specifier.imported.name || - // eslint-disable-next-line no-warning-comments - // @ts-ignore - // Old version of acorn used it - // TODO drop it in webpack@6 - specifier.imported.value, + /** @type {Identifier} */ + (specifier.imported).name || + /** @type {string} */ + ( + /** @type {Literal} */ + (specifier.imported).value + ), name ) ) { @@ -2438,19 +2582,18 @@ class JavascriptParser extends Parser { } else { this.hooks.export.call(statement); } - if (statement.declaration) { - if ( - !this.hooks.exportDeclaration.call(statement, statement.declaration) - ) { - const prev = this.prevStatement; - this.preWalkStatement(statement.declaration); - this.prevStatement = prev; - this.blockPreWalkStatement(statement.declaration); - let index = 0; - this.enterDeclaration(statement.declaration, def => { - this.hooks.exportSpecifier.call(statement, def, def, index++); - }); - } + if ( + statement.declaration && + !this.hooks.exportDeclaration.call(statement, statement.declaration) + ) { + const prev = this.prevStatement; + this.preWalkStatement(statement.declaration); + this.prevStatement = prev; + this.blockPreWalkStatement(statement.declaration); + let index = 0; + this.enterDeclaration(statement.declaration, def => { + this.hooks.exportSpecifier.call(statement, def, def, index++); + }); } if (statement.specifiers) { for ( @@ -2461,25 +2604,28 @@ class JavascriptParser extends Parser { const specifier = statement.specifiers[specifierIndex]; switch (specifier.type) { case "ExportSpecifier": { + const localName = + /** @type {Identifier} */ (specifier.local).name || + /** @type {string} */ ( + /** @type {Literal} */ (specifier.local).value + ); const name = - specifier.exported.name || - // eslint-disable-next-line no-warning-comments - // @ts-ignore - // Old version of acorn used it - // TODO drop it in webpack@6 - specifier.exported.value; + /** @type {Identifier} */ + (specifier.exported).name || + /** @type {string} */ + (/** @type {Literal} */ (specifier.exported).value); if (source) { this.hooks.exportImportSpecifier.call( statement, source, - specifier.local.name, + localName, name, specifierIndex ); } else { this.hooks.exportSpecifier.call( statement, - specifier.local.name, + localName, name, specifierIndex ); @@ -2582,7 +2728,12 @@ class JavascriptParser extends Parser { */ blockPreWalkExportAllDeclaration(statement) { const source = /** @type {ImportSource} */ (statement.source.value); - const name = statement.exported ? statement.exported.name : null; + const name = statement.exported + ? /** @type {Identifier} */ + (statement.exported).name || + /** @type {string} */ + (/** @type {Literal} */ (statement.exported).value) + : null; this.hooks.exportImport.call(statement, source); this.hooks.exportImportSpecifier.call(statement, source, null, name, 0); } @@ -2655,7 +2806,7 @@ class JavascriptParser extends Parser { shorthand: this.scope.inShorthand }); } else { - const id = this.evaluateExpression(/** @type {TODO} */ (key)); + const id = this.evaluateExpression(key); const str = id.asString(); if (str) { props.add({ @@ -3104,19 +3255,32 @@ class JavascriptParser extends Parser { if (!expression.expressions) return; // We treat sequence expressions like statements when they are one statement level // This has some benefits for optimizations that only work on statement level - const currentStatement = this.statementPath[this.statementPath.length - 1]; + const currentStatement = + /** @type {StatementPath} */ + (this.statementPath)[ + /** @type {StatementPath} */ + (this.statementPath).length - 1 + ]; if ( currentStatement === expression || (currentStatement.type === "ExpressionStatement" && currentStatement.expression === expression) ) { - const old = /** @type {StatementPathItem} */ (this.statementPath.pop()); + const old = + /** @type {StatementPathItem} */ + (/** @type {StatementPath} */ (this.statementPath).pop()); + const prev = this.prevStatement; for (const expr of expression.expressions) { - this.statementPath.push(expr); + /** @type {StatementPath} */ + (this.statementPath).push(expr); this.walkExpression(expr); - this.statementPath.pop(); + this.prevStatement = + /** @type {StatementPath} */ + (this.statementPath).pop(); } - this.statementPath.push(old); + this.prevStatement = prev; + /** @type {StatementPath} */ + (this.statementPath).push(old); } else { this.walkExpressions(expression.expressions); } @@ -3176,10 +3340,8 @@ class JavascriptParser extends Parser { const result = this.hooks.expressionLogicalOperator.call(expression); if (result === undefined) { this.walkLeftRightExpression(expression); - } else { - if (result) { - this.walkExpression(expression.right); - } + } else if (result) { + this.walkExpression(expression.right); } } @@ -3189,31 +3351,30 @@ class JavascriptParser extends Parser { walkAssignmentExpression(expression) { if (expression.left.type === "Identifier") { const renameIdentifier = this.getRenameIdentifier(expression.right); - if (renameIdentifier) { + if ( + renameIdentifier && + this.callHooksForInfo( + this.hooks.canRename, + renameIdentifier, + expression.right + ) + ) { + // renaming "a = b;" if ( - this.callHooksForInfo( - this.hooks.canRename, + !this.callHooksForInfo( + this.hooks.rename, renameIdentifier, expression.right ) ) { - // renaming "a = b;" - if ( - !this.callHooksForInfo( - this.hooks.rename, - renameIdentifier, - expression.right - ) - ) { - this.setVariable( - expression.left.name, - typeof renameIdentifier === "string" - ? this.getVariableInfo(renameIdentifier) - : renameIdentifier - ); - } - return; + this.setVariable( + expression.left.name, + typeof renameIdentifier === "string" + ? this.getVariableInfo(renameIdentifier) + : renameIdentifier + ); } + return; } this.walkExpression(expression.right); this.enterPattern(expression.left, (name, decl) => { @@ -3236,17 +3397,16 @@ class JavascriptParser extends Parser { expression.left, ALLOWED_MEMBER_TYPES_EXPRESSION ); - if (exprName) { - if ( - this.callHooksForInfo( - this.hooks.assignMemberChain, - exprName.rootInfo, - expression, - exprName.getMembers() - ) - ) { - return; - } + if ( + exprName && + this.callHooksForInfo( + this.hooks.assignMemberChain, + exprName.rootInfo, + expression, + exprName.getMembers() + ) + ) { + return; } this.walkExpression(expression.right); this.walkExpression(expression.left); @@ -3267,12 +3427,10 @@ class JavascriptParser extends Parser { if (expression.alternate) { this.walkExpression(expression.alternate); } - } else { - if (result) { - this.walkExpression(expression.consequent); - } else if (expression.alternate) { - this.walkExpression(expression.alternate); - } + } else if (result) { + this.walkExpression(expression.consequent); + } else if (expression.alternate) { + this.walkExpression(expression.alternate); } } @@ -3358,29 +3516,25 @@ class JavascriptParser extends Parser { * @returns {string | VariableInfoInterface | undefined} var info */ const getVarInfo = argOrThis => { - const renameIdentifier = this.getRenameIdentifier( - /** @type {Expression} */ (argOrThis) - ); - if (renameIdentifier) { - if ( - this.callHooksForInfo( - this.hooks.canRename, - renameIdentifier, - argOrThis - ) - ) { - if ( - !this.callHooksForInfo( - this.hooks.rename, - renameIdentifier, - argOrThis - ) - ) { - return typeof renameIdentifier === "string" - ? /** @type {string} */ (this.getVariableInfo(renameIdentifier)) - : renameIdentifier; - } - } + const renameIdentifier = this.getRenameIdentifier(argOrThis); + if ( + renameIdentifier && + this.callHooksForInfo( + this.hooks.canRename, + renameIdentifier, + /** @type {Expression} */ + (argOrThis) + ) && + !this.callHooksForInfo( + this.hooks.rename, + renameIdentifier, + /** @type {Expression} */ + (argOrThis) + ) + ) { + return typeof renameIdentifier === "string" + ? /** @type {string} */ (this.getVariableInfo(renameIdentifier)) + : renameIdentifier; } this.walkExpression(argOrThis); }; @@ -3429,7 +3583,7 @@ class JavascriptParser extends Parser { * @param {ImportExpression} expression import expression */ walkImportExpression(expression) { - let result = this.hooks.importCall.call(expression); + const result = this.hooks.importCall.call(expression); if (result === true) return; this.walkExpression(expression.source); @@ -3439,9 +3593,12 @@ class JavascriptParser extends Parser { * @param {CallExpression} expression expression */ walkCallExpression(expression) { - const isSimpleFunction = fn => { - return fn.params.every(p => p.type === "Identifier"); - }; + /** + * @param {FunctionExpression | ArrowFunctionExpression} fn function + * @returns {boolean} true when simple function + */ + const isSimpleFunction = fn => + fn.params.every(p => p.type === "Identifier"); if ( expression.callee.type === "MemberExpression" && expression.callee.object.type.endsWith("FunctionExpression") && @@ -3454,7 +3611,10 @@ class JavascriptParser extends Parser { // @ts-ignore expression.callee.property.name === "bind") && expression.arguments.length > 0 && - isSimpleFunction(expression.callee.object) + isSimpleFunction( + /** @type {FunctionExpression | ArrowFunctionExpression} */ + (expression.callee.object) + ) ) { // (function(…) { }.call/bind(?, …)) this._walkIIFE( @@ -3465,7 +3625,10 @@ class JavascriptParser extends Parser { ); } else if ( expression.callee.type.endsWith("FunctionExpression") && - isSimpleFunction(expression.callee) + isSimpleFunction( + /** @type {FunctionExpression | ArrowFunctionExpression} */ + (expression.callee) + ) ) { // (function(…) { }(…)) this._walkIIFE( @@ -3499,18 +3662,22 @@ class JavascriptParser extends Parser { if (callee.isIdentifier()) { const result1 = this.callHooksForInfo( this.hooks.callMemberChain, - callee.rootInfo, + /** @type {NonNullable} */ + (callee.rootInfo), expression, - callee.getMembers(), + /** @type {NonNullable} */ + (callee.getMembers)(), callee.getMembersOptionals ? callee.getMembersOptionals() - : callee.getMembers().map(() => false), + : /** @type {NonNullable} */ + (callee.getMembers)().map(() => false), callee.getMemberRanges ? callee.getMemberRanges() : [] ); if (result1 === true) return; const result2 = this.callHooksForInfo( this.hooks.call, - callee.identifier, + /** @type {NonNullable} */ + (callee.identifier), expression ); if (result2 === true) return; @@ -3656,11 +3823,12 @@ class JavascriptParser extends Parser { walkMetaProperty(metaProperty) { this.hooks.expression.for(getRootName(metaProperty)).call(metaProperty); } + /** * @template T * @template R * @param {HookMap>} hookMap hooks the should be called - * @param {TODO} expr expression + * @param {Expression | Super} expr expression * @param {AsArray} args args for the hook * @returns {R | undefined} result of hook */ @@ -3678,7 +3846,7 @@ class JavascriptParser extends Parser { * @template T * @template R * @param {HookMap>} hookMap hooks the should be called - * @param {MemberExpression} expr expression info + * @param {Expression | Super} expr expression info * @param {(function(string, string | ScopeInfo | VariableInfo, function(): string[]): any) | undefined} fallback callback when variable in not handled by hooks * @param {(function(string): any) | undefined} defined callback when variable is defined * @param {AsArray} args args for the hook @@ -3750,7 +3918,7 @@ class JavascriptParser extends Parser { * @param {HookMap>} hookMap hooks the should be called * @param {ExportedVariableInfo} info variable info * @param {(function(string): any) | undefined} fallback callback when variable in not handled by hooks - * @param {(function(): any) | undefined} defined callback when variable is defined + * @param {(function(string=): any) | undefined} defined callback when variable is defined * @param {AsArray} args args for the hook * @returns {R | undefined} result of hook */ @@ -3790,7 +3958,7 @@ class JavascriptParser extends Parser { if (result !== undefined) return result; } if (fallback !== undefined) { - return fallback(name); + return fallback(/** @type {string} */ (name)); } } @@ -3834,7 +4002,7 @@ class JavascriptParser extends Parser { this.undefineVariable("this"); - this.enterPatterns(params, (ident, pattern) => { + this.enterPatterns(params, ident => { this.defineVariable(ident); }); @@ -3845,7 +4013,7 @@ class JavascriptParser extends Parser { /** * @param {boolean} hasThis true, when this is defined - * @param {any} params scope params + * @param {Identifier[]} params scope params * @param {function(): void} fn inner function * @returns {void} */ @@ -3865,7 +4033,7 @@ class JavascriptParser extends Parser { this.undefineVariable("this"); } - this.enterPatterns(params, (ident, pattern) => { + this.enterPatterns(params, ident => { this.defineVariable(ident); }); @@ -3876,7 +4044,7 @@ class JavascriptParser extends Parser { /** * @param {boolean} hasThis true, when this is defined - * @param {any} params scope params + * @param {(Pattern | string)[]} params scope params * @param {function(): void} fn inner function * @returns {void} */ @@ -3896,7 +4064,7 @@ class JavascriptParser extends Parser { this.undefineVariable("this"); } - this.enterPatterns(params, (ident, pattern) => { + this.enterPatterns(params, ident => { this.defineVariable(ident); }); @@ -3954,7 +4122,7 @@ class JavascriptParser extends Parser { /** * @param {(string | Pattern | Property)[]} patterns patterns - * @param {OnIdent} onIdent on ident callback + * @param {OnIdentString} onIdent on ident callback */ enterPatterns(patterns, onIdent) { for (const pattern of patterns) { @@ -3994,7 +4162,7 @@ class JavascriptParser extends Parser { this.enterIdentifier(pattern.value, onIdent); this.scope.inShorthand = false; } else { - this.enterPattern(/** @type {Identifier} */ (pattern.value), onIdent); + this.enterPattern(/** @type {Pattern} */ (pattern.value), onIdent); } break; } @@ -4060,7 +4228,7 @@ class JavascriptParser extends Parser { } /** - * @param {TODO} expression expression node + * @param {Expression | SpreadElement | PrivateIdentifier} expression expression node * @returns {BasicEvaluatedExpression} evaluation result */ evaluateExpression(expression) { @@ -4073,8 +4241,8 @@ class JavascriptParser extends Parser { return result; } } - } catch (e) { - console.warn(e); + } catch (err) { + console.warn(err); // ignore error } return new BasicEvaluatedExpression() @@ -4091,28 +4259,31 @@ class JavascriptParser extends Parser { case "BinaryExpression": if (expression.operator === "+") { return ( - this.parseString(expression.left) + + this.parseString(/** @type {Expression} */ (expression.left)) + this.parseString(expression.right) ); } break; case "Literal": - return expression.value + ""; + return String(expression.value); } throw new Error( - expression.type + " is not supported as parameter for require" + `${expression.type} is not supported as parameter for require` ); } /** * @param {Expression} expression expression - * @returns {TODO} result + * @returns {{ range?: Range, value: string, code: boolean, conditional: TODO }} result */ parseCalculatedString(expression) { switch (expression.type) { case "BinaryExpression": if (expression.operator === "+") { - const left = this.parseCalculatedString(expression.left); + const left = this.parseCalculatedString( + /** @type {Expression} */ + (expression.left) + ); const right = this.parseCalculatedString(expression.right); if (left.code) { return { @@ -4124,21 +4295,28 @@ class JavascriptParser extends Parser { } else if (right.code) { return { range: [ - left.range[0], - right.range ? right.range[1] : left.range[1] + /** @type {Range} */ + (left.range)[0], + right.range + ? right.range[1] + : /** @type {Range} */ (left.range)[1] ], value: left.value + right.value, code: true, conditional: false }; - } else { - return { - range: [left.range[0], right.range[1]], - value: left.value + right.value, - code: false, - conditional: false - }; } + return { + range: [ + /** @type {Range} */ + (left.range)[0], + /** @type {Range} */ + (right.range)[1] + ], + value: left.value + right.value, + code: false, + conditional: false + }; } break; case "ConditionalExpression": { @@ -4169,7 +4347,7 @@ class JavascriptParser extends Parser { case "Literal": return { range: expression.range, - value: expression.value + "", + value: String(expression.value), code: false, conditional: false }; @@ -4189,6 +4367,7 @@ class JavascriptParser extends Parser { */ parse(source, state) { let ast; + /** @type {import("acorn").Comment[]} */ let comments; const semicolons = new Set(); if (source === null) { @@ -4256,7 +4435,7 @@ class JavascriptParser extends Parser { * @returns {BasicEvaluatedExpression} evaluation result */ evaluate(source) { - const ast = JavascriptParser._parse("(" + source + ")", { + const ast = JavascriptParser._parse(`(${source})`, { sourceType: this.sourceType, locations: false }); @@ -4409,7 +4588,7 @@ class JavascriptParser extends Parser { const comments = /** @type {Comment[]} */ (this.comments); let idx = binarySearchBounds.ge(comments, rangeStart, compare); /** @type {Comment[]} */ - let commentsInRange = []; + const commentsInRange = []; while ( comments[idx] && /** @type {Range} */ (comments[idx].range)[1] <= rangeEnd @@ -4426,24 +4605,39 @@ class JavascriptParser extends Parser { * @returns {boolean} true when a semicolon has been inserted before this position, false if not */ isAsiPosition(pos) { - const currentStatement = this.statementPath[this.statementPath.length - 1]; + const currentStatement = + /** @type {StatementPath} */ + (this.statementPath)[ + /** @type {StatementPath} */ + (this.statementPath).length - 1 + ]; if (currentStatement === undefined) throw new Error("Not in statement"); + const range = /** @type {Range} */ (currentStatement.range); + return ( // Either asking directly for the end position of the current statement - (currentStatement.range[1] === pos && + (range[1] === pos && /** @type {Set} */ (this.semicolons).has(pos)) || // Or asking for the start position of the current statement, // here we have to check multiple things - (currentStatement.range[0] === pos && + (range[0] === pos && // is there a previous statement which might be relevant? this.prevStatement !== undefined && // is the end position of the previous statement an ASI position? /** @type {Set} */ (this.semicolons).has( - this.prevStatement.range[1] + /** @type {Range} */ (this.prevStatement.range)[1] )) ); } + /** + * @param {number} pos source code position + * @returns {void} + */ + setAsiPosition(pos) { + /** @type {Set} */ (this.semicolons).add(pos); + } + /** * @param {number} pos source code position * @returns {void} @@ -4457,7 +4651,12 @@ class JavascriptParser extends Parser { * @returns {boolean} true, when the expression is a statement level expression */ isStatementLevelExpression(expr) { - const currentStatement = this.statementPath[this.statementPath.length - 1]; + const currentStatement = + /** @type {StatementPath} */ + (this.statementPath)[ + /** @type {StatementPath} */ + (this.statementPath).length - 1 + ]; return ( expr === currentStatement || (currentStatement.type === "ExpressionStatement" && @@ -4467,7 +4666,7 @@ class JavascriptParser extends Parser { /** * @param {string} name name - * @param {TODO} tag tag info + * @param {symbol} tag tag info * @returns {TODO} tag data */ getTagData(name, tag) { @@ -4483,7 +4682,7 @@ class JavascriptParser extends Parser { /** * @param {string} name name - * @param {TODO} tag tag info + * @param {symbol} tag tag info * @param {TODO=} data data */ tagVariable(name, tag, data) { @@ -4551,9 +4750,8 @@ class JavascriptParser extends Parser { const value = this.scope.definitions.get(name); if (value === undefined) { return name; - } else { - return value; } + return value; } /** @@ -4586,16 +4784,17 @@ class JavascriptParser extends Parser { /** * @param {Range} range range of the comment - * @returns {TODO} TODO + * @returns {{ options: Record | null, errors: (Error & { comment: Comment })[] | null }} result */ parseCommentOptions(range) { const comments = this.getComments(range); if (comments.length === 0) { return EMPTY_COMMENT_OPTIONS; } - let options = {}; - /** @type {unknown[]} */ - let errors = []; + /** @type {Record } */ + const options = {}; + /** @type {(Error & { comment: Comment })[]} */ + const errors = []; for (const comment of comments) { const { value } = comment; if (value && webpackCommentRegExp.test(value)) { @@ -4608,16 +4807,18 @@ class JavascriptParser extends Parser { ) )) { if (typeof val === "object" && val !== null) { - if (val.constructor.name === "RegExp") val = new RegExp(val); - else val = JSON.parse(JSON.stringify(val)); + val = + val.constructor.name === "RegExp" + ? new RegExp(val) + : JSON.parse(JSON.stringify(val)); } options[key] = val; } - } catch (e) { - const newErr = new Error(String(e.message)); - newErr.stack = String(e.stack); + } catch (err) { + const newErr = new Error(String(/** @type {Error} */ (err).message)); + newErr.stack = String(/** @type {Error} */ (err).stack); Object.assign(newErr, { comment }); - errors.push(newErr); + errors.push(/** @type {(Error & { comment: Comment })} */ (newErr)); } } } @@ -4625,11 +4826,11 @@ class JavascriptParser extends Parser { } /** - * @param {MemberExpression} expression a member expression + * @param {Expression | Super} expression a member expression * @returns {{ members: string[], object: Expression | Super, membersOptionals: boolean[], memberRanges: Range[] }} member names (reverse order) and remaining object */ extractMemberExpressionChain(expression) { - /** @type {AnyNode} */ + /** @type {Node} */ let expr = expression; const members = []; const membersOptionals = []; @@ -4665,9 +4866,9 @@ class JavascriptParser extends Parser { let name; if (info instanceof VariableInfo) { name = info.freeName; - if (typeof name !== "string") return undefined; + if (typeof name !== "string") return; } else if (typeof info !== "string") { - return undefined; + return; } else { name = info; } @@ -4678,7 +4879,7 @@ class JavascriptParser extends Parser { /** @typedef {{ type: "expression", rootInfo: string | VariableInfo, name: string, getMembers: () => string[], getMembersOptionals: () => boolean[], getMemberRanges: () => Range[]}} ExpressionExpressionInfo */ /** - * @param {MemberExpression} expression a member expression + * @param {Expression | Super} expression a member expression * @param {number} allowedTypes which types should be returned, presented in bit mask * @returns {CallExpressionInfo | ExpressionExpressionInfo | undefined} expression info */ @@ -4687,8 +4888,7 @@ class JavascriptParser extends Parser { this.extractMemberExpressionChain(expression); switch (object.type) { case "CallExpression": { - if ((allowedTypes & ALLOWED_MEMBER_TYPES_CALL_EXPRESSION) === 0) - return undefined; + if ((allowedTypes & ALLOWED_MEMBER_TYPES_CALL_EXPRESSION) === 0) return; let callee = object.callee; let rootMembers = EMPTY_ARRAY; if (callee.type === "MemberExpression") { @@ -4696,9 +4896,9 @@ class JavascriptParser extends Parser { this.extractMemberExpressionChain(callee)); } const rootName = getRootName(callee); - if (!rootName) return undefined; + if (!rootName) return; const result = this.getFreeInfoFromVariable(rootName); - if (!result) return undefined; + if (!result) return; const { info: rootInfo, name: resolvedRoot } = result; const calleeName = objectAndMembersToName(resolvedRoot, rootMembers); return { @@ -4716,13 +4916,12 @@ class JavascriptParser extends Parser { case "Identifier": case "MetaProperty": case "ThisExpression": { - if ((allowedTypes & ALLOWED_MEMBER_TYPES_EXPRESSION) === 0) - return undefined; + if ((allowedTypes & ALLOWED_MEMBER_TYPES_EXPRESSION) === 0) return; const rootName = getRootName(object); - if (!rootName) return undefined; + if (!rootName) return; const result = this.getFreeInfoFromVariable(rootName); - if (!result) return undefined; + if (!result) return; const { info: rootInfo, name: resolvedRoot } = result; return { type: "expression", @@ -4762,14 +4961,14 @@ class JavascriptParser extends Parser { sourceType: type === "auto" ? "module" : type }; - /** @type {AnyNode | undefined} */ + /** @type {import("acorn").Program | undefined} */ let ast; let error; let threw = false; try { - ast = /** @type {AnyNode} */ (parser.parse(code, parserOptions)); - } catch (e) { - error = e; + ast = parser.parse(code, parserOptions); + } catch (err) { + error = err; threw = true; } @@ -4782,9 +4981,9 @@ class JavascriptParser extends Parser { parserOptions.onComment.length = 0; } try { - ast = /** @type {AnyNode} */ (parser.parse(code, parserOptions)); + ast = parser.parse(code, parserOptions); threw = false; - } catch (e) { + } catch (_err) { // we use the error from first parse try // so nothing to do here } @@ -4804,3 +5003,4 @@ module.exports.ALLOWED_MEMBER_TYPES_EXPRESSION = ALLOWED_MEMBER_TYPES_EXPRESSION; module.exports.ALLOWED_MEMBER_TYPES_CALL_EXPRESSION = ALLOWED_MEMBER_TYPES_CALL_EXPRESSION; +module.exports.getImportAttributes = getImportAttributes; diff --git a/node_modules/webpack/lib/javascript/JavascriptParserHelpers.js b/node_modules/webpack/lib/javascript/JavascriptParserHelpers.js index be85e9e..7028c4d 100644 --- a/node_modules/webpack/lib/javascript/JavascriptParserHelpers.js +++ b/node_modules/webpack/lib/javascript/JavascriptParserHelpers.js @@ -21,8 +21,8 @@ const BasicEvaluatedExpression = require("./BasicEvaluatedExpression"); * @param {(string[] | null)=} runtimeRequirements runtime requirements * @returns {function(Expression): true} plugin function */ -exports.toConstantDependency = (parser, value, runtimeRequirements) => { - return function constDependency(expr) { +module.exports.toConstantDependency = (parser, value, runtimeRequirements) => + function constDependency(expr) { const dep = new ConstDependency( value, /** @type {Range} */ (expr.range), @@ -32,43 +32,39 @@ exports.toConstantDependency = (parser, value, runtimeRequirements) => { parser.state.module.addPresentationalDependency(dep); return true; }; -}; /** * @param {string} value the string value * @returns {function(Expression): BasicEvaluatedExpression} plugin function */ -exports.evaluateToString = value => { - return function stringExpression(expr) { +module.exports.evaluateToString = value => + function stringExpression(expr) { return new BasicEvaluatedExpression() .setString(value) .setRange(/** @type {Range} */ (expr.range)); }; -}; /** * @param {number} value the number value * @returns {function(Expression): BasicEvaluatedExpression} plugin function */ -exports.evaluateToNumber = value => { - return function stringExpression(expr) { +module.exports.evaluateToNumber = value => + function stringExpression(expr) { return new BasicEvaluatedExpression() .setNumber(value) .setRange(/** @type {Range} */ (expr.range)); }; -}; /** * @param {boolean} value the boolean value * @returns {function(Expression): BasicEvaluatedExpression} plugin function */ -exports.evaluateToBoolean = value => { - return function booleanExpression(expr) { +module.exports.evaluateToBoolean = value => + function booleanExpression(expr) { return new BasicEvaluatedExpression() .setBoolean(value) .setRange(/** @type {Range} */ (expr.range)); }; -}; /** * @param {string} identifier identifier @@ -77,9 +73,14 @@ exports.evaluateToBoolean = value => { * @param {boolean|null=} truthy is truthy, null if nullish * @returns {function(Expression): BasicEvaluatedExpression} callback */ -exports.evaluateToIdentifier = (identifier, rootInfo, getMembers, truthy) => { - return function identifierExpression(expr) { - let evaluatedExpression = new BasicEvaluatedExpression() +module.exports.evaluateToIdentifier = ( + identifier, + rootInfo, + getMembers, + truthy +) => + function identifierExpression(expr) { + const evaluatedExpression = new BasicEvaluatedExpression() .setIdentifier(identifier, rootInfo, getMembers) .setSideEffects(false) .setRange(/** @type {Range} */ (expr.range)); @@ -97,15 +98,14 @@ exports.evaluateToIdentifier = (identifier, rootInfo, getMembers, truthy) => { return evaluatedExpression; }; -}; /** * @param {JavascriptParser} parser the parser * @param {string} message the message * @returns {function(Expression): boolean | undefined} callback to handle unsupported expression */ -exports.expressionIsUnsupported = (parser, message) => { - return function unsupportedExpression(expr) { +module.exports.expressionIsUnsupported = (parser, message) => + function unsupportedExpression(expr) { const dep = new ConstDependency( "(void 0)", /** @type {Range} */ (expr.range), @@ -122,8 +122,7 @@ exports.expressionIsUnsupported = (parser, message) => { ); return true; }; -}; -exports.skipTraversal = () => true; +module.exports.skipTraversal = () => true; -exports.approve = () => true; +module.exports.approve = () => true; diff --git a/node_modules/webpack/lib/javascript/StartupHelpers.js b/node_modules/webpack/lib/javascript/StartupHelpers.js index 3b2b93d..f6f759d 100644 --- a/node_modules/webpack/lib/javascript/StartupHelpers.js +++ b/node_modules/webpack/lib/javascript/StartupHelpers.js @@ -15,6 +15,7 @@ const { getAllChunks } = require("./ChunkHelpers"); /** @typedef {import("../Chunk").ChunkId} ChunkId */ /** @typedef {import("../Compilation")} Compilation */ /** @typedef {import("../ChunkGraph")} ChunkGraph */ +/** @typedef {import("../ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("../Entrypoint")} Entrypoint */ /** @typedef {import("../ChunkGraph").EntryModuleWithChunkGroup} EntryModuleWithChunkGroup */ /** @typedef {import("../ChunkGroup")} ChunkGroup */ @@ -23,6 +24,9 @@ const { getAllChunks } = require("./ChunkHelpers"); const EXPORT_PREFIX = `var ${RuntimeGlobals.exports} = `; +/** @typedef {Set} Chunks */ +/** @typedef {ModuleId[]} ModuleIds */ + /** * @param {ChunkGraph} chunkGraph chunkGraph * @param {RuntimeTemplate} runtimeTemplate runtimeTemplate @@ -31,7 +35,7 @@ const EXPORT_PREFIX = `var ${RuntimeGlobals.exports} = `; * @param {boolean} passive true: passive startup with on chunks loaded * @returns {string} runtime code */ -exports.generateEntryStartup = ( +module.exports.generateEntryStartup = ( chunkGraph, runtimeTemplate, entries, @@ -46,9 +50,16 @@ exports.generateEntryStartup = ( )}` ]; - const runModule = id => { - return `__webpack_exec__(${JSON.stringify(id)})`; - }; + /** + * @param {ModuleId} id id + * @returns {string} fn to execute + */ + const runModule = id => `__webpack_exec__(${JSON.stringify(id)})`; + /** + * @param {Chunks} chunks chunks + * @param {ModuleIds} moduleIds module ids + * @param {boolean=} final true when final, otherwise false + */ const outputCombination = (chunks, moduleIds, final) => { if (chunks.size === 0) { runtime.push( @@ -71,16 +82,19 @@ exports.generateEntryStartup = ( } }; - let currentChunks = undefined; - let currentModuleIds = undefined; + /** @type {Chunks | undefined} */ + let currentChunks; + /** @type {ModuleIds | undefined} */ + let currentModuleIds; for (const [module, entrypoint] of entries) { const runtimeChunk = /** @type {Entrypoint} */ (entrypoint).getRuntimeChunk(); - const moduleId = chunkGraph.getModuleId(module); + const moduleId = /** @type {ModuleId} */ (chunkGraph.getModuleId(module)); const chunks = getAllChunks( - /** @type {Entrypoint} */ (entrypoint), + /** @type {Entrypoint} */ + (entrypoint), chunk, runtimeChunk ); @@ -89,10 +103,14 @@ exports.generateEntryStartup = ( currentChunks.size === chunks.size && isSubset(currentChunks, chunks) ) { - currentModuleIds.push(moduleId); + /** @type {ModuleIds} */ + (currentModuleIds).push(moduleId); } else { if (currentChunks) { - outputCombination(currentChunks, currentModuleIds); + outputCombination( + currentChunks, + /** @type {ModuleIds} */ (currentModuleIds) + ); } currentChunks = chunks; currentModuleIds = [moduleId]; @@ -101,7 +119,12 @@ exports.generateEntryStartup = ( // output current modules with export prefix if (currentChunks) { - outputCombination(currentChunks, currentModuleIds, true); + outputCombination( + currentChunks, + /** @type {ModuleIds} */ + (currentModuleIds), + true + ); } runtime.push(""); return Template.asString(runtime); @@ -114,7 +137,12 @@ exports.generateEntryStartup = ( * @param {Chunk} chunk chunk * @returns {void} */ -exports.updateHashForEntryStartup = (hash, chunkGraph, entries, chunk) => { +module.exports.updateHashForEntryStartup = ( + hash, + chunkGraph, + entries, + chunk +) => { for (const [module, entrypoint] of entries) { const runtimeChunk = /** @type {Entrypoint} */ @@ -137,7 +165,7 @@ exports.updateHashForEntryStartup = (hash, chunkGraph, entries, chunk) => { * @param {function(Chunk, ChunkGraph): boolean} filterFn filter function * @returns {Set} initially fulfilled chunk ids */ -exports.getInitialChunkIds = (chunk, chunkGraph, filterFn) => { +module.exports.getInitialChunkIds = (chunk, chunkGraph, filterFn) => { const initialChunkIds = new Set(chunk.ids); for (const c of chunk.getAllInitialChunks()) { if (c === chunk || filterFn(c, chunkGraph)) continue; diff --git a/node_modules/webpack/lib/json/JsonGenerator.js b/node_modules/webpack/lib/json/JsonGenerator.js index 53af8d3..b16d406 100644 --- a/node_modules/webpack/lib/json/JsonGenerator.js +++ b/node_modules/webpack/lib/json/JsonGenerator.js @@ -9,12 +9,14 @@ const { RawSource } = require("webpack-sources"); const ConcatenationScope = require("../ConcatenationScope"); const { UsageState } = require("../ExportsInfo"); const Generator = require("../Generator"); +const { JS_TYPES } = require("../ModuleSourceTypesConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("../ExportsInfo")} ExportsInfo */ /** @typedef {import("../Generator").GenerateContext} GenerateContext */ /** @typedef {import("../Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */ +/** @typedef {import("../Module").SourceTypes} SourceTypes */ /** @typedef {import("../NormalModule")} NormalModule */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ /** @typedef {import("./JsonData")} JsonData */ @@ -27,7 +29,7 @@ const RuntimeGlobals = require("../RuntimeGlobals"); const stringifySafe = data => { const stringified = JSON.stringify(data); if (!stringified) { - return undefined; // Invalid JSON + return; // Invalid JSON } return stringified.replace(/\u2028|\u2029/g, str => @@ -53,22 +55,16 @@ const createObjectForExportsInfo = (data, exportsInfo, runtime) => { if (used === UsageState.Unused) continue; /** @type {RawJsonData} */ - let value; - if (used === UsageState.OnlyPropertiesUsed && exportInfo.exportsInfo) { - value = createObjectForExportsInfo( - data[key], - exportInfo.exportsInfo, - runtime - ); - } else { - value = data[key]; - } + const value = + used === UsageState.OnlyPropertiesUsed && exportInfo.exportsInfo + ? createObjectForExportsInfo(data[key], exportInfo.exportsInfo, runtime) + : data[key]; const name = /** @type {string} */ (exportInfo.getUsedName(key, runtime)); /** @type {Record} */ (reducedData)[name] = value; } if (isArray) { - let arrayLengthWhenUsed = + const arrayLengthWhenUsed = exportsInfo.getReadOnlyExportInfo("length").getUsed(runtime) !== UsageState.Unused ? data.length @@ -109,15 +105,13 @@ const createObjectForExportsInfo = (data, exportsInfo, runtime) => { return reducedData; }; -const TYPES = new Set(["javascript"]); - class JsonGenerator extends Generator { /** * @param {NormalModule} module fresh module - * @returns {Set} available types (do not mutate) + * @returns {SourceTypes} available types (do not mutate) */ getTypes(module) { - return TYPES; + return JS_TYPES; } /** @@ -147,7 +141,7 @@ class JsonGenerator extends Generator { /** * @param {NormalModule} module module for which the code should be generated * @param {GenerateContext} generateContext context for generate - * @returns {Source} generated code + * @returns {Source | null} generated code */ generate( module, @@ -173,7 +167,7 @@ class JsonGenerator extends Generator { } const exportsInfo = moduleGraph.getExportsInfo(module); /** @type {RawJsonData} */ - let finalJson = + const finalJson = typeof data === "object" && data && exportsInfo.otherExportsInfo.getUsed(runtime) === UsageState.Unused diff --git a/node_modules/webpack/lib/json/JsonModulesPlugin.js b/node_modules/webpack/lib/json/JsonModulesPlugin.js index 5b99848..b87fdc4 100644 --- a/node_modules/webpack/lib/json/JsonModulesPlugin.js +++ b/node_modules/webpack/lib/json/JsonModulesPlugin.js @@ -33,7 +33,6 @@ class JsonModulesPlugin { * Apply the plugin * @param {Compiler} compiler the compiler instance * @returns {void} - * */ apply(compiler) { compiler.hooks.compilation.tap( @@ -48,9 +47,7 @@ class JsonModulesPlugin { }); normalModuleFactory.hooks.createGenerator .for(JSON_MODULE_TYPE) - .tap(PLUGIN_NAME, () => { - return new JsonGenerator(); - }); + .tap(PLUGIN_NAME, () => new JsonGenerator()); } ); } diff --git a/node_modules/webpack/lib/json/JsonParser.js b/node_modules/webpack/lib/json/JsonParser.js index a68662e..77f9fb8 100644 --- a/node_modules/webpack/lib/json/JsonParser.js +++ b/node_modules/webpack/lib/json/JsonParser.js @@ -49,9 +49,11 @@ class JsonParser extends Parser { data = typeof source === "object" ? source - : parseFn(source[0] === "\ufeff" ? source.slice(1) : source); - } catch (e) { - throw new Error(`Cannot parse JSON: ${/** @type {Error} */ (e).message}`); + : parseFn(source[0] === "\uFEFF" ? source.slice(1) : source); + } catch (err) { + throw new Error( + `Cannot parse JSON: ${/** @type {Error} */ (err).message}` + ); } const jsonData = new JsonData(/** @type {Buffer | RawJsonData} */ (data)); const buildInfo = /** @type {BuildInfo} */ (state.module.buildInfo); diff --git a/node_modules/webpack/lib/library/AmdLibraryPlugin.js b/node_modules/webpack/lib/library/AmdLibraryPlugin.js index 29643ef..d604c03 100644 --- a/node_modules/webpack/lib/library/AmdLibraryPlugin.js +++ b/node_modules/webpack/lib/library/AmdLibraryPlugin.js @@ -60,17 +60,14 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin { `AMD library name must be unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}` ); } - } else { - if (name && typeof name !== "string") { - throw new Error( - `AMD library name must be a simple string or unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}` - ); - } + } else if (name && typeof name !== "string") { + throw new Error( + `AMD library name must be a simple string or unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}` + ); } - return { - name: /** @type {string} */ (name), - amdContainer: /** @type {string} */ (amdContainer) - }; + const _name = /** @type {string} */ (name); + const _amdContainer = /** @type {string} */ (amdContainer); + return { name: _name, amdContainer: _amdContainer }; } /** @@ -146,13 +143,12 @@ class AmdLibraryPlugin extends AbstractLibraryPlugin { source, `${fnEnd});` ); - } else { - return new ConcatSource( - `${amdContainerPrefix}define(${fnStart}`, - source, - `${fnEnd});` - ); } + return new ConcatSource( + `${amdContainerPrefix}define(${fnStart}`, + source, + `${fnEnd});` + ); } /** diff --git a/node_modules/webpack/lib/library/AssignLibraryPlugin.js b/node_modules/webpack/lib/library/AssignLibraryPlugin.js index 8c8bc1b..24859bc 100644 --- a/node_modules/webpack/lib/library/AssignLibraryPlugin.js +++ b/node_modules/webpack/lib/library/AssignLibraryPlugin.js @@ -36,9 +36,8 @@ const IDENTIFIER_REGEX = * @param {string} name name to be validated * @returns {boolean} true, when valid */ -const isNameValid = name => { - return !KEYWORD_REGEX.test(name) && IDENTIFIER_REGEX.test(name); -}; +const isNameValid = name => + !KEYWORD_REGEX.test(name) && IDENTIFIER_REGEX.test(name); /** * @param {string[]} accessor variable plus properties @@ -136,15 +135,14 @@ class AssignLibraryPlugin extends AbstractLibraryPlugin { `Library name must be a string or string array. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}` ); } - } else { - if (name && typeof name !== "string" && !Array.isArray(name)) { - throw new Error( - `Library name must be a string, string array or unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}` - ); - } + } else if (name && typeof name !== "string" && !Array.isArray(name)) { + throw new Error( + `Library name must be a string, string array or unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}` + ); } + const _name = /** @type {string | string[]} */ (name); return { - name: /** @type {string | string[]} */ (name), + name: _name, export: library.export }; } diff --git a/node_modules/webpack/lib/library/EnableLibraryPlugin.js b/node_modules/webpack/lib/library/EnableLibraryPlugin.js index a0e8a31..0a14fea 100644 --- a/node_modules/webpack/lib/library/EnableLibraryPlugin.js +++ b/node_modules/webpack/lib/library/EnableLibraryPlugin.js @@ -54,8 +54,9 @@ class EnableLibraryPlugin { "EnableLibraryPlugin need to be used to enable this type of library. " + 'This usually happens through the "output.enabledLibraryTypes" option. ' + 'If you are using a function as entry which sets "library", you need to add all potential library types to "output.enabledLibraryTypes". ' + - "These types are enabled: " + - Array.from(getEnabledTypes(compiler)).join(", ") + `These types are enabled: ${Array.from( + getEnabledTypes(compiler) + ).join(", ")}` ); } } @@ -84,7 +85,7 @@ class EnableLibraryPlugin { }; switch (type) { case "var": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const AssignLibraryPlugin = require("./AssignLibraryPlugin"); new AssignLibraryPlugin({ type, @@ -95,7 +96,7 @@ class EnableLibraryPlugin { break; } case "assign-properties": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const AssignLibraryPlugin = require("./AssignLibraryPlugin"); new AssignLibraryPlugin({ type, @@ -107,7 +108,7 @@ class EnableLibraryPlugin { break; } case "assign": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const AssignLibraryPlugin = require("./AssignLibraryPlugin"); new AssignLibraryPlugin({ type, @@ -118,7 +119,7 @@ class EnableLibraryPlugin { break; } case "this": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const AssignLibraryPlugin = require("./AssignLibraryPlugin"); new AssignLibraryPlugin({ type, @@ -129,7 +130,7 @@ class EnableLibraryPlugin { break; } case "window": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const AssignLibraryPlugin = require("./AssignLibraryPlugin"); new AssignLibraryPlugin({ type, @@ -140,7 +141,7 @@ class EnableLibraryPlugin { break; } case "self": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const AssignLibraryPlugin = require("./AssignLibraryPlugin"); new AssignLibraryPlugin({ type, @@ -151,7 +152,7 @@ class EnableLibraryPlugin { break; } case "global": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const AssignLibraryPlugin = require("./AssignLibraryPlugin"); new AssignLibraryPlugin({ type, @@ -162,7 +163,7 @@ class EnableLibraryPlugin { break; } case "commonjs": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const AssignLibraryPlugin = require("./AssignLibraryPlugin"); new AssignLibraryPlugin({ type, @@ -173,7 +174,7 @@ class EnableLibraryPlugin { break; } case "commonjs-static": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const AssignLibraryPlugin = require("./AssignLibraryPlugin"); new AssignLibraryPlugin({ type, @@ -185,7 +186,7 @@ class EnableLibraryPlugin { } case "commonjs2": case "commonjs-module": { - //@ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 + // @ts-expect-error https://github.com/microsoft/TypeScript/issues/41697 const AssignLibraryPlugin = require("./AssignLibraryPlugin"); new AssignLibraryPlugin({ type, diff --git a/node_modules/webpack/lib/library/ExportPropertyLibraryPlugin.js b/node_modules/webpack/lib/library/ExportPropertyLibraryPlugin.js index 1fe8945..72b92f7 100644 --- a/node_modules/webpack/lib/library/ExportPropertyLibraryPlugin.js +++ b/node_modules/webpack/lib/library/ExportPropertyLibraryPlugin.js @@ -55,7 +55,7 @@ class ExportPropertyLibraryPlugin extends AbstractLibraryPlugin { */ parseOptions(library) { return { - export: library.export + export: /** @type {string | string[]} */ (library.export) }; } diff --git a/node_modules/webpack/lib/library/JsonpLibraryPlugin.js b/node_modules/webpack/lib/library/JsonpLibraryPlugin.js index 2c6cab0..9757874 100644 --- a/node_modules/webpack/lib/library/JsonpLibraryPlugin.js +++ b/node_modules/webpack/lib/library/JsonpLibraryPlugin.js @@ -54,8 +54,9 @@ class JsonpLibraryPlugin extends AbstractLibraryPlugin { `Jsonp library name must be a simple string. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}` ); } + const _name = /** @type {string} */ (name); return { - name: /** @type {string} */ (name) + name: _name }; } diff --git a/node_modules/webpack/lib/library/ModernModuleLibraryPlugin.js b/node_modules/webpack/lib/library/ModernModuleLibraryPlugin.js index b3fa9e6..23a9510 100644 --- a/node_modules/webpack/lib/library/ModernModuleLibraryPlugin.js +++ b/node_modules/webpack/lib/library/ModernModuleLibraryPlugin.js @@ -16,6 +16,7 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin"); /** @typedef {import("../Compilation").ChunkHashContext} ChunkHashContext */ /** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("../Module")} Module */ +/** @typedef {import("../Module").BuildMeta} BuildMeta */ /** @typedef {import("../javascript/JavascriptModulesPlugin").StartupRenderContext} StartupRenderContext */ /** @typedef {import("../util/Hash")} Hash */ /** @template T @typedef {import("./AbstractLibraryPlugin").LibraryContext} LibraryContext */ @@ -46,9 +47,7 @@ class ModernModuleLibraryPlugin extends AbstractLibraryPlugin { compiler.hooks.compilation.tap("ModernModuleLibraryPlugin", compilation => { const { exportsDefinitions } = ConcatenatedModule.getCompilationHooks(compilation); - exportsDefinitions.tap("ModernModuleLibraryPlugin", () => { - return true; - }); + exportsDefinitions.tap("ModernModuleLibraryPlugin", () => true); }); } @@ -73,8 +72,9 @@ class ModernModuleLibraryPlugin extends AbstractLibraryPlugin { `Library name must be unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}` ); } + const _name = /** @type {string} */ (name); return { - name: /** @type {string} */ (name) + name: _name }; } @@ -93,7 +93,9 @@ class ModernModuleLibraryPlugin extends AbstractLibraryPlugin { ) { const result = new ConcatSource(source); const exportsInfo = moduleGraph.getExportsInfo(module); - const definitions = module.buildMeta.exportsFinalName; + const definitions = + /** @type {BuildMeta} */ + (module.buildMeta).exportsFinalName; const exports = []; for (const exportInfo of exportsInfo.orderedExports) { @@ -106,7 +108,7 @@ class ModernModuleLibraryPlugin extends AbstractLibraryPlugin { for (const reexportInfo of exp.orderedExports) { if ( !reexportInfo.provided && - reexportInfo.name === reexport.export[0] + reexportInfo.name === /** @type {string[]} */ (reexport.export)[0] ) { shouldContinue = true; } diff --git a/node_modules/webpack/lib/library/ModuleLibraryPlugin.js b/node_modules/webpack/lib/library/ModuleLibraryPlugin.js index 480014b..57afdc3 100644 --- a/node_modules/webpack/lib/library/ModuleLibraryPlugin.js +++ b/node_modules/webpack/lib/library/ModuleLibraryPlugin.js @@ -58,8 +58,9 @@ class ModuleLibraryPlugin extends AbstractLibraryPlugin { `Library name must be unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}` ); } + const _name = /** @type {string} */ (name); return { - name: /** @type {string} */ (name) + name: _name }; } diff --git a/node_modules/webpack/lib/library/SystemLibraryPlugin.js b/node_modules/webpack/lib/library/SystemLibraryPlugin.js index 6a0df15..701b870 100644 --- a/node_modules/webpack/lib/library/SystemLibraryPlugin.js +++ b/node_modules/webpack/lib/library/SystemLibraryPlugin.js @@ -58,8 +58,9 @@ class SystemLibraryPlugin extends AbstractLibraryPlugin { `System.js library name must be a simple string or unset. ${AbstractLibraryPlugin.COMMON_LIBRARY_NAME_MESSAGE}` ); } + const _name = /** @type {string} */ (name); return { - name: /** @type {string} */ (name) + name: _name }; } diff --git a/node_modules/webpack/lib/library/UmdLibraryPlugin.js b/node_modules/webpack/lib/library/UmdLibraryPlugin.js index 5a61b91..b21066d 100644 --- a/node_modules/webpack/lib/library/UmdLibraryPlugin.js +++ b/node_modules/webpack/lib/library/UmdLibraryPlugin.js @@ -30,9 +30,8 @@ const AbstractLibraryPlugin = require("./AbstractLibraryPlugin"); * @param {string[]} accessor the accessor to convert to path * @returns {string} the path */ -const accessorToObjectAccess = accessor => { - return accessor.map(a => `[${JSON.stringify(a)}]`).join(""); -}; +const accessorToObjectAccess = accessor => + accessor.map(a => `[${JSON.stringify(a)}]`).join(""); /** * @param {string|undefined} base the path prefix @@ -65,10 +64,10 @@ const accessorAccess = (base, accessor, joinWith = ", ") => { /** * @typedef {object} UmdLibraryPluginParsed - * @property {string | string[]} name + * @property {string | string[] | undefined} name * @property {LibraryCustomUmdObject} names - * @property {string | LibraryCustomUmdCommentObject} auxiliaryComment - * @property {boolean} namedDefine + * @property {string | LibraryCustomUmdCommentObject | undefined} auxiliaryComment + * @property {boolean | undefined} namedDefine */ /** @@ -93,7 +92,7 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin { * @returns {T | false} preprocess as needed by overriding */ parseOptions(library) { - /** @type {LibraryName} */ + /** @type {LibraryName | undefined} */ let name; /** @type {LibraryCustomUmdObject} */ let names; @@ -157,18 +156,17 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin { * @param {string} str the string to replace * @returns {string} the replaced keys */ - const replaceKeys = str => { - return compilation.getPath(str, { + const replaceKeys = str => + compilation.getPath(str, { chunk }); - }; /** * @param {ExternalModule[]} modules external modules * @returns {string} result */ - const externalsDepsArray = modules => { - return `[${replaceKeys( + const externalsDepsArray = modules => + `[${replaceKeys( modules .map(m => JSON.stringify( @@ -180,14 +178,13 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin { ) .join(", ") )}]`; - }; /** * @param {ExternalModule[]} modules external modules * @returns {string} result */ - const externalsRootArray = modules => { - return replaceKeys( + const externalsRootArray = modules => + replaceKeys( modules .map(m => { let request = m.request; @@ -195,18 +192,17 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin { request = /** @type {RequestRecord} */ (request).root; - return `root${accessorToObjectAccess([].concat(request))}`; + return `root${accessorToObjectAccess(/** @type {string[]} */ ([]).concat(request))}`; }) .join(", ") ); - }; /** * @param {string} type the type * @returns {string} external require array */ - const externalsRequireArray = type => { - return replaceKeys( + const externalsRequireArray = type => + replaceKeys( externals .map(m => { let expr; @@ -218,16 +214,14 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin { } if (request === undefined) { throw new Error( - "Missing external configuration for type:" + type + `Missing external configuration for type:${type}` ); } - if (Array.isArray(request)) { - expr = `require(${JSON.stringify( - request[0] - )})${accessorToObjectAccess(request.slice(1))}`; - } else { - expr = `require(${JSON.stringify(request)})`; - } + expr = Array.isArray(request) + ? `require(${JSON.stringify( + request[0] + )})${accessorToObjectAccess(request.slice(1))}` + : `require(${JSON.stringify(request)})`; if (m.isOptional(moduleGraph)) { expr = `(function webpackLoadOptionalExternalModule() { try { return ${expr}; } catch(e) {} }())`; } @@ -235,14 +229,13 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin { }) .join(", ") ); - }; /** * @param {ExternalModule[]} modules external modules * @returns {string} arguments */ - const externalsArguments = modules => { - return modules + const externalsArguments = modules => + modules .map( m => `__WEBPACK_EXTERNAL_MODULE_${Template.toIdentifier( @@ -250,26 +243,27 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin { )}__` ) .join(", "); - }; /** * @param {string| string[]} library library name * @returns {string} stringified library name */ - const libraryName = library => { - return JSON.stringify( - replaceKeys(/** @type {string[]} */ ([]).concat(library).pop()) + const libraryName = library => + JSON.stringify( + replaceKeys( + /** @type {string} */ + (/** @type {string[]} */ ([]).concat(library).pop()) + ) ); - }; let amdFactory; if (optionalExternals.length > 0) { const wrapperArguments = externalsArguments(requiredExternals); const factoryArguments = requiredExternals.length > 0 - ? externalsArguments(requiredExternals) + - ", " + - externalsRootArray(optionalExternals) + ? `${externalsArguments(requiredExternals)}, ${externalsRootArray( + optionalExternals + )}` : externalsRootArray(optionalExternals); amdFactory = `function webpackLoadOptionalExternalModuleAmd(${wrapperArguments}) {\n` + @@ -288,72 +282,60 @@ class UmdLibraryPlugin extends AbstractLibraryPlugin { const getAuxiliaryComment = type => { if (auxiliaryComment) { if (typeof auxiliaryComment === "string") - return "\t//" + auxiliaryComment + "\n"; - if (auxiliaryComment[type]) - return "\t//" + auxiliaryComment[type] + "\n"; + return `\t//${auxiliaryComment}\n`; + if (auxiliaryComment[type]) return `\t//${auxiliaryComment[type]}\n`; } return ""; }; return new ConcatSource( new OriginalSource( - "(function webpackUniversalModuleDefinition(root, factory) {\n" + - getAuxiliaryComment("commonjs2") + - " if(typeof exports === 'object' && typeof module === 'object')\n" + - " module.exports = factory(" + - externalsRequireArray("commonjs2") + - ");\n" + - getAuxiliaryComment("amd") + - " else if(typeof define === 'function' && define.amd)\n" + - (requiredExternals.length > 0 - ? names.amd && namedDefine === true - ? " define(" + - libraryName(names.amd) + - ", " + - externalsDepsArray(requiredExternals) + - ", " + - amdFactory + - ");\n" - : " define(" + - externalsDepsArray(requiredExternals) + - ", " + - amdFactory + - ");\n" - : names.amd && namedDefine === true - ? " define(" + - libraryName(names.amd) + - ", [], " + - amdFactory + - ");\n" - : " define([], " + amdFactory + ");\n") + - (names.root || names.commonjs - ? getAuxiliaryComment("commonjs") + - " else if(typeof exports === 'object')\n" + - " exports[" + - libraryName(names.commonjs || names.root) + - "] = factory(" + - externalsRequireArray("commonjs") + - ");\n" + - getAuxiliaryComment("root") + - " else\n" + - " " + - replaceKeys( - accessorAccess("root", names.root || names.commonjs) - ) + - " = factory(" + - externalsRootArray(externals) + - ");\n" - : " else {\n" + - (externals.length > 0 - ? " var a = typeof exports === 'object' ? factory(" + - externalsRequireArray("commonjs") + - ") : factory(" + - externalsRootArray(externals) + - ");\n" - : " var a = factory();\n") + - " for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n" + - " }\n") + - `})(${runtimeTemplate.outputOptions.globalObject}, ${ + `(function webpackUniversalModuleDefinition(root, factory) {\n${getAuxiliaryComment( + "commonjs2" + )} if(typeof exports === 'object' && typeof module === 'object')\n` + + ` module.exports = factory(${externalsRequireArray( + "commonjs2" + )});\n${getAuxiliaryComment( + "amd" + )} else if(typeof define === 'function' && define.amd)\n${ + requiredExternals.length > 0 + ? names.amd && namedDefine === true + ? ` define(${libraryName(names.amd)}, ${externalsDepsArray( + requiredExternals + )}, ${amdFactory});\n` + : ` define(${externalsDepsArray(requiredExternals)}, ${ + amdFactory + });\n` + : names.amd && namedDefine === true + ? ` define(${libraryName(names.amd)}, [], ${amdFactory});\n` + : ` define([], ${amdFactory});\n` + }${ + names.root || names.commonjs + ? `${getAuxiliaryComment( + "commonjs" + )} else if(typeof exports === 'object')\n` + + ` exports[${libraryName( + /** @type {string | string[]} */ + (names.commonjs || names.root) + )}] = factory(${externalsRequireArray( + "commonjs" + )});\n${getAuxiliaryComment("root")} else\n` + + ` ${replaceKeys( + accessorAccess( + "root", + /** @type {string | string[]} */ + (names.root || names.commonjs) + ) + )} = factory(${externalsRootArray(externals)});\n` + : ` else {\n${ + externals.length > 0 + ? ` var a = typeof exports === 'object' ? factory(${externalsRequireArray( + "commonjs" + )}) : factory(${externalsRootArray(externals)});\n` + : " var a = factory();\n" + } for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n` + + " }\n" + }})(${runtimeTemplate.outputOptions.globalObject}, ${ runtimeTemplate.supportsArrowFunction() ? `(${externalsArguments(externals)}) =>` : `function(${externalsArguments(externals)})` diff --git a/node_modules/webpack/lib/logging/Logger.js b/node_modules/webpack/lib/logging/Logger.js index 641bc7c..910b16f 100644 --- a/node_modules/webpack/lib/logging/Logger.js +++ b/node_modules/webpack/lib/logging/Logger.js @@ -27,7 +27,7 @@ const LogType = Object.freeze({ status: /** @type {"status"} */ ("status") // message, arguments }); -exports.LogType = LogType; +module.exports.LogType = LogType; /** @typedef {typeof LogType[keyof typeof LogType]} LogTypeEnum */ @@ -37,7 +37,7 @@ const TIMERS_AGGREGATES_SYMBOL = Symbol("webpack logger aggregated times"); class WebpackLogger { /** - * @param {function(LogTypeEnum, any[]=): void} log log function + * @param {function(LogTypeEnum, EXPECTED_ANY[]=): void} log log function * @param {function(string | function(): string): WebpackLogger} getChildLogger function to create child logger */ constructor(log, getChildLogger) { @@ -45,26 +45,45 @@ class WebpackLogger { this.getChildLogger = getChildLogger; } + /** + * @param {...EXPECTED_ANY} args args + */ error(...args) { this[LOG_SYMBOL](LogType.error, args); } + /** + * @param {...EXPECTED_ANY} args args + */ warn(...args) { this[LOG_SYMBOL](LogType.warn, args); } + /** + * @param {...EXPECTED_ANY} args args + */ info(...args) { this[LOG_SYMBOL](LogType.info, args); } + /** + * @param {...EXPECTED_ANY} args args + */ log(...args) { this[LOG_SYMBOL](LogType.log, args); } + /** + * @param {...EXPECTED_ANY} args args + */ debug(...args) { this[LOG_SYMBOL](LogType.debug, args); } + /** + * @param {EXPECTED_ANY} assertion assertion + * @param {...EXPECTED_ANY} args args + */ assert(assertion, ...args) { if (!assertion) { this[LOG_SYMBOL](LogType.error, args); @@ -79,20 +98,29 @@ class WebpackLogger { this[LOG_SYMBOL](LogType.clear); } + /** + * @param {...EXPECTED_ANY} args args + */ status(...args) { this[LOG_SYMBOL](LogType.status, args); } + /** + * @param {...EXPECTED_ANY} args args + */ group(...args) { this[LOG_SYMBOL](LogType.group, args); } + /** + * @param {...EXPECTED_ANY} args args + */ groupCollapsed(...args) { this[LOG_SYMBOL](LogType.groupCollapsed, args); } - groupEnd(...args) { - this[LOG_SYMBOL](LogType.groupEnd, args); + groupEnd() { + this[LOG_SYMBOL](LogType.groupEnd); } /** @@ -185,4 +213,4 @@ class WebpackLogger { } } -exports.Logger = WebpackLogger; +module.exports.Logger = WebpackLogger; diff --git a/node_modules/webpack/lib/logging/createConsoleLogger.js b/node_modules/webpack/lib/logging/createConsoleLogger.js index 11ede88..3b8ffd8 100644 --- a/node_modules/webpack/lib/logging/createConsoleLogger.js +++ b/node_modules/webpack/lib/logging/createConsoleLogger.js @@ -12,24 +12,24 @@ const { LogType } = require("./Logger"); /** @typedef {import("./Logger").LogTypeEnum} LogTypeEnum */ /** @typedef {function(string): boolean} FilterFunction */ -/** @typedef {function(string, LogTypeEnum, any[]): void} LoggingFunction */ +/** @typedef {function(string, LogTypeEnum, EXPECTED_ANY[]=): void} LoggingFunction */ /** * @typedef {object} LoggerConsole * @property {function(): void} clear * @property {function(): void} trace - * @property {(...args: any[]) => void} info - * @property {(...args: any[]) => void} log - * @property {(...args: any[]) => void} warn - * @property {(...args: any[]) => void} error - * @property {(...args: any[]) => void=} debug - * @property {(...args: any[]) => void=} group - * @property {(...args: any[]) => void=} groupCollapsed - * @property {(...args: any[]) => void=} groupEnd - * @property {(...args: any[]) => void=} status - * @property {(...args: any[]) => void=} profile - * @property {(...args: any[]) => void=} profileEnd - * @property {(...args: any[]) => void=} logTime + * @property {(...args: EXPECTED_ANY[]) => void} info + * @property {(...args: EXPECTED_ANY[]) => void} log + * @property {(...args: EXPECTED_ANY[]) => void} warn + * @property {(...args: EXPECTED_ANY[]) => void} error + * @property {(...args: EXPECTED_ANY[]) => void=} debug + * @property {(...args: EXPECTED_ANY[]) => void=} group + * @property {(...args: EXPECTED_ANY[]) => void=} groupCollapsed + * @property {(...args: EXPECTED_ANY[]) => void=} groupEnd + * @property {(...args: EXPECTED_ANY[]) => void=} status + * @property {(...args: EXPECTED_ANY[]) => void=} profile + * @property {(...args: EXPECTED_ANY[]) => void=} profileEnd + * @property {(...args: EXPECTED_ANY[]) => void=} logTime */ /** @@ -95,7 +95,7 @@ module.exports = ({ level = "info", debug = false, console }) => { /** * @param {string} name name of the logger * @param {LogTypeEnum} type type of the log entry - * @param {any[]} args arguments of the log entry + * @param {EXPECTED_ANY[]=} args arguments of the log entry * @returns {void} */ const logger = (name, type, args) => { @@ -103,12 +103,10 @@ module.exports = ({ level = "info", debug = false, console }) => { if (Array.isArray(args)) { if (args.length > 0 && typeof args[0] === "string") { return [`[${name}] ${args[0]}`, ...args.slice(1)]; - } else { - return [`[${name}]`, ...args]; } - } else { - return []; + return [`[${name}]`, ...args]; } + return []; }; const debug = debugFilters.some(f => f(name)); switch (type) { @@ -167,8 +165,11 @@ module.exports = ({ level = "info", debug = false, console }) => { break; case LogType.time: { if (!debug && loglevel > LogLevel.log) return; - const ms = args[1] * 1000 + args[2] / 1000000; - const msg = `[${name}] ${args[0]}: ${ms} ms`; + const [label, start, end] = + /** @type {[string, number, number]} */ + (args); + const ms = start * 1000 + end / 1000000; + const msg = `[${name}] ${label}: ${ms} ms`; if (typeof console.logTime === "function") { console.logTime(msg); } else { @@ -195,15 +196,13 @@ module.exports = ({ level = "info", debug = false, console }) => { case LogType.status: if (!debug && loglevel > LogLevel.info) return; if (typeof console.status === "function") { - if (args.length === 0) { + if (!args || args.length === 0) { console.status(); } else { console.status(...labeledArgs()); } - } else { - if (args.length !== 0) { - console.info(...labeledArgs()); - } + } else if (args && args.length !== 0) { + console.info(...labeledArgs()); } break; default: diff --git a/node_modules/webpack/lib/logging/runtime.js b/node_modules/webpack/lib/logging/runtime.js index 45fbb19..b0c6140 100644 --- a/node_modules/webpack/lib/logging/runtime.js +++ b/node_modules/webpack/lib/logging/runtime.js @@ -10,7 +10,7 @@ const { Logger } = require("./Logger"); const createConsoleLogger = require("./createConsoleLogger"); /** @type {createConsoleLogger.LoggerOptions} */ -let currentDefaultLoggerOptions = { +const currentDefaultLoggerOptions = { level: "info", debug: false, console @@ -21,26 +21,25 @@ let currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions); * @param {string} name name of the logger * @returns {Logger} a logger */ -exports.getLogger = name => { - return new Logger( +module.exports.getLogger = name => + new Logger( (type, args) => { - if (exports.hooks.log.call(name, type, args) === undefined) { + if (module.exports.hooks.log.call(name, type, args) === undefined) { currentDefaultLogger(name, type, args); } }, - childName => exports.getLogger(`${name}/${childName}`) + childName => module.exports.getLogger(`${name}/${childName}`) ); -}; /** * @param {createConsoleLogger.LoggerOptions} options new options, merge with old options * @returns {void} */ -exports.configureDefaultLogger = options => { +module.exports.configureDefaultLogger = options => { Object.assign(currentDefaultLoggerOptions, options); currentDefaultLogger = createConsoleLogger(currentDefaultLoggerOptions); }; -exports.hooks = { +module.exports.hooks = { log: new SyncBailHook(["origin", "type", "args"]) }; diff --git a/node_modules/webpack/lib/logging/truncateArgs.js b/node_modules/webpack/lib/logging/truncateArgs.js index 7ca92ae..148ac7a 100644 --- a/node_modules/webpack/lib/logging/truncateArgs.js +++ b/node_modules/webpack/lib/logging/truncateArgs.js @@ -16,7 +16,7 @@ const arraySum = array => { }; /** - * @param {any[]} args items to be truncated + * @param {EXPECTED_ANY[]} args items to be truncated * @param {number} maxLength maximum length of args including spaces between * @returns {string[]} truncated args */ @@ -28,17 +28,15 @@ const truncateArgs = (args, maxLength) => { if (availableLength >= args[0].length) { return args; } else if (availableLength > 3) { - return ["..." + args[0].slice(-availableLength + 3)]; - } else { - return [args[0].slice(-availableLength)]; + return [`...${args[0].slice(-availableLength + 3)}`]; } + return [args[0].slice(-availableLength)]; } // Check if there is space for at least 4 chars per arg if (availableLength < arraySum(lengths.map(i => Math.min(i, 6)))) { // remove args - if (args.length > 1) - return truncateArgs(args.slice(0, args.length - 1), maxLength); + if (args.length > 1) return truncateArgs(args.slice(0, -1), maxLength); return []; } @@ -74,12 +72,11 @@ const truncateArgs = (args, maxLength) => { if (str.length === length) { return str; } else if (length > 5) { - return "..." + str.slice(-length + 3); + return `...${str.slice(-length + 3)}`; } else if (length > 0) { return str.slice(-length); - } else { - return ""; } + return ""; }); }; diff --git a/node_modules/webpack/lib/node/NodeWatchFileSystem.js b/node_modules/webpack/lib/node/NodeWatchFileSystem.js index 1ac0790..091864a 100644 --- a/node_modules/webpack/lib/node/NodeWatchFileSystem.js +++ b/node_modules/webpack/lib/node/NodeWatchFileSystem.js @@ -11,9 +11,7 @@ const Watchpack = require("watchpack"); /** @typedef {import("../../declarations/WebpackOptions").WatchOptions} WatchOptions */ /** @typedef {import("../FileSystemInfo").FileSystemInfoEntry} FileSystemInfoEntry */ /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */ -/** @typedef {import("../util/fs").WatchFileSystem} WatchFileSystem */ /** @typedef {import("../util/fs").WatchMethod} WatchMethod */ -/** @typedef {import("../util/fs").Watcher} Watcher */ class NodeWatchFileSystem { /** @@ -24,19 +22,11 @@ class NodeWatchFileSystem { this.watcherOptions = { aggregateTimeout: 0 }; + /** @type {Watchpack | null} */ this.watcher = new Watchpack(this.watcherOptions); } - /** - * @param {Iterable} files watched files - * @param {Iterable} directories watched directories - * @param {Iterable} missing watched existence entries - * @param {number} startTime timestamp of start time - * @param {WatchOptions} options options object - * @param {function(Error | null, Map, Map, Set, Set): void} callback aggregated callback - * @param {function(string, number): void} callbackUndelayed callback when the first change was detected - * @returns {Watcher} a watcher - */ + /** @type {WatchMethod} */ watch( files, directories, @@ -93,7 +83,8 @@ class NodeWatchFileSystem { */ (changes, removals) => { // pause emitting events (avoids clearing aggregated changes and removals on timeout) - this.watcher.pause(); + /** @type {Watchpack} */ + (this.watcher).pause(); const fs = this.inputFileSystem; if (fs && fs.purge) { @@ -161,16 +152,12 @@ class NodeWatchFileSystem { "DEP_WEBPACK_WATCHER_GET_AGGREGATED_CHANGES" ), getFileTimeInfoEntries: util.deprecate( - () => { - return fetchTimeInfo().fileTimeInfoEntries; - }, + () => fetchTimeInfo().fileTimeInfoEntries, "Watcher.getFileTimeInfoEntries is deprecated in favor of Watcher.getInfo since that's more performant.", "DEP_WEBPACK_WATCHER_FILE_TIME_INFO_ENTRIES" ), getContextTimeInfoEntries: util.deprecate( - () => { - return fetchTimeInfo().contextTimeInfoEntries; - }, + () => fetchTimeInfo().contextTimeInfoEntries, "Watcher.getContextTimeInfoEntries is deprecated in favor of Watcher.getInfo since that's more performant.", "DEP_WEBPACK_WATCHER_CONTEXT_TIME_INFO_ENTRIES" ), diff --git a/node_modules/webpack/lib/node/ReadFileChunkLoadingRuntimeModule.js b/node_modules/webpack/lib/node/ReadFileChunkLoadingRuntimeModule.js index 1d588a6..fd138b2 100644 --- a/node_modules/webpack/lib/node/ReadFileChunkLoadingRuntimeModule.js +++ b/node_modules/webpack/lib/node/ReadFileChunkLoadingRuntimeModule.js @@ -43,7 +43,7 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule { return `${RuntimeGlobals.baseURI} = require("url").pathToFileURL(${ rootOutputDir - ? `__dirname + ${JSON.stringify("/" + rootOutputDir)}` + ? `__dirname + ${JSON.stringify(`/${rootOutputDir}`)}` : "__filename" });`; } @@ -227,7 +227,7 @@ class ReadFileChunkLoadingRuntimeModule extends RuntimeModule { Template.indent([ `if(${RuntimeGlobals.hasOwnProperty}(updatedModules, moduleId)) {`, Template.indent([ - `currentUpdate[moduleId] = updatedModules[moduleId];`, + "currentUpdate[moduleId] = updatedModules[moduleId];", "if(updatedModulesList) updatedModulesList.push(moduleId);" ]), "}" diff --git a/node_modules/webpack/lib/node/ReadFileCompileAsyncWasmPlugin.js b/node_modules/webpack/lib/node/ReadFileCompileAsyncWasmPlugin.js index 886ac12..6ae0b87 100644 --- a/node_modules/webpack/lib/node/ReadFileCompileAsyncWasmPlugin.js +++ b/node_modules/webpack/lib/node/ReadFileCompileAsyncWasmPlugin.js @@ -18,6 +18,7 @@ class ReadFileCompileAsyncWasmPlugin { this._type = type; this._import = useImport; } + /** * Apply the plugin * @param {Compiler} compiler the compiler instance @@ -89,26 +90,28 @@ class ReadFileCompileAsyncWasmPlugin { compilation.hooks.runtimeRequirementInTree .for(RuntimeGlobals.instantiateWasm) - .tap("ReadFileCompileAsyncWasmPlugin", (chunk, set) => { - if (!isEnabledForChunk(chunk)) return; - const chunkGraph = compilation.chunkGraph; - if ( - !chunkGraph.hasModuleInGraph( + .tap( + "ReadFileCompileAsyncWasmPlugin", + (chunk, set, { chunkGraph }) => { + if (!isEnabledForChunk(chunk)) return; + if ( + !chunkGraph.hasModuleInGraph( + chunk, + m => m.type === WEBASSEMBLY_MODULE_TYPE_ASYNC + ) + ) { + return; + } + set.add(RuntimeGlobals.publicPath); + compilation.addRuntimeModule( chunk, - m => m.type === WEBASSEMBLY_MODULE_TYPE_ASYNC - ) - ) { - return; + new AsyncWasmLoadingRuntimeModule({ + generateLoadBinaryCode, + supportsStreaming: false + }) + ); } - set.add(RuntimeGlobals.publicPath); - compilation.addRuntimeModule( - chunk, - new AsyncWasmLoadingRuntimeModule({ - generateLoadBinaryCode, - supportsStreaming: false - }) - ); - }); + ); } ); } diff --git a/node_modules/webpack/lib/node/ReadFileCompileWasmPlugin.js b/node_modules/webpack/lib/node/ReadFileCompileWasmPlugin.js index 0a46399..55643de 100644 --- a/node_modules/webpack/lib/node/ReadFileCompileWasmPlugin.js +++ b/node_modules/webpack/lib/node/ReadFileCompileWasmPlugin.js @@ -81,9 +81,8 @@ class ReadFileCompileWasmPlugin { compilation.hooks.runtimeRequirementInTree .for(RuntimeGlobals.ensureChunkHandlers) - .tap("ReadFileCompileWasmPlugin", (chunk, set) => { + .tap("ReadFileCompileWasmPlugin", (chunk, set, { chunkGraph }) => { if (!isEnabledForChunk(chunk)) return; - const chunkGraph = compilation.chunkGraph; if ( !chunkGraph.hasModuleInGraph( chunk, diff --git a/node_modules/webpack/lib/node/RequireChunkLoadingRuntimeModule.js b/node_modules/webpack/lib/node/RequireChunkLoadingRuntimeModule.js index bb16927..1d49594 100644 --- a/node_modules/webpack/lib/node/RequireChunkLoadingRuntimeModule.js +++ b/node_modules/webpack/lib/node/RequireChunkLoadingRuntimeModule.js @@ -43,7 +43,7 @@ class RequireChunkLoadingRuntimeModule extends RuntimeModule { return `${RuntimeGlobals.baseURI} = require("url").pathToFileURL(${ rootOutputDir !== "./" - ? `__dirname + ${JSON.stringify("/" + rootOutputDir)}` + ? `__dirname + ${JSON.stringify(`/${rootOutputDir}`)}` : "__filename" });`; } @@ -189,7 +189,7 @@ class RequireChunkLoadingRuntimeModule extends RuntimeModule { Template.indent([ `if(${RuntimeGlobals.hasOwnProperty}(updatedModules, moduleId)) {`, Template.indent([ - `currentUpdate[moduleId] = updatedModules[moduleId];`, + "currentUpdate[moduleId] = updatedModules[moduleId];", "if(updatedModulesList) updatedModulesList.push(moduleId);" ]), "}" diff --git a/node_modules/webpack/lib/node/nodeConsole.js b/node_modules/webpack/lib/node/nodeConsole.js index d4a5067..9a1125e 100644 --- a/node_modules/webpack/lib/node/nodeConsole.js +++ b/node_modules/webpack/lib/node/nodeConsole.js @@ -19,7 +19,7 @@ const truncateArgs = require("../logging/truncateArgs"); */ module.exports = ({ colors, appendOnly, stream }) => { /** @type {string[] | undefined} */ - let currentStatusMessage = undefined; + let currentStatusMessage; let hasStatusMessage = false; let currentIndent = ""; let currentCollapsed = 0; @@ -38,17 +38,17 @@ module.exports = ({ colors, appendOnly, stream }) => { return ( prefix + colorPrefix + - str.replace(/\n/g, colorSuffix + "\n" + prefix + colorPrefix) + + str.replace(/\n/g, `${colorSuffix}\n${prefix}${colorPrefix}`) + colorSuffix ); - } else { - return prefix + str.replace(/\n/g, "\n" + prefix); } + + return prefix + str.replace(/\n/g, `\n${prefix}`); }; const clearStatusMessage = () => { if (hasStatusMessage) { - stream.write("\x1b[2K\r"); + stream.write("\u001B[2K\r"); hasStatusMessage = false; } }; @@ -58,8 +58,8 @@ module.exports = ({ colors, appendOnly, stream }) => { const l = /** @type {TODO} */ (stream).columns || 40; const args = truncateArgs(currentStatusMessage, l - 1); const str = args.join(" "); - const coloredStr = `\u001b[1m${str}\u001b[39m\u001b[22m`; - stream.write(`\x1b[2K\r${coloredStr}`); + const coloredStr = `\u001B[1m${str}\u001B[39m\u001B[22m`; + stream.write(`\u001B[2K\r${coloredStr}`); hasStatusMessage = true; }; @@ -67,10 +67,11 @@ module.exports = ({ colors, appendOnly, stream }) => { * @param {string} prefix prefix * @param {string} colorPrefix color prefix * @param {string} colorSuffix color suffix - * @returns {(function(...any[]): void)} function to write with colors + * @returns {(function(...EXPECTED_ANY[]): void)} function to write with colors */ - const writeColored = (prefix, colorPrefix, colorSuffix) => { - return (...args) => { + const writeColored = + (prefix, colorPrefix, colorSuffix) => + (...args) => { if (currentCollapsed > 0) return; clearStatusMessage(); const str = indent( @@ -79,34 +80,33 @@ module.exports = ({ colors, appendOnly, stream }) => { colorPrefix, colorSuffix ); - stream.write(str + "\n"); + stream.write(`${str}\n`); writeStatusMessage(); }; - }; const writeGroupMessage = writeColored( "<-> ", - "\u001b[1m\u001b[36m", - "\u001b[39m\u001b[22m" + "\u001B[1m\u001B[36m", + "\u001B[39m\u001B[22m" ); const writeGroupCollapsedMessage = writeColored( "<+> ", - "\u001b[1m\u001b[36m", - "\u001b[39m\u001b[22m" + "\u001B[1m\u001B[36m", + "\u001B[39m\u001B[22m" ); return { - log: writeColored(" ", "\u001b[1m", "\u001b[22m"), + log: writeColored(" ", "\u001B[1m", "\u001B[22m"), debug: writeColored(" ", "", ""), trace: writeColored(" ", "", ""), - info: writeColored(" ", "\u001b[1m\u001b[32m", "\u001b[39m\u001b[22m"), - warn: writeColored(" ", "\u001b[1m\u001b[33m", "\u001b[39m\u001b[22m"), - error: writeColored(" ", "\u001b[1m\u001b[31m", "\u001b[39m\u001b[22m"), + info: writeColored(" ", "\u001B[1m\u001B[32m", "\u001B[39m\u001B[22m"), + warn: writeColored(" ", "\u001B[1m\u001B[33m", "\u001B[39m\u001B[22m"), + error: writeColored(" ", "\u001B[1m\u001B[31m", "\u001B[39m\u001B[22m"), logTime: writeColored( " ", - "\u001b[1m\u001b[35m", - "\u001b[39m\u001b[22m" + "\u001B[1m\u001B[35m", + "\u001B[39m\u001B[22m" ), group: (...args) => { writeGroupMessage(...args); @@ -123,18 +123,21 @@ module.exports = ({ colors, appendOnly, stream }) => { groupEnd: () => { if (currentCollapsed > 0) currentCollapsed--; else if (currentIndent.length >= 2) - currentIndent = currentIndent.slice(0, currentIndent.length - 2); + currentIndent = currentIndent.slice(0, -2); }, profile: console.profile && (name => console.profile(name)), profileEnd: console.profileEnd && (name => console.profileEnd(name)), clear: - !appendOnly && - console.clear && - (() => { - clearStatusMessage(); - console.clear(); - writeStatusMessage(); - }), + /** @type {() => void} */ + ( + !appendOnly && + console.clear && + (() => { + clearStatusMessage(); + console.clear(); + writeStatusMessage(); + }) + ), status: appendOnly ? writeColored(" ", "", "") : (name, ...args) => { diff --git a/node_modules/webpack/lib/optimize/AggressiveMergingPlugin.js b/node_modules/webpack/lib/optimize/AggressiveMergingPlugin.js index b86f8b6..e0d766a 100644 --- a/node_modules/webpack/lib/optimize/AggressiveMergingPlugin.js +++ b/node_modules/webpack/lib/optimize/AggressiveMergingPlugin.js @@ -51,7 +51,7 @@ class AggressiveMergingPlugin { chunks => { const chunkGraph = compilation.chunkGraph; /** @type {{a: Chunk, b: Chunk, improvement: number}[]} */ - let combinations = []; + const combinations = []; for (const a of chunks) { if (a.canBeInitial()) continue; for (const b of chunks) { @@ -78,9 +78,7 @@ class AggressiveMergingPlugin { } } - combinations.sort((a, b) => { - return b.improvement - a.improvement; - }); + combinations.sort((a, b) => b.improvement - a.improvement); const pair = combinations[0]; diff --git a/node_modules/webpack/lib/optimize/AggressiveSplittingPlugin.js b/node_modules/webpack/lib/optimize/AggressiveSplittingPlugin.js index 16c0837..f17ec25 100644 --- a/node_modules/webpack/lib/optimize/AggressiveSplittingPlugin.js +++ b/node_modules/webpack/lib/optimize/AggressiveSplittingPlugin.js @@ -36,11 +36,9 @@ const validate = createSchemaValidation( * @param {Chunk} newChunk the new chunk * @returns {(module: Module) => void} function to move module between chunks */ -const moveModuleBetween = (chunkGraph, oldChunk, newChunk) => { - return module => { - chunkGraph.disconnectChunkAndModule(oldChunk, module); - chunkGraph.connectChunkAndModule(newChunk, module); - }; +const moveModuleBetween = (chunkGraph, oldChunk, newChunk) => module => { + chunkGraph.disconnectChunkAndModule(oldChunk, module); + chunkGraph.connectChunkAndModule(newChunk, module); }; /** @@ -48,11 +46,8 @@ const moveModuleBetween = (chunkGraph, oldChunk, newChunk) => { * @param {Chunk} chunk the chunk * @returns {function(Module): boolean} filter for entry module */ -const isNotAEntryModule = (chunkGraph, chunk) => { - return module => { - return !chunkGraph.isEntryModuleInChunk(module, chunk); - }; -}; +const isNotAEntryModule = (chunkGraph, chunk) => module => + !chunkGraph.isEntryModuleInChunk(module, chunk); /** @type {WeakSet} */ const recordedChunks = new WeakSet(); @@ -97,10 +92,12 @@ class AggressiveSplittingPlugin { "AggressiveSplittingPlugin", compilation => { let needAdditionalSeal = false; + /** @typedef {{ id?: NonNullable, hash?: NonNullable, modules: Module[], size: number }} SplitData */ + /** @type {SplitData[]} */ let newSplits; /** @type {Set} */ let fromAggressiveSplittingSet; - /** @type {Map} */ + /** @type {Map} */ let chunkSplitDataMap; compilation.hooks.optimize.tap("AggressiveSplittingPlugin", () => { newSplits = []; @@ -144,6 +141,10 @@ class AggressiveSplittingPlugin { const minSize = /** @type {number} */ (this.options.minSize); const maxSize = /** @type {number} */ (this.options.maxSize); + /** + * @param {SplitData} splitData split data + * @returns {boolean} true when applied, otherwise false + */ const applySplit = splitData => { // Cannot split if id is already taken if (splitData.id !== undefined && usedIds.has(splitData.id)) { @@ -191,11 +192,11 @@ class AggressiveSplittingPlugin { const newChunk = compilation.addChunk(); newChunk.chunkReason = "aggressive splitted"; for (const chunk of selectedChunks) { - selectedModules.forEach( - moveModuleBetween(chunkGraph, chunk, newChunk) - ); + for (const module of selectedModules) { + moveModuleBetween(chunkGraph, chunk, newChunk)(module); + } chunk.split(newChunk); - chunk.name = null; + chunk.name = /** @type {TODO} */ (null); } fromAggressiveSplittingSet.add(newChunk); chunkSplitDataMap.set(newChunk, splitData); @@ -250,6 +251,7 @@ class AggressiveSplittingPlugin { selectedModules.push(module); } if (selectedModules.length === 0) continue; + /** @type {SplitData} */ const splitData = { modules: selectedModules .map(m => moduleToNameMap.get(m)) @@ -271,33 +273,42 @@ class AggressiveSplittingPlugin { records => { // 4. save made splittings to records const allSplits = new Set(); + /** @type {Set} */ const invalidSplits = new Set(); // Check if some splittings are invalid // We remove invalid splittings and try again for (const chunk of compilation.chunks) { const splitData = chunkSplitDataMap.get(chunk); - if (splitData !== undefined) { - if (splitData.hash && chunk.hash !== splitData.hash) { - // Split was successful, but hash doesn't equal - // We can throw away the split since it's useless now - invalidSplits.add(splitData); - } + if ( + splitData !== undefined && + splitData.hash && + chunk.hash !== splitData.hash + ) { + // Split was successful, but hash doesn't equal + // We can throw away the split since it's useless now + invalidSplits.add(splitData); } } if (invalidSplits.size > 0) { - records.aggressiveSplits = records.aggressiveSplits.filter( - splitData => !invalidSplits.has(splitData) - ); + records.aggressiveSplits = + /** @type {SplitData[]} */ + (records.aggressiveSplits).filter( + splitData => !invalidSplits.has(splitData) + ); needAdditionalSeal = true; } else { // set hash and id values on all (new) splittings for (const chunk of compilation.chunks) { const splitData = chunkSplitDataMap.get(chunk); if (splitData !== undefined) { - splitData.hash = chunk.hash; - splitData.id = chunk.id; + splitData.hash = + /** @type {NonNullable} */ + (chunk.hash); + splitData.id = + /** @type {NonNullable} */ + (chunk.id); allSplits.add(splitData); // set flag for stats recordedChunks.add(chunk); diff --git a/node_modules/webpack/lib/optimize/ConcatenatedModule.js b/node_modules/webpack/lib/optimize/ConcatenatedModule.js index 8da57d7..c305c3d 100644 --- a/node_modules/webpack/lib/optimize/ConcatenatedModule.js +++ b/node_modules/webpack/lib/optimize/ConcatenatedModule.js @@ -16,6 +16,7 @@ const { const ConcatenationScope = require("../ConcatenationScope"); const { UsageState } = require("../ExportsInfo"); const Module = require("../Module"); +const { JS_TYPES } = require("../ModuleSourceTypesConstants"); const { JAVASCRIPT_MODULE_TYPE_ESM } = require("../ModuleTypeConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); const Template = require("../Template"); @@ -24,10 +25,17 @@ const JavascriptParser = require("../javascript/JavascriptParser"); const { equals } = require("../util/ArrayHelpers"); const LazySet = require("../util/LazySet"); const { concatComparators } = require("../util/comparators"); +const { + RESERVED_NAMES, + findNewName, + addScopeSymbols, + getAllReferences, + getPathInAst, + getUsedNamesInScopeInfo +} = require("../util/concatenate"); const createHash = require("../util/createHash"); const { makePathsRelative } = require("../util/identifier"); const makeSerializable = require("../util/makeSerializable"); -const { getAllReferences, getPathInAst } = require("../util/mergeScope"); const propertyAccess = require("../util/propertyAccess"); const { propertyName } = require("../util/propertyName"); const { @@ -58,10 +66,12 @@ const { /** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */ /** @typedef {import("../Module").LibIdentOptions} LibIdentOptions */ /** @typedef {import("../Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */ +/** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */ /** @typedef {import("../Module").SourceTypes} SourceTypes */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */ /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */ +/** @typedef {import("../ModuleParseError")} ModuleParseError */ /** @typedef {import("../RequestShortener")} RequestShortener */ /** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ @@ -72,6 +82,7 @@ const { /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ /** @typedef {import("../util/Hash")} Hash */ /** @typedef {typeof import("../util/Hash")} HashConstructor */ +/** @typedef {import("../util/concatenate").UsedNames} UsedNames */ /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ @@ -128,12 +139,12 @@ if (!ReferencerClass.prototype.PropertyDefinition) { * @property {Module} module * @property {number} index * @property {Program | undefined} ast - * @property {Source} internalSource - * @property {ReplaceSource} source + * @property {Source | undefined} internalSource + * @property {ReplaceSource | undefined} source * @property {InitFragment[]=} chunkInitFragments - * @property {ReadOnlyRuntimeRequirements} runtimeRequirements - * @property {Scope} globalScope - * @property {Scope} moduleScope + * @property {ReadOnlyRuntimeRequirements | undefined} runtimeRequirements + * @property {Scope | undefined} globalScope + * @property {Scope | undefined} moduleScope * @property {Map} internalNames * @property {Map | undefined} exportMap * @property {Map | undefined} rawExportMap @@ -153,64 +164,34 @@ if (!ReferencerClass.prototype.PropertyDefinition) { * @property {Module} module * @property {RuntimeSpec | boolean} runtimeCondition * @property {number} index - * @property {string} name + * @property {string | undefined} name * @property {boolean} interopNamespaceObjectUsed - * @property {string} interopNamespaceObjectName + * @property {string | undefined} interopNamespaceObjectName * @property {boolean} interopNamespaceObject2Used - * @property {string} interopNamespaceObject2Name + * @property {string | undefined} interopNamespaceObject2Name * @property {boolean} interopDefaultAccessUsed - * @property {string} interopDefaultAccessName + * @property {string | undefined} interopDefaultAccessName */ /** * @typedef {object} ReferenceToModuleInfo * @property {"reference"} type * @property {RuntimeSpec | boolean} runtimeCondition - * @property {ConcatenatedModuleInfo | ExternalModuleInfo} target + * @property {ModuleInfo} target */ -/** @typedef {Set} UsedNames */ - -const RESERVED_NAMES = new Set( - [ - // internal names (should always be renamed) - ConcatenationScope.DEFAULT_EXPORT, - ConcatenationScope.NAMESPACE_OBJECT_EXPORT, - - // keywords - "abstract,arguments,async,await,boolean,break,byte,case,catch,char,class,const,continue", - "debugger,default,delete,do,double,else,enum,eval,export,extends,false,final,finally,float", - "for,function,goto,if,implements,import,in,instanceof,int,interface,let,long,native,new,null", - "package,private,protected,public,return,short,static,super,switch,synchronized,this,throw", - "throws,transient,true,try,typeof,var,void,volatile,while,with,yield", - - // commonjs/amd - "module,__dirname,__filename,exports,require,define", - - // js globals - "Array,Date,eval,function,hasOwnProperty,Infinity,isFinite,isNaN,isPrototypeOf,length,Math", - "NaN,name,Number,Object,prototype,String,toString,undefined,valueOf", - - // browser globals - "alert,all,anchor,anchors,area,assign,blur,button,checkbox,clearInterval,clearTimeout", - "clientInformation,close,closed,confirm,constructor,crypto,decodeURI,decodeURIComponent", - "defaultStatus,document,element,elements,embed,embeds,encodeURI,encodeURIComponent,escape", - "event,fileUpload,focus,form,forms,frame,innerHeight,innerWidth,layer,layers,link,location", - "mimeTypes,navigate,navigator,frames,frameRate,hidden,history,image,images,offscreenBuffering", - "open,opener,option,outerHeight,outerWidth,packages,pageXOffset,pageYOffset,parent,parseFloat", - "parseInt,password,pkcs11,plugin,prompt,propertyIsEnum,radio,reset,screenX,screenY,scroll", - "secure,select,self,setInterval,setTimeout,status,submit,taint,text,textarea,top,unescape", - "untaint,window", - - // window events - "onblur,onclick,onerror,onfocus,onkeydown,onkeypress,onkeyup,onmouseover,onload,onmouseup,onmousedown,onsubmit" - ] - .join(",") - .split(",") -); +/** + * @template T + * @param {string} property property + * @param {function(T[keyof T], T[keyof T]): 0 | 1 | -1} comparator comparator + * @returns {Comparator} comparator + */ const createComparator = (property, comparator) => (a, b) => - comparator(a[property], b[property]); + comparator( + a[/** @type {keyof T} */ (property)], + b[/** @type {keyof T} */ (property)] + ); /** * @param {number} a a @@ -218,12 +199,12 @@ const createComparator = (property, comparator) => (a, b) => * @returns {0 | 1 | -1} result */ const compareNumbers = (a, b) => { - if (isNaN(a)) { - if (!isNaN(b)) { + if (Number.isNaN(a)) { + if (!Number.isNaN(b)) { return 1; } } else { - if (isNaN(b)) { + if (Number.isNaN(b)) { return -1; } if (a !== b) { @@ -397,12 +378,21 @@ const getFinalBinding = ( neededNamespaceObjects.add(info); return { info, - rawName: /** @type {string} */ (info.namespaceObjectName), + rawName: + /** @type {NonNullable} */ + (info.namespaceObjectName), ids: exportName, exportName }; case "external": - return { info, rawName: info.name, ids: exportName, exportName }; + return { + info, + rawName: + /** @type {NonNullable} */ + (info.name), + ids: exportName, + exportName + }; } } const exportsInfo = moduleGraph.getExportsInfo(info.module); @@ -608,30 +598,9 @@ const getFinalName = ( } }; -/** - * @param {Scope | null} s scope - * @param {UsedNames} nameSet name set - * @param {TODO} scopeSet1 scope set 1 - * @param {TODO} scopeSet2 scope set 2 - */ -const addScopeSymbols = (s, nameSet, scopeSet1, scopeSet2) => { - let scope = s; - while (scope) { - if (scopeSet1.has(scope)) break; - if (scopeSet2.has(scope)) break; - scopeSet1.add(scope); - for (const variable of scope.variables) { - nameSet.add(variable.name); - } - scope = scope.upper; - } -}; - -const TYPES = new Set(["javascript"]); - /** * @typedef {object} ConcatenateModuleHooks - * @property {SyncBailHook<[Record]>} exportsDefinitions + * @property {SyncBailHook<[Record], boolean | void>} exportsDefinitions */ /** @type {WeakMap} */ @@ -688,9 +657,9 @@ class ConcatenatedModule extends Module { /** * @param {object} options options * @param {string} options.identifier the identifier of the module - * @param {Module=} options.rootModule the root module of the concatenation + * @param {Module} options.rootModule the root module of the concatenation * @param {RuntimeSpec} options.runtime the selected runtime - * @param {Set=} options.modules all concatenated modules + * @param {Set} options.modules all concatenated modules * @param {Compilation} options.compilation the compilation */ constructor({ identifier, rootModule, modules, runtime, compilation }) { @@ -724,7 +693,7 @@ class ConcatenatedModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return TYPES; + return JS_TYPES; } get modules() { @@ -743,10 +712,9 @@ class ConcatenatedModule extends Module { * @returns {string} a user readable identifier of the module */ readableIdentifier(requestShortener) { - return ( - this.rootModule.readableIdentifier(requestShortener) + - ` + ${this._modules.size - 1} modules` - ); + return `${this.rootModule.readableIdentifier( + requestShortener + )} + ${this._modules.size - 1} modules`; } /** @@ -857,7 +825,14 @@ class ConcatenatedModule extends Module { if (this.buildInfo.assets === undefined) { this.buildInfo.assets = Object.create(null); } - Object.assign(/** @type {BuildInfo} */ (this.buildInfo).assets, assets); + Object.assign( + /** @type {NonNullable} */ + ( + /** @type {BuildInfo} */ + (this.buildInfo).assets + ), + assets + ); } if (assetsInfo) { if (this.buildInfo.assetsInfo === undefined) { @@ -903,7 +878,9 @@ class ConcatenatedModule extends Module { * @returns {Iterable<{ connection: ModuleGraphConnection, runtimeCondition: RuntimeSpec | true }>} imported modules in order */ const getConcatenatedImports = module => { - let connections = Array.from(moduleGraph.getOutgoingConnections(module)); + const connections = Array.from( + moduleGraph.getOutgoingConnections(module) + ); if (module === rootModule) { for (const c of moduleGraph.getOutgoingConnections(this)) connections.push(c); @@ -1077,14 +1054,14 @@ class ConcatenatedModule extends Module { /** @type {string} */ (rootModule.context), associatedObjectForCache ); - let identifiers = []; + const identifiers = []; for (const module of modules) { identifiers.push(cachedMakePathsRelative(module.identifier())); } identifiers.sort(); const hash = createHash(hashFunction); hash.update(identifiers.join(" ")); - return rootModule.identifier() + "|" + hash.digest("hex"); + return `${rootModule.identifier()}|${hash.digest("hex")}`; } /** @@ -1121,7 +1098,7 @@ class ConcatenatedModule extends Module { runtime: generationRuntime, codeGenerationResults }) { - /** @type {Set} */ + /** @type {RuntimeRequirements} */ const runtimeRequirements = new Set(); const runtime = intersectRuntime(generationRuntime, this._runtime); @@ -1147,7 +1124,8 @@ class ConcatenatedModule extends Module { moduleGraph, chunkGraph, runtime, - codeGenerationResults + /** @type {CodeGenerationResults} */ + (codeGenerationResults) ); } @@ -1164,18 +1142,6 @@ class ConcatenatedModule extends Module { * @param {string} id export id * @returns {{ usedNames: UsedNames, alreadyCheckedScopes: Set }} info */ - const getUsedNamesInScopeInfo = (module, id) => { - const key = `${module}-${id}`; - let info = usedNamesInScopeInfo.get(key); - if (info === undefined) { - info = { - usedNames: new Set(), - alreadyCheckedScopes: new Set() - }; - usedNamesInScopeInfo.set(key, info); - } - return info; - }; // Set of already checked scopes const ignoredScopes = new Set(); @@ -1245,6 +1211,7 @@ class ConcatenatedModule extends Module { if (!binding.ids) continue; const { usedNames, alreadyCheckedScopes } = getUsedNamesInScopeInfo( + usedNamesInScopeInfo, binding.info.module.identifier(), "name" in binding ? binding.name : "" ); @@ -1277,14 +1244,17 @@ class ConcatenatedModule extends Module { // generate names for symbols for (const info of moduleToInfoMap.values()) { const { usedNames: namespaceObjectUsedNames } = getUsedNamesInScopeInfo( + usedNamesInScopeInfo, info.module.identifier(), "" ); switch (info.type) { case "concatenated": { - for (const variable of info.moduleScope.variables) { + const variables = /** @type {Scope} */ (info.moduleScope).variables; + for (const variable of variables) { const name = variable.name; const { usedNames, alreadyCheckedScopes } = getUsedNamesInScopeInfo( + usedNamesInScopeInfo, info.module.identifier(), name ); @@ -1298,7 +1268,7 @@ class ConcatenatedModule extends Module { ignoredScopes ); } - const newName = this.findNewName( + const newName = findNewName( name, allUsedNames, usedNames, @@ -1307,13 +1277,17 @@ class ConcatenatedModule extends Module { allUsedNames.add(newName); info.internalNames.set(name, newName); topLevelDeclarations.add(newName); - const source = info.source; + const source = /** @type {ReplaceSource} */ (info.source); const allIdentifiers = new Set( references.map(r => r.identifier).concat(variable.identifiers) ); for (const identifier of allIdentifiers) { const r = /** @type {Range} */ (identifier.range); - const path = getPathInAst(info.ast, identifier); + const path = getPathInAst( + /** @type {NonNullable} */ + (info.ast), + identifier + ); if (path && path.length > 1) { const maybeProperty = path[1].type === "AssignmentPattern" && @@ -1342,7 +1316,7 @@ class ConcatenatedModule extends Module { info.namespaceExportSymbol ); } else { - namespaceObjectName = this.findNewName( + namespaceObjectName = findNewName( "namespaceObject", allUsedNames, namespaceObjectUsedNames, @@ -1357,7 +1331,7 @@ class ConcatenatedModule extends Module { break; } case "external": { - const externalName = this.findNewName( + const externalName = findNewName( "", allUsedNames, namespaceObjectUsedNames, @@ -1371,7 +1345,7 @@ class ConcatenatedModule extends Module { } const buildMeta = /** @type {BuildMeta} */ (info.module.buildMeta); if (buildMeta.exportsType !== "namespace") { - const externalNameInterop = this.findNewName( + const externalNameInterop = findNewName( "namespaceObject", allUsedNames, namespaceObjectUsedNames, @@ -1385,7 +1359,7 @@ class ConcatenatedModule extends Module { buildMeta.exportsType === "default" && buildMeta.defaultObject !== "redirect" ) { - const externalNameInterop = this.findNewName( + const externalNameInterop = findNewName( "namespaceObject2", allUsedNames, namespaceObjectUsedNames, @@ -1396,7 +1370,7 @@ class ConcatenatedModule extends Module { topLevelDeclarations.add(externalNameInterop); } if (buildMeta.exportsType === "dynamic" || !buildMeta.exportsType) { - const externalNameInterop = this.findNewName( + const externalNameInterop = findNewName( "default", allUsedNames, namespaceObjectUsedNames, @@ -1411,7 +1385,8 @@ class ConcatenatedModule extends Module { // Find and replace references to modules for (const info of moduleToInfoMap.values()) { if (info.type === "concatenated") { - for (const reference of info.globalScope.through) { + const globalScope = /** @type {Scope} */ (info.globalScope); + for (const reference of globalScope.through) { const name = reference.identifier.name; const match = ConcatenationScope.matchModuleReference(name); if (match) { @@ -1434,7 +1409,7 @@ class ConcatenatedModule extends Module { match.asiSafe ); const r = /** @type {Range} */ (reference.identifier.range); - const source = info.source; + const source = /** @type {ReplaceSource} */ (info.source); // range is extended by 2 chars to cover the appended "._" source.replace(r[0], r[1] + 1, finalName); } @@ -1487,11 +1462,11 @@ class ConcatenatedModule extends Module { return `/* ${ exportInfo.isReexport() ? "reexport" : "binding" } */ ${finalName}`; - } catch (e) { + } catch (err) { /** @type {Error} */ - (e).message += + (err).message += `\nwhile generating the root export '${name}' (used name: '${used}')`; - throw e; + throw err; } }); } @@ -1510,7 +1485,7 @@ class ConcatenatedModule extends Module { // define exports if (exportsMap.size > 0) { const { exportsDefinitions } = ConcatenatedModule.getCompilationHooks( - this.compilation + /** @type {Compilation} */ (this.compilation) ); const definitions = []; @@ -1529,7 +1504,7 @@ class ConcatenatedModule extends Module { runtimeRequirements.add(RuntimeGlobals.definePropertyGetters); if (shouldAddHarmonyFlag) { - result.add(`// ESM COMPAT FLAG\n`); + result.add("// ESM COMPAT FLAG\n"); result.add( runtimeTemplate.defineEsModuleFlagStatement({ exportsArgument: this.exportsArgument, @@ -1538,14 +1513,15 @@ class ConcatenatedModule extends Module { ); } - result.add(`\n// EXPORTS\n`); + result.add("\n// EXPORTS\n"); result.add( `${RuntimeGlobals.definePropertyGetters}(${ this.exportsArgument }, {${definitions.join(",")}\n});\n` ); } else { - this.buildMeta.exportsFinalName = exportsFinalName; + /** @type {BuildMeta} */ + (this.buildMeta).exportsFinalName = exportsFinalName; } } @@ -1627,11 +1603,9 @@ ${defineGetters}` switch (info.type) { case "concatenated": { result.add( - `\n;// CONCATENATED MODULE: ${info.module.readableIdentifier( - requestShortener - )}\n` + `\n;// ${info.module.readableIdentifier(requestShortener)}\n` ); - result.add(info.source); + result.add(/** @type {ReplaceSource} */ (info.source)); if (info.chunkInitFragments) { for (const f of info.chunkInitFragments) chunkInitFragments.push(f); } @@ -1747,7 +1721,7 @@ ${defineGetters}` runtime, concatenationScope, codeGenerationResults, - sourceTypes: TYPES + sourceTypes: JS_TYPES }); const source = /** @type {Source} */ ( codeGenResult.sources.get("javascript") @@ -1760,7 +1734,8 @@ ${defineGetters}` ast = JavascriptParser._parse(code, { sourceType: "module" }); - } catch (err) { + } catch (_err) { + const err = /** @type {TODO} */ (_err); if ( err.loc && typeof err.loc === "object" && @@ -1768,11 +1743,9 @@ ${defineGetters}` ) { const lineNumber = err.loc.line; const lines = code.split("\n"); - err.message += - "\n| " + - lines - .slice(Math.max(0, lineNumber - 3), lineNumber + 2) - .join("\n| "); + err.message += `\n| ${lines + .slice(Math.max(0, lineNumber - 3), lineNumber + 2) + .join("\n| ")}`; } throw err; } @@ -1786,7 +1759,9 @@ ${defineGetters}` const globalScope = /** @type {Scope} */ (scopeManager.acquire(ast)); const moduleScope = globalScope.childScopes[0]; const resultSource = new ReplaceSource(source); - info.runtimeRequirements = codeGenResult.runtimeRequirements; + info.runtimeRequirements = + /** @type {ReadOnlyRuntimeRequirements} */ + (codeGenResult.runtimeRequirements); info.ast = ast; info.internalSource = source; info.source = resultSource; @@ -1868,66 +1843,19 @@ ${defineGetters}` /** @type {ModuleInfo} */ (item).module, /** @type {ModuleInfo} */ (item) ); - return item; - } else { - /** @type {ReferenceToModuleInfo} */ - const ref = { - type: "reference", - runtimeCondition: info.runtimeCondition, - target: item - }; - return ref; + return /** @type {ModuleInfo} */ (item); } + /** @type {ReferenceToModuleInfo} */ + const ref = { + type: "reference", + runtimeCondition: info.runtimeCondition, + target: item + }; + return ref; }); return [list, map]; } - /** - * @param {string} oldName old name - * @param {UsedNames} usedNamed1 used named 1 - * @param {UsedNames} usedNamed2 used named 2 - * @param {string} extraInfo extra info - * @returns {string} found new name - */ - findNewName(oldName, usedNamed1, usedNamed2, extraInfo) { - let name = oldName; - - if (name === ConcatenationScope.DEFAULT_EXPORT) { - name = ""; - } - if (name === ConcatenationScope.NAMESPACE_OBJECT_EXPORT) { - name = "namespaceObject"; - } - - // Remove uncool stuff - extraInfo = extraInfo.replace( - /\.+\/|(\/index)?\.([a-zA-Z0-9]{1,4})($|\s|\?)|\s*\+\s*\d+\s*modules/g, - "" - ); - - const splittedInfo = extraInfo.split("/"); - while (splittedInfo.length) { - name = splittedInfo.pop() + (name ? "_" + name : ""); - const nameIdent = Template.toIdentifier(name); - if ( - !usedNamed1.has(nameIdent) && - (!usedNamed2 || !usedNamed2.has(nameIdent)) - ) - return nameIdent; - } - - let i = 0; - let nameWithNumber = Template.toIdentifier(`${name}_${i}`); - while ( - usedNamed1.has(nameWithNumber) || - (usedNamed2 && usedNamed2.has(nameWithNumber)) - ) { - i++; - nameWithNumber = Template.toIdentifier(`${name}_${i}`); - } - return nameWithNumber; - } - /** * @param {Hash} hash the hash used to track dependencies * @param {UpdateHashContext} context context @@ -1960,11 +1888,11 @@ ${defineGetters}` */ static deserialize(context) { const obj = new ConcatenatedModule({ - identifier: undefined, - rootModule: undefined, - modules: undefined, + identifier: /** @type {EXPECTED_ANY} */ (undefined), + rootModule: /** @type {EXPECTED_ANY} */ (undefined), + modules: /** @type {EXPECTED_ANY} */ (undefined), runtime: undefined, - compilation: undefined + compilation: /** @type {EXPECTED_ANY} */ (undefined) }); obj.deserialize(context); return obj; diff --git a/node_modules/webpack/lib/optimize/EnsureChunkConditionsPlugin.js b/node_modules/webpack/lib/optimize/EnsureChunkConditionsPlugin.js index dfd2dce..0bc8a38 100644 --- a/node_modules/webpack/lib/optimize/EnsureChunkConditionsPlugin.js +++ b/node_modules/webpack/lib/optimize/EnsureChunkConditionsPlugin.js @@ -56,7 +56,7 @@ class EnsureChunkConditionsPlugin { // We reached the entrypoint: fail if (chunkGroup.isInitial()) { throw new Error( - "Cannot fulfil chunk condition of " + module.identifier() + `Cannot fulfil chunk condition of ${module.identifier()}` ); } // Try placing in all parents diff --git a/node_modules/webpack/lib/optimize/FlagIncludedChunksPlugin.js b/node_modules/webpack/lib/optimize/FlagIncludedChunksPlugin.js index 38367f2..2e4adb8 100644 --- a/node_modules/webpack/lib/optimize/FlagIncludedChunksPlugin.js +++ b/node_modules/webpack/lib/optimize/FlagIncludedChunksPlugin.js @@ -5,6 +5,8 @@ "use strict"; +const { compareIds } = require("../util/comparators"); + /** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../Chunk").ChunkId} ChunkId */ /** @typedef {import("../Compiler")} Compiler */ @@ -39,10 +41,10 @@ class FlagIncludedChunksPlugin { const modulesCount = compilation.modules.size; // precalculate the modulo values for each bit - const modulo = 1 / Math.pow(1 / modulesCount, 1 / 31); + const modulo = 1 / (1 / modulesCount) ** (1 / 31); const modulos = Array.from( { length: 31 }, - (x, i) => Math.pow(modulo, i) | 0 + (x, i) => (modulo ** i) | 0 ); // iterate all modules to generate bit values @@ -74,7 +76,7 @@ class FlagIncludedChunksPlugin { const chunkAModulesCount = chunkGraph.getNumberOfChunkModules(chunkA); if (chunkAModulesCount === 0) continue; - let bestModule = undefined; + let bestModule; for (const module of chunkGraph.getChunkModulesIterable(chunkA)) { if ( bestModule === undefined || @@ -112,8 +114,12 @@ class FlagIncludedChunksPlugin { for (const m of chunkGraph.getChunkModulesIterable(chunkA)) { if (!chunkGraph.isModuleInChunk(m, chunkB)) continue loopB; } + /** @type {ChunkId[]} */ (chunkB.ids).push(/** @type {ChunkId} */ (chunkA.id)); + // https://github.com/webpack/webpack/issues/18837 + /** @type {ChunkId[]} */ + (chunkB.ids).sort(compareIds); } } } diff --git a/node_modules/webpack/lib/optimize/InnerGraph.js b/node_modules/webpack/lib/optimize/InnerGraph.js index ab6877b..099c5eb 100644 --- a/node_modules/webpack/lib/optimize/InnerGraph.js +++ b/node_modules/webpack/lib/optimize/InnerGraph.js @@ -45,7 +45,7 @@ function getState(parserState) { * @param {ParserState} parserState parser state * @returns {void} */ -exports.bailout = parserState => { +module.exports.bailout = parserState => { parserStateMap.set(parserState, false); }; @@ -53,7 +53,7 @@ exports.bailout = parserState => { * @param {ParserState} parserState parser state * @returns {void} */ -exports.enable = parserState => { +module.exports.enable = parserState => { const state = parserStateMap.get(parserState); if (state === false) { return; @@ -69,9 +69,9 @@ exports.enable = parserState => { * @param {ParserState} parserState parser state * @returns {boolean} true, when enabled */ -exports.isEnabled = parserState => { +module.exports.isEnabled = parserState => { const state = parserStateMap.get(parserState); - return !!state; + return Boolean(state); }; /** @@ -80,7 +80,7 @@ exports.isEnabled = parserState => { * @param {string | TopLevelSymbol | true} usage usage data * @returns {void} */ -exports.addUsage = (state, symbol, usage) => { +module.exports.addUsage = (state, symbol, usage) => { const innerGraphState = getState(state); if (innerGraphState) { @@ -102,13 +102,13 @@ exports.addUsage = (state, symbol, usage) => { * @param {string | TopLevelSymbol | true} usage usage data * @returns {void} */ -exports.addVariableUsage = (parser, name, usage) => { +module.exports.addVariableUsage = (parser, name, usage) => { const symbol = /** @type {TopLevelSymbol} */ ( parser.getTagData(name, topLevelSymbolTag) - ) || exports.tagTopLevelSymbol(parser, name); + ) || module.exports.tagTopLevelSymbol(parser, name); if (symbol) { - exports.addUsage(parser.state, symbol, usage); + module.exports.addUsage(parser.state, symbol, usage); } }; @@ -116,7 +116,7 @@ exports.addVariableUsage = (parser, name, usage) => { * @param {ParserState} state parser state * @returns {void} */ -exports.inferDependencyUsage = state => { +module.exports.inferDependencyUsage = state => { const innerGraphState = getState(state); if (!innerGraphState) { @@ -212,7 +212,7 @@ exports.inferDependencyUsage = state => { * @param {ParserState} state parser state * @param {UsageCallback} onUsageCallback on usage callback */ -exports.onUsage = (state, onUsageCallback) => { +module.exports.onUsage = (state, onUsageCallback) => { const innerGraphState = getState(state); if (innerGraphState) { @@ -238,7 +238,7 @@ exports.onUsage = (state, onUsageCallback) => { * @param {ParserState} state parser state * @param {TopLevelSymbol | undefined} symbol the symbol */ -exports.setTopLevelSymbol = (state, symbol) => { +module.exports.setTopLevelSymbol = (state, symbol) => { const innerGraphState = getState(state); if (innerGraphState) { @@ -250,7 +250,7 @@ exports.setTopLevelSymbol = (state, symbol) => { * @param {ParserState} state parser state * @returns {TopLevelSymbol|void} usage data */ -exports.getTopLevelSymbol = state => { +module.exports.getTopLevelSymbol = state => { const innerGraphState = getState(state); if (innerGraphState) { @@ -263,7 +263,7 @@ exports.getTopLevelSymbol = state => { * @param {string} name name of variable * @returns {TopLevelSymbol | undefined} symbol */ -exports.tagTopLevelSymbol = (parser, name) => { +module.exports.tagTopLevelSymbol = (parser, name) => { const innerGraphState = getState(parser.state); if (!innerGraphState) return; @@ -288,7 +288,7 @@ exports.tagTopLevelSymbol = (parser, name) => { * @param {RuntimeSpec} runtime runtime * @returns {boolean} false, when unused. Otherwise true */ -exports.isDependencyUsedByExports = ( +module.exports.isDependencyUsedByExports = ( dependency, usedByExports, moduleGraph, @@ -316,7 +316,7 @@ exports.isDependencyUsedByExports = ( * @param {ModuleGraph} moduleGraph moduleGraph * @returns {null | false | function(ModuleGraphConnection, RuntimeSpec): ConnectionState} function to determine if the connection is active */ -exports.getDependencyUsedByExportsCondition = ( +module.exports.getDependencyUsedByExportsCondition = ( dependency, usedByExports, moduleGraph @@ -347,5 +347,5 @@ class TopLevelSymbol { } } -exports.TopLevelSymbol = TopLevelSymbol; -exports.topLevelSymbolTag = topLevelSymbolTag; +module.exports.TopLevelSymbol = TopLevelSymbol; +module.exports.topLevelSymbolTag = topLevelSymbolTag; diff --git a/node_modules/webpack/lib/optimize/InnerGraphPlugin.js b/node_modules/webpack/lib/optimize/InnerGraphPlugin.js index caa9a41..7900a41 100644 --- a/node_modules/webpack/lib/optimize/InnerGraphPlugin.js +++ b/node_modules/webpack/lib/optimize/InnerGraphPlugin.js @@ -12,8 +12,9 @@ const { const PureExpressionDependency = require("../dependencies/PureExpressionDependency"); const InnerGraph = require("./InnerGraph"); -/** @typedef {import("estree").ClassDeclaration} ClassDeclarationNode */ -/** @typedef {import("estree").ClassExpression} ClassExpressionNode */ +/** @typedef {import("estree").ClassDeclaration} ClassDeclaration */ +/** @typedef {import("estree").ClassExpression} ClassExpression */ +/** @typedef {import("estree").Expression} Expression */ /** @typedef {import("estree").Node} Node */ /** @typedef {import("estree").VariableDeclarator} VariableDeclaratorNode */ /** @typedef {import("../../declarations/WebpackOptions").JavascriptParserOptions} JavascriptParserOptions */ @@ -53,6 +54,9 @@ class InnerGraphPlugin { * @returns {void} */ const handler = (parser, parserOptions) => { + /** + * @param {Expression} sup sup + */ const onUsageSuper = sup => { InnerGraph.onUsage(parser.state, usedByExports => { switch (usedByExports) { @@ -60,8 +64,11 @@ class InnerGraphPlugin { case true: return; default: { - const dep = new PureExpressionDependency(sup.range); - dep.loc = sup.loc; + const dep = new PureExpressionDependency( + /** @type {Range} */ + (sup.range) + ); + dep.loc = /** @type {DependencyLocation} */ (sup.loc); dep.usedByExports = usedByExports; parser.state.module.addDependency(dep); break; @@ -96,7 +103,7 @@ class InnerGraphPlugin { /** @type {WeakMap} */ const statementPurePart = new WeakMap(); - /** @type {WeakMap} */ + /** @type {WeakMap} */ const classWithTopLevelSymbol = new WeakMap(); /** @type {WeakMap} */ @@ -109,13 +116,16 @@ class InnerGraphPlugin { parser.hooks.preStatement.tap(PLUGIN_NAME, statement => { if (!InnerGraph.isEnabled(parser.state)) return; - if (parser.scope.topLevelScope === true) { - if (statement.type === "FunctionDeclaration") { - const name = statement.id ? statement.id.name : "*default*"; - const fn = InnerGraph.tagTopLevelSymbol(parser, name); - statementWithTopLevelSymbol.set(statement, fn); - return true; - } + if ( + parser.scope.topLevelScope === true && + statement.type === "FunctionDeclaration" + ) { + const name = statement.id ? statement.id.name : "*default*"; + const fn = + /** @type {TopLevelSymbol} */ + (InnerGraph.tagTopLevelSymbol(parser, name)); + statementWithTopLevelSymbol.set(statement, fn); + return true; } }); @@ -131,22 +141,40 @@ class InnerGraphPlugin { ) ) { const name = statement.id ? statement.id.name : "*default*"; - const fn = InnerGraph.tagTopLevelSymbol(parser, name); + const fn = /** @type {TopLevelSymbol} */ ( + InnerGraph.tagTopLevelSymbol(parser, name) + ); classWithTopLevelSymbol.set(statement, fn); return true; } if (statement.type === "ExportDefaultDeclaration") { const name = "*default*"; - const fn = InnerGraph.tagTopLevelSymbol(parser, name); + const fn = + /** @type {TopLevelSymbol} */ + (InnerGraph.tagTopLevelSymbol(parser, name)); const decl = statement.declaration; if ( (decl.type === "ClassExpression" || decl.type === "ClassDeclaration") && - parser.isPure(decl, /** @type {Range} */ (decl.range)[0]) + parser.isPure( + /** @type {ClassExpression | ClassDeclaration} */ + (decl), + /** @type {Range} */ + (decl.range)[0] + ) ) { - classWithTopLevelSymbol.set(decl, fn); + classWithTopLevelSymbol.set( + /** @type {ClassExpression | ClassDeclaration} */ + (decl), + fn + ); } else if ( - parser.isPure(decl, /** @type {Range} */ (statement.range)[0]) + parser.isPure( + /** @type {Expression} */ + (decl), + /** @type {Range} */ + (statement.range)[0] + ) ) { statementWithTopLevelSymbol.set(statement, fn); if ( @@ -154,7 +182,11 @@ class InnerGraphPlugin { !decl.type.endsWith("Declaration") && decl.type !== "Literal" ) { - statementPurePart.set(statement, decl); + statementPurePart.set( + statement, + /** @type {Expression} */ + (decl) + ); } } } @@ -176,7 +208,9 @@ class InnerGraphPlugin { /** @type {Range} */ (decl.id.range)[1] ) ) { - const fn = InnerGraph.tagTopLevelSymbol(parser, name); + const fn = + /** @type {TopLevelSymbol} */ + (InnerGraph.tagTopLevelSymbol(parser, name)); classWithTopLevelSymbol.set(decl.init, fn); } else if ( parser.isPure( @@ -184,7 +218,9 @@ class InnerGraphPlugin { /** @type {Range} */ (decl.id.range)[1] ) ) { - const fn = InnerGraph.tagTopLevelSymbol(parser, name); + const fn = + /** @type {TopLevelSymbol} */ + (InnerGraph.tagTopLevelSymbol(parser, name)); declWithTopLevelSymbol.set(decl, fn); if ( !decl.init.type.endsWith("FunctionExpression") && @@ -332,7 +368,10 @@ class InnerGraphPlugin { if (fn) { InnerGraph.setTopLevelSymbol(parser.state, fn); if (pureDeclarators.has(decl)) { - if (decl.init.type === "ClassExpression") { + if ( + /** @type {ClassExpression} */ + (decl.init).type === "ClassExpression" + ) { if (decl.init.superClass) { onUsageSuper(decl.init.superClass); } @@ -344,7 +383,10 @@ class InnerGraphPlugin { return; default: { const dep = new PureExpressionDependency( - /** @type {Range} */ (decl.init.range) + /** @type {Range} */ ( + /** @type {ClassExpression} */ + (decl.init).range + ) ); dep.loc = /** @type {DependencyLocation} */ (decl.loc); dep.usedByExports = usedByExports; diff --git a/node_modules/webpack/lib/optimize/LimitChunkCountPlugin.js b/node_modules/webpack/lib/optimize/LimitChunkCountPlugin.js index adf13db..9b18c9b 100644 --- a/node_modules/webpack/lib/optimize/LimitChunkCountPlugin.js +++ b/node_modules/webpack/lib/optimize/LimitChunkCountPlugin.js @@ -57,7 +57,7 @@ class LimitChunkCountPlugin { */ constructor(options) { validate(options); - this.options = options; + this.options = /** @type {LimitChunkCountPluginOptions} */ (options); } /** @@ -74,9 +74,7 @@ class LimitChunkCountPlugin { }, chunks => { const chunkGraph = compilation.chunkGraph; - const maxChunks = - /** @type {LimitChunkCountPluginOptions} */ - (options).maxChunks; + const maxChunks = options.maxChunks; if (!maxChunks) return; if (maxChunks < 1) return; if (compilation.chunks.size <= maxChunks) return; @@ -119,7 +117,7 @@ class LimitChunkCountPlugin { /** @type {Map>} */ const combinationsByChunk = new Map(); - orderedChunks.forEach((b, bIdx) => { + for (const [bIdx, b] of orderedChunks.entries()) { // create combination pairs with size and integrated size for (let aIdx = 0; aIdx < bIdx; aIdx++) { const a = orderedChunks[aIdx]; @@ -149,8 +147,7 @@ class LimitChunkCountPlugin { addToSetMap(combinationsByChunk, a, c); addToSetMap(combinationsByChunk, b, c); } - return combinations; - }); + } // list of modified chunks during this run // combinations affected by this change are skipped to allow diff --git a/node_modules/webpack/lib/optimize/MangleExportsPlugin.js b/node_modules/webpack/lib/optimize/MangleExportsPlugin.js index 5e32c25..b1dbff2 100644 --- a/node_modules/webpack/lib/optimize/MangleExportsPlugin.js +++ b/node_modules/webpack/lib/optimize/MangleExportsPlugin.js @@ -149,6 +149,7 @@ class MangleExportsPlugin { constructor(deterministic) { this._deterministic = deterministic; } + /** * Apply the plugin * @param {Compiler} compiler the compiler instance diff --git a/node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js b/node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js index 76cc247..0c7dc4d 100644 --- a/node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js +++ b/node_modules/webpack/lib/optimize/MergeDuplicateChunksPlugin.js @@ -5,7 +5,7 @@ "use strict"; -const { STAGE_BASIC } = require("../OptimizationStages"); +const { STAGE_ADVANCED } = require("../OptimizationStages"); const { runtimeEqual } = require("../util/runtime"); /** @typedef {import("../Compiler")} Compiler */ @@ -22,7 +22,7 @@ class MergeDuplicateChunksPlugin { compilation.hooks.optimizeChunks.tap( { name: "MergeDuplicateChunksPlugin", - stage: STAGE_BASIC + stage: STAGE_ADVANCED }, chunks => { const { chunkGraph, moduleGraph } = compilation; diff --git a/node_modules/webpack/lib/optimize/MinMaxSizeWarning.js b/node_modules/webpack/lib/optimize/MinMaxSizeWarning.js index 42edd94..2cc845e 100644 --- a/node_modules/webpack/lib/optimize/MinMaxSizeWarning.js +++ b/node_modules/webpack/lib/optimize/MinMaxSizeWarning.js @@ -23,7 +23,7 @@ class MinMaxSizeWarning extends WebpackError { : `Cache group ${keys[0]}`; } super( - `SplitChunksPlugin\n` + + "SplitChunksPlugin\n" + `${keysMessage}\n` + `Configured minSize (${SizeFormatHelpers.formatSize(minSize)}) is ` + `bigger than maxSize (${SizeFormatHelpers.formatSize(maxSize)}).\n` + diff --git a/node_modules/webpack/lib/optimize/ModuleConcatenationPlugin.js b/node_modules/webpack/lib/optimize/ModuleConcatenationPlugin.js index 21ab26f..1dc33af 100644 --- a/node_modules/webpack/lib/optimize/ModuleConcatenationPlugin.js +++ b/node_modules/webpack/lib/optimize/ModuleConcatenationPlugin.js @@ -45,19 +45,9 @@ const ConcatenatedModule = require("./ConcatenatedModule"); * @param {string} msg message * @returns {string} formatted message */ -const formatBailoutReason = msg => { - return "ModuleConcatenation bailout: " + msg; -}; +const formatBailoutReason = msg => `ModuleConcatenation bailout: ${msg}`; class ModuleConcatenationPlugin { - /** - * @param {TODO} options options - */ - constructor(options) { - if (typeof options !== "object") options = {}; - this.options = options; - } - /** * Apply the plugin * @param {Compiler} compiler the compiler instance @@ -130,15 +120,14 @@ class ModuleConcatenationPlugin { requestShortener )}${reasonWithPrefix}` ); - } else { - return formatBailoutReason( - `Cannot concat with ${module.readableIdentifier( - requestShortener - )} because of ${problem.readableIdentifier( - requestShortener - )}${reasonWithPrefix}` - ); } + return formatBailoutReason( + `Cannot concat with ${module.readableIdentifier( + requestShortener + )} because of ${problem.readableIdentifier( + requestShortener + )}${reasonWithPrefix}` + ); }; compilation.hooks.optimizeChunkModules.tapAsync( @@ -170,13 +159,13 @@ class ModuleConcatenationPlugin { // Must not be an async module if (moduleGraph.isAsync(module)) { - setBailoutReason(module, `Module is async`); + setBailoutReason(module, "Module is async"); continue; } // Must be in strict mode if (!(/** @type {BuildInfo} */ (module.buildInfo).strict)) { - setBailoutReason(module, `Module is not in strict mode`); + setBailoutReason(module, "Module is not in strict mode"); continue; } @@ -189,11 +178,10 @@ class ModuleConcatenationPlugin { // Exports must be known (and not dynamic) const exportsInfo = moduleGraph.getExportsInfo(module); const relevantExports = exportsInfo.getRelevantExports(undefined); - const unknownReexports = relevantExports.filter(exportInfo => { - return ( + const unknownReexports = relevantExports.filter( + exportInfo => exportInfo.isReexport() && !exportInfo.getTarget(moduleGraph) - ); - }); + ); if (unknownReexports.length > 0) { setBailoutReason( module, @@ -210,9 +198,7 @@ class ModuleConcatenationPlugin { // Root modules must have a static list of exports const unknownProvidedExports = relevantExports.filter( - exportInfo => { - return exportInfo.provided !== true; - } + exportInfo => exportInfo.provided !== true ); if (unknownProvidedExports.length > 0) { setBailoutReason( @@ -245,12 +231,11 @@ class ModuleConcatenationPlugin { // modules with lower depth are more likely suited as roots // this improves performance, because modules already selected as inner are skipped logger.time("sort relevant modules"); - relevantModules.sort((a, b) => { - return ( + relevantModules.sort( + (a, b) => /** @type {number} */ (moduleGraph.getDepth(a)) - /** @type {number} */ (moduleGraph.getDepth(b)) - ); - }); + ); logger.timeEnd("sort relevant modules"); /** @type {Statistics} */ @@ -279,7 +264,7 @@ class ModuleConcatenationPlugin { // TODO reconsider that when it's only used in a different runtime if (usedAsInner.has(currentRoot)) continue; - let chunkRuntime = undefined; + let chunkRuntime; for (const r of chunkGraph.getModuleRuntimes(currentRoot)) { chunkRuntime = mergeRuntimeOwned(chunkRuntime, r); } @@ -376,11 +361,9 @@ class ModuleConcatenationPlugin { // to get the biggest groups possible. Used modules are marked with usedModules // TODO: Allow to reuse existing configuration while trying to add dependencies. // This would improve performance. O(n^2) -> O(n) - logger.time(`sort concat configurations`); - concatConfigurations.sort((a, b) => { - return b.modules.size - a.modules.size; - }); - logger.timeEnd(`sort concat configurations`); + logger.time("sort concat configurations"); + concatConfigurations.sort((a, b) => b.modules.size - a.modules.size); + logger.timeEnd("sort concat configurations"); const usedModules = new Set(); logger.time("create concatenated modules"); @@ -399,7 +382,7 @@ class ModuleConcatenationPlugin { // Create a new ConcatenatedModule ConcatenatedModule.getCompilationHooks(compilation); - let newModule = ConcatenatedModule.create( + const newModule = ConcatenatedModule.create( rootModule, modules, concatConfiguration.runtime, @@ -412,8 +395,10 @@ class ModuleConcatenationPlugin { newModule.build( compiler.options, compilation, - null, - null, + /** @type {TODO} */ + (null), + /** @type {TODO} */ + (null), err => { if (err) { if (!err.module) { @@ -448,15 +433,12 @@ class ModuleConcatenationPlugin { moduleGraph.copyOutgoingModuleConnections( m, newModule, - c => { - return ( - c.originModule === m && - !( - c.dependency instanceof HarmonyImportDependency && - modules.has(c.module) - ) - ); - } + c => + c.originModule === m && + !( + c.dependency instanceof HarmonyImportDependency && + modules.has(c.module) + ) ); // remove module from chunk for (const chunk of chunkGraph.getModuleChunksIterable( @@ -639,11 +621,11 @@ class ModuleConcatenationPlugin { incomingConnections.get(null) || incomingConnections.get(undefined); if (incomingConnectionsFromNonModules) { const activeNonModulesConnections = - incomingConnectionsFromNonModules.filter(connection => { + incomingConnectionsFromNonModules.filter(connection => // We are not interested in inactive connections // or connections without dependency - return connection.isActive(runtime); - }); + connection.isActive(runtime) + ); if (activeNonModulesConnections.length > 0) { /** * @param {RequestShortener} requestShortener request shortener @@ -676,7 +658,7 @@ class ModuleConcatenationPlugin { if (chunkGraph.getNumberOfModuleChunks(originModule) === 0) continue; // We don't care for connections from other runtimes - let originRuntime = undefined; + let originRuntime; for (const r of chunkGraph.getModuleRuntimes(originModule)) { originRuntime = mergeRuntimeOwned(originRuntime, r); } @@ -743,19 +725,20 @@ class ModuleConcatenationPlugin { */ const problem = requestShortener => { const names = Array.from(nonHarmonyConnections) - .map(([originModule, connections]) => { - return `${originModule.readableIdentifier( - requestShortener - )} (referenced with ${Array.from( - new Set( - connections - .map(c => c.dependency && c.dependency.type) - .filter(Boolean) + .map( + ([originModule, connections]) => + `${originModule.readableIdentifier( + requestShortener + )} (referenced with ${Array.from( + new Set( + connections + .map(c => c.dependency && c.dependency.type) + .filter(Boolean) + ) ) - ) - .sort() - .join(", ")})`; - }) + .sort() + .join(", ")})` + ) .sort(); return `Module ${module.readableIdentifier( requestShortener @@ -779,19 +762,15 @@ class ModuleConcatenationPlugin { /** @type {false | RuntimeSpec} */ let currentRuntimeCondition = false; for (const connection of connections) { - const runtimeCondition = filterRuntime(runtime, runtime => { - return connection.isTargetActive(runtime); - }); + const runtimeCondition = filterRuntime(runtime, runtime => + connection.isTargetActive(runtime) + ); if (runtimeCondition === false) continue; if (runtimeCondition === true) continue outer; - if (currentRuntimeCondition !== false) { - currentRuntimeCondition = mergeRuntime( - currentRuntimeCondition, - runtimeCondition - ); - } else { - currentRuntimeCondition = runtimeCondition; - } + currentRuntimeCondition = + currentRuntimeCondition !== false + ? mergeRuntime(currentRuntimeCondition, runtimeCondition) + : runtimeCondition; } if (currentRuntimeCondition !== false) { otherRuntimeConnections.push({ @@ -805,8 +784,8 @@ class ModuleConcatenationPlugin { * @param {RequestShortener} requestShortener request shortener * @returns {string} problem description */ - const problem = requestShortener => { - return `Module ${module.readableIdentifier( + const problem = requestShortener => + `Module ${module.readableIdentifier( requestShortener )} is runtime-dependent referenced by these modules: ${Array.from( otherRuntimeConnections, @@ -819,7 +798,6 @@ class ModuleConcatenationPlugin { /** @type {RuntimeSpec} */ (runtimeCondition) )})` ).join(", ")}`; - }; statistics.incorrectRuntimeCondition++; failureCache.set(module, problem); // cache failures for performance return problem; diff --git a/node_modules/webpack/lib/optimize/RealContentHashPlugin.js b/node_modules/webpack/lib/optimize/RealContentHashPlugin.js index 23a6abd..8b0ab05 100644 --- a/node_modules/webpack/lib/optimize/RealContentHashPlugin.js +++ b/node_modules/webpack/lib/optimize/RealContentHashPlugin.js @@ -61,9 +61,7 @@ const mapAndDeduplicateBuffers = (input, fn) => { * @param {string} str String to quote * @returns {string} Escaped string */ -const quoteMeta = str => { - return str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&"); -}; +const quoteMeta = str => str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&"); const cachedSourceMap = new WeakMap(); @@ -103,7 +101,7 @@ const toCachedSource = source => { /** * @typedef {object} CompilationHooks - * @property {SyncBailHook<[Buffer[], string], string>} updateHash + * @property {SyncBailHook<[Buffer[], string], string | void>} updateHash */ /** @type {WeakMap} */ @@ -215,7 +213,7 @@ class RealContentHashPlugin { [asset.referencedHashes, asset.ownHashes] = await cacheAnalyse.providePromise(name, etag, () => { const referencedHashes = new Set(); - let ownHashes = new Set(); + const ownHashes = new Set(); const inContent = content.match(hashRegExp); if (inContent) { for (const hash of inContent) { @@ -256,7 +254,7 @@ ${referencingAssets }) .join("\n")}`); compilation.errors.push(err); - return undefined; + return; } const hashes = new Set(); for (const { referencedHashes, ownHashes } of assets) { @@ -369,7 +367,7 @@ ${referencingAssets (asset.referencedHashes) ).some(hash => hashToNewHash.get(hash) !== hash) ) { - const identifier = asset.name + "|without-own"; + const identifier = `${asset.name}|without-own`; const etag = getEtag(asset); asset.newSourceWithoutOwn = await cacheGenerate.providePromise( identifier, @@ -410,11 +408,10 @@ ${referencingAssets return asset.newSourceWithoutOwn ? asset.newSourceWithoutOwn.buffer() : asset.source.buffer(); - } else { - return asset.newSource - ? asset.newSource.buffer() - : asset.source.buffer(); } + return asset.newSource + ? asset.newSource.buffer() + : asset.source.buffer(); }); let newHash = hooks.updateHash.call(assetsContent, oldHash); if (!newHash) { diff --git a/node_modules/webpack/lib/optimize/RemoveParentModulesPlugin.js b/node_modules/webpack/lib/optimize/RemoveParentModulesPlugin.js index 14f0391..8c244ec 100644 --- a/node_modules/webpack/lib/optimize/RemoveParentModulesPlugin.js +++ b/node_modules/webpack/lib/optimize/RemoveParentModulesPlugin.js @@ -41,7 +41,7 @@ function* getModulesFromMask(mask, ordinalModules) { // Consider the last 32 bits, since that's what Math.clz32 can handle let last32 = Number(BigInt.asUintN(32, mask)); while (last32 > 0) { - let last = Math.clz32(last32); + const last = Math.clz32(last32); // The number of trailing zeros is the number trimmed off the input mask + 31 - the number of leading zeros // The 32 is baked into the initial value of offset const moduleIndex = offset - last; @@ -148,7 +148,7 @@ class RemoveParentModulesPlugin { availableModulesMask = parentMask; changed = true; } else { - let newMask = availableModulesMask & parentMask; + const newMask = availableModulesMask & parentMask; if (newMask !== availableModulesMask) { changed = true; availableModulesMask = newMask; @@ -177,7 +177,7 @@ class RemoveParentModulesPlugin { chunk.groupsIterable, chunkGroup => availableModulesMap.get(chunkGroup) ); - if (availableModulesSets.some(s => s === undefined)) continue; // No info about this chunk group + if (availableModulesSets.includes(undefined)) continue; // No info about this chunk group const availableModulesMask = intersectMasks(availableModulesSets); const toRemoveMask = chunkMask & availableModulesMask; diff --git a/node_modules/webpack/lib/optimize/SideEffectsFlagPlugin.js b/node_modules/webpack/lib/optimize/SideEffectsFlagPlugin.js index a898cb5..0edb048 100644 --- a/node_modules/webpack/lib/optimize/SideEffectsFlagPlugin.js +++ b/node_modules/webpack/lib/optimize/SideEffectsFlagPlugin.js @@ -23,6 +23,8 @@ const formatLocation = require("../formatLocation"); /** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */ /** @typedef {import("../Module")} Module */ /** @typedef {import("../Module").BuildMeta} BuildMeta */ +/** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */ +/** @typedef {import("../NormalModuleFactory").ModuleSettings} ModuleSettings */ /** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */ /** @typedef {import("../javascript/JavascriptParser").Range} Range */ @@ -57,7 +59,7 @@ const globToRegexp = (glob, cache) => { } const baseRegexp = glob2regexp(glob, { globstar: true, extended: true }); const regexpSource = baseRegexp.source; - const regexp = new RegExp("^(\\./)?" + regexpSource.slice(1)); + const regexp = new RegExp(`^(\\./)?${regexpSource.slice(1)}`); cache.set(glob, regexp); return regexp; }; @@ -71,6 +73,7 @@ class SideEffectsFlagPlugin { constructor(analyseSource = true) { this._analyseSource = analyseSource; } + /** * Apply the plugin * @param {Compiler} compiler the compiler instance @@ -110,11 +113,12 @@ class SideEffectsFlagPlugin { return module; }); normalModuleFactory.hooks.module.tap(PLUGIN_NAME, (module, data) => { - if (typeof data.settings.sideEffects === "boolean") { + const settings = /** @type {ModuleSettings} */ (data.settings); + if (typeof settings.sideEffects === "boolean") { if (module.factoryMeta === undefined) { module.factoryMeta = {}; } - module.factoryMeta.sideEffectFree = !data.settings.sideEffects; + module.factoryMeta.sideEffectFree = !settings.sideEffects; } return module; }); @@ -210,7 +214,8 @@ class SideEffectsFlagPlugin { case "ExportDefaultDeclaration": if ( !parser.isPure( - statement.declaration, + /** @type {TODO} */ + (statement.declaration), /** @type {Range} */ (statement.range)[0] ) ) { @@ -321,7 +326,9 @@ class SideEffectsFlagPlugin { ? [...exportName, ...ids.slice(1)] : ids.slice(1) ); - return moduleGraph.getConnection(dep); + return /** @type {ModuleGraphConnection} */ ( + moduleGraph.getConnection(dep) + ); } ); continue; diff --git a/node_modules/webpack/lib/optimize/SplitChunksPlugin.js b/node_modules/webpack/lib/optimize/SplitChunksPlugin.js index 122b4ef..c37d200 100644 --- a/node_modules/webpack/lib/optimize/SplitChunksPlugin.js +++ b/node_modules/webpack/lib/optimize/SplitChunksPlugin.js @@ -28,11 +28,10 @@ const MinMaxSizeWarning = require("./MinMaxSizeWarning"); /** @typedef {import("../../declarations/WebpackOptions").Output} OutputOptions */ /** @typedef {import("../ChunkGraph")} ChunkGraph */ /** @typedef {import("../ChunkGroup")} ChunkGroup */ -/** @typedef {import("../Compilation").AssetInfo} AssetInfo */ -/** @typedef {import("../Compilation").PathData} PathData */ /** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("../Module")} Module */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../TemplatedPathPlugin").TemplatePath} TemplatePath */ /** @typedef {import("../util/deterministicGrouping").GroupedItems} DeterministicGroupingGroupedItemsForModule */ /** @typedef {import("../util/deterministicGrouping").Options} DeterministicGroupingOptionsForModule */ @@ -67,7 +66,7 @@ const MinMaxSizeWarning = require("./MinMaxSizeWarning"); * @property {number=} minChunks * @property {number=} maxAsyncRequests * @property {number=} maxInitialRequests - * @property {(string | function(PathData, AssetInfo=): string)=} filename + * @property {TemplatePath=} filename * @property {string=} idHint * @property {string=} automaticNameDelimiter * @property {boolean=} reuseExistingChunk @@ -89,7 +88,7 @@ const MinMaxSizeWarning = require("./MinMaxSizeWarning"); * @property {number=} minChunks * @property {number=} maxAsyncRequests * @property {number=} maxInitialRequests - * @property {(string | function(PathData, AssetInfo=): string)=} filename + * @property {TemplatePath=} filename * @property {string=} idHint * @property {string} automaticNameDelimiter * @property {boolean} reuseExistingChunk @@ -144,7 +143,7 @@ const MinMaxSizeWarning = require("./MinMaxSizeWarning"); * @property {number} maxAsyncRequests * @property {number} maxInitialRequests * @property {boolean} hidePathInfo - * @property {string | function(PathData, AssetInfo=): string} filename + * @property {TemplatePath} filename * @property {string} automaticNameDelimiter * @property {GetCacheGroups} getCacheGroups * @property {GetName} getName @@ -167,9 +166,8 @@ const MinMaxSizeWarning = require("./MinMaxSizeWarning"); const defaultGetName = /** @type {GetName} */ (() => {}); const deterministicGroupingForModules = - /** @type {function(DeterministicGroupingOptionsForModule): DeterministicGroupingGroupedItemsForModule[]} */ ( - deterministicGrouping - ); + /** @type {function(DeterministicGroupingOptionsForModule): DeterministicGroupingGroupedItemsForModule[]} */ + (deterministicGrouping); /** @type {WeakMap} */ const getKeyCache = new WeakMap(); @@ -180,11 +178,13 @@ const getKeyCache = new WeakMap(); * @returns {string} hashed filename */ const hashFilename = (name, outputOptions) => { - const digest = /** @type {string} */ ( - createHash(outputOptions.hashFunction) - .update(name) - .digest(outputOptions.hashDigest) - ); + const digest = + /** @type {string} */ + ( + createHash(outputOptions.hashFunction) + .update(name) + .digest(outputOptions.hashDigest) + ); return digest.slice(0, 8); }; @@ -200,10 +200,21 @@ const getRequests = chunk => { return requests; }; +/** + * @template {object} T + * @template {object} R + * @param {T} obj obj an object + * @param {function(T[keyof T], keyof T): T[keyof T]} fn fn + * @returns {T} result + */ const mapObject = (obj, fn) => { const newObj = Object.create(null); for (const key of Object.keys(obj)) { - newObj[key] = fn(obj[key], key); + newObj[key] = fn( + obj[/** @type {keyof T} */ (key)], + /** @type {keyof T} */ + (key) + ); } return newObj; }; @@ -283,13 +294,12 @@ const normalizeSizes = (value, defaultSizeTypes) => { return o; } else if (typeof value === "object" && value !== null) { return { ...value }; - } else { - return {}; } + return {}; }; /** - * @param {...SplitChunksSizes} sizes the sizes + * @param {...(SplitChunksSizes | undefined)} sizes the sizes * @returns {SplitChunksSizes} the merged sizes */ const mergeSizes = (...sizes) => { @@ -324,11 +334,7 @@ const combineSizes = (a, b, combine) => { /** @type {SplitChunksSizes} */ const result = {}; for (const key of aKeys) { - if (bKeys.has(key)) { - result[key] = combine(a[key], b[key]); - } else { - result[key] = a[key]; - } + result[key] = bKeys.has(key) ? combine(a[key], b[key]) : a[key]; } for (const key of bKeys) { if (!aKeys.has(key)) { @@ -425,9 +431,7 @@ const normalizeChunksFilter = chunks => { return ALL_CHUNK_FILTER; } if (chunks instanceof RegExp) { - return chunk => { - return chunk.name ? chunks.test(chunk.name) : false; - }; + return chunk => (chunk.name ? chunks.test(chunk.name) : false); } if (typeof chunks === "function") { return chunks; @@ -500,7 +504,7 @@ const normalizeCacheGroups = (cacheGroups, defaultSizeTypes) => { */ const fn = (module, context) => { /** @type {CacheGroupSource[]} */ - let results = []; + const results = []; for (const fn of handlers) { fn(module, context, results); } @@ -1210,7 +1214,7 @@ module.exports = class SplitChunksPlugin { // Walk through all modules for (const module of compilation.modules) { // Get cache group - let cacheGroups = this.options.getCacheGroups(module, context); + const cacheGroups = this.options.getCacheGroups(module, context); if (!Array.isArray(cacheGroups) || cacheGroups.length === 0) { continue; } @@ -1437,7 +1441,7 @@ module.exports = class SplitChunksPlugin { : item.cacheGroup.maxAsyncRequests ); if ( - isFinite(maxRequests) && + Number.isFinite(maxRequests) && getRequests(chunk) >= maxRequests ) { usedChunks.delete(chunk); @@ -1482,7 +1486,7 @@ module.exports = class SplitChunksPlugin { usedChunks.size === 1 ) { const [chunk] = usedChunks; - let chunkSizes = Object.create(null); + const chunkSizes = Object.create(null); for (const module of chunkGraph.getChunkModulesIterable(chunk)) { if (!item.modules.has(module)) { for (const type of module.getSourceTypes()) { @@ -1522,7 +1526,7 @@ module.exports = class SplitChunksPlugin { // Add a note to the chunk newChunk.chunkReason = - (newChunk.chunkReason ? newChunk.chunkReason + ", " : "") + + (newChunk.chunkReason ? `${newChunk.chunkReason}, ` : "") + (isReusedWithAllModules ? "reused as split chunk" : "split chunk"); diff --git a/node_modules/webpack/lib/performance/SizeLimitsPlugin.js b/node_modules/webpack/lib/performance/SizeLimitsPlugin.js index d41d0d3..b1371a2 100644 --- a/node_modules/webpack/lib/performance/SizeLimitsPlugin.js +++ b/node_modules/webpack/lib/performance/SizeLimitsPlugin.js @@ -127,8 +127,8 @@ module.exports = class SizeLimitsPlugin { if (size > /** @type {number} */ (entrypointSizeLimit)) { entrypointsOverLimit.push({ - name: name, - size: size, + name, + size, files: entry.getFiles().filter(fileFilter) }); isOverSizeLimitSet.add(entry); diff --git a/node_modules/webpack/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js b/node_modules/webpack/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js index fc45695..74eb2bc 100644 --- a/node_modules/webpack/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +++ b/node_modules/webpack/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js @@ -16,7 +16,7 @@ class ChunkPrefetchTriggerRuntimeModule extends RuntimeModule { * @param {Record} chunkMap map from chunk to */ constructor(chunkMap) { - super(`chunk prefetch trigger`, RuntimeModule.STAGE_TRIGGER); + super("chunk prefetch trigger", RuntimeModule.STAGE_TRIGGER); this.chunkMap = chunkMap; } diff --git a/node_modules/webpack/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js b/node_modules/webpack/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js index 0acbff1..8509def 100644 --- a/node_modules/webpack/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +++ b/node_modules/webpack/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js @@ -16,7 +16,7 @@ class ChunkPreloadTriggerRuntimeModule extends RuntimeModule { * @param {Record} chunkMap map from chunk to chunks */ constructor(chunkMap) { - super(`chunk preload trigger`, RuntimeModule.STAGE_TRIGGER); + super("chunk preload trigger", RuntimeModule.STAGE_TRIGGER); this.chunkMap = chunkMap; } diff --git a/node_modules/webpack/lib/rules/BasicEffectRulePlugin.js b/node_modules/webpack/lib/rules/BasicEffectRulePlugin.js index 7043f3b..935716b 100644 --- a/node_modules/webpack/lib/rules/BasicEffectRulePlugin.js +++ b/node_modules/webpack/lib/rules/BasicEffectRulePlugin.js @@ -5,6 +5,7 @@ "use strict"; +/** @typedef {import("../../declarations/WebpackOptions").RuleSetRule} RuleSetRule */ /** @typedef {import("./RuleSetCompiler")} RuleSetCompiler */ class BasicEffectRulePlugin { @@ -28,7 +29,8 @@ class BasicEffectRulePlugin { if (unhandledProperties.has(this.ruleProperty)) { unhandledProperties.delete(this.ruleProperty); - const value = rule[this.ruleProperty]; + const value = + rule[/** @type {keyof RuleSetRule} */ (this.ruleProperty)]; result.effects.push({ type: this.effectType, diff --git a/node_modules/webpack/lib/rules/BasicMatcherRulePlugin.js b/node_modules/webpack/lib/rules/BasicMatcherRulePlugin.js index 7bfd13d..47ac214 100644 --- a/node_modules/webpack/lib/rules/BasicMatcherRulePlugin.js +++ b/node_modules/webpack/lib/rules/BasicMatcherRulePlugin.js @@ -5,6 +5,7 @@ "use strict"; +/** @typedef {import("../../declarations/WebpackOptions").RuleSetRule} RuleSetRule */ /** @typedef {import("./RuleSetCompiler")} RuleSetCompiler */ /** @typedef {import("./RuleSetCompiler").RuleCondition} RuleCondition */ @@ -30,7 +31,8 @@ class BasicMatcherRulePlugin { (path, rule, unhandledProperties, result) => { if (unhandledProperties.has(this.ruleProperty)) { unhandledProperties.delete(this.ruleProperty); - const value = rule[this.ruleProperty]; + const value = + rule[/** @type {keyof RuleSetRule} */ (this.ruleProperty)]; const condition = ruleSetCompiler.compileCondition( `${path}.${this.ruleProperty}`, value diff --git a/node_modules/webpack/lib/rules/ObjectMatcherRulePlugin.js b/node_modules/webpack/lib/rules/ObjectMatcherRulePlugin.js index 11c34fb..984e86f 100644 --- a/node_modules/webpack/lib/rules/ObjectMatcherRulePlugin.js +++ b/node_modules/webpack/lib/rules/ObjectMatcherRulePlugin.js @@ -5,6 +5,7 @@ "use strict"; +/** @typedef {import("../../declarations/WebpackOptions").RuleSetRule} RuleSetRule */ /** @typedef {import("./RuleSetCompiler")} RuleSetCompiler */ /** @typedef {import("./RuleSetCompiler").RuleCondition} RuleCondition */ /** @typedef {import("./RuleSetCompiler").RuleConditionFunction} RuleConditionFunction */ @@ -32,7 +33,9 @@ class ObjectMatcherRulePlugin { (path, rule, unhandledProperties, result) => { if (unhandledProperties.has(ruleProperty)) { unhandledProperties.delete(ruleProperty); - const value = rule[ruleProperty]; + const value = + /** @type {Record} */ + (rule[/** @type {keyof RuleSetRule} */ (ruleProperty)]); for (const property of Object.keys(value)) { const nestedDataProperties = property.split("."); const condition = ruleSetCompiler.compileCondition( diff --git a/node_modules/webpack/lib/rules/RuleSetCompiler.js b/node_modules/webpack/lib/rules/RuleSetCompiler.js index bf2ec76..5e32e13 100644 --- a/node_modules/webpack/lib/rules/RuleSetCompiler.js +++ b/node_modules/webpack/lib/rules/RuleSetCompiler.js @@ -7,7 +7,10 @@ const { SyncHook } = require("tapable"); -/** @typedef {function(string): boolean} RuleConditionFunction */ +/** @typedef {import("../../declarations/WebpackOptions").RuleSetRule} RuleSetRule */ +/** @typedef {import("../../declarations/WebpackOptions").RuleSetRules} RuleSetRules */ + +/** @typedef {function(string | EffectData): boolean} RuleConditionFunction */ /** * @typedef {object} RuleCondition @@ -22,10 +25,14 @@ const { SyncHook } = require("tapable"); * @property {RuleConditionFunction} fn */ +/** + * @typedef {Record} EffectData + */ + /** * @typedef {object} CompiledRule * @property {RuleCondition[]} conditions - * @property {(Effect|function(object): Effect[])[]} effects + * @property {(Effect|function(EffectData): Effect[])[]} effects * @property {CompiledRule[]=} rules * @property {CompiledRule[]=} oneOf */ @@ -39,13 +46,18 @@ const { SyncHook } = require("tapable"); /** * @typedef {object} RuleSet * @property {Map} references map of references in the rule set (may grow over time) - * @property {function(object): Effect[]} exec execute the rule set + * @property {function(EffectData): Effect[]} exec execute the rule set */ +/** @typedef {{ apply: (function(RuleSetCompiler): void) }} RuleSetPlugin */ + class RuleSetCompiler { + /** + * @param {RuleSetPlugin[]} plugins plugins + */ constructor(plugins) { this.hooks = Object.freeze({ - /** @type {SyncHook<[string, object, Set, CompiledRule, Map]>} */ + /** @type {SyncHook<[string, RuleSetRule, Set, CompiledRule, Map]>} */ rule: new SyncHook([ "path", "rule", @@ -62,7 +74,7 @@ class RuleSetCompiler { } /** - * @param {object[]} ruleSet raw user provided rules + * @param {TODO[]} ruleSet raw user provided rules * @returns {RuleSet} compiled RuleSet */ compile(ruleSet) { @@ -70,7 +82,7 @@ class RuleSetCompiler { const rules = this.compileRules("ruleSet", ruleSet, refs); /** - * @param {object} data data passed in + * @param {EffectData} data data passed in * @param {CompiledRule} rule the compiled rule * @param {Effect[]} effects an array where effects are pushed to * @returns {boolean} true, if the rule has matched @@ -79,6 +91,7 @@ class RuleSetCompiler { for (const condition of rule.conditions) { const p = condition.property; if (Array.isArray(p)) { + /** @type {EffectData | string | undefined} */ let current = data; for (const subProperty of p) { if ( @@ -147,25 +160,33 @@ class RuleSetCompiler { /** * @param {string} path current path - * @param {object[]} rules the raw rules provided by user + * @param {RuleSetRules} rules the raw rules provided by user * @param {Map} refs references * @returns {CompiledRule[]} rules */ compileRules(path, rules, refs) { return rules .filter(Boolean) - .map((rule, i) => this.compileRule(`${path}[${i}]`, rule, refs)); + .map((rule, i) => + this.compileRule( + `${path}[${i}]`, + /** @type {RuleSetRule} */ (rule), + refs + ) + ); } /** * @param {string} path current path - * @param {object} rule the raw rule provided by user + * @param {RuleSetRule} rule the raw rule provided by user * @param {Map} refs references * @returns {CompiledRule} normalized and compiled rule for processing */ compileRule(path, rule, refs) { const unhandledProperties = new Set( - Object.keys(rule).filter(key => rule[key] !== undefined) + Object.keys(rule).filter( + key => rule[/** @type {keyof RuleSetRule} */ (key)] !== undefined + ) ); /** @type {CompiledRule} */ @@ -236,7 +257,7 @@ class RuleSetCompiler { matchWhenEmpty: condition(""), fn: condition }; - } catch (err) { + } catch (_err) { throw this.error( path, condition, @@ -303,7 +324,7 @@ class RuleSetCompiler { const fn = matcher.fn; conditions.push({ matchWhenEmpty: !matcher.matchWhenEmpty, - fn: v => !fn(v) + fn: /** @type {RuleConditionFunction} */ (v => !fn(v)) }); } break; @@ -337,12 +358,11 @@ class RuleSetCompiler { }; } else if (conditions.length === 1) { return conditions[0]; - } else { - return { - matchWhenEmpty: conditions.some(c => c.matchWhenEmpty), - fn: v => conditions.some(c => c.fn(v)) - }; } + return { + matchWhenEmpty: conditions.some(c => c.matchWhenEmpty), + fn: v => conditions.some(c => c.fn(v)) + }; } /** @@ -357,12 +377,11 @@ class RuleSetCompiler { }; } else if (conditions.length === 1) { return conditions[0]; - } else { - return { - matchWhenEmpty: conditions.every(c => c.matchWhenEmpty), - fn: v => conditions.every(c => c.fn(v)) - }; } + return { + matchWhenEmpty: conditions.every(c => c.matchWhenEmpty), + fn: v => conditions.every(c => c.fn(v)) + }; } /** diff --git a/node_modules/webpack/lib/rules/UseEffectRulePlugin.js b/node_modules/webpack/lib/rules/UseEffectRulePlugin.js index 811d363..56f2423 100644 --- a/node_modules/webpack/lib/rules/UseEffectRulePlugin.js +++ b/node_modules/webpack/lib/rules/UseEffectRulePlugin.js @@ -7,6 +7,9 @@ const util = require("util"); +/** @typedef {import("../../declarations/WebpackOptions").RuleSetLoader} RuleSetLoader */ +/** @typedef {import("../../declarations/WebpackOptions").RuleSetLoaderOptions} RuleSetLoaderOptions */ +/** @typedef {import("../../declarations/WebpackOptions").RuleSetRule} RuleSetRule */ /** @typedef {import("./RuleSetCompiler")} RuleSetCompiler */ /** @typedef {import("./RuleSetCompiler").Effect} Effect */ @@ -19,6 +22,10 @@ class UseEffectRulePlugin { ruleSetCompiler.hooks.rule.tap( "UseEffectRulePlugin", (path, rule, unhandledProperties, result, references) => { + /** + * @param {keyof RuleSetRule} property property + * @param {string} correctProperty correct property + */ const conflictWith = (property, correctProperty) => { if (unhandledProperties.has(property)) { throw ruleSetCompiler.error( @@ -42,7 +49,6 @@ class UseEffectRulePlugin { const type = enforce ? `use-${enforce}` : "use"; /** - * * @param {string} path options path * @param {string} defaultIdent default ident when none is provided * @param {object} item user provided use value @@ -51,16 +57,14 @@ class UseEffectRulePlugin { const useToEffect = (path, defaultIdent, item) => { if (typeof item === "function") { return data => useToEffectsWithoutIdent(path, item(data)); - } else { - return useToEffectRaw(path, defaultIdent, item); } + return useToEffectRaw(path, defaultIdent, item); }; /** - * * @param {string} path options path * @param {string} defaultIdent default ident when none is provided - * @param {object} item user provided use value + * @param {{ ident?: string, loader?: RuleSetLoader, options?: RuleSetLoaderOptions }} item user provided use value * @returns {Effect} effect */ const useToEffectRaw = (path, defaultIdent, item) => { @@ -73,30 +77,29 @@ class UseEffectRulePlugin { ident: undefined } }; - } else { - const loader = item.loader; - const options = item.options; - let ident = item.ident; - if (options && typeof options === "object") { - if (!ident) ident = defaultIdent; - references.set(ident, options); - } - if (typeof options === "string") { - util.deprecate( - () => {}, - `Using a string as loader options is deprecated (${path}.options)`, - "DEP_WEBPACK_RULE_LOADER_OPTIONS_STRING" - )(); - } - return { - type: enforce ? `use-${enforce}` : "use", - value: { - loader, - options, - ident - } - }; } + const loader = item.loader; + const options = item.options; + let ident = item.ident; + if (options && typeof options === "object") { + if (!ident) ident = defaultIdent; + references.set(ident, options); + } + if (typeof options === "string") { + util.deprecate( + () => {}, + `Using a string as loader options is deprecated (${path}.options)`, + "DEP_WEBPACK_RULE_LOADER_OPTIONS_STRING" + )(); + } + return { + type: enforce ? `use-${enforce}` : "use", + value: { + loader, + options, + ident + } + }; }; /** @@ -132,7 +135,10 @@ class UseEffectRulePlugin { if (typeof use === "function") { result.effects.push(data => - useToEffectsWithoutIdent(`${path}.use`, use(data)) + useToEffectsWithoutIdent( + `${path}.use`, + use(/** @type {TODO} */ (data)) + ) ); } else { for (const effect of useToEffects(`${path}.use`, use)) { @@ -146,7 +152,7 @@ class UseEffectRulePlugin { unhandledProperties.delete("options"); unhandledProperties.delete("enforce"); - const loader = rule.loader; + const loader = /** @type {RuleSetLoader} */ (rule.loader); const options = rule.options; const enforce = rule.enforce; @@ -189,8 +195,6 @@ class UseEffectRulePlugin { } ); } - - useItemToEffects(path, item) {} } module.exports = UseEffectRulePlugin; diff --git a/node_modules/webpack/lib/runtime/AsyncModuleRuntimeModule.js b/node_modules/webpack/lib/runtime/AsyncModuleRuntimeModule.js index 05b3686..79141c7 100644 --- a/node_modules/webpack/lib/runtime/AsyncModuleRuntimeModule.js +++ b/node_modules/webpack/lib/runtime/AsyncModuleRuntimeModule.js @@ -59,7 +59,7 @@ class AsyncModuleRuntimeModule extends HelperRuntimeModule { ])});`, "var obj = {};", `obj[webpackQueues] = ${runtimeTemplate.expressionFunction( - `fn(queue)`, + "fn(queue)", "fn" )};`, "return obj;" diff --git a/node_modules/webpack/lib/runtime/AutoPublicPathRuntimeModule.js b/node_modules/webpack/lib/runtime/AutoPublicPathRuntimeModule.js index 58e1973..74b40a1 100644 --- a/node_modules/webpack/lib/runtime/AutoPublicPathRuntimeModule.js +++ b/node_modules/webpack/lib/runtime/AutoPublicPathRuntimeModule.js @@ -10,6 +10,7 @@ const Template = require("../Template"); const JavascriptModulesPlugin = require("../javascript/JavascriptModulesPlugin"); const { getUndoPath } = require("../util/identifier"); +/** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../Compilation")} Compilation */ class AutoPublicPathRuntimeModule extends RuntimeModule { @@ -25,7 +26,8 @@ class AutoPublicPathRuntimeModule extends RuntimeModule { const { scriptType, importMetaName, path } = compilation.outputOptions; const chunkName = compilation.getPath( JavascriptModulesPlugin.getChunkFilenameTemplate( - this.chunk, + /** @type {Chunk} */ + (this.chunk), compilation.outputOptions ), { @@ -48,8 +50,11 @@ class AutoPublicPathRuntimeModule extends RuntimeModule { `var document = ${RuntimeGlobals.global}.document;`, "if (!scriptUrl && document) {", Template.indent([ - `if (document.currentScript)`, - Template.indent(`scriptUrl = document.currentScript.src;`), + // Technically we could use `document.currentScript instanceof window.HTMLScriptElement`, + // but an attacker could try to inject `` + // and use `` + "if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')", + Template.indent("scriptUrl = document.currentScript.src;"), "if (!scriptUrl) {", Template.indent([ 'var scripts = document.getElementsByTagName("script");', diff --git a/node_modules/webpack/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js b/node_modules/webpack/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js index 1450a38..05b811b 100644 --- a/node_modules/webpack/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +++ b/node_modules/webpack/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js @@ -37,8 +37,8 @@ class CreateFakeNamespaceObjectRuntimeModule extends HelperRuntimeModule { // Note: must be a function (not arrow), because this is used in body! `${fn} = function(value, mode) {`, Template.indent([ - `if(mode & 1) value = this(value);`, - `if(mode & 8) return value;`, + "if(mode & 1) value = this(value);", + "if(mode & 8) return value;", "if(typeof value === 'object' && value) {", Template.indent([ "if((mode & 4) && value.__esModule) return value;", diff --git a/node_modules/webpack/lib/runtime/DefinePropertyGettersRuntimeModule.js b/node_modules/webpack/lib/runtime/DefinePropertyGettersRuntimeModule.js index 5b15408..4dad207 100644 --- a/node_modules/webpack/lib/runtime/DefinePropertyGettersRuntimeModule.js +++ b/node_modules/webpack/lib/runtime/DefinePropertyGettersRuntimeModule.js @@ -25,7 +25,7 @@ class DefinePropertyGettersRuntimeModule extends HelperRuntimeModule { return Template.asString([ "// define getter functions for harmony exports", `${fn} = ${runtimeTemplate.basicFunction("exports, definition", [ - `for(var key in definition) {`, + "for(var key in definition) {", Template.indent([ `if(${RuntimeGlobals.hasOwnProperty}(definition, key) && !${RuntimeGlobals.hasOwnProperty}(exports, key)) {`, Template.indent([ diff --git a/node_modules/webpack/lib/runtime/EnsureChunkRuntimeModule.js b/node_modules/webpack/lib/runtime/EnsureChunkRuntimeModule.js index f1b7949..bc6c0ec 100644 --- a/node_modules/webpack/lib/runtime/EnsureChunkRuntimeModule.js +++ b/node_modules/webpack/lib/runtime/EnsureChunkRuntimeModule.js @@ -51,18 +51,17 @@ class EnsureChunkRuntimeModule extends RuntimeModule { ] )};` ]); - } else { - // There ensureChunk is used somewhere in the tree, so we need an empty requireEnsure - // function. This can happen with multiple entrypoints. - return Template.asString([ - "// The chunk loading function for additional chunks", - "// Since all referenced chunks are already included", - "// in this file, this function is empty here.", - `${RuntimeGlobals.ensureChunk} = ${runtimeTemplate.returningFunction( - "Promise.resolve()" - )};` - ]); } + // There ensureChunk is used somewhere in the tree, so we need an empty requireEnsure + // function. This can happen with multiple entrypoints. + return Template.asString([ + "// The chunk loading function for additional chunks", + "// Since all referenced chunks are already included", + "// in this file, this function is empty here.", + `${RuntimeGlobals.ensureChunk} = ${runtimeTemplate.returningFunction( + "Promise.resolve()" + )};` + ]); } } diff --git a/node_modules/webpack/lib/runtime/GetChunkFilenameRuntimeModule.js b/node_modules/webpack/lib/runtime/GetChunkFilenameRuntimeModule.js index 6dab9cd..3d9b265 100644 --- a/node_modules/webpack/lib/runtime/GetChunkFilenameRuntimeModule.js +++ b/node_modules/webpack/lib/runtime/GetChunkFilenameRuntimeModule.js @@ -13,16 +13,14 @@ const { first } = require("../util/SetHelpers"); /** @typedef {import("../ChunkGraph")} ChunkGraph */ /** @typedef {import("../Compilation")} Compilation */ /** @typedef {import("../Compilation").AssetInfo} AssetInfo */ -/** @typedef {import("../Compilation").PathData} PathData */ - -/** @typedef {function(PathData, AssetInfo=): string} FilenameFunction */ +/** @typedef {import("../TemplatedPathPlugin").TemplatePath} TemplatePath */ class GetChunkFilenameRuntimeModule extends RuntimeModule { /** * @param {string} contentType the contentType to use the content hash for * @param {string} name kind of filename * @param {string} global function name to be assigned - * @param {function(Chunk): string | FilenameFunction} getFilenameForChunk functor to get the filename or function + * @param {function(Chunk): TemplatePath | false} getFilenameForChunk functor to get the filename or function * @param {boolean} allChunks when false, only async chunks are included */ constructor(contentType, name, global, getFilenameForChunk, allChunks) { @@ -44,7 +42,7 @@ class GetChunkFilenameRuntimeModule extends RuntimeModule { const chunk = /** @type {Chunk} */ (this.chunk); const { runtimeTemplate } = compilation; - /** @type {Map>} */ + /** @type {Map>} */ const chunkFilenames = new Map(); let maxChunks = 0; /** @type {string | undefined} */ @@ -74,11 +72,10 @@ class GetChunkFilenameRuntimeModule extends RuntimeModule { if ( chunkFilename.length === - /** @type {string} */ (dynamicFilename).length + /** @type {string} */ (dynamicFilename).length && + chunkFilename < /** @type {string} */ (dynamicFilename) ) { - if (chunkFilename < /** @type {string} */ (dynamicFilename)) { - return; - } + return; } } maxChunks = set.size; @@ -122,7 +119,7 @@ class GetChunkFilenameRuntimeModule extends RuntimeModule { /** * @param {Chunk} c the chunk - * @param {string | FilenameFunction} chunkFilename the filename template for the chunk + * @param {string | TemplatePath} chunkFilename the filename template for the chunk * @returns {void} */ const addStaticUrl = (c, chunkFilename) => { @@ -137,7 +134,7 @@ class GetChunkFilenameRuntimeModule extends RuntimeModule { return '" + chunkId + "'; } const s = JSON.stringify(str); - return s.slice(1, s.length - 1); + return s.slice(1, -1); }; /** * @param {string} value string @@ -231,17 +228,14 @@ class GetChunkFilenameRuntimeModule extends RuntimeModule { * @param {function(Chunk): string | number} fn function from chunk to value * @returns {string} code with static mapping of results of fn for including in quoted string */ - const mapExpr = fn => { - return `" + ${createMap(fn)} + "`; - }; + const mapExpr = fn => `" + ${createMap(fn)} + "`; /** * @param {function(Chunk): string | number} fn function from chunk to value * @returns {function(number): string} function which generates code with static mapping of results of fn for including in quoted string for specific length */ - const mapExprWithLength = fn => length => { - return `" + ${createMap(c => `${fn(c)}`.slice(0, length))} + "`; - }; + const mapExprWithLength = fn => length => + `" + ${createMap(c => `${fn(c)}`.slice(0, length))} + "`; const url = dynamicFilename && @@ -250,7 +244,7 @@ class GetChunkFilenameRuntimeModule extends RuntimeModule { hashWithLength: length => `" + ${RuntimeGlobals.getFullHash}().slice(0, ${length}) + "`, chunk: { - id: `" + chunkId + "`, + id: '" + chunkId + "', hash: mapExpr(c => /** @type {string} */ (c.renderedHash)), hashWithLength: mapExprWithLength( c => /** @type {string} */ (c.renderedHash) diff --git a/node_modules/webpack/lib/runtime/LoadScriptRuntimeModule.js b/node_modules/webpack/lib/runtime/LoadScriptRuntimeModule.js index e8d05d6..b6b2f3e 100644 --- a/node_modules/webpack/lib/runtime/LoadScriptRuntimeModule.js +++ b/node_modules/webpack/lib/runtime/LoadScriptRuntimeModule.js @@ -113,7 +113,7 @@ class LoadScriptRuntimeModule extends HelperRuntimeModule { return Template.asString([ "var inProgress = {};", uniqueName - ? `var dataWebpackPrefix = ${JSON.stringify(uniqueName + ":")};` + ? `var dataWebpackPrefix = ${JSON.stringify(`${uniqueName}:`)};` : "// data-webpack is not used as build has no uniqueName", "// loadScript function to load a script via script tag", `${fn} = ${runtimeTemplate.basicFunction( @@ -145,23 +145,22 @@ class LoadScriptRuntimeModule extends HelperRuntimeModule { ]), "}", "inProgress[url] = [done];", - "var onScriptComplete = " + - runtimeTemplate.basicFunction( - "prev, event", - Template.asString([ - "// avoid mem leaks in IE.", - "script.onerror = script.onload = null;", - "clearTimeout(timeout);", - "var doneFns = inProgress[url];", - "delete inProgress[url];", - "script.parentNode && script.parentNode.removeChild(script);", - `doneFns && doneFns.forEach(${runtimeTemplate.returningFunction( - "fn(event)", - "fn" - )});`, - "if(prev) return prev(event);" - ]) - ), + `var onScriptComplete = ${runtimeTemplate.basicFunction( + "prev, event", + Template.asString([ + "// avoid mem leaks in IE.", + "script.onerror = script.onload = null;", + "clearTimeout(timeout);", + "var doneFns = inProgress[url];", + "delete inProgress[url];", + "script.parentNode && script.parentNode.removeChild(script);", + `doneFns && doneFns.forEach(${runtimeTemplate.returningFunction( + "fn(event)", + "fn" + )});`, + "if(prev) return prev(event);" + ]) + )}`, `var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), ${loadTimeout});`, "script.onerror = onScriptComplete.bind(null, script.onerror);", "script.onload = onScriptComplete.bind(null, script.onload);", diff --git a/node_modules/webpack/lib/runtime/StartupChunkDependenciesRuntimeModule.js b/node_modules/webpack/lib/runtime/StartupChunkDependenciesRuntimeModule.js index 90f3d92..da2ec75 100644 --- a/node_modules/webpack/lib/runtime/StartupChunkDependenciesRuntimeModule.js +++ b/node_modules/webpack/lib/runtime/StartupChunkDependenciesRuntimeModule.js @@ -30,9 +30,7 @@ class StartupChunkDependenciesRuntimeModule extends RuntimeModule { const chunk = /** @type {Chunk} */ (this.chunk); const chunkIds = Array.from( chunkGraph.getChunkEntryDependentChunksIterable(chunk) - ).map(chunk => { - return chunk.id; - }); + ).map(chunk => chunk.id); const compilation = /** @type {Compilation} */ (this.compilation); const { runtimeTemplate } = compilation; return Template.asString([ diff --git a/node_modules/webpack/lib/schemes/DataUriPlugin.js b/node_modules/webpack/lib/schemes/DataUriPlugin.js index 659fee9..06f0d0f 100644 --- a/node_modules/webpack/lib/schemes/DataUriPlugin.js +++ b/node_modules/webpack/lib/schemes/DataUriPlugin.js @@ -11,11 +11,11 @@ const NormalModule = require("../NormalModule"); // data URL scheme: "data:text/javascript;charset=utf-8;base64,some-string" // http://www.ietf.org/rfc/rfc2397.txt -const URIRegEx = /^data:([^;,]+)?((?:;[^;,]+)*?)(?:;(base64))?,(.*)$/i; +const URIRegEx = /^data:([^;,]+)?((?:;[^;,]+)*?)(?:;(base64)?)?,(.*)$/i; /** * @param {string} uri data URI - * @returns {Buffer|null} decoded data + * @returns {Buffer | null} decoded data */ const decodeDataURI = uri => { const match = URIRegEx.exec(uri); diff --git a/node_modules/webpack/lib/schemes/HttpUriPlugin.js b/node_modules/webpack/lib/schemes/HttpUriPlugin.js index a4d49da..510b189 100644 --- a/node_modules/webpack/lib/schemes/HttpUriPlugin.js +++ b/node_modules/webpack/lib/schemes/HttpUriPlugin.js @@ -15,17 +15,37 @@ const createHash = require("../util/createHash"); const { mkdirp, dirname, join } = require("../util/fs"); const memoize = require("../util/memoize"); +/** @typedef {import("http").IncomingMessage} IncomingMessage */ +/** @typedef {import("http").RequestOptions} RequestOptions */ +/** @typedef {import("net").Socket} Socket */ +/** @typedef {import("stream").Readable} Readable */ /** @typedef {import("../../declarations/plugins/schemes/HttpUriPlugin").HttpUriPluginOptions} HttpUriPluginOptions */ /** @typedef {import("../Compiler")} Compiler */ +/** @typedef {import("../FileSystemInfo").Snapshot} Snapshot */ +/** @typedef {import("../Module").BuildInfo} BuildInfo */ +/** @typedef {import("../NormalModuleFactory").ResourceDataWithData} ResourceDataWithData */ +/** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */ const getHttp = memoize(() => require("http")); const getHttps = memoize(() => require("https")); + +/** + * @param {typeof import("http") | typeof import("https")} request request + * @param {string | { toString: () => string } | undefined} proxy proxy + * @returns {function(URL, RequestOptions, function(IncomingMessage): void): EventEmitter} fn + */ const proxyFetch = (request, proxy) => (url, options, callback) => { const eventEmitter = new EventEmitter(); - const doRequest = socket => + + /** + * @param {Socket=} socket socket + * @returns {void} + */ + const doRequest = socket => { request .get(url, { ...options, ...(socket && { socket }) }, callback) .on("error", eventEmitter.emit.bind(eventEmitter, "error")); + }; if (proxy) { const { hostname: host, port } = new URL(proxy); @@ -59,8 +79,9 @@ const proxyFetch = (request, proxy) => (url, options, callback) => { return eventEmitter; }; -/** @type {(() => void)[] | undefined} */ -let inProgressWrite = undefined; +/** @typedef {() => void} InProgressWriteItem */ +/** @type {InProgressWriteItem[] | undefined} */ +let inProgressWrite; const validate = createSchemaValidation( require("../../schemas/plugins/schemes/HttpUriPlugin.check.js"), @@ -87,7 +108,7 @@ const toSafePath = str => const computeIntegrity = content => { const hash = createHash("sha512"); hash.update(content); - const integrity = "sha512-" + hash.digest("base64"); + const integrity = `sha512-${hash.digest("base64")}`; return integrity; }; @@ -138,8 +159,8 @@ const parseCacheControl = (cacheControl, requestTime) => { if (cacheControl) { const parsed = parseKeyValuePairs(cacheControl); if (parsed["no-cache"]) storeCache = storeLock = false; - if (parsed["max-age"] && !isNaN(+parsed["max-age"])) { - validUntil = requestTime + +parsed["max-age"] * 1000; + if (parsed["max-age"] && !Number.isNaN(Number(parsed["max-age"]))) { + validUntil = requestTime + Number(parsed["max-age"]) * 1000; } if (parsed["must-revalidate"]) validUntil = 0; } @@ -157,21 +178,22 @@ const parseCacheControl = (cacheControl, requestTime) => { * @property {string} contentType */ -const areLockfileEntriesEqual = (a, b) => { - return ( - a.resolved === b.resolved && - a.integrity === b.integrity && - a.contentType === b.contentType - ); -}; +/** + * @param {LockfileEntry} a first lockfile entry + * @param {LockfileEntry} b second lockfile entry + * @returns {boolean} true when equal, otherwise false + */ +const areLockfileEntriesEqual = (a, b) => + a.resolved === b.resolved && + a.integrity === b.integrity && + a.contentType === b.contentType; /** * @param {LockfileEntry} entry lockfile entry * @returns {`resolved: ${string}, integrity: ${string}, contentType: ${*}`} stringified entry */ -const entryToString = entry => { - return `resolved: ${entry.resolved}, integrity: ${entry.integrity}, contentType: ${entry.contentType}`; -}; +const entryToString = entry => + `resolved: ${entry.resolved}, integrity: ${entry.integrity}, contentType: ${entry.contentType}`; class Lockfile { constructor() { @@ -233,17 +255,17 @@ class Lockfile { /** * @template R - * @param {function(function(Error=, R=): void): void} fn function - * @returns {function(function((Error | null)=, R=): void): void} cached function + * @param {function(function(Error | null, R=): void): void} fn function + * @returns {function(function(Error | null, R=): void): void} cached function */ const cachedWithoutKey = fn => { let inFlight = false; /** @type {Error | undefined} */ - let cachedError = undefined; + let cachedError; /** @type {R | undefined} */ - let cachedResult = undefined; - /** @type {(function(Error=, R=): void)[] | undefined} */ - let cachedCallbacks = undefined; + let cachedResult; + /** @type {(function(Error| null, R=): void)[] | undefined} */ + let cachedCallbacks; return callback => { if (inFlight) { if (cachedResult !== undefined) return callback(null, cachedResult); @@ -267,14 +289,22 @@ const cachedWithoutKey = fn => { /** * @template T * @template R - * @param {function(T, function(Error=, R=): void): void} fn function - * @param {function(T, function(Error=, R=): void): void=} forceFn function for the second try - * @returns {(function(T, function((Error | null)=, R=): void): void) & { force: function(T, function((Error | null)=, R=): void): void }} cached function + * @param {function(T, function(Error | null, R=): void): void} fn function + * @param {function(T, function(Error | null, R=): void): void=} forceFn function for the second try + * @returns {(function(T, function(Error | null, R=): void): void) & { force: function(T, function(Error | null, R=): void): void }} cached function */ const cachedWithKey = (fn, forceFn = fn) => { - /** @typedef {{ result?: R, error?: Error, callbacks?: (function((Error | null)=, R=): void)[], force?: true }} CacheEntry */ - /** @type {Map} */ + /** + * @template R + * @typedef {{ result?: R, error?: Error, callbacks?: (function(Error | null, R=): void)[], force?: true }} CacheEntry + */ + /** @type {Map>} */ const cache = new Map(); + /** + * @param {T} arg arg + * @param {function(Error | null, R=): void} callback callback + * @returns {void} + */ const resultFn = (arg, callback) => { const cacheEntry = cache.get(arg); if (cacheEntry !== undefined) { @@ -285,7 +315,7 @@ const cachedWithKey = (fn, forceFn = fn) => { else cacheEntry.callbacks.push(callback); return; } - /** @type {CacheEntry} */ + /** @type {CacheEntry} */ const newCacheEntry = { result: undefined, error: undefined, @@ -301,6 +331,11 @@ const cachedWithKey = (fn, forceFn = fn) => { if (callbacks !== undefined) for (const cb of callbacks) cb(err, result); }); }; + /** + * @param {T} arg arg + * @param {function(Error | null, R=): void} callback callback + * @returns {void} + */ resultFn.force = (arg, callback) => { const cacheEntry = cache.get(arg); if (cacheEntry !== undefined && cacheEntry.force) { @@ -311,7 +346,7 @@ const cachedWithKey = (fn, forceFn = fn) => { else cacheEntry.callbacks.push(callback); return; } - /** @type {CacheEntry} */ + /** @type {CacheEntry} */ const newCacheEntry = { result: undefined, error: undefined, @@ -331,6 +366,24 @@ const cachedWithKey = (fn, forceFn = fn) => { return resultFn; }; +/** + * @typedef {object} LockfileCache + * @property {Lockfile} lockfile lockfile + * @property {Snapshot} snapshot snapshot + */ + +/** + * @typedef {object} ResolveContentResult + * @property {LockfileEntry} entry lockfile entry + * @property {Buffer} content content + * @property {boolean} storeLock need store lockfile + */ + +/** @typedef {{ storeCache: boolean, storeLock: boolean, validUntil: number, etag: string | undefined, fresh: boolean }} FetchResultMeta */ +/** @typedef {FetchResultMeta & { location: string }} RedirectFetchResult */ +/** @typedef {FetchResultMeta & { entry: LockfileEntry, content: Buffer }} ContentFetchResult */ +/** @typedef {RedirectFetchResult | ContentFetchResult} FetchResult */ + class HttpUriPlugin { /** * @param {HttpUriPluginOptions} options options @@ -352,7 +405,7 @@ class HttpUriPlugin { */ apply(compiler) { const proxy = - this._proxy || process.env["http_proxy"] || process.env["HTTP_PROXY"]; + this._proxy || process.env.http_proxy || process.env.HTTP_PROXY; const schemes = [ { scheme: "http", @@ -363,11 +416,14 @@ class HttpUriPlugin { fetch: proxyFetch(getHttps(), proxy) } ]; + /** @type {LockfileCache} */ let lockfileCache; compiler.hooks.compilation.tap( "HttpUriPlugin", (compilation, { normalModuleFactory }) => { - const intermediateFs = compiler.intermediateFileSystem; + const intermediateFs = + /** @type {IntermediateFileSystem} */ + (compiler.intermediateFileSystem); const fs = compilation.inputFileSystem; const cache = compilation.getCache("webpack.HttpUriPlugin"); const logger = compilation.getLogger("webpack.HttpUriPlugin"); @@ -385,7 +441,7 @@ class HttpUriPlugin { const cacheLocation = this._cacheLocation !== undefined ? this._cacheLocation - : lockfileLocation + ".data"; + : `${lockfileLocation}.data`; const upgrade = this._upgrade || false; const frozen = this._frozen || false; const hashFunction = "sha512"; @@ -431,7 +487,7 @@ class HttpUriPlugin { const getLockfile = cachedWithoutKey( /** - * @param {function((Error | null)=, Lockfile=): void} callback callback + * @param {function(Error | null, Lockfile=): void} callback callback * @returns {void} */ callback => { @@ -448,14 +504,14 @@ class HttpUriPlugin { [], buffer ? [] : [lockfileLocation], { timestamp: true }, - (err, snapshot) => { + (err, s) => { if (err) return callback(err); const lockfile = buffer ? Lockfile.parse(buffer.toString("utf-8")) : new Lockfile(); lockfileCache = { lockfile, - snapshot + snapshot: /** @type {Snapshot} */ (s) }; callback(null, lockfile); } @@ -477,8 +533,10 @@ class HttpUriPlugin { } ); - /** @type {Map | undefined} */ - let lockfileUpdates = undefined; + /** @typedef {Map} LockfileUpdates */ + + /** @type {LockfileUpdates | undefined} */ + let lockfileUpdates; /** * @param {Lockfile} lockfile lockfile instance @@ -519,6 +577,13 @@ class HttpUriPlugin { } }; + /** + * @param {Lockfile} lockfile lockfile + * @param {string} url url + * @param {ResolveContentResult} result result + * @param {function(Error | null, ResolveContentResult=): void} callback callback + * @returns {void} + */ const storeResult = (lockfile, url, result, callback) => { if (result.storeLock) { storeLockEntry(lockfile, url, result.entry); @@ -541,12 +606,16 @@ class HttpUriPlugin { for (const { scheme, fetch } of schemes) { /** - * * @param {string} url URL - * @param {string} integrity integrity - * @param {function((Error | null)=, { entry: LockfileEntry, content: Buffer, storeLock: boolean }=): void} callback callback + * @param {string | null} integrity integrity + * @param {function(Error | null, ResolveContentResult=): void} callback callback */ const resolveContent = (url, integrity, callback) => { + /** + * @param {Error | null} err error + * @param {TODO} result result result + * @returns {void} + */ const handleResult = (err, result) => { if (err) return callback(err); if ("location" in result) { @@ -555,41 +624,37 @@ class HttpUriPlugin { integrity, (err, innerResult) => { if (err) return callback(err); + const { entry, content, storeLock } = + /** @type {ResolveContentResult} */ (innerResult); callback(null, { - entry: innerResult.entry, - content: innerResult.content, - storeLock: innerResult.storeLock && result.storeLock + entry, + content, + storeLock: storeLock && result.storeLock }); } ); - } else { - if ( - !result.fresh && - integrity && - result.entry.integrity !== integrity && - !verifyIntegrity(result.content, integrity) - ) { - return fetchContent.force(url, handleResult); - } - return callback(null, { - entry: result.entry, - content: result.content, - storeLock: result.storeLock - }); } + if ( + !result.fresh && + integrity && + result.entry.integrity !== integrity && + !verifyIntegrity(result.content, integrity) + ) { + return fetchContent.force(url, handleResult); + } + return callback(null, { + entry: result.entry, + content: result.content, + storeLock: result.storeLock + }); }; fetchContent(url, handleResult); }; - /** @typedef {{ storeCache: boolean, storeLock: boolean, validUntil: number, etag: string | undefined, fresh: boolean }} FetchResultMeta */ - /** @typedef {FetchResultMeta & { location: string }} RedirectFetchResult */ - /** @typedef {FetchResultMeta & { entry: LockfileEntry, content: Buffer }} ContentFetchResult */ - /** @typedef {RedirectFetchResult | ContentFetchResult} FetchResult */ - /** * @param {string} url URL - * @param {FetchResult | RedirectFetchResult} cachedResult result from cache - * @param {function((Error | null)=, FetchResult=): void} callback callback + * @param {FetchResult | RedirectFetchResult | undefined} cachedResult result from cache + * @param {function(Error | null, FetchResult=): void} callback callback * @returns {void} */ const fetchContentRaw = (url, cachedResult, callback) => { @@ -600,14 +665,14 @@ class HttpUriPlugin { headers: { "accept-encoding": "gzip, deflate, br", "user-agent": "webpack", - "if-none-match": cachedResult - ? cachedResult.etag || null - : null + "if-none-match": /** @type {TODO} */ ( + cachedResult ? cachedResult.etag || null : null + ) } }, res => { - const etag = res.headers["etag"]; - const location = res.headers["location"]; + const etag = res.headers.etag; + const location = res.headers.location; const cacheControl = res.headers["cache-control"]; const { storeLock, storeCache, validUntil } = parseCacheControl( cacheControl, @@ -662,23 +727,21 @@ class HttpUriPlugin { ); }; if (res.statusCode === 304) { + const result = /** @type {FetchResult} */ (cachedResult); if ( - cachedResult.validUntil < validUntil || - cachedResult.storeLock !== storeLock || - cachedResult.storeCache !== storeCache || - cachedResult.etag !== etag + result.validUntil < validUntil || + result.storeLock !== storeLock || + result.storeCache !== storeCache || + result.etag !== etag ) { - return finishWith(cachedResult); - } else { - logger.debug(`GET ${url} [${res.statusCode}] (unchanged)`); - return callback(null, { - ...cachedResult, - fresh: true - }); + return finishWith(result); } + logger.debug(`GET ${url} [${res.statusCode}] (unchanged)`); + return callback(null, { ...result, fresh: true }); } if ( location && + res.statusCode && res.statusCode >= 301 && res.statusCode <= 308 ) { @@ -695,22 +758,23 @@ class HttpUriPlugin { cachedResult.etag !== etag ) { return finishWith(result); - } else { - logger.debug(`GET ${url} [${res.statusCode}] (unchanged)`); - return callback(null, { - ...result, - fresh: true, - storeLock, - storeCache, - validUntil, - etag - }); } + logger.debug(`GET ${url} [${res.statusCode}] (unchanged)`); + return callback(null, { + ...result, + fresh: true, + storeLock, + storeCache, + validUntil, + etag + }); } const contentType = res.headers["content-type"] || ""; + /** @type {Buffer[]} */ const bufferArr = []; const contentEncoding = res.headers["content-encoding"]; + /** @type {Readable} */ let stream = res; if (contentEncoding === "gzip") { stream = stream.pipe(createGunzip()); @@ -762,9 +826,10 @@ class HttpUriPlugin { const fetchContent = cachedWithKey( /** * @param {string} url URL - * @param {function((Error | null)=, { validUntil: number, etag?: string, entry: LockfileEntry, content: Buffer, fresh: boolean } | { validUntil: number, etag?: string, location: string, fresh: boolean }=): void} callback callback + * @param {function(Error | null, { validUntil: number, etag?: string, entry: LockfileEntry, content: Buffer, fresh: boolean } | { validUntil: number, etag?: string, location: string, fresh: boolean }=): void} callback callback * @returns {void} - */ (url, callback) => { + */ + (url, callback) => { cache.get(url, null, (err, cachedResult) => { if (err) return callback(err); if (cachedResult) { @@ -777,25 +842,32 @@ class HttpUriPlugin { (url, callback) => fetchContentRaw(url, undefined, callback) ); + /** + * @param {string} uri uri + * @returns {boolean} true when allowed, otherwise false + */ const isAllowed = uri => { for (const allowed of allowedUris) { if (typeof allowed === "string") { if (uri.startsWith(allowed)) return true; } else if (typeof allowed === "function") { if (allowed(uri)) return true; - } else { - if (allowed.test(uri)) return true; + } else if (allowed.test(uri)) { + return true; } } return false; }; + /** @typedef {{ entry: LockfileEntry, content: Buffer }} Info */ + const getInfo = cachedWithKey( /** * @param {string} url the url - * @param {function((Error | null)=, { entry: LockfileEntry, content: Buffer }=): void} callback callback + * @param {function(Error | null, Info=): void} callback callback * @returns {void} */ + // eslint-disable-next-line no-loop-func (url, callback) => { if (!isAllowed(url)) { return callback( @@ -806,8 +878,9 @@ class HttpUriPlugin { ) ); } - getLockfile((err, lockfile) => { + getLockfile((err, _lockfile) => { if (err) return callback(err); + const lockfile = /** @type {Lockfile} */ (_lockfile); const entryOrString = lockfile.entries.get(url); if (!entryOrString) { if (frozen) { @@ -819,14 +892,24 @@ class HttpUriPlugin { } resolveContent(url, null, (err, result) => { if (err) return callback(err); - storeResult(lockfile, url, result, callback); + storeResult( + /** @type {Lockfile} */ + (lockfile), + url, + /** @type {ResolveContentResult} */ + (result), + callback + ); }); return; } if (typeof entryOrString === "string") { const entryTag = entryOrString; - resolveContent(url, null, (err, result) => { + resolveContent(url, null, (err, _result) => { if (err) return callback(err); + const result = + /** @type {ResolveContentResult} */ + (_result); if (!result.storeLock || entryTag === "ignore") return callback(null, result); if (frozen) { @@ -850,8 +933,11 @@ Remove this line from the lockfile to force upgrading.` return; } let entry = entryOrString; + /** + * @param {Buffer=} lockedContent locked content + */ const doFetch = lockedContent => { - resolveContent(url, entry.integrity, (err, result) => { + resolveContent(url, entry.integrity, (err, _result) => { if (err) { if (lockedContent) { logger.warn( @@ -865,6 +951,9 @@ Remove this line from the lockfile to force upgrading.` } return callback(err); } + const result = + /** @type {ResolveContentResult} */ + (_result); if (!result.storeLock) { // When the lockfile entry should be no-cache // we need to update the lockfile @@ -919,12 +1008,16 @@ Remove this line from the lockfile to force upgrading.` const key = getCacheKey(entry.resolved); const filePath = join(intermediateFs, cacheLocation, key); fs.readFile(filePath, (err, result) => { - const content = /** @type {Buffer} */ (result); if (err) { if (err.code === "ENOENT") return doFetch(); return callback(err); } - const continueWithCachedContent = result => { + const content = /** @type {Buffer} */ (result); + /** + * @param {Buffer | undefined} _result result + * @returns {void} + */ + const continueWithCachedContent = _result => { if (!upgrade) { // When not in upgrade mode, we accept the result from the lockfile cache return callback(null, { entry, content }); @@ -932,6 +1025,7 @@ Remove this line from the lockfile to force upgrading.` return doFetch(content); }; if (!verifyIntegrity(content, entry.integrity)) { + /** @type {Buffer | undefined} */ let contentWithChangedEol; let isEolChanged = false; try { @@ -942,7 +1036,7 @@ Remove this line from the lockfile to force upgrading.` contentWithChangedEol, entry.integrity ); - } catch (e) { + } catch (_err) { // ignore } if (isEolChanged) { @@ -969,10 +1063,14 @@ This will avoid that the end of line sequence is changed by git on Windows.`; ); intermediateFs.writeFile( filePath, - contentWithChangedEol, + /** @type {Buffer} */ + (contentWithChangedEol), err => { if (err) return callback(err); - continueWithCachedContent(contentWithChangedEol); + continueWithCachedContent( + /** @type {Buffer} */ + (contentWithChangedEol) + ); } ); return; @@ -994,15 +1092,14 @@ Lockfile corrupted (${ Run build with un-frozen lockfile to automatically fix lockfile.` ) ); - } else { - // "fix" the lockfile entry to the correct integrity - // the content has priority over the integrity value - entry = { - ...entry, - integrity: computeIntegrity(content) - }; - storeLockEntry(lockfile, url, entry); } + // "fix" the lockfile entry to the correct integrity + // the content has priority over the integrity value + entry = { + ...entry, + integrity: computeIntegrity(content) + }; + storeLockEntry(lockfile, url, entry); } continueWithCachedContent(result); }); @@ -1013,9 +1110,15 @@ Run build with un-frozen lockfile to automatically fix lockfile.` } ); + /** + * @param {URL} url url + * @param {ResourceDataWithData} resourceData resource data + * @param {function(Error | null, true | void): void} callback callback + */ const respondWithUrlModule = (url, resourceData, callback) => { - getInfo(url.href, (err, result) => { + getInfo(url.href, (err, _result) => { if (err) return callback(err); + const result = /** @type {Info} */ (_result); resourceData.resource = url.href; resourceData.path = url.origin + url.pathname; resourceData.query = url.search; @@ -1051,7 +1154,7 @@ Run build with un-frozen lockfile to automatically fix lockfile.` return callback(); } respondWithUrlModule( - new URL(resourceData.resource, data.context + "/"), + new URL(resourceData.resource, `${data.context}/`), resourceData, callback ); @@ -1059,13 +1162,15 @@ Run build with un-frozen lockfile to automatically fix lockfile.` const hooks = NormalModule.getCompilationHooks(compilation); hooks.readResourceForScheme .for(scheme) - .tapAsync("HttpUriPlugin", (resource, module, callback) => { - return getInfo(resource, (err, result) => { + .tapAsync("HttpUriPlugin", (resource, module, callback) => + getInfo(resource, (err, _result) => { if (err) return callback(err); - module.buildInfo.resourceIntegrity = result.entry.integrity; + const result = /** @type {Info} */ (_result); + /** @type {BuildInfo} */ + (module.buildInfo).resourceIntegrity = result.entry.integrity; callback(null, result.content); - }); - }); + }) + ); hooks.needBuild.tapAsync( "HttpUriPlugin", (module, context, callback) => { @@ -1073,11 +1178,13 @@ Run build with un-frozen lockfile to automatically fix lockfile.` module.resource && module.resource.startsWith(`${scheme}://`) ) { - getInfo(module.resource, (err, result) => { + getInfo(module.resource, (err, _result) => { if (err) return callback(err); + const result = /** @type {Info} */ (_result); if ( result.entry.integrity !== - module.buildInfo.resourceIntegrity + /** @type {BuildInfo} */ + (module.buildInfo).resourceIntegrity ) { return callback(null, true); } @@ -1103,7 +1210,9 @@ Run build with un-frozen lockfile to automatically fix lockfile.` ); const writeDone = () => { - const nextOperation = inProgressWrite.shift(); + const nextOperation = + /** @type {InProgressWriteItem[]} */ + (inProgressWrite).shift(); if (nextOperation) { nextOperation(); } else { @@ -1119,19 +1228,25 @@ Run build with un-frozen lockfile to automatically fix lockfile.` const lockfile = buffer ? Lockfile.parse(buffer.toString("utf-8")) : new Lockfile(); - for (const [key, value] of lockfileUpdates) { + for (const [key, value] of /** @type {LockfileUpdates} */ ( + lockfileUpdates + )) { lockfile.entries.set(key, value); } intermediateFs.writeFile(tempFile, lockfile.toString(), err => { if (err) { writeDone(); - return intermediateFs.unlink(tempFile, () => callback(err)); + return ( + /** @type {NonNullable} */ + (intermediateFs.unlink)(tempFile, () => callback(err)) + ); } intermediateFs.rename(tempFile, lockfileLocation, err => { if (err) { writeDone(); - return intermediateFs.unlink(tempFile, () => - callback(err) + return ( + /** @type {NonNullable} */ + (intermediateFs.unlink)(tempFile, () => callback(err)) ); } writeDone(); diff --git a/node_modules/webpack/lib/serialization/BinaryMiddleware.js b/node_modules/webpack/lib/serialization/BinaryMiddleware.js index 4074836..2db7487 100644 --- a/node_modules/webpack/lib/serialization/BinaryMiddleware.js +++ b/node_modules/webpack/lib/serialization/BinaryMiddleware.js @@ -135,6 +135,8 @@ const identifyBigInt = n => { return 2; }; +/** @typedef {TODO} Context */ + /** * @typedef {PrimitiveSerializableType[]} DeserializedType * @typedef {BufferSerializableType[]} SerializedType @@ -150,6 +152,11 @@ class BinaryMiddleware extends SerializerMiddleware { return this._serialize(data, context); } + /** + * @param {function(): Promise | any} fn lazy function + * @param {TODO} context serialize function + * @returns {function(): Promise | any} new lazy + */ _serializeLazy(fn, context) { return SerializerMiddleware.serializeLazy(fn, data => this._serialize(data, context) @@ -158,7 +165,7 @@ class BinaryMiddleware extends SerializerMiddleware { /** * @param {DeserializedType} data data - * @param {object} context context object + * @param {TODO} context context object * @param {{ leftOverBuffer: Buffer | null, allocationSize: number, increaseCounter: number }} allocationScope allocation scope * @returns {SerializedType} serialized data */ @@ -171,17 +178,20 @@ class BinaryMiddleware extends SerializerMiddleware { leftOverBuffer: null } ) { - /** @type {Buffer} */ + /** @type {Buffer | null} */ let leftOverBuffer = null; /** @type {BufferSerializableType[]} */ let buffers = []; - /** @type {Buffer} */ + /** @type {Buffer | null} */ let currentBuffer = allocationScope ? allocationScope.leftOverBuffer : null; allocationScope.leftOverBuffer = null; let currentPosition = 0; if (currentBuffer === null) { currentBuffer = Buffer.allocUnsafe(allocationScope.allocationSize); } + /** + * @param {number} bytesNeeded bytes needed + */ const allocate = bytesNeeded => { if (currentBuffer !== null) { if (currentBuffer.length - currentPosition >= bytesNeeded) return; @@ -233,13 +243,15 @@ class BinaryMiddleware extends SerializerMiddleware { * @param {number} byte byte */ const writeU8 = byte => { - currentBuffer.writeUInt8(byte, currentPosition++); + /** @type {Buffer} */ + (currentBuffer).writeUInt8(byte, currentPosition++); }; /** * @param {number} ui32 ui32 */ const writeU32 = ui32 => { - currentBuffer.writeUInt32LE(ui32, currentPosition); + /** @type {Buffer} */ + (currentBuffer).writeUInt32LE(ui32, currentPosition); currentPosition += 4; }; /** @type {number[]} */ @@ -251,8 +263,8 @@ class BinaryMiddleware extends SerializerMiddleware { * @returns {number} size */ const measureEnd = () => { - const oldPos = measureStack.pop(); - const buffersIndex = measureStack.pop(); + const oldPos = /** @type {number} */ (measureStack.pop()); + const buffersIndex = /** @type {number} */ (measureStack.pop()); let size = currentPosition - oldPos; for (let i = buffersIndex; i < buffers.length; i++) { size += buffers[i].length; @@ -264,7 +276,7 @@ class BinaryMiddleware extends SerializerMiddleware { switch (typeof thing) { case "function": { if (!SerializerMiddleware.isLazy(thing)) - throw new Error("Unexpected function " + thing); + throw new Error(`Unexpected function ${thing}`); /** @type {SerializedType | (() => SerializedType)} */ let serializedData = SerializerMiddleware.getLazySerializedValue(thing); @@ -287,12 +299,10 @@ class BinaryMiddleware extends SerializerMiddleware { buffers.push(serializedData); break; } - } else { - if (typeof serializedData === "function") { - flush(); - buffers.push(serializedData); - break; - } + } else if (typeof serializedData === "function") { + flush(); + buffers.push(serializedData); + break; } /** @type {number[]} */ const lengths = []; @@ -612,6 +622,11 @@ class BinaryMiddleware extends SerializerMiddleware { } break; } + default: { + throw new Error( + `Unknown typeof "${typeof thing}" in binary middleware` + ); + } } } flush(); @@ -621,9 +636,9 @@ class BinaryMiddleware extends SerializerMiddleware { // avoid leaking memory currentBuffer = null; leftOverBuffer = null; - allocationScope = undefined; + allocationScope = /** @type {EXPECTED_ANY} */ (undefined); const _buffers = buffers; - buffers = undefined; + buffers = /** @type {EXPECTED_ANY} */ (undefined); return _buffers; } @@ -653,19 +668,21 @@ class BinaryMiddleware extends SerializerMiddleware { /** * @param {SerializedType} data data - * @param {object} context context object + * @param {TODO} context context object * @returns {DeserializedType} deserialized data */ _deserialize(data, context) { let currentDataItem = 0; + /** @type {BufferSerializableType | null} */ let currentBuffer = data[0]; let currentIsBuffer = Buffer.isBuffer(currentBuffer); let currentPosition = 0; + /** @type {(x: Buffer) => Buffer} */ const retainedBuffer = context.retainedBuffer || (x => x); const checkOverflow = () => { - if (currentPosition >= currentBuffer.length) { + if (currentPosition >= /** @type {Buffer} */ (currentBuffer).length) { currentPosition = 0; currentDataItem++; currentBuffer = @@ -673,9 +690,13 @@ class BinaryMiddleware extends SerializerMiddleware { currentIsBuffer = Buffer.isBuffer(currentBuffer); } }; - const isInCurrentBuffer = n => { - return currentIsBuffer && n + currentPosition <= currentBuffer.length; - }; + /** + * @param {number} n n + * @returns {boolean} true when in current buffer, otherwise false + */ + const isInCurrentBuffer = n => + currentIsBuffer && + n + currentPosition <= /** @type {Buffer} */ (currentBuffer).length; const ensureBuffer = () => { if (!currentIsBuffer) { throw new Error( @@ -692,12 +713,13 @@ class BinaryMiddleware extends SerializerMiddleware { */ const read = n => { ensureBuffer(); - const rem = currentBuffer.length - currentPosition; + const rem = + /** @type {Buffer} */ (currentBuffer).length - currentPosition; if (rem < n) { const buffers = [read(rem)]; n -= rem; ensureBuffer(); - while (currentBuffer.length < n) { + while (/** @type {Buffer} */ (currentBuffer).length < n) { const b = /** @type {Buffer} */ (currentBuffer); buffers.push(b); n -= b.length; @@ -723,7 +745,9 @@ class BinaryMiddleware extends SerializerMiddleware { */ const readUpTo = n => { ensureBuffer(); - const rem = currentBuffer.length - currentPosition; + const rem = + /** @type {Buffer} */ + (currentBuffer).length - currentPosition; if (rem < n) { n = rem; } @@ -742,9 +766,9 @@ class BinaryMiddleware extends SerializerMiddleware { * There is no need to check remaining buffer size here * since {@link checkOverflow} guarantees at least one byte remaining */ - const byte = /** @type {Buffer} */ (currentBuffer).readUInt8( - currentPosition - ); + const byte = + /** @type {Buffer} */ + (currentBuffer).readUInt8(currentPosition); currentPosition += I8_SIZE; checkOverflow(); return byte; @@ -752,9 +776,11 @@ class BinaryMiddleware extends SerializerMiddleware { /** * @returns {number} U32 */ - const readU32 = () => { - return read(I32_SIZE).readUInt32LE(0); - }; + const readU32 = () => read(I32_SIZE).readUInt32LE(0); + /** + * @param {number} data data + * @param {number} n n + */ const readBits = (data, n) => { let mask = 1; while (n !== 0) { @@ -883,7 +909,8 @@ class BinaryMiddleware extends SerializerMiddleware { const len = readU32(); if (isInCurrentBuffer(len) && currentPosition + len < 0x7fffffff) { result.push( - currentBuffer.toString( + /** @type {Buffer} */ + (currentBuffer).toString( undefined, currentPosition, currentPosition + len @@ -901,7 +928,8 @@ class BinaryMiddleware extends SerializerMiddleware { return () => { if (currentIsBuffer && currentPosition < 0x7ffffffe) { result.push( - currentBuffer.toString( + /** @type {Buffer} */ + (currentBuffer).toString( "latin1", currentPosition, currentPosition + 1 @@ -974,11 +1002,13 @@ class BinaryMiddleware extends SerializerMiddleware { return () => { const len = readU32(); if (isInCurrentBuffer(len) && currentPosition + len < 0x7fffffff) { - const value = currentBuffer.toString( - undefined, - currentPosition, - currentPosition + len - ); + const value = + /** @type {Buffer} */ + (currentBuffer).toString( + undefined, + currentPosition, + currentPosition + len + ); result.push(BigInt(value)); currentPosition += len; @@ -1000,7 +1030,8 @@ class BinaryMiddleware extends SerializerMiddleware { currentPosition + len < 0x7fffffff ) { result.push( - currentBuffer.toString( + /** @type {Buffer} */ + (currentBuffer).toString( "latin1", currentPosition, currentPosition + len @@ -1075,13 +1106,10 @@ class BinaryMiddleware extends SerializerMiddleware { } } }; - } else { - return () => { - throw new Error( - `Unexpected header byte 0x${header.toString(16)}` - ); - }; } + return () => { + throw new Error(`Unexpected header byte 0x${header.toString(16)}`); + }; } }); @@ -1101,8 +1129,9 @@ class BinaryMiddleware extends SerializerMiddleware { } // avoid leaking memory in context + // eslint-disable-next-line prefer-const let _result = result; - result = undefined; + result = /** @type {EXPECTED_ANY} */ (undefined); return _result; } } diff --git a/node_modules/webpack/lib/serialization/DateObjectSerializer.js b/node_modules/webpack/lib/serialization/DateObjectSerializer.js index c8e53cc..c69ccfe 100644 --- a/node_modules/webpack/lib/serialization/DateObjectSerializer.js +++ b/node_modules/webpack/lib/serialization/DateObjectSerializer.js @@ -15,6 +15,7 @@ class DateObjectSerializer { serialize(obj, context) { context.write(obj.getTime()); } + /** * @param {ObjectDeserializerContext} context context * @returns {Date} date diff --git a/node_modules/webpack/lib/serialization/ErrorObjectSerializer.js b/node_modules/webpack/lib/serialization/ErrorObjectSerializer.js index 40f47fc..b086915 100644 --- a/node_modules/webpack/lib/serialization/ErrorObjectSerializer.js +++ b/node_modules/webpack/lib/serialization/ErrorObjectSerializer.js @@ -14,6 +14,7 @@ class ErrorObjectSerializer { constructor(Type) { this.Type = Type; } + /** * @param {Error | EvalError | RangeError | ReferenceError | SyntaxError | TypeError} obj error * @param {ObjectSerializerContext} context context @@ -23,6 +24,7 @@ class ErrorObjectSerializer { context.write(obj.stack); context.write(/** @type {Error & { cause: "unknown" }} */ (obj).cause); } + /** * @param {ObjectDeserializerContext} context context * @returns {Error | EvalError | RangeError | ReferenceError | SyntaxError | TypeError} error diff --git a/node_modules/webpack/lib/serialization/FileMiddleware.js b/node_modules/webpack/lib/serialization/FileMiddleware.js index ef5e060..b8de8a9 100644 --- a/node_modules/webpack/lib/serialization/FileMiddleware.js +++ b/node_modules/webpack/lib/serialization/FileMiddleware.js @@ -19,6 +19,7 @@ const memoize = require("../util/memoize"); const SerializerMiddleware = require("./SerializerMiddleware"); /** @typedef {typeof import("../util/Hash")} Hash */ +/** @typedef {import("../util/fs").IStats} IStats */ /** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */ /** @typedef {import("./types").BufferSerializableType} BufferSerializableType */ @@ -57,6 +58,7 @@ const hashForName = (buffers, hashFunction) => { const COMPRESSION_CHUNK_SIZE = 100 * 1024 * 1024; const DECOMPRESSION_CHUNK_SIZE = 100 * 1024 * 1024; +/** @type {function(Buffer, number, number): void} */ const writeUInt64LE = Buffer.prototype.writeBigUInt64LE ? (buf, value, offset) => { buf.writeBigUInt64LE(BigInt(value), offset); @@ -68,10 +70,9 @@ const writeUInt64LE = Buffer.prototype.writeBigUInt64LE buf.writeUInt32LE(high, offset + 4); }; +/** @type {function(Buffer, number): void} */ const readUInt64LE = Buffer.prototype.readBigUInt64LE - ? (buf, offset) => { - return Number(buf.readBigUInt64LE(offset)); - } + ? (buf, offset) => Number(buf.readBigUInt64LE(offset)) : (buf, offset) => { const low = buf.readUInt32LE(offset); const high = buf.readUInt32LE(offset + 4); @@ -82,7 +83,7 @@ const readUInt64LE = Buffer.prototype.readBigUInt64LE * @typedef {object} SerializeResult * @property {string | false} name * @property {number} size - * @property {Promise=} backgroundJob + * @property {Promise=} backgroundJob */ /** @@ -104,8 +105,8 @@ const serialize = async ( const processedData = []; /** @type {WeakMap>} */ const resultToLazy = new WeakMap(); - /** @type {Buffer[]} */ - let lastBuffers = undefined; + /** @type {Buffer[] | undefined} */ + let lastBuffers; for (const item of await data) { if (typeof item === "function") { if (!SerializerMiddleware.isLazy(item)) @@ -163,9 +164,8 @@ const serialize = async ( const backgroundJobs = []; const resolvedData = ( await Promise.all( - /** @type {Promise[]} */ ( - processedData - ) + /** @type {Promise[]} */ + (processedData) ) ).map(item => { if (Array.isArray(item) || Buffer.isBuffer(item)) return item; @@ -195,7 +195,7 @@ const serialize = async ( } else if (item) { lengths.push(-item.length); } else { - throw new Error("Unexpected falsy value in resolved data " + item); + throw new Error(`Unexpected falsy value in resolved data ${item}`); } } const header = Buffer.allocUnsafe(8 + lengths.length * 4); @@ -237,12 +237,12 @@ const serialize = async ( */ const deserialize = async (middleware, name, readFile) => { const contents = await readFile(name); - if (contents.length === 0) throw new Error("Empty file " + name); + if (contents.length === 0) throw new Error(`Empty file ${name}`); let contentsIndex = 0; let contentItem = contents[0]; let contentItemLength = contentItem.length; let contentPosition = 0; - if (contentItemLength === 0) throw new Error("Empty file " + name); + if (contentItemLength === 0) throw new Error(`Empty file ${name}`); const nextContent = () => { contentsIndex++; contentItem = contents[contentsIndex]; @@ -378,18 +378,16 @@ const deserialize = async (middleware, name, readFile) => { length -= l; contentPosition = contentItemLength; } + } else if (length >= contentItemLength) { + result.push(contentItem); + length -= contentItemLength; + contentPosition = contentItemLength; } else { - if (length >= contentItemLength) { - result.push(contentItem); - length -= contentItemLength; - contentPosition = contentItemLength; - } else { - result.push( - Buffer.from(contentItem.buffer, contentItem.byteOffset, length) - ); - contentPosition += length; - length = 0; - } + result.push( + Buffer.from(contentItem.buffer, contentItem.byteOffset, length) + ); + contentPosition += length; + length = 0; } while (length > 0) { nextContent(); @@ -410,6 +408,8 @@ const deserialize = async (middleware, name, readFile) => { return result; }; +/** @typedef {{ filename: string, extension?: string }} FileMiddlewareContext */ + /** * @typedef {BufferSerializableType[]} DeserializedType * @typedef {true} SerializedType @@ -425,6 +425,7 @@ class FileMiddleware extends SerializerMiddleware { this.fs = fs; this._hashFunction = hashFunction; } + /** * @param {DeserializedType} data data * @param {object} context context object @@ -439,76 +440,92 @@ class FileMiddleware extends SerializerMiddleware { // It's important that we don't touch existing files during serialization // because serialize may read existing files (when deserializing) const allWrittenFiles = new Set(); + /** + * @param {string | false} name name + * @param {Buffer[]} content content + * @param {number} size size + * @returns {Promise} + */ const writeFile = async (name, content, size) => { const file = name ? join(this.fs, filename, `../${name}${extension}`) : filename; - await new Promise((resolve, reject) => { - let stream = this.fs.createWriteStream(file + "_"); - let compression; - if (file.endsWith(".gz")) { - compression = createGzip({ - chunkSize: COMPRESSION_CHUNK_SIZE, - level: zConstants.Z_BEST_SPEED - }); - } else if (file.endsWith(".br")) { - compression = createBrotliCompress({ - chunkSize: COMPRESSION_CHUNK_SIZE, - params: { - [zConstants.BROTLI_PARAM_MODE]: zConstants.BROTLI_MODE_TEXT, - [zConstants.BROTLI_PARAM_QUALITY]: 2, - [zConstants.BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING]: true, - [zConstants.BROTLI_PARAM_SIZE_HINT]: size - } - }); - } - if (compression) { - pipeline(compression, stream, reject); - stream = compression; - stream.on("finish", () => resolve()); - } else { - stream.on("error", err => reject(err)); - stream.on("finish", () => resolve()); - } - // split into chunks for WRITE_LIMIT_CHUNK size - const chunks = []; - for (const b of content) { - if (b.length < WRITE_LIMIT_CHUNK) { - chunks.push(b); + await new Promise( + /** + * @param {(value?: undefined) => void} resolve resolve + * @param {(reason?: Error | null) => void} reject reject + */ + (resolve, reject) => { + let stream = this.fs.createWriteStream(`${file}_`); + let compression; + if (file.endsWith(".gz")) { + compression = createGzip({ + chunkSize: COMPRESSION_CHUNK_SIZE, + level: zConstants.Z_BEST_SPEED + }); + } else if (file.endsWith(".br")) { + compression = createBrotliCompress({ + chunkSize: COMPRESSION_CHUNK_SIZE, + params: { + [zConstants.BROTLI_PARAM_MODE]: zConstants.BROTLI_MODE_TEXT, + [zConstants.BROTLI_PARAM_QUALITY]: 2, + [zConstants.BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING]: true, + [zConstants.BROTLI_PARAM_SIZE_HINT]: size + } + }); + } + if (compression) { + pipeline(compression, stream, reject); + stream = compression; + stream.on("finish", () => resolve()); } else { - for (let i = 0; i < b.length; i += WRITE_LIMIT_CHUNK) { - chunks.push(b.slice(i, i + WRITE_LIMIT_CHUNK)); + stream.on("error", err => reject(err)); + stream.on("finish", () => resolve()); + } + // split into chunks for WRITE_LIMIT_CHUNK size + /** @type {TODO[]} */ + const chunks = []; + for (const b of content) { + if (b.length < WRITE_LIMIT_CHUNK) { + chunks.push(b); + } else { + for (let i = 0; i < b.length; i += WRITE_LIMIT_CHUNK) { + chunks.push(b.slice(i, i + WRITE_LIMIT_CHUNK)); + } } } + + const len = chunks.length; + let i = 0; + /** + * @param {(Error | null)=} err err + */ + const batchWrite = err => { + // will be handled in "on" error handler + if (err) return; + + if (i === len) { + stream.end(); + return; + } + + // queue up a batch of chunks up to the write limit + // end is exclusive + let end = i; + let sum = chunks[end++].length; + while (end < len) { + sum += chunks[end].length; + if (sum > WRITE_LIMIT_TOTAL) break; + end++; + } + while (i < end - 1) { + stream.write(chunks[i++]); + } + stream.write(chunks[i++], batchWrite); + }; + batchWrite(); } - - const len = chunks.length; - let i = 0; - const batchWrite = err => { - // will be handled in "on" error handler - if (err) return; - - if (i === len) { - stream.end(); - return; - } - - // queue up a batch of chunks up to the write limit - // end is exclusive - let end = i; - let sum = chunks[end++].length; - while (end < len) { - sum += chunks[end].length; - if (sum > WRITE_LIMIT_TOTAL) break; - end++; - } - while (i < end - 1) { - stream.write(chunks[i++]); - } - stream.write(chunks[i++], batchWrite); - }; - batchWrite(); - }); + ); if (name) allWrittenFiles.add(file); }; @@ -518,10 +535,15 @@ class FileMiddleware extends SerializerMiddleware { await backgroundJob; // Rename the index file to disallow access during inconsistent file state - await new Promise(resolve => - this.fs.rename(filename, filename + ".old", err => { - resolve(); - }) + await new Promise( + /** + * @param {(value?: undefined) => void} resolve resolve + */ + resolve => { + this.fs.rename(filename, `${filename}.old`, err => { + resolve(); + }); + } ); // update all written files @@ -529,22 +551,35 @@ class FileMiddleware extends SerializerMiddleware { Array.from( allWrittenFiles, file => - new Promise((resolve, reject) => { - this.fs.rename(file + "_", file, err => { - if (err) return reject(err); - resolve(); - }); - }) + new Promise( + /** + * @param {(value?: undefined) => void} resolve resolve + * @param {(reason?: Error | null) => void} reject reject + * @returns {void} + */ + (resolve, reject) => { + this.fs.rename(`${file}_`, file, err => { + if (err) return reject(err); + resolve(); + }); + } + ) ) ); // As final step automatically update the index file to have a consistent pack again - await new Promise(resolve => { - this.fs.rename(filename + "_", filename, err => { - if (err) return reject(err); - resolve(); - }); - }); + await new Promise( + /** + * @param {(value?: undefined) => void} resolve resolve + * @returns {void} + */ + resolve => { + this.fs.rename(`${filename}_`, filename, err => { + if (err) return reject(err); + resolve(); + }); + } + ); return /** @type {true} */ (true); } ) @@ -560,6 +595,10 @@ class FileMiddleware extends SerializerMiddleware { */ deserialize(data, context) { const { filename, extension = "" } = context; + /** + * @param {string | boolean} name name + * @returns {Promise} result + */ const readFile = name => new Promise((resolve, reject) => { const file = name @@ -570,11 +609,12 @@ class FileMiddleware extends SerializerMiddleware { reject(err); return; } - let remaining = /** @type {number} */ (stats.size); + let remaining = /** @type {IStats} */ (stats).size; /** @type {Buffer | undefined} */ let currentBuffer; /** @type {number | undefined} */ let currentBufferUsed; + /** @type {any[]} */ const buf = []; /** @type {import("zlib").Zlib & import("stream").Transform | undefined} */ let decompression; @@ -588,7 +628,8 @@ class FileMiddleware extends SerializerMiddleware { }); } if (decompression) { - let newResolve, newReject; + let newResolve; + let newReject; resolve( Promise.all([ new Promise((rs, rj) => { @@ -605,11 +646,12 @@ class FileMiddleware extends SerializerMiddleware { resolve = newResolve; reject = newReject; } - this.fs.open(file, "r", (err, fd) => { + this.fs.open(file, "r", (err, _fd) => { if (err) { reject(err); return; } + const fd = /** @type {number} */ (_fd); const read = () => { if (currentBuffer === undefined) { currentBuffer = Buffer.allocUnsafeSlow( @@ -622,8 +664,10 @@ class FileMiddleware extends SerializerMiddleware { currentBufferUsed = 0; } let readBuffer = currentBuffer; - let readOffset = currentBufferUsed; - let readLength = currentBuffer.length - currentBufferUsed; + let readOffset = /** @type {number} */ (currentBufferUsed); + let readLength = + currentBuffer.length - + /** @type {number} */ (currentBufferUsed); // values passed to fs.read must be valid int32 values if (readOffset > 0x7fffffff) { readBuffer = currentBuffer.slice(readOffset); @@ -645,9 +689,13 @@ class FileMiddleware extends SerializerMiddleware { }); return; } - currentBufferUsed += bytesRead; + /** @type {number} */ + (currentBufferUsed) += bytesRead; remaining -= bytesRead; - if (currentBufferUsed === currentBuffer.length) { + if ( + currentBufferUsed === + /** @type {Buffer} */ (currentBuffer).length + ) { if (decompression) { decompression.write(currentBuffer); } else { diff --git a/node_modules/webpack/lib/serialization/MapObjectSerializer.js b/node_modules/webpack/lib/serialization/MapObjectSerializer.js index cb5fa6b..0b1f418 100644 --- a/node_modules/webpack/lib/serialization/MapObjectSerializer.js +++ b/node_modules/webpack/lib/serialization/MapObjectSerializer.js @@ -22,6 +22,7 @@ class MapObjectSerializer { context.write(value); } } + /** * @template K, V * @param {ObjectDeserializerContext} context context @@ -29,7 +30,7 @@ class MapObjectSerializer { */ deserialize(context) { /** @type {number} */ - let size = context.read(); + const size = context.read(); /** @type {Map} */ const map = new Map(); /** @type {K[]} */ diff --git a/node_modules/webpack/lib/serialization/NullPrototypeObjectSerializer.js b/node_modules/webpack/lib/serialization/NullPrototypeObjectSerializer.js index 7877fb4..32adaea 100644 --- a/node_modules/webpack/lib/serialization/NullPrototypeObjectSerializer.js +++ b/node_modules/webpack/lib/serialization/NullPrototypeObjectSerializer.js @@ -21,9 +21,10 @@ class NullPrototypeObjectSerializer { } context.write(null); for (const key of keys) { - context.write(obj[key]); + context.write(obj[/** @type {keyof T} */ (key)]); } } + /** * @template {object} T * @param {ObjectDeserializerContext} context context @@ -41,7 +42,7 @@ class NullPrototypeObjectSerializer { key = context.read(); } for (const key of keys) { - obj[key] = context.read(); + obj[/** @type {keyof T} */ (key)] = context.read(); } return obj; } diff --git a/node_modules/webpack/lib/serialization/ObjectMiddleware.js b/node_modules/webpack/lib/serialization/ObjectMiddleware.js index aa9d0f1..1346447 100644 --- a/node_modules/webpack/lib/serialization/ObjectMiddleware.js +++ b/node_modules/webpack/lib/serialization/ObjectMiddleware.js @@ -137,8 +137,9 @@ jsTypes.set(TypeError, new ErrorObjectSerializer(TypeError)); // If in a sandboxed environment (e. g. jest), this escapes the sandbox and registers // real Object and Array types to. These types may occur in the wild too, e. g. when // using Structured Clone in postMessage. +// eslint-disable-next-line n/exports-style if (exports.constructor !== Object) { - // eslint-disable-next-line jsdoc/check-types + // eslint-disable-next-line jsdoc/check-types, n/exports-style const Obj = /** @type {typeof Object} */ (exports.constructor); const Fn = /** @type {typeof Function} */ (Obj.constructor); for (const [type, config] of Array.from(jsTypes)) { @@ -185,6 +186,7 @@ class ObjectMiddleware extends SerializerMiddleware { this.extendContext = extendContext; this._hashFunction = hashFunction; } + /** * @param {RegExp} regExp RegExp for which the request is tested * @param {function(string): boolean} loader loader to load the request, returns true when successful @@ -202,7 +204,7 @@ class ObjectMiddleware extends SerializerMiddleware { * @returns {void} */ static register(Constructor, request, name, serializer) { - const key = request + "/" + name; + const key = `${request}/${name}`; if (serializers.has(Constructor)) { throw new Error( @@ -267,7 +269,7 @@ class ObjectMiddleware extends SerializerMiddleware { * @returns {ObjectSerializer} serializer */ static getDeserializerFor(request, name) { - const key = request + "/" + name; + const key = `${request}/${name}`; const serializer = serializerInversed.get(key); if (serializer === undefined) { @@ -279,11 +281,11 @@ class ObjectMiddleware extends SerializerMiddleware { /** * @param {string} request request - * @param {TODO} name name - * @returns {ObjectSerializer} serializer + * @param {string} name name + * @returns {ObjectSerializer | undefined} serializer */ static _getDeserializerForWithoutError(request, name) { - const key = request + "/" + name; + const key = `${request}/${name}`; const serializer = serializerInversed.get(key); return serializer; } @@ -302,6 +304,10 @@ class ObjectMiddleware extends SerializerMiddleware { referenceable.set(item, currentPos++); }; let bufferDedupeMap = new Map(); + /** + * @param {Buffer} buf buffer + * @returns {Buffer} deduped buffer + */ const dedupeBuffer = buf => { const len = buf.length; const entry = bufferDedupeMap.get(len); @@ -316,17 +322,16 @@ class ObjectMiddleware extends SerializerMiddleware { } bufferDedupeMap.set(len, [entry, buf]); return buf; - } else { - const hash = toHash(entry, this._hashFunction); - const newMap = new Map(); - newMap.set(hash, entry); - bufferDedupeMap.set(len, newMap); - const hashBuf = toHash(buf, this._hashFunction); - if (hash === hashBuf) { - return entry; - } - return buf; } + const hash = toHash(entry, this._hashFunction); + const newMap = new Map(); + newMap.set(hash, entry); + bufferDedupeMap.set(len, newMap); + const hashBuf = toHash(buf, this._hashFunction); + if (hash === hashBuf) { + return entry; + } + return buf; } else if (Array.isArray(entry)) { if (entry.length < 16) { for (const item of entry) { @@ -336,32 +341,29 @@ class ObjectMiddleware extends SerializerMiddleware { } entry.push(buf); return buf; - } else { - const newMap = new Map(); - const hash = toHash(buf, this._hashFunction); - let found; - for (const item of entry) { - const itemHash = toHash(item, this._hashFunction); - newMap.set(itemHash, item); - if (found === undefined && itemHash === hash) found = item; - } - bufferDedupeMap.set(len, newMap); - if (found === undefined) { - newMap.set(hash, buf); - return buf; - } else { - return found; - } } - } else { + const newMap = new Map(); const hash = toHash(buf, this._hashFunction); - const item = entry.get(hash); - if (item !== undefined) { - return item; + let found; + for (const item of entry) { + const itemHash = toHash(item, this._hashFunction); + newMap.set(itemHash, item); + if (found === undefined && itemHash === hash) found = item; } - entry.set(hash, buf); - return buf; + bufferDedupeMap.set(len, newMap); + if (found === undefined) { + newMap.set(hash, buf); + return buf; + } + return found; } + const hash = toHash(buf, this._hashFunction); + const item = entry.get(hash); + if (item !== undefined) { + return item; + } + entry.set(hash, buf); + return buf; }; let currentPosTypeLookup = 0; let objectTypeLookup = new Map(); @@ -385,7 +387,7 @@ class ObjectMiddleware extends SerializerMiddleware { if (request) { return `${request}${name ? `.${name}` : ""}`; } - } catch (e) { + } catch (_err) { // ignore -> fallback } if (typeof item === "object" && item !== null) { @@ -408,27 +410,29 @@ class ObjectMiddleware extends SerializerMiddleware { } try { return `${item}`; - } catch (e) { - return `(${e.message})`; + } catch (err) { + return `(${err.message})`; } }) .join(" -> "); }; + /** @type {WeakSet} */ let hasDebugInfoAttached; let ctx = { write(value, key) { try { process(value); - } catch (e) { - if (e !== NOT_SERIALIZABLE) { + } catch (err) { + if (err !== NOT_SERIALIZABLE) { if (hasDebugInfoAttached === undefined) hasDebugInfoAttached = new WeakSet(); - if (!hasDebugInfoAttached.has(e)) { - e.message += `\nwhile serializing ${stackToString(value)}`; - hasDebugInfoAttached.add(e); + if (!hasDebugInfoAttached.has(/** @type {Error} */ (err))) { + /** @type {Error} */ + (err).message += `\nwhile serializing ${stackToString(value)}`; + hasDebugInfoAttached.add(/** @type {Error} */ (err)); } } - throw e; + throw err; } }, setCircularReference(ref) { @@ -491,7 +495,7 @@ class ObjectMiddleware extends SerializerMiddleware { if (cycleStack.has(item)) { throw new Error( - `This is a circular references. To serialize circular references use 'setCircularReference' somewhere in the circle during serialize and deserialize.` + "This is a circular references. To serialize circular references use 'setCircularReference' somewhere in the circle during serialize and deserialize." ); } @@ -542,7 +546,7 @@ class ObjectMiddleware extends SerializerMiddleware { result.push(item); } else if (typeof item === "function") { if (!SerializerMiddleware.isLazy(item)) - throw new Error("Unexpected function " + item); + throw new Error(`Unexpected function ${item}`); /** @type {SerializedType} */ const serializedData = SerializerMiddleware.getLazySerializedValue(item); @@ -573,10 +577,10 @@ class ObjectMiddleware extends SerializerMiddleware { process(item); } return result; - } catch (e) { - if (e === NOT_SERIALIZABLE) return null; + } catch (err) { + if (err === NOT_SERIALIZABLE) return null; - throw e; + throw err; } finally { // Get rid of these references to avoid leaking memory // This happens because the optimized code v8 generates @@ -588,7 +592,8 @@ class ObjectMiddleware extends SerializerMiddleware { bufferDedupeMap = objectTypeLookup = ctx = - undefined; + /** @type {EXPECTED_ANY} */ + (undefined); } } @@ -637,7 +642,7 @@ class ObjectMiddleware extends SerializerMiddleware { if (nextItem === ESCAPE_ESCAPE_VALUE) { return ESCAPE; } else if (nextItem === ESCAPE_UNDEFINED) { - return undefined; + // Nothing } else if (nextItem === ESCAPE_END_OBJECT) { throw new Error( `Unexpected end of object at position ${currentDataPos - 1}` @@ -659,7 +664,7 @@ class ObjectMiddleware extends SerializerMiddleware { `at position ${currentDataPos - 1}` ); } - const name = read(); + const name = /** @type {string} */ (read()); serializer = ObjectMiddleware._getDeserializerForWithoutError( request, @@ -670,11 +675,9 @@ class ObjectMiddleware extends SerializerMiddleware { if (request && !loadedRequests.has(request)) { let loaded = false; for (const [regExp, loader] of loaders) { - if (regExp.test(request)) { - if (loader(request)) { - loaded = true; - break; - } + if (regExp.test(request) && loader(request)) { + loaded = true; + break; } } if (!loaded) { @@ -725,7 +728,8 @@ class ObjectMiddleware extends SerializerMiddleware { : serializerEntry[1].name ? `${serializerEntry[1].request} ${serializerEntry[1].name}` : serializerEntry[1].request; - err.message += `\n(during deserialization of ${name})`; + /** @type {Error} */ + (err).message += `\n(during deserialization of ${name})`; throw err; } } @@ -759,7 +763,13 @@ class ObjectMiddleware extends SerializerMiddleware { // This happens because the optimized code v8 generates // is optimized for our "ctx.read" method so it will reference // it from e. g. Dependency.prototype.deserialize -(IC)-> ctx.read - result = referenceable = data = objectTypeLookup = ctx = undefined; + result = + referenceable = + data = + objectTypeLookup = + ctx = + /** @type {EXPECTED_ANY} */ + (undefined); } } } diff --git a/node_modules/webpack/lib/serialization/PlainObjectSerializer.js b/node_modules/webpack/lib/serialization/PlainObjectSerializer.js index 4bf5f04..428825e 100644 --- a/node_modules/webpack/lib/serialization/PlainObjectSerializer.js +++ b/node_modules/webpack/lib/serialization/PlainObjectSerializer.js @@ -7,19 +7,36 @@ /** @typedef {import("./ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ /** @typedef {import("./ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ +/** @typedef {(arg0?: any) => void} CacheAssoc */ + +/** + * @template T + * @typedef {WeakMap>} + */ const cache = new WeakMap(); +/** + * @template T + */ class ObjectStructure { constructor() { this.keys = undefined; this.children = undefined; } + /** + * @param {keyof T[]} keys keys + * @returns {keyof T[]} keys + */ getKeys(keys) { if (this.keys === undefined) this.keys = keys; return this.keys; } + /** + * @param {keyof T} key key + * @returns {ObjectStructure} object structure + */ key(key) { if (this.children === undefined) this.children = new Map(); const child = this.children.get(key); @@ -30,6 +47,12 @@ class ObjectStructure { } } +/** + * @template T + * @param {(keyof T)[]} keys keys + * @param {CacheAssoc} cacheAssoc cache assoc fn + * @returns {(keyof T)[]} keys + */ const getCachedKeys = (keys, cacheAssoc) => { let root = cache.get(cacheAssoc); if (root === undefined) { @@ -45,11 +68,12 @@ const getCachedKeys = (keys, cacheAssoc) => { class PlainObjectSerializer { /** - * @param {object} obj plain object + * @template {object} T + * @param {T} obj plain object * @param {ObjectSerializerContext} context context */ serialize(obj, context) { - const keys = Object.keys(obj); + const keys = /** @type {(keyof T)[]} */ (Object.keys(obj)); if (keys.length > 128) { // Objects with so many keys are unlikely to share structure // with other objects @@ -70,19 +94,21 @@ class PlainObjectSerializer { context.write(null); } } + /** + * @template {object} T * @param {ObjectDeserializerContext} context context - * @returns {object} plain object + * @returns {T} plain object */ deserialize(context) { const keys = context.read(); - const obj = {}; + const obj = /** @type {T} */ ({}); if (Array.isArray(keys)) { for (const key of keys) { - obj[key] = context.read(); + obj[/** @type {keyof T} */ (key)] = context.read(); } } else if (keys !== null) { - obj[keys] = context.read(); + obj[/** @type {keyof T} */ (keys)] = context.read(); } return obj; } diff --git a/node_modules/webpack/lib/serialization/RegExpObjectSerializer.js b/node_modules/webpack/lib/serialization/RegExpObjectSerializer.js index 9338fe2..5ac7eec 100644 --- a/node_modules/webpack/lib/serialization/RegExpObjectSerializer.js +++ b/node_modules/webpack/lib/serialization/RegExpObjectSerializer.js @@ -16,6 +16,7 @@ class RegExpObjectSerializer { context.write(obj.source); context.write(obj.flags); } + /** * @param {ObjectDeserializerContext} context context * @returns {RegExp} regexp diff --git a/node_modules/webpack/lib/serialization/Serializer.js b/node_modules/webpack/lib/serialization/Serializer.js index 082736a..ce241c6 100644 --- a/node_modules/webpack/lib/serialization/Serializer.js +++ b/node_modules/webpack/lib/serialization/Serializer.js @@ -52,11 +52,10 @@ class Serializer { /** @type {any} */ let current = value; for (const middleware of this.deserializeMiddlewares) { - if (current && typeof current.then === "function") { - current = current.then(data => middleware.deserialize(data, ctx)); - } else { - current = middleware.deserialize(current, ctx); - } + current = + current && typeof current.then === "function" + ? current.then(data => middleware.deserialize(data, ctx)) + : middleware.deserialize(current, ctx); } return current; } diff --git a/node_modules/webpack/lib/serialization/SerializerMiddleware.js b/node_modules/webpack/lib/serialization/SerializerMiddleware.js index 3a5ba28..0053fb0 100644 --- a/node_modules/webpack/lib/serialization/SerializerMiddleware.js +++ b/node_modules/webpack/lib/serialization/SerializerMiddleware.js @@ -45,7 +45,7 @@ class SerializerMiddleware { * @param {any=} serializedValue serialized value * @returns {function(): Promise | any} lazy function */ - static createLazy(value, target, options = {}, serializedValue) { + static createLazy(value, target, options = {}, serializedValue = undefined) { if (SerializerMiddleware.isLazy(value, target)) return value; const fn = typeof value === "function" ? value : () => value; fn[LAZY_TARGET] = target; @@ -62,24 +62,24 @@ class SerializerMiddleware { static isLazy(fn, target) { if (typeof fn !== "function") return false; const t = fn[LAZY_TARGET]; - return target ? t === target : !!t; + return target ? t === target : Boolean(t); } /** * @param {function(): Promise | any} fn lazy function - * @returns {object} options + * @returns {object | undefined} options */ static getLazyOptions(fn) { - if (typeof fn !== "function") return undefined; + if (typeof fn !== "function") return; return /** @type {any} */ (fn).options; } /** * @param {function(): Promise | any} fn lazy function - * @returns {any} serialized value + * @returns {any | undefined} serialized value */ static getLazySerializedValue(fn) { - if (typeof fn !== "function") return undefined; + if (typeof fn !== "function") return; return fn[LAZY_SERIALIZED_VALUE]; } @@ -112,9 +112,10 @@ class SerializerMiddleware { } /** + * @template T * @param {function(): Promise | any} lazy lazy function - * @param {function(any): Promise | any} deserialize deserialize function - * @returns {function(): Promise | any} new lazy + * @param {function(T): Promise | T} deserialize deserialize function + * @returns {function(): Promise | T} new lazy */ static deserializeLazy(lazy, deserialize) { const fn = memoize(() => { diff --git a/node_modules/webpack/lib/serialization/SetObjectSerializer.js b/node_modules/webpack/lib/serialization/SetObjectSerializer.js index 18cfa8c..66811b8 100644 --- a/node_modules/webpack/lib/serialization/SetObjectSerializer.js +++ b/node_modules/webpack/lib/serialization/SetObjectSerializer.js @@ -19,6 +19,7 @@ class SetObjectSerializer { context.write(value); } } + /** * @template T * @param {ObjectDeserializerContext} context context @@ -26,7 +27,7 @@ class SetObjectSerializer { */ deserialize(context) { /** @type {number} */ - let size = context.read(); + const size = context.read(); /** @type {Set} */ const set = new Set(); for (let i = 0; i < size; i++) { diff --git a/node_modules/webpack/lib/serialization/types.js b/node_modules/webpack/lib/serialization/types.js index 5f0cfdb..b0f022f 100644 --- a/node_modules/webpack/lib/serialization/types.js +++ b/node_modules/webpack/lib/serialization/types.js @@ -6,8 +6,8 @@ /** @typedef {undefined | null | number | string | boolean | Buffer | object | (() => ComplexSerializableType[] | Promise)} ComplexSerializableType */ -/** @typedef {undefined|null|number|bigint|string|boolean|Buffer|(() => PrimitiveSerializableType[] | Promise)} PrimitiveSerializableType */ +/** @typedef {undefined | null | number | bigint | string | boolean | Buffer | (() => PrimitiveSerializableType[] | Promise)} PrimitiveSerializableType */ -/** @typedef {Buffer|(() => BufferSerializableType[] | Promise)} BufferSerializableType */ +/** @typedef {Buffer | (() => BufferSerializableType[] | Promise)} BufferSerializableType */ module.exports = {}; diff --git a/node_modules/webpack/lib/sharing/ConsumeSharedModule.js b/node_modules/webpack/lib/sharing/ConsumeSharedModule.js index dcf40e7..f9a745e 100644 --- a/node_modules/webpack/lib/sharing/ConsumeSharedModule.js +++ b/node_modules/webpack/lib/sharing/ConsumeSharedModule.js @@ -8,6 +8,7 @@ const { RawSource } = require("webpack-sources"); const AsyncDependenciesBlock = require("../AsyncDependenciesBlock"); const Module = require("../Module"); +const { CONSUME_SHARED_TYPES } = require("../ModuleSourceTypesConstants"); const { WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE } = require("../ModuleTypeConstants"); @@ -48,8 +49,6 @@ const ConsumeSharedFallbackDependency = require("./ConsumeSharedFallbackDependen * @property {boolean} eager include the fallback module in a sync way */ -const TYPES = new Set(["consume-shared"]); - class ConsumeSharedModule extends Module { /** * @param {string} context context @@ -151,7 +150,7 @@ class ConsumeSharedModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return TYPES; + return CONSUME_SHARED_TYPES; } /** diff --git a/node_modules/webpack/lib/sharing/ConsumeSharedPlugin.js b/node_modules/webpack/lib/sharing/ConsumeSharedPlugin.js index 7b5188c..efc5249 100644 --- a/node_modules/webpack/lib/sharing/ConsumeSharedPlugin.js +++ b/node_modules/webpack/lib/sharing/ConsumeSharedPlugin.js @@ -27,7 +27,9 @@ const { /** @typedef {import("../../declarations/plugins/sharing/ConsumeSharedPlugin").ConsumesConfig} ConsumesConfig */ /** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("../ResolverFactory").ResolveOptionsWithDependencyType} ResolveOptionsWithDependencyType */ +/** @typedef {import("../util/semver").SemVerRange} SemVerRange */ /** @typedef {import("./ConsumeSharedModule").ConsumeOptions} ConsumeOptions */ +/** @typedef {import("./utils").DescriptionFile} DescriptionFile */ const validate = createSchemaValidation( require("../../schemas/plugins/sharing/ConsumeSharedPlugin.check.js"), @@ -57,7 +59,7 @@ class ConsumeSharedPlugin { (item, key) => { if (Array.isArray(item)) throw new Error("Unexpected array in options"); /** @type {ConsumeOptions} */ - let result = + const result = item === key || !isRequiredVersion(item) ? // item is a request/key { @@ -97,8 +99,8 @@ class ConsumeSharedPlugin { ? item.strictVersion : item.import !== false && !item.singleton, packageName: item.packageName, - singleton: !!item.singleton, - eager: !!item.eager + singleton: Boolean(item.singleton), + eager: Boolean(item.eager) }) ); } @@ -157,110 +159,127 @@ class ConsumeSharedPlugin { config.import && /^(\.\.?(\/|$)|\/|[A-Za-z]:|\\\\)/.test(config.import); return Promise.all([ - new Promise(resolve => { - if (!config.import) return resolve(); - const resolveContext = { - /** @type {LazySet} */ - fileDependencies: new LazySet(), - /** @type {LazySet} */ - contextDependencies: new LazySet(), - /** @type {LazySet} */ - missingDependencies: new LazySet() - }; - resolver.resolve( - {}, - directFallback ? compiler.context : context, - config.import, - resolveContext, - (err, result) => { - compilation.contextDependencies.addAll( - resolveContext.contextDependencies - ); - compilation.fileDependencies.addAll( - resolveContext.fileDependencies - ); - compilation.missingDependencies.addAll( - resolveContext.missingDependencies - ); - if (err) { - compilation.errors.push( - new ModuleNotFoundError(null, err, { - name: `resolving fallback for shared module ${request}` - }) + new Promise( + /** + * @param {(value?: string) => void} resolve resolve + */ + resolve => { + if (!config.import) { + resolve(); + return; + } + const resolveContext = { + /** @type {LazySet} */ + fileDependencies: new LazySet(), + /** @type {LazySet} */ + contextDependencies: new LazySet(), + /** @type {LazySet} */ + missingDependencies: new LazySet() + }; + resolver.resolve( + {}, + directFallback ? compiler.context : context, + config.import, + resolveContext, + (err, result) => { + compilation.contextDependencies.addAll( + resolveContext.contextDependencies ); - return resolve(); + compilation.fileDependencies.addAll( + resolveContext.fileDependencies + ); + compilation.missingDependencies.addAll( + resolveContext.missingDependencies + ); + if (err) { + compilation.errors.push( + new ModuleNotFoundError(null, err, { + name: `resolving fallback for shared module ${request}` + }) + ); + return resolve(); + } + resolve(/** @type {string} */ (result)); } - resolve(result); - } - ); - }), - new Promise(resolve => { - if (config.requiredVersion !== undefined) - return resolve(config.requiredVersion); - let packageName = config.packageName; - if (packageName === undefined) { - if (/^(\/|[A-Za-z]:|\\\\)/.test(request)) { - // For relative or absolute requests we don't automatically use a packageName. - // If wished one can specify one with the packageName option. - return resolve(); - } - const match = /^((?:@[^\\/]+[\\/])?[^\\/]+)/.exec(request); - if (!match) { - requiredVersionWarning( - "Unable to extract the package name from request." - ); - return resolve(); - } - packageName = match[0]; + ); } + ), + new Promise( + /** + * @param {(value?: SemVerRange) => void} resolve resolve + */ + resolve => { + if (config.requiredVersion !== undefined) { + resolve(/** @type {SemVerRange} */ (config.requiredVersion)); + return; + } + let packageName = config.packageName; + if (packageName === undefined) { + if (/^(\/|[A-Za-z]:|\\\\)/.test(request)) { + // For relative or absolute requests we don't automatically use a packageName. + // If wished one can specify one with the packageName option. + resolve(); + return; + } + const match = /^((?:@[^\\/]+[\\/])?[^\\/]+)/.exec(request); + if (!match) { + requiredVersionWarning( + "Unable to extract the package name from request." + ); + resolve(); + return; + } + packageName = match[0]; + } - getDescriptionFile( - compilation.inputFileSystem, - context, - ["package.json"], - (err, result) => { - if (err) { - requiredVersionWarning( - `Unable to read description file: ${err}` - ); - return resolve(); + getDescriptionFile( + compilation.inputFileSystem, + context, + ["package.json"], + (err, result) => { + if (err) { + requiredVersionWarning( + `Unable to read description file: ${err}` + ); + return resolve(); + } + const { data, path: descriptionPath } = + /** @type {DescriptionFile} */ (result); + if (!data) { + requiredVersionWarning( + `Unable to find description file in ${context}.` + ); + return resolve(); + } + if (data.name === packageName) { + // Package self-referencing + return resolve(); + } + const requiredVersion = + getRequiredVersionFromDescriptionFile(data, packageName); + if (typeof requiredVersion !== "string") { + requiredVersionWarning( + `Unable to find required version for "${packageName}" in description file (${descriptionPath}). It need to be in dependencies, devDependencies or peerDependencies.` + ); + return resolve(); + } + resolve(parseRange(requiredVersion)); } - const { data, path: descriptionPath } = result; - if (!data) { - requiredVersionWarning( - `Unable to find description file in ${context}.` - ); - return resolve(); - } - if (data.name === packageName) { - // Package self-referencing - return resolve(); - } - const requiredVersion = getRequiredVersionFromDescriptionFile( - data, - packageName - ); - if (typeof requiredVersion !== "string") { - requiredVersionWarning( - `Unable to find required version for "${packageName}" in description file (${descriptionPath}). It need to be in dependencies, devDependencies or peerDependencies.` - ); - return resolve(); - } - resolve(parseRange(requiredVersion)); - } - ); - }) - ]).then(([importResolved, requiredVersion]) => { - return new ConsumeSharedModule( - directFallback ? compiler.context : context, - { - ...config, - importResolved, - import: importResolved ? config.import : undefined, - requiredVersion + ); } - ); - }); + ) + ]).then( + ([importResolved, requiredVersion]) => + new ConsumeSharedModule( + directFallback ? compiler.context : context, + { + ...config, + importResolved, + import: importResolved ? config.import : undefined, + requiredVersion + } + ) + ); }; normalModuleFactory.hooks.factorize.tapPromise( diff --git a/node_modules/webpack/lib/sharing/ConsumeSharedRuntimeModule.js b/node_modules/webpack/lib/sharing/ConsumeSharedRuntimeModule.js index 6b29767..095d24c 100644 --- a/node_modules/webpack/lib/sharing/ConsumeSharedRuntimeModule.js +++ b/node_modules/webpack/lib/sharing/ConsumeSharedRuntimeModule.js @@ -19,6 +19,7 @@ const { /** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../Chunk").ChunkId} ChunkId */ /** @typedef {import("../ChunkGraph")} ChunkGraph */ +/** @typedef {import("../ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("../Compilation")} Compilation */ /** @typedef {import("../Module")} Module */ /** @typedef {import("../Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */ @@ -47,15 +48,14 @@ class ConsumeSharedRuntimeModule extends RuntimeModule { /** @type {(string | number)[]} */ const initialConsumes = []; /** - * * @param {Iterable} modules modules * @param {Chunk} chunk the chunk * @param {(string | number)[]} list list of ids */ const addModules = (modules, chunk, list) => { for (const m of modules) { - const module = /** @type {ConsumeSharedModule} */ (m); - const id = chunkGraph.getModuleId(module); + const module = m; + const id = /** @type {ModuleId} */ (chunkGraph.getModuleId(module)); list.push(id); moduleIdToSourceMapping.set( id, @@ -67,7 +67,9 @@ class ConsumeSharedRuntimeModule extends RuntimeModule { ); } }; - for (const chunk of /** @type {Chunk} */ (this.chunk).getAllAsyncChunks()) { + for (const chunk of /** @type {Chunk} */ ( + this.chunk + ).getAllReferencedChunks()) { const modules = chunkGraph.getChunkModulesIterableBySourceType( chunk, "consume-shared" @@ -283,7 +285,7 @@ class ConsumeSharedRuntimeModule extends RuntimeModule { `delete ${RuntimeGlobals.moduleCache}[id];`, "var factory = moduleToHandlerMapping[id]();", 'if(typeof factory !== "function") throw new Error("Shared module is not available for eager consumption: " + id);', - `module.exports = factory();` + "module.exports = factory();" ])}` ])});` ]) diff --git a/node_modules/webpack/lib/sharing/ProvideForSharedDependency.js b/node_modules/webpack/lib/sharing/ProvideForSharedDependency.js index 5177f61..4de679a 100644 --- a/node_modules/webpack/lib/sharing/ProvideForSharedDependency.js +++ b/node_modules/webpack/lib/sharing/ProvideForSharedDependency.js @@ -10,7 +10,6 @@ const makeSerializable = require("../util/makeSerializable"); class ProvideForSharedDependency extends ModuleDependency { /** - * * @param {string} request request string */ constructor(request) { diff --git a/node_modules/webpack/lib/sharing/ProvideSharedModule.js b/node_modules/webpack/lib/sharing/ProvideSharedModule.js index 2284839..a0c1d0f 100644 --- a/node_modules/webpack/lib/sharing/ProvideSharedModule.js +++ b/node_modules/webpack/lib/sharing/ProvideSharedModule.js @@ -7,6 +7,7 @@ const AsyncDependenciesBlock = require("../AsyncDependenciesBlock"); const Module = require("../Module"); +const { SHARED_INIT_TYPES } = require("../ModuleSourceTypesConstants"); const { WEBPACK_MODULE_TYPE_PROVIDE } = require("../ModuleTypeConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); const makeSerializable = require("../util/makeSerializable"); @@ -30,8 +31,6 @@ const ProvideForSharedDependency = require("./ProvideForSharedDependency"); /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */ -const TYPES = new Set(["share-init"]); - class ProvideSharedModule extends Module { /** * @param {string} shareScope shared scope name @@ -124,7 +123,7 @@ class ProvideSharedModule extends Module { * @returns {SourceTypes} types available (do not mutate) */ getSourceTypes() { - return TYPES; + return SHARED_INIT_TYPES; } /** diff --git a/node_modules/webpack/lib/sharing/ProvideSharedPlugin.js b/node_modules/webpack/lib/sharing/ProvideSharedPlugin.js index 9d9101d..c57b763 100644 --- a/node_modules/webpack/lib/sharing/ProvideSharedPlugin.js +++ b/node_modules/webpack/lib/sharing/ProvideSharedPlugin.js @@ -62,7 +62,7 @@ class ProvideSharedPlugin { shareKey: item.shareKey, version: item.version, shareScope: item.shareScope || options.shareScope || "default", - eager: !!item.eager + eager: Boolean(item.eager) }) ) ); @@ -129,7 +129,7 @@ class ProvideSharedPlugin { if (version === undefined) { let details = ""; if (!resourceResolveData) { - details = `No resolve data provided from resolver.`; + details = "No resolve data provided from resolver."; } else { const descriptionFileData = resourceResolveData.descriptionFileData; diff --git a/node_modules/webpack/lib/sharing/resolveMatchedConfigs.js b/node_modules/webpack/lib/sharing/resolveMatchedConfigs.js index 30b406d..a54a76a 100644 --- a/node_modules/webpack/lib/sharing/resolveMatchedConfigs.js +++ b/node_modules/webpack/lib/sharing/resolveMatchedConfigs.js @@ -28,7 +28,7 @@ const RESOLVE_OPTIONS = { dependencyType: "esm" }; * @param {[string, T][]} configs to be processed configs * @returns {Promise>} resolved matchers */ -exports.resolveMatchedConfigs = (compilation, configs) => { +module.exports.resolveMatchedConfigs = (compilation, configs) => { /** @type {Map} */ const resolved = new Map(); /** @type {Map} */ @@ -47,6 +47,7 @@ exports.resolveMatchedConfigs = (compilation, configs) => { const context = compilation.compiler.context; return Promise.all( + // eslint-disable-next-line array-callback-return configs.map(([request, config]) => { if (/^\.\.?(\/|$)/.test(request)) { // relative request diff --git a/node_modules/webpack/lib/sharing/utils.js b/node_modules/webpack/lib/sharing/utils.js index 958ceb1..29aa4d6 100644 --- a/node_modules/webpack/lib/sharing/utils.js +++ b/node_modules/webpack/lib/sharing/utils.js @@ -65,11 +65,7 @@ const extractCommithashByDomain = { return; } - if (!type) { - commithash = hash; - } else { - commithash = "#" + commithash; - } + commithash = !type ? hash : `#${commithash}`; if (project && project.endsWith(".git")) { project = project.slice(0, -4); @@ -155,7 +151,6 @@ const extractCommithashByDomain = { /** * extract commit hash from parsed url - * * @inner * @param {URL} urlParsed parsed url * @returns {string} commithash @@ -167,7 +162,7 @@ function getCommithash(urlParsed) { try { hash = decodeURIComponent(hash); // eslint-disable-next-line no-empty - } catch (e) {} + } catch (_err) {} if ( extractCommithashByDomain[ @@ -186,7 +181,6 @@ function getCommithash(urlParsed) { /** * make url right for URL parse - * * @inner * @param {string} gitUrl git url * @returns {string} fixed url @@ -199,7 +193,6 @@ function correctUrl(gitUrl) { /** * make url protocol right for URL parse - * * @inner * @param {string} gitUrl git url * @returns {string} fixed url @@ -220,7 +213,6 @@ function correctProtocol(gitUrl) { /** * extract git dep version from hash - * * @inner * @param {string} hash hash * @returns {string} git dep version @@ -233,7 +225,6 @@ function getVersionFromHash(hash) { /** * if string can be decoded - * * @inner * @param {string} str str to be checked * @returns {boolean} if can be decoded @@ -241,7 +232,7 @@ function getVersionFromHash(hash) { function canBeDecoded(str) { try { decodeURIComponent(str); - } catch (e) { + } catch (_err) { return false; } @@ -250,19 +241,16 @@ function canBeDecoded(str) { /** * get right dep version from git url - * * @inner * @param {string} gitUrl git url * @returns {string} dep version */ function getGitUrlVersion(gitUrl) { - let oriGitUrl = gitUrl; + const oriGitUrl = gitUrl; // github extreme shorthand - if (RE_URL_GITHUB_EXTREME_SHORT.test(gitUrl)) { - gitUrl = "github:" + gitUrl; - } else { - gitUrl = correctProtocol(gitUrl); - } + gitUrl = RE_URL_GITHUB_EXTREME_SHORT.test(gitUrl) + ? `github:${gitUrl}` + : correctProtocol(gitUrl); gitUrl = correctUrl(gitUrl); @@ -270,7 +258,7 @@ function getGitUrlVersion(gitUrl) { try { parsed = new URL(gitUrl); // eslint-disable-next-line no-empty - } catch (e) {} + } catch (_err) {} if (!parsed) { return ""; @@ -312,7 +300,7 @@ function isRequiredVersion(str) { return VERSION_PATTERN_REGEXP.test(str); } -exports.isRequiredVersion = isRequiredVersion; +module.exports.isRequiredVersion = isRequiredVersion; /** * @see https://docs.npmjs.com/cli/v7/configuring-npm/package-json#urls-as-dependencies @@ -330,14 +318,15 @@ function normalizeVersion(versionDesc) { return getGitUrlVersion(versionDesc.toLowerCase()); } -exports.normalizeVersion = normalizeVersion; +module.exports.normalizeVersion = normalizeVersion; + +/** @typedef {{ data: JsonObject, path: string }} DescriptionFile */ /** - * * @param {InputFileSystem} fs file system * @param {string} directory directory to start looking into * @param {string[]} descriptionFiles possible description filenames - * @param {function((Error | null)=, {data: object, path: string}=): void} callback callback + * @param {function((Error | null)=, DescriptionFile=): void} callback callback */ const getDescriptionFile = (fs, directory, descriptionFiles, callback) => { let i = 0; @@ -371,10 +360,9 @@ const getDescriptionFile = (fs, directory, descriptionFiles, callback) => { }; tryLoadCurrent(); }; -exports.getDescriptionFile = getDescriptionFile; +module.exports.getDescriptionFile = getDescriptionFile; /** - * * @param {JsonObject} data description file data i.e.: package.json * @param {string} packageName name of the dependency * @returns {string | undefined} normalized version @@ -402,5 +390,5 @@ const getRequiredVersionFromDescriptionFile = (data, packageName) => { } } }; -exports.getRequiredVersionFromDescriptionFile = +module.exports.getRequiredVersionFromDescriptionFile = getRequiredVersionFromDescriptionFile; diff --git a/node_modules/webpack/lib/stats/DefaultStatsFactoryPlugin.js b/node_modules/webpack/lib/stats/DefaultStatsFactoryPlugin.js index ce4e00e..bfc7fa2 100644 --- a/node_modules/webpack/lib/stats/DefaultStatsFactoryPlugin.js +++ b/node_modules/webpack/lib/stats/DefaultStatsFactoryPlugin.js @@ -26,6 +26,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier"); /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("../Chunk")} Chunk */ +/** @typedef {import("../Chunk").ChunkId} ChunkId */ /** @typedef {import("../ChunkGroup")} ChunkGroup */ /** @typedef {import("../ChunkGroup").OriginRecord} OriginRecord */ /** @typedef {import("../Compilation")} Compilation */ @@ -33,20 +34,28 @@ const { makePathsRelative, parseResource } = require("../util/identifier"); /** @typedef {import("../Compilation").AssetInfo} AssetInfo */ /** @typedef {import("../Compilation").NormalizedStatsOptions} NormalizedStatsOptions */ /** @typedef {import("../Compiler")} Compiler */ +/** @typedef {import("../ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */ /** @typedef {import("../Module")} Module */ +/** @typedef {import("../Module").BuildInfo} BuildInfo */ /** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */ /** @typedef {import("../ModuleProfile")} ModuleProfile */ /** @typedef {import("../RequestShortener")} RequestShortener */ /** @typedef {import("../WebpackError")} WebpackError */ -/** @template T @typedef {import("../util/comparators").Comparator} Comparator */ +/** @typedef {import("../TemplatedPathPlugin").TemplatePath} TemplatePath */ +/** + * @template T + * @typedef {import("../util/comparators").Comparator} Comparator + */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ -/** @typedef {import("../util/smartGrouping").GroupConfig} GroupConfig */ +/** + * @template T, R + * @typedef {import("../util/smartGrouping").GroupConfig} GroupConfig + */ /** @typedef {import("./StatsFactory")} StatsFactory */ /** @typedef {import("./StatsFactory").StatsFactoryContext} StatsFactoryContext */ - -/** @typedef {KnownStatsCompilation & Record} StatsCompilation */ +/** @typedef {Record & KnownStatsCompilation} StatsCompilation */ /** * @typedef {object} KnownStatsCompilation * @property {any=} env @@ -74,7 +83,7 @@ const { makePathsRelative, parseResource } = require("../util/identifier"); * @property {Record=} logging */ -/** @typedef {KnownStatsLogging & Record} StatsLogging */ +/** @typedef {Record & KnownStatsLogging} StatsLogging */ /** * @typedef {object} KnownStatsLogging * @property {StatsLoggingEntry[]} entries @@ -82,18 +91,18 @@ const { makePathsRelative, parseResource } = require("../util/identifier"); * @property {boolean} debug */ -/** @typedef {KnownStatsLoggingEntry & Record} StatsLoggingEntry */ +/** @typedef {Record & KnownStatsLoggingEntry} StatsLoggingEntry */ /** * @typedef {object} KnownStatsLoggingEntry * @property {string} type - * @property {string} message + * @property {string=} message * @property {string[]=} trace * @property {StatsLoggingEntry[]=} children * @property {any[]=} args * @property {number=} time */ -/** @typedef {KnownStatsAsset & Record} StatsAsset */ +/** @typedef {Record & KnownStatsAsset} StatsAsset */ /** * @typedef {object} KnownStatsAsset * @property {string} type @@ -114,11 +123,11 @@ const { makePathsRelative, parseResource } = require("../util/identifier"); * @property {boolean=} isOverSizeLimit */ -/** @typedef {KnownStatsChunkGroup & Record} StatsChunkGroup */ +/** @typedef {Record & KnownStatsChunkGroup} StatsChunkGroup */ /** * @typedef {object} KnownStatsChunkGroup - * @property {string=} name - * @property {(string|number)[]=} chunks + * @property {(string | null)=} name + * @property {(string | number)[]=} chunks * @property {({ name: string, size?: number })[]=} assets * @property {number=} filteredAssets * @property {number=} assetsSize @@ -130,21 +139,21 @@ const { makePathsRelative, parseResource } = require("../util/identifier"); * @property {boolean=} isOverSizeLimit */ -/** @typedef {KnownStatsModule & Record} StatsModule */ +/** @typedef {Record & KnownStatsModule} StatsModule */ /** * @typedef {object} KnownStatsModule * @property {string=} type * @property {string=} moduleType - * @property {string=} layer + * @property {(string | null)=} layer * @property {string=} identifier * @property {string=} name - * @property {string=} nameForCondition + * @property {(string | null)=} nameForCondition * @property {number=} index * @property {number=} preOrderIndex * @property {number=} index2 * @property {number=} postOrderIndex * @property {number=} size - * @property {{[x: string]: number}=} sizes + * @property {{ [x: string]: number }=} sizes * @property {boolean=} cacheable * @property {boolean=} built * @property {boolean=} codeGenerated @@ -152,29 +161,29 @@ const { makePathsRelative, parseResource } = require("../util/identifier"); * @property {boolean=} cached * @property {boolean=} optional * @property {boolean=} orphan - * @property {string|number=} id - * @property {string|number=} issuerId - * @property {(string|number)[]=} chunks - * @property {(string|number)[]=} assets + * @property {string | number=} id + * @property {string | number | null=} issuerId + * @property {(string | number)[]=} chunks + * @property {(string | number)[]=} assets * @property {boolean=} dependent - * @property {string=} issuer - * @property {string=} issuerName + * @property {(string | null)=} issuer + * @property {(string | null)=} issuerName * @property {StatsModuleIssuer[]=} issuerPath * @property {boolean=} failed * @property {number=} errors * @property {number=} warnings * @property {StatsProfile=} profile * @property {StatsModuleReason[]=} reasons - * @property {(boolean | string[])=} usedExports - * @property {string[]=} providedExports + * @property {(boolean | null | string[])=} usedExports + * @property {(string[] | null)=} providedExports * @property {string[]=} optimizationBailout - * @property {number=} depth + * @property {(number | null)=} depth * @property {StatsModule[]=} modules * @property {number=} filteredModules * @property {ReturnType=} source */ -/** @typedef {KnownStatsProfile & Record} StatsProfile */ +/** @typedef {Record & KnownStatsProfile} StatsProfile */ /** * @typedef {object} KnownStatsProfile * @property {number} total @@ -189,33 +198,33 @@ const { makePathsRelative, parseResource } = require("../util/identifier"); * @property {number} dependencies */ -/** @typedef {KnownStatsModuleIssuer & Record} StatsModuleIssuer */ +/** @typedef {Record & KnownStatsModuleIssuer} StatsModuleIssuer */ /** * @typedef {object} KnownStatsModuleIssuer - * @property {string=} identifier - * @property {string=} name + * @property {string} identifier + * @property {string} name * @property {(string|number)=} id - * @property {StatsProfile=} profile + * @property {StatsProfile} profile */ -/** @typedef {KnownStatsModuleReason & Record} StatsModuleReason */ +/** @typedef {Record & KnownStatsModuleReason} StatsModuleReason */ /** * @typedef {object} KnownStatsModuleReason - * @property {string=} moduleIdentifier - * @property {string=} module - * @property {string=} moduleName - * @property {string=} resolvedModuleIdentifier - * @property {string=} resolvedModule - * @property {string=} type + * @property {string | null} moduleIdentifier + * @property {string | null} module + * @property {string | null} moduleName + * @property {string | null} resolvedModuleIdentifier + * @property {string | null} resolvedModule + * @property {string | null} type * @property {boolean} active - * @property {string=} explanation - * @property {string=} userRequest - * @property {string=} loc - * @property {(string|number)=} moduleId - * @property {(string|number)=} resolvedModuleId + * @property {string | null} explanation + * @property {string | null} userRequest + * @property {(string | null)=} loc + * @property {(string | number | null)=} moduleId + * @property {(string | number | null)=} resolvedModuleId */ -/** @typedef {KnownStatsChunk & Record} StatsChunk */ +/** @typedef {Record & KnownStatsChunk} StatsChunk */ /** * @typedef {object} KnownStatsChunk * @property {boolean} rendered @@ -224,14 +233,14 @@ const { makePathsRelative, parseResource } = require("../util/identifier"); * @property {boolean} recorded * @property {string=} reason * @property {number} size - * @property {Record=} sizes - * @property {string[]=} names - * @property {string[]=} idHints + * @property {Record} sizes + * @property {string[]} names + * @property {string[]} idHints * @property {string[]=} runtime - * @property {string[]=} files - * @property {string[]=} auxiliaryFiles + * @property {string[]} files + * @property {string[]} auxiliaryFiles * @property {string} hash - * @property {Record=} childrenByOrder + * @property {Record} childrenByOrder * @property {(string|number)=} id * @property {(string|number)[]=} siblings * @property {(string|number)[]=} parents @@ -241,18 +250,18 @@ const { makePathsRelative, parseResource } = require("../util/identifier"); * @property {StatsChunkOrigin[]=} origins */ -/** @typedef {KnownStatsChunkOrigin & Record} StatsChunkOrigin */ +/** @typedef {Record & KnownStatsChunkOrigin} StatsChunkOrigin */ /** * @typedef {object} KnownStatsChunkOrigin - * @property {string=} module - * @property {string=} moduleIdentifier - * @property {string=} moduleName - * @property {string=} loc - * @property {string=} request - * @property {(string|number)=} moduleId + * @property {string} module + * @property {string} moduleIdentifier + * @property {string} moduleName + * @property {string} loc + * @property {string} request + * @property {(string | number)=} moduleId */ -/** @typedef {KnownStatsModuleTraceItem & Record} StatsModuleTraceItem */ +/** @typedef { Record & KnownStatsModuleTraceItem} StatsModuleTraceItem */ /** * @typedef {object} KnownStatsModuleTraceItem * @property {string=} originIdentifier @@ -264,13 +273,13 @@ const { makePathsRelative, parseResource } = require("../util/identifier"); * @property {(string|number)=} moduleId */ -/** @typedef {KnownStatsModuleTraceDependency & Record} StatsModuleTraceDependency */ +/** @typedef {Record & KnownStatsModuleTraceDependency} StatsModuleTraceDependency */ /** * @typedef {object} KnownStatsModuleTraceDependency * @property {string=} loc */ -/** @typedef {KnownStatsError & Record} StatsError */ +/** @typedef {Record & KnownStatsError} StatsError */ /** * @typedef {object} KnownStatsError * @property {string} message @@ -281,14 +290,14 @@ const { makePathsRelative, parseResource } = require("../util/identifier"); * @property {string=} moduleIdentifier * @property {string=} moduleName * @property {string=} loc - * @property {string|number=} chunkId + * @property {ChunkId=} chunkId * @property {string|number=} moduleId * @property {StatsModuleTraceItem[]=} moduleTrace * @property {any=} details * @property {string=} stack */ -/** @typedef {Asset & { type: string, related: PreprocessedAsset[] }} PreprocessedAsset */ +/** @typedef {Asset & { type: string, related: PreprocessedAsset[] | undefined }} PreprocessedAsset */ /** * @template T @@ -341,15 +350,14 @@ const uniqueArray = (items, selector) => { * @param {Comparator} comparator comparator function * @returns {I[]} array of values */ -const uniqueOrderedArray = (items, selector, comparator) => { - return uniqueArray(items, selector).sort(comparator); -}; +const uniqueOrderedArray = (items, selector, comparator) => + uniqueArray(items, selector).sort(comparator); /** @template T @template R @typedef {{ [P in keyof T]: R }} MappedValues */ /** - * @template T - * @template R + * @template {object} T + * @template {object} R * @param {T} obj object to be mapped * @param {function(T[keyof T], keyof T): R} fn mapping function * @returns {MappedValues} mapped object @@ -357,7 +365,10 @@ const uniqueOrderedArray = (items, selector, comparator) => { const mapObject = (obj, fn) => { const newObj = Object.create(null); for (const key of Object.keys(obj)) { - newObj[key] = fn(obj[key], /** @type {keyof T} */ (key)); + newObj[key] = fn( + obj[/** @type {keyof T} */ (key)], + /** @type {keyof T} */ (key) + ); } return newObj; }; @@ -405,10 +416,12 @@ const EXTRACT_ERROR = { ids: (object, error, { compilation: { chunkGraph } }) => { if (typeof error !== "string") { if (error.chunk) { - object.chunkId = error.chunk.id; + object.chunkId = /** @type {ChunkId} */ (error.chunk.id); } if (error.module) { - object.moduleId = chunkGraph.getModuleId(error.module); + object.moduleId = + /** @type {ModuleId} */ + (chunkGraph.getModuleId(error.module)); } } }, @@ -470,25 +483,21 @@ const SIMPLE_EXTRACTORS = { } if (!context.cachedGetErrors) { const map = new WeakMap(); - context.cachedGetErrors = compilation => { - return ( - map.get(compilation) || - (errors => (map.set(compilation, errors), errors))( - compilation.getErrors() - ) + context.cachedGetErrors = compilation => + map.get(compilation) || + // eslint-disable-next-line no-sequences + (errors => (map.set(compilation, errors), errors))( + compilation.getErrors() ); - }; } if (!context.cachedGetWarnings) { const map = new WeakMap(); - context.cachedGetWarnings = compilation => { - return ( - map.get(compilation) || - (warnings => (map.set(compilation, warnings), warnings))( - compilation.getWarnings() - ) + context.cachedGetWarnings = compilation => + map.get(compilation) || + // eslint-disable-next-line no-sequences + (warnings => (map.set(compilation, warnings), warnings))( + compilation.getWarnings() ); - }; } if (compilation.name) { object.name = compilation.name; @@ -504,9 +513,6 @@ const SIMPLE_EXTRACTORS = { let acceptedTypes; let collapsedGroups = false; switch (logging) { - default: - acceptedTypes = new Set(); - break; case "error": acceptedTypes = new Set([LogType.error]); break; @@ -549,6 +555,9 @@ const SIMPLE_EXTRACTORS = { ]); collapsedGroups = true; break; + default: + acceptedTypes = new Set(); + break; } const cachedMakePathsRelative = makePathsRelative.bindContextCache( options.context, @@ -581,19 +590,21 @@ const SIMPLE_EXTRACTORS = { if (type === LogType.groupEnd) { groupStack.pop(); - if (groupStack.length > 0) { - currentList = groupStack[groupStack.length - 1].children; - } else { - currentList = rootList; - } + currentList = + groupStack.length > 0 + ? /** @type {KnownStatsLoggingEntry[]} */ ( + groupStack[groupStack.length - 1].children + ) + : rootList; if (depthInCollapsedGroup > 0) depthInCollapsedGroup--; continue; } - let message = undefined; + let message; if (entry.type === LogType.time) { - message = `${entry.args[0]}: ${ - entry.args[1] * 1000 + entry.args[2] / 1000000 - } ms`; + const [label, first, second] = + /** @type {[string, number, number]} */ + (entry.args); + message = `${label}: ${first * 1000 + second / 1000000} ms`; } else if (entry.args && entry.args.length > 0) { message = util.format(entry.args[0], ...entry.args.slice(1)); } @@ -636,7 +647,7 @@ const SIMPLE_EXTRACTORS = { } }, hash: (object, compilation) => { - object.hash = compilation.hash; + object.hash = /** @type {string} */ (compilation.hash); }, version: object => { object.version = require("../../package.json").version; @@ -645,18 +656,23 @@ const SIMPLE_EXTRACTORS = { object.env = _env; }, timings: (object, compilation) => { - object.time = compilation.endTime - compilation.startTime; + object.time = + /** @type {number} */ (compilation.endTime) - + /** @type {number} */ (compilation.startTime); }, builtAt: (object, compilation) => { - object.builtAt = compilation.endTime; + object.builtAt = /** @type {number} */ (compilation.endTime); }, publicPath: (object, compilation) => { object.publicPath = compilation.getPath( - compilation.outputOptions.publicPath + /** @type {TemplatePath} */ + (compilation.outputOptions.publicPath) ); }, outputPath: (object, compilation) => { - object.outputPath = compilation.outputOptions.path; + object.outputPath = /** @type {string} */ ( + compilation.outputOptions.path + ); }, assets: (object, compilation, context, options, factory) => { const { type } = context; @@ -741,7 +757,10 @@ const SIMPLE_EXTRACTORS = { compilationAuxiliaryFileToChunks } ); - const limited = spaceLimited(groupedAssets, options.assetsSpace); + const limited = spaceLimited( + groupedAssets, + /** @type {number} */ (options.assetsSpace) + ); object.assets = limited.children; object.filteredAssets = limited.filteredChildren; }, @@ -834,7 +853,8 @@ const SIMPLE_EXTRACTORS = { } const [errors, filteredBySpace] = errorsSpaceLimit( factorizedErrors, - options.errorsSpace + /** @type {number} */ + (options.errorsSpace) ); object.filteredErrorDetailsCount = filtered + filteredBySpace; object.errors = errors; @@ -867,7 +887,8 @@ const SIMPLE_EXTRACTORS = { } const [warnings, filteredBySpace] = errorsSpaceLimit( rawWarnings, - options.warningsSpace + /** @type {number} */ + (options.warningsSpace) ); object.filteredWarningDetailsCount = filtered + filteredBySpace; object.warnings = warnings; @@ -881,18 +902,31 @@ const SIMPLE_EXTRACTORS = { ) => { const { type, cachedGetWarnings } = context; object.warningsCount = countWithChildren(compilation, (c, childType) => { - if (!warningsFilter && warningsFilter.length === 0) + if ( + !warningsFilter && + /** @type {((warning: StatsError, textValue: string) => boolean)[]} */ + (warningsFilter).length === 0 + ) return cachedGetWarnings(c); return factory .create(`${type}${childType}.warnings`, cachedGetWarnings(c), context) - .filter(warning => { - const warningString = Object.keys(warning) - .map(key => `${warning[key]}`) - .join("\n"); - return !warningsFilter.some(filter => - filter(warning, warningString) - ); - }); + .filter( + /** + * @param {TODO} warning warning + * @returns {boolean} result + */ + warning => { + const warningString = Object.keys(warning) + .map( + key => + `${warning[/** @type {keyof KnownStatsError} */ (key)]}` + ) + .join("\n"); + return !warningsFilter.some(filter => + filter(warning, warningString) + ); + } + ); }); }, children: (object, compilation, context, options, factory) => { @@ -960,11 +994,12 @@ const SIMPLE_EXTRACTORS = { const { type } = context; object.related = factory.create( `${type.slice(0, -8)}.related`, - asset.related, + asset.related || [], context ); object.filteredRelated = asset.related - ? asset.related.length - object.related.length + ? asset.related.length - + /** @type {StatsAsset[]} */ (object.related).length : undefined; }, ids: ( @@ -975,10 +1010,14 @@ const SIMPLE_EXTRACTORS = { const chunks = compilationFileToChunks.get(asset.name) || []; const auxiliaryChunks = compilationAuxiliaryFileToChunks.get(asset.name) || []; - object.chunks = uniqueOrderedArray(chunks, c => c.ids, compareIds); + object.chunks = uniqueOrderedArray( + chunks, + c => /** @type {ChunkId[]} */ (c.ids), + compareIds + ); object.auxiliaryChunks = uniqueOrderedArray( auxiliaryChunks, - c => c.ids, + c => /** @type {ChunkId[]} */ (c.ids), compareIds ); }, @@ -1004,7 +1043,7 @@ const SIMPLE_EXTRACTORS = { const asset = compilation.getAsset(name); return { name, - size: asset ? asset.info.size : -1 + size: /** @type {number} */ (asset ? asset.info.size : -1) }; }; /** @type {(total: number, asset: { size: number }) => number} */ @@ -1020,7 +1059,9 @@ const SIMPLE_EXTRACTORS = { /** @type {KnownStatsChunkGroup} */ const statsChunkGroup = { name, - chunks: ids ? chunkGroup.chunks.map(c => c.id) : undefined, + chunks: ids + ? /** @type {ChunkId[]} */ (chunkGroup.chunks.map(c => c.id)) + : undefined, assets: assets.length <= chunkGroupMaxAssets ? assets : undefined, filteredAssets: assets.length <= chunkGroupMaxAssets ? 0 : assets.length, @@ -1049,7 +1090,10 @@ const SIMPLE_EXTRACTORS = { /** @type {KnownStatsChunkGroup} */ const childStatsChunkGroup = { name: group.name, - chunks: ids ? group.chunks.map(c => c.id) : undefined, + chunks: ids + ? /** @type {ChunkId[]} */ + (group.chunks.map(c => c.id)) + : undefined, assets: assets.length <= chunkGroupMaxAssets ? assets : undefined, filteredAssets: @@ -1093,7 +1137,8 @@ const SIMPLE_EXTRACTORS = { }, module: { _: (object, module, context, options, factory) => { - const { compilation, type } = context; + const { type } = context; + const compilation = /** @type {Compilation} */ (context.compilation); const built = compilation.builtModules.has(module); const codeGenerated = compilation.codeGeneratedModules.has(module); const buildTimeExecuted = @@ -1127,7 +1172,8 @@ const SIMPLE_EXTRACTORS = { }, module$visible: { _: (object, module, context, { requestShortener }, factory) => { - const { compilation, type, rootModules } = context; + const { type, rootModules } = context; + const compilation = /** @type {Compilation} */ (context.compilation); const { moduleGraph } = compilation; /** @type {Module[]} */ const path = []; @@ -1154,11 +1200,15 @@ const SIMPLE_EXTRACTORS = { identifier: module.identifier(), name: module.readableIdentifier(requestShortener), nameForCondition: module.nameForCondition(), - index: moduleGraph.getPreOrderIndex(module), - preOrderIndex: moduleGraph.getPreOrderIndex(module), - index2: moduleGraph.getPostOrderIndex(module), - postOrderIndex: moduleGraph.getPostOrderIndex(module), - cacheable: module.buildInfo.cacheable, + index: /** @type {number} */ (moduleGraph.getPreOrderIndex(module)), + preOrderIndex: /** @type {number} */ ( + moduleGraph.getPreOrderIndex(module) + ), + index2: /** @type {number} */ (moduleGraph.getPostOrderIndex(module)), + postOrderIndex: /** @type {number} */ ( + moduleGraph.getPostOrderIndex(module) + ), + cacheable: /** @type {BuildInfo} */ (module.buildInfo).cacheable, optional: module.isOptional(moduleGraph), orphan: !type.endsWith("module.modules[].module$visible") && @@ -1183,17 +1233,24 @@ const SIMPLE_EXTRACTORS = { } }, ids: (object, module, { compilation: { chunkGraph, moduleGraph } }) => { - object.id = chunkGraph.getModuleId(module); + object.id = /** @type {ModuleId} */ (chunkGraph.getModuleId(module)); const issuer = moduleGraph.getIssuer(module); object.issuerId = issuer && chunkGraph.getModuleId(issuer); - object.chunks = Array.from( - chunkGraph.getOrderedModuleChunksIterable(module, compareChunksById), - chunk => chunk.id - ); + object.chunks = + /** @type {ChunkId[]} */ + ( + Array.from( + chunkGraph.getOrderedModuleChunksIterable( + module, + compareChunksById + ), + chunk => chunk.id + ) + ); }, moduleAssets: (object, module) => { - object.assets = module.buildInfo.assets - ? Object.keys(module.buildInfo.assets) + object.assets = /** @type {BuildInfo} */ (module.buildInfo).assets + ? Object.keys(/** @type {BuildInfo} */ (module.buildInfo).assets) : []; }, reasons: (object, module, context, options, factory) => { @@ -1206,7 +1263,11 @@ const SIMPLE_EXTRACTORS = { Array.from(moduleGraph.getIncomingConnections(module)), context ); - const limited = spaceLimited(groupsReasons, options.reasonsSpace); + const limited = spaceLimited( + groupsReasons, + /** @type {number} */ + (options.reasonsSpace) + ); object.reasons = limited.children; object.filteredReasons = limited.filteredChildren; }, @@ -1299,10 +1360,11 @@ const SIMPLE_EXTRACTORS = { }, moduleIssuer: { _: (object, module, context, { requestShortener }, factory) => { - const { compilation, type } = context; + const { type } = context; + const compilation = /** @type {Compilation} */ (context.compilation); const { moduleGraph } = compilation; const profile = moduleGraph.getProfile(module); - /** @type {KnownStatsModuleIssuer} */ + /** @type {Partial} */ const statsModuleIssuer = { identifier: module.identifier(), name: module.readableIdentifier(requestShortener) @@ -1313,7 +1375,7 @@ const SIMPLE_EXTRACTORS = { } }, ids: (object, module, { compilation: { chunkGraph } }) => { - object.id = chunkGraph.getModuleId(module); + object.id = /** @type {ModuleId} */ (chunkGraph.getModuleId(module)); } }, moduleReason: { @@ -1383,13 +1445,13 @@ const SIMPLE_EXTRACTORS = { : Array.from(chunk.runtime.sort(), makePathsRelative), files: Array.from(chunk.files), auxiliaryFiles: Array.from(chunk.auxiliaryFiles).sort(compareIds), - hash: chunk.renderedHash, + hash: /** @type {string} */ (chunk.renderedHash), childrenByOrder: childIdByOrder }; Object.assign(object, statsChunk); }, ids: (object, chunk) => { - object.id = chunk.id; + object.id = /** @type {ChunkId} */ (chunk.id); }, chunkRelations: (object, chunk, { compilation: { chunkGraph } }) => { /** @type {Set} */ @@ -1402,16 +1464,17 @@ const SIMPLE_EXTRACTORS = { for (const chunkGroup of chunk.groupsIterable) { for (const parentGroup of chunkGroup.parentsIterable) { for (const chunk of parentGroup.chunks) { - parents.add(chunk.id); + parents.add(/** @type {ChunkId} */ (chunk.id)); } } for (const childGroup of chunkGroup.childrenIterable) { for (const chunk of childGroup.chunks) { - children.add(chunk.id); + children.add(/** @type {ChunkId} */ (chunk.id)); } } for (const sibling of chunkGroup.chunks) { - if (sibling !== chunk) siblings.add(sibling.id); + if (sibling !== chunk) + siblings.add(/** @type {ChunkId} */ (sibling.id)); } } object.siblings = Array.from(siblings).sort(compareIds); @@ -1473,7 +1536,7 @@ const SIMPLE_EXTRACTORS = { }, ids: (object, origin, { compilation: { chunkGraph } }) => { object.moduleId = origin.module - ? chunkGraph.getModuleId(origin.module) + ? /** @type {ModuleId} */ (chunkGraph.getModuleId(origin.module)) : undefined; } }, @@ -1501,8 +1564,12 @@ const SIMPLE_EXTRACTORS = { ); }, ids: (object, { origin, module }, { compilation: { chunkGraph } }) => { - object.originId = chunkGraph.getModuleId(origin); - object.moduleId = chunkGraph.getModuleId(module); + object.originId = + /** @type {ModuleId} */ + (chunkGraph.getModuleId(origin)); + object.moduleId = + /** @type {ModuleId} */ + (chunkGraph.getModuleId(module)); } }, moduleTraceDependency: { @@ -1526,13 +1593,13 @@ const FILTER = { } }; -/** @type {Record boolean | undefined>>} */ +/** @type {Record boolean | undefined>>} */ const FILTER_RESULTS = { "compilation.warnings": { warningsFilter: util.deprecate( (warning, context, { warningsFilter }) => { const warningString = Object.keys(warning) - .map(key => `${warning[key]}`) + .map(key => `${warning[/** @type {keyof KnownStatsError} */ (key)]}`) .join("\n"); return !warningsFilter.some(filter => filter(warning, warningString)); }, @@ -1549,7 +1616,7 @@ const MODULES_SORTER = { compareSelect( /** * @param {Module} m module - * @returns {number} depth + * @returns {number | null} depth */ m => moduleGraph.getDepth(m), compareNumbers @@ -1557,7 +1624,7 @@ const MODULES_SORTER = { compareSelect( /** * @param {Module} m module - * @returns {number} index + * @returns {number | null} index */ m => moduleGraph.getPreOrderIndex(m), compareNumbers @@ -1626,17 +1693,31 @@ const SORTERS = { } }; -const getItemSize = item => { +/** + * @template T + * @typedef {T & { children: Children[] | undefined, filteredChildren?: number }} Children + */ + +/** + * @template T + * @param {Children} item item + * @returns {number} item size + */ +const getItemSize = item => // Each item takes 1 line // + the size of the children // + 1 extra line when it has children and filteredChildren - return !item.children + !item.children ? 1 : item.filteredChildren ? 2 + getTotalSize(item.children) : 1 + getTotalSize(item.children); -}; +/** + * @template T + * @param {Children[]} children children + * @returns {number} total size + */ const getTotalSize = children => { let size = 0; for (const child of children) { @@ -1645,6 +1726,11 @@ const getTotalSize = children => { return size; }; +/** + * @template T + * @param {Children[]} children children + * @returns {number} total items + */ const getTotalItems = children => { let count = 0; for (const child of children) { @@ -1658,6 +1744,11 @@ const getTotalItems = children => { return count; }; +/** + * @template T + * @param {Children[]} children children + * @returns {Children[]} collapsed children + */ const collapse = children => { // After collapse each child must take exactly one line const newChildren = []; @@ -1677,24 +1768,33 @@ const collapse = children => { return newChildren; }; +/** + * @template T + * @param {Children[]} itemsAndGroups item and groups + * @param {number} max max + * @param {boolean=} filteredChildrenLineReserved filtered children line reserved + * @returns {Children} result + */ const spaceLimited = ( itemsAndGroups, max, filteredChildrenLineReserved = false ) => { if (max < 1) { - return { + return /** @type {Children} */ ({ children: undefined, filteredChildren: getTotalItems(itemsAndGroups) - }; + }); } - /** @type {any[] | undefined} */ - let children = undefined; + /** @type {Children[] | undefined} */ + let children; /** @type {number | undefined} */ - let filteredChildren = undefined; + let filteredChildren; // This are the groups, which take 1+ lines each + /** @type {Children[] | undefined} */ const groups = []; // The sizes of the groups are stored in groupSizes + /** @type {number[]} */ const groupSizes = []; // This are the items, which take 1 line each const items = []; @@ -1757,7 +1857,7 @@ const spaceLimited = ( // So it should always end up being smaller const headerSize = group.filteredChildren ? 2 : 1; const limited = spaceLimited( - group.children, + /** @type {Children} */ (group.children), maxGroupSize - // we should use ceil to always feet in max Math.ceil(oversize / groups.length) - @@ -1792,12 +1892,14 @@ const spaceLimited = ( } } - return { - children, - filteredChildren - }; + return /** @type {Children} */ ({ children, filteredChildren }); }; +/** + * @param {StatsError[]} errors errors + * @param {number} max max + * @returns {[StatsError[], number]} error space limit + */ const errorsSpaceLimit = (errors, max) => { let filtered = 0; // Can not fit into limit @@ -1853,18 +1955,30 @@ const errorsSpaceLimit = (errors, max) => { return [result, filtered]; }; +/** + * @template {{ size: number }} T + * @template {{ size: number }} R + * @param {(R | T)[]} children children + * @param {T[]} assets assets + * @returns {{ size: number }} asset size + */ const assetGroup = (children, assets) => { let size = 0; for (const asset of children) { size += asset.size; } - return { - size - }; + return { size }; }; +/** + * @template {{ size: number, sizes: Record }} T + * @param {Children[]} children children + * @param {KnownStatsModule[]} modules modules + * @returns {{ size: number, sizes: Record}} size and sizes + */ const moduleGroup = (children, modules) => { let size = 0; + /** @type {Record} */ const sizes = {}; for (const module of children) { size += module.size; @@ -1878,6 +1992,12 @@ const moduleGroup = (children, modules) => { }; }; +/** + * @template {{ active: boolean }} T + * @param {Children[]} children children + * @param {KnownStatsModuleReason[]} reasons reasons + * @returns {{ active: boolean }} reason group + */ const reasonGroup = (children, reasons) => { let active = false; for (const reason of children) { @@ -1891,35 +2011,36 @@ const reasonGroup = (children, reasons) => { const GROUP_EXTENSION_REGEXP = /(\.[^.]+?)(?:\?|(?: \+ \d+ modules?)?$)/; const GROUP_PATH_REGEXP = /(.+)[/\\][^/\\]+?(?:\?|(?: \+ \d+ modules?)?$)/; -/** @type {Record void>} */ +/** @typedef {Record[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void>} AssetsGroupers */ + +/** @type {AssetsGroupers} */ const ASSETS_GROUPERS = { _: (groupConfigs, context, options) => { + /** + * @param {keyof KnownStatsAsset} name name + * @param {boolean=} exclude need exclude? + */ const groupByFlag = (name, exclude) => { groupConfigs.push({ - getKeys: asset => { - return asset[name] ? ["1"] : undefined; - }, - getOptions: () => { - return { - groupChildren: !exclude, - force: exclude - }; - }, - createGroup: (key, children, assets) => { - return exclude + getKeys: asset => (asset[name] ? ["1"] : undefined), + getOptions: () => ({ + groupChildren: !exclude, + force: exclude + }), + createGroup: (key, children, assets) => + exclude ? { type: "assets by status", - [name]: !!key, + [name]: Boolean(key), filteredChildren: assets.length, ...assetGroup(children, assets) } : { type: "assets by status", - [name]: !!key, + [name]: Boolean(key), children, ...assetGroup(children, assets) - }; - } + } }); }; const { @@ -1954,41 +2075,38 @@ const ASSETS_GROUPERS = { : `*${extension}` ); while (path.length > 0) { - keys.push(path.join("/") + "/"); + keys.push(`${path.join("/")}/`); path.pop(); } - } else { - if (extension) keys.push(`*${extension}`); + } else if (extension) { + keys.push(`*${extension}`); } return keys; }, - createGroup: (key, children, assets) => { - return { - type: groupAssetsByPath ? "assets by path" : "assets by extension", - name: key, - children, - ...assetGroup(children, assets) - }; - } + createGroup: (key, children, assets) => ({ + type: groupAssetsByPath ? "assets by path" : "assets by extension", + name: key, + children, + ...assetGroup(children, assets) + }) }); } }, groupAssetsByInfo: (groupConfigs, context, options) => { + /** + * @param {string} name name + */ const groupByAssetInfoFlag = name => { groupConfigs.push({ - getKeys: asset => { - return asset.info && asset.info[name] ? ["1"] : undefined; - }, - createGroup: (key, children, assets) => { - return { - type: "assets by info", - info: { - [name]: !!key - }, - children, - ...assetGroup(children, assets) - }; - } + getKeys: asset => (asset.info && asset.info[name] ? ["1"] : undefined), + createGroup: (key, children, assets) => ({ + type: "assets by info", + info: { + [name]: Boolean(key) + }, + children, + ...assetGroup(children, assets) + }) }); }; groupByAssetInfoFlag("immutable"); @@ -1996,19 +2114,18 @@ const ASSETS_GROUPERS = { groupByAssetInfoFlag("hotModuleReplacement"); }, groupAssetsByChunk: (groupConfigs, context, options) => { + /** + * @param {keyof KnownStatsAsset} name name + */ const groupByNames = name => { groupConfigs.push({ - getKeys: asset => { - return asset[name]; - }, - createGroup: (key, children, assets) => { - return { - type: "assets by chunk", - [name]: [key], - children, - ...assetGroup(children, assets) - }; - } + getKeys: asset => /** @type {string[]} */ (asset[name]), + createGroup: (key, children, assets) => ({ + type: "assets by chunk", + [name]: [key], + children, + ...assetGroup(children, assets) + }) }); }; groupByNames("chunkNames"); @@ -2036,28 +2153,29 @@ const ASSETS_GROUPERS = { } }; -/** @type {function("module" | "chunk" | "root-of-chunk" | "nested"): Record void>} */ +/** @typedef {Record[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void>} ModulesGroupers */ + +/** @type {function("module" | "chunk" | "root-of-chunk" | "nested"): ModulesGroupers} */ const MODULES_GROUPERS = type => ({ _: (groupConfigs, context, options) => { + /** + * @param {keyof KnownStatsModule} name name + * @param {string} type type + * @param {boolean=} exclude need exclude? + */ const groupByFlag = (name, type, exclude) => { groupConfigs.push({ - getKeys: module => { - return module[name] ? ["1"] : undefined; - }, - getOptions: () => { - return { - groupChildren: !exclude, - force: exclude - }; - }, - createGroup: (key, children, modules) => { - return { - type, - [name]: !!key, - ...(exclude ? { filteredChildren: modules.length } : { children }), - ...moduleGroup(children, modules) - }; - } + getKeys: module => (module[name] ? ["1"] : undefined), + getOptions: () => ({ + groupChildren: !exclude, + force: exclude + }), + createGroup: (key, children, modules) => ({ + type, + [name]: Boolean(key), + ...(exclude ? { filteredChildren: modules.length } : { children }), + ...moduleGroup(children, modules) + }) }); }; const { @@ -2120,24 +2238,22 @@ const MODULES_GROUPERS = type => ({ } if (groupModulesByLayer) { groupConfigs.push({ - getKeys: module => { - return [module.layer]; - }, - createGroup: (key, children, modules) => { - return { - type: "modules by layer", - layer: key, - children, - ...moduleGroup(children, modules) - }; - } + getKeys: module => /** @type {string[]} */ ([module.layer]), + createGroup: (key, children, modules) => ({ + type: "modules by layer", + layer: key, + children, + ...moduleGroup(children, modules) + }) }); } if (groupModulesByPath || groupModulesByExtension) { groupConfigs.push({ getKeys: module => { if (!module.name) return; - const resource = parseResource(module.name.split("!").pop()).path; + const resource = parseResource( + /** @type {string} */ (module.name.split("!").pop()) + ).path; const dataUrl = /^data:[^,;]+/.exec(resource); if (dataUrl) return [dataUrl[0]]; const extensionMatch = @@ -2155,11 +2271,11 @@ const MODULES_GROUPERS = type => ({ : `*${extension}` ); while (path.length > 0) { - keys.push(path.join("/") + "/"); + keys.push(`${path.join("/")}/`); path.pop(); } - } else { - if (extension) keys.push(`*${extension}`); + } else if (extension) { + keys.push(`*${extension}`); } return keys; }, @@ -2201,7 +2317,24 @@ const MODULES_GROUPERS = type => ({ } }); -/** @type {Record void>>} */ +/** @typedef {Record[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void>} ModuleReasonsGroupers */ + +/** @type {ModuleReasonsGroupers} */ +const MODULE_REASONS_GROUPERS = { + groupReasonsByOrigin: groupConfigs => { + groupConfigs.push({ + getKeys: reason => /** @type {string[]} */ ([reason.module]), + createGroup: (key, children, reasons) => ({ + type: "from origin", + module: key, + children, + ...reasonGroup(children, reasons) + }) + }); + } +}; + +/** @type {Record} */ const RESULT_GROUPERS = { "compilation.assets": ASSETS_GROUPERS, "asset.related": ASSETS_GROUPERS, @@ -2209,26 +2342,14 @@ const RESULT_GROUPERS = { "chunk.modules": MODULES_GROUPERS("chunk"), "chunk.rootModules": MODULES_GROUPERS("root-of-chunk"), "module.modules": MODULES_GROUPERS("nested"), - "module.reasons": { - groupReasonsByOrigin: groupConfigs => { - groupConfigs.push({ - getKeys: reason => { - return [reason.module]; - }, - createGroup: (key, children, reasons) => { - return { - type: "from origin", - module: key, - children, - ...reasonGroup(children, reasons) - }; - } - }); - } - } + "module.reasons": MODULE_REASONS_GROUPERS }; // remove a prefixed "!" that can be specified to reverse sort order +/** + * @param {string} field a field name + * @returns {field} normalized field + */ const normalizeFieldKey = field => { if (field[0] === "!") { return field.slice(1); @@ -2237,6 +2358,10 @@ const normalizeFieldKey = field => { }; // if a field is prefixed by a "!" reverse sort order +/** + * @param {string} field a field name + * @returns {boolean} result + */ const sortOrderRegular = field => { if (field[0] === "!") { return false; @@ -2245,8 +2370,9 @@ const sortOrderRegular = field => { }; /** + * @template T * @param {string} field field name - * @returns {function(object, object): number} comparators + * @returns {function(T, T): 0 | 1 | -1} comparators */ const sortByField = field => { if (!field) { @@ -2274,8 +2400,8 @@ const sortByField = field => { return sortFn; }; +/** @type {Record[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void>} */ const ASSET_SORTERS = { - /** @type {(comparators: Function[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void} */ assetsSort: (comparators, context, { assetsSort }) => { comparators.push(sortByField(assetsSort)); }, @@ -2284,7 +2410,7 @@ const ASSET_SORTERS = { } }; -/** @type {Record void>>} */ +/** @type {Record[], context: StatsFactoryContext, options: NormalizedStatsOptions) => void>>} */ const RESULT_SORTERS = { "compilation.chunks": { chunksSort: (comparators, context, { chunksSort }) => { @@ -2361,8 +2487,14 @@ const ITEM_NAMES = { }; /** - * @param {object[]} items items to be merged - * @returns {object} an object + * @template T + * @typedef {{ name: T }} NamedObject + */ + +/** + * @template {{ name: string }} T + * @param {T[]} items items to be merged + * @returns {NamedObject} an object */ const mergeToObject = items => { const obj = Object.create(null); @@ -2372,7 +2504,10 @@ const mergeToObject = items => { return obj; }; -/** @type {Record any>} */ +/** + * @template {{ name: string }} T + * @type {Record NamedObject>} + */ const MERGER = { "compilation.entrypoints": mergeToObject, "compilation.namedChunkGroups": mergeToObject @@ -2388,7 +2523,11 @@ class DefaultStatsFactoryPlugin { compiler.hooks.compilation.tap("DefaultStatsFactoryPlugin", compilation => { compilation.hooks.statsFactory.tap( "DefaultStatsFactoryPlugin", - (stats, options, context) => { + /** + * @param {StatsFactory} stats stats factory + * @param {NormalizedStatsOptions} options stats options + */ + (stats, options) => { iterateConfig(SIMPLE_EXTRACTORS, options, (hookFor, fn) => { stats.hooks.extract .for(hookFor) @@ -2445,25 +2584,31 @@ class DefaultStatsFactoryPlugin { if (Array.isArray(options.children)) { stats.hooks.getItemFactory .for("compilation.children[].compilation") - .tap("DefaultStatsFactoryPlugin", (comp, { _index: idx }) => { - if (idx < options.children.length) { - return compilation.createStatsFactory( - compilation.createStatsOptions( - options.children[idx], - context - ) - ); + .tap( + "DefaultStatsFactoryPlugin", + /** + * @param {Compilation} comp compilation + * @param {StatsFactoryContext} options options + * @returns {StatsFactory | undefined} stats factory + */ + (comp, { _index: idx }) => { + const children = + /** @type {TODO} */ + (options.children); + if (idx < children.length) { + return compilation.createStatsFactory( + compilation.createStatsOptions(children[idx]) + ); + } } - }); + ); } else if (options.children !== true) { const childFactory = compilation.createStatsFactory( - compilation.createStatsOptions(options.children, context) + compilation.createStatsOptions(options.children) ); stats.hooks.getItemFactory .for("compilation.children[].compilation") - .tap("DefaultStatsFactoryPlugin", () => { - return childFactory; - }); + .tap("DefaultStatsFactoryPlugin", () => childFactory); } } } diff --git a/node_modules/webpack/lib/stats/DefaultStatsPresetPlugin.js b/node_modules/webpack/lib/stats/DefaultStatsPresetPlugin.js index 9837559..70e56b8 100644 --- a/node_modules/webpack/lib/stats/DefaultStatsPresetPlugin.js +++ b/node_modules/webpack/lib/stats/DefaultStatsPresetPlugin.js @@ -11,15 +11,24 @@ const RequestShortener = require("../RequestShortener"); /** @typedef {import("../Compilation")} Compilation */ /** @typedef {import("../Compilation").CreateStatsOptionsContext} CreateStatsOptionsContext */ /** @typedef {import("../Compiler")} Compiler */ +/** @typedef {import("./DefaultStatsFactoryPlugin").StatsError} StatsError */ +/** + * @param {StatsOptions} options options + * @param {StatsOptions} defaults default options + */ const applyDefaults = (options, defaults) => { - for (const key of Object.keys(defaults)) { + for (const _k of Object.keys(defaults)) { + const key = /** @type {keyof StatsOptions} */ (_k); if (typeof options[key] === "undefined") { - options[key] = defaults[key]; + /** @type {TODO} */ + (options)[key] = defaults[key]; } } }; +/** @typedef {Record} NamedPresets */ +/** @type {NamedPresets} */ const NAMED_PRESETS = { verbose: { hash: true, @@ -126,12 +135,35 @@ const NAMED_PRESETS = { } }; +/** + * @param {StatsOptions} all stats option + * @returns {boolean} true when enabled, otherwise false + */ const NORMAL_ON = ({ all }) => all !== false; +/** + * @param {StatsOptions} all stats option + * @returns {boolean} true when enabled, otherwise false + */ const NORMAL_OFF = ({ all }) => all === true; +/** + * @param {StatsOptions} all stats option + * @param {CreateStatsOptionsContext} forToString stats options context + * @returns {boolean} true when enabled, otherwise false + */ const ON_FOR_TO_STRING = ({ all }, { forToString }) => forToString ? all !== false : all === true; +/** + * @param {StatsOptions} all stats option + * @param {CreateStatsOptionsContext} forToString stats options context + * @returns {boolean} true when enabled, otherwise false + */ const OFF_FOR_TO_STRING = ({ all }, { forToString }) => forToString ? all === true : all !== false; +/** + * @param {StatsOptions} all stats option + * @param {CreateStatsOptionsContext} forToString stats options context + * @returns {boolean | "auto"} true when enabled, otherwise false + */ const AUTO_FOR_TO_STRING = ({ all }, { forToString }) => { if (all === false) return false; if (all === true) return true; @@ -139,13 +171,19 @@ const AUTO_FOR_TO_STRING = ({ all }, { forToString }) => { return true; }; -/** @type {Record any>} */ +/** @typedef {Record StatsOptions[keyof StatsOptions] | RequestShortener>} Defaults */ + +/** @type {Defaults} */ const DEFAULTS = { context: (options, context, compilation) => compilation.compiler.context, requestShortener: (options, context, compilation) => compilation.compiler.context === options.context ? compilation.requestShortener - : new RequestShortener(options.context, compilation.compiler.root), + : new RequestShortener( + /** @type {string} */ + (options.context), + compilation.compiler.root + ), performance: NORMAL_ON, hash: OFF_FOR_TO_STRING, env: NORMAL_OFF, @@ -235,6 +273,10 @@ const DEFAULTS = { colors: () => false }; +/** + * @param {string | ({ test: function(string): boolean }) | (function(string): boolean) | boolean} item item to normalize + * @returns {(function(string): boolean) | undefined} normalize fn + */ const normalizeFilter = item => { if (typeof item === "string") { const regExp = new RegExp( @@ -253,6 +295,7 @@ const normalizeFilter = item => { } }; +/** @type {Record} */ const NORMALIZER = { excludeModules: value => { if (!Array.isArray(value)) { @@ -270,20 +313,32 @@ const NORMALIZER = { if (!Array.isArray(value)) { value = value ? [value] : []; } - return value.map(filter => { - if (typeof filter === "string") { - return (warning, warningString) => warningString.includes(filter); + /** + * @callback WarningFilterFn + * @param {StatsError} warning warning + * @param {string} warningString warning string + * @returns {boolean} result + */ + return value.map( + /** + * @param {StatsOptions["warningsFilter"]} filter a warning filter + * @returns {WarningFilterFn} result + */ + filter => { + if (typeof filter === "string") { + return (warning, warningString) => warningString.includes(filter); + } + if (filter instanceof RegExp) { + return (warning, warningString) => filter.test(warningString); + } + if (typeof filter === "function") { + return filter; + } + throw new Error( + `Can only filter warnings with Strings or RegExps. (Given: ${filter})` + ); } - if (filter instanceof RegExp) { - return (warning, warningString) => filter.test(warningString); - } - if (typeof filter === "function") { - return filter; - } - throw new Error( - `Can only filter warnings with Strings or RegExps. (Given: ${filter})` - ); - }); + ); }, logging: value => { if (value === true) value = "log"; @@ -306,7 +361,7 @@ class DefaultStatsPresetPlugin { apply(compiler) { compiler.hooks.compilation.tap("DefaultStatsPresetPlugin", compilation => { for (const key of Object.keys(NAMED_PRESETS)) { - const defaults = NAMED_PRESETS[key]; + const defaults = NAMED_PRESETS[/** @type {keyof NamedPresets} */ (key)]; compilation.hooks.statsPreset .for(key) .tap("DefaultStatsPresetPlugin", (options, context) => { diff --git a/node_modules/webpack/lib/stats/DefaultStatsPrinterPlugin.js b/node_modules/webpack/lib/stats/DefaultStatsPrinterPlugin.js index 89d57c5..419311a 100644 --- a/node_modules/webpack/lib/stats/DefaultStatsPrinterPlugin.js +++ b/node_modules/webpack/lib/stats/DefaultStatsPrinterPlugin.js @@ -6,7 +6,10 @@ "use strict"; /** @typedef {import("../Compiler")} Compiler */ +/** @typedef {import("./DefaultStatsFactoryPlugin").KnownStatsChunkGroup} KnownStatsChunkGroup */ /** @typedef {import("./StatsPrinter")} StatsPrinter */ +/** @typedef {import("./StatsPrinter").KnownStatsPrinterColorFn} KnownStatsPrinterColorFn */ +/** @typedef {import("./StatsPrinter").KnownStatsPrinterFormaters} KnownStatsPrinterFormaters */ /** @typedef {import("./StatsPrinter").StatsPrinterContext} StatsPrinterContext */ const DATA_URI_CONTENT_LENGTH = 16; @@ -22,9 +25,8 @@ const plural = (n, singular, plural) => (n === 1 ? singular : plural); /** * @param {Record} sizes sizes by source type - * @param {object} options options - * @param {(number) => string=} options.formatSize size formatter - * @returns {string} text + * @param {StatsPrinterContext} options options + * @returns {string | undefined} text */ const printSizes = (sizes, { formatSize = n => `${n}` }) => { const keys = Object.keys(sizes); @@ -56,7 +58,9 @@ const getResourceName = resource => { * @returns {[string,string]} prefix and module name */ const getModuleName = name => { - const [, prefix, resource] = /^(.*!)?([^!]*)$/.exec(name); + const [, prefix, resource] = + /** @type {[any, string, string]} */ + (/** @type {unknown} */ (/^(.*!)?([^!]*)$/.exec(name))); if (resource.length > MAX_MODULE_IDENTIFIER_LENGTH) { const truncatedResource = `${resource.slice( @@ -86,22 +90,29 @@ const mapLines = (str, fn) => str.split("\n").map(fn).join("\n"); */ const twoDigit = n => (n >= 10 ? `${n}` : `0${n}`); -const isValidId = id => { - return typeof id === "number" || id; -}; +/** + * @param {string | number} id an id + * @returns {boolean | string} is i + */ +const isValidId = id => typeof id === "number" || id; /** * @template T - * @param {Array} list of items + * @param {Array | undefined} list of items * @param {number} count number of items to show * @returns {string} string representation of list */ -const moreCount = (list, count) => { - return list && list.length > 0 ? `+ ${count}` : `${count}`; -}; +const moreCount = (list, count) => + list && list.length > 0 ? `+ ${count}` : `${count}`; -/** @type {Record string | void>} */ -const SIMPLE_PRINTERS = { +/** + * @template T + * @template {keyof T} K + * @typedef {{ [P in K]-?: T[P] }} WithRequired + */ + +/** @type {Record & Required & WithRequired, printer: StatsPrinter) => string | undefined>} */ +const COMPILATION_SIMPLE_PRINTERS = { "compilation.summary!": ( _, { @@ -125,14 +136,16 @@ const SIMPLE_PRINTERS = { ) => { const root = type === "compilation.summary!"; const warningsMessage = - warningsCount > 0 + /** @type {number} */ (warningsCount) > 0 ? yellow( - `${warningsCount} ${plural(warningsCount, "warning", "warnings")}` + `${warningsCount} ${plural(/** @type {number} */ (warningsCount), "warning", "warnings")}` ) : ""; const errorsMessage = - errorsCount > 0 - ? red(`${errorsCount} ${plural(errorsCount, "error", "errors")}`) + /** @type {number} */ (errorsCount) > 0 + ? red( + `${errorsCount} ${plural(/** @type {number} */ (errorsCount), "error", "errors")}` + ) : ""; const timeMessage = root && time ? ` in ${formatTime(time)}` : ""; const hashMessage = hash ? ` (${hash})` : ""; @@ -161,7 +174,7 @@ const SIMPLE_PRINTERS = { } else if (errorsCount === 0 && warningsCount === 0) { statusMessage = `compiled ${green("successfully")}`; } else { - statusMessage = `compiled`; + statusMessage = "compiled"; } if ( builtAtMessage || @@ -258,11 +271,12 @@ const SIMPLE_PRINTERS = { "compilation.warningsInChildren!": (_, { yellow, compilation }) => { if ( !compilation.children && - compilation.warningsCount > 0 && + /** @type {number} */ (compilation.warningsCount) > 0 && compilation.warnings ) { const childWarnings = - compilation.warningsCount - compilation.warnings.length; + /** @type {number} */ (compilation.warningsCount) - + compilation.warnings.length; if (childWarnings > 0) { return yellow( `${childWarnings} ${plural( @@ -281,10 +295,12 @@ const SIMPLE_PRINTERS = { "compilation.errorsInChildren!": (_, { red, compilation }) => { if ( !compilation.children && - compilation.errorsCount > 0 && + /** @type {number} */ (compilation.errorsCount) > 0 && compilation.errors ) { - const childErrors = compilation.errorsCount - compilation.errors.length; + const childErrors = + /** @type {number} */ (compilation.errorsCount) - + compilation.errors.length; if (childErrors > 0) { return red( `${childErrors} ${plural( @@ -299,15 +315,16 @@ const SIMPLE_PRINTERS = { ); } } - }, + } +}; +/** @type {Record & Required & WithRequired, printer: StatsPrinter) => string | undefined>} */ +const ASSET_SIMPLE_PRINTERS = { "asset.type": type => type, "asset.name": (name, { formatFilename, asset: { isOverSizeLimit } }) => formatFilename(name, isOverSizeLimit), - "asset.size": ( - size, - { asset: { isOverSizeLimit }, yellow, green, formatSize } - ) => (isOverSizeLimit ? yellow(formatSize(size)) : formatSize(size)), + "asset.size": (size, { asset: { isOverSizeLimit }, yellow, formatSize }) => + isOverSizeLimit ? yellow(formatSize(size)) : formatSize(size), "asset.emitted": (emitted, { green, formatFlag }) => emitted ? green(formatFlag("emitted")) : undefined, "asset.comparedForEmit": (comparedForEmit, { yellow, formatFlag }) => @@ -356,8 +373,11 @@ const SIMPLE_PRINTERS = { assetChunk: (id, { formatChunkId }) => formatChunkId(id), assetChunkName: name => name, - assetChunkIdHint: name => name, + assetChunkIdHint: name => name +}; +/** @type {Record & Required & WithRequired, printer: StatsPrinter) => string | undefined>} */ +const MODULE_SIMPLE_PRINTERS = { "module.type": type => (type !== "module" ? type : undefined), "module.id": (id, { formatModuleId }) => isValidId(id) ? formatModuleId(id) : undefined, @@ -433,11 +453,11 @@ const SIMPLE_PRINTERS = { providedExportsCount === usedExports.length ) { return cyan(formatFlag("all exports used")); - } else { - return cyan( - formatFlag(`only some exports used: ${usedExports.join(", ")}`) - ); } + + return cyan( + formatFlag(`only some exports used: ${usedExports.join(", ")}`) + ); } } }, @@ -470,11 +490,17 @@ const SIMPLE_PRINTERS = { "modules" )}` : undefined, - "module.separator!": () => "\n", + "module.separator!": () => "\n" +}; +/** @type {Record & Required & WithRequired, printer: StatsPrinter) => string | undefined>} */ +const MODULE_ISSUER_PRINTERS = { "moduleIssuer.id": (id, { formatModuleId }) => formatModuleId(id), - "moduleIssuer.profile.total": (value, { formatTime }) => formatTime(value), + "moduleIssuer.profile.total": (value, { formatTime }) => formatTime(value) +}; +/** @type {Record & Required & WithRequired, printer: StatsPrinter) => string | undefined>} */ +const MODULE_REASON_PRINTERS = { "moduleReason.type": type => type, "moduleReason.userRequest": (userRequest, { cyan }) => cyan(getResourceName(userRequest)), @@ -496,8 +522,11 @@ const SIMPLE_PRINTERS = { "reason", "reasons" )}` - : undefined, + : undefined +}; +/** @type {Record & Required & WithRequired, printer: StatsPrinter) => string | undefined>} */ +const MODULE_PROFILE_PRINTERS = { "module.profile.total": (value, { formatTime }) => formatTime(value), "module.profile.resolving": (value, { formatTime }) => `resolving: ${formatTime(value)}`, @@ -512,8 +541,11 @@ const SIMPLE_PRINTERS = { "module.profile.additionalResolving": (value, { formatTime }) => value ? `additional resolving: ${formatTime(value)}` : undefined, "module.profile.additionalIntegration": (value, { formatTime }) => - value ? `additional integration: ${formatTime(value)}` : undefined, + value ? `additional integration: ${formatTime(value)}` : undefined +}; +/** @type {Record & Required & WithRequired, printer: StatsPrinter) => string | undefined>} */ +const CHUNK_GROUP_PRINTERS = { "chunkGroup.kind!": (_, { chunkGroupKind }) => chunkGroupKind, "chunkGroup.separator!": () => "\n", "chunkGroup.name": (name, { bold }) => bold(name), @@ -541,10 +573,11 @@ const SIMPLE_PRINTERS = { "chunkGroup.is!": () => "=", "chunkGroupAsset.name": (asset, { green }) => green(asset), "chunkGroupAsset.size": (size, { formatSize, chunkGroup }) => - chunkGroup.assets.length > 1 || + chunkGroup.assets && + (chunkGroup.assets.length > 1 || (chunkGroup.auxiliaryAssets && chunkGroup.auxiliaryAssets.length > 0) ? formatSize(size) - : undefined, + : undefined), "chunkGroup.children": (children, context, printer) => Array.isArray(children) ? undefined @@ -560,8 +593,11 @@ const SIMPLE_PRINTERS = { "chunkGroupChild.assets[]": (file, { formatFilename }) => formatFilename(file), "chunkGroupChild.chunks[]": (id, { formatChunkId }) => formatChunkId(id), - "chunkGroupChild.name": name => (name ? `(name: ${name})` : undefined), + "chunkGroupChild.name": name => (name ? `(name: ${name})` : undefined) +}; +/** @type {Record & Required & WithRequired, printer: StatsPrinter) => string | undefined>} */ +const CHUNK_PRINTERS = { "chunk.id": (id, { formatChunkId }) => formatChunkId(id), "chunk.files[]": (file, { formatFilename }) => formatFilename(file), "chunk.names[]": name => name, @@ -611,8 +647,11 @@ const SIMPLE_PRINTERS = { "chunkOrigin.moduleId": (moduleId, { formatModuleId }) => isValidId(moduleId) ? formatModuleId(moduleId) : undefined, "chunkOrigin.moduleName": (moduleName, { bold }) => bold(moduleName), - "chunkOrigin.loc": loc => loc, + "chunkOrigin.loc": loc => loc +}; +/** @type {Record & Required & WithRequired, printer: StatsPrinter) => string | undefined>} */ +const ERROR_PRINTERS = { "error.compilerPath": (compilerPath, { bold }) => compilerPath ? bold(`(${compilerPath})`) : undefined, "error.chunkId": (chunkId, { formatChunkId }) => @@ -622,21 +661,23 @@ const SIMPLE_PRINTERS = { "error.chunkInitial": (chunkInitial, { formatFlag }) => chunkInitial ? formatFlag("initial") : undefined, "error.file": (file, { bold }) => bold(file), - "error.moduleName": (moduleName, { bold }) => { - return moduleName.includes("!") + "error.moduleName": (moduleName, { bold }) => + moduleName.includes("!") ? `${bold(moduleName.replace(/^(\s|\S)*!/, ""))} (${moduleName})` - : `${bold(moduleName)}`; - }, + : `${bold(moduleName)}`, "error.loc": (loc, { green }) => green(loc), "error.message": (message, { bold, formatError }) => - message.includes("\u001b[") ? message : bold(formatError(message)), + message.includes("\u001B[") ? message : bold(formatError(message)), "error.details": (details, { formatError }) => formatError(details), "error.filteredDetails": filteredDetails => filteredDetails ? `+ ${filteredDetails} hidden lines` : undefined, "error.stack": stack => stack, "error.moduleTrace": moduleTrace => undefined, - "error.separator!": () => "\n", + "error.separator!": () => "\n" +}; +/** @type {Record & Required & WithRequired, printer: StatsPrinter) => string | undefined>} */ +const LOG_ENTRY_PRINTERS = { "loggingEntry(error).loggingEntry.message": (message, { red }) => mapLines(message, x => ` ${red(x)}`), "loggingEntry(warn).loggingEntry.message": (message, { yellow }) => @@ -666,20 +707,26 @@ const SIMPLE_PRINTERS = { "loggingEntry.trace[]": trace => trace ? mapLines(trace, x => `| ${x}`) : undefined, - "moduleTraceItem.originName": originName => originName, - loggingGroup: loggingGroup => loggingGroup.entries.length === 0 ? "" : undefined, "loggingGroup.debug": (flag, { red }) => (flag ? red("DEBUG") : undefined), "loggingGroup.name": (name, { bold }) => bold(`LOG from ${name}`), "loggingGroup.separator!": () => "\n", "loggingGroup.filteredEntries": filteredEntries => - filteredEntries > 0 ? `+ ${filteredEntries} hidden lines` : undefined, + filteredEntries > 0 ? `+ ${filteredEntries} hidden lines` : undefined +}; +/** @type {Record & Required & WithRequired, printer: StatsPrinter) => string | undefined>} */ +const MODULE_TRACE_ITEM_PRINTERS = { + "moduleTraceItem.originName": originName => originName +}; + +/** @type {Record & Required & WithRequired, printer: StatsPrinter) => string | undefined>} */ +const MODULE_TRACE_DEPENDENCY_PRINTERS = { "moduleTraceDependency.loc": loc => loc }; -/** @type {Record} */ +/** @type {Record} */ const ITEM_NAMES = { "compilation.assets[]": "asset", "compilation.modules[]": "module", @@ -908,19 +955,27 @@ const PREFERRED_ORDERS = { loggingEntry: ["message", "trace", "children"] }; +/** @typedef {(items: string[]) => string | undefined} SimpleItemsJoiner */ + +/** @type {SimpleItemsJoiner} */ const itemsJoinOneLine = items => items.filter(Boolean).join(" "); +/** @type {SimpleItemsJoiner} */ const itemsJoinOneLineBrackets = items => items.length > 0 ? `(${items.filter(Boolean).join(" ")})` : undefined; +/** @type {SimpleItemsJoiner} */ const itemsJoinMoreSpacing = items => items.filter(Boolean).join("\n\n"); +/** @type {SimpleItemsJoiner} */ const itemsJoinComma = items => items.filter(Boolean).join(", "); +/** @type {SimpleItemsJoiner} */ const itemsJoinCommaBrackets = items => items.length > 0 ? `(${items.filter(Boolean).join(", ")})` : undefined; +/** @type {function(string): SimpleItemsJoiner} */ const itemsJoinCommaBracketsWithName = name => items => items.length > 0 ? `(${name}: ${items.filter(Boolean).join(", ")})` : undefined; -/** @type {Record string>} */ +/** @type {Record} */ const SIMPLE_ITEMS_JOINER = { "chunk.parents": itemsJoinOneLine, "chunk.siblings": itemsJoinOneLine, @@ -952,18 +1007,27 @@ const SIMPLE_ITEMS_JOINER = { "compilation.errors": itemsJoinMoreSpacing, "compilation.warnings": itemsJoinMoreSpacing, "compilation.logging": itemsJoinMoreSpacing, - "compilation.children": items => indent(itemsJoinMoreSpacing(items), " "), + "compilation.children": items => + indent(/** @type {string} */ (itemsJoinMoreSpacing(items)), " "), "moduleTraceItem.dependencies": itemsJoinOneLine, "loggingEntry.children": items => indent(items.filter(Boolean).join("\n"), " ", false) }; +/** + * @param {Item[]} items items + * @returns {string} result + */ const joinOneLine = items => items .map(item => item.content) .filter(Boolean) .join(" "); +/** + * @param {Item[]} items items + * @returns {string} result + */ const joinInBrackets = items => { const res = []; let mode = 0; @@ -1006,13 +1070,24 @@ const joinInBrackets = items => { return res.join(""); }; +/** + * @param {string} str a string + * @param {string} prefix prefix + * @param {boolean=} noPrefixInFirstLine need prefix in the first line? + * @returns {string} result + */ const indent = (str, prefix, noPrefixInFirstLine) => { - const rem = str.replace(/\n([^\n])/g, "\n" + prefix + "$1"); + const rem = str.replace(/\n([^\n])/g, `\n${prefix}$1`); if (noPrefixInFirstLine) return rem; const ind = str[0] === "\n" ? "" : prefix; return ind + rem; }; +/** + * @param {(false | Item)[]} items items + * @param {string} indenter indenter + * @returns {string} result + */ const joinExplicitNewLine = (items, indenter) => { let firstInLine = true; let first = true; @@ -1027,22 +1102,34 @@ const joinExplicitNewLine = (items, indenter) => { first = false; const noJoiner = firstInLine || content.startsWith("\n"); firstInLine = content.endsWith("\n"); - return noJoiner ? content : " " + content; + return noJoiner ? content : ` ${content}`; }) .filter(Boolean) .join("") .trim(); }; +/** + * @param {boolean} error is an error + * @returns {SimpleElementJoiner} joiner + */ const joinError = error => + /** + * @param {Item[]} items items + * @param {Required} ctx context + * @returns {string} result + */ (items, { red, yellow }) => `${error ? red("ERROR") : yellow("WARNING")} in ${joinExplicitNewLine( items, "" )}`; -/** @type {Record string>} */ +/** @typedef {{ element: string, content: string }} Item */ +/** @typedef {(items: Item[], context: Required) => string} SimpleElementJoiner */ + +/** @type {Record} */ const SIMPLE_ELEMENT_JOINERS = { compilation: items => { const result = []; @@ -1119,23 +1206,20 @@ const SIMPLE_ELEMENT_JOINERS = { }, chunk: items => { let hasEntry = false; - return ( - "chunk " + - joinExplicitNewLine( - items.filter(item => { - switch (item.element) { - case "entry": - if (item.content) hasEntry = true; - break; - case "initial": - if (hasEntry) return false; - break; - } - return true; - }), - " " - ) - ); + return `chunk ${joinExplicitNewLine( + items.filter(item => { + switch (item.element) { + case "entry": + if (item.content) hasEntry = true; + break; + case "initial": + if (hasEntry) return false; + break; + } + return true; + }), + " " + )}`; }, "chunk.childrenByOrder[]": items => `(${joinOneLine(items)})`, chunkGroup: items => joinExplicitNewLine(items, " "), @@ -1196,23 +1280,27 @@ const SIMPLE_ELEMENT_JOINERS = { }, "module.profile": joinInBrackets, moduleIssuer: joinOneLine, - chunkOrigin: items => "> " + joinOneLine(items), + chunkOrigin: items => `> ${joinOneLine(items)}`, "errors[].error": joinError(true), "warnings[].error": joinError(false), loggingGroup: items => joinExplicitNewLine(items, "").trimEnd(), - moduleTraceItem: items => " @ " + joinOneLine(items), + moduleTraceItem: items => ` @ ${joinOneLine(items)}`, moduleTraceDependency: joinOneLine }; +/** @typedef {"bold" | "yellow" | "red" | "green" | "cyan" | "magenta"} ColorNames */ + +/** @type {Record} */ const AVAILABLE_COLORS = { - bold: "\u001b[1m", - yellow: "\u001b[1m\u001b[33m", - red: "\u001b[1m\u001b[31m", - green: "\u001b[1m\u001b[32m", - cyan: "\u001b[1m\u001b[36m", - magenta: "\u001b[1m\u001b[35m" + bold: "\u001B[1m", + yellow: "\u001B[1m\u001B[33m", + red: "\u001B[1m\u001B[31m", + green: "\u001B[1m\u001B[32m", + cyan: "\u001B[1m\u001B[36m", + magenta: "\u001B[1m\u001B[35m" }; +/** @type {Record & StatsPrinterContext, ...any): string>} */ const AVAILABLE_FORMATS = { formatChunkId: (id, { yellow }, direction) => { switch (direction) { @@ -1256,13 +1344,12 @@ const AVAILABLE_FORMATS = { else if (time < times[2]) return bold(`${time}${unit}`); else if (time < times[1]) return green(`${time}${unit}`); else if (time < times[0]) return yellow(`${time}${unit}`); - else return red(`${time}${unit}`); - } else { - return `${boldQuantity ? bold(time) : time}${unit}`; + return red(`${time}${unit}`); } + return `${boldQuantity ? bold(time) : time}${unit}`; }, formatError: (message, { green, yellow, red }) => { - if (message.includes("\u001b[")) return message; + if (message.includes("\u001B[")) return message; const highlights = [ { regExp: /(Did you mean .+)/g, format: green }, { @@ -1290,23 +1377,36 @@ const AVAILABLE_FORMATS = { } ]; for (const { regExp, format } of highlights) { - message = message.replace(regExp, (match, content) => { - return match.replace(content, format(content)); - }); + message = message.replace( + regExp, + /** + * @param {string} match match + * @param {string} content content + * @returns {string} result + */ + (match, content) => match.replace(content, format(content)) + ); } return message; } }; +/** @typedef {function(string): string} ResultModifierFn */ +/** @type {Record} */ const RESULT_MODIFIER = { - "module.modules": result => { - return indent(result, "| "); - } + "module.modules": result => indent(result, "| ") }; +/** + * @param {string[]} array array + * @param {string[]} preferredOrder preferred order + * @returns {string[]} result + */ const createOrder = (array, preferredOrder) => { const originalArray = array.slice(); + /** @type {Set} */ const set = new Set(array); + /** @type {Set} */ const usedSet = new Set(); array.length = 0; for (const element of preferredOrder) { @@ -1333,49 +1433,218 @@ class DefaultStatsPrinterPlugin { compiler.hooks.compilation.tap("DefaultStatsPrinterPlugin", compilation => { compilation.hooks.statsPrinter.tap( "DefaultStatsPrinterPlugin", - (stats, options, context) => { + (stats, options) => { // Put colors into context stats.hooks.print .for("compilation") .tap("DefaultStatsPrinterPlugin", (compilation, context) => { for (const color of Object.keys(AVAILABLE_COLORS)) { + const name = /** @type {ColorNames} */ (color); + /** @type {string | undefined} */ let start; if (options.colors) { if ( typeof options.colors === "object" && - typeof options.colors[color] === "string" + typeof options.colors[name] === "string" ) { - start = options.colors[color]; + start = options.colors[name]; } else { - start = AVAILABLE_COLORS[color]; + start = AVAILABLE_COLORS[name]; } } if (start) { + /** + * @param {string} str string + * @returns {string} string with color + */ context[color] = str => `${start}${ typeof str === "string" ? str.replace( - /((\u001b\[39m|\u001b\[22m|\u001b\[0m)+)/g, + /((\u001B\[39m|\u001B\[22m|\u001B\[0m)+)/g, `$1${start}` ) : str - }\u001b[39m\u001b[22m`; + }\u001B[39m\u001B[22m`; } else { + /** + * @param {string} str string + * @returns {string} str string + */ context[color] = str => str; } } for (const format of Object.keys(AVAILABLE_FORMATS)) { - context[format] = (content, ...args) => - AVAILABLE_FORMATS[format](content, context, ...args); + context[format] = + /** + * @param {string | number} content content + * @param {...TODO} args args + * @returns {string} result + */ + (content, ...args) => + AVAILABLE_FORMATS[format]( + content, + /** @type {Required & StatsPrinterContext} */ + (context), + ...args + ); } context.timeReference = compilation.time; }); - for (const key of Object.keys(SIMPLE_PRINTERS)) { + for (const key of Object.keys(COMPILATION_SIMPLE_PRINTERS)) { stats.hooks.print .for(key) .tap("DefaultStatsPrinterPlugin", (obj, ctx) => - SIMPLE_PRINTERS[key](obj, ctx, stats) + COMPILATION_SIMPLE_PRINTERS[key]( + obj, + /** @type {Required & Required & WithRequired} */ + (ctx), + stats + ) + ); + } + + for (const key of Object.keys(ASSET_SIMPLE_PRINTERS)) { + stats.hooks.print + .for(key) + .tap("DefaultStatsPrinterPlugin", (obj, ctx) => + ASSET_SIMPLE_PRINTERS[key]( + obj, + /** @type {Required & Required & WithRequired} */ + (ctx), + stats + ) + ); + } + + for (const key of Object.keys(MODULE_SIMPLE_PRINTERS)) { + stats.hooks.print + .for(key) + .tap("DefaultStatsPrinterPlugin", (obj, ctx) => + MODULE_SIMPLE_PRINTERS[key]( + obj, + /** @type {Required & Required & WithRequired} */ + (ctx), + stats + ) + ); + } + + for (const key of Object.keys(MODULE_ISSUER_PRINTERS)) { + stats.hooks.print + .for(key) + .tap("DefaultStatsPrinterPlugin", (obj, ctx) => + MODULE_ISSUER_PRINTERS[key]( + obj, + /** @type {Required & Required & WithRequired} */ + (ctx), + stats + ) + ); + } + + for (const key of Object.keys(MODULE_REASON_PRINTERS)) { + stats.hooks.print + .for(key) + .tap("DefaultStatsPrinterPlugin", (obj, ctx) => + MODULE_REASON_PRINTERS[key]( + obj, + /** @type {Required & Required & WithRequired} */ + (ctx), + stats + ) + ); + } + + for (const key of Object.keys(MODULE_PROFILE_PRINTERS)) { + stats.hooks.print + .for(key) + .tap("DefaultStatsPrinterPlugin", (obj, ctx) => + MODULE_PROFILE_PRINTERS[key]( + obj, + /** @type {Required & Required & WithRequired} */ + (ctx), + stats + ) + ); + } + + for (const key of Object.keys(CHUNK_GROUP_PRINTERS)) { + stats.hooks.print + .for(key) + .tap("DefaultStatsPrinterPlugin", (obj, ctx) => + CHUNK_GROUP_PRINTERS[key]( + obj, + /** @type {Required & Required & WithRequired} */ + (ctx), + stats + ) + ); + } + + for (const key of Object.keys(CHUNK_PRINTERS)) { + stats.hooks.print + .for(key) + .tap("DefaultStatsPrinterPlugin", (obj, ctx) => + CHUNK_PRINTERS[key]( + obj, + /** @type {Required & Required & WithRequired} */ + (ctx), + stats + ) + ); + } + + for (const key of Object.keys(ERROR_PRINTERS)) { + stats.hooks.print + .for(key) + .tap("DefaultStatsPrinterPlugin", (obj, ctx) => + ERROR_PRINTERS[key]( + obj, + /** @type {Required & Required & WithRequired} */ + (ctx), + stats + ) + ); + } + + for (const key of Object.keys(LOG_ENTRY_PRINTERS)) { + stats.hooks.print + .for(key) + .tap("DefaultStatsPrinterPlugin", (obj, ctx) => + LOG_ENTRY_PRINTERS[key]( + obj, + /** @type {Required & Required & WithRequired} */ + (ctx), + stats + ) + ); + } + + for (const key of Object.keys(MODULE_TRACE_DEPENDENCY_PRINTERS)) { + stats.hooks.print + .for(key) + .tap("DefaultStatsPrinterPlugin", (obj, ctx) => + MODULE_TRACE_DEPENDENCY_PRINTERS[key]( + obj, + /** @type {Required & Required & WithRequired} */ + (ctx), + stats + ) + ); + } + + for (const key of Object.keys(MODULE_TRACE_ITEM_PRINTERS)) { + stats.hooks.print + .for(key) + .tap("DefaultStatsPrinterPlugin", (obj, ctx) => + MODULE_TRACE_ITEM_PRINTERS[key]( + obj, + /** @type {Required & Required & WithRequired} */ + (ctx), + stats + ) ); } @@ -1409,7 +1678,7 @@ class DefaultStatsPrinterPlugin { const joiner = SIMPLE_ELEMENT_JOINERS[key]; stats.hooks.printElements .for(key) - .tap("DefaultStatsPrinterPlugin", joiner); + .tap("DefaultStatsPrinterPlugin", /** @type {TODO} */ (joiner)); } for (const key of Object.keys(RESULT_MODIFIER)) { diff --git a/node_modules/webpack/lib/stats/StatsFactory.js b/node_modules/webpack/lib/stats/StatsFactory.js index c3a3f5d..b668369 100644 --- a/node_modules/webpack/lib/stats/StatsFactory.js +++ b/node_modules/webpack/lib/stats/StatsFactory.js @@ -11,83 +11,108 @@ const smartGrouping = require("../util/smartGrouping"); /** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../Compilation")} Compilation */ +/** @typedef {import("../Compilation").NormalizedStatsOptions} NormalizedStatsOptions */ /** @typedef {import("../Module")} Module */ /** @typedef {import("../WebpackError")} WebpackError */ +/** @typedef {import("../util/comparators").Comparator} Comparator */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ - /** @typedef {import("../util/smartGrouping").GroupConfig} GroupConfig */ /** * @typedef {object} KnownStatsFactoryContext * @property {string} type - * @property {function(string): string=} makePathsRelative - * @property {Compilation=} compilation - * @property {Set=} rootModules - * @property {Map=} compilationFileToChunks - * @property {Map=} compilationAuxiliaryFileToChunks - * @property {RuntimeSpec=} runtime - * @property {function(Compilation): WebpackError[]=} cachedGetErrors - * @property {function(Compilation): WebpackError[]=} cachedGetWarnings + * @property {function(string): string} makePathsRelative + * @property {Compilation} compilation + * @property {Set} rootModules + * @property {Map} compilationFileToChunks + * @property {Map} compilationAuxiliaryFileToChunks + * @property {RuntimeSpec} runtime + * @property {function(Compilation): WebpackError[]} cachedGetErrors + * @property {function(Compilation): WebpackError[]} cachedGetWarnings */ -/** @typedef {KnownStatsFactoryContext & Record} StatsFactoryContext */ +/** @typedef {Record & KnownStatsFactoryContext} StatsFactoryContext */ + +/** @typedef {any} CreatedObject */ +/** @typedef {any} FactoryData */ +/** @typedef {any} FactoryDataItem */ +/** @typedef {any} Result */ +/** @typedef {Record} ObjectForExtract */ + +/** + * @typedef {object} StatsFactoryHooks + * @property {HookMap>} extract + * @property {HookMap>} filter + * @property {HookMap>} sort + * @property {HookMap>} filterSorted + * @property {HookMap>} groupResults + * @property {HookMap>} sortResults + * @property {HookMap>} filterResults + * @property {HookMap>} merge + * @property {HookMap>} result + * @property {HookMap>} getItemName + * @property {HookMap>} getItemFactory + */ + +/** + * @template T + * @typedef {Map} Caches + */ class StatsFactory { constructor() { + /** @type {StatsFactoryHooks} */ this.hooks = Object.freeze({ - /** @type {HookMap>} */ extract: new HookMap( () => new SyncBailHook(["object", "data", "context"]) ), - /** @type {HookMap>} */ filter: new HookMap( () => new SyncBailHook(["item", "context", "index", "unfilteredIndex"]) ), - /** @type {HookMap>} */ sort: new HookMap(() => new SyncBailHook(["comparators", "context"])), - /** @type {HookMap>} */ filterSorted: new HookMap( () => new SyncBailHook(["item", "context", "index", "unfilteredIndex"]) ), - /** @type {HookMap>} */ groupResults: new HookMap( () => new SyncBailHook(["groupConfigs", "context"]) ), - /** @type {HookMap>} */ sortResults: new HookMap( () => new SyncBailHook(["comparators", "context"]) ), - /** @type {HookMap>} */ filterResults: new HookMap( () => new SyncBailHook(["item", "context", "index", "unfilteredIndex"]) ), - /** @type {HookMap>} */ merge: new HookMap(() => new SyncBailHook(["items", "context"])), - /** @type {HookMap>} */ result: new HookMap(() => new SyncWaterfallHook(["result", "context"])), - /** @type {HookMap>} */ getItemName: new HookMap(() => new SyncBailHook(["item", "context"])), - /** @type {HookMap>} */ getItemFactory: new HookMap(() => new SyncBailHook(["item", "context"])) }); const hooks = this.hooks; - this._caches = - /** @type {Record[]>>} */ ({}); + this._caches = /** @type {TODO} */ ({}); for (const key of Object.keys(hooks)) { - this._caches[key] = new Map(); + this._caches[/** @type {keyof StatsFactoryHooks} */ (key)] = new Map(); } this._inCreate = false; } + /** + * @template {StatsFactoryHooks[keyof StatsFactoryHooks]} HM + * @template {HM extends HookMap ? H : never} H + * @param {HM} hookMap hook map + * @param {Caches} cache cache + * @param {string} type type + * @returns {H[]} hooks + * @private + */ _getAllLevelHooks(hookMap, cache, type) { const cacheEntry = cache.get(type); if (cacheEntry !== undefined) { return cacheEntry; } - const hooks = []; + const hooks = /** @type {H[]} */ ([]); const typeParts = type.split("."); for (let i = 0; i < typeParts.length; i++) { - const hook = hookMap.get(typeParts.slice(i).join(".")); + const hook = /** @type {H} */ (hookMap.get(typeParts.slice(i).join("."))); if (hook) { hooks.push(hook); } @@ -96,27 +121,62 @@ class StatsFactory { return hooks; } + /** + * @template {StatsFactoryHooks[keyof StatsFactoryHooks]} HM + * @template {HM extends HookMap ? H : never} H + * @template {H extends import("tapable").Hook ? R : never} R + * @param {HM} hookMap hook map + * @param {Caches} cache cache + * @param {string} type type + * @param {function(H): R | void} fn fn + * @returns {R | void} hook + * @private + */ _forEachLevel(hookMap, cache, type, fn) { for (const hook of this._getAllLevelHooks(hookMap, cache, type)) { - const result = fn(hook); + const result = fn(/** @type {H} */ (hook)); if (result !== undefined) return result; } } + /** + * @template {StatsFactoryHooks[keyof StatsFactoryHooks]} HM + * @template {HM extends HookMap ? H : never} H + * @param {HM} hookMap hook map + * @param {Caches} cache cache + * @param {string} type type + * @param {FactoryData} data data + * @param {function(H, FactoryData): FactoryData} fn fn + * @returns {FactoryData} data + * @private + */ _forEachLevelWaterfall(hookMap, cache, type, data, fn) { for (const hook of this._getAllLevelHooks(hookMap, cache, type)) { - data = fn(hook, data); + data = fn(/** @type {H} */ (hook), data); } return data; } + /** + * @template {StatsFactoryHooks[keyof StatsFactoryHooks]} T + * @template {T extends HookMap ? H : never} H + * @template {H extends import("tapable").Hook ? R : never} R + * @param {T} hookMap hook map + * @param {Caches} cache cache + * @param {string} type type + * @param {Array} items items + * @param {function(H, R, number, number): R | undefined} fn fn + * @param {boolean} forceClone force clone + * @returns {R[]} result for each level + * @private + */ _forEachLevelFilter(hookMap, cache, type, items, fn, forceClone) { const hooks = this._getAllLevelHooks(hookMap, cache, type); if (hooks.length === 0) return forceClone ? items.slice() : items; let i = 0; return items.filter((item, idx) => { for (const hook of hooks) { - const r = fn(hook, item, idx, i); + const r = fn(/** @type {H} */ (hook), item, idx, i); if (r !== undefined) { if (r) i++; return r; @@ -129,30 +189,37 @@ class StatsFactory { /** * @param {string} type type - * @param {any} data factory data + * @param {FactoryData} data factory data * @param {Omit} baseContext context used as base - * @returns {any} created object + * @returns {CreatedObject} created object */ create(type, data, baseContext) { if (this._inCreate) { return this._create(type, data, baseContext); - } else { - try { - this._inCreate = true; - return this._create(type, data, baseContext); - } finally { - for (const key of Object.keys(this._caches)) this._caches[key].clear(); - this._inCreate = false; - } + } + try { + this._inCreate = true; + return this._create(type, data, baseContext); + } finally { + for (const key of Object.keys(this._caches)) + this._caches[/** @type {keyof StatsFactoryHooks} */ (key)].clear(); + this._inCreate = false; } } + /** + * @param {string} type type + * @param {FactoryData} data factory data + * @param {Omit} baseContext context used as base + * @returns {CreatedObject} created object + * @private + */ _create(type, data, baseContext) { - const context = { + const context = /** @type {StatsFactoryContext} */ ({ ...baseContext, type, [type]: data - }; + }); if (Array.isArray(data)) { // run filter on unsorted items const items = this._forEachLevelFilter( @@ -165,6 +232,7 @@ class StatsFactory { ); // sort items + /** @type {Comparator[]} */ const comparators = []; this._forEachLevel(this.hooks.sort, this._caches.sort, type, h => h.call(comparators, context) @@ -188,6 +256,7 @@ class StatsFactory { // for each item let resultItems = items2.map((item, i) => { + /** @type {StatsFactoryContext} */ const itemContext = { ...context, _index: i @@ -217,6 +286,7 @@ class StatsFactory { }); // sort result items + /** @type {Comparator[]} */ const comparators2 = []; this._forEachLevel( this.hooks.sortResults, @@ -232,6 +302,7 @@ class StatsFactory { } // group result items + /** @type {GroupConfig[]} */ const groupConfigs = []; this._forEachLevel( this.hooks.groupResults, @@ -270,23 +341,23 @@ class StatsFactory { result, (h, r) => h.call(r, context) ); - } else { - const object = {}; - - // run extract on value - this._forEachLevel(this.hooks.extract, this._caches.extract, type, h => - h.call(object, data, context) - ); - - // run result on extracted object - return this._forEachLevelWaterfall( - this.hooks.result, - this._caches.result, - type, - object, - (h, r) => h.call(r, context) - ); } + /** @type {ObjectForExtract} */ + const object = {}; + + // run extract on value + this._forEachLevel(this.hooks.extract, this._caches.extract, type, h => + h.call(object, data, context) + ); + + // run result on extracted object + return this._forEachLevelWaterfall( + this.hooks.result, + this._caches.result, + type, + object, + (h, r) => h.call(r, context) + ); } } module.exports = StatsFactory; diff --git a/node_modules/webpack/lib/stats/StatsPrinter.js b/node_modules/webpack/lib/stats/StatsPrinter.js index e28166d..9927061 100644 --- a/node_modules/webpack/lib/stats/StatsPrinter.js +++ b/node_modules/webpack/lib/stats/StatsPrinter.js @@ -7,14 +7,18 @@ const { HookMap, SyncWaterfallHook, SyncBailHook } = require("tapable"); -/** @template T @typedef {import("tapable").AsArray} AsArray */ -/** @typedef {import("tapable").Hook} Hook */ /** @typedef {import("./DefaultStatsFactoryPlugin").StatsAsset} StatsAsset */ /** @typedef {import("./DefaultStatsFactoryPlugin").StatsChunk} StatsChunk */ /** @typedef {import("./DefaultStatsFactoryPlugin").StatsChunkGroup} StatsChunkGroup */ /** @typedef {import("./DefaultStatsFactoryPlugin").StatsCompilation} StatsCompilation */ +/** @typedef {import("./DefaultStatsFactoryPlugin").StatsError} StatsError */ +/** @typedef {import("./DefaultStatsFactoryPlugin").StatsLogging} StatsLogging */ /** @typedef {import("./DefaultStatsFactoryPlugin").StatsModule} StatsModule */ +/** @typedef {import("./DefaultStatsFactoryPlugin").StatsModuleIssuer} StatsModuleIssuer */ /** @typedef {import("./DefaultStatsFactoryPlugin").StatsModuleReason} StatsModuleReason */ +/** @typedef {import("./DefaultStatsFactoryPlugin").StatsModuleTraceDependency} StatsModuleTraceDependency */ +/** @typedef {import("./DefaultStatsFactoryPlugin").StatsModuleTraceItem} StatsModuleTraceItem */ +/** @typedef {import("./DefaultStatsFactoryPlugin").StatsProfile} StatsProfile */ /** * @typedef {object} PrintedElement @@ -27,53 +31,78 @@ const { HookMap, SyncWaterfallHook, SyncBailHook } = require("tapable"); * @property {string=} type * @property {StatsCompilation=} compilation * @property {StatsChunkGroup=} chunkGroup + * @property {string=} chunkGroupKind * @property {StatsAsset=} asset * @property {StatsModule=} module * @property {StatsChunk=} chunk * @property {StatsModuleReason=} moduleReason + * @property {StatsModuleIssuer=} moduleIssuer + * @property {StatsError=} error + * @property {StatsProfile=} profile + * @property {StatsLogging=} logging + * @property {StatsModuleTraceItem=} moduleTraceItem + * @property {StatsModuleTraceDependency=} moduleTraceDependency + */ + +/** + * @typedef {object} KnownStatsPrinterColorFn * @property {(str: string) => string=} bold * @property {(str: string) => string=} yellow * @property {(str: string) => string=} red * @property {(str: string) => string=} green * @property {(str: string) => string=} magenta * @property {(str: string) => string=} cyan + */ + +/** + * @typedef {object} KnownStatsPrinterFormaters * @property {(file: string, oversize?: boolean) => string=} formatFilename * @property {(id: string) => string=} formatModuleId * @property {(id: string, direction?: "parent"|"child"|"sibling") => string=} formatChunkId * @property {(size: number) => string=} formatSize + * @property {(size: string) => string=} formatLayer * @property {(dateTime: number) => string=} formatDateTime * @property {(flag: string) => string=} formatFlag * @property {(time: number, boldQuantity?: boolean) => string=} formatTime - * @property {string=} chunkGroupKind + * @property {(message: string) => string=} formatError */ -/** @typedef {KnownStatsPrinterContext & Record} StatsPrinterContext */ +/** @typedef {Record & KnownStatsPrinterColorFn & KnownStatsPrinterFormaters & KnownStatsPrinterContext} StatsPrinterContext */ +/** @typedef {any} PrintObject */ + +/** + * @typedef {object} StatsPrintHooks + * @property {HookMap>} sortElements + * @property {HookMap>} printElements + * @property {HookMap>} sortItems + * @property {HookMap>} getItemName + * @property {HookMap>} printItems + * @property {HookMap>} print + * @property {HookMap>} result + */ class StatsPrinter { constructor() { + /** @type {StatsPrintHooks} */ this.hooks = Object.freeze({ - /** @type {HookMap>} */ sortElements: new HookMap( () => new SyncBailHook(["elements", "context"]) ), - /** @type {HookMap>} */ printElements: new HookMap( () => new SyncBailHook(["printedElements", "context"]) ), - /** @type {HookMap>} */ sortItems: new HookMap(() => new SyncBailHook(["items", "context"])), - /** @type {HookMap>} */ getItemName: new HookMap(() => new SyncBailHook(["item", "context"])), - /** @type {HookMap>} */ printItems: new HookMap( () => new SyncBailHook(["printedItems", "context"]) ), - /** @type {HookMap>} */ print: new HookMap(() => new SyncBailHook(["object", "context"])), /** @type {HookMap>} */ result: new HookMap(() => new SyncWaterfallHook(["result", "context"])) }); - /** @type {Map, Map>} */ + /** + * @type {TODO} + */ this._levelHookCache = new Map(); this._inPrint = false; } @@ -81,15 +110,14 @@ class StatsPrinter { /** * get all level hooks * @private - * @template {Hook} T - * @param {HookMap} hookMap HookMap + * @template {StatsPrintHooks[keyof StatsPrintHooks]} HM + * @template {HM extends HookMap ? H : never} H + * @param {HM} hookMap hook map * @param {string} type type - * @returns {T[]} hooks + * @returns {H[]} hooks */ _getAllLevelHooks(hookMap, type) { - let cache = /** @type {Map} */ ( - this._levelHookCache.get(hookMap) - ); + let cache = this._levelHookCache.get(hookMap); if (cache === undefined) { cache = new Map(); this._levelHookCache.set(hookMap, cache); @@ -98,11 +126,11 @@ class StatsPrinter { if (cacheEntry !== undefined) { return cacheEntry; } - /** @type {T[]} */ + /** @type {H[]} */ const hooks = []; const typeParts = type.split("."); for (let i = 0; i < typeParts.length; i++) { - const hook = hookMap.get(typeParts.slice(i).join(".")); + const hook = /** @type {H} */ (hookMap.get(typeParts.slice(i).join("."))); if (hook) { hooks.push(hook); } @@ -114,16 +142,17 @@ class StatsPrinter { /** * Run `fn` for each level * @private - * @template T - * @template R - * @param {HookMap>} hookMap HookMap + * @template {StatsPrintHooks[keyof StatsPrintHooks]} HM + * @template {HM extends HookMap ? H : never} H + * @template {H extends import("tapable").Hook ? R : never} R + * @param {HM} hookMap hook map * @param {string} type type - * @param {(hook: SyncBailHook) => R} fn function - * @returns {R} result of `fn` + * @param {function(H): R | void} fn fn + * @returns {R | void} hook */ _forEachLevel(hookMap, type, fn) { for (const hook of this._getAllLevelHooks(hookMap, type)) { - const result = fn(hook); + const result = fn(/** @type {H} */ (hook)); if (result !== undefined) return result; } } @@ -131,48 +160,49 @@ class StatsPrinter { /** * Run `fn` for each level * @private - * @template T - * @param {HookMap>} hookMap HookMap + * @template {StatsPrintHooks[keyof StatsPrintHooks]} HM + * @template {HM extends HookMap ? H : never} H + * @param {HM} hookMap hook map * @param {string} type type - * @param {AsArray[0]} data data - * @param {(hook: SyncWaterfallHook, data: AsArray[0]) => AsArray[0]} fn function - * @returns {AsArray[0]} result of `fn` + * @param {string} data data + * @param {function(H, string): string} fn fn + * @returns {string} result of `fn` */ _forEachLevelWaterfall(hookMap, type, data, fn) { for (const hook of this._getAllLevelHooks(hookMap, type)) { - data = fn(hook, data); + data = fn(/** @type {H} */ (hook), data); } return data; } /** * @param {string} type The type - * @param {object} object Object to print - * @param {object=} baseContext The base context + * @param {PrintObject} object Object to print + * @param {StatsPrinterContext=} baseContext The base context * @returns {string} printed result */ print(type, object, baseContext) { if (this._inPrint) { return this._print(type, object, baseContext); - } else { - try { - this._inPrint = true; - return this._print(type, object, baseContext); - } finally { - this._levelHookCache.clear(); - this._inPrint = false; - } + } + try { + this._inPrint = true; + return this._print(type, object, baseContext); + } finally { + this._levelHookCache.clear(); + this._inPrint = false; } } /** * @private * @param {string} type type - * @param {object} object object - * @param {object=} baseContext context + * @param {PrintObject} object object + * @param {StatsPrinterContext=} baseContext context * @returns {string} printed result */ _print(type, object, baseContext) { + /** @type {StatsPrinterContext} */ const context = { ...baseContext, type, @@ -189,6 +219,7 @@ class StatsPrinter { h.call(sortedItems, context) ); const printedItems = sortedItems.map((item, i) => { + /** @type {StatsPrinterContext} */ const itemContext = { ...context, _index: i @@ -241,7 +272,7 @@ class StatsPrinter { return this._forEachLevelWaterfall( this.hooks.result, type, - printResult, + /** @type {string} */ (printResult), (h, r) => h.call(r, context) ); } diff --git a/node_modules/webpack/lib/util/ArrayHelpers.js b/node_modules/webpack/lib/util/ArrayHelpers.js index e4652d9..ac32ce9 100644 --- a/node_modules/webpack/lib/util/ArrayHelpers.js +++ b/node_modules/webpack/lib/util/ArrayHelpers.js @@ -13,7 +13,7 @@ * @returns {boolean} returns true if all the elements of passed arrays are strictly equal. */ -exports.equals = (a, b) => { +module.exports.equals = (a, b) => { if (a.length !== b.length) return false; for (let i = 0; i < a.length; i++) { if (a[i] !== b[i]) return false; @@ -28,8 +28,13 @@ exports.equals = (a, b) => { * @param {(value: T) => boolean} fn Partition function which partitions based on truthiness of result. * @returns {[Array, Array]} returns the values of `arr` partitioned into two new arrays based on fn predicate. */ -exports.groupBy = (arr = [], fn) => { - return arr.reduce( + +module.exports.groupBy = ( + // eslint-disable-next-line default-param-last + arr = [], + fn +) => + arr.reduce( /** * @param {[Array, Array]} groups An accumulator storing already partitioned values returned from previous call. * @param {T} value The value of the current element @@ -41,4 +46,3 @@ exports.groupBy = (arr = [], fn) => { }, [[], []] ); -}; diff --git a/node_modules/webpack/lib/util/ArrayQueue.js b/node_modules/webpack/lib/util/ArrayQueue.js index f8a1633..522abf9 100644 --- a/node_modules/webpack/lib/util/ArrayQueue.js +++ b/node_modules/webpack/lib/util/ArrayQueue.js @@ -56,7 +56,7 @@ class ArrayQueue { */ dequeue() { if (this._listReversed.length === 0) { - if (this._list.length === 0) return undefined; + if (this._list.length === 0) return; if (this._list.length === 1) return this._list.pop(); if (this._list.length < 16) return this._list.shift(); const temp = this._listReversed; diff --git a/node_modules/webpack/lib/util/AsyncQueue.js b/node_modules/webpack/lib/util/AsyncQueue.js index f7834d0..fb01d49 100644 --- a/node_modules/webpack/lib/util/AsyncQueue.js +++ b/node_modules/webpack/lib/util/AsyncQueue.js @@ -20,7 +20,7 @@ let inHandleResult = 0; * @template T * @callback Callback * @param {(WebpackError | null)=} err - * @param {T=} result + * @param {(T | null)=} result */ /** @@ -37,15 +37,27 @@ class AsyncQueueEntry { this.item = item; /** @type {typeof QUEUED_STATE | typeof PROCESSING_STATE | typeof DONE_STATE} */ this.state = QUEUED_STATE; + /** @type {Callback | undefined} */ this.callback = callback; /** @type {Callback[] | undefined} */ this.callbacks = undefined; + /** @type {R | null | undefined} */ this.result = undefined; - /** @type {WebpackError | undefined} */ + /** @type {WebpackError | null | undefined} */ this.error = undefined; } } +/** + * @template T, K + * @typedef {function(T): K} getKey + */ + +/** + * @template T, R + * @typedef {function(T, Callback): void} Processor + */ + /** * @template T * @template K @@ -56,16 +68,19 @@ class AsyncQueue { * @param {object} options options object * @param {string=} options.name name of the queue * @param {number=} options.parallelism how many items should be processed at once + * @param {string=} options.context context of execution * @param {AsyncQueue=} options.parent parent queue, which will have priority over this queue and with shared parallelism - * @param {function(T): K=} options.getKey extract key from item - * @param {function(T, Callback): void} options.processor async function to process items + * @param {getKey=} options.getKey extract key from item + * @param {Processor} options.processor async function to process items */ - constructor({ name, parallelism, parent, processor, getKey }) { + constructor({ name, context, parallelism, parent, processor, getKey }) { this._name = name; + this._context = context || "normal"; this._parallelism = parallelism || 1; this._processor = processor; this._getKey = - getKey || /** @type {(T) => K} */ (item => /** @type {any} */ (item)); + getKey || + /** @type {getKey} */ (item => /** @type {T & K} */ (item)); /** @type {Map>} */ this._entries = new Map(); /** @type {ArrayQueue>} */ @@ -76,6 +91,7 @@ class AsyncQueue { this._willEnsureProcessing = false; this._needProcessing = false; this._stopped = false; + /** @type {AsyncQueue} */ this._root = parent ? parent._root : this; if (parent) { if (this._root._children === undefined) { @@ -94,13 +110,27 @@ class AsyncQueue { beforeStart: new AsyncSeriesHook(["item"]), /** @type {SyncHook<[T]>} */ started: new SyncHook(["item"]), - /** @type {SyncHook<[T, Error, R]>} */ + /** @type {SyncHook<[T, WebpackError | null | undefined, R | null | undefined]>} */ result: new SyncHook(["item", "error", "result"]) }; this._ensureProcessing = this._ensureProcessing.bind(this); } + /** + * @returns {string} context of execution + */ + getContext() { + return this._context; + } + + /** + * @param {string} value context of execution + */ + setContext(value) { + this._context = value; + } + /** * @param {T} item an item * @param {Callback} callback callback function @@ -202,9 +232,14 @@ class AsyncQueue { this._queued = new ArrayQueue(); const root = this._root; for (const entry of queue) { - this._entries.delete(this._getKey(entry.item)); + this._entries.delete( + this._getKey(/** @type {AsyncQueueEntry} */ (entry).item) + ); root._activeTasks++; - this._handleResult(entry, new WebpackError("Queue was stopped")); + this._handleResult( + /** @type {AsyncQueueEntry} */ (entry), + new WebpackError("Queue was stopped") + ); } } @@ -308,7 +343,7 @@ class AsyncQueue { }); } catch (err) { if (inCallback) throw err; - this._handleResult(entry, err, null); + this._handleResult(entry, /** @type {WebpackError} */ (err), null); } this.hooks.started.call(entry.item); }); @@ -316,8 +351,8 @@ class AsyncQueue { /** * @param {AsyncQueueEntry} entry the entry - * @param {WebpackError=} err error, if any - * @param {R=} result result, if any + * @param {(WebpackError | null)=} err error, if any + * @param {(R | null)=} result result, if any * @returns {void} */ _handleResult(entry, err, result) { @@ -326,7 +361,7 @@ class AsyncQueue { ? makeWebpackError(hookError, `AsyncQueue(${this._name}).hooks.result`) : err; - const callback = entry.callback; + const callback = /** @type {Callback} */ (entry.callback); const callbacks = entry.callbacks; entry.state = DONE_STATE; entry.callback = undefined; diff --git a/node_modules/webpack/lib/util/IterableHelpers.js b/node_modules/webpack/lib/util/IterableHelpers.js index beb98a5..73d02c6 100644 --- a/node_modules/webpack/lib/util/IterableHelpers.js +++ b/node_modules/webpack/lib/util/IterableHelpers.js @@ -19,7 +19,7 @@ const last = set => { /** * @template T * @param {Iterable} iterable iterable - * @param {function(T): boolean} filter predicate + * @param {function(T): boolean | null | undefined} filter predicate * @returns {boolean} true, if some items match the filter predicate */ const someInIterable = (iterable, filter) => { @@ -36,11 +36,10 @@ const someInIterable = (iterable, filter) => { */ const countIterable = iterable => { let i = 0; - // eslint-disable-next-line no-unused-vars for (const _ of iterable) i++; return i; }; -exports.last = last; -exports.someInIterable = someInIterable; -exports.countIterable = countIterable; +module.exports.last = last; +module.exports.someInIterable = someInIterable; +module.exports.countIterable = countIterable; diff --git a/node_modules/webpack/lib/util/LazyBucketSortedSet.js b/node_modules/webpack/lib/util/LazyBucketSortedSet.js index 63e9dc0..5469010 100644 --- a/node_modules/webpack/lib/util/LazyBucketSortedSet.js +++ b/node_modules/webpack/lib/util/LazyBucketSortedSet.js @@ -8,6 +8,16 @@ const { first } = require("./SetHelpers"); const SortableSet = require("./SortableSet"); +/** + * @template T + * @typedef {LazyBucketSortedSet | SortableSet} Entry + */ + +/** + * @template T + * @typedef {(function(T): any) | (function(any, any): number)} Arg + */ + /** * Multi layer bucket sorted set: * Supports adding non-existing items (DO NOT ADD ITEM TWICE), @@ -24,14 +34,15 @@ class LazyBucketSortedSet { /** * @param {function(T): K} getKey function to get key from item * @param {function(K, K): number} comparator comparator to sort keys - * @param {...((function(T): any) | (function(any, any): number))} args more pairs of getKey and comparator plus optional final comparator for the last layer + * @param {...Arg} args more pairs of getKey and comparator plus optional final comparator for the last layer */ constructor(getKey, comparator, ...args) { this._getKey = getKey; + /** @type {Arg[]} */ this._innerArgs = args; this._leaf = args.length <= 1; this._keys = new SortableSet(undefined, comparator); - /** @type {Map | SortableSet>} */ + /** @type {Map>} */ this._map = new Map(); this._unsortedItems = new Set(); this.size = 0; @@ -54,13 +65,18 @@ class LazyBucketSortedSet { _addInternal(key, item) { let entry = this._map.get(key); if (entry === undefined) { - entry = this._leaf - ? new SortableSet(undefined, this._innerArgs[0]) - : new /** @type {any} */ (LazyBucketSortedSet)(...this._innerArgs); + entry = + /** @type {Entry} */ + ( + this._leaf + ? new SortableSet(undefined, this._innerArgs[0]) + : new /** @type {TODO} */ (LazyBucketSortedSet)(...this._innerArgs) + ); this._keys.add(key); this._map.set(key, entry); } - entry.add(item); + /** @type {Entry} */ + (entry).add(item); } /** @@ -74,7 +90,7 @@ class LazyBucketSortedSet { return; } const key = this._getKey(item); - const entry = this._map.get(key); + const entry = /** @type {Entry} */ (this._map.get(key)); entry.delete(item); if (entry.size === 0) { this._deleteKey(key); @@ -94,7 +110,7 @@ class LazyBucketSortedSet { * @returns {T | undefined} an item */ popFirst() { - if (this.size === 0) return undefined; + if (this.size === 0) return; this.size--; if (this._unsortedItems.size > 0) { for (const item of this._unsortedItems) { @@ -104,25 +120,24 @@ class LazyBucketSortedSet { this._unsortedItems.clear(); } this._keys.sort(); - const key = first(this._keys); + const key = /** @type {K} */ (first(this._keys)); const entry = this._map.get(key); if (this._leaf) { const leafEntry = /** @type {SortableSet} */ (entry); leafEntry.sort(); - const item = first(leafEntry); + const item = /** @type {T} */ (first(leafEntry)); leafEntry.delete(item); if (leafEntry.size === 0) { this._deleteKey(key); } return item; - } else { - const nodeEntry = /** @type {LazyBucketSortedSet} */ (entry); - const item = nodeEntry.popFirst(); - if (nodeEntry.size === 0) { - this._deleteKey(key); - } - return item; } + const nodeEntry = /** @type {LazyBucketSortedSet} */ (entry); + const item = nodeEntry.popFirst(); + if (nodeEntry.size === 0) { + this._deleteKey(key); + } + return item; } /** @@ -135,7 +150,6 @@ class LazyBucketSortedSet { if (remove) { this._unsortedItems.delete(item); this.size--; - return; } }; } @@ -163,32 +177,31 @@ class LazyBucketSortedSet { this._addInternal(newKey, item); } }; - } else { - const oldEntry = /** @type {LazyBucketSortedSet} */ ( - this._map.get(key) - ); - const finishUpdate = oldEntry.startUpdate(item); - return remove => { - if (remove) { - this.size--; - finishUpdate(true); - if (oldEntry.size === 0) { - this._deleteKey(key); - } - return; - } - const newKey = this._getKey(item); - if (key === newKey) { - finishUpdate(); - } else { - finishUpdate(true); - if (oldEntry.size === 0) { - this._deleteKey(key); - } - this._addInternal(newKey, item); - } - }; } + const oldEntry = /** @type {LazyBucketSortedSet} */ ( + this._map.get(key) + ); + const finishUpdate = oldEntry.startUpdate(item); + return remove => { + if (remove) { + this.size--; + finishUpdate(true); + if (oldEntry.size === 0) { + this._deleteKey(key); + } + return; + } + const newKey = this._getKey(item); + if (key === newKey) { + finishUpdate(); + } else { + finishUpdate(true); + if (oldEntry.size === 0) { + this._deleteKey(key); + } + this._addInternal(newKey, item); + } + }; } /** @@ -215,16 +228,19 @@ class LazyBucketSortedSet { * @returns {Iterator} the iterator */ [Symbol.iterator]() { + /** @type {Iterator[]} */ const iterators = []; this._appendIterators(iterators); iterators.reverse(); - let currentIterator = iterators.pop(); + let currentIterator = + /** @type {Iterator} */ + (iterators.pop()); return { next: () => { const res = currentIterator.next(); if (res.done) { if (iterators.length === 0) return res; - currentIterator = iterators.pop(); + currentIterator = /** @type {Iterator} */ (iterators.pop()); return currentIterator.next(); } return res; diff --git a/node_modules/webpack/lib/util/LazySet.js b/node_modules/webpack/lib/util/LazySet.js index 69831d6..623c1c5 100644 --- a/node_modules/webpack/lib/util/LazySet.js +++ b/node_modules/webpack/lib/util/LazySet.js @@ -138,6 +138,9 @@ class LazySet { return this._set.delete(value); } + /** + * @returns {IterableIterator<[T, T]>} entries + */ entries() { this._deopt = true; if (this._needMerge) this._merge(); @@ -152,6 +155,7 @@ class LazySet { forEach(callbackFn, thisArg) { this._deopt = true; if (this._needMerge) this._merge(); + // eslint-disable-next-line unicorn/no-array-for-each this._set.forEach(callbackFn, thisArg); } @@ -164,18 +168,27 @@ class LazySet { return this._set.has(item); } + /** + * @returns {IterableIterator} keys + */ keys() { this._deopt = true; if (this._needMerge) this._merge(); return this._set.keys(); } + /** + * @returns {IterableIterator} values + */ values() { this._deopt = true; if (this._needMerge) this._merge(); return this._set.values(); } + /** + * @returns {IterableIterator} iterable iterator + */ [Symbol.iterator]() { this._deopt = true; if (this._needMerge) this._merge(); diff --git a/node_modules/webpack/lib/util/MapHelpers.js b/node_modules/webpack/lib/util/MapHelpers.js index d855a15..259f621 100644 --- a/node_modules/webpack/lib/util/MapHelpers.js +++ b/node_modules/webpack/lib/util/MapHelpers.js @@ -9,14 +9,12 @@ * getOrInsert is a helper function for maps that allows you to get a value * from a map if it exists, or insert a new value if it doesn't. If it value doesn't * exist, it will be computed by the provided function. - * * @template K * @template V * @param {Map} map The map object to check * @param {K} key The key to check * @param {function(): V} computer function which will compute the value if it doesn't exist * @returns {V} The value from the map, or the computed value - * * @example * ```js * const map = new Map(); @@ -24,7 +22,7 @@ * console.log(value); // "value" * ``` */ -exports.getOrInsert = (map, key, computer) => { +module.exports.getOrInsert = (map, key, computer) => { // Grab key from map const value = map.get(key); // If the value already exists, return it diff --git a/node_modules/webpack/lib/util/ParallelismFactorCalculator.js b/node_modules/webpack/lib/util/ParallelismFactorCalculator.js index 415ff36..d7725b7 100644 --- a/node_modules/webpack/lib/util/ParallelismFactorCalculator.js +++ b/node_modules/webpack/lib/util/ParallelismFactorCalculator.js @@ -5,7 +5,7 @@ "use strict"; -const binarySearchBounds = require("../util/binarySearchBounds"); +const binarySearchBounds = require("./binarySearchBounds"); /** @typedef {function(number): void} Callback */ diff --git a/node_modules/webpack/lib/util/Queue.js b/node_modules/webpack/lib/util/Queue.js index a841f61..3d0e79d 100644 --- a/node_modules/webpack/lib/util/Queue.js +++ b/node_modules/webpack/lib/util/Queue.js @@ -48,7 +48,7 @@ class Queue { */ dequeue() { const result = this._iterator.next(); - if (result.done) return undefined; + if (result.done) return; this._set.delete(result.value); return result.value; } diff --git a/node_modules/webpack/lib/util/Semaphore.js b/node_modules/webpack/lib/util/Semaphore.js index 68cd889..5277fed 100644 --- a/node_modules/webpack/lib/util/Semaphore.js +++ b/node_modules/webpack/lib/util/Semaphore.js @@ -8,7 +8,6 @@ class Semaphore { /** * Creates an instance of Semaphore. - * * @param {number} available the amount available number of "tasks" * in the Semaphore */ @@ -41,12 +40,10 @@ class Semaphore { } _continue() { - if (this.available > 0) { - if (this.waiters.length > 0) { - this.available--; - const callback = /** @type {(function(): void)} */ (this.waiters.pop()); - callback(); - } + if (this.available > 0 && this.waiters.length > 0) { + this.available--; + const callback = /** @type {(function(): void)} */ (this.waiters.pop()); + callback(); } } } diff --git a/node_modules/webpack/lib/util/SetHelpers.js b/node_modules/webpack/lib/util/SetHelpers.js index e102082..5908cce 100644 --- a/node_modules/webpack/lib/util/SetHelpers.js +++ b/node_modules/webpack/lib/util/SetHelpers.js @@ -65,7 +65,7 @@ const find = (set, fn) => { /** * @template T - * @param {Set} set a set + * @param {Set | ReadonlySet} set a set * @returns {T | undefined} first item */ const first = set => { @@ -87,8 +87,8 @@ const combine = (a, b) => { return set; }; -exports.intersect = intersect; -exports.isSubset = isSubset; -exports.find = find; -exports.first = first; -exports.combine = combine; +module.exports.intersect = intersect; +module.exports.isSubset = isSubset; +module.exports.find = find; +module.exports.first = first; +module.exports.combine = combine; diff --git a/node_modules/webpack/lib/util/SortableSet.js b/node_modules/webpack/lib/util/SortableSet.js index 3d3fa52..9260c16 100644 --- a/node_modules/webpack/lib/util/SortableSet.js +++ b/node_modules/webpack/lib/util/SortableSet.js @@ -15,15 +15,16 @@ const NONE = Symbol("not sorted"); class SortableSet extends Set { /** * Create a new sortable set + * @template T * @param {Iterable=} initialIterable The initial iterable value * @typedef {function(T, T): number} SortFunction - * @param {SortFunction=} defaultSort Default sorting function + * @param {SortFunction=} defaultSort Default sorting function */ constructor(initialIterable, defaultSort) { super(initialIterable); /** * @private - * @type {undefined | function(T, T): number}} + * @type {undefined | SortFunction} */ this._sortFn = defaultSort; /** @@ -76,7 +77,7 @@ class SortableSet extends Set { /** * Sort with a comparer function - * @param {SortFunction} sortFn Sorting comparer function + * @param {SortFunction | undefined} sortFn Sorting comparer function * @returns {void} */ sortWith(sortFn) { diff --git a/node_modules/webpack/lib/util/StackedCacheMap.js b/node_modules/webpack/lib/util/StackedCacheMap.js index 39a4c90..820f0d1 100644 --- a/node_modules/webpack/lib/util/StackedCacheMap.js +++ b/node_modules/webpack/lib/util/StackedCacheMap.js @@ -6,9 +6,6 @@ "use strict"; /** - * @template K - * @template V - * * The StackedCacheMap is a data structure designed as an alternative to a Map * in situations where you need to handle multiple item additions and * frequently access the largest map. @@ -19,7 +16,6 @@ * It has a fallback Map that is used when the map to be added is mutable. * * Note: `delete` and `has` are not supported for performance reasons. - * * @example * ```js * const map = new StackedCacheMap(); @@ -31,6 +27,8 @@ * console.log(key, value); * } * ``` + * @template K + * @template V */ class StackedCacheMap { constructor() { @@ -94,7 +92,7 @@ class StackedCacheMap { /** * @param {K} item the key of the element to return - * @returns {V} the value of the element + * @returns {V | undefined} the value of the element */ get(item) { for (const map of this.stack) { @@ -130,7 +128,7 @@ class StackedCacheMap { next() { let result = current.next(); while (result.done && iterators.length > 0) { - current = iterators.pop(); + current = /** @type {IterableIterator<[K, V]>} */ (iterators.pop()); result = current.next(); } return result; diff --git a/node_modules/webpack/lib/util/StackedMap.js b/node_modules/webpack/lib/util/StackedMap.js index bb5e776..0f4011d 100644 --- a/node_modules/webpack/lib/util/StackedMap.js +++ b/node_modules/webpack/lib/util/StackedMap.js @@ -29,9 +29,8 @@ const extractPair = pair => { const val = pair[1]; if (val === UNDEFINED_MARKER || val === TOMBSTONE) { return [key, undefined]; - } else { - return /** @type {[K, Cell]} */ (pair); } + return /** @type {[K, Cell]} */ (pair); }; /** @@ -116,7 +115,6 @@ class StackedMap { } this.map.set(item, TOMBSTONE); } - return undefined; } _compress() { diff --git a/node_modules/webpack/lib/util/StringXor.js b/node_modules/webpack/lib/util/StringXor.js index 33bcec4..ea5c8f8 100644 --- a/node_modules/webpack/lib/util/StringXor.js +++ b/node_modules/webpack/lib/util/StringXor.js @@ -17,7 +17,6 @@ * to create a hash of the current state of the compilation. By XOR'ing the Module hashes, it * doesn't matter if the Module hashes are sorted or not. This is useful because it allows us to avoid sorting the * Module hashes. - * * @example * ```js * const xor = new StringXor(); @@ -25,7 +24,6 @@ * xor.add('world'); * console.log(xor.toString()); * ``` - * * @example * ```js * const xor = new StringXor(); @@ -44,7 +42,6 @@ class StringXor { /** * Adds a string to the current StringXor object. - * * @param {string} str string * @returns {void} */ @@ -84,7 +81,6 @@ class StringXor { * here because "latin1" encoding is a single-byte encoding that can represent all characters in the * [ISO-8859-1 character set](https://en.wikipedia.org/wiki/ISO/IEC_8859-1). This is useful when working * with binary data that needs to be represented as a string. - * * @returns {string} Returns a string that represents the current state of the StringXor object. */ toString() { @@ -94,7 +90,6 @@ class StringXor { /** * Updates the hash with the current state of the StringXor object. - * * @param {Hash} hash Hash instance */ updateHash(hash) { diff --git a/node_modules/webpack/lib/util/TupleQueue.js b/node_modules/webpack/lib/util/TupleQueue.js index 103e530..6cdd7ea 100644 --- a/node_modules/webpack/lib/util/TupleQueue.js +++ b/node_modules/webpack/lib/util/TupleQueue.js @@ -57,7 +57,7 @@ class TupleQueue { this._set.delete(...value); return value; } - return undefined; + return; } this._set.delete(...result.value); return result.value; diff --git a/node_modules/webpack/lib/util/TupleSet.js b/node_modules/webpack/lib/util/TupleSet.js index fe33c36..803ae19 100644 --- a/node_modules/webpack/lib/util/TupleSet.js +++ b/node_modules/webpack/lib/util/TupleSet.js @@ -9,7 +9,11 @@ * @template {any[]} T */ class TupleSet { + /** + * @param {Iterable=} init init + */ constructor(init) { + /** @type {Map} */ this._map = new Map(); this.size = 0; if (init) { @@ -62,7 +66,7 @@ class TupleSet { } const beforeLast = args[args.length - 2]; - let set = map.get(beforeLast); + const set = map.get(beforeLast); if (set === undefined) { return false; } @@ -86,7 +90,7 @@ class TupleSet { } const beforeLast = args[args.length - 2]; - let set = map.get(beforeLast); + const set = map.get(beforeLast); if (set === undefined) { return; } @@ -101,10 +105,17 @@ class TupleSet { * @returns {Iterator} iterator */ [Symbol.iterator]() { + /** @type {TODO[]} */ const iteratorStack = []; + /** @type {T[]} */ const tuple = []; - let currentSetIterator = undefined; + /** @type {Iterator | undefined} */ + let currentSetIterator; + /** + * @param {TODO} it iterator + * @returns {boolean} result + */ const next = it => { const result = it.next(); if (result.done) { @@ -118,9 +129,8 @@ class TupleSet { if (value instanceof Set) { currentSetIterator = value[Symbol.iterator](); return true; - } else { - return next(value[Symbol.iterator]()); } + return next(value[Symbol.iterator]()); }; next(this._map[Symbol.iterator]()); diff --git a/node_modules/webpack/lib/util/URLAbsoluteSpecifier.js b/node_modules/webpack/lib/util/URLAbsoluteSpecifier.js index 164d37e..f5cec7e 100644 --- a/node_modules/webpack/lib/util/URLAbsoluteSpecifier.js +++ b/node_modules/webpack/lib/util/URLAbsoluteSpecifier.js @@ -36,7 +36,7 @@ function getScheme(specifier) { (start < aLowerCaseCharCode || start > zLowerCaseCharCode) && (start < aUpperCaseCharCode || start > zUpperCaseCharCode) ) { - return undefined; + return; } let i = 1; @@ -49,12 +49,12 @@ function getScheme(specifier) { ch === plusCharCode || ch === hyphenCharCode ) { - if (++i === specifier.length) return undefined; + if (++i === specifier.length) return; ch = specifier.charCodeAt(i); } // Scheme must end with colon - if (ch !== colonCharCode) return undefined; + if (ch !== colonCharCode) return; // Check for Windows absolute path // https://url.spec.whatwg.org/#url-miscellaneous @@ -67,7 +67,7 @@ function getScheme(specifier) { nextChar === hashCharCode || nextChar === queryCharCode ) { - return undefined; + return; } } @@ -80,8 +80,8 @@ function getScheme(specifier) { */ function getProtocol(specifier) { const scheme = getScheme(specifier); - return scheme === undefined ? undefined : scheme + ":"; + return scheme === undefined ? undefined : `${scheme}:`; } -exports.getScheme = getScheme; -exports.getProtocol = getProtocol; +module.exports.getScheme = getScheme; +module.exports.getProtocol = getProtocol; diff --git a/node_modules/webpack/lib/util/WeakTupleMap.js b/node_modules/webpack/lib/util/WeakTupleMap.js index 80cfe69..ac64e86 100644 --- a/node_modules/webpack/lib/util/WeakTupleMap.js +++ b/node_modules/webpack/lib/util/WeakTupleMap.js @@ -83,7 +83,7 @@ class WeakTupleMap { let node = this; for (let i = 0; i < args.length; i++) { node = node._peek(args[i]); - if (node === undefined) return undefined; + if (node === undefined) return; } return node._getValue(); } @@ -158,12 +158,11 @@ class WeakTupleMap { */ _peek(thing) { if (isWeakKey(thing)) { - if ((this.f & 4) !== 4) return undefined; + if ((this.f & 4) !== 4) return; return /** @type {W} */ (this.w).get(thing); - } else { - if ((this.f & 2) !== 2) return undefined; - return /** @type {M} */ (this.m).get(thing); } + if ((this.f & 2) !== 2) return; + return /** @type {M} */ (this.m).get(thing); } /** @@ -190,25 +189,24 @@ class WeakTupleMap { /** @type {W} */ (this.w).set(thing, newNode); return newNode; - } else { - if ((this.f & 2) !== 2) { - const newMap = new Map(); - this.f |= 2; - const newNode = new WeakTupleMap(); - (this.m = newMap).set(thing, newNode); - return newNode; - } - const entry = - /** @type {M} */ - (this.m).get(thing); - if (entry !== undefined) { - return entry; - } + } + if ((this.f & 2) !== 2) { + const newMap = new Map(); + this.f |= 2; const newNode = new WeakTupleMap(); - /** @type {M} */ - (this.m).set(thing, newNode); + (this.m = newMap).set(thing, newNode); return newNode; } + const entry = + /** @type {M} */ + (this.m).get(thing); + if (entry !== undefined) { + return entry; + } + const newNode = new WeakTupleMap(); + /** @type {M} */ + (this.m).set(thing, newNode); + return newNode; } } diff --git a/node_modules/webpack/lib/util/binarySearchBounds.js b/node_modules/webpack/lib/util/binarySearchBounds.js index 355624c..c61623c 100644 --- a/node_modules/webpack/lib/util/binarySearchBounds.js +++ b/node_modules/webpack/lib/util/binarySearchBounds.js @@ -22,7 +22,6 @@ * ```js * function P(a,l,h,y,c){var i=l-1;while(l<=h){var m=(l+h)>>>1,x=a[m];if(c(x,y)<=0){i=m;l=m+1}else{h=m-1}}return i}; * ``` - * * @param {string} funcName The name of the function to be compiled. * @param {string} predicate The predicate / comparison operator to be used in the binary search. * @param {boolean} reversed Whether the search should be reversed. @@ -43,7 +42,7 @@ const compileSearch = (funcName, predicate, reversed, extraArgs, earlyOut) => { ]; if (earlyOut) { - if (predicate.indexOf("c") < 0) { + if (!predicate.includes("c")) { code.push(";if(x===y){return m}else if(x<=y){"); } else { code.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){"); @@ -70,7 +69,6 @@ const compileSearch = (funcName, predicate, reversed, extraArgs, earlyOut) => { * A(): Performs a binary search on an array using the comparison operator specified. * P(): Performs a binary search on an array using a _custom comparison function_ * `c(x,y)` **and** comparison operator specified by `predicate`. - * * @param {BinarySearchPredicate} predicate The predicate / comparison operator to be used in the binary search. * @param {boolean} reversed Whether the search should be reversed. * @param {SearchPredicateSuffix} suffix The suffix to be used in the function name. @@ -78,17 +76,11 @@ const compileSearch = (funcName, predicate, reversed, extraArgs, earlyOut) => { * @returns {Function} The compiled binary search function. */ const compileBoundsSearch = (predicate, reversed, suffix, earlyOut) => { - const arg1 = compileSearch( - "A", - "x" + predicate + "y", - reversed, - ["y"], - earlyOut - ); + const arg1 = compileSearch("A", `x${predicate}y`, reversed, ["y"], earlyOut); const arg2 = compileSearch( "P", - "c(x,y)" + predicate + "0", + `c(x,y)${predicate}0`, reversed, ["y", "c"], earlyOut @@ -97,6 +89,7 @@ const compileBoundsSearch = (predicate, reversed, suffix, earlyOut) => { const fnHeader = "function dispatchBinarySearch"; const fnBody = + // eslint-disable-next-line no-multi-str "(a,y,c,l,h){\ if(typeof(c)==='function'){\ return P(a,(l===void 0)?0:l|0,(h===void 0)?a.length-1:h|0,y,c)\ @@ -107,13 +100,13 @@ return dispatchBinarySearch"; const fnArgList = [arg1, arg2, fnHeader, suffix, fnBody, suffix]; const fnSource = fnArgList.join(""); + // eslint-disable-next-line no-new-func const result = new Function(fnSource); return result(); }; /** * These functions are used to perform binary searches on arrays. - * * @example * ```js * const { gt, le} = require("./binarySearchBounds"); diff --git a/node_modules/webpack/lib/util/chainedImports.js b/node_modules/webpack/lib/util/chainedImports.js index 686e5d9..295233b 100644 --- a/node_modules/webpack/lib/util/chainedImports.js +++ b/node_modules/webpack/lib/util/chainedImports.js @@ -23,7 +23,7 @@ * @param {Dependency} dependency dependency * @returns {{trimmedIds: string[], trimmedRange: Range}} computed trimmed ids and cumulative range of those ids */ -exports.getTrimmedIdsAndRange = ( +module.exports.getTrimmedIdsAndRange = ( untrimmedIds, untrimmedRange, ranges, diff --git a/node_modules/webpack/lib/util/cleverMerge.js b/node_modules/webpack/lib/util/cleverMerge.js index 02e018c..1485201 100644 --- a/node_modules/webpack/lib/util/cleverMerge.js +++ b/node_modules/webpack/lib/util/cleverMerge.js @@ -23,15 +23,17 @@ const DYNAMIC_INFO = Symbol("cleverMerge dynamic info"); * // when same arguments passed, gets the result from WeakMap and returns it. * cachedCleverMerge({a: 1}, {a: 2}) * {a: 2} - * @param {T} first first object - * @param {O} second second object + * @param {T | null | undefined} first first object + * @param {O | null | undefined} second second object * @returns {T & O | T | O} merged object of first and second object */ const cachedCleverMerge = (first, second) => { - if (second === undefined) return first; - if (first === undefined) return second; - if (typeof second !== "object" || second === null) return second; - if (typeof first !== "object" || first === null) return first; + if (second === undefined) return /** @type {T} */ (first); + if (first === undefined) return /** @type {O} */ (second); + if (typeof second !== "object" || second === null) + return /** @type {O} */ (second); + if (typeof first !== "object" || first === null) + return /** @type {T} */ (first); let innerCache = mergeCache.get(first); if (innerCache === undefined) { @@ -80,11 +82,13 @@ const cachedSetProperty = (obj, property, value) => { return /** @type {T} */ (result); }; +/** @typedef {Map} ByValues */ + /** * @typedef {object} ObjectParsedPropertyEntry * @property {any | undefined} base base value * @property {string | undefined} byProperty the name of the selector property - * @property {Map} byValues value depending on selector property, merged with base + * @property {ByValues} byValues value depending on selector property, merged with base */ /** @@ -109,12 +113,17 @@ const cachedParseObject = obj => { }; /** - * @param {object} obj the object + * @template {object} T + * @param {T} obj the object * @returns {ParsedObject} parsed object */ const parseObject = obj => { const info = new Map(); let dynamicInfo; + /** + * @param {string} p path + * @returns {Partial} object parsed property entry + */ const getInfo = p => { const entry = info.get(p); if (entry !== undefined) return entry; @@ -128,26 +137,33 @@ const parseObject = obj => { }; for (const key of Object.keys(obj)) { if (key.startsWith("by")) { - const byProperty = key; - const byObj = obj[byProperty]; + const byProperty = /** @type {keyof T} */ (key); + const byObj = /** @type {object} */ (obj[byProperty]); if (typeof byObj === "object") { for (const byValue of Object.keys(byObj)) { - const obj = byObj[byValue]; + const obj = byObj[/** @type {keyof (keyof T)} */ (byValue)]; for (const key of Object.keys(obj)) { const entry = getInfo(key); if (entry.byProperty === undefined) { - entry.byProperty = byProperty; + entry.byProperty = /** @type {string} */ (byProperty); entry.byValues = new Map(); } else if (entry.byProperty !== byProperty) { throw new Error( - `${byProperty} and ${entry.byProperty} for a single property is not supported` + `${/** @type {string} */ (byProperty)} and ${entry.byProperty} for a single property is not supported` ); } - entry.byValues.set(byValue, obj[key]); + /** @type {ByValues} */ + (entry.byValues).set( + byValue, + obj[/** @type {keyof (keyof T)} */ (key)] + ); if (byValue === "default") { for (const otherByValue of Object.keys(byObj)) { - if (!entry.byValues.has(otherByValue)) - entry.byValues.set(otherByValue, undefined); + if ( + !(/** @type {ByValues} */ (entry.byValues).has(otherByValue)) + ) + /** @type {ByValues} */ + (entry.byValues).set(otherByValue, undefined); } } } @@ -165,11 +181,11 @@ const parseObject = obj => { } } else { const entry = getInfo(key); - entry.base = obj[key]; + entry.base = obj[/** @type {keyof T} */ (key)]; } } else { const entry = getInfo(key); - entry.base = obj[key]; + entry.base = obj[/** @type {keyof T} */ (key)]; } } return { @@ -179,12 +195,13 @@ const parseObject = obj => { }; /** + * @template {object} T * @param {Map} info static properties (key is property name) * @param {{ byProperty: string, fn: Function } | undefined} dynamicInfo dynamic part - * @returns {object} the object + * @returns {T} the object */ const serializeObject = (info, dynamicInfo) => { - const obj = {}; + const obj = /** @type {T} */ ({}); // Setup byProperty structure for (const entry of info.values()) { if (entry.byProperty !== undefined) { @@ -196,7 +213,7 @@ const serializeObject = (info, dynamicInfo) => { } for (const [key, entry] of info) { if (entry.base !== undefined) { - obj[key] = entry.base; + obj[/** @type {keyof T} */ (key)] = entry.base; } // Fill byProperty structure if (entry.byProperty !== undefined) { @@ -229,7 +246,7 @@ const getValueType = value => { } else if (value === DELETE) { return VALUE_TYPE_DELETE; } else if (Array.isArray(value)) { - if (value.lastIndexOf("...") !== -1) return VALUE_TYPE_ARRAY_EXTEND; + if (value.includes("...")) return VALUE_TYPE_ARRAY_EXTEND; return VALUE_TYPE_ATOM; } else if ( typeof value === "object" && @@ -473,7 +490,7 @@ const mergeSingleValue = (a, b, internalCaching) => { case VALUE_TYPE_UNDEFINED: return b; case VALUE_TYPE_DELETE: - return b.filter(item => item !== "..."); + return /** @type {any[]} */ (b).filter(item => item !== "..."); case VALUE_TYPE_ARRAY_EXTEND: { const newArray = []; for (const item of b) { @@ -488,7 +505,9 @@ const mergeSingleValue = (a, b, internalCaching) => { return newArray; } case VALUE_TYPE_OBJECT: - return b.map(item => (item === "..." ? a : item)); + return /** @type {any[]} */ (b).map(item => + item === "..." ? a : item + ); default: throw new Error("Not implemented"); } @@ -520,15 +539,22 @@ const removeOperations = (obj, keysToKeepOriginalValue = []) => { case VALUE_TYPE_DELETE: break; case VALUE_TYPE_OBJECT: - newObj[key] = removeOperations( - /** @type {TODO} */ (value), - keysToKeepOriginalValue - ); + newObj[/** @type {keyof T} */ (key)] = + /** @type {T[keyof T]} */ + ( + removeOperations( + /** @type {TODO} */ (value), + keysToKeepOriginalValue + ) + ); break; case VALUE_TYPE_ARRAY_EXTEND: - newObj[key] = - /** @type {any[]} */ - (value).filter(i => i !== "..."); + newObj[/** @type {keyof T} */ (key)] = + /** @type {T[keyof T]} */ + ( + /** @type {any[]} */ + (value).filter(i => i !== "...") + ); break; default: newObj[/** @type {keyof T} */ (key)] = value; @@ -550,21 +576,21 @@ const resolveByProperty = (obj, byProperty, ...values) => { if (typeof obj !== "object" || obj === null || !(byProperty in obj)) { return obj; } - const { [byProperty]: _byValue, ..._remaining } = /** @type {object} */ (obj); + const { [byProperty]: _byValue, ..._remaining } = obj; const remaining = /** @type {T} */ (_remaining); - const byValue = /** @type {Record | function(...any[]): T} */ ( - _byValue - ); + const byValue = + /** @type {Record | function(...any[]): T} */ + (_byValue); if (typeof byValue === "object") { const key = values[0]; if (key in byValue) { return cachedCleverMerge(remaining, byValue[key]); } else if ("default" in byValue) { return cachedCleverMerge(remaining, byValue.default); - } else { - return /** @type {T} */ (remaining); } + return remaining; } else if (typeof byValue === "function") { + // eslint-disable-next-line prefer-spread const result = byValue.apply(null, values); return cachedCleverMerge( remaining, @@ -573,9 +599,9 @@ const resolveByProperty = (obj, byProperty, ...values) => { } }; -exports.cachedSetProperty = cachedSetProperty; -exports.cachedCleverMerge = cachedCleverMerge; -exports.cleverMerge = cleverMerge; -exports.resolveByProperty = resolveByProperty; -exports.removeOperations = removeOperations; -exports.DELETE = DELETE; +module.exports.cachedSetProperty = cachedSetProperty; +module.exports.cachedCleverMerge = cachedCleverMerge; +module.exports.cleverMerge = cleverMerge; +module.exports.resolveByProperty = resolveByProperty; +module.exports.removeOperations = removeOperations; +module.exports.DELETE = DELETE; diff --git a/node_modules/webpack/lib/util/comparators.js b/node_modules/webpack/lib/util/comparators.js index ba636e4..8d22802 100644 --- a/node_modules/webpack/lib/util/comparators.js +++ b/node_modules/webpack/lib/util/comparators.js @@ -10,14 +10,26 @@ const { compareRuntime } = require("./runtime"); /** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../Chunk").ChunkId} ChunkId */ /** @typedef {import("../ChunkGraph")} ChunkGraph */ +/** @typedef {import("../ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("../ChunkGroup")} ChunkGroup */ /** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */ /** @typedef {import("../Module")} Module */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ -/** @template T @typedef {function(T, T): -1|0|1} Comparator */ -/** @template TArg @template T @typedef {function(TArg, T, T): -1|0|1} RawParameterizedComparator */ -/** @template TArg @template T @typedef {function(TArg): Comparator} ParameterizedComparator */ +/** + * @template T + * @typedef {function(T, T): -1|0|1} Comparator + */ +/** + * @template TArg + * @template T + * @typedef {function(TArg, T, T): -1|0|1} RawParameterizedComparator + */ +/** + * @template TArg + * @template T + * @typedef {function(TArg): Comparator} ParameterizedComparator + */ /** * @template T @@ -46,21 +58,16 @@ const createCachedParameterizedComparator = fn => { * @param {Chunk} b chunk * @returns {-1|0|1} compare result */ -exports.compareChunksById = (a, b) => { - return compareIds( - /** @type {ChunkId} */ (a.id), - /** @type {ChunkId} */ (b.id) - ); -}; +module.exports.compareChunksById = (a, b) => + compareIds(/** @type {ChunkId} */ (a.id), /** @type {ChunkId} */ (b.id)); /** * @param {Module} a module * @param {Module} b module * @returns {-1|0|1} compare result */ -exports.compareModulesByIdentifier = (a, b) => { - return compareIds(a.identifier(), b.identifier()); -}; +module.exports.compareModulesByIdentifier = (a, b) => + compareIds(a.identifier(), b.identifier()); /** * @param {ChunkGraph} chunkGraph the chunk graph @@ -68,11 +75,13 @@ exports.compareModulesByIdentifier = (a, b) => { * @param {Module} b module * @returns {-1|0|1} compare result */ -const compareModulesById = (chunkGraph, a, b) => { - return compareIds(chunkGraph.getModuleId(a), chunkGraph.getModuleId(b)); -}; +const compareModulesById = (chunkGraph, a, b) => + compareIds( + /** @type {ModuleId} */ (chunkGraph.getModuleId(a)), + /** @type {ModuleId} */ (chunkGraph.getModuleId(b)) + ); /** @type {ParameterizedComparator} */ -exports.compareModulesById = +module.exports.compareModulesById = createCachedParameterizedComparator(compareModulesById); /** @@ -88,7 +97,7 @@ const compareNumbers = (a, b) => { if (a > b) return 1; return 0; }; -exports.compareNumbers = compareNumbers; +module.exports.compareNumbers = compareNumbers; /** * @param {string} a string @@ -160,7 +169,7 @@ const compareStringsNumeric = (a, b) => { return 0; }; -exports.compareStringsNumeric = compareStringsNumeric; +module.exports.compareStringsNumeric = compareStringsNumeric; /** * @param {ModuleGraph} moduleGraph the module graph @@ -177,7 +186,7 @@ const compareModulesByPostOrderIndexOrIdentifier = (moduleGraph, a, b) => { return compareIds(a.identifier(), b.identifier()); }; /** @type {ParameterizedComparator} */ -exports.compareModulesByPostOrderIndexOrIdentifier = +module.exports.compareModulesByPostOrderIndexOrIdentifier = createCachedParameterizedComparator( compareModulesByPostOrderIndexOrIdentifier ); @@ -197,7 +206,7 @@ const compareModulesByPreOrderIndexOrIdentifier = (moduleGraph, a, b) => { return compareIds(a.identifier(), b.identifier()); }; /** @type {ParameterizedComparator} */ -exports.compareModulesByPreOrderIndexOrIdentifier = +module.exports.compareModulesByPreOrderIndexOrIdentifier = createCachedParameterizedComparator( compareModulesByPreOrderIndexOrIdentifier ); @@ -209,14 +218,16 @@ exports.compareModulesByPreOrderIndexOrIdentifier = * @returns {-1|0|1} compare result */ const compareModulesByIdOrIdentifier = (chunkGraph, a, b) => { - const cmp = compareIds(chunkGraph.getModuleId(a), chunkGraph.getModuleId(b)); + const cmp = compareIds( + /** @type {ModuleId} */ (chunkGraph.getModuleId(a)), + /** @type {ModuleId} */ (chunkGraph.getModuleId(b)) + ); if (cmp !== 0) return cmp; return compareIds(a.identifier(), b.identifier()); }; /** @type {ParameterizedComparator} */ -exports.compareModulesByIdOrIdentifier = createCachedParameterizedComparator( - compareModulesByIdOrIdentifier -); +module.exports.compareModulesByIdOrIdentifier = + createCachedParameterizedComparator(compareModulesByIdOrIdentifier); /** * @param {ChunkGraph} chunkGraph the chunk graph @@ -224,11 +235,10 @@ exports.compareModulesByIdOrIdentifier = createCachedParameterizedComparator( * @param {Chunk} b chunk * @returns {-1|0|1} compare result */ -const compareChunks = (chunkGraph, a, b) => { - return chunkGraph.compareChunks(a, b); -}; +const compareChunks = (chunkGraph, a, b) => chunkGraph.compareChunks(a, b); /** @type {ParameterizedComparator} */ -exports.compareChunks = createCachedParameterizedComparator(compareChunks); +module.exports.compareChunks = + createCachedParameterizedComparator(compareChunks); /** * @param {string|number} a first id @@ -244,7 +254,7 @@ const compareIds = (a, b) => { return 0; }; -exports.compareIds = compareIds; +module.exports.compareIds = compareIds; /** * @param {string} a first string @@ -257,20 +267,16 @@ const compareStrings = (a, b) => { return 0; }; -exports.compareStrings = compareStrings; +module.exports.compareStrings = compareStrings; /** * @param {ChunkGroup} a first chunk group * @param {ChunkGroup} b second chunk group * @returns {-1|0|1} compare result */ -const compareChunkGroupsByIndex = (a, b) => { - return /** @type {number} */ (a.index) < /** @type {number} */ (b.index) - ? -1 - : 1; -}; - -exports.compareChunkGroupsByIndex = compareChunkGroupsByIndex; +const compareChunkGroupsByIndex = (a, b) => + /** @type {number} */ (a.index) < /** @type {number} */ (b.index) ? -1 : 1; +module.exports.compareChunkGroupsByIndex = compareChunkGroupsByIndex; /** * @template K1 {Object} @@ -294,7 +300,7 @@ class TwoKeyWeakMap { get(key1, key2) { const childMap = this._map.get(key1); if (childMap === undefined) { - return undefined; + return; } return childMap.get(key2); } @@ -347,7 +353,7 @@ const concatComparators = (c1, c2, ...cRest) => { concatComparatorsCache.set(c1, c2, result); return result; }; -exports.concatComparators = concatComparators; +module.exports.concatComparators = concatComparators; /** * @template A, B @@ -380,17 +386,16 @@ const compareSelect = (getter, comparator) => { return comparator(aValue, bValue); } return -1; - } else { - if (bValue !== undefined && bValue !== null) { - return 1; - } - return 0; } + if (bValue !== undefined && bValue !== null) { + return 1; + } + return 0; }; compareSelectCache.set(getter, comparator, result); return result; }; -exports.compareSelect = compareSelect; +module.exports.compareSelect = compareSelect; /** @type {WeakMap, Comparator>>} */ const compareIteratorsCache = new WeakMap(); @@ -426,7 +431,7 @@ const compareIterables = elementComparator => { compareIteratorsCache.set(elementComparator, result); return result; }; -exports.compareIterables = compareIterables; +module.exports.compareIterables = compareIterables; // TODO this is no longer needed when minimum node.js version is >= 12 // since these versions ship with a stable sort function @@ -435,7 +440,7 @@ exports.compareIterables = compareIterables; * @param {Iterable} iterable original ordered list * @returns {Comparator} comparator */ -exports.keepOriginalOrder = iterable => { +module.exports.keepOriginalOrder = iterable => { /** @type {Map} */ const map = new Map(); let i = 0; @@ -453,8 +458,8 @@ exports.keepOriginalOrder = iterable => { * @param {ChunkGraph} chunkGraph the chunk graph * @returns {Comparator} comparator */ -exports.compareChunksNatural = chunkGraph => { - const cmpFn = exports.compareModulesById(chunkGraph); +module.exports.compareChunksNatural = chunkGraph => { + const cmpFn = module.exports.compareModulesById(chunkGraph); const cmpIterableFn = compareIterables(cmpFn); return concatComparators( compareSelect( @@ -479,9 +484,9 @@ exports.compareChunksNatural = chunkGraph => { * @param {DependencyLocation} b A location node * @returns {-1|0|1} sorting comparator value */ -exports.compareLocations = (a, b) => { - let isObjectA = typeof a === "object" && a !== null; - let isObjectB = typeof b === "object" && b !== null; +module.exports.compareLocations = (a, b) => { + const isObjectA = typeof a === "object" && a !== null; + const isObjectB = typeof b === "object" && b !== null; if (!isObjectA || !isObjectB) { if (isObjectA) return 1; if (isObjectB) return -1; diff --git a/node_modules/webpack/lib/util/compileBooleanMatcher.js b/node_modules/webpack/lib/util/compileBooleanMatcher.js index 9474c6d..e388602 100644 --- a/node_modules/webpack/lib/util/compileBooleanMatcher.js +++ b/node_modules/webpack/lib/util/compileBooleanMatcher.js @@ -9,16 +9,14 @@ * @param {string} str string * @returns {string} quoted meta */ -const quoteMeta = str => { - return str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&"); -}; +const quoteMeta = str => str.replace(/[-[\]\\/{}()*+?.^$|]/g, "\\$&"); /** * @param {string} str string * @returns {string} string */ const toSimpleString = str => { - if (`${+str}` === str) { + if (`${Number(str)}` === str) { return str; } return JSON.stringify(str); @@ -52,9 +50,8 @@ const compileBooleanMatcherFromLists = (positiveItems, negativeItems) => { const negativeRegexp = itemsToRegexp(negativeItems); if (positiveRegexp.length <= negativeRegexp.length) { return value => `/^${positiveRegexp}$/.test(${value})`; - } else { - return value => `!/^${negativeRegexp}$/.test(${value})`; } + return value => `!/^${negativeRegexp}$/.test(${value})`; }; /** diff --git a/node_modules/webpack/lib/util/conventions.js b/node_modules/webpack/lib/util/conventions.js index 9a750e8..4f78df1 100644 --- a/node_modules/webpack/lib/util/conventions.js +++ b/node_modules/webpack/lib/util/conventions.js @@ -12,7 +12,7 @@ * @param {CssGeneratorExportsConvention | undefined} convention convention * @returns {string[]} results */ -exports.cssExportConvention = (input, convention) => { +module.exports.cssExportConvention = (input, convention) => { const set = new Set(); if (typeof convention === "function") { set.add(convention(input)); @@ -20,20 +20,20 @@ exports.cssExportConvention = (input, convention) => { switch (convention) { case "camel-case": { set.add(input); - set.add(exports.camelCase(input)); + set.add(module.exports.camelCase(input)); break; } case "camel-case-only": { - set.add(exports.camelCase(input)); + set.add(module.exports.camelCase(input)); break; } case "dashes": { set.add(input); - set.add(exports.dashesCamelCase(input)); + set.add(module.exports.dashesCamelCase(input)); break; } case "dashes-only": { - set.add(exports.dashesCamelCase(input)); + set.add(module.exports.dashesCamelCase(input)); break; } case "as-is": { @@ -50,18 +50,15 @@ exports.cssExportConvention = (input, convention) => { * @param {string} input input * @returns {string} result */ -exports.dashesCamelCase = input => { - return input.replace(/-+(\w)/g, (match, firstLetter) => - firstLetter.toUpperCase() - ); -}; +module.exports.dashesCamelCase = input => + input.replace(/-+(\w)/g, (match, firstLetter) => firstLetter.toUpperCase()); // Copy from css-loader /** * @param {string} input input * @returns {string} result */ -exports.camelCase = input => { +module.exports.camelCase = input => { let result = input.trim(); if (result.length === 0) { diff --git a/node_modules/webpack/lib/util/create-schema-validation.js b/node_modules/webpack/lib/util/create-schema-validation.js index 290eaf4..4f12c8e 100644 --- a/node_modules/webpack/lib/util/create-schema-validation.js +++ b/node_modules/webpack/lib/util/create-schema-validation.js @@ -7,20 +7,33 @@ const memoize = require("./memoize"); +/** @typedef {import("schema-utils/declarations/validate").ValidationErrorConfiguration} ValidationErrorConfiguration */ +/** @typedef {import("./fs").JsonObject} JsonObject */ + const getValidate = memoize(() => require("schema-utils").validate); +/** + * @template {object | object[]} T + * @param {(function(T): boolean) | undefined} check check + * @param {() => JsonObject} getSchema get schema fn + * @param {ValidationErrorConfiguration} options options + * @returns {function(T=): void} validate + */ const createSchemaValidation = (check, getSchema, options) => { getSchema = memoize(getSchema); return value => { - if (check && !check(value)) { - getValidate()(getSchema(), value, options); - if (check) { - require("util").deprecate( - () => {}, - "webpack bug: Pre-compiled schema reports error while real schema is happy. This has performance drawbacks.", - "DEP_WEBPACK_PRE_COMPILED_SCHEMA_INVALID" - )(); - } + if (check && !check(/** @type {T} */ (value))) { + getValidate()( + getSchema(), + /** @type {object | object[]} */ + (value), + options + ); + require("util").deprecate( + () => {}, + "webpack bug: Pre-compiled schema reports error while real schema is happy. This has performance drawbacks.", + "DEP_WEBPACK_PRE_COMPILED_SCHEMA_INVALID" + )(); } }; }; diff --git a/node_modules/webpack/lib/util/createHash.js b/node_modules/webpack/lib/util/createHash.js index 0732f81..991a1a2 100644 --- a/node_modules/webpack/lib/util/createHash.js +++ b/node_modules/webpack/lib/util/createHash.js @@ -128,26 +128,29 @@ class DebugHash extends Hash { * @returns {string|Buffer} digest */ digest(encoding) { - return Buffer.from("@webpack-debug-digest@" + this.string).toString("hex"); + return Buffer.from(`@webpack-debug-digest@${this.string}`).toString("hex"); } } /** @type {typeof import("crypto") | undefined} */ -let crypto = undefined; +let crypto; /** @type {typeof import("./hash/xxhash64") | undefined} */ -let createXXHash64 = undefined; +let createXXHash64; /** @type {typeof import("./hash/md4") | undefined} */ -let createMd4 = undefined; +let createMd4; /** @type {typeof import("./hash/BatchedHash") | undefined} */ -let BatchedHash = undefined; +let BatchedHash; + +/** @typedef {string | typeof Hash} Algorithm */ /** * Creates a hash by name or function - * @param {string | typeof Hash} algorithm the algorithm name or a constructor creating a hash + * @param {Algorithm} algorithm the algorithm name or a constructor creating a hash * @returns {Hash} the hash */ module.exports = algorithm => { if (typeof algorithm === "function") { + // eslint-disable-next-line new-cap return new BulkUpdateDecorator(() => new algorithm()); } switch (algorithm) { diff --git a/node_modules/webpack/lib/util/deprecation.js b/node_modules/webpack/lib/util/deprecation.js index a64a94b..d59cbd7 100644 --- a/node_modules/webpack/lib/util/deprecation.js +++ b/node_modules/webpack/lib/util/deprecation.js @@ -15,7 +15,10 @@ const deprecationCache = new Map(); * @property {true} _fakeHook it's a fake hook */ -/** @template T @typedef {T & FakeHookMarker} FakeHook */ +/** + * @template T + * @typedef {T & FakeHookMarker} FakeHook + */ /** * @param {string} message deprecation message @@ -28,7 +31,7 @@ const createDeprecation = (message, code) => { const fn = util.deprecate( () => {}, message, - "DEP_WEBPACK_DEPRECATION_" + code + `DEP_WEBPACK_DEPRECATION_${code}` ); deprecationCache.set(message, fn); return fn; @@ -69,7 +72,7 @@ const DISABLED_METHODS = [ * @param {string} name property name * @returns {void} */ -exports.arrayToSetDeprecation = (set, name) => { +module.exports.arrayToSetDeprecation = (set, name) => { for (const method of COPY_METHODS) { if (set[method]) continue; const d = createDeprecation( @@ -84,7 +87,11 @@ exports.arrayToSetDeprecation = (set, name) => { set[method] = function () { d(); const array = Array.from(this); - return Array.prototype[method].apply(array, arguments); + return Array.prototype[/** @type {keyof COPY_METHODS} */ (method)].apply( + array, + // eslint-disable-next-line prefer-rest-params + arguments + ); }; } const dPush = createDeprecation( @@ -106,6 +113,7 @@ exports.arrayToSetDeprecation = (set, name) => { */ set.push = function () { dPush(); + // eslint-disable-next-line prefer-rest-params for (const item of Array.from(arguments)) { this.add(item); } @@ -128,13 +136,13 @@ exports.arrayToSetDeprecation = (set, name) => { * @this {Set} a Set * @returns {any} the value at this location */ + // eslint-disable-next-line func-style const fn = function () { dIndexer(); let i = 0; for (const item of this) { if (i++ === index) return item; } - return undefined; }; return fn; }; @@ -171,14 +179,29 @@ exports.arrayToSetDeprecation = (set, name) => { set[Symbol.isConcatSpreadable] = true; }; -exports.createArrayToSetDeprecationSet = name => { +/** + * @template T + * @param {string} name name + * @returns {{ new (values?: readonly T[] | null): SetDeprecatedArray }} SetDeprecatedArray + */ +module.exports.createArrayToSetDeprecationSet = name => { let initialized = false; + + /** + * @template T + */ class SetDeprecatedArray extends Set { + /** + * @param {readonly T[] | null=} items items + */ constructor(items) { super(items); if (!initialized) { initialized = true; - exports.arrayToSetDeprecation(SetDeprecatedArray.prototype, name); + module.exports.arrayToSetDeprecation( + SetDeprecatedArray.prototype, + name + ); } } } @@ -186,41 +209,77 @@ exports.createArrayToSetDeprecationSet = name => { }; /** - * @template T - * @param {object} obj object + * @template {object} T + * @param {T} obj object * @param {string} name property name * @param {string} code deprecation code * @param {string} note additional note - * @returns {object} frozen object with deprecation when modifying + * @returns {Proxy} frozen object with deprecation when modifying */ -exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => { +module.exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => { const message = `${name} will be frozen in future, all modifications are deprecated.${ note && `\n${note}` }`; - return new Proxy(obj, { - set: util.deprecate( - (target, property, value, receiver) => - Reflect.set(target, property, value, receiver), - message, - code - ), - defineProperty: util.deprecate( - (target, property, descriptor) => - Reflect.defineProperty(target, property, descriptor), - message, - code - ), - deleteProperty: util.deprecate( - (target, property) => Reflect.deleteProperty(target, property), - message, - code - ), - setPrototypeOf: util.deprecate( - (target, proto) => Reflect.setPrototypeOf(target, proto), - message, - code - ) - }); + return /** @type {Proxy} */ ( + new Proxy(/** @type {object} */ (obj), { + set: util.deprecate( + /** + * @param {T} target target + * @param {string | symbol} property property + * @param {any} value value + * @param {any} receiver receiver + * @returns {boolean} result + */ + (target, property, value, receiver) => + Reflect.set( + /** @type {object} */ (target), + property, + value, + receiver + ), + message, + code + ), + defineProperty: util.deprecate( + /** + * @param {T} target target + * @param {string | symbol} property property + * @param {PropertyDescriptor} descriptor descriptor + * @returns {boolean} result + */ + (target, property, descriptor) => + Reflect.defineProperty( + /** @type {object} */ (target), + property, + descriptor + ), + message, + code + ), + deleteProperty: util.deprecate( + /** + * @param {T} target target + * @param {string | symbol} property property + * @returns {boolean} result + */ + (target, property) => + Reflect.deleteProperty(/** @type {object} */ (target), property), + message, + code + ), + setPrototypeOf: util.deprecate( + /** + * @param {T} target target + * @param {object | null} proto proto + * @returns {boolean} result + */ + (target, proto) => + Reflect.setPrototypeOf(/** @type {object} */ (target), proto), + message, + code + ) + }) + ); }; /** @@ -253,23 +312,32 @@ const deprecateAllProperties = (obj, message, code) => { enumerable: descriptor.enumerable, get: util.deprecate(() => value, message, code), set: descriptor.writable - ? util.deprecate(v => (value = v), message, code) + ? util.deprecate( + /** + * @template T + * @param {T} v value + * @returns {T} result + */ + v => (value = v), + message, + code + ) : undefined }); } } return /** @type {T} */ (newObj); }; -exports.deprecateAllProperties = deprecateAllProperties; +module.exports.deprecateAllProperties = deprecateAllProperties; /** - * @template T + * @template {object} T * @param {T} fakeHook fake hook implementation * @param {string=} message deprecation message (not deprecated when unset) * @param {string=} code deprecation code (not deprecated when unset) * @returns {FakeHook} fake hook which redirects */ -exports.createFakeHook = (fakeHook, message, code) => { +module.exports.createFakeHook = (fakeHook, message, code) => { if (message && code) { fakeHook = deprecateAllProperties(fakeHook, message, code); } diff --git a/node_modules/webpack/lib/util/deterministicGrouping.js b/node_modules/webpack/lib/util/deterministicGrouping.js index 7d72e5b..b69be02 100644 --- a/node_modules/webpack/lib/util/deterministicGrouping.js +++ b/node_modules/webpack/lib/util/deterministicGrouping.js @@ -25,7 +25,6 @@ // 3.2% that 5 or more groups are invalidated /** - * * @param {string} a key * @param {string} b key * @returns {number} the similarity as number @@ -116,9 +115,7 @@ const isTooBig = (size, maxSize) => { const s = size[key]; if (s === 0) continue; const maxSizeValue = maxSize[key]; - if (typeof maxSizeValue === "number") { - if (s > maxSizeValue) return true; - } + if (typeof maxSizeValue === "number" && s > maxSizeValue) return true; } return false; }; @@ -133,9 +130,7 @@ const isTooSmall = (size, minSize) => { const s = size[key]; if (s === 0) continue; const minSizeValue = minSize[key]; - if (typeof minSizeValue === "number") { - if (s < minSizeValue) return true; - } + if (typeof minSizeValue === "number" && s < minSizeValue) return true; } return false; }; @@ -151,9 +146,7 @@ const getTooSmallTypes = (size, minSize) => { const s = size[key]; if (s === 0) continue; const minSizeValue = minSize[key]; - if (typeof minSizeValue === "number") { - if (s < minSizeValue) types.add(key); - } + if (typeof minSizeValue === "number" && s < minSizeValue) types.add(key); } return types; }; @@ -236,14 +229,14 @@ class Group { newSimilarities.push( lastNode === this.nodes[i - 1] ? /** @type {number[]} */ (this.similarities)[i - 1] - : similarity(lastNode.key, node.key) + : similarity(/** @type {Node} */ (lastNode).key, node.key) ); } newNodes.push(node); lastNode = node; } } - if (resultNodes.length === this.nodes.length) return undefined; + if (resultNodes.length === this.nodes.length) return; this.nodes = newNodes; this.similarities = newSimilarities; this.size = sumSize(newNodes); @@ -260,7 +253,7 @@ const getSimilarities = nodes => { // calculate similarities between lexically adjacent nodes /** @type {number[]} */ const similarities = []; - let last = undefined; + let last; for (const node of nodes) { if (last !== undefined) { similarities.push(similarity(last.key, node.key)); @@ -371,9 +364,8 @@ module.exports = ({ maxSize, minSize, items, getSize, getKey }) => { result.push(new Group(problemNodes, null)); } return true; - } else { - return false; } + return false; }; if (initialGroup.nodes.length > 0) { @@ -398,14 +390,14 @@ module.exports = ({ maxSize, minSize, items, getSize, getKey }) => { // going minSize from left and right // at least one node need to be included otherwise we get stuck let left = 1; - let leftSize = Object.create(null); + const leftSize = Object.create(null); addSizeTo(leftSize, group.nodes[0].size); while (left < group.nodes.length && isTooSmall(leftSize, minSize)) { addSizeTo(leftSize, group.nodes[left].size); left++; } let right = group.nodes.length - 2; - let rightSize = Object.create(null); + const rightSize = Object.create(null); addSizeTo(rightSize, group.nodes[group.nodes.length - 1].size); while (right >= 0 && isTooSmall(rightSize, minSize)) { addSizeTo(rightSize, group.nodes[right].size); @@ -453,7 +445,7 @@ module.exports = ({ maxSize, minSize, items, getSize, getKey }) => { let best = -1; let bestSimilarity = Infinity; let pos = left; - let rightSize = sumSize(group.nodes.slice(pos)); + const rightSize = sumSize(group.nodes.slice(pos)); // pos v v right // [ O O O ] O O O [ O O O ] @@ -536,12 +528,13 @@ module.exports = ({ maxSize, minSize, items, getSize, getKey }) => { } // return the results - return result.map(group => { - /** @type {GroupedItems} */ - return { - key: group.key, - items: group.nodes.map(node => node.item), - size: group.size - }; - }); + return result.map( + group => + /** @type {GroupedItems} */ + ({ + key: group.key, + items: group.nodes.map(node => node.item), + size: group.size + }) + ); }; diff --git a/node_modules/webpack/lib/util/findGraphRoots.js b/node_modules/webpack/lib/util/findGraphRoots.js index f70b860..795f990 100644 --- a/node_modules/webpack/lib/util/findGraphRoots.js +++ b/node_modules/webpack/lib/util/findGraphRoots.js @@ -225,7 +225,7 @@ module.exports = (items, getDependencies) => { // When roots were found, return them if (roots.size > 0) { return Array.from(roots, r => r.item); - } else { - throw new Error("Implementation of findGraphRoots is broken"); } + + throw new Error("Implementation of findGraphRoots is broken"); }; diff --git a/node_modules/webpack/lib/util/fs.js b/node_modules/webpack/lib/util/fs.js index 5403d8b..14a18c6 100644 --- a/node_modules/webpack/lib/util/fs.js +++ b/node_modules/webpack/lib/util/fs.js @@ -80,23 +80,28 @@ const path = require("path"); /** @typedef {function(NodeJS.ErrnoException | null, number=): void} NumberCallback */ /** @typedef {function(NodeJS.ErrnoException | Error | null, JsonObject=): void} ReadJsonCallback */ +/** @typedef {Map} TimeInfoEntries */ + /** * @typedef {object} WatcherInfo - * @property {Set} changes get current aggregated changes that have not yet send to callback - * @property {Set} removals get current aggregated removals that have not yet send to callback - * @property {Map} fileTimeInfoEntries get info about files - * @property {Map} contextTimeInfoEntries get info about directories + * @property {Set | null} changes get current aggregated changes that have not yet send to callback + * @property {Set | null} removals get current aggregated removals that have not yet send to callback + * @property {TimeInfoEntries} fileTimeInfoEntries get info about files + * @property {TimeInfoEntries} contextTimeInfoEntries get info about directories */ +/** @typedef {Set} Changes */ +/** @typedef {Set} Removals */ + // TODO webpack 6 deprecate missing getInfo /** * @typedef {object} Watcher * @property {function(): void} close closes the watcher and all underlying file watchers * @property {function(): void} pause closes the watcher, but keeps underlying file watchers alive until the next watch call - * @property {function(): Set=} getAggregatedChanges get current aggregated changes that have not yet send to callback - * @property {function(): Set=} getAggregatedRemovals get current aggregated removals that have not yet send to callback - * @property {function(): Map} getFileTimeInfoEntries get info about files - * @property {function(): Map} getContextTimeInfoEntries get info about directories + * @property {(function(): Changes | null)=} getAggregatedChanges get current aggregated changes that have not yet send to callback + * @property {(function(): Removals | null)=} getAggregatedRemovals get current aggregated removals that have not yet send to callback + * @property {function(): TimeInfoEntries} getFileTimeInfoEntries get info about files + * @property {function(): TimeInfoEntries} getContextTimeInfoEntries get info about directories * @property {function(): WatcherInfo=} getInfo get info about timestamps and changes */ @@ -107,7 +112,7 @@ const path = require("path"); * @param {Iterable} missing watched existence entries * @param {number} startTime timestamp of start time * @param {WatchOptions} options options object - * @param {function(Error | null, Map, Map, Set, Set): void} callback aggregated callback + * @param {function(Error | null, TimeInfoEntries=, TimeInfoEntries=, Changes=, Removals=): void} callback aggregated callback * @param {function(string, number): void} callbackUndelayed callback when the first change was detected * @returns {Watcher} a watcher */ @@ -367,7 +372,7 @@ const path = require("path"); * @typedef {object} StreamOptions * @property {(string | undefined)=} flags * @property {(BufferEncoding | undefined)} encoding - * @property {(number | any | undefined)=} fd + * @property {(number | EXPECTED_ANY | undefined)=} fd * @property {(number | undefined)=} mode * @property {(boolean | undefined)=} autoClose * @property {(boolean | undefined)=} emitClose @@ -377,12 +382,12 @@ const path = require("path"); /** * @typedef {object} FSImplementation - * @property {((...args: any[]) => any)=} open - * @property {((...args: any[]) => any)=} close + * @property {((...args: EXPECTED_ANY[]) => EXPECTED_ANY)=} open + * @property {((...args: EXPECTED_ANY[]) => EXPECTED_ANY)=} close */ /** - * @typedef {FSImplementation & { write: (...args: any[]) => any; close?: (...args: any[]) => any }} CreateWriteStreamFSImplementation + * @typedef {FSImplementation & { write: (...args: EXPECTED_ANY[]) => EXPECTED_ANY; close?: (...args: EXPECTED_ANY[]) => EXPECTED_ANY }} CreateWriteStreamFSImplementation */ /** @@ -451,7 +456,6 @@ const path = require("path"); /** @typedef {InputFileSystem & OutputFileSystem & IntermediateFileSystemExtras} IntermediateFileSystem */ /** - * * @param {InputFileSystem|OutputFileSystem|undefined} fs a file system * @param {string} rootPath the root path * @param {string} targetPath the target path @@ -464,13 +468,12 @@ const relative = (fs, rootPath, targetPath) => { return path.posix.relative(rootPath, targetPath); } else if (path.win32.isAbsolute(rootPath)) { return path.win32.relative(rootPath, targetPath); - } else { - throw new Error( - `${rootPath} is neither a posix nor a windows path, and there is no 'relative' method defined in the file system` - ); } + throw new Error( + `${rootPath} is neither a posix nor a windows path, and there is no 'relative' method defined in the file system` + ); }; -exports.relative = relative; +module.exports.relative = relative; /** * @param {InputFileSystem|OutputFileSystem|undefined} fs a file system @@ -485,13 +488,12 @@ const join = (fs, rootPath, filename) => { return path.posix.join(rootPath, filename); } else if (path.win32.isAbsolute(rootPath)) { return path.win32.join(rootPath, filename); - } else { - throw new Error( - `${rootPath} is neither a posix nor a windows path, and there is no 'join' method defined in the file system` - ); } + throw new Error( + `${rootPath} is neither a posix nor a windows path, and there is no 'join' method defined in the file system` + ); }; -exports.join = join; +module.exports.join = join; /** * @param {InputFileSystem|OutputFileSystem|undefined} fs a file system @@ -505,13 +507,12 @@ const dirname = (fs, absPath) => { return path.posix.dirname(absPath); } else if (path.win32.isAbsolute(absPath)) { return path.win32.dirname(absPath); - } else { - throw new Error( - `${absPath} is neither a posix nor a windows path, and there is no 'dirname' method defined in the file system` - ); } + throw new Error( + `${absPath} is neither a posix nor a windows path, and there is no 'dirname' method defined in the file system` + ); }; -exports.dirname = dirname; +module.exports.dirname = dirname; /** * @param {OutputFileSystem} fs a file system @@ -556,7 +557,7 @@ const mkdirp = (fs, p, callback) => { callback(); }); }; -exports.mkdirp = mkdirp; +module.exports.mkdirp = mkdirp; /** * @param {IntermediateFileSystem} fs a file system @@ -583,7 +584,7 @@ const mkdirpSync = (fs, p) => { } } }; -exports.mkdirpSync = mkdirpSync; +module.exports.mkdirpSync = mkdirpSync; /** * @param {InputFileSystem} fs a file system @@ -601,13 +602,13 @@ const readJson = (fs, p, callback) => { let data; try { data = JSON.parse(/** @type {Buffer} */ (buf).toString("utf-8")); - } catch (e) { - return callback(/** @type {Error} */ (e)); + } catch (err1) { + return callback(/** @type {Error} */ (err1)); } return callback(null, data); }); }; -exports.readJson = readJson; +module.exports.readJson = readJson; /** * @param {InputFileSystem} fs a file system @@ -624,8 +625,8 @@ const lstatReadlinkAbsolute = (fs, p, callback) => { // we retry 2 times to catch this case before throwing the error return doStat(); } - if (err || !target) return doStat(); - const value = target.toString(); + if (err) return callback(err); + const value = /** @type {string} */ (target).toString(); callback(null, join(fs, dirname(fs, p), value)); }); }; @@ -641,11 +642,10 @@ const lstatReadlinkAbsolute = (fs, p, callback) => { callback(null, stats); } ); - } else { - return fs.stat(p, callback); } + return fs.stat(p, callback); }; if ("lstat" in fs) return doStat(); doReadLink(); }; -exports.lstatReadlinkAbsolute = lstatReadlinkAbsolute; +module.exports.lstatReadlinkAbsolute = lstatReadlinkAbsolute; diff --git a/node_modules/webpack/lib/util/hash/md4.js b/node_modules/webpack/lib/util/hash/md4.js index 23eae0a..425edc3 100644 --- a/node_modules/webpack/lib/util/hash/md4.js +++ b/node_modules/webpack/lib/util/hash/md4.js @@ -7,7 +7,7 @@ const create = require("./wasm-hash"); -//#region wasm code: md4 (../../../assembly/hash/md4.asm.ts) --initialMemory 1 +// #region wasm code: md4 (../../../assembly/hash/md4.asm.ts) --initialMemory 1 const md4 = new WebAssembly.Module( Buffer.from( // 2154 bytes @@ -15,6 +15,6 @@ const md4 = new WebAssembly.Module( "base64" ) ); -//#endregion +// #endregion module.exports = create.bind(null, md4, [], 64, 32); diff --git a/node_modules/webpack/lib/util/hash/wasm-hash.js b/node_modules/webpack/lib/util/hash/wasm-hash.js index a43fa13..0c70b96 100644 --- a/node_modules/webpack/lib/util/hash/wasm-hash.js +++ b/node_modules/webpack/lib/util/hash/wasm-hash.js @@ -133,6 +133,10 @@ class WasmHash { } } + /** + * @param {BufferEncoding} type type + * @returns {Buffer | string} digest + */ digest(type) { const { exports, buffered, mem, digestSize } = this; exports.final(buffered); @@ -144,19 +148,26 @@ class WasmHash { } } +/** + * @param {TODO} wasmModule wasm module + * @param {WasmHash[]} instancesPool pool of instances + * @param {number} chunkSize size of data chunks passed to wasm + * @param {number} digestSize size of digest returned by wasm + * @returns {WasmHash} wasm hash + */ const create = (wasmModule, instancesPool, chunkSize, digestSize) => { if (instancesPool.length > 0) { - const old = instancesPool.pop(); + const old = /** @type {WasmHash} */ (instancesPool.pop()); old.reset(); return old; - } else { - return new WasmHash( - new WebAssembly.Instance(wasmModule), - instancesPool, - chunkSize, - digestSize - ); } + + return new WasmHash( + new WebAssembly.Instance(wasmModule), + instancesPool, + chunkSize, + digestSize + ); }; module.exports = create; diff --git a/node_modules/webpack/lib/util/hash/xxhash64.js b/node_modules/webpack/lib/util/hash/xxhash64.js index 0f0f743..b9262b8 100644 --- a/node_modules/webpack/lib/util/hash/xxhash64.js +++ b/node_modules/webpack/lib/util/hash/xxhash64.js @@ -7,7 +7,7 @@ const create = require("./wasm-hash"); -//#region wasm code: xxhash64 (../../../assembly/hash/xxhash64.asm.ts) --initialMemory 1 +// #region wasm code: xxhash64 (../../../assembly/hash/xxhash64.asm.ts) --initialMemory 1 const xxhash64 = new WebAssembly.Module( Buffer.from( // 1160 bytes @@ -15,6 +15,6 @@ const xxhash64 = new WebAssembly.Module( "base64" ) ); -//#endregion +// #endregion module.exports = create.bind(null, xxhash64, [], 32, 16); diff --git a/node_modules/webpack/lib/util/identifier.js b/node_modules/webpack/lib/util/identifier.js index 32623ee..e94a63b 100644 --- a/node_modules/webpack/lib/util/identifier.js +++ b/node_modules/webpack/lib/util/identifier.js @@ -85,24 +85,48 @@ const requestToAbsolute = (context, relativePath) => { return relativePath; }; +/** + * @template T + * @typedef {function(string, object=): T} MakeCacheableResult + */ + +/** + * @template T + * @typedef {function(string): T} BindCacheResultFn + */ + +/** + * @template T + * @typedef {function(object): BindCacheResultFn} BindCache + */ + +/** + * @template T + * @param {(function(string): T)} realFn real function + * @returns {MakeCacheableResult & { bindCache: BindCache }} cacheable function + */ const makeCacheable = realFn => { - /** @type {WeakMap>} */ + /** + * @template T + * @typedef {Map} CacheItem + */ + /** @type {WeakMap>} */ const cache = new WeakMap(); + /** + * @param {object} associatedObjectForCache an object to which the cache will be attached + * @returns {CacheItem} cache item + */ const getCache = associatedObjectForCache => { const entry = cache.get(associatedObjectForCache); if (entry !== undefined) return entry; - /** @type {Map} */ + /** @type {Map} */ const map = new Map(); cache.set(associatedObjectForCache, map); return map; }; - /** - * @param {string} str the path with query and fragment - * @param {object=} associatedObjectForCache an object to which the cache will be attached - * @returns {ParsedResource} parsed parts - */ + /** @type {MakeCacheableResult & { bindCache: BindCache }} */ const fn = (str, associatedObjectForCache) => { if (!associatedObjectForCache) return realFn(str); const cache = getCache(associatedObjectForCache); @@ -113,8 +137,13 @@ const makeCacheable = realFn => { return result; }; + /** @type {BindCache} */ fn.bindCache = associatedObjectForCache => { const cache = getCache(associatedObjectForCache); + /** + * @param {string} str string + * @returns {T} value + */ return str => { const entry = cache.get(str); if (entry !== undefined) return entry; @@ -127,16 +156,21 @@ const makeCacheable = realFn => { return fn; }; +/** @typedef {function(string, string, object=): string} MakeCacheableWithContextResult */ +/** @typedef {function(string, string): string} BindCacheForContextResultFn */ +/** @typedef {function(string): string} BindContextCacheForContextResultFn */ +/** @typedef {function(object=): BindCacheForContextResultFn} BindCacheForContext */ +/** @typedef {function(string, object=): BindContextCacheForContextResultFn} BindContextCacheForContext */ + +/** + * @param {function(string, string): string} fn function + * @returns {MakeCacheableWithContextResult & { bindCache: BindCacheForContext, bindContextCache: BindContextCacheForContext }} cacheable function with context + */ const makeCacheableWithContext = fn => { /** @type {WeakMap>>} */ const cache = new WeakMap(); - /** - * @param {string} context context used to create relative path - * @param {string} identifier identifier used to create relative path - * @param {object=} associatedObjectForCache an object to which the cache will be attached - * @returns {string} the returned relative path - */ + /** @type {MakeCacheableWithContextResult & { bindCache: BindCacheForContext, bindContextCache: BindContextCacheForContext }} */ const cachedFn = (context, identifier, associatedObjectForCache) => { if (!associatedObjectForCache) return fn(context, identifier); @@ -156,17 +190,13 @@ const makeCacheableWithContext = fn => { if (cachedResult !== undefined) { return cachedResult; - } else { - const result = fn(context, identifier); - innerSubCache.set(identifier, result); - return result; } + const result = fn(context, identifier); + innerSubCache.set(identifier, result); + return result; }; - /** - * @param {object=} associatedObjectForCache an object to which the cache will be attached - * @returns {function(string, string): string} cached function - */ + /** @type {BindCacheForContext} */ cachedFn.bindCache = associatedObjectForCache => { let innerCache; if (associatedObjectForCache) { @@ -195,21 +225,16 @@ const makeCacheableWithContext = fn => { if (cachedResult !== undefined) { return cachedResult; - } else { - const result = fn(context, identifier); - innerSubCache.set(identifier, result); - return result; } + const result = fn(context, identifier); + innerSubCache.set(identifier, result); + return result; }; return boundFn; }; - /** - * @param {string} context context used to create relative path - * @param {object=} associatedObjectForCache an object to which the cache will be attached - * @returns {function(string): string} cached function - */ + /** @type {BindContextCacheForContext} */ cachedFn.bindContextCache = (context, associatedObjectForCache) => { let innerSubCache; if (associatedObjectForCache) { @@ -235,11 +260,10 @@ const makeCacheableWithContext = fn => { const cachedResult = innerSubCache.get(identifier); if (cachedResult !== undefined) { return cachedResult; - } else { - const result = fn(context, identifier); - innerSubCache.set(identifier, result); - return result; } + const result = fn(context, identifier); + innerSubCache.set(identifier, result); + return result; }; return boundFn; @@ -249,64 +273,58 @@ const makeCacheableWithContext = fn => { }; /** - * * @param {string} context context for relative path * @param {string} identifier identifier for path * @returns {string} a converted relative path */ -const _makePathsRelative = (context, identifier) => { - return identifier +const _makePathsRelative = (context, identifier) => + identifier .split(SEGMENTS_SPLIT_REGEXP) .map(str => absoluteToRequest(context, str)) .join(""); -}; -exports.makePathsRelative = makeCacheableWithContext(_makePathsRelative); +module.exports.makePathsRelative = makeCacheableWithContext(_makePathsRelative); /** - * * @param {string} context context for relative path * @param {string} identifier identifier for path * @returns {string} a converted relative path */ -const _makePathsAbsolute = (context, identifier) => { - return identifier +const _makePathsAbsolute = (context, identifier) => + identifier .split(SEGMENTS_SPLIT_REGEXP) .map(str => requestToAbsolute(context, str)) .join(""); -}; -exports.makePathsAbsolute = makeCacheableWithContext(_makePathsAbsolute); +module.exports.makePathsAbsolute = makeCacheableWithContext(_makePathsAbsolute); /** * @param {string} context absolute context path * @param {string} request any request string may containing absolute paths, query string, etc. * @returns {string} a new request string avoiding absolute paths when possible */ -const _contextify = (context, request) => { - return request +const _contextify = (context, request) => + request .split("!") .map(r => absoluteToRequest(context, r)) .join("!"); -}; const contextify = makeCacheableWithContext(_contextify); -exports.contextify = contextify; +module.exports.contextify = contextify; /** * @param {string} context absolute context path * @param {string} request any request string * @returns {string} a new request string using absolute paths when possible */ -const _absolutify = (context, request) => { - return request +const _absolutify = (context, request) => + request .split("!") .map(r => requestToAbsolute(context, r)) .join("!"); -}; const absolutify = makeCacheableWithContext(_absolutify); -exports.absolutify = absolutify; +module.exports.absolutify = absolutify; const PATH_QUERY_FRAGMENT_REGEXP = /^((?:\0.|[^?#\0])*)(\?(?:\0.|[^#\0])*)?(#.*)?$/; @@ -320,7 +338,9 @@ const PATH_QUERY_REGEXP = /^((?:\0.|[^?\0])*)(\?.*)?$/; * @returns {ParsedResource} parsed parts */ const _parseResource = str => { - const match = PATH_QUERY_FRAGMENT_REGEXP.exec(str); + const match = + /** @type {[string, string, string | undefined, string | undefined]} */ + (/** @type {unknown} */ (PATH_QUERY_FRAGMENT_REGEXP.exec(str))); return { resource: str, path: match[1].replace(/\0(.)/g, "$1"), @@ -328,7 +348,7 @@ const _parseResource = str => { fragment: match[3] || "" }; }; -exports.parseResource = makeCacheable(_parseResource); +module.exports.parseResource = makeCacheable(_parseResource); /** * Parse resource, skips fragment part @@ -336,14 +356,16 @@ exports.parseResource = makeCacheable(_parseResource); * @returns {ParsedResourceWithoutFragment} parsed parts */ const _parseResourceWithoutFragment = str => { - const match = PATH_QUERY_REGEXP.exec(str); + const match = + /** @type {[string, string, string | undefined]} */ + (/** @type {unknown} */ (PATH_QUERY_REGEXP.exec(str))); return { resource: str, path: match[1].replace(/\0(.)/g, "$1"), query: match[2] ? match[2].replace(/\0(.)/g, "$1") : "" }; }; -exports.parseResourceWithoutFragment = makeCacheable( +module.exports.parseResourceWithoutFragment = makeCacheable( _parseResourceWithoutFragment ); @@ -353,7 +375,7 @@ exports.parseResourceWithoutFragment = makeCacheable( * @param {boolean} enforceRelative true returns ./ for empty paths * @returns {string} repeated ../ to leave the directory of the provided filename to be back on output dir */ -exports.getUndoPath = (filename, outputPath, enforceRelative) => { +module.exports.getUndoPath = (filename, outputPath, enforceRelative) => { let depth = -1; let append = ""; outputPath = outputPath.replace(/[\\/]$/, ""); @@ -365,8 +387,8 @@ exports.getUndoPath = (filename, outputPath, enforceRelative) => { const i = outputPath.lastIndexOf("/"); const j = outputPath.lastIndexOf("\\"); const pos = i < 0 ? j : j < 0 ? i : Math.max(i, j); - if (pos < 0) return outputPath + "/"; - append = outputPath.slice(pos + 1) + "/" + append; + if (pos < 0) return `${outputPath}/`; + append = `${outputPath.slice(pos + 1)}/${append}`; outputPath = outputPath.slice(0, pos); } } else if (part !== ".") { diff --git a/node_modules/webpack/lib/util/makeSerializable.js b/node_modules/webpack/lib/util/makeSerializable.js index c1d7779..90b60fb 100644 --- a/node_modules/webpack/lib/util/makeSerializable.js +++ b/node_modules/webpack/lib/util/makeSerializable.js @@ -7,16 +7,38 @@ const { register } = require("./serialization"); /** @typedef {import("../serialization/ObjectMiddleware").Constructor} Constructor */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ +/** @typedef {{ serialize: (context: ObjectSerializerContext) => void, deserialize: (context: ObjectDeserializerContext) => void }} SerializableClass */ +/** + * @template {SerializableClass} T + * @typedef {(new (...params: any[]) => T) & { deserialize?: (context: ObjectDeserializerContext) => T }} SerializableClassConstructor + */ + +/** + * @template {SerializableClass} T + */ class ClassSerializer { + /** + * @param {SerializableClassConstructor} Constructor constructor + */ constructor(Constructor) { this.Constructor = Constructor; } + /** + * @param {T} obj obj + * @param {ObjectSerializerContext} context context + */ serialize(obj, context) { obj.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + * @returns {T} obj + */ deserialize(context) { if (typeof this.Constructor.deserialize === "function") { return this.Constructor.deserialize(context); @@ -28,7 +50,8 @@ class ClassSerializer { } /** - * @param {Constructor} Constructor the constructor + * @template {Constructor} T + * @param {T} Constructor the constructor * @param {string} request the request which will be required when deserializing * @param {string | null} [name] the name to make multiple serializer unique when sharing a request */ diff --git a/node_modules/webpack/lib/util/memoize.js b/node_modules/webpack/lib/util/memoize.js index e208cbb..d3fc196 100644 --- a/node_modules/webpack/lib/util/memoize.js +++ b/node_modules/webpack/lib/util/memoize.js @@ -14,20 +14,19 @@ const memoize = fn => { let cache = false; /** @type {T | undefined} */ - let result = undefined; + let result; return () => { if (cache) { return /** @type {T} */ (result); - } else { - result = fn(); - cache = true; - // Allow to clean up memory for fn - // and all dependent resources - // eslint-disable-next-line no-warning-comments - // @ts-ignore - fn = undefined; - return /** @type {T} */ (result); } + + result = fn(); + cache = true; + // Allow to clean up memory for fn + // and all dependent resources + /** @type {FunctionReturning | undefined} */ + (fn) = undefined; + return /** @type {T} */ (result); }; }; diff --git a/node_modules/webpack/lib/util/mergeScope.js b/node_modules/webpack/lib/util/mergeScope.js deleted file mode 100644 index d9190eb..0000000 --- a/node_modules/webpack/lib/util/mergeScope.js +++ /dev/null @@ -1,79 +0,0 @@ -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ - -"use strict"; - -/** @typedef {import("eslint-scope").Reference} Reference */ -/** @typedef {import("eslint-scope").Variable} Variable */ -/** @typedef {import("../javascript/JavascriptParser").AnyNode} AnyNode */ -/** @typedef {import("../javascript/JavascriptParser").Program} Program */ - -/** - * @param {Variable} variable variable - * @returns {Reference[]} references - */ -const getAllReferences = variable => { - let set = variable.references; - // Look for inner scope variables too (like in class Foo { t() { Foo } }) - const identifiers = new Set(variable.identifiers); - for (const scope of variable.scope.childScopes) { - for (const innerVar of scope.variables) { - if (innerVar.identifiers.some(id => identifiers.has(id))) { - set = set.concat(innerVar.references); - break; - } - } - } - return set; -}; - -/** - * @param {Program | Program[]} ast ast - * @param {AnyNode} node node - * @returns {undefined | AnyNode[]} result - */ -const getPathInAst = (ast, node) => { - if (ast === node) { - return []; - } - - const nr = node.range; - - const enterNode = n => { - if (!n) return undefined; - const r = n.range; - if (r) { - if (r[0] <= nr[0] && r[1] >= nr[1]) { - const path = getPathInAst(n, node); - if (path) { - path.push(n); - return path; - } - } - } - return undefined; - }; - - if (Array.isArray(ast)) { - for (let i = 0; i < ast.length; i++) { - const enterResult = enterNode(ast[i]); - if (enterResult !== undefined) return enterResult; - } - } else if (ast && typeof ast === "object") { - const keys = Object.keys(ast); - for (let i = 0; i < keys.length; i++) { - const value = ast[keys[i]]; - if (Array.isArray(value)) { - const pathResult = getPathInAst(value, node); - if (pathResult !== undefined) return pathResult; - } else if (value && typeof value === "object") { - const enterResult = enterNode(value); - if (enterResult !== undefined) return enterResult; - } - } - } -}; - -module.exports = { getAllReferences, getPathInAst }; diff --git a/node_modules/webpack/lib/util/nonNumericOnlyHash.js b/node_modules/webpack/lib/util/nonNumericOnlyHash.js index 4f241ca..ec8ca74 100644 --- a/node_modules/webpack/lib/util/nonNumericOnlyHash.js +++ b/node_modules/webpack/lib/util/nonNumericOnlyHash.js @@ -15,8 +15,8 @@ const A_CODE = "a".charCodeAt(0); module.exports = (hash, hashLength) => { if (hashLength < 1) return ""; const slice = hash.slice(0, hashLength); - if (slice.match(/[^\d]/)) return slice; + if (/[^\d]/.test(slice)) return slice; return `${String.fromCharCode( - A_CODE + (parseInt(hash[0], 10) % 6) + A_CODE + (Number.parseInt(hash[0], 10) % 6) )}${slice.slice(1)}`; }; diff --git a/node_modules/webpack/lib/util/numberHash.js b/node_modules/webpack/lib/util/numberHash.js index 607d755..950d14b 100644 --- a/node_modules/webpack/lib/util/numberHash.js +++ b/node_modules/webpack/lib/util/numberHash.js @@ -77,24 +77,19 @@ function fnv1a64(str) { * * We use `numberHash` in `lib/ids/IdHelpers.js` to generate hash values for the module identifier. The generated * hash is used as a prefix for the module id's to avoid collisions with other modules. - * * @param {string} str The input string to hash. * @param {number} range The range of the hash value (0 to range-1). * @returns {number} - The computed hash value. - * * @example - * * ```js * const numberHash = require("webpack/lib/util/numberHash"); * numberHash("hello", 1000); // 73 * numberHash("hello world"); // 72 * ``` - * */ module.exports = (str, range) => { if (range < FNV_64_THRESHOLD) { return fnv1a32(str) % range; - } else { - return Number(fnv1a64(str) % BigInt(range)); } + return Number(fnv1a64(str) % BigInt(range)); }; diff --git a/node_modules/webpack/lib/util/objectToMap.js b/node_modules/webpack/lib/util/objectToMap.js index fbd9808..19ce8e0 100644 --- a/node_modules/webpack/lib/util/objectToMap.js +++ b/node_modules/webpack/lib/util/objectToMap.js @@ -6,7 +6,6 @@ /** * Convert an object into an ES6 map - * * @param {object} obj any object type that works with Object.entries() * @returns {Map} an ES6 Map of KV pairs */ diff --git a/node_modules/webpack/lib/util/propertyAccess.js b/node_modules/webpack/lib/util/propertyAccess.js index 50712a6..0cf647b 100644 --- a/node_modules/webpack/lib/util/propertyAccess.js +++ b/node_modules/webpack/lib/util/propertyAccess.js @@ -5,10 +5,7 @@ "use strict"; -const { - SAFE_IDENTIFIER, - RESERVED_IDENTIFIER -} = require("../util/propertyName"); +const { SAFE_IDENTIFIER, RESERVED_IDENTIFIER } = require("./propertyName"); /** * @param {ArrayLike} properties properties @@ -19,7 +16,7 @@ const propertyAccess = (properties, start = 0) => { let str = ""; for (let i = start; i < properties.length; i++) { const p = properties[i]; - if (`${+p}` === p) { + if (`${Number(p)}` === p) { str += `[${p}]`; } else if (SAFE_IDENTIFIER.test(p) && !RESERVED_IDENTIFIER.has(p)) { str += `.${p}`; diff --git a/node_modules/webpack/lib/util/propertyName.js b/node_modules/webpack/lib/util/propertyName.js index ff512d4..4ee9e3f 100644 --- a/node_modules/webpack/lib/util/propertyName.js +++ b/node_modules/webpack/lib/util/propertyName.js @@ -64,16 +64,14 @@ const RESERVED_IDENTIFIER = new Set([ * @summary Returns a valid JS property name for the given property. * Certain strings like "default", "null", and names with whitespace are not * valid JS property names, so they are returned as strings. - * * @param {string} prop property name to analyze * @returns {string} valid JS property name */ const propertyName = prop => { if (SAFE_IDENTIFIER.test(prop) && !RESERVED_IDENTIFIER.has(prop)) { return prop; - } else { - return JSON.stringify(prop); } + return JSON.stringify(prop); }; module.exports = { SAFE_IDENTIFIER, RESERVED_IDENTIFIER, propertyName }; diff --git a/node_modules/webpack/lib/util/registerExternalSerializer.js b/node_modules/webpack/lib/util/registerExternalSerializer.js index 21cf714..711bcfa 100644 --- a/node_modules/webpack/lib/util/registerExternalSerializer.js +++ b/node_modules/webpack/lib/util/registerExternalSerializer.js @@ -9,7 +9,7 @@ const { register } = require("./serialization"); const Position = /** @type {TODO} */ (require("acorn")).Position; const SourceLocation = require("acorn").SourceLocation; -const ValidationError = require("schema-utils/dist/ValidationError").default; +const ValidationError = require("schema-utils").ValidationError; const { CachedSource, ConcatSource, diff --git a/node_modules/webpack/lib/util/runtime.js b/node_modules/webpack/lib/util/runtime.js index 3a0c979..021f799 100644 --- a/node_modules/webpack/lib/util/runtime.js +++ b/node_modules/webpack/lib/util/runtime.js @@ -19,7 +19,7 @@ const SortableSet = require("./SortableSet"); * @param {EntryOptions=} options optionally already received entry options * @returns {RuntimeSpec} runtime */ -exports.getEntryRuntime = (compilation, name, options) => { +module.exports.getEntryRuntime = (compilation, name, options) => { let dependOn; let runtime; if (options) { @@ -31,7 +31,7 @@ exports.getEntryRuntime = (compilation, name, options) => { } if (dependOn) { /** @type {RuntimeSpec} */ - let result = undefined; + let result; const queue = new Set(dependOn); for (const name of queue) { const dep = compilation.entries.get(name); @@ -46,9 +46,8 @@ exports.getEntryRuntime = (compilation, name, options) => { } } return result || name; - } else { - return runtime || name; } + return runtime || name; }; /** @@ -69,7 +68,7 @@ const forEachRuntime = (runtime, fn, deterministicOrder = false) => { } } }; -exports.forEachRuntime = forEachRuntime; +module.exports.forEachRuntime = forEachRuntime; /** * @template T @@ -90,19 +89,19 @@ const getRuntimeKey = runtime => { if (typeof runtime === "string") return runtime; return runtime.getFromUnorderedCache(getRuntimesKey); }; -exports.getRuntimeKey = getRuntimeKey; +module.exports.getRuntimeKey = getRuntimeKey; /** * @param {string} key key of runtimes * @returns {RuntimeSpec} runtime(s) */ const keyToRuntime = key => { - if (key === "*") return undefined; + if (key === "*") return; const items = key.split("\n"); if (items.length === 1) return items[0]; return new SortableSet(items); }; -exports.keyToRuntime = keyToRuntime; +module.exports.keyToRuntime = keyToRuntime; /** * @template T @@ -123,13 +122,13 @@ const runtimeToString = runtime => { if (typeof runtime === "string") return runtime; return runtime.getFromUnorderedCache(getRuntimesString); }; -exports.runtimeToString = runtimeToString; +module.exports.runtimeToString = runtimeToString; /** * @param {RuntimeCondition} runtimeCondition runtime condition * @returns {string} readable version */ -exports.runtimeConditionToString = runtimeCondition => { +module.exports.runtimeConditionToString = runtimeCondition => { if (runtimeCondition === true) return "true"; if (runtimeCondition === false) return "false"; return runtimeToString(runtimeCondition); @@ -152,40 +151,38 @@ const runtimeEqual = (a, b) => { return false; } else if (a.size !== b.size) { return false; - } else { - a.sort(); - b.sort(); - const aIt = a[Symbol.iterator](); - const bIt = b[Symbol.iterator](); - for (;;) { - const aV = aIt.next(); - if (aV.done) return true; - const bV = bIt.next(); - if (aV.value !== bV.value) return false; - } + } + a.sort(); + b.sort(); + const aIt = a[Symbol.iterator](); + const bIt = b[Symbol.iterator](); + for (;;) { + const aV = aIt.next(); + if (aV.done) return true; + const bV = bIt.next(); + if (aV.value !== bV.value) return false; } }; -exports.runtimeEqual = runtimeEqual; +module.exports.runtimeEqual = runtimeEqual; /** * @param {RuntimeSpec} a first * @param {RuntimeSpec} b second * @returns {-1|0|1} compare */ -exports.compareRuntime = (a, b) => { +module.exports.compareRuntime = (a, b) => { if (a === b) { return 0; } else if (a === undefined) { return -1; } else if (b === undefined) { return 1; - } else { - const aKey = getRuntimeKey(a); - const bKey = getRuntimeKey(b); - if (aKey < bKey) return -1; - if (aKey > bKey) return 1; - return 0; } + const aKey = getRuntimeKey(a); + const bKey = getRuntimeKey(b); + if (aKey < bKey) return -1; + if (aKey > bKey) return 1; + return 0; }; /** @@ -208,26 +205,23 @@ const mergeRuntime = (a, b) => { return set; } else if (b.has(a)) { return b; - } else { - const set = new SortableSet(b); - set.add(a); - return set; - } - } else { - if (typeof b === "string") { - if (a.has(b)) return a; - const set = new SortableSet(a); - set.add(b); - return set; - } else { - const set = new SortableSet(a); - for (const item of b) set.add(item); - if (set.size === a.size) return a; - return set; } + const set = new SortableSet(b); + set.add(a); + return set; } + if (typeof b === "string") { + if (a.has(b)) return a; + const set = new SortableSet(a); + set.add(b); + return set; + } + const set = new SortableSet(a); + for (const item of b) set.add(item); + if (set.size === a.size) return a; + return set; }; -exports.mergeRuntime = mergeRuntime; +module.exports.mergeRuntime = mergeRuntime; /** * @param {RuntimeCondition} a first @@ -235,12 +229,12 @@ exports.mergeRuntime = mergeRuntime; * @param {RuntimeSpec} runtime full runtime * @returns {RuntimeCondition} result */ -exports.mergeRuntimeCondition = (a, b, runtime) => { +module.exports.mergeRuntimeCondition = (a, b, runtime) => { if (a === false) return b; if (b === false) return a; if (a === true || b === true) return true; const merged = mergeRuntime(a, b); - if (merged === undefined) return undefined; + if (merged === undefined) return; if (typeof merged === "string") { if (typeof runtime === "string" && merged === runtime) return true; return merged; @@ -256,10 +250,10 @@ exports.mergeRuntimeCondition = (a, b, runtime) => { * @param {RuntimeSpec} runtime full runtime * @returns {RuntimeSpec | true} result */ -exports.mergeRuntimeConditionNonFalse = (a, b, runtime) => { +module.exports.mergeRuntimeConditionNonFalse = (a, b, runtime) => { if (a === true || b === true) return true; const merged = mergeRuntime(a, b); - if (merged === undefined) return undefined; + if (merged === undefined) return; if (typeof merged === "string") { if (typeof runtime === "string" && merged === runtime) return true; return merged; @@ -282,38 +276,34 @@ const mergeRuntimeOwned = (a, b) => { } else if (a === undefined) { if (typeof b === "string") { return b; - } else { - return new SortableSet(b); } + return new SortableSet(b); } else if (typeof a === "string") { if (typeof b === "string") { const set = new SortableSet(); set.add(a); set.add(b); return set; - } else { - const set = new SortableSet(b); - set.add(a); - return set; - } - } else { - if (typeof b === "string") { - a.add(b); - return a; - } else { - for (const item of b) a.add(item); - return a; } + const set = new SortableSet(b); + set.add(a); + return set; } + if (typeof b === "string") { + a.add(b); + return a; + } + for (const item of b) a.add(item); + return a; }; -exports.mergeRuntimeOwned = mergeRuntimeOwned; +module.exports.mergeRuntimeOwned = mergeRuntimeOwned; /** * @param {RuntimeSpec} a first * @param {RuntimeSpec} b second * @returns {RuntimeSpec} merged */ -exports.intersectRuntime = (a, b) => { +module.exports.intersectRuntime = (a, b) => { if (a === undefined) { return b; } else if (b === undefined) { @@ -322,26 +312,26 @@ exports.intersectRuntime = (a, b) => { return a; } else if (typeof a === "string") { if (typeof b === "string") { - return undefined; + return; } else if (b.has(a)) { return a; - } else { - return undefined; - } - } else { - if (typeof b === "string") { - if (a.has(b)) return b; - return undefined; - } else { - const set = new SortableSet(); - for (const item of b) { - if (a.has(item)) set.add(item); - } - if (set.size === 0) return undefined; - if (set.size === 1) for (const item of set) return item; - return set; } + return; } + if (typeof b === "string") { + if (a.has(b)) return b; + return; + } + const set = new SortableSet(); + for (const item of b) { + if (a.has(item)) set.add(item); + } + if (set.size === 0) return; + if (set.size === 1) { + const [item] = set; + return item; + } + return set; }; /** @@ -351,42 +341,42 @@ exports.intersectRuntime = (a, b) => { */ const subtractRuntime = (a, b) => { if (a === undefined) { - return undefined; + return; } else if (b === undefined) { return a; } else if (a === b) { - return undefined; + return; } else if (typeof a === "string") { if (typeof b === "string") { return a; } else if (b.has(a)) { - return undefined; - } else { - return a; - } - } else { - if (typeof b === "string") { - if (!a.has(b)) return a; - if (a.size === 2) { - for (const item of a) { - if (item !== b) return item; - } - } - const set = new SortableSet(a); - set.delete(b); - return set; - } else { - const set = new SortableSet(); - for (const item of a) { - if (!b.has(item)) set.add(item); - } - if (set.size === 0) return undefined; - if (set.size === 1) for (const item of set) return item; - return set; + return; } + return a; } + if (typeof b === "string") { + if (!a.has(b)) return a; + if (a.size === 2) { + for (const item of a) { + if (item !== b) return item; + } + } + const set = new SortableSet(a); + set.delete(b); + return set; + } + const set = new SortableSet(); + for (const item of a) { + if (!b.has(item)) set.add(item); + } + if (set.size === 0) return; + if (set.size === 1) { + const [item] = set; + return item; + } + return set; }; -exports.subtractRuntime = subtractRuntime; +module.exports.subtractRuntime = subtractRuntime; /** * @param {RuntimeCondition} a first @@ -394,7 +384,7 @@ exports.subtractRuntime = subtractRuntime; * @param {RuntimeSpec} runtime runtime * @returns {RuntimeCondition} result */ -exports.subtractRuntimeCondition = (a, b, runtime) => { +module.exports.subtractRuntimeCondition = (a, b, runtime) => { if (b === true) return false; if (b === false) return a; if (a === false) return false; @@ -404,15 +394,15 @@ exports.subtractRuntimeCondition = (a, b, runtime) => { /** * @param {RuntimeSpec} runtime runtime - * @param {function(RuntimeSpec): boolean} filter filter function + * @param {function(RuntimeSpec=): boolean} filter filter function * @returns {boolean | RuntimeSpec} true/false if filter is constant for all runtimes, otherwise runtimes that are active */ -exports.filterRuntime = (runtime, filter) => { - if (runtime === undefined) return filter(undefined); +module.exports.filterRuntime = (runtime, filter) => { + if (runtime === undefined) return filter(); if (typeof runtime === "string") return filter(runtime); let some = false; let every = true; - let result = undefined; + let result; for (const r of runtime) { const v = filter(r); if (v) { @@ -456,7 +446,7 @@ class RuntimeSpecMap { get(runtime) { switch (this._mode) { case 0: - return undefined; + return; case 1: return runtimeEqual(this._singleRuntime, runtime) ? this._singleValue @@ -628,6 +618,9 @@ class RuntimeSpecMap { } } + /** + * @returns {IterableIterator} values + */ values() { switch (this._mode) { case 0: @@ -640,12 +633,15 @@ class RuntimeSpecMap { } get size() { - if (/** @type {number} */ (this._mode) <= 1) return this._mode; + if (/** @type {number} */ (this._mode) <= 1) { + return /** @type {number} */ (this._mode); + } + return /** @type {Map} */ (this._map).size; } } -exports.RuntimeSpecMap = RuntimeSpecMap; +module.exports.RuntimeSpecMap = RuntimeSpecMap; class RuntimeSpecSet { /** @@ -676,6 +672,9 @@ class RuntimeSpecSet { return this._map.has(getRuntimeKey(runtime)); } + /** + * @returns {IterableIterator} iterable iterator + */ [Symbol.iterator]() { return this._map.values(); } @@ -685,4 +684,4 @@ class RuntimeSpecSet { } } -exports.RuntimeSpecSet = RuntimeSpecSet; +module.exports.RuntimeSpecSet = RuntimeSpecSet; diff --git a/node_modules/webpack/lib/util/semver.js b/node_modules/webpack/lib/util/semver.js index 3207ff1..019400a 100644 --- a/node_modules/webpack/lib/util/semver.js +++ b/node_modules/webpack/lib/util/semver.js @@ -6,33 +6,45 @@ "use strict"; /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ -/** @typedef {(string|number|undefined|[])[]} SemVerRange */ +/** @typedef {string | number | undefined} SemVerRangeItem */ +/** @typedef {(SemVerRangeItem | SemVerRangeItem[])[]} SemVerRange */ /** * @param {string} str version string - * @returns {(string|number|undefined|[])[]} parsed version + * @returns {SemVerRange} parsed version */ const parseVersion = str => { + /** + * @param {str} str str + * @returns {(string | number)[]} result + */ var splitAndConvert = function (str) { return str.split(".").map(function (item) { // eslint-disable-next-line eqeqeq - return +item == item ? +item : item; + return +item == /** @type {EXPECTED_ANY} */ (item) ? +item : item; }); }; - var match = /^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(str); - /** @type {(string|number|undefined|[])[]} */ + + var match = + /** @type {RegExpExecArray} */ + (/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(str)); + + /** @type {(string | number | undefined | [])[]} */ var ver = match[1] ? splitAndConvert(match[1]) : []; + if (match[2]) { ver.length++; ver.push.apply(ver, splitAndConvert(match[2])); } + if (match[3]) { ver.push([]); ver.push.apply(ver, splitAndConvert(match[3])); } + return ver; }; -exports.parseVersion = parseVersion; +module.exports.parseVersion = parseVersion; /* eslint-disable eqeqeq */ /** @@ -82,23 +94,35 @@ const versionLt = (a, b) => { } }; /* eslint-enable eqeqeq */ -exports.versionLt = versionLt; +module.exports.versionLt = versionLt; /** * @param {string} str range string * @returns {SemVerRange} parsed range */ -exports.parseRange = str => { +module.exports.parseRange = str => { + /** + * @param {string} str str + * @returns {(string | number)[]} result + */ const splitAndConvert = str => { return str .split(".") .map(item => (item !== "NaN" && `${+item}` === item ? +item : item)); }; + // see https://docs.npmjs.com/misc/semver#range-grammar for grammar + /** + * @param {string} str str + * @returns {SemVerRangeItem[]} + */ const parsePartial = str => { - const match = /^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(str); - /** @type {(string|number|undefined|[])[]} */ + const match = + /** @type {RegExpExecArray} */ + (/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(str)); + /** @type {SemVerRangeItem[]} */ const ver = match[1] ? [0, ...splitAndConvert(match[1])] : [0]; + if (match[2]) { ver.length++; ver.push.apply(ver, splitAndConvert(match[2])); @@ -116,6 +140,12 @@ exports.parseRange = str => { return ver; }; + + /** + * + * @param {SemVerRangeItem[]} range range + * @returns {SemVerRangeItem[]} + */ const toFixed = range => { if (range.length === 1) { // Special case for "*" is "x.x.x" instead of "=" @@ -126,13 +156,24 @@ exports.parseRange = str => { } else if (range.length === 3) { // Special case for "1.2" is "1.2.x" instead of "=1.2" return [2, ...range.slice(1)]; - } else { - return [range.length, ...range.slice(1)]; } + + return [range.length, ...range.slice(1)]; }; + + /** + * + * @param {SemVerRangeItem[]} range + * @returns {SemVerRangeItem[]} result + */ const negate = range => { - return [-range[0] - 1, ...range.slice(1)]; + return [-(/** @type { [number]} */ (range)[0]) - 1, ...range.slice(1)]; }; + + /** + * @param {string} str str + * @returns {SemVerRange} + */ const parseSimple = str => { // simple ::= primitive | partial | tilde | caret // primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | '!' ) ( ' ' ) * partial @@ -143,6 +184,7 @@ exports.parseRange = str => { const remainder = parsePartial( start.length ? str.slice(start.length).trim() : str.trim() ); + switch (start) { case "^": if (remainder.length > 1 && remainder[1] === 0) { @@ -185,6 +227,13 @@ exports.parseRange = str => { throw new Error("Unexpected start value"); } }; + + /** + * + * @param {SemVerRangeItem[][]} items items + * @param {number} fn fn + * @returns {SemVerRange} result + */ const combine = (items, fn) => { if (items.length === 1) return items[0]; const arr = []; @@ -195,38 +244,64 @@ exports.parseRange = str => { arr.push(...item.slice(1)); } } + // eslint-disable-next-line no-sparse-arrays return [, ...arr, ...items.slice(1).map(() => fn)]; }; + + /** + * @param {string} str str + * @returns {SemVerRange} + */ const parseRange = str => { // range ::= hyphen | simple ( ' ' ( ' ' ) * simple ) * | '' // hyphen ::= partial ( ' ' ) * ' - ' ( ' ' ) * partial const items = str.split(/\s+-\s+/); + if (items.length === 1) { - const items = str - .trim() - .split(/(?<=[-0-9A-Za-z])\s+/g) - .map(parseSimple); + const items = + /** @type {SemVerRangeItem[][]} */ + ( + str + .trim() + .split(/(?<=[-0-9A-Za-z])\s+/g) + .map(parseSimple) + ); + return combine(items, 2); } + const a = parsePartial(items[0]); const b = parsePartial(items[1]); // >=a <=b => and( >=a, or( >=a, { // range-set ::= range ( logical-or range ) * // logical-or ::= ( ' ' ) * '||' ( ' ' ) * - const items = str.split(/\s*\|\|\s*/).map(parseRange); + const items = + /** @type {SemVerRangeItem[][]} */ + (str.split(/\s*\|\|\s*/).map(parseRange)); + return combine(items, 1); }; + return parseLogicalOr(str); }; /* eslint-disable eqeqeq */ +/** + * @param {SemVerRange} range + * @returns {string} + */ const rangeToString = range => { - var fixCount = range[0]; + var fixCount = /** @type {number} */ (range[0]); var str = ""; if (range.length === 1) { return "*"; @@ -256,32 +331,32 @@ const rangeToString = range => { (needDot > 0 ? "." : "") + ((needDot = 2), item); } return str; - } else { - var stack = []; - // eslint-disable-next-line no-redeclare - for (var i = 1; i < range.length; i++) { - // eslint-disable-next-line no-redeclare - var item = range[i]; - stack.push( - item === 0 - ? "not(" + pop() + ")" - : item === 1 - ? "(" + pop() + " || " + pop() + ")" - : item === 2 - ? stack.pop() + " " + stack.pop() - : rangeToString(item) - ); - } - return pop(); } + /** @type {string[]} */ + var stack = []; + // eslint-disable-next-line no-redeclare + for (var i = 1; i < range.length; i++) { + // eslint-disable-next-line no-redeclare + var item = range[i]; + stack.push( + item === 0 + ? "not(" + pop() + ")" + : item === 1 + ? "(" + pop() + " || " + pop() + ")" + : item === 2 + ? stack.pop() + " " + stack.pop() + : rangeToString(/** @type {SemVerRange} */ (item)) + ); + } + return pop(); + function pop() { - return stack.pop().replace(/^\((.+)\)$/, "$1"); + return /** @type {string} */ (stack.pop()).replace(/^\((.+)\)$/, "$1"); } }; -/* eslint-enable eqeqeq */ -exports.rangeToString = rangeToString; -/* eslint-disable eqeqeq */ +module.exports.rangeToString = rangeToString; + /** * @param {SemVerRange} range version range * @param {string} version the version @@ -340,16 +415,22 @@ const satisfy = (range, version) => { // big-cmp: when negated => return false, else => next-nequ // small-cmp: when negated => next-nequ, else => return false - var rangeType = j < range.length ? (typeof range[j])[0] : ""; + var rangeType = + /** @type {"s" | "n" | "u" | ""} */ + (j < range.length ? (typeof range[j])[0] : ""); + /** @type {number | string | undefined} */ var versionValue; + /** @type {"n" | "s" | "u" | "o" | undefined} */ var versionType; // Handles first column in both tables (end of version or object) if ( i >= version.length || ((versionValue = version[i]), - (versionType = (typeof versionValue)[0]) == "o") + (versionType = /** @type {"n" | "s" | "u" | "o"} */ ( + (typeof versionValue)[0] + )) == "o") ) { // Handles nequal if (!isEqual) return true; @@ -377,7 +458,11 @@ const satisfy = (range, version) => { } } else { // Handles "cmp" cases - if (negated ? versionValue > range[j] : versionValue < range[j]) { + if ( + negated + ? versionValue > /** @type {(number | string)[]} */ (range)[j] + : versionValue < /** @type {(number | string)[]} */ (range)[j] + ) { return false; } if (versionValue != range[j]) isEqual = false; @@ -399,6 +484,7 @@ const satisfy = (range, version) => { } } else { // Handles all "next-ver" cases in the second table + // eslint-disable-next-line no-lonely-if if (rangeType != "s" && rangeType != "n") { isEqual = false; j--; @@ -408,17 +494,20 @@ const satisfy = (range, version) => { } } } + /** @type {(boolean | number)[]} */ var stack = []; var p = stack.pop.bind(stack); // eslint-disable-next-line no-redeclare for (var i = 1; i < range.length; i++) { - var item = /** @type {SemVerRange | 0 | 1 | 2} */ (range[i]); + var item = /** @type {SemVerRangeItem[] | 0 | 1 | 2} */ (range[i]); + stack.push( item == 1 - ? p() | p() + ? /** @type {() => number} */ (p)() | /** @type {() => number} */ (p)() : item == 2 - ? p() & p() + ? /** @type {() => number} */ (p)() & + /** @type {() => number} */ (p)() : item ? satisfy(item, version) : !p() @@ -427,9 +516,13 @@ const satisfy = (range, version) => { return !!p(); }; /* eslint-enable eqeqeq */ -exports.satisfy = satisfy; +module.exports.satisfy = satisfy; -exports.stringifyHoley = json => { +/** + * @param {SemVerRange | string | number | false | undefined} json + * @returns {string} + */ +module.exports.stringifyHoley = json => { switch (typeof json) { case "undefined": return ""; @@ -442,15 +535,19 @@ exports.stringifyHoley = json => { } str += "]"; return str; - } else { - return JSON.stringify(json); } + + return JSON.stringify(json); default: return JSON.stringify(json); } }; //#region runtime code: parseVersion +/** + * @param {RuntimeTemplate} runtimeTemplate + * @returns {string} + */ exports.parseVersionRuntimeCode = runtimeTemplate => `var parseVersion = ${runtimeTemplate.basicFunction("str", [ "// see webpack/lib/util/semver.js for original code", @@ -459,6 +556,10 @@ exports.parseVersionRuntimeCode = runtimeTemplate => //#endregion //#region runtime code: versionLt +/** + * @param {RuntimeTemplate} runtimeTemplate + * @returns {string} + */ exports.versionLtRuntimeCode = runtimeTemplate => `var versionLt = ${runtimeTemplate.basicFunction("a, b", [ "// see webpack/lib/util/semver.js for original code", @@ -467,6 +568,10 @@ exports.versionLtRuntimeCode = runtimeTemplate => //#endregion //#region runtime code: rangeToString +/** + * @param {RuntimeTemplate} runtimeTemplate + * @returns {string} + */ exports.rangeToStringRuntimeCode = runtimeTemplate => `var rangeToString = ${runtimeTemplate.basicFunction("range", [ "// see webpack/lib/util/semver.js for original code", @@ -475,6 +580,10 @@ exports.rangeToStringRuntimeCode = runtimeTemplate => //#endregion //#region runtime code: satisfy +/** + * @param {RuntimeTemplate} runtimeTemplate + * @returns {string} + */ exports.satisfyRuntimeCode = runtimeTemplate => `var satisfy = ${runtimeTemplate.basicFunction("range, version", [ "// see webpack/lib/util/semver.js for original code", diff --git a/node_modules/webpack/lib/util/serialization.js b/node_modules/webpack/lib/util/serialization.js index 59bbb25..597f039 100644 --- a/node_modules/webpack/lib/util/serialization.js +++ b/node_modules/webpack/lib/util/serialization.js @@ -39,7 +39,11 @@ const registerSerializers = memoize(() => { // This allows bundling all internal serializers const internalSerializables = require("./internalSerializables"); getObjectMiddleware().registerLoader(/^webpack\/lib\//, req => { - const loader = internalSerializables[req.slice("webpack/lib/".length)]; + const loader = + internalSerializables[ + /** @type {keyof import("./internalSerializables")} */ + (req.slice("webpack/lib/".length)) + ]; if (loader) { loader(); } else { @@ -88,6 +92,9 @@ module.exports = { new SingleItemMiddleware(), new (getObjectMiddleware())(context => { if (context.write) { + /** + * @param {any} value value + */ context.writeLazy = value => { context.write( SerializerMiddleware.createLazy(value, binaryMiddleware) @@ -115,11 +122,19 @@ module.exports = { new SingleItemMiddleware(), new (getObjectMiddleware())(context => { if (context.write) { + /** + * @param {any} value value + */ context.writeLazy = value => { context.write( SerializerMiddleware.createLazy(value, binaryMiddleware) ); }; + /** + * @param {any} value value + * @param {object=} options lazy options + * @returns {function(): Promise | any} lazy function + */ context.writeSeparate = (value, options) => { const lazy = SerializerMiddleware.createLazy( value, diff --git a/node_modules/webpack/lib/util/smartGrouping.js b/node_modules/webpack/lib/util/smartGrouping.js index 8645f8a..f75648c 100644 --- a/node_modules/webpack/lib/util/smartGrouping.js +++ b/node_modules/webpack/lib/util/smartGrouping.js @@ -16,7 +16,7 @@ * @template T * @template R * @typedef {object} GroupConfig - * @property {function(T): string[]} getKeys + * @property {function(T): string[] | undefined} getKeys * @property {function(string, (R | T)[], T[]): R} createGroup * @property {function(string, T[]): GroupOptions=} getOptions */ @@ -111,10 +111,10 @@ const smartGrouping = (items, groupConfigs) => { const results = []; for (;;) { /** @type {Group | undefined} */ - let bestGroup = undefined; + let bestGroup; let bestGroupSize = -1; - let bestGroupItems = undefined; - let bestGroupOptions = undefined; + let bestGroupItems; + let bestGroupOptions; for (const [group, state] of groupMap) { const { items, used } = state; let options = state.options; @@ -138,7 +138,7 @@ const smartGrouping = (items, groupConfigs) => { } } const targetGroupCount = (options && options.targetGroupCount) || 4; - let sizeValue = force + const sizeValue = force ? items.size : Math.min( items.size, diff --git a/node_modules/webpack/lib/util/source.js b/node_modules/webpack/lib/util/source.js index 5f13347..b951678 100644 --- a/node_modules/webpack/lib/util/source.js +++ b/node_modules/webpack/lib/util/source.js @@ -58,4 +58,4 @@ const isSourceEqual = (a, b) => { } return result; }; -exports.isSourceEqual = isSourceEqual; +module.exports.isSourceEqual = isSourceEqual; diff --git a/node_modules/webpack/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js b/node_modules/webpack/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js index 1730f3d..1cb4abb 100644 --- a/node_modules/webpack/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +++ b/node_modules/webpack/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js @@ -44,7 +44,7 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule { `" + ${RuntimeGlobals.getFullHash}}().slice(0, ${length}) + "`, module: { id: '" + wasmModuleId + "', - hash: `" + wasmModuleHash + "`, + hash: '" + wasmModuleHash + "', hashWithLength(length) { return `" + wasmModuleHash.slice(0, ${length}) + "`; } @@ -75,18 +75,18 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule { concat( "return req.then(", runtimeTemplate.basicFunction("res", [ - `if (typeof WebAssembly.instantiateStreaming === "function") {`, + 'if (typeof WebAssembly.instantiateStreaming === "function") {', Template.indent([ "return WebAssembly.instantiateStreaming(res, importsObj)", Template.indent([ ".then(", Template.indent([ - runtimeTemplate.returningFunction( + `${runtimeTemplate.returningFunction( "Object.assign(exports, res.instance.exports)", "res" - ) + ",", + )},`, runtimeTemplate.basicFunction("e", [ - `if(res.headers.get("Content-Type") !== "application/wasm") {`, + 'if(res.headers.get("Content-Type") !== "application/wasm") {', Template.indent([ 'console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n", e);', "return fallback();" @@ -110,7 +110,7 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule { "exports, wasmModuleId, wasmModuleHash, importsObj", this.supportsStreaming ? getStreaming() - : [`return ${loader}`, Template.indent(fallback) + ";"] + : [`return ${loader}`, `${Template.indent(fallback)};`] )};`; } } diff --git a/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyGenerator.js b/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyGenerator.js index b29e8a0..558541e 100644 --- a/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyGenerator.js +++ b/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyGenerator.js @@ -6,13 +6,13 @@ "use strict"; const Generator = require("../Generator"); +const { WEBASSEMBLY_TYPES } = require("../ModuleSourceTypesConstants"); /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("../Generator").GenerateContext} GenerateContext */ +/** @typedef {import("../Module").SourceTypes} SourceTypes */ /** @typedef {import("../NormalModule")} NormalModule */ -const TYPES = new Set(["webassembly"]); - /** * @typedef {object} AsyncWebAssemblyGeneratorOptions * @property {boolean} [mangleImports] mangle imports @@ -29,10 +29,10 @@ class AsyncWebAssemblyGenerator extends Generator { /** * @param {NormalModule} module fresh module - * @returns {Set} available types (do not mutate) + * @returns {SourceTypes} available types (do not mutate) */ getTypes(module) { - return TYPES; + return WEBASSEMBLY_TYPES; } /** @@ -51,7 +51,7 @@ class AsyncWebAssemblyGenerator extends Generator { /** * @param {NormalModule} module module for which the code should be generated * @param {GenerateContext} generateContext context for generate - * @returns {Source} generated code + * @returns {Source | null} generated code */ generate(module, generateContext) { return /** @type {Source} */ (module.originalSource()); diff --git a/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js b/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js index 31fef03..30f30b0 100644 --- a/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +++ b/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js @@ -8,6 +8,7 @@ const { RawSource } = require("webpack-sources"); const Generator = require("../Generator"); const InitFragment = require("../InitFragment"); +const { WEBASSEMBLY_TYPES } = require("../ModuleSourceTypesConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); const Template = require("../Template"); const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency"); @@ -17,11 +18,10 @@ const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDe /** @typedef {import("../DependencyTemplates")} DependencyTemplates */ /** @typedef {import("../Generator").GenerateContext} GenerateContext */ /** @typedef {import("../Module")} Module */ +/** @typedef {import("../Module").SourceTypes} SourceTypes */ /** @typedef {import("../NormalModule")} NormalModule */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ -const TYPES = new Set(["webassembly"]); - /** * @typedef {{ request: string, importVar: string }} ImportObjRequestItem */ @@ -37,10 +37,10 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator { /** * @param {NormalModule} module fresh module - * @returns {Set} available types (do not mutate) + * @returns {SourceTypes} available types (do not mutate) */ getTypes(module) { - return TYPES; + return WEBASSEMBLY_TYPES; } /** @@ -55,7 +55,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator { /** * @param {NormalModule} module module for which the code should be generated * @param {GenerateContext} generateContext context for generate - * @returns {Source} generated code + * @returns {Source | null} generated code */ generate(module, generateContext) { const { @@ -161,12 +161,11 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator { ]) : undefined; - const instantiateCall = - `${RuntimeGlobals.instantiateWasm}(${module.exportsArgument}, ${ - module.moduleArgument - }.id, ${JSON.stringify( - chunkGraph.getRenderedModuleHash(module, runtime) - )}` + (importsObj ? `, ${importsObj})` : `)`); + const instantiateCall = `${RuntimeGlobals.instantiateWasm}(${module.exportsArgument}, ${ + module.moduleArgument + }.id, ${JSON.stringify( + chunkGraph.getRenderedModuleHash(module, runtime) + )}${importsObj ? `, ${importsObj})` : ")"}`; if (promises.length > 0) runtimeRequirements.add(RuntimeGlobals.asyncModule); diff --git a/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js b/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js index 6da3c93..74a6127 100644 --- a/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +++ b/node_modules/webpack/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js @@ -208,9 +208,9 @@ class AsyncWebAssemblyModulesPlugin { hooks.renderModuleContent.call(moduleSource, module, renderContext), "AsyncWebAssemblyModulesPlugin.getCompilationHooks().renderModuleContent" ); - } catch (e) { - /** @type {WebpackError} */ (e).module = module; - throw e; + } catch (err) { + /** @type {WebpackError} */ (err).module = module; + throw err; } } } diff --git a/node_modules/webpack/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js b/node_modules/webpack/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js index 0617cb7..654a620 100644 --- a/node_modules/webpack/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +++ b/node_modules/webpack/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js @@ -13,6 +13,7 @@ const WebAssemblyUtils = require("./WebAssemblyUtils"); /** @typedef {import("@webassemblyjs/ast").Signature} Signature */ /** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../ChunkGraph")} ChunkGraph */ +/** @typedef {import("../ChunkGraph").ModuleId} ModuleId */ /** @typedef {import("../Compilation")} Compilation */ /** @typedef {import("../Module")} Module */ /** @typedef {import("../Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */ @@ -89,7 +90,8 @@ const generateImportObject = ( const instanceVar = `m${waitForInstances.size}`; waitForInstances.set( instanceVar, - chunkGraph.getModuleId(/** @type {Module} */ (importedModule)) + /** @type {ModuleId} */ + (chunkGraph.getModuleId(/** @type {Module} */ (importedModule))) ); properties.push({ module, @@ -100,7 +102,7 @@ const generateImportObject = ( const params = /** @type {Signature} */ (description.signature).params.map( - (param, k) => "p" + k + param.valtype + (param, k) => `p${k}${param.valtype}` ); const mod = `${RuntimeGlobals.moduleCache}[${JSON.stringify( @@ -121,7 +123,7 @@ const generateImportObject = ( module, name, value: Template.asString([ - modCode + `function(${params}) {`, + `${modCode}function(${params}) {`, Template.indent([ `if(${cache} === undefined) ${cache} = ${modExports};`, `return ${cache}[${JSON.stringify(usedName)}](${params});` @@ -154,15 +156,15 @@ const generateImportObject = ( importObject = [ "return {", Template.indent([ - Array.from(propertiesByModule, ([module, list]) => { - return Template.asString([ + Array.from(propertiesByModule, ([module, list]) => + Template.asString([ `${JSON.stringify(module)}: {`, Template.indent([ list.map(p => `${JSON.stringify(p.name)}: ${p.value}`).join(",\n") ]), "}" - ]); - }).join(",\n") + ]) + ).join(",\n") ]), "};" ]; @@ -200,13 +202,12 @@ const generateImportObject = ( ]), "}," ]); - } else { - return Template.asString([ - `${moduleIdStringified}: function() {`, - Template.indent(importObject), - "}," - ]); } + return Template.asString([ + `${moduleIdStringified}: function() {`, + Template.indent(importObject), + "}," + ]); }; /** @@ -250,15 +251,15 @@ class WasmChunkLoadingRuntimeModule extends RuntimeModule { const { mangleImports } = this; /** @type {string[]} */ const declarations = []; - const importObjects = wasmModules.map(module => { - return generateImportObject( + const importObjects = wasmModules.map(module => + generateImportObject( chunkGraph, module, mangleImports, declarations, chunk.runtime - ); - }); + ) + ); const chunkModuleIdMap = chunkGraph.getChunkModuleIdMap(chunk, m => m.type.startsWith("webassembly") ); @@ -331,7 +332,7 @@ class WasmChunkLoadingRuntimeModule extends RuntimeModule { `${fn}.wasm = function(chunkId, promises) {`, Template.indent([ "", - `var wasmModules = wasmModuleMap[chunkId] || [];`, + "var wasmModules = wasmModuleMap[chunkId] || [];", "", "wasmModules.forEach(function(wasmModuleId, idx) {", Template.indent([ @@ -342,7 +343,7 @@ class WasmChunkLoadingRuntimeModule extends RuntimeModule { Template.indent(["promises.push(installedWasmModuleData);"]), "else {", Template.indent([ - `var importObject = wasmImportObjects[wasmModuleId]();`, + "var importObject = wasmImportObjects[wasmModuleId]();", `var req = ${this.generateLoadBinaryCode(wasmModuleSrcPath)};`, "var promise;", this.supportsStreaming diff --git a/node_modules/webpack/lib/wasm-sync/WebAssemblyGenerator.js b/node_modules/webpack/lib/wasm-sync/WebAssemblyGenerator.js index 645e1f9..d315539 100644 --- a/node_modules/webpack/lib/wasm-sync/WebAssemblyGenerator.js +++ b/node_modules/webpack/lib/wasm-sync/WebAssemblyGenerator.js @@ -5,14 +5,14 @@ "use strict"; -const { RawSource } = require("webpack-sources"); -const Generator = require("../Generator"); -const WebAssemblyUtils = require("./WebAssemblyUtils"); - const t = require("@webassemblyjs/ast"); const { moduleContextFromModuleAST } = require("@webassemblyjs/ast"); const { editWithAST, addWithAST } = require("@webassemblyjs/wasm-edit"); const { decode } = require("@webassemblyjs/wasm-parser"); +const { RawSource } = require("webpack-sources"); +const Generator = require("../Generator"); +const { WEBASSEMBLY_TYPES } = require("../ModuleSourceTypesConstants"); +const WebAssemblyUtils = require("./WebAssemblyUtils"); const WebAssemblyExportImportedDependency = require("../dependencies/WebAssemblyExportImportedDependency"); @@ -20,6 +20,7 @@ const WebAssemblyExportImportedDependency = require("../dependencies/WebAssembly /** @typedef {import("../DependencyTemplates")} DependencyTemplates */ /** @typedef {import("../Generator").GenerateContext} GenerateContext */ /** @typedef {import("../Module")} Module */ +/** @typedef {import("../Module").SourceTypes} SourceTypes */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../NormalModule")} NormalModule */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ @@ -43,33 +44,27 @@ const WebAssemblyExportImportedDependency = require("../dependencies/WebAssembly * @param {((prev: ArrayBuffer) => ArrayBuffer)[]} fns transforms * @returns {Function} composed transform */ -const compose = (...fns) => { - return fns.reduce( - (prevFn, nextFn) => { - return value => nextFn(prevFn(value)); - }, +const compose = (...fns) => + fns.reduce( + (prevFn, nextFn) => value => nextFn(prevFn(value)), value => value ); -}; /** * Removes the start instruction - * * @param {object} state state * @param {object} state.ast Module's ast * @returns {ArrayBufferTransform} transform */ -const removeStartFunc = state => bin => { - return editWithAST(state.ast, bin, { +const removeStartFunc = state => bin => + editWithAST(state.ast, bin, { Start(path) { path.remove(); } }); -}; /** * Get imported globals - * * @param {object} ast Module's AST * @returns {t.ModuleImport[]} - nodes */ @@ -90,7 +85,6 @@ const getImportedGlobals = ast => { /** * Get the count for imported func - * * @param {object} ast Module's AST * @returns {number} - count */ @@ -110,7 +104,6 @@ const getCountImportedFunc = ast => { /** * Get next type index - * * @param {object} ast Module's AST * @returns {t.Index} - index */ @@ -126,11 +119,9 @@ const getNextTypeIndex = ast => { /** * Get next func index - * * The Func section metadata provide information for implemented funcs * in order to have the correct index we shift the index by number of external * functions. - * * @param {object} ast Module's AST * @param {number} countImportedFunc number of imported funcs * @returns {t.Index} - index @@ -163,9 +154,8 @@ const createDefaultInitForGlobal = globalType => { return t.objectInstruction("const", globalType.valtype, [ t.floatLiteral(66, false, false, "66") ]); - } else { - throw new Error("unknown type: " + globalType.valtype); } + throw new Error(`unknown type: ${globalType.valtype}`); }; /** @@ -177,7 +167,6 @@ const createDefaultInitForGlobal = globalType => { * indices will be preserved. * * Note that globals will become mutable. - * * @param {object} state transformation state * @param {object} state.ast Module's ast * @param {t.Instruction[]} state.additionalInitCode list of addition instructions for the init function @@ -258,8 +247,8 @@ const rewriteImportedGlobals = state => bin => { */ const rewriteExportNames = ({ ast, moduleGraph, module, externalExports, runtime }) => - bin => { - return editWithAST(ast, bin, { + bin => + editWithAST(ast, bin, { /** * @param {NodePath} path path */ @@ -279,7 +268,6 @@ const rewriteExportNames = path.node.name = /** @type {string} */ (usedName); } }); - }; /** * Mangle import names and modules @@ -290,14 +278,14 @@ const rewriteExportNames = */ const rewriteImports = ({ ast, usedDependencyMap }) => - bin => { - return editWithAST(ast, bin, { + bin => + editWithAST(ast, bin, { /** * @param {NodePath} path path */ ModuleImport(path) { const result = usedDependencyMap.get( - path.node.module + ":" + path.node.name + `${path.node.module}:${path.node.name}` ); if (result !== undefined) { @@ -306,13 +294,11 @@ const rewriteImports = } } }); - }; /** * Add an init function. * * The init function fills the globals given input arguments. - * * @param {object} state transformation state * @param {object} state.ast Module's ast * @param {t.Identifier} state.initFuncId identifier of the init function @@ -348,7 +334,7 @@ const addInitFunction = /** @type {Instruction[]} */ const funcBody = []; - importedGlobals.forEach((importedGlobal, index) => { + for (const [index, _importedGlobal] of importedGlobals.entries()) { const args = [t.indexLiteral(index)]; const body = [ t.instruction("get_local", args), @@ -356,7 +342,7 @@ const addInitFunction = ]; funcBody.push(...body); - }); + } if (typeof startAtFuncOffset === "number") { funcBody.push( @@ -410,13 +396,11 @@ const getUsedDependencyMap = (moduleGraph, module, mangle) => { const dep = usedDep.dependency; const request = dep.request; const exportName = dep.name; - map.set(request + ":" + exportName, usedDep); + map.set(`${request}:${exportName}`, usedDep); } return map; }; -const TYPES = new Set(["webassembly"]); - /** * @typedef {object} WebAssemblyGeneratorOptions * @property {boolean} [mangleImports] mangle imports @@ -433,10 +417,10 @@ class WebAssemblyGenerator extends Generator { /** * @param {NormalModule} module fresh module - * @returns {Set} available types (do not mutate) + * @returns {SourceTypes} available types (do not mutate) */ getTypes(module) { - return TYPES; + return WEBASSEMBLY_TYPES; } /** @@ -455,7 +439,7 @@ class WebAssemblyGenerator extends Generator { /** * @param {NormalModule} module module for which the code should be generated * @param {GenerateContext} generateContext context for generate - * @returns {Source} generated code + * @returns {Source | null} generated code */ generate(module, { moduleGraph, runtime }) { const bin = /** @type {Source} */ (module.originalSource()).source(); diff --git a/node_modules/webpack/lib/wasm-sync/WebAssemblyJavascriptGenerator.js b/node_modules/webpack/lib/wasm-sync/WebAssemblyJavascriptGenerator.js index 8a87a13..7b4353a 100644 --- a/node_modules/webpack/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +++ b/node_modules/webpack/lib/wasm-sync/WebAssemblyJavascriptGenerator.js @@ -9,6 +9,7 @@ const { RawSource } = require("webpack-sources"); const { UsageState } = require("../ExportsInfo"); const Generator = require("../Generator"); const InitFragment = require("../InitFragment"); +const { WEBASSEMBLY_TYPES } = require("../ModuleSourceTypesConstants"); const RuntimeGlobals = require("../RuntimeGlobals"); const Template = require("../Template"); const ModuleDependency = require("../dependencies/ModuleDependency"); @@ -20,18 +21,17 @@ const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDe /** @typedef {import("../DependencyTemplates")} DependencyTemplates */ /** @typedef {import("../Generator").GenerateContext} GenerateContext */ /** @typedef {import("../Module")} Module */ +/** @typedef {import("../Module").SourceTypes} SourceTypes */ /** @typedef {import("../NormalModule")} NormalModule */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ -const TYPES = new Set(["webassembly"]); - class WebAssemblyJavascriptGenerator extends Generator { /** * @param {NormalModule} module fresh module - * @returns {Set} available types (do not mutate) + * @returns {SourceTypes} available types (do not mutate) */ getTypes(module) { - return TYPES; + return WEBASSEMBLY_TYPES; } /** @@ -46,7 +46,7 @@ class WebAssemblyJavascriptGenerator extends Generator { /** * @param {NormalModule} module module for which the code should be generated * @param {GenerateContext} generateContext context for generate - * @returns {Source} generated code + * @returns {Source | null} generated code */ generate(module, generateContext) { const { @@ -201,7 +201,7 @@ class WebAssemblyJavascriptGenerator extends Generator { copyAllExports ? `${module.moduleArgument}.exports = wasmExports;` : "for(var name in wasmExports) " + - `if(name) ` + + "if(name) " + `${module.exportsArgument}[name] = wasmExports[name];`, "// exec imports from WebAssembly module (for esm order)", importsCode, diff --git a/node_modules/webpack/lib/wasm-sync/WebAssemblyUtils.js b/node_modules/webpack/lib/wasm-sync/WebAssemblyUtils.js index a73cd74..a67f355 100644 --- a/node_modules/webpack/lib/wasm-sync/WebAssemblyUtils.js +++ b/node_modules/webpack/lib/wasm-sync/WebAssemblyUtils.js @@ -62,5 +62,5 @@ const getUsedDependencies = (moduleGraph, module, mangle) => { return array; }; -exports.getUsedDependencies = getUsedDependencies; -exports.MANGLED_MODULE = MANGLED_MODULE; +module.exports.getUsedDependencies = getUsedDependencies; +module.exports.MANGLED_MODULE = MANGLED_MODULE; diff --git a/node_modules/webpack/lib/wasm/EnableWasmLoadingPlugin.js b/node_modules/webpack/lib/wasm/EnableWasmLoadingPlugin.js index 9d452be..d287ce9 100644 --- a/node_modules/webpack/lib/wasm/EnableWasmLoadingPlugin.js +++ b/node_modules/webpack/lib/wasm/EnableWasmLoadingPlugin.js @@ -54,8 +54,9 @@ class EnableWasmLoadingPlugin { "EnableWasmLoadingPlugin need to be used to enable this type of wasm loading. " + 'This usually happens through the "output.enabledWasmLoadingTypes" option. ' + 'If you are using a function as entry which sets "wasmLoading", you need to add all potential library types to "output.enabledWasmLoadingTypes". ' + - "These types are enabled: " + - Array.from(getEnabledTypes(compiler)).join(", ") + `These types are enabled: ${Array.from( + getEnabledTypes(compiler) + ).join(", ")}` ); } } diff --git a/node_modules/webpack/lib/web/FetchCompileAsyncWasmPlugin.js b/node_modules/webpack/lib/web/FetchCompileAsyncWasmPlugin.js index 94aafc0..0c60e96 100644 --- a/node_modules/webpack/lib/web/FetchCompileAsyncWasmPlugin.js +++ b/node_modules/webpack/lib/web/FetchCompileAsyncWasmPlugin.js @@ -44,9 +44,8 @@ class FetchCompileAsyncWasmPlugin { compilation.hooks.runtimeRequirementInTree .for(RuntimeGlobals.instantiateWasm) - .tap("FetchCompileAsyncWasmPlugin", (chunk, set) => { + .tap("FetchCompileAsyncWasmPlugin", (chunk, set, { chunkGraph }) => { if (!isEnabledForChunk(chunk)) return; - const chunkGraph = compilation.chunkGraph; if ( !chunkGraph.hasModuleInGraph( chunk, diff --git a/node_modules/webpack/lib/web/FetchCompileWasmPlugin.js b/node_modules/webpack/lib/web/FetchCompileWasmPlugin.js index 8acb9a7..af85178 100644 --- a/node_modules/webpack/lib/web/FetchCompileWasmPlugin.js +++ b/node_modules/webpack/lib/web/FetchCompileWasmPlugin.js @@ -58,9 +58,8 @@ class FetchCompileWasmPlugin { compilation.hooks.runtimeRequirementInTree .for(RuntimeGlobals.ensureChunkHandlers) - .tap(PLUGIN_NAME, (chunk, set) => { + .tap(PLUGIN_NAME, (chunk, set, { chunkGraph }) => { if (!isEnabledForChunk(chunk)) return; - const chunkGraph = compilation.chunkGraph; if ( !chunkGraph.hasModuleInGraph( chunk, diff --git a/node_modules/webpack/lib/web/JsonpChunkLoadingRuntimeModule.js b/node_modules/webpack/lib/web/JsonpChunkLoadingRuntimeModule.js index 278d1fb..efc4ac0 100644 --- a/node_modules/webpack/lib/web/JsonpChunkLoadingRuntimeModule.js +++ b/node_modules/webpack/lib/web/JsonpChunkLoadingRuntimeModule.js @@ -65,9 +65,8 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule { const options = chunk.getEntryOptions(); if (options && options.baseUri) { return `${RuntimeGlobals.baseURI} = ${JSON.stringify(options.baseUri)};`; - } else { - return `${RuntimeGlobals.baseURI} = document.baseURI || self.location.href;`; } + return `${RuntimeGlobals.baseURI} = document.baseURI || self.location.href;`; } /** @@ -104,12 +103,6 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule { const withHmrManifest = this._runtimeRequirements.has( RuntimeGlobals.hmrDownloadManifest ); - const withPrefetch = this._runtimeRequirements.has( - RuntimeGlobals.prefetchChunkHandlers - ); - const withPreload = this._runtimeRequirements.has( - RuntimeGlobals.preloadChunkHandlers - ); const withFetchPriority = this._runtimeRequirements.has( RuntimeGlobals.hasFetchPriority ); @@ -118,6 +111,12 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule { )}]`; const chunkGraph = /** @type {ChunkGraph} */ (this.chunkGraph); const chunk = /** @type {Chunk} */ (this.chunk); + const withPrefetch = + this._runtimeRequirements.has(RuntimeGlobals.prefetchChunkHandlers) && + chunk.hasChildByOrder(chunkGraph, "prefetch", true, chunkHasJs); + const withPreload = + this._runtimeRequirements.has(RuntimeGlobals.preloadChunkHandlers) && + chunk.hasChildByOrder(chunkGraph, "preload", true, chunkHasJs); const conditionMap = chunkGraph.getChunkConditionMap(chunk, chunkHasJs); const hasJsMatcher = compileBooleanMatcher(conditionMap); const initialChunkIds = getInitialChunkIds(chunk, chunkGraph, chunkHasJs); @@ -166,7 +165,7 @@ class JsonpChunkLoadingRuntimeModule extends RuntimeModule { Template.indent([ "// setup Promise in chunk cache", `var promise = new Promise(${runtimeTemplate.expressionFunction( - `installedChunkData = installedChunks[chunkId] = [resolve, reject]`, + "installedChunkData = installedChunks[chunkId] = [resolve, reject]", "resolve, reject" )});`, "promises.push(installedChunkData[2] = promise);", diff --git a/node_modules/webpack/lib/webworker/ImportScriptsChunkLoadingPlugin.js b/node_modules/webpack/lib/webworker/ImportScriptsChunkLoadingPlugin.js index 93a30a7..ddb6cf5 100644 --- a/node_modules/webpack/lib/webworker/ImportScriptsChunkLoadingPlugin.js +++ b/node_modules/webpack/lib/webworker/ImportScriptsChunkLoadingPlugin.js @@ -48,7 +48,9 @@ class ImportScriptsChunkLoadingPlugin { if (onceForChunkSet.has(chunk)) return; onceForChunkSet.add(chunk); if (!isEnabledForChunk(chunk)) return; - const withCreateScriptUrl = !!compilation.outputOptions.trustedTypes; + const withCreateScriptUrl = Boolean( + compilation.outputOptions.trustedTypes + ); set.add(RuntimeGlobals.moduleFactoriesAddOnly); set.add(RuntimeGlobals.hasOwnProperty); if (withCreateScriptUrl) { diff --git a/node_modules/webpack/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js b/node_modules/webpack/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js index d290c42..7d2ae3a 100644 --- a/node_modules/webpack/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +++ b/node_modules/webpack/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js @@ -55,7 +55,7 @@ class ImportScriptsChunkLoadingRuntimeModule extends RuntimeModule { false ); return `${RuntimeGlobals.baseURI} = self.location + ${JSON.stringify( - rootOutputDir ? "/../" + rootOutputDir : "" + rootOutputDir ? `/../${rootOutputDir}` : "" )};`; } diff --git a/node_modules/webpack/package.json b/node_modules/webpack/package.json index 7840e67..eac7034 100644 --- a/node_modules/webpack/package.json +++ b/node_modules/webpack/package.json @@ -1,20 +1,19 @@ { "name": "webpack", - "version": "5.93.0", + "version": "5.96.1", "author": "Tobias Koppers @sokra", "description": "Packs ECMAScript/CommonJs/AMD modules for the browser. Allows you to split your codebase into multiple bundles, which can be loaded on demand. Supports loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.", "license": "MIT", "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -36,32 +35,33 @@ } }, "devDependencies": { - "@babel/core": "^7.24.7", - "@babel/preset-react": "^7.24.7", - "@eslint/js": "^9.5.0", + "@babel/core": "^7.25.8", + "@babel/preset-react": "^7.25.7", + "@eslint/js": "^9.12.0", + "@stylistic/eslint-plugin": "^2.9.0", "@types/glob-to-regexp": "^0.4.4", "@types/jest": "^29.5.11", "@types/mime-types": "^2.1.4", - "@types/node": "^20.11.27", - "assemblyscript": "^0.27.22", - "babel-loader": "^8.1.0", + "@types/node": "^22.0.0", + "assemblyscript": "^0.27.30", + "babel-loader": "^9.1.3", "benchmark": "^2.1.4", "bundle-loader": "^0.5.6", - "coffee-loader": "^1.0.0", + "coffee-loader": "^5.0.0", "coffeescript": "^2.5.1", "core-js": "^3.6.5", - "coveralls": "^3.1.0", "cspell": "^8.8.4", - "css-loader": "^5.0.1", - "date-fns": "^3.2.0", + "css-loader": "^7.1.2", + "date-fns": "^4.0.0", "es5-ext": "^0.10.53", "es6-promise-polyfill": "^1.2.0", - "eslint": "^9.5.0", + "eslint": "^9.12.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-jest": "^28.6.0", - "eslint-plugin-jsdoc": "^48.2.9", - "eslint-plugin-n": "^17.8.1", + "eslint-plugin-jsdoc": "^48.10.1", + "eslint-plugin-n": "^17.11.1", "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-unicorn": "^56.0.0", "file-loader": "^6.0.0", "fork-ts-checker-webpack-plugin": "^9.0.2", "globals": "^15.4.0", @@ -78,14 +78,14 @@ "json-loader": "^0.5.7", "json5": "^2.1.3", "less": "^4.0.0", - "less-loader": "^8.0.0", + "less-loader": "^12.2.0", "lint-staged": "^15.2.5", "lodash": "^4.17.19", "lodash-es": "^4.17.15", - "memfs": "^4.9.2", - "mini-css-extract-plugin": "^1.6.1", + "memfs": "^4.14.0", + "mini-css-extract-plugin": "^2.9.0", "mini-svg-data-uri": "^1.2.3", - "nyc": "^17.0.0", + "nyc": "^17.1.0", "open-cli": "^8.0.0", "prettier": "^3.2.1", "prettier-2": "npm:prettier@^2", @@ -97,14 +97,14 @@ "react-dom": "^18.3.1", "rimraf": "^3.0.2", "script-loader": "^0.7.2", - "simple-git": "^3.25.0", + "simple-git": "^3.27.0", "strip-ansi": "^6.0.0", - "style-loader": "^2.0.0", - "terser": "^5.31.1", + "style-loader": "^4.0.0", + "terser": "^5.34.1", "toml": "^3.0.0", - "tooling": "webpack/tooling#v1.23.3", + "tooling": "webpack/tooling#v1.23.5", "ts-loader": "^9.5.1", - "typescript": "^5.4.2", + "typescript": "^5.6.2", "url-loader": "^4.1.0", "wast-loader": "^1.12.1", "webassembly-feature": "1.3.0", @@ -163,7 +163,7 @@ "fix": "yarn code-lint --fix && yarn special-lint-fix && yarn pretty-lint-fix", "prepare": "husky", "pretty-lint-base": "node node_modules/prettier/bin/prettier.cjs --cache --ignore-unknown .", - "pretty-lint-fix": "yarn pretty-lint-base --loglevel warn --write", + "pretty-lint-fix": "yarn pretty-lint-base --log-level warn --write", "pretty-lint": "yarn pretty-lint-base --check", "yarn-lint": "yarn-deduplicate --fail --list -s highest yarn.lock", "yarn-lint-fix": "yarn-deduplicate -s highest yarn.lock", @@ -185,7 +185,7 @@ "eslint --cache --fix" ], "*": [ - "prettier --cache --write --ignore-unknown", + "node node_modules/prettier/bin/prettier.cjs --cache --write --ignore-unknown", "cspell --cache --no-must-find-files" ] } diff --git a/node_modules/webpack/schemas/WebpackOptions.check.js b/node_modules/webpack/schemas/WebpackOptions.check.js index 1883603..0036d61 100644 --- a/node_modules/webpack/schemas/WebpackOptions.check.js +++ b/node_modules/webpack/schemas/WebpackOptions.check.js @@ -3,4 +3,4 @@ * DO NOT MODIFY BY HAND. * Run `yarn special-lint-fix` to update */ -const e=/^(?:[A-Za-z]:[\\/]|\\\\|\/)/;module.exports=_e,module.exports.default=_e;const t={definitions:{Amd:{anyOf:[{enum:[!1]},{type:"object"}]},AmdContainer:{type:"string",minLength:1},AssetFilterItemTypes:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!1},{instanceof:"Function"}]},AssetFilterTypes:{anyOf:[{type:"array",items:{oneOf:[{$ref:"#/definitions/AssetFilterItemTypes"}]}},{$ref:"#/definitions/AssetFilterItemTypes"}]},AssetGeneratorDataUrl:{anyOf:[{$ref:"#/definitions/AssetGeneratorDataUrlOptions"},{$ref:"#/definitions/AssetGeneratorDataUrlFunction"}]},AssetGeneratorDataUrlFunction:{instanceof:"Function"},AssetGeneratorDataUrlOptions:{type:"object",additionalProperties:!1,properties:{encoding:{enum:[!1,"base64"]},mimetype:{type:"string"}}},AssetGeneratorOptions:{type:"object",additionalProperties:!1,properties:{binary:{type:"boolean"},dataUrl:{$ref:"#/definitions/AssetGeneratorDataUrl"},emit:{type:"boolean"},filename:{$ref:"#/definitions/FilenameTemplate"},outputPath:{$ref:"#/definitions/AssetModuleOutputPath"},publicPath:{$ref:"#/definitions/RawPublicPath"}}},AssetInlineGeneratorOptions:{type:"object",additionalProperties:!1,properties:{binary:{type:"boolean"},dataUrl:{$ref:"#/definitions/AssetGeneratorDataUrl"}}},AssetModuleFilename:{anyOf:[{type:"string",absolutePath:!1},{instanceof:"Function"}]},AssetModuleOutputPath:{anyOf:[{type:"string",absolutePath:!1},{instanceof:"Function"}]},AssetParserDataUrlFunction:{instanceof:"Function"},AssetParserDataUrlOptions:{type:"object",additionalProperties:!1,properties:{maxSize:{type:"number"}}},AssetParserOptions:{type:"object",additionalProperties:!1,properties:{dataUrlCondition:{anyOf:[{$ref:"#/definitions/AssetParserDataUrlOptions"},{$ref:"#/definitions/AssetParserDataUrlFunction"}]}}},AssetResourceGeneratorOptions:{type:"object",additionalProperties:!1,properties:{binary:{type:"boolean"},emit:{type:"boolean"},filename:{$ref:"#/definitions/FilenameTemplate"},outputPath:{$ref:"#/definitions/AssetModuleOutputPath"},publicPath:{$ref:"#/definitions/RawPublicPath"}}},AuxiliaryComment:{anyOf:[{type:"string"},{$ref:"#/definitions/LibraryCustomUmdCommentObject"}]},Bail:{type:"boolean"},CacheOptions:{anyOf:[{enum:[!0]},{$ref:"#/definitions/CacheOptionsNormalized"}]},CacheOptionsNormalized:{anyOf:[{enum:[!1]},{$ref:"#/definitions/MemoryCacheOptions"},{$ref:"#/definitions/FileCacheOptions"}]},Charset:{type:"boolean"},ChunkFilename:{oneOf:[{$ref:"#/definitions/FilenameTemplate"}]},ChunkFormat:{anyOf:[{enum:["array-push","commonjs","module",!1]},{type:"string"}]},ChunkLoadTimeout:{type:"number"},ChunkLoading:{anyOf:[{enum:[!1]},{$ref:"#/definitions/ChunkLoadingType"}]},ChunkLoadingGlobal:{type:"string"},ChunkLoadingType:{anyOf:[{enum:["jsonp","import-scripts","require","async-node","import"]},{type:"string"}]},Clean:{anyOf:[{type:"boolean"},{$ref:"#/definitions/CleanOptions"}]},CleanOptions:{type:"object",additionalProperties:!1,properties:{dry:{type:"boolean"},keep:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!1},{instanceof:"Function"}]}}},CompareBeforeEmit:{type:"boolean"},Context:{type:"string",absolutePath:!0},CrossOriginLoading:{enum:[!1,"anonymous","use-credentials"]},CssAutoGeneratorOptions:{type:"object",additionalProperties:!1,properties:{esModule:{$ref:"#/definitions/CssGeneratorEsModule"},exportsConvention:{$ref:"#/definitions/CssGeneratorExportsConvention"},exportsOnly:{$ref:"#/definitions/CssGeneratorExportsOnly"},localIdentName:{$ref:"#/definitions/CssGeneratorLocalIdentName"}}},CssAutoParserOptions:{type:"object",additionalProperties:!1,properties:{namedExports:{$ref:"#/definitions/CssParserNamedExports"}}},CssChunkFilename:{oneOf:[{$ref:"#/definitions/FilenameTemplate"}]},CssFilename:{oneOf:[{$ref:"#/definitions/FilenameTemplate"}]},CssGeneratorEsModule:{type:"boolean"},CssGeneratorExportsConvention:{anyOf:[{enum:["as-is","camel-case","camel-case-only","dashes","dashes-only"]},{instanceof:"Function"}]},CssGeneratorExportsOnly:{type:"boolean"},CssGeneratorLocalIdentName:{type:"string"},CssGeneratorOptions:{type:"object",additionalProperties:!1,properties:{esModule:{$ref:"#/definitions/CssGeneratorEsModule"},exportsOnly:{$ref:"#/definitions/CssGeneratorExportsOnly"}}},CssGlobalGeneratorOptions:{type:"object",additionalProperties:!1,properties:{esModule:{$ref:"#/definitions/CssGeneratorEsModule"},exportsConvention:{$ref:"#/definitions/CssGeneratorExportsConvention"},exportsOnly:{$ref:"#/definitions/CssGeneratorExportsOnly"},localIdentName:{$ref:"#/definitions/CssGeneratorLocalIdentName"}}},CssGlobalParserOptions:{type:"object",additionalProperties:!1,properties:{namedExports:{$ref:"#/definitions/CssParserNamedExports"}}},CssHeadDataCompression:{type:"boolean"},CssModuleGeneratorOptions:{type:"object",additionalProperties:!1,properties:{esModule:{$ref:"#/definitions/CssGeneratorEsModule"},exportsConvention:{$ref:"#/definitions/CssGeneratorExportsConvention"},exportsOnly:{$ref:"#/definitions/CssGeneratorExportsOnly"},localIdentName:{$ref:"#/definitions/CssGeneratorLocalIdentName"}}},CssModuleParserOptions:{type:"object",additionalProperties:!1,properties:{namedExports:{$ref:"#/definitions/CssParserNamedExports"}}},CssParserNamedExports:{type:"boolean"},CssParserOptions:{type:"object",additionalProperties:!1,properties:{namedExports:{$ref:"#/definitions/CssParserNamedExports"}}},Dependencies:{type:"array",items:{type:"string"}},DevServer:{anyOf:[{enum:[!1]},{type:"object"}]},DevTool:{anyOf:[{enum:[!1,"eval"]},{type:"string",pattern:"^(inline-|hidden-|eval-)?(nosources-)?(cheap-(module-)?)?source-map$"}]},DevtoolFallbackModuleFilenameTemplate:{anyOf:[{type:"string"},{instanceof:"Function"}]},DevtoolModuleFilenameTemplate:{anyOf:[{type:"string"},{instanceof:"Function"}]},DevtoolNamespace:{type:"string"},EmptyGeneratorOptions:{type:"object",additionalProperties:!1},EmptyParserOptions:{type:"object",additionalProperties:!1},EnabledChunkLoadingTypes:{type:"array",items:{$ref:"#/definitions/ChunkLoadingType"}},EnabledLibraryTypes:{type:"array",items:{$ref:"#/definitions/LibraryType"}},EnabledWasmLoadingTypes:{type:"array",items:{$ref:"#/definitions/WasmLoadingType"}},Entry:{anyOf:[{$ref:"#/definitions/EntryDynamic"},{$ref:"#/definitions/EntryStatic"}]},EntryDescription:{type:"object",additionalProperties:!1,properties:{asyncChunks:{type:"boolean"},baseUri:{type:"string"},chunkLoading:{$ref:"#/definitions/ChunkLoading"},dependOn:{anyOf:[{type:"array",items:{type:"string",minLength:1},minItems:1,uniqueItems:!0},{type:"string",minLength:1}]},filename:{$ref:"#/definitions/EntryFilename"},import:{$ref:"#/definitions/EntryItem"},layer:{$ref:"#/definitions/Layer"},library:{$ref:"#/definitions/LibraryOptions"},publicPath:{$ref:"#/definitions/PublicPath"},runtime:{$ref:"#/definitions/EntryRuntime"},wasmLoading:{$ref:"#/definitions/WasmLoading"}},required:["import"]},EntryDescriptionNormalized:{type:"object",additionalProperties:!1,properties:{asyncChunks:{type:"boolean"},baseUri:{type:"string"},chunkLoading:{$ref:"#/definitions/ChunkLoading"},dependOn:{type:"array",items:{type:"string",minLength:1},minItems:1,uniqueItems:!0},filename:{$ref:"#/definitions/Filename"},import:{type:"array",items:{type:"string",minLength:1},minItems:1,uniqueItems:!0},layer:{$ref:"#/definitions/Layer"},library:{$ref:"#/definitions/LibraryOptions"},publicPath:{$ref:"#/definitions/PublicPath"},runtime:{$ref:"#/definitions/EntryRuntime"},wasmLoading:{$ref:"#/definitions/WasmLoading"}}},EntryDynamic:{instanceof:"Function"},EntryDynamicNormalized:{instanceof:"Function"},EntryFilename:{oneOf:[{$ref:"#/definitions/FilenameTemplate"}]},EntryItem:{anyOf:[{type:"array",items:{type:"string",minLength:1},minItems:1,uniqueItems:!0},{type:"string",minLength:1}]},EntryNormalized:{anyOf:[{$ref:"#/definitions/EntryDynamicNormalized"},{$ref:"#/definitions/EntryStaticNormalized"}]},EntryObject:{type:"object",additionalProperties:{anyOf:[{$ref:"#/definitions/EntryItem"},{$ref:"#/definitions/EntryDescription"}]}},EntryRuntime:{anyOf:[{enum:[!1]},{type:"string",minLength:1}]},EntryStatic:{anyOf:[{$ref:"#/definitions/EntryObject"},{$ref:"#/definitions/EntryUnnamed"}]},EntryStaticNormalized:{type:"object",additionalProperties:{oneOf:[{$ref:"#/definitions/EntryDescriptionNormalized"}]}},EntryUnnamed:{oneOf:[{$ref:"#/definitions/EntryItem"}]},Environment:{type:"object",additionalProperties:!1,properties:{arrowFunction:{type:"boolean"},asyncFunction:{type:"boolean"},bigIntLiteral:{type:"boolean"},const:{type:"boolean"},destructuring:{type:"boolean"},document:{type:"boolean"},dynamicImport:{type:"boolean"},dynamicImportInWorker:{type:"boolean"},forOf:{type:"boolean"},globalThis:{type:"boolean"},module:{type:"boolean"},nodePrefixForCoreModules:{type:"boolean"},optionalChaining:{type:"boolean"},templateLiteral:{type:"boolean"}}},Experiments:{type:"object",additionalProperties:!1,properties:{asyncWebAssembly:{type:"boolean"},backCompat:{type:"boolean"},buildHttp:{anyOf:[{$ref:"#/definitions/HttpUriAllowedUris"},{$ref:"#/definitions/HttpUriOptions"}]},cacheUnaffected:{type:"boolean"},css:{type:"boolean"},futureDefaults:{type:"boolean"},layers:{type:"boolean"},lazyCompilation:{anyOf:[{type:"boolean"},{$ref:"#/definitions/LazyCompilationOptions"}]},outputModule:{type:"boolean"},syncWebAssembly:{type:"boolean"},topLevelAwait:{type:"boolean"}}},ExperimentsCommon:{type:"object",additionalProperties:!1,properties:{asyncWebAssembly:{type:"boolean"},backCompat:{type:"boolean"},cacheUnaffected:{type:"boolean"},futureDefaults:{type:"boolean"},layers:{type:"boolean"},outputModule:{type:"boolean"},syncWebAssembly:{type:"boolean"},topLevelAwait:{type:"boolean"}}},ExperimentsNormalized:{type:"object",additionalProperties:!1,properties:{asyncWebAssembly:{type:"boolean"},backCompat:{type:"boolean"},buildHttp:{oneOf:[{$ref:"#/definitions/HttpUriOptions"}]},cacheUnaffected:{type:"boolean"},css:{type:"boolean"},futureDefaults:{type:"boolean"},layers:{type:"boolean"},lazyCompilation:{anyOf:[{enum:[!1]},{$ref:"#/definitions/LazyCompilationOptions"}]},outputModule:{type:"boolean"},syncWebAssembly:{type:"boolean"},topLevelAwait:{type:"boolean"}}},Extends:{anyOf:[{type:"array",items:{$ref:"#/definitions/ExtendsItem"}},{$ref:"#/definitions/ExtendsItem"}]},ExtendsItem:{type:"string"},ExternalItem:{anyOf:[{instanceof:"RegExp"},{type:"string"},{type:"object",additionalProperties:{$ref:"#/definitions/ExternalItemValue"},properties:{byLayer:{anyOf:[{type:"object",additionalProperties:{$ref:"#/definitions/ExternalItem"}},{instanceof:"Function"}]}}},{instanceof:"Function"}]},ExternalItemFunctionData:{type:"object",additionalProperties:!1,properties:{context:{type:"string"},contextInfo:{type:"object"},dependencyType:{type:"string"},getResolve:{instanceof:"Function"},request:{type:"string"}}},ExternalItemValue:{anyOf:[{type:"array",items:{type:"string",minLength:1}},{type:"boolean"},{type:"string"},{type:"object"}]},Externals:{anyOf:[{type:"array",items:{$ref:"#/definitions/ExternalItem"}},{$ref:"#/definitions/ExternalItem"}]},ExternalsPresets:{type:"object",additionalProperties:!1,properties:{electron:{type:"boolean"},electronMain:{type:"boolean"},electronPreload:{type:"boolean"},electronRenderer:{type:"boolean"},node:{type:"boolean"},nwjs:{type:"boolean"},web:{type:"boolean"},webAsync:{type:"boolean"}}},ExternalsType:{enum:["var","module","assign","this","window","self","global","commonjs","commonjs2","commonjs-module","commonjs-static","amd","amd-require","umd","umd2","jsonp","system","promise","import","script","node-commonjs"]},Falsy:{enum:[!1,0,"",null],undefinedAsNull:!0},FileCacheOptions:{type:"object",additionalProperties:!1,properties:{allowCollectingMemory:{type:"boolean"},buildDependencies:{type:"object",additionalProperties:{type:"array",items:{type:"string",minLength:1}}},cacheDirectory:{type:"string",absolutePath:!0},cacheLocation:{type:"string",absolutePath:!0},compression:{enum:[!1,"gzip","brotli"]},hashAlgorithm:{type:"string"},idleTimeout:{type:"number",minimum:0},idleTimeoutAfterLargeChanges:{type:"number",minimum:0},idleTimeoutForInitialStore:{type:"number",minimum:0},immutablePaths:{type:"array",items:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!0,minLength:1}]}},managedPaths:{type:"array",items:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!0,minLength:1}]}},maxAge:{type:"number",minimum:0},maxMemoryGenerations:{type:"number",minimum:0},memoryCacheUnaffected:{type:"boolean"},name:{type:"string"},profile:{type:"boolean"},readonly:{type:"boolean"},store:{enum:["pack"]},type:{enum:["filesystem"]},version:{type:"string"}},required:["type"]},Filename:{oneOf:[{$ref:"#/definitions/FilenameTemplate"}]},FilenameTemplate:{anyOf:[{type:"string",absolutePath:!1,minLength:1},{instanceof:"Function"}]},FilterItemTypes:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!1},{instanceof:"Function"}]},FilterTypes:{anyOf:[{type:"array",items:{oneOf:[{$ref:"#/definitions/FilterItemTypes"}]}},{$ref:"#/definitions/FilterItemTypes"}]},GeneratorOptionsByModuleType:{type:"object",additionalProperties:{type:"object",additionalProperties:!0},properties:{asset:{$ref:"#/definitions/AssetGeneratorOptions"},"asset/inline":{$ref:"#/definitions/AssetInlineGeneratorOptions"},"asset/resource":{$ref:"#/definitions/AssetResourceGeneratorOptions"},css:{$ref:"#/definitions/CssGeneratorOptions"},"css/auto":{$ref:"#/definitions/CssAutoGeneratorOptions"},"css/global":{$ref:"#/definitions/CssGlobalGeneratorOptions"},"css/module":{$ref:"#/definitions/CssModuleGeneratorOptions"},javascript:{$ref:"#/definitions/EmptyGeneratorOptions"},"javascript/auto":{$ref:"#/definitions/EmptyGeneratorOptions"},"javascript/dynamic":{$ref:"#/definitions/EmptyGeneratorOptions"},"javascript/esm":{$ref:"#/definitions/EmptyGeneratorOptions"}}},GlobalObject:{type:"string",minLength:1},HashDigest:{type:"string"},HashDigestLength:{type:"number",minimum:1},HashFunction:{anyOf:[{type:"string",minLength:1},{instanceof:"Function"}]},HashSalt:{type:"string",minLength:1},HotUpdateChunkFilename:{type:"string",absolutePath:!1},HotUpdateGlobal:{type:"string"},HotUpdateMainFilename:{type:"string",absolutePath:!1},HttpUriAllowedUris:{oneOf:[{$ref:"#/definitions/HttpUriOptionsAllowedUris"}]},HttpUriOptions:{type:"object",additionalProperties:!1,properties:{allowedUris:{$ref:"#/definitions/HttpUriOptionsAllowedUris"},cacheLocation:{anyOf:[{enum:[!1]},{type:"string",absolutePath:!0}]},frozen:{type:"boolean"},lockfileLocation:{type:"string",absolutePath:!0},proxy:{type:"string"},upgrade:{type:"boolean"}},required:["allowedUris"]},HttpUriOptionsAllowedUris:{type:"array",items:{anyOf:[{instanceof:"RegExp"},{type:"string",pattern:"^https?://"},{instanceof:"Function"}]}},IgnoreWarnings:{type:"array",items:{anyOf:[{instanceof:"RegExp"},{type:"object",additionalProperties:!1,properties:{file:{instanceof:"RegExp"},message:{instanceof:"RegExp"},module:{instanceof:"RegExp"}}},{instanceof:"Function"}]}},IgnoreWarningsNormalized:{type:"array",items:{instanceof:"Function"}},Iife:{type:"boolean"},ImportFunctionName:{type:"string"},ImportMetaName:{type:"string"},InfrastructureLogging:{type:"object",additionalProperties:!1,properties:{appendOnly:{type:"boolean"},colors:{type:"boolean"},console:{},debug:{anyOf:[{type:"boolean"},{$ref:"#/definitions/FilterTypes"}]},level:{enum:["none","error","warn","info","log","verbose"]},stream:{}}},JavascriptParserOptions:{type:"object",additionalProperties:!0,properties:{amd:{$ref:"#/definitions/Amd"},browserify:{type:"boolean"},commonjs:{type:"boolean"},commonjsMagicComments:{type:"boolean"},createRequire:{anyOf:[{type:"boolean"},{type:"string"}]},dynamicImportFetchPriority:{enum:["low","high","auto",!1]},dynamicImportMode:{enum:["eager","weak","lazy","lazy-once"]},dynamicImportPrefetch:{anyOf:[{type:"number"},{type:"boolean"}]},dynamicImportPreload:{anyOf:[{type:"number"},{type:"boolean"}]},exportsPresence:{enum:["error","warn","auto",!1]},exprContextCritical:{type:"boolean"},exprContextRecursive:{type:"boolean"},exprContextRegExp:{anyOf:[{instanceof:"RegExp"},{type:"boolean"}]},exprContextRequest:{type:"string"},harmony:{type:"boolean"},import:{type:"boolean"},importExportsPresence:{enum:["error","warn","auto",!1]},importMeta:{type:"boolean"},importMetaContext:{type:"boolean"},node:{$ref:"#/definitions/Node"},overrideStrict:{enum:["strict","non-strict"]},reexportExportsPresence:{enum:["error","warn","auto",!1]},requireContext:{type:"boolean"},requireEnsure:{type:"boolean"},requireInclude:{type:"boolean"},requireJs:{type:"boolean"},strictExportPresence:{type:"boolean"},strictThisContextOnImports:{type:"boolean"},system:{type:"boolean"},unknownContextCritical:{type:"boolean"},unknownContextRecursive:{type:"boolean"},unknownContextRegExp:{anyOf:[{instanceof:"RegExp"},{type:"boolean"}]},unknownContextRequest:{type:"string"},url:{anyOf:[{enum:["relative"]},{type:"boolean"}]},worker:{anyOf:[{type:"array",items:{type:"string",minLength:1}},{type:"boolean"}]},wrappedContextCritical:{type:"boolean"},wrappedContextRecursive:{type:"boolean"},wrappedContextRegExp:{instanceof:"RegExp"}}},Layer:{anyOf:[{enum:[null]},{type:"string",minLength:1}]},LazyCompilationDefaultBackendOptions:{type:"object",additionalProperties:!1,properties:{client:{type:"string"},listen:{anyOf:[{type:"number"},{type:"object",additionalProperties:!0,properties:{host:{type:"string"},port:{type:"number"}}},{instanceof:"Function"}]},protocol:{enum:["http","https"]},server:{anyOf:[{type:"object",additionalProperties:!0,properties:{}},{instanceof:"Function"}]}}},LazyCompilationOptions:{type:"object",additionalProperties:!1,properties:{backend:{anyOf:[{instanceof:"Function"},{$ref:"#/definitions/LazyCompilationDefaultBackendOptions"}]},entries:{type:"boolean"},imports:{type:"boolean"},test:{anyOf:[{instanceof:"RegExp"},{type:"string"},{instanceof:"Function"}]}}},Library:{anyOf:[{$ref:"#/definitions/LibraryName"},{$ref:"#/definitions/LibraryOptions"}]},LibraryCustomUmdCommentObject:{type:"object",additionalProperties:!1,properties:{amd:{type:"string"},commonjs:{type:"string"},commonjs2:{type:"string"},root:{type:"string"}}},LibraryCustomUmdObject:{type:"object",additionalProperties:!1,properties:{amd:{type:"string",minLength:1},commonjs:{type:"string",minLength:1},root:{anyOf:[{type:"array",items:{type:"string",minLength:1}},{type:"string",minLength:1}]}}},LibraryExport:{anyOf:[{type:"array",items:{type:"string",minLength:1}},{type:"string",minLength:1}]},LibraryName:{anyOf:[{type:"array",items:{type:"string",minLength:1},minItems:1},{type:"string",minLength:1},{$ref:"#/definitions/LibraryCustomUmdObject"}]},LibraryOptions:{type:"object",additionalProperties:!1,properties:{amdContainer:{$ref:"#/definitions/AmdContainer"},auxiliaryComment:{$ref:"#/definitions/AuxiliaryComment"},export:{$ref:"#/definitions/LibraryExport"},name:{$ref:"#/definitions/LibraryName"},type:{$ref:"#/definitions/LibraryType"},umdNamedDefine:{$ref:"#/definitions/UmdNamedDefine"}},required:["type"]},LibraryType:{anyOf:[{enum:["var","module","assign","assign-properties","this","window","self","global","commonjs","commonjs2","commonjs-module","commonjs-static","amd","amd-require","umd","umd2","jsonp","system"]},{type:"string"}]},Loader:{type:"object"},MemoryCacheOptions:{type:"object",additionalProperties:!1,properties:{cacheUnaffected:{type:"boolean"},maxGenerations:{type:"number",minimum:1},type:{enum:["memory"]}},required:["type"]},Mode:{enum:["development","production","none"]},ModuleFilterItemTypes:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!1},{instanceof:"Function"}]},ModuleFilterTypes:{anyOf:[{type:"array",items:{oneOf:[{$ref:"#/definitions/ModuleFilterItemTypes"}]}},{$ref:"#/definitions/ModuleFilterItemTypes"}]},ModuleOptions:{type:"object",additionalProperties:!1,properties:{defaultRules:{oneOf:[{$ref:"#/definitions/RuleSetRules"}]},exprContextCritical:{type:"boolean"},exprContextRecursive:{type:"boolean"},exprContextRegExp:{anyOf:[{instanceof:"RegExp"},{type:"boolean"}]},exprContextRequest:{type:"string"},generator:{$ref:"#/definitions/GeneratorOptionsByModuleType"},noParse:{$ref:"#/definitions/NoParse"},parser:{$ref:"#/definitions/ParserOptionsByModuleType"},rules:{oneOf:[{$ref:"#/definitions/RuleSetRules"}]},strictExportPresence:{type:"boolean"},strictThisContextOnImports:{type:"boolean"},unknownContextCritical:{type:"boolean"},unknownContextRecursive:{type:"boolean"},unknownContextRegExp:{anyOf:[{instanceof:"RegExp"},{type:"boolean"}]},unknownContextRequest:{type:"string"},unsafeCache:{anyOf:[{type:"boolean"},{instanceof:"Function"}]},wrappedContextCritical:{type:"boolean"},wrappedContextRecursive:{type:"boolean"},wrappedContextRegExp:{instanceof:"RegExp"}}},ModuleOptionsNormalized:{type:"object",additionalProperties:!1,properties:{defaultRules:{oneOf:[{$ref:"#/definitions/RuleSetRules"}]},generator:{$ref:"#/definitions/GeneratorOptionsByModuleType"},noParse:{$ref:"#/definitions/NoParse"},parser:{$ref:"#/definitions/ParserOptionsByModuleType"},rules:{oneOf:[{$ref:"#/definitions/RuleSetRules"}]},unsafeCache:{anyOf:[{type:"boolean"},{instanceof:"Function"}]}},required:["defaultRules","generator","parser","rules"]},Name:{type:"string"},NoParse:{anyOf:[{type:"array",items:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!0},{instanceof:"Function"}]},minItems:1},{instanceof:"RegExp"},{type:"string",absolutePath:!0},{instanceof:"Function"}]},Node:{anyOf:[{enum:[!1]},{$ref:"#/definitions/NodeOptions"}]},NodeOptions:{type:"object",additionalProperties:!1,properties:{__dirname:{enum:[!1,!0,"warn-mock","mock","node-module","eval-only"]},__filename:{enum:[!1,!0,"warn-mock","mock","node-module","eval-only"]},global:{enum:[!1,!0,"warn"]}}},Optimization:{type:"object",additionalProperties:!1,properties:{checkWasmTypes:{type:"boolean"},chunkIds:{enum:["natural","named","deterministic","size","total-size",!1]},concatenateModules:{type:"boolean"},emitOnErrors:{type:"boolean"},flagIncludedChunks:{type:"boolean"},innerGraph:{type:"boolean"},mangleExports:{anyOf:[{enum:["size","deterministic"]},{type:"boolean"}]},mangleWasmImports:{type:"boolean"},mergeDuplicateChunks:{type:"boolean"},minimize:{type:"boolean"},minimizer:{type:"array",items:{anyOf:[{enum:["..."]},{$ref:"#/definitions/Falsy"},{$ref:"#/definitions/WebpackPluginInstance"},{$ref:"#/definitions/WebpackPluginFunction"}]}},moduleIds:{enum:["natural","named","hashed","deterministic","size",!1]},noEmitOnErrors:{type:"boolean"},nodeEnv:{anyOf:[{enum:[!1]},{type:"string"}]},portableRecords:{type:"boolean"},providedExports:{type:"boolean"},realContentHash:{type:"boolean"},removeAvailableModules:{type:"boolean"},removeEmptyChunks:{type:"boolean"},runtimeChunk:{$ref:"#/definitions/OptimizationRuntimeChunk"},sideEffects:{anyOf:[{enum:["flag"]},{type:"boolean"}]},splitChunks:{anyOf:[{enum:[!1]},{$ref:"#/definitions/OptimizationSplitChunksOptions"}]},usedExports:{anyOf:[{enum:["global"]},{type:"boolean"}]}}},OptimizationRuntimeChunk:{anyOf:[{enum:["single","multiple"]},{type:"boolean"},{type:"object",additionalProperties:!1,properties:{name:{anyOf:[{type:"string"},{instanceof:"Function"}]}}}]},OptimizationRuntimeChunkNormalized:{anyOf:[{enum:[!1]},{type:"object",additionalProperties:!1,properties:{name:{instanceof:"Function"}}}]},OptimizationSplitChunksCacheGroup:{type:"object",additionalProperties:!1,properties:{automaticNameDelimiter:{type:"string",minLength:1},chunks:{anyOf:[{enum:["initial","async","all"]},{instanceof:"RegExp"},{instanceof:"Function"}]},enforce:{type:"boolean"},enforceSizeThreshold:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},filename:{anyOf:[{type:"string",absolutePath:!1,minLength:1},{instanceof:"Function"}]},idHint:{type:"string"},layer:{anyOf:[{instanceof:"RegExp"},{type:"string"},{instanceof:"Function"}]},maxAsyncRequests:{type:"number",minimum:1},maxAsyncSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},maxInitialRequests:{type:"number",minimum:1},maxInitialSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},maxSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},minChunks:{type:"number",minimum:1},minRemainingSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},minSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},minSizeReduction:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},name:{anyOf:[{enum:[!1]},{type:"string"},{instanceof:"Function"}]},priority:{type:"number"},reuseExistingChunk:{type:"boolean"},test:{anyOf:[{instanceof:"RegExp"},{type:"string"},{instanceof:"Function"}]},type:{anyOf:[{instanceof:"RegExp"},{type:"string"},{instanceof:"Function"}]},usedExports:{type:"boolean"}}},OptimizationSplitChunksGetCacheGroups:{instanceof:"Function"},OptimizationSplitChunksOptions:{type:"object",additionalProperties:!1,properties:{automaticNameDelimiter:{type:"string",minLength:1},cacheGroups:{type:"object",additionalProperties:{anyOf:[{enum:[!1]},{instanceof:"RegExp"},{type:"string"},{instanceof:"Function"},{$ref:"#/definitions/OptimizationSplitChunksCacheGroup"}]},not:{type:"object",additionalProperties:!0,properties:{test:{anyOf:[{instanceof:"RegExp"},{type:"string"},{instanceof:"Function"}]}},required:["test"]}},chunks:{anyOf:[{enum:["initial","async","all"]},{instanceof:"RegExp"},{instanceof:"Function"}]},defaultSizeTypes:{type:"array",items:{type:"string"},minItems:1},enforceSizeThreshold:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},fallbackCacheGroup:{type:"object",additionalProperties:!1,properties:{automaticNameDelimiter:{type:"string",minLength:1},chunks:{anyOf:[{enum:["initial","async","all"]},{instanceof:"RegExp"},{instanceof:"Function"}]},maxAsyncSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},maxInitialSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},maxSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},minSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},minSizeReduction:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]}}},filename:{anyOf:[{type:"string",absolutePath:!1,minLength:1},{instanceof:"Function"}]},hidePathInfo:{type:"boolean"},maxAsyncRequests:{type:"number",minimum:1},maxAsyncSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},maxInitialRequests:{type:"number",minimum:1},maxInitialSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},maxSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},minChunks:{type:"number",minimum:1},minRemainingSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},minSize:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},minSizeReduction:{oneOf:[{$ref:"#/definitions/OptimizationSplitChunksSizes"}]},name:{anyOf:[{enum:[!1]},{type:"string"},{instanceof:"Function"}]},usedExports:{type:"boolean"}}},OptimizationSplitChunksSizes:{anyOf:[{type:"number",minimum:0},{type:"object",additionalProperties:{type:"number"}}]},Output:{type:"object",additionalProperties:!1,properties:{amdContainer:{oneOf:[{$ref:"#/definitions/AmdContainer"}]},assetModuleFilename:{$ref:"#/definitions/AssetModuleFilename"},asyncChunks:{type:"boolean"},auxiliaryComment:{oneOf:[{$ref:"#/definitions/AuxiliaryComment"}]},charset:{$ref:"#/definitions/Charset"},chunkFilename:{$ref:"#/definitions/ChunkFilename"},chunkFormat:{$ref:"#/definitions/ChunkFormat"},chunkLoadTimeout:{$ref:"#/definitions/ChunkLoadTimeout"},chunkLoading:{$ref:"#/definitions/ChunkLoading"},chunkLoadingGlobal:{$ref:"#/definitions/ChunkLoadingGlobal"},clean:{$ref:"#/definitions/Clean"},compareBeforeEmit:{$ref:"#/definitions/CompareBeforeEmit"},crossOriginLoading:{$ref:"#/definitions/CrossOriginLoading"},cssChunkFilename:{$ref:"#/definitions/CssChunkFilename"},cssFilename:{$ref:"#/definitions/CssFilename"},cssHeadDataCompression:{$ref:"#/definitions/CssHeadDataCompression"},devtoolFallbackModuleFilenameTemplate:{$ref:"#/definitions/DevtoolFallbackModuleFilenameTemplate"},devtoolModuleFilenameTemplate:{$ref:"#/definitions/DevtoolModuleFilenameTemplate"},devtoolNamespace:{$ref:"#/definitions/DevtoolNamespace"},enabledChunkLoadingTypes:{$ref:"#/definitions/EnabledChunkLoadingTypes"},enabledLibraryTypes:{$ref:"#/definitions/EnabledLibraryTypes"},enabledWasmLoadingTypes:{$ref:"#/definitions/EnabledWasmLoadingTypes"},environment:{$ref:"#/definitions/Environment"},filename:{$ref:"#/definitions/Filename"},globalObject:{$ref:"#/definitions/GlobalObject"},hashDigest:{$ref:"#/definitions/HashDigest"},hashDigestLength:{$ref:"#/definitions/HashDigestLength"},hashFunction:{$ref:"#/definitions/HashFunction"},hashSalt:{$ref:"#/definitions/HashSalt"},hotUpdateChunkFilename:{$ref:"#/definitions/HotUpdateChunkFilename"},hotUpdateGlobal:{$ref:"#/definitions/HotUpdateGlobal"},hotUpdateMainFilename:{$ref:"#/definitions/HotUpdateMainFilename"},ignoreBrowserWarnings:{type:"boolean"},iife:{$ref:"#/definitions/Iife"},importFunctionName:{$ref:"#/definitions/ImportFunctionName"},importMetaName:{$ref:"#/definitions/ImportMetaName"},library:{$ref:"#/definitions/Library"},libraryExport:{oneOf:[{$ref:"#/definitions/LibraryExport"}]},libraryTarget:{oneOf:[{$ref:"#/definitions/LibraryType"}]},module:{$ref:"#/definitions/OutputModule"},path:{$ref:"#/definitions/Path"},pathinfo:{$ref:"#/definitions/Pathinfo"},publicPath:{$ref:"#/definitions/PublicPath"},scriptType:{$ref:"#/definitions/ScriptType"},sourceMapFilename:{$ref:"#/definitions/SourceMapFilename"},sourcePrefix:{$ref:"#/definitions/SourcePrefix"},strictModuleErrorHandling:{$ref:"#/definitions/StrictModuleErrorHandling"},strictModuleExceptionHandling:{$ref:"#/definitions/StrictModuleExceptionHandling"},trustedTypes:{anyOf:[{enum:[!0]},{type:"string",minLength:1},{$ref:"#/definitions/TrustedTypes"}]},umdNamedDefine:{oneOf:[{$ref:"#/definitions/UmdNamedDefine"}]},uniqueName:{$ref:"#/definitions/UniqueName"},wasmLoading:{$ref:"#/definitions/WasmLoading"},webassemblyModuleFilename:{$ref:"#/definitions/WebassemblyModuleFilename"},workerChunkLoading:{$ref:"#/definitions/ChunkLoading"},workerPublicPath:{$ref:"#/definitions/WorkerPublicPath"},workerWasmLoading:{$ref:"#/definitions/WasmLoading"}}},OutputModule:{type:"boolean"},OutputNormalized:{type:"object",additionalProperties:!1,properties:{assetModuleFilename:{$ref:"#/definitions/AssetModuleFilename"},asyncChunks:{type:"boolean"},charset:{$ref:"#/definitions/Charset"},chunkFilename:{$ref:"#/definitions/ChunkFilename"},chunkFormat:{$ref:"#/definitions/ChunkFormat"},chunkLoadTimeout:{$ref:"#/definitions/ChunkLoadTimeout"},chunkLoading:{$ref:"#/definitions/ChunkLoading"},chunkLoadingGlobal:{$ref:"#/definitions/ChunkLoadingGlobal"},clean:{$ref:"#/definitions/Clean"},compareBeforeEmit:{$ref:"#/definitions/CompareBeforeEmit"},crossOriginLoading:{$ref:"#/definitions/CrossOriginLoading"},cssChunkFilename:{$ref:"#/definitions/CssChunkFilename"},cssFilename:{$ref:"#/definitions/CssFilename"},cssHeadDataCompression:{$ref:"#/definitions/CssHeadDataCompression"},devtoolFallbackModuleFilenameTemplate:{$ref:"#/definitions/DevtoolFallbackModuleFilenameTemplate"},devtoolModuleFilenameTemplate:{$ref:"#/definitions/DevtoolModuleFilenameTemplate"},devtoolNamespace:{$ref:"#/definitions/DevtoolNamespace"},enabledChunkLoadingTypes:{$ref:"#/definitions/EnabledChunkLoadingTypes"},enabledLibraryTypes:{$ref:"#/definitions/EnabledLibraryTypes"},enabledWasmLoadingTypes:{$ref:"#/definitions/EnabledWasmLoadingTypes"},environment:{$ref:"#/definitions/Environment"},filename:{$ref:"#/definitions/Filename"},globalObject:{$ref:"#/definitions/GlobalObject"},hashDigest:{$ref:"#/definitions/HashDigest"},hashDigestLength:{$ref:"#/definitions/HashDigestLength"},hashFunction:{$ref:"#/definitions/HashFunction"},hashSalt:{$ref:"#/definitions/HashSalt"},hotUpdateChunkFilename:{$ref:"#/definitions/HotUpdateChunkFilename"},hotUpdateGlobal:{$ref:"#/definitions/HotUpdateGlobal"},hotUpdateMainFilename:{$ref:"#/definitions/HotUpdateMainFilename"},ignoreBrowserWarnings:{type:"boolean"},iife:{$ref:"#/definitions/Iife"},importFunctionName:{$ref:"#/definitions/ImportFunctionName"},importMetaName:{$ref:"#/definitions/ImportMetaName"},library:{$ref:"#/definitions/LibraryOptions"},module:{$ref:"#/definitions/OutputModule"},path:{$ref:"#/definitions/Path"},pathinfo:{$ref:"#/definitions/Pathinfo"},publicPath:{$ref:"#/definitions/PublicPath"},scriptType:{$ref:"#/definitions/ScriptType"},sourceMapFilename:{$ref:"#/definitions/SourceMapFilename"},sourcePrefix:{$ref:"#/definitions/SourcePrefix"},strictModuleErrorHandling:{$ref:"#/definitions/StrictModuleErrorHandling"},strictModuleExceptionHandling:{$ref:"#/definitions/StrictModuleExceptionHandling"},trustedTypes:{$ref:"#/definitions/TrustedTypes"},uniqueName:{$ref:"#/definitions/UniqueName"},wasmLoading:{$ref:"#/definitions/WasmLoading"},webassemblyModuleFilename:{$ref:"#/definitions/WebassemblyModuleFilename"},workerChunkLoading:{$ref:"#/definitions/ChunkLoading"},workerPublicPath:{$ref:"#/definitions/WorkerPublicPath"},workerWasmLoading:{$ref:"#/definitions/WasmLoading"}}},Parallelism:{type:"number",minimum:1},ParserOptionsByModuleType:{type:"object",additionalProperties:{type:"object",additionalProperties:!0},properties:{asset:{$ref:"#/definitions/AssetParserOptions"},"asset/inline":{$ref:"#/definitions/EmptyParserOptions"},"asset/resource":{$ref:"#/definitions/EmptyParserOptions"},"asset/source":{$ref:"#/definitions/EmptyParserOptions"},css:{$ref:"#/definitions/CssParserOptions"},"css/auto":{$ref:"#/definitions/CssAutoParserOptions"},"css/global":{$ref:"#/definitions/CssGlobalParserOptions"},"css/module":{$ref:"#/definitions/CssModuleParserOptions"},javascript:{$ref:"#/definitions/JavascriptParserOptions"},"javascript/auto":{$ref:"#/definitions/JavascriptParserOptions"},"javascript/dynamic":{$ref:"#/definitions/JavascriptParserOptions"},"javascript/esm":{$ref:"#/definitions/JavascriptParserOptions"}}},Path:{type:"string",absolutePath:!0},Pathinfo:{anyOf:[{enum:["verbose"]},{type:"boolean"}]},Performance:{anyOf:[{enum:[!1]},{$ref:"#/definitions/PerformanceOptions"}]},PerformanceOptions:{type:"object",additionalProperties:!1,properties:{assetFilter:{instanceof:"Function"},hints:{enum:[!1,"warning","error"]},maxAssetSize:{type:"number"},maxEntrypointSize:{type:"number"}}},Plugins:{type:"array",items:{anyOf:[{$ref:"#/definitions/Falsy"},{$ref:"#/definitions/WebpackPluginInstance"},{$ref:"#/definitions/WebpackPluginFunction"}]}},Profile:{type:"boolean"},PublicPath:{anyOf:[{enum:["auto"]},{$ref:"#/definitions/RawPublicPath"}]},RawPublicPath:{anyOf:[{type:"string"},{instanceof:"Function"}]},RecordsInputPath:{anyOf:[{enum:[!1]},{type:"string",absolutePath:!0}]},RecordsOutputPath:{anyOf:[{enum:[!1]},{type:"string",absolutePath:!0}]},RecordsPath:{anyOf:[{enum:[!1]},{type:"string",absolutePath:!0}]},Resolve:{oneOf:[{$ref:"#/definitions/ResolveOptions"}]},ResolveAlias:{anyOf:[{type:"array",items:{type:"object",additionalProperties:!1,properties:{alias:{anyOf:[{type:"array",items:{type:"string",minLength:1}},{enum:[!1]},{type:"string",minLength:1}]},name:{type:"string"},onlyModule:{type:"boolean"}},required:["alias","name"]}},{type:"object",additionalProperties:{anyOf:[{type:"array",items:{type:"string",minLength:1}},{enum:[!1]},{type:"string",minLength:1}]}}]},ResolveLoader:{oneOf:[{$ref:"#/definitions/ResolveOptions"}]},ResolveOptions:{type:"object",additionalProperties:!1,properties:{alias:{$ref:"#/definitions/ResolveAlias"},aliasFields:{type:"array",items:{anyOf:[{type:"array",items:{type:"string",minLength:1}},{type:"string",minLength:1}]}},byDependency:{type:"object",additionalProperties:{oneOf:[{$ref:"#/definitions/ResolveOptions"}]}},cache:{type:"boolean"},cachePredicate:{instanceof:"Function"},cacheWithContext:{type:"boolean"},conditionNames:{type:"array",items:{type:"string"}},descriptionFiles:{type:"array",items:{type:"string",minLength:1}},enforceExtension:{type:"boolean"},exportsFields:{type:"array",items:{type:"string"}},extensionAlias:{type:"object",additionalProperties:{anyOf:[{type:"array",items:{type:"string",minLength:1}},{type:"string",minLength:1}]}},extensions:{type:"array",items:{type:"string"}},fallback:{oneOf:[{$ref:"#/definitions/ResolveAlias"}]},fileSystem:{},fullySpecified:{type:"boolean"},importsFields:{type:"array",items:{type:"string"}},mainFields:{type:"array",items:{anyOf:[{type:"array",items:{type:"string",minLength:1}},{type:"string",minLength:1}]}},mainFiles:{type:"array",items:{type:"string",minLength:1}},modules:{type:"array",items:{type:"string",minLength:1}},plugins:{type:"array",items:{anyOf:[{enum:["..."]},{$ref:"#/definitions/Falsy"},{$ref:"#/definitions/ResolvePluginInstance"}]}},preferAbsolute:{type:"boolean"},preferRelative:{type:"boolean"},resolver:{},restrictions:{type:"array",items:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!0,minLength:1}]}},roots:{type:"array",items:{type:"string"}},symlinks:{type:"boolean"},unsafeCache:{anyOf:[{type:"boolean"},{type:"object",additionalProperties:!0}]},useSyncFileSystemCalls:{type:"boolean"}}},ResolvePluginInstance:{anyOf:[{type:"object",additionalProperties:!0,properties:{apply:{instanceof:"Function"}},required:["apply"]},{instanceof:"Function"}]},RuleSetCondition:{anyOf:[{instanceof:"RegExp"},{type:"string"},{instanceof:"Function"},{$ref:"#/definitions/RuleSetLogicalConditions"},{$ref:"#/definitions/RuleSetConditions"}]},RuleSetConditionAbsolute:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!0},{instanceof:"Function"},{$ref:"#/definitions/RuleSetLogicalConditionsAbsolute"},{$ref:"#/definitions/RuleSetConditionsAbsolute"}]},RuleSetConditionOrConditions:{anyOf:[{$ref:"#/definitions/RuleSetCondition"},{$ref:"#/definitions/RuleSetConditions"}]},RuleSetConditionOrConditionsAbsolute:{anyOf:[{$ref:"#/definitions/RuleSetConditionAbsolute"},{$ref:"#/definitions/RuleSetConditionsAbsolute"}]},RuleSetConditions:{type:"array",items:{oneOf:[{$ref:"#/definitions/RuleSetCondition"}]}},RuleSetConditionsAbsolute:{type:"array",items:{oneOf:[{$ref:"#/definitions/RuleSetConditionAbsolute"}]}},RuleSetLoader:{type:"string",minLength:1},RuleSetLoaderOptions:{anyOf:[{type:"string"},{type:"object"}]},RuleSetLogicalConditions:{type:"object",additionalProperties:!1,properties:{and:{oneOf:[{$ref:"#/definitions/RuleSetConditions"}]},not:{oneOf:[{$ref:"#/definitions/RuleSetCondition"}]},or:{oneOf:[{$ref:"#/definitions/RuleSetConditions"}]}}},RuleSetLogicalConditionsAbsolute:{type:"object",additionalProperties:!1,properties:{and:{oneOf:[{$ref:"#/definitions/RuleSetConditionsAbsolute"}]},not:{oneOf:[{$ref:"#/definitions/RuleSetConditionAbsolute"}]},or:{oneOf:[{$ref:"#/definitions/RuleSetConditionsAbsolute"}]}}},RuleSetRule:{type:"object",additionalProperties:!1,properties:{assert:{type:"object",additionalProperties:{$ref:"#/definitions/RuleSetConditionOrConditions"}},compiler:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditions"}]},dependency:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditions"}]},descriptionData:{type:"object",additionalProperties:{$ref:"#/definitions/RuleSetConditionOrConditions"}},enforce:{enum:["pre","post"]},exclude:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditionsAbsolute"}]},generator:{type:"object"},include:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditionsAbsolute"}]},issuer:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditionsAbsolute"}]},issuerLayer:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditions"}]},layer:{type:"string"},loader:{oneOf:[{$ref:"#/definitions/RuleSetLoader"}]},mimetype:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditions"}]},oneOf:{type:"array",items:{anyOf:[{$ref:"#/definitions/Falsy"},{$ref:"#/definitions/RuleSetRule"}]}},options:{oneOf:[{$ref:"#/definitions/RuleSetLoaderOptions"}]},parser:{type:"object",additionalProperties:!0},realResource:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditionsAbsolute"}]},resolve:{type:"object",oneOf:[{$ref:"#/definitions/ResolveOptions"}]},resource:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditionsAbsolute"}]},resourceFragment:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditions"}]},resourceQuery:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditions"}]},rules:{type:"array",items:{anyOf:[{$ref:"#/definitions/Falsy"},{$ref:"#/definitions/RuleSetRule"}]}},scheme:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditions"}]},sideEffects:{type:"boolean"},test:{oneOf:[{$ref:"#/definitions/RuleSetConditionOrConditionsAbsolute"}]},type:{type:"string"},use:{oneOf:[{$ref:"#/definitions/RuleSetUse"}]},with:{type:"object",additionalProperties:{$ref:"#/definitions/RuleSetConditionOrConditions"}}}},RuleSetRules:{type:"array",items:{anyOf:[{enum:["..."]},{$ref:"#/definitions/Falsy"},{$ref:"#/definitions/RuleSetRule"}]}},RuleSetUse:{anyOf:[{type:"array",items:{anyOf:[{$ref:"#/definitions/Falsy"},{$ref:"#/definitions/RuleSetUseItem"}]}},{instanceof:"Function"},{$ref:"#/definitions/RuleSetUseItem"}]},RuleSetUseItem:{anyOf:[{type:"object",additionalProperties:!1,properties:{ident:{type:"string"},loader:{oneOf:[{$ref:"#/definitions/RuleSetLoader"}]},options:{oneOf:[{$ref:"#/definitions/RuleSetLoaderOptions"}]}}},{instanceof:"Function"},{$ref:"#/definitions/RuleSetLoader"}]},ScriptType:{enum:[!1,"text/javascript","module"]},SnapshotOptions:{type:"object",additionalProperties:!1,properties:{buildDependencies:{type:"object",additionalProperties:!1,properties:{hash:{type:"boolean"},timestamp:{type:"boolean"}}},immutablePaths:{type:"array",items:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!0,minLength:1}]}},managedPaths:{type:"array",items:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!0,minLength:1}]}},module:{type:"object",additionalProperties:!1,properties:{hash:{type:"boolean"},timestamp:{type:"boolean"}}},resolve:{type:"object",additionalProperties:!1,properties:{hash:{type:"boolean"},timestamp:{type:"boolean"}}},resolveBuildDependencies:{type:"object",additionalProperties:!1,properties:{hash:{type:"boolean"},timestamp:{type:"boolean"}}},unmanagedPaths:{type:"array",items:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!0,minLength:1}]}}}},SourceMapFilename:{type:"string",absolutePath:!1},SourcePrefix:{type:"string"},StatsOptions:{type:"object",additionalProperties:!1,properties:{all:{type:"boolean"},assets:{type:"boolean"},assetsSort:{type:"string"},assetsSpace:{type:"number"},builtAt:{type:"boolean"},cached:{type:"boolean"},cachedAssets:{type:"boolean"},cachedModules:{type:"boolean"},children:{type:"boolean"},chunkGroupAuxiliary:{type:"boolean"},chunkGroupChildren:{type:"boolean"},chunkGroupMaxAssets:{type:"number"},chunkGroups:{type:"boolean"},chunkModules:{type:"boolean"},chunkModulesSpace:{type:"number"},chunkOrigins:{type:"boolean"},chunkRelations:{type:"boolean"},chunks:{type:"boolean"},chunksSort:{type:"string"},colors:{anyOf:[{type:"boolean"},{type:"object",additionalProperties:!1,properties:{bold:{type:"string"},cyan:{type:"string"},green:{type:"string"},magenta:{type:"string"},red:{type:"string"},yellow:{type:"string"}}}]},context:{type:"string",absolutePath:!0},dependentModules:{type:"boolean"},depth:{type:"boolean"},entrypoints:{anyOf:[{enum:["auto"]},{type:"boolean"}]},env:{type:"boolean"},errorDetails:{anyOf:[{enum:["auto"]},{type:"boolean"}]},errorStack:{type:"boolean"},errors:{type:"boolean"},errorsCount:{type:"boolean"},errorsSpace:{type:"number"},exclude:{anyOf:[{type:"boolean"},{$ref:"#/definitions/ModuleFilterTypes"}]},excludeAssets:{oneOf:[{$ref:"#/definitions/AssetFilterTypes"}]},excludeModules:{anyOf:[{type:"boolean"},{$ref:"#/definitions/ModuleFilterTypes"}]},groupAssetsByChunk:{type:"boolean"},groupAssetsByEmitStatus:{type:"boolean"},groupAssetsByExtension:{type:"boolean"},groupAssetsByInfo:{type:"boolean"},groupAssetsByPath:{type:"boolean"},groupModulesByAttributes:{type:"boolean"},groupModulesByCacheStatus:{type:"boolean"},groupModulesByExtension:{type:"boolean"},groupModulesByLayer:{type:"boolean"},groupModulesByPath:{type:"boolean"},groupModulesByType:{type:"boolean"},groupReasonsByOrigin:{type:"boolean"},hash:{type:"boolean"},ids:{type:"boolean"},logging:{anyOf:[{enum:["none","error","warn","info","log","verbose"]},{type:"boolean"}]},loggingDebug:{anyOf:[{type:"boolean"},{$ref:"#/definitions/FilterTypes"}]},loggingTrace:{type:"boolean"},moduleAssets:{type:"boolean"},moduleTrace:{type:"boolean"},modules:{type:"boolean"},modulesSort:{type:"string"},modulesSpace:{type:"number"},nestedModules:{type:"boolean"},nestedModulesSpace:{type:"number"},optimizationBailout:{type:"boolean"},orphanModules:{type:"boolean"},outputPath:{type:"boolean"},performance:{type:"boolean"},preset:{anyOf:[{type:"boolean"},{type:"string"}]},providedExports:{type:"boolean"},publicPath:{type:"boolean"},reasons:{type:"boolean"},reasonsSpace:{type:"number"},relatedAssets:{type:"boolean"},runtime:{type:"boolean"},runtimeModules:{type:"boolean"},source:{type:"boolean"},timings:{type:"boolean"},usedExports:{type:"boolean"},version:{type:"boolean"},warnings:{type:"boolean"},warningsCount:{type:"boolean"},warningsFilter:{oneOf:[{$ref:"#/definitions/WarningFilterTypes"}]},warningsSpace:{type:"number"}}},StatsValue:{anyOf:[{enum:["none","summary","errors-only","errors-warnings","minimal","normal","detailed","verbose"]},{type:"boolean"},{$ref:"#/definitions/StatsOptions"}]},StrictModuleErrorHandling:{type:"boolean"},StrictModuleExceptionHandling:{type:"boolean"},Target:{anyOf:[{type:"array",items:{type:"string",minLength:1},minItems:1},{enum:[!1]},{type:"string",minLength:1}]},TrustedTypes:{type:"object",additionalProperties:!1,properties:{onPolicyCreationFailure:{enum:["continue","stop"]},policyName:{type:"string",minLength:1}}},UmdNamedDefine:{type:"boolean"},UniqueName:{type:"string",minLength:1},WarningFilterItemTypes:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!1},{instanceof:"Function"}]},WarningFilterTypes:{anyOf:[{type:"array",items:{oneOf:[{$ref:"#/definitions/WarningFilterItemTypes"}]}},{$ref:"#/definitions/WarningFilterItemTypes"}]},WasmLoading:{anyOf:[{enum:[!1]},{$ref:"#/definitions/WasmLoadingType"}]},WasmLoadingType:{anyOf:[{enum:["fetch-streaming","fetch","async-node"]},{type:"string"}]},Watch:{type:"boolean"},WatchOptions:{type:"object",additionalProperties:!1,properties:{aggregateTimeout:{type:"number"},followSymlinks:{type:"boolean"},ignored:{anyOf:[{type:"array",items:{type:"string",minLength:1}},{instanceof:"RegExp"},{type:"string",minLength:1}]},poll:{anyOf:[{type:"number"},{type:"boolean"}]},stdin:{type:"boolean"}}},WebassemblyModuleFilename:{type:"string",absolutePath:!1},WebpackOptionsNormalized:{type:"object",additionalProperties:!1,properties:{amd:{$ref:"#/definitions/Amd"},bail:{$ref:"#/definitions/Bail"},cache:{$ref:"#/definitions/CacheOptionsNormalized"},context:{$ref:"#/definitions/Context"},dependencies:{$ref:"#/definitions/Dependencies"},devServer:{$ref:"#/definitions/DevServer"},devtool:{$ref:"#/definitions/DevTool"},entry:{$ref:"#/definitions/EntryNormalized"},experiments:{$ref:"#/definitions/ExperimentsNormalized"},externals:{$ref:"#/definitions/Externals"},externalsPresets:{$ref:"#/definitions/ExternalsPresets"},externalsType:{$ref:"#/definitions/ExternalsType"},ignoreWarnings:{$ref:"#/definitions/IgnoreWarningsNormalized"},infrastructureLogging:{$ref:"#/definitions/InfrastructureLogging"},loader:{$ref:"#/definitions/Loader"},mode:{$ref:"#/definitions/Mode"},module:{$ref:"#/definitions/ModuleOptionsNormalized"},name:{$ref:"#/definitions/Name"},node:{$ref:"#/definitions/Node"},optimization:{$ref:"#/definitions/Optimization"},output:{$ref:"#/definitions/OutputNormalized"},parallelism:{$ref:"#/definitions/Parallelism"},performance:{$ref:"#/definitions/Performance"},plugins:{$ref:"#/definitions/Plugins"},profile:{$ref:"#/definitions/Profile"},recordsInputPath:{$ref:"#/definitions/RecordsInputPath"},recordsOutputPath:{$ref:"#/definitions/RecordsOutputPath"},resolve:{$ref:"#/definitions/Resolve"},resolveLoader:{$ref:"#/definitions/ResolveLoader"},snapshot:{$ref:"#/definitions/SnapshotOptions"},stats:{$ref:"#/definitions/StatsValue"},target:{$ref:"#/definitions/Target"},watch:{$ref:"#/definitions/Watch"},watchOptions:{$ref:"#/definitions/WatchOptions"}},required:["cache","snapshot","entry","experiments","externals","externalsPresets","infrastructureLogging","module","node","optimization","output","plugins","resolve","resolveLoader","stats","watchOptions"]},WebpackPluginFunction:{instanceof:"Function"},WebpackPluginInstance:{type:"object",additionalProperties:!0,properties:{apply:{instanceof:"Function"}},required:["apply"]},WorkerPublicPath:{type:"string"}},type:"object",additionalProperties:!1,properties:{amd:{$ref:"#/definitions/Amd"},bail:{$ref:"#/definitions/Bail"},cache:{$ref:"#/definitions/CacheOptions"},context:{$ref:"#/definitions/Context"},dependencies:{$ref:"#/definitions/Dependencies"},devServer:{$ref:"#/definitions/DevServer"},devtool:{$ref:"#/definitions/DevTool"},entry:{$ref:"#/definitions/Entry"},experiments:{$ref:"#/definitions/Experiments"},extends:{$ref:"#/definitions/Extends"},externals:{$ref:"#/definitions/Externals"},externalsPresets:{$ref:"#/definitions/ExternalsPresets"},externalsType:{$ref:"#/definitions/ExternalsType"},ignoreWarnings:{$ref:"#/definitions/IgnoreWarnings"},infrastructureLogging:{$ref:"#/definitions/InfrastructureLogging"},loader:{$ref:"#/definitions/Loader"},mode:{$ref:"#/definitions/Mode"},module:{$ref:"#/definitions/ModuleOptions"},name:{$ref:"#/definitions/Name"},node:{$ref:"#/definitions/Node"},optimization:{$ref:"#/definitions/Optimization"},output:{$ref:"#/definitions/Output"},parallelism:{$ref:"#/definitions/Parallelism"},performance:{$ref:"#/definitions/Performance"},plugins:{$ref:"#/definitions/Plugins"},profile:{$ref:"#/definitions/Profile"},recordsInputPath:{$ref:"#/definitions/RecordsInputPath"},recordsOutputPath:{$ref:"#/definitions/RecordsOutputPath"},recordsPath:{$ref:"#/definitions/RecordsPath"},resolve:{$ref:"#/definitions/Resolve"},resolveLoader:{$ref:"#/definitions/ResolveLoader"},snapshot:{$ref:"#/definitions/SnapshotOptions"},stats:{$ref:"#/definitions/StatsValue"},target:{$ref:"#/definitions/Target"},watch:{$ref:"#/definitions/Watch"},watchOptions:{$ref:"#/definitions/WatchOptions"}}},n=Object.prototype.hasOwnProperty,r={type:"object",additionalProperties:!1,properties:{allowCollectingMemory:{type:"boolean"},buildDependencies:{type:"object",additionalProperties:{type:"array",items:{type:"string",minLength:1}}},cacheDirectory:{type:"string",absolutePath:!0},cacheLocation:{type:"string",absolutePath:!0},compression:{enum:[!1,"gzip","brotli"]},hashAlgorithm:{type:"string"},idleTimeout:{type:"number",minimum:0},idleTimeoutAfterLargeChanges:{type:"number",minimum:0},idleTimeoutForInitialStore:{type:"number",minimum:0},immutablePaths:{type:"array",items:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!0,minLength:1}]}},managedPaths:{type:"array",items:{anyOf:[{instanceof:"RegExp"},{type:"string",absolutePath:!0,minLength:1}]}},maxAge:{type:"number",minimum:0},maxMemoryGenerations:{type:"number",minimum:0},memoryCacheUnaffected:{type:"boolean"},name:{type:"string"},profile:{type:"boolean"},readonly:{type:"boolean"},store:{enum:["pack"]},type:{enum:["filesystem"]},version:{type:"string"}},required:["type"]};function o(t,{instancePath:s="",parentData:i,parentDataProperty:a,rootData:l=t}={}){let p=null,f=0;const u=f;let c=!1;const y=f;if(!1!==t){const e={params:{}};null===p?p=[e]:p.push(e),f++}var m=y===f;if(c=c||m,!c){const o=f;if(f==f)if(t&&"object"==typeof t&&!Array.isArray(t)){let e;if(void 0===t.type&&(e="type")){const t={params:{missingProperty:e}};null===p?p=[t]:p.push(t),f++}else{const e=f;for(const e in t)if("cacheUnaffected"!==e&&"maxGenerations"!==e&&"type"!==e){const t={params:{additionalProperty:e}};null===p?p=[t]:p.push(t),f++;break}if(e===f){if(void 0!==t.cacheUnaffected){const e=f;if("boolean"!=typeof t.cacheUnaffected){const e={params:{type:"boolean"}};null===p?p=[e]:p.push(e),f++}var d=e===f}else d=!0;if(d){if(void 0!==t.maxGenerations){let e=t.maxGenerations;const n=f;if(f===n)if("number"==typeof e){if(e<1||isNaN(e)){const e={params:{comparison:">=",limit:1}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"number"}};null===p?p=[e]:p.push(e),f++}d=n===f}else d=!0;if(d)if(void 0!==t.type){const e=f;if("memory"!==t.type){const e={params:{}};null===p?p=[e]:p.push(e),f++}d=e===f}else d=!0}}}}else{const e={params:{type:"object"}};null===p?p=[e]:p.push(e),f++}if(m=o===f,c=c||m,!c){const o=f;if(f==f)if(t&&"object"==typeof t&&!Array.isArray(t)){let o;if(void 0===t.type&&(o="type")){const e={params:{missingProperty:o}};null===p?p=[e]:p.push(e),f++}else{const o=f;for(const e in t)if(!n.call(r.properties,e)){const t={params:{additionalProperty:e}};null===p?p=[t]:p.push(t),f++;break}if(o===f){if(void 0!==t.allowCollectingMemory){const e=f;if("boolean"!=typeof t.allowCollectingMemory){const e={params:{type:"boolean"}};null===p?p=[e]:p.push(e),f++}var h=e===f}else h=!0;if(h){if(void 0!==t.buildDependencies){let e=t.buildDependencies;const n=f;if(f===n)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){let n=e[t];const r=f;if(f===r)if(Array.isArray(n)){const e=n.length;for(let t=0;t=",limit:0}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"number"}};null===p?p=[e]:p.push(e),f++}h=n===f}else h=!0;if(h){if(void 0!==t.idleTimeoutAfterLargeChanges){let e=t.idleTimeoutAfterLargeChanges;const n=f;if(f===n)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"number"}};null===p?p=[e]:p.push(e),f++}h=n===f}else h=!0;if(h){if(void 0!==t.idleTimeoutForInitialStore){let e=t.idleTimeoutForInitialStore;const n=f;if(f===n)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"number"}};null===p?p=[e]:p.push(e),f++}h=n===f}else h=!0;if(h){if(void 0!==t.immutablePaths){let n=t.immutablePaths;const r=f;if(f===r)if(Array.isArray(n)){const t=n.length;for(let r=0;r=",limit:0}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"number"}};null===p?p=[e]:p.push(e),f++}h=n===f}else h=!0;if(h){if(void 0!==t.maxMemoryGenerations){let e=t.maxMemoryGenerations;const n=f;if(f===n)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"number"}};null===p?p=[e]:p.push(e),f++}h=n===f}else h=!0;if(h){if(void 0!==t.memoryCacheUnaffected){const e=f;if("boolean"!=typeof t.memoryCacheUnaffected){const e={params:{type:"boolean"}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0;if(h){if(void 0!==t.name){const e=f;if("string"!=typeof t.name){const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0;if(h){if(void 0!==t.profile){const e=f;if("boolean"!=typeof t.profile){const e={params:{type:"boolean"}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0;if(h){if(void 0!==t.readonly){const e=f;if("boolean"!=typeof t.readonly){const e={params:{type:"boolean"}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0;if(h){if(void 0!==t.store){const e=f;if("pack"!==t.store){const e={params:{}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0;if(h){if(void 0!==t.type){const e=f;if("filesystem"!==t.type){const e={params:{}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0;if(h)if(void 0!==t.version){const e=f;if("string"!=typeof t.version){const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0}}}}}}}}}}}}}}}}}}}}}else{const e={params:{type:"object"}};null===p?p=[e]:p.push(e),f++}m=o===f,c=c||m}}if(!c){const e={params:{}};return null===p?p=[e]:p.push(e),f++,o.errors=p,!1}return f=u,null!==p&&(u?p.length=u:p=null),o.errors=p,0===f}function s(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let a=null,l=0;const p=l;let f=!1;const u=l;if(!0!==e){const e={params:{}};null===a?a=[e]:a.push(e),l++}var c=u===l;if(f=f||c,!f){const s=l;o(e,{instancePath:t,parentData:n,parentDataProperty:r,rootData:i})||(a=null===a?o.errors:a.concat(o.errors),l=a.length),c=s===l,f=f||c}if(!f){const e={params:{}};return null===a?a=[e]:a.push(e),l++,s.errors=a,!1}return l=p,null!==a&&(p?a.length=p:a=null),s.errors=a,0===l}const i={type:"object",additionalProperties:!1,properties:{asyncChunks:{type:"boolean"},baseUri:{type:"string"},chunkLoading:{$ref:"#/definitions/ChunkLoading"},dependOn:{anyOf:[{type:"array",items:{type:"string",minLength:1},minItems:1,uniqueItems:!0},{type:"string",minLength:1}]},filename:{$ref:"#/definitions/EntryFilename"},import:{$ref:"#/definitions/EntryItem"},layer:{$ref:"#/definitions/Layer"},library:{$ref:"#/definitions/LibraryOptions"},publicPath:{$ref:"#/definitions/PublicPath"},runtime:{$ref:"#/definitions/EntryRuntime"},wasmLoading:{$ref:"#/definitions/WasmLoading"}},required:["import"]};function a(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const l=i;let p=!1;const f=i;if(!1!==e){const e={params:{}};null===s?s=[e]:s.push(e),i++}var u=f===i;if(p=p||u,!p){const t=i,n=i;let r=!1;const o=i;if("jsonp"!==e&&"import-scripts"!==e&&"require"!==e&&"async-node"!==e&&"import"!==e){const e={params:{}};null===s?s=[e]:s.push(e),i++}var c=o===i;if(r=r||c,!r){const t=i;if("string"!=typeof e){const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}c=t===i,r=r||c}if(r)i=n,null!==s&&(n?s.length=n:s=null);else{const e={params:{}};null===s?s=[e]:s.push(e),i++}u=t===i,p=p||u}if(!p){const e={params:{}};return null===s?s=[e]:s.push(e),i++,a.errors=s,!1}return i=l,null!==s&&(l?s.length=l:s=null),a.errors=s,0===i}function l(t,{instancePath:n="",parentData:r,parentDataProperty:o,rootData:s=t}={}){let i=null,a=0;const p=a;let f=!1,u=null;const c=a,y=a;let m=!1;const d=a;if(a===d)if("string"==typeof t){if(t.includes("!")||!1!==e.test(t)){const e={params:{}};null===i?i=[e]:i.push(e),a++}else if(t.length<1){const e={params:{}};null===i?i=[e]:i.push(e),a++}}else{const e={params:{type:"string"}};null===i?i=[e]:i.push(e),a++}var h=d===a;if(m=m||h,!m){const e=a;if(!(t instanceof Function)){const e={params:{}};null===i?i=[e]:i.push(e),a++}h=e===a,m=m||h}if(m)a=y,null!==i&&(y?i.length=y:i=null);else{const e={params:{}};null===i?i=[e]:i.push(e),a++}if(c===a&&(f=!0,u=0),!f){const e={params:{passingSchemas:u}};return null===i?i=[e]:i.push(e),a++,l.errors=i,!1}return a=p,null!==i&&(p?i.length=p:i=null),l.errors=i,0===a}function p(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const a=i;let l=!1;const f=i;if("string"!=typeof e){const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}var u=f===i;if(l=l||u,!l){const t=i;if(i==i)if(e&&"object"==typeof e&&!Array.isArray(e)){const t=i;for(const t in e)if("amd"!==t&&"commonjs"!==t&&"commonjs2"!==t&&"root"!==t){const e={params:{additionalProperty:t}};null===s?s=[e]:s.push(e),i++;break}if(t===i){if(void 0!==e.amd){const t=i;if("string"!=typeof e.amd){const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}var c=t===i}else c=!0;if(c){if(void 0!==e.commonjs){const t=i;if("string"!=typeof e.commonjs){const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}c=t===i}else c=!0;if(c){if(void 0!==e.commonjs2){const t=i;if("string"!=typeof e.commonjs2){const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}c=t===i}else c=!0;if(c)if(void 0!==e.root){const t=i;if("string"!=typeof e.root){const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}c=t===i}else c=!0}}}}else{const e={params:{type:"object"}};null===s?s=[e]:s.push(e),i++}u=t===i,l=l||u}if(!l){const e={params:{}};return null===s?s=[e]:s.push(e),i++,p.errors=s,!1}return i=a,null!==s&&(a?s.length=a:s=null),p.errors=s,0===i}function f(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const a=i;let l=!1;const p=i;if(i===p)if(Array.isArray(e))if(e.length<1){const e={params:{limit:1}};null===s?s=[e]:s.push(e),i++}else{const t=e.length;for(let n=0;n1){const r={};for(;n--;){let o=t[n];if("string"==typeof o){if("number"==typeof r[o]){e=r[o];const t={params:{i:n,j:e}};null===p?p=[t]:p.push(t),f++;break}r[o]=n}}}}}else{const e={params:{type:"array"}};null===p?p=[e]:p.push(e),f++}var g=s===f;if(o=o||g,!o){const e=f;if(f===e)if("string"==typeof t){if(t.length<1){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}g=e===f,o=o||g}if(!o){const e={params:{}};return null===p?p=[e]:p.push(e),f++,m.errors=p,!1}f=r,null!==p&&(r?p.length=r:p=null),d=n===f}else d=!0;if(d){if(void 0!==e.filename){const n=f;l(e.filename,{instancePath:t+"/filename",parentData:e,parentDataProperty:"filename",rootData:s})||(p=null===p?l.errors:p.concat(l.errors),f=p.length),d=n===f}else d=!0;if(d){if(void 0!==e.import){let t=e.import;const n=f,r=f;let o=!1;const s=f;if(f===s)if(Array.isArray(t))if(t.length<1){const e={params:{limit:1}};null===p?p=[e]:p.push(e),f++}else{var b=!0;const e=t.length;for(let n=0;n1){const r={};for(;n--;){let o=t[n];if("string"==typeof o){if("number"==typeof r[o]){e=r[o];const t={params:{i:n,j:e}};null===p?p=[t]:p.push(t),f++;break}r[o]=n}}}}}else{const e={params:{type:"array"}};null===p?p=[e]:p.push(e),f++}var v=s===f;if(o=o||v,!o){const e=f;if(f===e)if("string"==typeof t){if(t.length<1){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}v=e===f,o=o||v}if(!o){const e={params:{}};return null===p?p=[e]:p.push(e),f++,m.errors=p,!1}f=r,null!==p&&(r?p.length=r:p=null),d=n===f}else d=!0;if(d){if(void 0!==e.layer){let t=e.layer;const n=f,r=f;let o=!1;const s=f;if(null!==t){const e={params:{}};null===p?p=[e]:p.push(e),f++}var P=s===f;if(o=o||P,!o){const e=f;if(f===e)if("string"==typeof t){if(t.length<1){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}P=e===f,o=o||P}if(!o){const e={params:{}};return null===p?p=[e]:p.push(e),f++,m.errors=p,!1}f=r,null!==p&&(r?p.length=r:p=null),d=n===f}else d=!0;if(d){if(void 0!==e.library){const n=f;u(e.library,{instancePath:t+"/library",parentData:e,parentDataProperty:"library",rootData:s})||(p=null===p?u.errors:p.concat(u.errors),f=p.length),d=n===f}else d=!0;if(d){if(void 0!==e.publicPath){const n=f;c(e.publicPath,{instancePath:t+"/publicPath",parentData:e,parentDataProperty:"publicPath",rootData:s})||(p=null===p?c.errors:p.concat(c.errors),f=p.length),d=n===f}else d=!0;if(d){if(void 0!==e.runtime){let t=e.runtime;const n=f,r=f;let o=!1;const s=f;if(!1!==t){const e={params:{}};null===p?p=[e]:p.push(e),f++}var D=s===f;if(o=o||D,!o){const e=f;if(f===e)if("string"==typeof t){if(t.length<1){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}D=e===f,o=o||D}if(!o){const e={params:{}};return null===p?p=[e]:p.push(e),f++,m.errors=p,!1}f=r,null!==p&&(r?p.length=r:p=null),d=n===f}else d=!0;if(d)if(void 0!==e.wasmLoading){const n=f;y(e.wasmLoading,{instancePath:t+"/wasmLoading",parentData:e,parentDataProperty:"wasmLoading",rootData:s})||(p=null===p?y.errors:p.concat(y.errors),f=p.length),d=n===f}else d=!0}}}}}}}}}}}}}return m.errors=p,0===f}function d(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;if(0===i){if(!e||"object"!=typeof e||Array.isArray(e))return d.errors=[{params:{type:"object"}}],!1;for(const n in e){let r=e[n];const f=i,u=i;let c=!1;const y=i,h=i;let g=!1;const b=i;if(i===b)if(Array.isArray(r))if(r.length<1){const e={params:{limit:1}};null===s?s=[e]:s.push(e),i++}else{var a=!0;const e=r.length;for(let t=0;t1){const n={};for(;t--;){let o=r[t];if("string"==typeof o){if("number"==typeof n[o]){e=n[o];const r={params:{i:t,j:e}};null===s?s=[r]:s.push(r),i++;break}n[o]=t}}}}}else{const e={params:{type:"array"}};null===s?s=[e]:s.push(e),i++}var l=b===i;if(g=g||l,!g){const e=i;if(i===e)if("string"==typeof r){if(r.length<1){const e={params:{}};null===s?s=[e]:s.push(e),i++}}else{const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}l=e===i,g=g||l}if(g)i=h,null!==s&&(h?s.length=h:s=null);else{const e={params:{}};null===s?s=[e]:s.push(e),i++}var p=y===i;if(c=c||p,!c){const a=i;m(r,{instancePath:t+"/"+n.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:e,parentDataProperty:n,rootData:o})||(s=null===s?m.errors:s.concat(m.errors),i=s.length),p=a===i,c=c||p}if(!c){const e={params:{}};return null===s?s=[e]:s.push(e),i++,d.errors=s,!1}if(i=u,null!==s&&(u?s.length=u:s=null),f!==i)break}}return d.errors=s,0===i}function h(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const a=i;let l=!1,p=null;const f=i,u=i;let c=!1;const y=i;if(i===y)if(Array.isArray(e))if(e.length<1){const e={params:{limit:1}};null===s?s=[e]:s.push(e),i++}else{var m=!0;const t=e.length;for(let n=0;n1){const r={};for(;n--;){let o=e[n];if("string"==typeof o){if("number"==typeof r[o]){t=r[o];const e={params:{i:n,j:t}};null===s?s=[e]:s.push(e),i++;break}r[o]=n}}}}}else{const e={params:{type:"array"}};null===s?s=[e]:s.push(e),i++}var d=y===i;if(c=c||d,!c){const t=i;if(i===t)if("string"==typeof e){if(e.length<1){const e={params:{}};null===s?s=[e]:s.push(e),i++}}else{const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}d=t===i,c=c||d}if(c)i=u,null!==s&&(u?s.length=u:s=null);else{const e={params:{}};null===s?s=[e]:s.push(e),i++}if(f===i&&(l=!0,p=0),!l){const e={params:{passingSchemas:p}};return null===s?s=[e]:s.push(e),i++,h.errors=s,!1}return i=a,null!==s&&(a?s.length=a:s=null),h.errors=s,0===i}function g(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const a=i;let l=!1;const p=i;d(e,{instancePath:t,parentData:n,parentDataProperty:r,rootData:o})||(s=null===s?d.errors:s.concat(d.errors),i=s.length);var f=p===i;if(l=l||f,!l){const a=i;h(e,{instancePath:t,parentData:n,parentDataProperty:r,rootData:o})||(s=null===s?h.errors:s.concat(h.errors),i=s.length),f=a===i,l=l||f}if(!l){const e={params:{}};return null===s?s=[e]:s.push(e),i++,g.errors=s,!1}return i=a,null!==s&&(a?s.length=a:s=null),g.errors=s,0===i}function b(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const a=i;let l=!1;const p=i;if(!(e instanceof Function)){const e={params:{}};null===s?s=[e]:s.push(e),i++}var f=p===i;if(l=l||f,!l){const a=i;g(e,{instancePath:t,parentData:n,parentDataProperty:r,rootData:o})||(s=null===s?g.errors:s.concat(g.errors),i=s.length),f=a===i,l=l||f}if(!l){const e={params:{}};return null===s?s=[e]:s.push(e),i++,b.errors=s,!1}return i=a,null!==s&&(a?s.length=a:s=null),b.errors=s,0===i}const v={type:"object",additionalProperties:!1,properties:{asyncWebAssembly:{type:"boolean"},backCompat:{type:"boolean"},buildHttp:{anyOf:[{$ref:"#/definitions/HttpUriAllowedUris"},{$ref:"#/definitions/HttpUriOptions"}]},cacheUnaffected:{type:"boolean"},css:{type:"boolean"},futureDefaults:{type:"boolean"},layers:{type:"boolean"},lazyCompilation:{anyOf:[{type:"boolean"},{$ref:"#/definitions/LazyCompilationOptions"}]},outputModule:{type:"boolean"},syncWebAssembly:{type:"boolean"},topLevelAwait:{type:"boolean"}}},P=new RegExp("^https?://","u");function D(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const a=i;let l=!1,p=null;const f=i;if(i==i)if(Array.isArray(e)){const t=e.length;for(let n=0;n=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var u=y===l;if(c=c||u,!c){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}u=t===l,c=c||u}if(c)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.filename){let n=t.filename;const r=l,o=l;let s=!1;const i=l;if(l===i)if("string"==typeof n){if(n.includes("!")||!1!==e.test(n)){const e={params:{}};null===a?a=[e]:a.push(e),l++}else if(n.length<1){const e={params:{}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}var c=i===l;if(s=s||c,!s){const e=l;if(!(n instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}c=e===l,s=s||c}if(!s){const e={params:{}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=o,null!==a&&(o?a.length=o:a=null),p=r===l}else p=!0;if(p){if(void 0!==t.idHint){const e=l;if("string"!=typeof t.idHint)return Pe.errors=[{params:{type:"string"}}],!1;p=e===l}else p=!0;if(p){if(void 0!==t.layer){let e=t.layer;const n=l,r=l;let o=!1;const s=l;if(!(e instanceof RegExp)){const e={params:{}};null===a?a=[e]:a.push(e),l++}var y=s===l;if(o=o||y,!o){const t=l;if("string"!=typeof e){const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}if(y=t===l,o=o||y,!o){const t=l;if(!(e instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}y=t===l,o=o||y}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.maxAsyncRequests){let e=t.maxAsyncRequests;const n=l;if(l===n){if("number"!=typeof e)return Pe.errors=[{params:{type:"number"}}],!1;if(e<1||isNaN(e))return Pe.errors=[{params:{comparison:">=",limit:1}}],!1}p=n===l}else p=!0;if(p){if(void 0!==t.maxAsyncSize){let e=t.maxAsyncSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var m=c===l;if(u=u||m,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}m=t===l,u=u||m}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.maxInitialRequests){let e=t.maxInitialRequests;const n=l;if(l===n){if("number"!=typeof e)return Pe.errors=[{params:{type:"number"}}],!1;if(e<1||isNaN(e))return Pe.errors=[{params:{comparison:">=",limit:1}}],!1}p=n===l}else p=!0;if(p){if(void 0!==t.maxInitialSize){let e=t.maxInitialSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var d=c===l;if(u=u||d,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}d=t===l,u=u||d}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.maxSize){let e=t.maxSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var h=c===l;if(u=u||h,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}h=t===l,u=u||h}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.minChunks){let e=t.minChunks;const n=l;if(l===n){if("number"!=typeof e)return Pe.errors=[{params:{type:"number"}}],!1;if(e<1||isNaN(e))return Pe.errors=[{params:{comparison:">=",limit:1}}],!1}p=n===l}else p=!0;if(p){if(void 0!==t.minRemainingSize){let e=t.minRemainingSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var g=c===l;if(u=u||g,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}g=t===l,u=u||g}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.minSize){let e=t.minSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var b=c===l;if(u=u||b,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}b=t===l,u=u||b}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.minSizeReduction){let e=t.minSizeReduction;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var v=c===l;if(u=u||v,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}v=t===l,u=u||v}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.name){let e=t.name;const n=l,r=l;let o=!1;const s=l;if(!1!==e){const e={params:{}};null===a?a=[e]:a.push(e),l++}var P=s===l;if(o=o||P,!o){const t=l;if("string"!=typeof e){const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}if(P=t===l,o=o||P,!o){const t=l;if(!(e instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}P=t===l,o=o||P}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.priority){const e=l;if("number"!=typeof t.priority)return Pe.errors=[{params:{type:"number"}}],!1;p=e===l}else p=!0;if(p){if(void 0!==t.reuseExistingChunk){const e=l;if("boolean"!=typeof t.reuseExistingChunk)return Pe.errors=[{params:{type:"boolean"}}],!1;p=e===l}else p=!0;if(p){if(void 0!==t.test){let e=t.test;const n=l,r=l;let o=!1;const s=l;if(!(e instanceof RegExp)){const e={params:{}};null===a?a=[e]:a.push(e),l++}var D=s===l;if(o=o||D,!o){const t=l;if("string"!=typeof e){const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}if(D=t===l,o=o||D,!o){const t=l;if(!(e instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}D=t===l,o=o||D}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.type){let e=t.type;const n=l,r=l;let o=!1;const s=l;if(!(e instanceof RegExp)){const e={params:{}};null===a?a=[e]:a.push(e),l++}var O=s===l;if(o=o||O,!o){const t=l;if("string"!=typeof e){const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}if(O=t===l,o=o||O,!o){const t=l;if(!(e instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}O=t===l,o=o||O}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p)if(void 0!==t.usedExports){const e=l;if("boolean"!=typeof t.usedExports)return Pe.errors=[{params:{type:"boolean"}}],!1;p=e===l}else p=!0}}}}}}}}}}}}}}}}}}}}}}}return Pe.errors=a,0===l}function De(t,{instancePath:r="",parentData:o,parentDataProperty:s,rootData:i=t}={}){let a=null,l=0;if(0===l){if(!t||"object"!=typeof t||Array.isArray(t))return De.errors=[{params:{type:"object"}}],!1;{const o=l;for(const e in t)if(!n.call(be.properties,e))return De.errors=[{params:{additionalProperty:e}}],!1;if(o===l){if(void 0!==t.automaticNameDelimiter){let e=t.automaticNameDelimiter;const n=l;if(l===n){if("string"!=typeof e)return De.errors=[{params:{type:"string"}}],!1;if(e.length<1)return De.errors=[{params:{}}],!1}var p=n===l}else p=!0;if(p){if(void 0!==t.cacheGroups){let e=t.cacheGroups;const n=l,o=l,s=l;if(l===s)if(e&&"object"==typeof e&&!Array.isArray(e)){let t;if(void 0===e.test&&(t="test")){const e={};null===a?a=[e]:a.push(e),l++}else if(void 0!==e.test){let t=e.test;const n=l;let r=!1;const o=l;if(!(t instanceof RegExp)){const e={};null===a?a=[e]:a.push(e),l++}var f=o===l;if(r=r||f,!r){const e=l;if("string"!=typeof t){const e={};null===a?a=[e]:a.push(e),l++}if(f=e===l,r=r||f,!r){const e=l;if(!(t instanceof Function)){const e={};null===a?a=[e]:a.push(e),l++}f=e===l,r=r||f}}if(r)l=n,null!==a&&(n?a.length=n:a=null);else{const e={};null===a?a=[e]:a.push(e),l++}}}else{const e={};null===a?a=[e]:a.push(e),l++}if(s===l)return De.errors=[{params:{}}],!1;if(l=o,null!==a&&(o?a.length=o:a=null),l===n){if(!e||"object"!=typeof e||Array.isArray(e))return De.errors=[{params:{type:"object"}}],!1;for(const t in e){let n=e[t];const o=l,s=l;let p=!1;const f=l;if(!1!==n){const e={params:{}};null===a?a=[e]:a.push(e),l++}var u=f===l;if(p=p||u,!p){const o=l;if(!(n instanceof RegExp)){const e={params:{}};null===a?a=[e]:a.push(e),l++}if(u=o===l,p=p||u,!p){const o=l;if("string"!=typeof n){const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}if(u=o===l,p=p||u,!p){const o=l;if(!(n instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}if(u=o===l,p=p||u,!p){const o=l;Pe(n,{instancePath:r+"/cacheGroups/"+t.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:e,parentDataProperty:t,rootData:i})||(a=null===a?Pe.errors:a.concat(Pe.errors),l=a.length),u=o===l,p=p||u}}}}if(!p){const e={params:{}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}if(l=s,null!==a&&(s?a.length=s:a=null),o!==l)break}}p=n===l}else p=!0;if(p){if(void 0!==t.chunks){let e=t.chunks;const n=l,r=l;let o=!1;const s=l;if("initial"!==e&&"async"!==e&&"all"!==e){const e={params:{}};null===a?a=[e]:a.push(e),l++}var c=s===l;if(o=o||c,!o){const t=l;if(!(e instanceof RegExp)){const e={params:{}};null===a?a=[e]:a.push(e),l++}if(c=t===l,o=o||c,!o){const t=l;if(!(e instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}c=t===l,o=o||c}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.defaultSizeTypes){let e=t.defaultSizeTypes;const n=l;if(l===n){if(!Array.isArray(e))return De.errors=[{params:{type:"array"}}],!1;if(e.length<1)return De.errors=[{params:{limit:1}}],!1;{const t=e.length;for(let n=0;n=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var y=c===l;if(u=u||y,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}y=t===l,u=u||y}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.fallbackCacheGroup){let e=t.fallbackCacheGroup;const n=l;if(l===n){if(!e||"object"!=typeof e||Array.isArray(e))return De.errors=[{params:{type:"object"}}],!1;{const t=l;for(const t in e)if("automaticNameDelimiter"!==t&&"chunks"!==t&&"maxAsyncSize"!==t&&"maxInitialSize"!==t&&"maxSize"!==t&&"minSize"!==t&&"minSizeReduction"!==t)return De.errors=[{params:{additionalProperty:t}}],!1;if(t===l){if(void 0!==e.automaticNameDelimiter){let t=e.automaticNameDelimiter;const n=l;if(l===n){if("string"!=typeof t)return De.errors=[{params:{type:"string"}}],!1;if(t.length<1)return De.errors=[{params:{}}],!1}var m=n===l}else m=!0;if(m){if(void 0!==e.chunks){let t=e.chunks;const n=l,r=l;let o=!1;const s=l;if("initial"!==t&&"async"!==t&&"all"!==t){const e={params:{}};null===a?a=[e]:a.push(e),l++}var d=s===l;if(o=o||d,!o){const e=l;if(!(t instanceof RegExp)){const e={params:{}};null===a?a=[e]:a.push(e),l++}if(d=e===l,o=o||d,!o){const e=l;if(!(t instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}d=e===l,o=o||d}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),m=n===l}else m=!0;if(m){if(void 0!==e.maxAsyncSize){let t=e.maxAsyncSize;const n=l,r=l;let o=!1,s=null;const i=l,p=l;let f=!1;const u=l;if(l===u)if("number"==typeof t){if(t<0||isNaN(t)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var h=u===l;if(f=f||h,!f){const e=l;if(l===e)if(t&&"object"==typeof t&&!Array.isArray(t))for(const e in t){const n=l;if("number"!=typeof t[e]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}h=e===l,f=f||h}if(f)l=p,null!==a&&(p?a.length=p:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),m=n===l}else m=!0;if(m){if(void 0!==e.maxInitialSize){let t=e.maxInitialSize;const n=l,r=l;let o=!1,s=null;const i=l,p=l;let f=!1;const u=l;if(l===u)if("number"==typeof t){if(t<0||isNaN(t)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var g=u===l;if(f=f||g,!f){const e=l;if(l===e)if(t&&"object"==typeof t&&!Array.isArray(t))for(const e in t){const n=l;if("number"!=typeof t[e]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}g=e===l,f=f||g}if(f)l=p,null!==a&&(p?a.length=p:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),m=n===l}else m=!0;if(m){if(void 0!==e.maxSize){let t=e.maxSize;const n=l,r=l;let o=!1,s=null;const i=l,p=l;let f=!1;const u=l;if(l===u)if("number"==typeof t){if(t<0||isNaN(t)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var b=u===l;if(f=f||b,!f){const e=l;if(l===e)if(t&&"object"==typeof t&&!Array.isArray(t))for(const e in t){const n=l;if("number"!=typeof t[e]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}b=e===l,f=f||b}if(f)l=p,null!==a&&(p?a.length=p:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),m=n===l}else m=!0;if(m){if(void 0!==e.minSize){let t=e.minSize;const n=l,r=l;let o=!1,s=null;const i=l,p=l;let f=!1;const u=l;if(l===u)if("number"==typeof t){if(t<0||isNaN(t)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var v=u===l;if(f=f||v,!f){const e=l;if(l===e)if(t&&"object"==typeof t&&!Array.isArray(t))for(const e in t){const n=l;if("number"!=typeof t[e]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}v=e===l,f=f||v}if(f)l=p,null!==a&&(p?a.length=p:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),m=n===l}else m=!0;if(m)if(void 0!==e.minSizeReduction){let t=e.minSizeReduction;const n=l,r=l;let o=!1,s=null;const i=l,p=l;let f=!1;const u=l;if(l===u)if("number"==typeof t){if(t<0||isNaN(t)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var P=u===l;if(f=f||P,!f){const e=l;if(l===e)if(t&&"object"==typeof t&&!Array.isArray(t))for(const e in t){const n=l;if("number"!=typeof t[e]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}P=e===l,f=f||P}if(f)l=p,null!==a&&(p?a.length=p:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),m=n===l}else m=!0}}}}}}}}p=n===l}else p=!0;if(p){if(void 0!==t.filename){let n=t.filename;const r=l,o=l;let s=!1;const i=l;if(l===i)if("string"==typeof n){if(n.includes("!")||!1!==e.test(n)){const e={params:{}};null===a?a=[e]:a.push(e),l++}else if(n.length<1){const e={params:{}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}var D=i===l;if(s=s||D,!s){const e=l;if(!(n instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}D=e===l,s=s||D}if(!s){const e={params:{}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=o,null!==a&&(o?a.length=o:a=null),p=r===l}else p=!0;if(p){if(void 0!==t.hidePathInfo){const e=l;if("boolean"!=typeof t.hidePathInfo)return De.errors=[{params:{type:"boolean"}}],!1;p=e===l}else p=!0;if(p){if(void 0!==t.maxAsyncRequests){let e=t.maxAsyncRequests;const n=l;if(l===n){if("number"!=typeof e)return De.errors=[{params:{type:"number"}}],!1;if(e<1||isNaN(e))return De.errors=[{params:{comparison:">=",limit:1}}],!1}p=n===l}else p=!0;if(p){if(void 0!==t.maxAsyncSize){let e=t.maxAsyncSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var O=c===l;if(u=u||O,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}O=t===l,u=u||O}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.maxInitialRequests){let e=t.maxInitialRequests;const n=l;if(l===n){if("number"!=typeof e)return De.errors=[{params:{type:"number"}}],!1;if(e<1||isNaN(e))return De.errors=[{params:{comparison:">=",limit:1}}],!1}p=n===l}else p=!0;if(p){if(void 0!==t.maxInitialSize){let e=t.maxInitialSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var C=c===l;if(u=u||C,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}C=t===l,u=u||C}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.maxSize){let e=t.maxSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var x=c===l;if(u=u||x,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}x=t===l,u=u||x}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.minChunks){let e=t.minChunks;const n=l;if(l===n){if("number"!=typeof e)return De.errors=[{params:{type:"number"}}],!1;if(e<1||isNaN(e))return De.errors=[{params:{comparison:">=",limit:1}}],!1}p=n===l}else p=!0;if(p){if(void 0!==t.minRemainingSize){let e=t.minRemainingSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var A=c===l;if(u=u||A,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}A=t===l,u=u||A}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.minSize){let e=t.minSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var $=c===l;if(u=u||$,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}$=t===l,u=u||$}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.minSizeReduction){let e=t.minSizeReduction;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var k=c===l;if(u=u||k,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}k=t===l,u=u||k}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.name){let e=t.name;const n=l,r=l;let o=!1;const s=l;if(!1!==e){const e={params:{}};null===a?a=[e]:a.push(e),l++}var j=s===l;if(o=o||j,!o){const t=l;if("string"!=typeof e){const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}if(j=t===l,o=o||j,!o){const t=l;if(!(e instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}j=t===l,o=o||j}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p)if(void 0!==t.usedExports){const e=l;if("boolean"!=typeof t.usedExports)return De.errors=[{params:{type:"boolean"}}],!1;p=e===l}else p=!0}}}}}}}}}}}}}}}}}}}}return De.errors=a,0===l}function Oe(e,{instancePath:t="",parentData:r,parentDataProperty:o,rootData:s=e}={}){let i=null,a=0;if(0===a){if(!e||"object"!=typeof e||Array.isArray(e))return Oe.errors=[{params:{type:"object"}}],!1;{const r=a;for(const t in e)if(!n.call(ge.properties,t))return Oe.errors=[{params:{additionalProperty:t}}],!1;if(r===a){if(void 0!==e.checkWasmTypes){const t=a;if("boolean"!=typeof e.checkWasmTypes)return Oe.errors=[{params:{type:"boolean"}}],!1;var l=t===a}else l=!0;if(l){if(void 0!==e.chunkIds){let t=e.chunkIds;const n=a;if("natural"!==t&&"named"!==t&&"deterministic"!==t&&"size"!==t&&"total-size"!==t&&!1!==t)return Oe.errors=[{params:{}}],!1;l=n===a}else l=!0;if(l){if(void 0!==e.concatenateModules){const t=a;if("boolean"!=typeof e.concatenateModules)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.emitOnErrors){const t=a;if("boolean"!=typeof e.emitOnErrors)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.flagIncludedChunks){const t=a;if("boolean"!=typeof e.flagIncludedChunks)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.innerGraph){const t=a;if("boolean"!=typeof e.innerGraph)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.mangleExports){let t=e.mangleExports;const n=a,r=a;let o=!1;const s=a;if("size"!==t&&"deterministic"!==t){const e={params:{}};null===i?i=[e]:i.push(e),a++}var p=s===a;if(o=o||p,!o){const e=a;if("boolean"!=typeof t){const e={params:{type:"boolean"}};null===i?i=[e]:i.push(e),a++}p=e===a,o=o||p}if(!o){const e={params:{}};return null===i?i=[e]:i.push(e),a++,Oe.errors=i,!1}a=r,null!==i&&(r?i.length=r:i=null),l=n===a}else l=!0;if(l){if(void 0!==e.mangleWasmImports){const t=a;if("boolean"!=typeof e.mangleWasmImports)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.mergeDuplicateChunks){const t=a;if("boolean"!=typeof e.mergeDuplicateChunks)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.minimize){const t=a;if("boolean"!=typeof e.minimize)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.minimizer){let t=e.minimizer;const n=a;if(a===n){if(!Array.isArray(t))return Oe.errors=[{params:{type:"array"}}],!1;{const e=t.length;for(let n=0;n=",limit:1}}],!1}u=n===f}else u=!0;if(u){if(void 0!==t.hashFunction){let e=t.hashFunction;const n=f,r=f;let o=!1;const s=f;if(f===s)if("string"==typeof e){if(e.length<1){const e={params:{}};null===l?l=[e]:l.push(e),f++}}else{const e={params:{type:"string"}};null===l?l=[e]:l.push(e),f++}var v=s===f;if(o=o||v,!o){const t=f;if(!(e instanceof Function)){const e={params:{}};null===l?l=[e]:l.push(e),f++}v=t===f,o=o||v}if(!o){const e={params:{}};return null===l?l=[e]:l.push(e),f++,ze.errors=l,!1}f=r,null!==l&&(r?l.length=r:l=null),u=n===f}else u=!0;if(u){if(void 0!==t.hashSalt){let e=t.hashSalt;const n=f;if(f==f){if("string"!=typeof e)return ze.errors=[{params:{type:"string"}}],!1;if(e.length<1)return ze.errors=[{params:{}}],!1}u=n===f}else u=!0;if(u){if(void 0!==t.hotUpdateChunkFilename){let n=t.hotUpdateChunkFilename;const r=f;if(f==f){if("string"!=typeof n)return ze.errors=[{params:{type:"string"}}],!1;if(n.includes("!")||!1!==e.test(n))return ze.errors=[{params:{}}],!1}u=r===f}else u=!0;if(u){if(void 0!==t.hotUpdateGlobal){const e=f;if("string"!=typeof t.hotUpdateGlobal)return ze.errors=[{params:{type:"string"}}],!1;u=e===f}else u=!0;if(u){if(void 0!==t.hotUpdateMainFilename){let n=t.hotUpdateMainFilename;const r=f;if(f==f){if("string"!=typeof n)return ze.errors=[{params:{type:"string"}}],!1;if(n.includes("!")||!1!==e.test(n))return ze.errors=[{params:{}}],!1}u=r===f}else u=!0;if(u){if(void 0!==t.ignoreBrowserWarnings){const e=f;if("boolean"!=typeof t.ignoreBrowserWarnings)return ze.errors=[{params:{type:"boolean"}}],!1;u=e===f}else u=!0;if(u){if(void 0!==t.iife){const e=f;if("boolean"!=typeof t.iife)return ze.errors=[{params:{type:"boolean"}}],!1;u=e===f}else u=!0;if(u){if(void 0!==t.importFunctionName){const e=f;if("string"!=typeof t.importFunctionName)return ze.errors=[{params:{type:"string"}}],!1;u=e===f}else u=!0;if(u){if(void 0!==t.importMetaName){const e=f;if("string"!=typeof t.importMetaName)return ze.errors=[{params:{type:"string"}}],!1;u=e===f}else u=!0;if(u){if(void 0!==t.library){const e=f;Le(t.library,{instancePath:r+"/library",parentData:t,parentDataProperty:"library",rootData:i})||(l=null===l?Le.errors:l.concat(Le.errors),f=l.length),u=e===f}else u=!0;if(u){if(void 0!==t.libraryExport){let e=t.libraryExport;const n=f,r=f;let o=!1,s=null;const i=f,a=f;let p=!1;const c=f;if(f===c)if(Array.isArray(e)){const t=e.length;for(let n=0;n=",limit:1}}],!1}c=t===f}else c=!0;if(c){if(void 0!==r.performance){const e=f;Me(r.performance,{instancePath:o+"/performance",parentData:r,parentDataProperty:"performance",rootData:l})||(p=null===p?Me.errors:p.concat(Me.errors),f=p.length),c=e===f}else c=!0;if(c){if(void 0!==r.plugins){const e=f;we(r.plugins,{instancePath:o+"/plugins",parentData:r,parentDataProperty:"plugins",rootData:l})||(p=null===p?we.errors:p.concat(we.errors),f=p.length),c=e===f}else c=!0;if(c){if(void 0!==r.profile){const e=f;if("boolean"!=typeof r.profile)return _e.errors=[{params:{type:"boolean"}}],!1;c=e===f}else c=!0;if(c){if(void 0!==r.recordsInputPath){let t=r.recordsInputPath;const n=f,o=f;let s=!1;const i=f;if(!1!==t){const e={params:{}};null===p?p=[e]:p.push(e),f++}var v=i===f;if(s=s||v,!s){const n=f;if(f===n)if("string"==typeof t){if(t.includes("!")||!0!==e.test(t)){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}v=n===f,s=s||v}if(!s){const e={params:{}};return null===p?p=[e]:p.push(e),f++,_e.errors=p,!1}f=o,null!==p&&(o?p.length=o:p=null),c=n===f}else c=!0;if(c){if(void 0!==r.recordsOutputPath){let t=r.recordsOutputPath;const n=f,o=f;let s=!1;const i=f;if(!1!==t){const e={params:{}};null===p?p=[e]:p.push(e),f++}var P=i===f;if(s=s||P,!s){const n=f;if(f===n)if("string"==typeof t){if(t.includes("!")||!0!==e.test(t)){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}P=n===f,s=s||P}if(!s){const e={params:{}};return null===p?p=[e]:p.push(e),f++,_e.errors=p,!1}f=o,null!==p&&(o?p.length=o:p=null),c=n===f}else c=!0;if(c){if(void 0!==r.recordsPath){let t=r.recordsPath;const n=f,o=f;let s=!1;const i=f;if(!1!==t){const e={params:{}};null===p?p=[e]:p.push(e),f++}var D=i===f;if(s=s||D,!s){const n=f;if(f===n)if("string"==typeof t){if(t.includes("!")||!0!==e.test(t)){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}D=n===f,s=s||D}if(!s){const e={params:{}};return null===p?p=[e]:p.push(e),f++,_e.errors=p,!1}f=o,null!==p&&(o?p.length=o:p=null),c=n===f}else c=!0;if(c){if(void 0!==r.resolve){const e=f;Te(r.resolve,{instancePath:o+"/resolve",parentData:r,parentDataProperty:"resolve",rootData:l})||(p=null===p?Te.errors:p.concat(Te.errors),f=p.length),c=e===f}else c=!0;if(c){if(void 0!==r.resolveLoader){const e=f;Ne(r.resolveLoader,{instancePath:o+"/resolveLoader",parentData:r,parentDataProperty:"resolveLoader",rootData:l})||(p=null===p?Ne.errors:p.concat(Ne.errors),f=p.length),c=e===f}else c=!0;if(c){if(void 0!==r.snapshot){let t=r.snapshot;const n=f;if(f==f){if(!t||"object"!=typeof t||Array.isArray(t))return _e.errors=[{params:{type:"object"}}],!1;{const n=f;for(const e in t)if("buildDependencies"!==e&&"immutablePaths"!==e&&"managedPaths"!==e&&"module"!==e&&"resolve"!==e&&"resolveBuildDependencies"!==e&&"unmanagedPaths"!==e)return _e.errors=[{params:{additionalProperty:e}}],!1;if(n===f){if(void 0!==t.buildDependencies){let e=t.buildDependencies;const n=f;if(f===n){if(!e||"object"!=typeof e||Array.isArray(e))return _e.errors=[{params:{type:"object"}}],!1;{const t=f;for(const t in e)if("hash"!==t&&"timestamp"!==t)return _e.errors=[{params:{additionalProperty:t}}],!1;if(t===f){if(void 0!==e.hash){const t=f;if("boolean"!=typeof e.hash)return _e.errors=[{params:{type:"boolean"}}],!1;var O=t===f}else O=!0;if(O)if(void 0!==e.timestamp){const t=f;if("boolean"!=typeof e.timestamp)return _e.errors=[{params:{type:"boolean"}}],!1;O=t===f}else O=!0}}}var C=n===f}else C=!0;if(C){if(void 0!==t.immutablePaths){let n=t.immutablePaths;const r=f;if(f===r){if(!Array.isArray(n))return _e.errors=[{params:{type:"array"}}],!1;{const t=n.length;for(let r=0;r=",limit:1}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"number"}};null===p?p=[e]:p.push(e),f++}d=n===f}else d=!0;if(d)if(void 0!==t.type){const e=f;if("memory"!==t.type){const e={params:{}};null===p?p=[e]:p.push(e),f++}d=e===f}else d=!0}}}}else{const e={params:{type:"object"}};null===p?p=[e]:p.push(e),f++}if(m=o===f,c=c||m,!c){const o=f;if(f==f)if(t&&"object"==typeof t&&!Array.isArray(t)){let o;if(void 0===t.type&&(o="type")){const e={params:{missingProperty:o}};null===p?p=[e]:p.push(e),f++}else{const o=f;for(const e in t)if(!n.call(r.properties,e)){const t={params:{additionalProperty:e}};null===p?p=[t]:p.push(t),f++;break}if(o===f){if(void 0!==t.allowCollectingMemory){const e=f;if("boolean"!=typeof t.allowCollectingMemory){const e={params:{type:"boolean"}};null===p?p=[e]:p.push(e),f++}var h=e===f}else h=!0;if(h){if(void 0!==t.buildDependencies){let e=t.buildDependencies;const n=f;if(f===n)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){let n=e[t];const r=f;if(f===r)if(Array.isArray(n)){const e=n.length;for(let t=0;t=",limit:0}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"number"}};null===p?p=[e]:p.push(e),f++}h=n===f}else h=!0;if(h){if(void 0!==t.idleTimeoutAfterLargeChanges){let e=t.idleTimeoutAfterLargeChanges;const n=f;if(f===n)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"number"}};null===p?p=[e]:p.push(e),f++}h=n===f}else h=!0;if(h){if(void 0!==t.idleTimeoutForInitialStore){let e=t.idleTimeoutForInitialStore;const n=f;if(f===n)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"number"}};null===p?p=[e]:p.push(e),f++}h=n===f}else h=!0;if(h){if(void 0!==t.immutablePaths){let n=t.immutablePaths;const r=f;if(f===r)if(Array.isArray(n)){const t=n.length;for(let r=0;r=",limit:0}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"number"}};null===p?p=[e]:p.push(e),f++}h=n===f}else h=!0;if(h){if(void 0!==t.maxMemoryGenerations){let e=t.maxMemoryGenerations;const n=f;if(f===n)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"number"}};null===p?p=[e]:p.push(e),f++}h=n===f}else h=!0;if(h){if(void 0!==t.memoryCacheUnaffected){const e=f;if("boolean"!=typeof t.memoryCacheUnaffected){const e={params:{type:"boolean"}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0;if(h){if(void 0!==t.name){const e=f;if("string"!=typeof t.name){const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0;if(h){if(void 0!==t.profile){const e=f;if("boolean"!=typeof t.profile){const e={params:{type:"boolean"}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0;if(h){if(void 0!==t.readonly){const e=f;if("boolean"!=typeof t.readonly){const e={params:{type:"boolean"}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0;if(h){if(void 0!==t.store){const e=f;if("pack"!==t.store){const e={params:{}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0;if(h){if(void 0!==t.type){const e=f;if("filesystem"!==t.type){const e={params:{}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0;if(h)if(void 0!==t.version){const e=f;if("string"!=typeof t.version){const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}h=e===f}else h=!0}}}}}}}}}}}}}}}}}}}}}else{const e={params:{type:"object"}};null===p?p=[e]:p.push(e),f++}m=o===f,c=c||m}}if(!c){const e={params:{}};return null===p?p=[e]:p.push(e),f++,o.errors=p,!1}return f=u,null!==p&&(u?p.length=u:p=null),o.errors=p,0===f}function s(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:i=e}={}){let a=null,l=0;const p=l;let f=!1;const u=l;if(!0!==e){const e={params:{}};null===a?a=[e]:a.push(e),l++}var c=u===l;if(f=f||c,!f){const s=l;o(e,{instancePath:t,parentData:n,parentDataProperty:r,rootData:i})||(a=null===a?o.errors:a.concat(o.errors),l=a.length),c=s===l,f=f||c}if(!f){const e={params:{}};return null===a?a=[e]:a.push(e),l++,s.errors=a,!1}return l=p,null!==a&&(p?a.length=p:a=null),s.errors=a,0===l}const i={type:"object",additionalProperties:!1,properties:{asyncChunks:{type:"boolean"},baseUri:{type:"string"},chunkLoading:{$ref:"#/definitions/ChunkLoading"},dependOn:{anyOf:[{type:"array",items:{type:"string",minLength:1},minItems:1,uniqueItems:!0},{type:"string",minLength:1}]},filename:{$ref:"#/definitions/EntryFilename"},import:{$ref:"#/definitions/EntryItem"},layer:{$ref:"#/definitions/Layer"},library:{$ref:"#/definitions/LibraryOptions"},publicPath:{$ref:"#/definitions/PublicPath"},runtime:{$ref:"#/definitions/EntryRuntime"},wasmLoading:{$ref:"#/definitions/WasmLoading"}},required:["import"]};function a(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const l=i;let p=!1;const f=i;if(!1!==e){const e={params:{}};null===s?s=[e]:s.push(e),i++}var u=f===i;if(p=p||u,!p){const t=i,n=i;let r=!1;const o=i;if("jsonp"!==e&&"import-scripts"!==e&&"require"!==e&&"async-node"!==e&&"import"!==e){const e={params:{}};null===s?s=[e]:s.push(e),i++}var c=o===i;if(r=r||c,!r){const t=i;if("string"!=typeof e){const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}c=t===i,r=r||c}if(r)i=n,null!==s&&(n?s.length=n:s=null);else{const e={params:{}};null===s?s=[e]:s.push(e),i++}u=t===i,p=p||u}if(!p){const e={params:{}};return null===s?s=[e]:s.push(e),i++,a.errors=s,!1}return i=l,null!==s&&(l?s.length=l:s=null),a.errors=s,0===i}function l(t,{instancePath:n="",parentData:r,parentDataProperty:o,rootData:s=t}={}){let i=null,a=0;const p=a;let f=!1,u=null;const c=a,y=a;let m=!1;const d=a;if(a===d)if("string"==typeof t){if(t.includes("!")||!1!==e.test(t)){const e={params:{}};null===i?i=[e]:i.push(e),a++}else if(t.length<1){const e={params:{}};null===i?i=[e]:i.push(e),a++}}else{const e={params:{type:"string"}};null===i?i=[e]:i.push(e),a++}var h=d===a;if(m=m||h,!m){const e=a;if(!(t instanceof Function)){const e={params:{}};null===i?i=[e]:i.push(e),a++}h=e===a,m=m||h}if(m)a=y,null!==i&&(y?i.length=y:i=null);else{const e={params:{}};null===i?i=[e]:i.push(e),a++}if(c===a&&(f=!0,u=0),!f){const e={params:{passingSchemas:u}};return null===i?i=[e]:i.push(e),a++,l.errors=i,!1}return a=p,null!==i&&(p?i.length=p:i=null),l.errors=i,0===a}function p(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const a=i;let l=!1;const f=i;if("string"!=typeof e){const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}var u=f===i;if(l=l||u,!l){const t=i;if(i==i)if(e&&"object"==typeof e&&!Array.isArray(e)){const t=i;for(const t in e)if("amd"!==t&&"commonjs"!==t&&"commonjs2"!==t&&"root"!==t){const e={params:{additionalProperty:t}};null===s?s=[e]:s.push(e),i++;break}if(t===i){if(void 0!==e.amd){const t=i;if("string"!=typeof e.amd){const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}var c=t===i}else c=!0;if(c){if(void 0!==e.commonjs){const t=i;if("string"!=typeof e.commonjs){const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}c=t===i}else c=!0;if(c){if(void 0!==e.commonjs2){const t=i;if("string"!=typeof e.commonjs2){const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}c=t===i}else c=!0;if(c)if(void 0!==e.root){const t=i;if("string"!=typeof e.root){const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}c=t===i}else c=!0}}}}else{const e={params:{type:"object"}};null===s?s=[e]:s.push(e),i++}u=t===i,l=l||u}if(!l){const e={params:{}};return null===s?s=[e]:s.push(e),i++,p.errors=s,!1}return i=a,null!==s&&(a?s.length=a:s=null),p.errors=s,0===i}function f(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const a=i;let l=!1;const p=i;if(i===p)if(Array.isArray(e))if(e.length<1){const e={params:{limit:1}};null===s?s=[e]:s.push(e),i++}else{const t=e.length;for(let n=0;n1){const r={};for(;n--;){let o=t[n];if("string"==typeof o){if("number"==typeof r[o]){e=r[o];const t={params:{i:n,j:e}};null===p?p=[t]:p.push(t),f++;break}r[o]=n}}}}}else{const e={params:{type:"array"}};null===p?p=[e]:p.push(e),f++}var g=s===f;if(o=o||g,!o){const e=f;if(f===e)if("string"==typeof t){if(t.length<1){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}g=e===f,o=o||g}if(!o){const e={params:{}};return null===p?p=[e]:p.push(e),f++,m.errors=p,!1}f=r,null!==p&&(r?p.length=r:p=null),d=n===f}else d=!0;if(d){if(void 0!==e.filename){const n=f;l(e.filename,{instancePath:t+"/filename",parentData:e,parentDataProperty:"filename",rootData:s})||(p=null===p?l.errors:p.concat(l.errors),f=p.length),d=n===f}else d=!0;if(d){if(void 0!==e.import){let t=e.import;const n=f,r=f;let o=!1;const s=f;if(f===s)if(Array.isArray(t))if(t.length<1){const e={params:{limit:1}};null===p?p=[e]:p.push(e),f++}else{var b=!0;const e=t.length;for(let n=0;n1){const r={};for(;n--;){let o=t[n];if("string"==typeof o){if("number"==typeof r[o]){e=r[o];const t={params:{i:n,j:e}};null===p?p=[t]:p.push(t),f++;break}r[o]=n}}}}}else{const e={params:{type:"array"}};null===p?p=[e]:p.push(e),f++}var v=s===f;if(o=o||v,!o){const e=f;if(f===e)if("string"==typeof t){if(t.length<1){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}v=e===f,o=o||v}if(!o){const e={params:{}};return null===p?p=[e]:p.push(e),f++,m.errors=p,!1}f=r,null!==p&&(r?p.length=r:p=null),d=n===f}else d=!0;if(d){if(void 0!==e.layer){let t=e.layer;const n=f,r=f;let o=!1;const s=f;if(null!==t){const e={params:{}};null===p?p=[e]:p.push(e),f++}var P=s===f;if(o=o||P,!o){const e=f;if(f===e)if("string"==typeof t){if(t.length<1){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}P=e===f,o=o||P}if(!o){const e={params:{}};return null===p?p=[e]:p.push(e),f++,m.errors=p,!1}f=r,null!==p&&(r?p.length=r:p=null),d=n===f}else d=!0;if(d){if(void 0!==e.library){const n=f;u(e.library,{instancePath:t+"/library",parentData:e,parentDataProperty:"library",rootData:s})||(p=null===p?u.errors:p.concat(u.errors),f=p.length),d=n===f}else d=!0;if(d){if(void 0!==e.publicPath){const n=f;c(e.publicPath,{instancePath:t+"/publicPath",parentData:e,parentDataProperty:"publicPath",rootData:s})||(p=null===p?c.errors:p.concat(c.errors),f=p.length),d=n===f}else d=!0;if(d){if(void 0!==e.runtime){let t=e.runtime;const n=f,r=f;let o=!1;const s=f;if(!1!==t){const e={params:{}};null===p?p=[e]:p.push(e),f++}var D=s===f;if(o=o||D,!o){const e=f;if(f===e)if("string"==typeof t){if(t.length<1){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}D=e===f,o=o||D}if(!o){const e={params:{}};return null===p?p=[e]:p.push(e),f++,m.errors=p,!1}f=r,null!==p&&(r?p.length=r:p=null),d=n===f}else d=!0;if(d)if(void 0!==e.wasmLoading){const n=f;y(e.wasmLoading,{instancePath:t+"/wasmLoading",parentData:e,parentDataProperty:"wasmLoading",rootData:s})||(p=null===p?y.errors:p.concat(y.errors),f=p.length),d=n===f}else d=!0}}}}}}}}}}}}}return m.errors=p,0===f}function d(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;if(0===i){if(!e||"object"!=typeof e||Array.isArray(e))return d.errors=[{params:{type:"object"}}],!1;for(const n in e){let r=e[n];const f=i,u=i;let c=!1;const y=i,h=i;let g=!1;const b=i;if(i===b)if(Array.isArray(r))if(r.length<1){const e={params:{limit:1}};null===s?s=[e]:s.push(e),i++}else{var a=!0;const e=r.length;for(let t=0;t1){const n={};for(;t--;){let o=r[t];if("string"==typeof o){if("number"==typeof n[o]){e=n[o];const r={params:{i:t,j:e}};null===s?s=[r]:s.push(r),i++;break}n[o]=t}}}}}else{const e={params:{type:"array"}};null===s?s=[e]:s.push(e),i++}var l=b===i;if(g=g||l,!g){const e=i;if(i===e)if("string"==typeof r){if(r.length<1){const e={params:{}};null===s?s=[e]:s.push(e),i++}}else{const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}l=e===i,g=g||l}if(g)i=h,null!==s&&(h?s.length=h:s=null);else{const e={params:{}};null===s?s=[e]:s.push(e),i++}var p=y===i;if(c=c||p,!c){const a=i;m(r,{instancePath:t+"/"+n.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:e,parentDataProperty:n,rootData:o})||(s=null===s?m.errors:s.concat(m.errors),i=s.length),p=a===i,c=c||p}if(!c){const e={params:{}};return null===s?s=[e]:s.push(e),i++,d.errors=s,!1}if(i=u,null!==s&&(u?s.length=u:s=null),f!==i)break}}return d.errors=s,0===i}function h(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const a=i;let l=!1,p=null;const f=i,u=i;let c=!1;const y=i;if(i===y)if(Array.isArray(e))if(e.length<1){const e={params:{limit:1}};null===s?s=[e]:s.push(e),i++}else{var m=!0;const t=e.length;for(let n=0;n1){const r={};for(;n--;){let o=e[n];if("string"==typeof o){if("number"==typeof r[o]){t=r[o];const e={params:{i:n,j:t}};null===s?s=[e]:s.push(e),i++;break}r[o]=n}}}}}else{const e={params:{type:"array"}};null===s?s=[e]:s.push(e),i++}var d=y===i;if(c=c||d,!c){const t=i;if(i===t)if("string"==typeof e){if(e.length<1){const e={params:{}};null===s?s=[e]:s.push(e),i++}}else{const e={params:{type:"string"}};null===s?s=[e]:s.push(e),i++}d=t===i,c=c||d}if(c)i=u,null!==s&&(u?s.length=u:s=null);else{const e={params:{}};null===s?s=[e]:s.push(e),i++}if(f===i&&(l=!0,p=0),!l){const e={params:{passingSchemas:p}};return null===s?s=[e]:s.push(e),i++,h.errors=s,!1}return i=a,null!==s&&(a?s.length=a:s=null),h.errors=s,0===i}function g(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const a=i;let l=!1;const p=i;d(e,{instancePath:t,parentData:n,parentDataProperty:r,rootData:o})||(s=null===s?d.errors:s.concat(d.errors),i=s.length);var f=p===i;if(l=l||f,!l){const a=i;h(e,{instancePath:t,parentData:n,parentDataProperty:r,rootData:o})||(s=null===s?h.errors:s.concat(h.errors),i=s.length),f=a===i,l=l||f}if(!l){const e={params:{}};return null===s?s=[e]:s.push(e),i++,g.errors=s,!1}return i=a,null!==s&&(a?s.length=a:s=null),g.errors=s,0===i}function b(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const a=i;let l=!1;const p=i;if(!(e instanceof Function)){const e={params:{}};null===s?s=[e]:s.push(e),i++}var f=p===i;if(l=l||f,!l){const a=i;g(e,{instancePath:t,parentData:n,parentDataProperty:r,rootData:o})||(s=null===s?g.errors:s.concat(g.errors),i=s.length),f=a===i,l=l||f}if(!l){const e={params:{}};return null===s?s=[e]:s.push(e),i++,b.errors=s,!1}return i=a,null!==s&&(a?s.length=a:s=null),b.errors=s,0===i}const v={type:"object",additionalProperties:!1,properties:{asyncWebAssembly:{type:"boolean"},backCompat:{type:"boolean"},buildHttp:{anyOf:[{$ref:"#/definitions/HttpUriAllowedUris"},{$ref:"#/definitions/HttpUriOptions"}]},cacheUnaffected:{type:"boolean"},css:{type:"boolean"},futureDefaults:{type:"boolean"},layers:{type:"boolean"},lazyCompilation:{anyOf:[{type:"boolean"},{$ref:"#/definitions/LazyCompilationOptions"}]},outputModule:{type:"boolean"},syncWebAssembly:{type:"boolean"},topLevelAwait:{type:"boolean"}}},P=new RegExp("^https?://","u");function D(e,{instancePath:t="",parentData:n,parentDataProperty:r,rootData:o=e}={}){let s=null,i=0;const a=i;let l=!1,p=null;const f=i;if(i==i)if(Array.isArray(e)){const t=e.length;for(let n=0;n=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var u=y===l;if(c=c||u,!c){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}u=t===l,c=c||u}if(c)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.filename){let n=t.filename;const r=l,o=l;let s=!1;const i=l;if(l===i)if("string"==typeof n){if(n.includes("!")||!1!==e.test(n)){const e={params:{}};null===a?a=[e]:a.push(e),l++}else if(n.length<1){const e={params:{}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}var c=i===l;if(s=s||c,!s){const e=l;if(!(n instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}c=e===l,s=s||c}if(!s){const e={params:{}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=o,null!==a&&(o?a.length=o:a=null),p=r===l}else p=!0;if(p){if(void 0!==t.idHint){const e=l;if("string"!=typeof t.idHint)return Pe.errors=[{params:{type:"string"}}],!1;p=e===l}else p=!0;if(p){if(void 0!==t.layer){let e=t.layer;const n=l,r=l;let o=!1;const s=l;if(!(e instanceof RegExp)){const e={params:{}};null===a?a=[e]:a.push(e),l++}var y=s===l;if(o=o||y,!o){const t=l;if("string"!=typeof e){const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}if(y=t===l,o=o||y,!o){const t=l;if(!(e instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}y=t===l,o=o||y}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.maxAsyncRequests){let e=t.maxAsyncRequests;const n=l;if(l===n){if("number"!=typeof e)return Pe.errors=[{params:{type:"number"}}],!1;if(e<1||isNaN(e))return Pe.errors=[{params:{comparison:">=",limit:1}}],!1}p=n===l}else p=!0;if(p){if(void 0!==t.maxAsyncSize){let e=t.maxAsyncSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var m=c===l;if(u=u||m,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}m=t===l,u=u||m}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.maxInitialRequests){let e=t.maxInitialRequests;const n=l;if(l===n){if("number"!=typeof e)return Pe.errors=[{params:{type:"number"}}],!1;if(e<1||isNaN(e))return Pe.errors=[{params:{comparison:">=",limit:1}}],!1}p=n===l}else p=!0;if(p){if(void 0!==t.maxInitialSize){let e=t.maxInitialSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var d=c===l;if(u=u||d,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}d=t===l,u=u||d}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.maxSize){let e=t.maxSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var h=c===l;if(u=u||h,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}h=t===l,u=u||h}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.minChunks){let e=t.minChunks;const n=l;if(l===n){if("number"!=typeof e)return Pe.errors=[{params:{type:"number"}}],!1;if(e<1||isNaN(e))return Pe.errors=[{params:{comparison:">=",limit:1}}],!1}p=n===l}else p=!0;if(p){if(void 0!==t.minRemainingSize){let e=t.minRemainingSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var g=c===l;if(u=u||g,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}g=t===l,u=u||g}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.minSize){let e=t.minSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var b=c===l;if(u=u||b,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}b=t===l,u=u||b}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.minSizeReduction){let e=t.minSizeReduction;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var v=c===l;if(u=u||v,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}v=t===l,u=u||v}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.name){let e=t.name;const n=l,r=l;let o=!1;const s=l;if(!1!==e){const e={params:{}};null===a?a=[e]:a.push(e),l++}var P=s===l;if(o=o||P,!o){const t=l;if("string"!=typeof e){const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}if(P=t===l,o=o||P,!o){const t=l;if(!(e instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}P=t===l,o=o||P}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.priority){const e=l;if("number"!=typeof t.priority)return Pe.errors=[{params:{type:"number"}}],!1;p=e===l}else p=!0;if(p){if(void 0!==t.reuseExistingChunk){const e=l;if("boolean"!=typeof t.reuseExistingChunk)return Pe.errors=[{params:{type:"boolean"}}],!1;p=e===l}else p=!0;if(p){if(void 0!==t.test){let e=t.test;const n=l,r=l;let o=!1;const s=l;if(!(e instanceof RegExp)){const e={params:{}};null===a?a=[e]:a.push(e),l++}var D=s===l;if(o=o||D,!o){const t=l;if("string"!=typeof e){const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}if(D=t===l,o=o||D,!o){const t=l;if(!(e instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}D=t===l,o=o||D}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.type){let e=t.type;const n=l,r=l;let o=!1;const s=l;if(!(e instanceof RegExp)){const e={params:{}};null===a?a=[e]:a.push(e),l++}var O=s===l;if(o=o||O,!o){const t=l;if("string"!=typeof e){const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}if(O=t===l,o=o||O,!o){const t=l;if(!(e instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}O=t===l,o=o||O}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,Pe.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p)if(void 0!==t.usedExports){const e=l;if("boolean"!=typeof t.usedExports)return Pe.errors=[{params:{type:"boolean"}}],!1;p=e===l}else p=!0}}}}}}}}}}}}}}}}}}}}}}}return Pe.errors=a,0===l}function De(t,{instancePath:r="",parentData:o,parentDataProperty:s,rootData:i=t}={}){let a=null,l=0;if(0===l){if(!t||"object"!=typeof t||Array.isArray(t))return De.errors=[{params:{type:"object"}}],!1;{const o=l;for(const e in t)if(!n.call(be.properties,e))return De.errors=[{params:{additionalProperty:e}}],!1;if(o===l){if(void 0!==t.automaticNameDelimiter){let e=t.automaticNameDelimiter;const n=l;if(l===n){if("string"!=typeof e)return De.errors=[{params:{type:"string"}}],!1;if(e.length<1)return De.errors=[{params:{}}],!1}var p=n===l}else p=!0;if(p){if(void 0!==t.cacheGroups){let e=t.cacheGroups;const n=l,o=l,s=l;if(l===s)if(e&&"object"==typeof e&&!Array.isArray(e)){let t;if(void 0===e.test&&(t="test")){const e={};null===a?a=[e]:a.push(e),l++}else if(void 0!==e.test){let t=e.test;const n=l;let r=!1;const o=l;if(!(t instanceof RegExp)){const e={};null===a?a=[e]:a.push(e),l++}var f=o===l;if(r=r||f,!r){const e=l;if("string"!=typeof t){const e={};null===a?a=[e]:a.push(e),l++}if(f=e===l,r=r||f,!r){const e=l;if(!(t instanceof Function)){const e={};null===a?a=[e]:a.push(e),l++}f=e===l,r=r||f}}if(r)l=n,null!==a&&(n?a.length=n:a=null);else{const e={};null===a?a=[e]:a.push(e),l++}}}else{const e={};null===a?a=[e]:a.push(e),l++}if(s===l)return De.errors=[{params:{}}],!1;if(l=o,null!==a&&(o?a.length=o:a=null),l===n){if(!e||"object"!=typeof e||Array.isArray(e))return De.errors=[{params:{type:"object"}}],!1;for(const t in e){let n=e[t];const o=l,s=l;let p=!1;const f=l;if(!1!==n){const e={params:{}};null===a?a=[e]:a.push(e),l++}var u=f===l;if(p=p||u,!p){const o=l;if(!(n instanceof RegExp)){const e={params:{}};null===a?a=[e]:a.push(e),l++}if(u=o===l,p=p||u,!p){const o=l;if("string"!=typeof n){const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}if(u=o===l,p=p||u,!p){const o=l;if(!(n instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}if(u=o===l,p=p||u,!p){const o=l;Pe(n,{instancePath:r+"/cacheGroups/"+t.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:e,parentDataProperty:t,rootData:i})||(a=null===a?Pe.errors:a.concat(Pe.errors),l=a.length),u=o===l,p=p||u}}}}if(!p){const e={params:{}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}if(l=s,null!==a&&(s?a.length=s:a=null),o!==l)break}}p=n===l}else p=!0;if(p){if(void 0!==t.chunks){let e=t.chunks;const n=l,r=l;let o=!1;const s=l;if("initial"!==e&&"async"!==e&&"all"!==e){const e={params:{}};null===a?a=[e]:a.push(e),l++}var c=s===l;if(o=o||c,!o){const t=l;if(!(e instanceof RegExp)){const e={params:{}};null===a?a=[e]:a.push(e),l++}if(c=t===l,o=o||c,!o){const t=l;if(!(e instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}c=t===l,o=o||c}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.defaultSizeTypes){let e=t.defaultSizeTypes;const n=l;if(l===n){if(!Array.isArray(e))return De.errors=[{params:{type:"array"}}],!1;if(e.length<1)return De.errors=[{params:{limit:1}}],!1;{const t=e.length;for(let n=0;n=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var y=c===l;if(u=u||y,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}y=t===l,u=u||y}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.fallbackCacheGroup){let e=t.fallbackCacheGroup;const n=l;if(l===n){if(!e||"object"!=typeof e||Array.isArray(e))return De.errors=[{params:{type:"object"}}],!1;{const t=l;for(const t in e)if("automaticNameDelimiter"!==t&&"chunks"!==t&&"maxAsyncSize"!==t&&"maxInitialSize"!==t&&"maxSize"!==t&&"minSize"!==t&&"minSizeReduction"!==t)return De.errors=[{params:{additionalProperty:t}}],!1;if(t===l){if(void 0!==e.automaticNameDelimiter){let t=e.automaticNameDelimiter;const n=l;if(l===n){if("string"!=typeof t)return De.errors=[{params:{type:"string"}}],!1;if(t.length<1)return De.errors=[{params:{}}],!1}var m=n===l}else m=!0;if(m){if(void 0!==e.chunks){let t=e.chunks;const n=l,r=l;let o=!1;const s=l;if("initial"!==t&&"async"!==t&&"all"!==t){const e={params:{}};null===a?a=[e]:a.push(e),l++}var d=s===l;if(o=o||d,!o){const e=l;if(!(t instanceof RegExp)){const e={params:{}};null===a?a=[e]:a.push(e),l++}if(d=e===l,o=o||d,!o){const e=l;if(!(t instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}d=e===l,o=o||d}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),m=n===l}else m=!0;if(m){if(void 0!==e.maxAsyncSize){let t=e.maxAsyncSize;const n=l,r=l;let o=!1,s=null;const i=l,p=l;let f=!1;const u=l;if(l===u)if("number"==typeof t){if(t<0||isNaN(t)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var h=u===l;if(f=f||h,!f){const e=l;if(l===e)if(t&&"object"==typeof t&&!Array.isArray(t))for(const e in t){const n=l;if("number"!=typeof t[e]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}h=e===l,f=f||h}if(f)l=p,null!==a&&(p?a.length=p:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),m=n===l}else m=!0;if(m){if(void 0!==e.maxInitialSize){let t=e.maxInitialSize;const n=l,r=l;let o=!1,s=null;const i=l,p=l;let f=!1;const u=l;if(l===u)if("number"==typeof t){if(t<0||isNaN(t)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var g=u===l;if(f=f||g,!f){const e=l;if(l===e)if(t&&"object"==typeof t&&!Array.isArray(t))for(const e in t){const n=l;if("number"!=typeof t[e]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}g=e===l,f=f||g}if(f)l=p,null!==a&&(p?a.length=p:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),m=n===l}else m=!0;if(m){if(void 0!==e.maxSize){let t=e.maxSize;const n=l,r=l;let o=!1,s=null;const i=l,p=l;let f=!1;const u=l;if(l===u)if("number"==typeof t){if(t<0||isNaN(t)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var b=u===l;if(f=f||b,!f){const e=l;if(l===e)if(t&&"object"==typeof t&&!Array.isArray(t))for(const e in t){const n=l;if("number"!=typeof t[e]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}b=e===l,f=f||b}if(f)l=p,null!==a&&(p?a.length=p:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),m=n===l}else m=!0;if(m){if(void 0!==e.minSize){let t=e.minSize;const n=l,r=l;let o=!1,s=null;const i=l,p=l;let f=!1;const u=l;if(l===u)if("number"==typeof t){if(t<0||isNaN(t)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var v=u===l;if(f=f||v,!f){const e=l;if(l===e)if(t&&"object"==typeof t&&!Array.isArray(t))for(const e in t){const n=l;if("number"!=typeof t[e]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}v=e===l,f=f||v}if(f)l=p,null!==a&&(p?a.length=p:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),m=n===l}else m=!0;if(m)if(void 0!==e.minSizeReduction){let t=e.minSizeReduction;const n=l,r=l;let o=!1,s=null;const i=l,p=l;let f=!1;const u=l;if(l===u)if("number"==typeof t){if(t<0||isNaN(t)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var P=u===l;if(f=f||P,!f){const e=l;if(l===e)if(t&&"object"==typeof t&&!Array.isArray(t))for(const e in t){const n=l;if("number"!=typeof t[e]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}P=e===l,f=f||P}if(f)l=p,null!==a&&(p?a.length=p:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),m=n===l}else m=!0}}}}}}}}p=n===l}else p=!0;if(p){if(void 0!==t.filename){let n=t.filename;const r=l,o=l;let s=!1;const i=l;if(l===i)if("string"==typeof n){if(n.includes("!")||!1!==e.test(n)){const e={params:{}};null===a?a=[e]:a.push(e),l++}else if(n.length<1){const e={params:{}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}var D=i===l;if(s=s||D,!s){const e=l;if(!(n instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}D=e===l,s=s||D}if(!s){const e={params:{}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=o,null!==a&&(o?a.length=o:a=null),p=r===l}else p=!0;if(p){if(void 0!==t.hidePathInfo){const e=l;if("boolean"!=typeof t.hidePathInfo)return De.errors=[{params:{type:"boolean"}}],!1;p=e===l}else p=!0;if(p){if(void 0!==t.maxAsyncRequests){let e=t.maxAsyncRequests;const n=l;if(l===n){if("number"!=typeof e)return De.errors=[{params:{type:"number"}}],!1;if(e<1||isNaN(e))return De.errors=[{params:{comparison:">=",limit:1}}],!1}p=n===l}else p=!0;if(p){if(void 0!==t.maxAsyncSize){let e=t.maxAsyncSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var O=c===l;if(u=u||O,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}O=t===l,u=u||O}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.maxInitialRequests){let e=t.maxInitialRequests;const n=l;if(l===n){if("number"!=typeof e)return De.errors=[{params:{type:"number"}}],!1;if(e<1||isNaN(e))return De.errors=[{params:{comparison:">=",limit:1}}],!1}p=n===l}else p=!0;if(p){if(void 0!==t.maxInitialSize){let e=t.maxInitialSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var C=c===l;if(u=u||C,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}C=t===l,u=u||C}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.maxSize){let e=t.maxSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var x=c===l;if(u=u||x,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}x=t===l,u=u||x}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.minChunks){let e=t.minChunks;const n=l;if(l===n){if("number"!=typeof e)return De.errors=[{params:{type:"number"}}],!1;if(e<1||isNaN(e))return De.errors=[{params:{comparison:">=",limit:1}}],!1}p=n===l}else p=!0;if(p){if(void 0!==t.minRemainingSize){let e=t.minRemainingSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var A=c===l;if(u=u||A,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}A=t===l,u=u||A}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.minSize){let e=t.minSize;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var $=c===l;if(u=u||$,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}$=t===l,u=u||$}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.minSizeReduction){let e=t.minSizeReduction;const n=l,r=l;let o=!1,s=null;const i=l,f=l;let u=!1;const c=l;if(l===c)if("number"==typeof e){if(e<0||isNaN(e)){const e={params:{comparison:">=",limit:0}};null===a?a=[e]:a.push(e),l++}}else{const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}var k=c===l;if(u=u||k,!u){const t=l;if(l===t)if(e&&"object"==typeof e&&!Array.isArray(e))for(const t in e){const n=l;if("number"!=typeof e[t]){const e={params:{type:"number"}};null===a?a=[e]:a.push(e),l++}if(n!==l)break}else{const e={params:{type:"object"}};null===a?a=[e]:a.push(e),l++}k=t===l,u=u||k}if(u)l=f,null!==a&&(f?a.length=f:a=null);else{const e={params:{}};null===a?a=[e]:a.push(e),l++}if(i===l&&(o=!0,s=0),!o){const e={params:{passingSchemas:s}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p){if(void 0!==t.name){let e=t.name;const n=l,r=l;let o=!1;const s=l;if(!1!==e){const e={params:{}};null===a?a=[e]:a.push(e),l++}var j=s===l;if(o=o||j,!o){const t=l;if("string"!=typeof e){const e={params:{type:"string"}};null===a?a=[e]:a.push(e),l++}if(j=t===l,o=o||j,!o){const t=l;if(!(e instanceof Function)){const e={params:{}};null===a?a=[e]:a.push(e),l++}j=t===l,o=o||j}}if(!o){const e={params:{}};return null===a?a=[e]:a.push(e),l++,De.errors=a,!1}l=r,null!==a&&(r?a.length=r:a=null),p=n===l}else p=!0;if(p)if(void 0!==t.usedExports){const e=l;if("boolean"!=typeof t.usedExports)return De.errors=[{params:{type:"boolean"}}],!1;p=e===l}else p=!0}}}}}}}}}}}}}}}}}}}}return De.errors=a,0===l}function Oe(e,{instancePath:t="",parentData:r,parentDataProperty:o,rootData:s=e}={}){let i=null,a=0;if(0===a){if(!e||"object"!=typeof e||Array.isArray(e))return Oe.errors=[{params:{type:"object"}}],!1;{const r=a;for(const t in e)if(!n.call(ge.properties,t))return Oe.errors=[{params:{additionalProperty:t}}],!1;if(r===a){if(void 0!==e.avoidEntryIife){const t=a;if("boolean"!=typeof e.avoidEntryIife)return Oe.errors=[{params:{type:"boolean"}}],!1;var l=t===a}else l=!0;if(l){if(void 0!==e.checkWasmTypes){const t=a;if("boolean"!=typeof e.checkWasmTypes)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.chunkIds){let t=e.chunkIds;const n=a;if("natural"!==t&&"named"!==t&&"deterministic"!==t&&"size"!==t&&"total-size"!==t&&!1!==t)return Oe.errors=[{params:{}}],!1;l=n===a}else l=!0;if(l){if(void 0!==e.concatenateModules){const t=a;if("boolean"!=typeof e.concatenateModules)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.emitOnErrors){const t=a;if("boolean"!=typeof e.emitOnErrors)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.flagIncludedChunks){const t=a;if("boolean"!=typeof e.flagIncludedChunks)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.innerGraph){const t=a;if("boolean"!=typeof e.innerGraph)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.mangleExports){let t=e.mangleExports;const n=a,r=a;let o=!1;const s=a;if("size"!==t&&"deterministic"!==t){const e={params:{}};null===i?i=[e]:i.push(e),a++}var p=s===a;if(o=o||p,!o){const e=a;if("boolean"!=typeof t){const e={params:{type:"boolean"}};null===i?i=[e]:i.push(e),a++}p=e===a,o=o||p}if(!o){const e={params:{}};return null===i?i=[e]:i.push(e),a++,Oe.errors=i,!1}a=r,null!==i&&(r?i.length=r:i=null),l=n===a}else l=!0;if(l){if(void 0!==e.mangleWasmImports){const t=a;if("boolean"!=typeof e.mangleWasmImports)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.mergeDuplicateChunks){const t=a;if("boolean"!=typeof e.mergeDuplicateChunks)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.minimize){const t=a;if("boolean"!=typeof e.minimize)return Oe.errors=[{params:{type:"boolean"}}],!1;l=t===a}else l=!0;if(l){if(void 0!==e.minimizer){let t=e.minimizer;const n=a;if(a===n){if(!Array.isArray(t))return Oe.errors=[{params:{type:"array"}}],!1;{const e=t.length;for(let n=0;n=",limit:1}}],!1}u=n===f}else u=!0;if(u){if(void 0!==t.hashFunction){let e=t.hashFunction;const n=f,r=f;let o=!1;const s=f;if(f===s)if("string"==typeof e){if(e.length<1){const e={params:{}};null===l?l=[e]:l.push(e),f++}}else{const e={params:{type:"string"}};null===l?l=[e]:l.push(e),f++}var v=s===f;if(o=o||v,!o){const t=f;if(!(e instanceof Function)){const e={params:{}};null===l?l=[e]:l.push(e),f++}v=t===f,o=o||v}if(!o){const e={params:{}};return null===l?l=[e]:l.push(e),f++,ze.errors=l,!1}f=r,null!==l&&(r?l.length=r:l=null),u=n===f}else u=!0;if(u){if(void 0!==t.hashSalt){let e=t.hashSalt;const n=f;if(f==f){if("string"!=typeof e)return ze.errors=[{params:{type:"string"}}],!1;if(e.length<1)return ze.errors=[{params:{}}],!1}u=n===f}else u=!0;if(u){if(void 0!==t.hotUpdateChunkFilename){let n=t.hotUpdateChunkFilename;const r=f;if(f==f){if("string"!=typeof n)return ze.errors=[{params:{type:"string"}}],!1;if(n.includes("!")||!1!==e.test(n))return ze.errors=[{params:{}}],!1}u=r===f}else u=!0;if(u){if(void 0!==t.hotUpdateGlobal){const e=f;if("string"!=typeof t.hotUpdateGlobal)return ze.errors=[{params:{type:"string"}}],!1;u=e===f}else u=!0;if(u){if(void 0!==t.hotUpdateMainFilename){let n=t.hotUpdateMainFilename;const r=f;if(f==f){if("string"!=typeof n)return ze.errors=[{params:{type:"string"}}],!1;if(n.includes("!")||!1!==e.test(n))return ze.errors=[{params:{}}],!1}u=r===f}else u=!0;if(u){if(void 0!==t.ignoreBrowserWarnings){const e=f;if("boolean"!=typeof t.ignoreBrowserWarnings)return ze.errors=[{params:{type:"boolean"}}],!1;u=e===f}else u=!0;if(u){if(void 0!==t.iife){const e=f;if("boolean"!=typeof t.iife)return ze.errors=[{params:{type:"boolean"}}],!1;u=e===f}else u=!0;if(u){if(void 0!==t.importFunctionName){const e=f;if("string"!=typeof t.importFunctionName)return ze.errors=[{params:{type:"string"}}],!1;u=e===f}else u=!0;if(u){if(void 0!==t.importMetaName){const e=f;if("string"!=typeof t.importMetaName)return ze.errors=[{params:{type:"string"}}],!1;u=e===f}else u=!0;if(u){if(void 0!==t.library){const e=f;Le(t.library,{instancePath:r+"/library",parentData:t,parentDataProperty:"library",rootData:i})||(l=null===l?Le.errors:l.concat(Le.errors),f=l.length),u=e===f}else u=!0;if(u){if(void 0!==t.libraryExport){let e=t.libraryExport;const n=f,r=f;let o=!1,s=null;const i=f,a=f;let p=!1;const c=f;if(f===c)if(Array.isArray(e)){const t=e.length;for(let n=0;n=",limit:1}}],!1}c=t===f}else c=!0;if(c){if(void 0!==r.performance){const e=f;Me(r.performance,{instancePath:o+"/performance",parentData:r,parentDataProperty:"performance",rootData:l})||(p=null===p?Me.errors:p.concat(Me.errors),f=p.length),c=e===f}else c=!0;if(c){if(void 0!==r.plugins){const e=f;we(r.plugins,{instancePath:o+"/plugins",parentData:r,parentDataProperty:"plugins",rootData:l})||(p=null===p?we.errors:p.concat(we.errors),f=p.length),c=e===f}else c=!0;if(c){if(void 0!==r.profile){const e=f;if("boolean"!=typeof r.profile)return _e.errors=[{params:{type:"boolean"}}],!1;c=e===f}else c=!0;if(c){if(void 0!==r.recordsInputPath){let t=r.recordsInputPath;const n=f,o=f;let s=!1;const i=f;if(!1!==t){const e={params:{}};null===p?p=[e]:p.push(e),f++}var v=i===f;if(s=s||v,!s){const n=f;if(f===n)if("string"==typeof t){if(t.includes("!")||!0!==e.test(t)){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}v=n===f,s=s||v}if(!s){const e={params:{}};return null===p?p=[e]:p.push(e),f++,_e.errors=p,!1}f=o,null!==p&&(o?p.length=o:p=null),c=n===f}else c=!0;if(c){if(void 0!==r.recordsOutputPath){let t=r.recordsOutputPath;const n=f,o=f;let s=!1;const i=f;if(!1!==t){const e={params:{}};null===p?p=[e]:p.push(e),f++}var P=i===f;if(s=s||P,!s){const n=f;if(f===n)if("string"==typeof t){if(t.includes("!")||!0!==e.test(t)){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}P=n===f,s=s||P}if(!s){const e={params:{}};return null===p?p=[e]:p.push(e),f++,_e.errors=p,!1}f=o,null!==p&&(o?p.length=o:p=null),c=n===f}else c=!0;if(c){if(void 0!==r.recordsPath){let t=r.recordsPath;const n=f,o=f;let s=!1;const i=f;if(!1!==t){const e={params:{}};null===p?p=[e]:p.push(e),f++}var D=i===f;if(s=s||D,!s){const n=f;if(f===n)if("string"==typeof t){if(t.includes("!")||!0!==e.test(t)){const e={params:{}};null===p?p=[e]:p.push(e),f++}}else{const e={params:{type:"string"}};null===p?p=[e]:p.push(e),f++}D=n===f,s=s||D}if(!s){const e={params:{}};return null===p?p=[e]:p.push(e),f++,_e.errors=p,!1}f=o,null!==p&&(o?p.length=o:p=null),c=n===f}else c=!0;if(c){if(void 0!==r.resolve){const e=f;Te(r.resolve,{instancePath:o+"/resolve",parentData:r,parentDataProperty:"resolve",rootData:l})||(p=null===p?Te.errors:p.concat(Te.errors),f=p.length),c=e===f}else c=!0;if(c){if(void 0!==r.resolveLoader){const e=f;Ne(r.resolveLoader,{instancePath:o+"/resolveLoader",parentData:r,parentDataProperty:"resolveLoader",rootData:l})||(p=null===p?Ne.errors:p.concat(Ne.errors),f=p.length),c=e===f}else c=!0;if(c){if(void 0!==r.snapshot){let t=r.snapshot;const n=f;if(f==f){if(!t||"object"!=typeof t||Array.isArray(t))return _e.errors=[{params:{type:"object"}}],!1;{const n=f;for(const e in t)if("buildDependencies"!==e&&"immutablePaths"!==e&&"managedPaths"!==e&&"module"!==e&&"resolve"!==e&&"resolveBuildDependencies"!==e&&"unmanagedPaths"!==e)return _e.errors=[{params:{additionalProperty:e}}],!1;if(n===f){if(void 0!==t.buildDependencies){let e=t.buildDependencies;const n=f;if(f===n){if(!e||"object"!=typeof e||Array.isArray(e))return _e.errors=[{params:{type:"object"}}],!1;{const t=f;for(const t in e)if("hash"!==t&&"timestamp"!==t)return _e.errors=[{params:{additionalProperty:t}}],!1;if(t===f){if(void 0!==e.hash){const t=f;if("boolean"!=typeof e.hash)return _e.errors=[{params:{type:"boolean"}}],!1;var O=t===f}else O=!0;if(O)if(void 0!==e.timestamp){const t=f;if("boolean"!=typeof e.timestamp)return _e.errors=[{params:{type:"boolean"}}],!1;O=t===f}else O=!0}}}var C=n===f}else C=!0;if(C){if(void 0!==t.immutablePaths){let n=t.immutablePaths;const r=f;if(f===r){if(!Array.isArray(n))return _e.errors=[{params:{type:"array"}}],!1;{const t=n.length;for(let r=0;r void) => void) | ((compiler: import('../lib/Compiler')) => Promise))" + "tsType": "(((compiler: import('../lib/Compiler'), callback: (err: Error | null, api?: import(\"../lib/hmr/LazyCompilationPlugin\").BackendApi) => void) => void) | ((compiler: import('../lib/Compiler')) => Promise))" }, { "$ref": "#/definitions/LazyCompilationDefaultBackendOptions" @@ -2579,6 +2580,10 @@ "type": "object", "additionalProperties": false, "properties": { + "avoidEntryIife": { + "description": "Avoid wrapping the entry module in an IIFE.", + "type": "boolean" + }, "checkWasmTypes": { "description": "Check for incompatible wasm types when importing/exporting from/to ESM.", "type": "boolean" @@ -3656,7 +3661,13 @@ "workerWasmLoading": { "$ref": "#/definitions/WasmLoading" } - } + }, + "required": [ + "environment", + "enabledChunkLoadingTypes", + "enabledLibraryTypes", + "enabledWasmLoadingTypes" + ] }, "Parallelism": { "description": "The number of parallel processed modules in the compilation.", diff --git a/node_modules/webpack/schemas/plugins/container/ContainerReferencePlugin.check.js b/node_modules/webpack/schemas/plugins/container/ContainerReferencePlugin.check.js index ff4e605..7762f19 100644 --- a/node_modules/webpack/schemas/plugins/container/ContainerReferencePlugin.check.js +++ b/node_modules/webpack/schemas/plugins/container/ContainerReferencePlugin.check.js @@ -3,4 +3,4 @@ * DO NOT MODIFY BY HAND. * Run `yarn special-lint-fix` to update */ -"use strict";function r(t,{instancePath:e="",parentData:a,parentDataProperty:n,rootData:o=t}={}){if(!Array.isArray(t))return r.errors=[{params:{type:"array"}}],!1;{const e=t.length;for(let a=0;a { ): void; embedInRuntimeBailout( module: Module, - renderContext: RenderContext, + renderContext: RenderContextJavascriptModulesPlugin, libraryContext: LibraryContext ): undefined | string; strictRuntimeBailout( - renderContext: RenderContext, + renderContext: RenderContextJavascriptModulesPlugin, libraryContext: LibraryContext ): undefined | string; runtimeRequirements( @@ -152,7 +156,7 @@ declare class AbstractLibraryPlugin { ): void; render( source: Source, - renderContext: RenderContext, + renderContext: RenderContextJavascriptModulesPlugin, libraryContext: LibraryContext ): Source; renderStartup( @@ -219,6 +223,7 @@ declare interface AggressiveSplittingPluginOptions { */ minSize?: number; } +type Algorithm = string | typeof Hash; type Alias = string | false | string[]; declare interface AliasOption { alias: Alias; @@ -230,13 +235,13 @@ declare interface AliasOptions { [index: string]: AliasOptionNewRequest; } declare interface Argument { - description: string; - simpleType: "string" | "number" | "boolean"; + description?: string; + simpleType: SimpleType; multiple: boolean; configs: ArgumentConfig[]; } declare interface ArgumentConfig { - description: string; + description?: string; negatedDescription?: string; path: string; multiple: boolean; @@ -272,6 +277,9 @@ declare interface Asset { */ info: AssetInfo; } +declare interface AssetDependencyMeta { + sourceType: "css-url"; +} declare interface AssetEmittedInfo { content: Buffer; source: Source; @@ -380,18 +388,18 @@ declare class AsyncDependenciesBlock extends DependenciesBlock { constructor( groupOptions: | null - | (RawChunkGroupOptions & { name?: string } & { + | (RawChunkGroupOptions & { name?: null | string } & { entryOptions?: EntryOptions; }), loc?: null | SyntheticDependencyLocation | RealDependencyLocation, request?: null | string ); - groupOptions: RawChunkGroupOptions & { name?: string } & { + groupOptions: RawChunkGroupOptions & { name?: null | string } & { entryOptions?: EntryOptions; }; loc?: null | SyntheticDependencyLocation | RealDependencyLocation; request?: null | string; - chunkName?: string; + chunkName?: null | string; module: any; } declare abstract class AsyncQueue { @@ -400,8 +408,12 @@ declare abstract class AsyncQueue { added: SyncHook<[T]>; beforeStart: AsyncSeriesHook<[T]>; started: SyncHook<[T]>; - result: SyncHook<[T, Error, R]>; + result: SyncHook< + [T, undefined | null | WebpackError, undefined | null | R] + >; }; + getContext(): string; + setContext(value: string): void; add(item: T, callback: CallbackAsyncQueue): void; invalidate(item: T): void; @@ -450,8 +462,8 @@ declare class AutomaticPrefetchPlugin { } type AuxiliaryComment = string | LibraryCustomUmdCommentObject; declare interface BackendApi { - dispose: (arg0?: Error) => void; - module: (arg0: Module) => { client: string; data: string; active: boolean }; + dispose: (arg0: (arg0?: null | Error) => void) => void; + module: (arg0: Module) => ModuleResult; } declare class BannerPlugin { constructor(options: BannerPluginArgument); @@ -549,6 +561,11 @@ declare abstract class BasicEvaluatedExpression { getMembersOptionals?: () => boolean[]; getMemberRanges?: () => [number, number][]; expression?: + | Program + | ImportDeclarationImport + | ExportNamedDeclarationImport + | ExportAllDeclarationImport + | ImportExpressionImport | UnaryExpression | ArrayExpression | ArrowFunctionExpression @@ -562,7 +579,6 @@ declare abstract class BasicEvaluatedExpression { | ConditionalExpression | FunctionExpression | Identifier - | ImportExpression | SimpleLiteral | RegExpLiteral | BigIntLiteral @@ -576,10 +592,11 @@ declare abstract class BasicEvaluatedExpression { | ThisExpression | UpdateExpression | YieldExpression + | SpreadElement + | PrivateIdentifier | FunctionDeclaration | VariableDeclaration | ClassDeclaration - | PrivateIdentifier | ExpressionStatement | BlockStatement | StaticBlock @@ -599,29 +616,24 @@ declare abstract class BasicEvaluatedExpression { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration | ExportDefaultDeclaration - | ExportAllDeclaration | MethodDefinition | PropertyDefinition | VariableDeclarator - | Program | SwitchCase | CatchClause | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern - | SpreadElement | Property + | Super | AssignmentProperty | ClassBody | ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ExportSpecifier - | Super | TemplateElement; isUnknown(): boolean; isNull(): boolean; @@ -772,6 +784,11 @@ declare abstract class BasicEvaluatedExpression { */ setExpression( expression?: + | Program + | ImportDeclarationImport + | ExportNamedDeclarationImport + | ExportAllDeclarationImport + | ImportExpressionImport | UnaryExpression | ArrayExpression | ArrowFunctionExpression @@ -785,7 +802,6 @@ declare abstract class BasicEvaluatedExpression { | ConditionalExpression | FunctionExpression | Identifier - | ImportExpression | SimpleLiteral | RegExpLiteral | BigIntLiteral @@ -799,10 +815,11 @@ declare abstract class BasicEvaluatedExpression { | ThisExpression | UpdateExpression | YieldExpression + | SpreadElement + | PrivateIdentifier | FunctionDeclaration | VariableDeclaration | ClassDeclaration - | PrivateIdentifier | ExpressionStatement | BlockStatement | StaticBlock @@ -822,32 +839,34 @@ declare abstract class BasicEvaluatedExpression { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration | ExportDefaultDeclaration - | ExportAllDeclaration | MethodDefinition | PropertyDefinition | VariableDeclarator - | Program | SwitchCase | CatchClause | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern - | SpreadElement | Property + | Super | AssignmentProperty | ClassBody | ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ExportSpecifier - | Super | TemplateElement ): BasicEvaluatedExpression; } +declare interface Bootstrap { + header: string[]; + beforeStartup: string[]; + startup: string[]; + afterStartup: string[]; + allowInlineStartup: boolean; +} type BufferEncoding = | "ascii" | "utf8" @@ -996,7 +1015,7 @@ declare interface CallExpressionInfo { getMemberRanges: () => [number, number][]; } declare interface CallbackAsyncQueue { - (err?: null | WebpackError, result?: T): any; + (err?: null | WebpackError, result?: null | T): any; } declare interface CallbackCacheCache { (err: null | WebpackError, result?: T): void; @@ -1092,6 +1111,12 @@ declare class Chunk { includeDirectChildren?: boolean, filterFn?: (c: Chunk, chunkGraph: ChunkGraph) => boolean ): Record>; + hasChildByOrder( + chunkGraph: ChunkGraph, + type: string, + includeDirectChildren?: boolean, + filterFn?: (c: Chunk, chunkGraph: ChunkGraph) => boolean + ): boolean; } declare class ChunkGraph { constructor(moduleGraph: ModuleGraph, hashFunction?: string | typeof Hash); @@ -1130,8 +1155,8 @@ declare class ChunkGraph { module: Module, sourceTypes: Set ): void; - getChunkModuleSourceTypes(chunk: Chunk, module: Module): Set; - getModuleSourceTypes(module: Module): Set; + getChunkModuleSourceTypes(chunk: Chunk, module: Module): ReadonlySet; + getModuleSourceTypes(module: Module): ReadonlySet; getOrderedChunkModulesIterable( chunk: Chunk, comparator: (arg0: Module, arg1: Module) => 0 | 1 | -1 @@ -1183,7 +1208,7 @@ declare class ChunkGraph { connectChunkAndEntryModule( chunk: Chunk, module: Module, - entrypoint?: Entrypoint + entrypoint: Entrypoint ): void; connectChunkAndRuntimeModule(chunk: Chunk, module: RuntimeModule): void; addFullHashModuleToChunk(chunk: Chunk, module: RuntimeModule): void; @@ -1217,7 +1242,7 @@ declare class ChunkGraph { chunkGroup: ChunkGroup ): void; disconnectChunkGroup(chunkGroup: ChunkGroup): void; - getModuleId(module: Module): ModuleId; + getModuleId(module: Module): null | string | number; setModuleId(module: Module, id: ModuleId): void; getRuntimeId(runtime: string): string | number; setRuntimeId(runtime: string, id: string | number): void; @@ -1285,7 +1310,7 @@ declare abstract class ChunkGroup { * returns the name of current ChunkGroup * sets a new name for current ChunkGroup */ - name?: string; + name?: null | string; /** * get a uniqueId for ChunkGroup, made up of its member Chunk debugId's @@ -1332,7 +1357,11 @@ declare abstract class ChunkGroup { hasBlock(block: AsyncDependenciesBlock): boolean; get blocksIterable(): Iterable; addBlock(block: AsyncDependenciesBlock): boolean; - addOrigin(module: Module, loc: DependencyLocation, request: string): void; + addOrigin( + module: null | Module, + loc: DependencyLocation, + request: string + ): void; getFiles(): string[]; remove(): void; sortItems(): void; @@ -1370,7 +1399,7 @@ declare abstract class ChunkGroup { getModuleIndex: (module: Module) => undefined | number; getModuleIndex2: (module: Module) => undefined | number; } -type ChunkGroupOptions = RawChunkGroupOptions & { name?: string }; +type ChunkGroupOptions = RawChunkGroupOptions & { name?: null | string }; declare interface ChunkHashContext { /** * results of code generation @@ -1444,7 +1473,38 @@ declare class ChunkPrefetchPreloadPlugin { constructor(); apply(compiler: Compiler): void; } -declare interface ChunkRenderContext { +declare interface ChunkRenderContextCssModulesPlugin { + /** + * the chunk + */ + chunk: Chunk; + + /** + * the chunk graph + */ + chunkGraph: ChunkGraph; + + /** + * results of code generation + */ + codeGenerationResults: CodeGenerationResults; + + /** + * the runtime template + */ + runtimeTemplate: RuntimeTemplate; + + /** + * meta data for runtime + */ + metaData: string[]; + + /** + * undo path to css file + */ + undoPath: string; +} +declare interface ChunkRenderContextJavascriptModulesPlugin { /** * the chunk */ @@ -1478,12 +1538,12 @@ declare interface ChunkRenderContext { /** * init fragments for the chunk */ - chunkInitFragments: InitFragment[]; + chunkInitFragments: InitFragment[]; /** * rendering in strict context */ - strictMode: boolean; + strictMode?: boolean; } declare interface ChunkSizeOptions { /** @@ -1498,12 +1558,65 @@ declare interface ChunkSizeOptions { } declare abstract class ChunkTemplate { hooks: Readonly<{ - renderManifest: { tap: (options?: any, fn?: any) => void }; - modules: { tap: (options?: any, fn?: any) => void }; - render: { tap: (options?: any, fn?: any) => void }; - renderWithEntry: { tap: (options?: any, fn?: any) => void }; - hash: { tap: (options?: any, fn?: any) => void }; - hashForChunk: { tap: (options?: any, fn?: any) => void }; + renderManifest: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: ( + arg0: RenderManifestEntry[], + arg1: RenderManifestOptions + ) => RenderManifestEntry[] + ) => void; + }; + modules: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: ( + arg0: Source, + arg1: ModuleTemplate, + arg2: RenderContextJavascriptModulesPlugin + ) => Source + ) => void; + }; + render: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: ( + arg0: Source, + arg1: ModuleTemplate, + arg2: RenderContextJavascriptModulesPlugin + ) => Source + ) => void; + }; + renderWithEntry: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: (arg0: Source, arg1: Chunk) => Source + ) => void; + }; + hash: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: (arg0: Hash) => void + ) => void; + }; + hashForChunk: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: (arg0: Hash, arg1: Chunk, arg2: ChunkHashContext) => void + ) => void; + }; }>; get outputOptions(): Output; } @@ -1547,7 +1660,7 @@ declare interface CleanPluginCompilationHooks { /** * when returning true the file/directory will be kept during cleaning, returning false will clean it and ignore the following plugins and config */ - keep: SyncBailHook<[string], boolean>; + keep: SyncBailHook<[string], boolean | void>; } declare interface CodeGenerationContext { /** @@ -1609,7 +1722,7 @@ declare interface CodeGenerationResult { /** * the runtime requirements */ - runtimeRequirements: ReadonlySet; + runtimeRequirements: null | ReadonlySet; /** * a hash of the code generation result (will be automatically calculated from sources and runtimeRequirements if not provided) @@ -1624,7 +1737,7 @@ declare abstract class CodeGenerationResults { getRuntimeRequirements( module: Module, runtime: RuntimeSpec - ): ReadonlySet; + ): null | ReadonlySet; getData(module: Module, runtime: RuntimeSpec, key: string): any; getHash(module: Module, runtime: RuntimeSpec): any; add(module: Module, runtime: RuntimeSpec, result: CodeGenerationResult): void; @@ -1711,10 +1824,10 @@ declare class Compilation { * inspect, analyze, and/or modify the chunk graph. */ afterChunks: SyncHook<[Iterable]>; - optimizeDependencies: SyncBailHook<[Iterable], any>; + optimizeDependencies: SyncBailHook<[Iterable], boolean | void>; afterOptimizeDependencies: SyncHook<[Iterable]>; optimize: SyncHook<[]>; - optimizeModules: SyncBailHook<[Iterable], any>; + optimizeModules: SyncBailHook<[Iterable], boolean | void>; afterOptimizeModules: SyncHook<[Iterable]>; optimizeChunks: SyncBailHook< [Iterable, ChunkGroup[]], @@ -1728,7 +1841,7 @@ declare class Compilation { void >; afterOptimizeChunkModules: SyncHook<[Iterable, Iterable]>; - shouldRecord: SyncBailHook<[], undefined | boolean>; + shouldRecord: SyncBailHook<[], boolean | void>; additionalChunkRuntimeRequirements: SyncHook< [Chunk, Set, RuntimeRequirementsContext] >; @@ -1739,13 +1852,13 @@ declare class Compilation { [Module, Set, RuntimeRequirementsContext] >; runtimeRequirementInModule: HookMap< - SyncBailHook<[Module, Set, RuntimeRequirementsContext], any> + SyncBailHook<[Module, Set, RuntimeRequirementsContext], void> >; additionalTreeRuntimeRequirements: SyncHook< [Chunk, Set, RuntimeRequirementsContext] >; runtimeRequirementInTree: HookMap< - SyncBailHook<[Chunk, Set, RuntimeRequirementsContext], any> + SyncBailHook<[Chunk, Set, RuntimeRequirementsContext], void> >; runtimeModule: SyncHook<[RuntimeModule, Chunk]>; reviveModules: SyncHook<[Iterable, any]>; @@ -1773,7 +1886,7 @@ declare class Compilation { recordHash: SyncHook<[any]>; record: SyncHook<[Compilation, any]>; beforeModuleAssets: SyncHook<[]>; - shouldGenerateChunkAssets: SyncBailHook<[], boolean>; + shouldGenerateChunkAssets: SyncBailHook<[], boolean | void>; beforeChunkAssets: SyncHook<[]>; additionalChunkAssets: FakeHook< Pick< @@ -1807,7 +1920,7 @@ declare class Compilation { >; afterProcessAssets: SyncHook<[CompilationAssets]>; processAdditionalAssets: AsyncSeriesHook<[CompilationAssets]>; - needAdditionalSeal: SyncBailHook<[], undefined | boolean>; + needAdditionalSeal: SyncBailHook<[], boolean | void>; afterSeal: AsyncSeriesHook<[]>; renderManifest: SyncWaterfallHook< [RenderManifestEntry[], RenderManifestOptions] @@ -1817,9 +1930,9 @@ declare class Compilation { moduleAsset: SyncHook<[Module, string]>; chunkAsset: SyncHook<[Chunk, string]>; assetPath: SyncWaterfallHook<[string, object, undefined | AssetInfo]>; - needAdditionalPass: SyncBailHook<[], boolean>; + needAdditionalPass: SyncBailHook<[], boolean | void>; childCompiler: SyncHook<[Compiler, string, number]>; - log: SyncBailHook<[string, LogEntry], true>; + log: SyncBailHook<[string, LogEntry], boolean | void>; processWarnings: SyncWaterfallHook<[WebpackError[]]>; processErrors: SyncWaterfallHook<[WebpackError[]]>; statsPreset: HookMap< @@ -1830,7 +1943,9 @@ declare class Compilation { >; statsFactory: SyncHook<[StatsFactory, NormalizedStatsOptions]>; statsPrinter: SyncHook<[StatsPrinter, NormalizedStatsOptions]>; - get normalModuleLoader(): SyncHook<[object, NormalModule]>; + get normalModuleLoader(): SyncHook< + [LoaderContextNormalModule, NormalModule] + >; }>; name?: string; startTime?: number; @@ -1892,7 +2007,7 @@ declare class Compilation { logging: Map; dependencyFactories: Map; dependencyTemplates: DependencyTemplates; - childrenCounters: object; + childrenCounters: Record; usedChunkIds: Set; usedModuleIds: Set; needAdditionalPass: boolean; @@ -1917,7 +2032,7 @@ declare class Compilation { getLogger(name: string | (() => string)): WebpackLogger; addModule( module: Module, - callback: (err?: null | WebpackError, result?: Module) => void + callback: (err?: null | WebpackError, result?: null | Module) => void ): void; /** @@ -1935,21 +2050,21 @@ declare class Compilation { */ buildModule( module: Module, - callback: (err?: null | WebpackError, result?: Module) => void + callback: (err?: null | WebpackError, result?: null | Module) => void ): void; processModuleDependencies( module: Module, - callback: (err?: null | WebpackError, result?: Module) => void + callback: (err?: null | WebpackError, result?: null | Module) => void ): void; processModuleDependenciesNonRecursive(module: Module): void; handleModuleCreation( __0: HandleModuleCreationOptions, - callback: (err?: null | WebpackError, result?: Module) => void + callback: (err?: null | WebpackError, result?: null | Module) => void ): void; addModuleChain( context: string, dependency: Dependency, - callback: (err?: null | WebpackError, result?: Module) => void + callback: (err?: null | WebpackError, result?: null | Module) => void ): void; addModuleTree( __0: { @@ -1966,23 +2081,23 @@ declare class Compilation { */ contextInfo?: Partial; }, - callback: (err?: null | WebpackError, result?: Module) => void + callback: (err?: null | WebpackError, result?: null | Module) => void ): void; addEntry( context: string, entry: Dependency, optionsOrName: string | EntryOptions, - callback: (err?: null | WebpackError, result?: Module) => void + callback: (err?: null | WebpackError, result?: null | Module) => void ): void; addInclude( context: string, dependency: Dependency, options: EntryOptions, - callback: (err?: null | WebpackError, result?: Module) => void + callback: (err?: null | WebpackError, result?: null | Module) => void ): void; rebuildModule( module: Module, - callback: (err?: null | WebpackError, result?: Module) => void + callback: (err?: null | WebpackError, result?: null | Module) => void ): void; finish(callback: (err?: null | WebpackError) => void): void; unseal(): void; @@ -2079,22 +2194,16 @@ declare class Compilation { createModuleAssets(): void; getRenderManifest(options: RenderManifestOptions): RenderManifestEntry[]; createChunkAssets(callback: (err?: null | WebpackError) => void): void; - getPath( - filename: string | ((arg0: PathData, arg1?: AssetInfo) => string), - data?: PathData - ): string; + getPath(filename: TemplatePath, data?: PathData): string; getPathWithInfo( - filename: string | ((arg0: PathData, arg1?: AssetInfo) => string), + filename: TemplatePath, data?: PathData - ): { path: string; info: AssetInfo }; - getAssetPath( - filename: string | ((arg0: PathData, arg1?: AssetInfo) => string), - data: PathData - ): string; + ): InterpolatedPathAndAssetInfo; + getAssetPath(filename: TemplatePath, data: PathData): string; getAssetPathWithInfo( - filename: string | ((arg0: PathData, arg1?: AssetInfo) => string), + filename: TemplatePath, data: PathData - ): { path: string; info: AssetInfo }; + ): InterpolatedPathAndAssetInfo; getWarnings(): WebpackError[]; getErrors(): WebpackError[]; @@ -2105,7 +2214,7 @@ declare class Compilation { */ createChildCompiler( name: string, - outputOptions?: OutputNormalized, + outputOptions?: Partial, plugins?: ( | ((this: Compiler, compiler: Compiler) => void) | WebpackPluginInstance @@ -2114,13 +2223,13 @@ declare class Compilation { executeModule( module: Module, options: ExecuteModuleOptions, - callback: (err?: null | WebpackError, result?: ExecuteModuleResult) => void + callback: (err: null | WebpackError, result?: ExecuteModuleResult) => void ): void; checkConstraints(): void; factorizeModule: { ( options: FactorizeModuleOptions & { factoryResult?: false }, - callback: (err?: null | WebpackError, result?: Module) => void + callback: (err?: null | WebpackError, result?: null | Module) => void ): void; ( options: FactorizeModuleOptions & { factoryResult: true }, @@ -2220,29 +2329,56 @@ declare interface CompilationHooksAsyncWebAssemblyModulesPlugin { [Source, Module, WebAssemblyRenderContext] >; } -declare interface CompilationHooksJavascriptModulesPlugin { - renderModuleContent: SyncWaterfallHook<[Source, Module, ChunkRenderContext]>; - renderModuleContainer: SyncWaterfallHook< - [Source, Module, ChunkRenderContext] +declare interface CompilationHooksCssModulesPlugin { + renderModulePackage: SyncWaterfallHook< + [Source, Module, ChunkRenderContextCssModulesPlugin] >; - renderModulePackage: SyncWaterfallHook<[Source, Module, ChunkRenderContext]>; - renderChunk: SyncWaterfallHook<[Source, RenderContext]>; - renderMain: SyncWaterfallHook<[Source, RenderContext]>; - renderContent: SyncWaterfallHook<[Source, RenderContext]>; - render: SyncWaterfallHook<[Source, RenderContext]>; + chunkHash: SyncHook<[Chunk, Hash, ChunkHashContext]>; +} +declare interface CompilationHooksJavascriptModulesPlugin { + renderModuleContent: SyncWaterfallHook< + [Source, Module, ChunkRenderContextJavascriptModulesPlugin] + >; + renderModuleContainer: SyncWaterfallHook< + [Source, Module, ChunkRenderContextJavascriptModulesPlugin] + >; + renderModulePackage: SyncWaterfallHook< + [Source, Module, ChunkRenderContextJavascriptModulesPlugin] + >; + renderChunk: SyncWaterfallHook< + [Source, RenderContextJavascriptModulesPlugin] + >; + renderMain: SyncWaterfallHook<[Source, RenderContextJavascriptModulesPlugin]>; + renderContent: SyncWaterfallHook< + [Source, RenderContextJavascriptModulesPlugin] + >; + render: SyncWaterfallHook<[Source, RenderContextJavascriptModulesPlugin]>; renderStartup: SyncWaterfallHook<[Source, Module, StartupRenderContext]>; renderRequire: SyncWaterfallHook<[string, RenderBootstrapContext]>; inlineInRuntimeBailout: SyncBailHook< [Module, RenderBootstrapContext], - string + string | void + >; + embedInRuntimeBailout: SyncBailHook< + [Module, RenderContextJavascriptModulesPlugin], + string | void + >; + strictRuntimeBailout: SyncBailHook< + [RenderContextJavascriptModulesPlugin], + string | void >; - embedInRuntimeBailout: SyncBailHook<[Module, RenderContext], string | void>; - strictRuntimeBailout: SyncBailHook<[RenderContext], string | void>; chunkHash: SyncHook<[Chunk, Hash, ChunkHashContext]>; - useSourceMap: SyncBailHook<[Chunk, RenderContext], boolean>; + useSourceMap: SyncBailHook< + [Chunk, RenderContextJavascriptModulesPlugin], + boolean | void + >; +} +declare interface CompilationHooksModuleFederationPlugin { + addContainerEntryDependency: SyncHook; + addFederationRuntimeDependency: SyncHook; } declare interface CompilationHooksRealContentHashPlugin { - updateHash: SyncBailHook<[Buffer[], string], string>; + updateHash: SyncBailHook<[Buffer[], string], string | void>; } declare interface CompilationParams { normalModuleFactory: NormalModuleFactory; @@ -2252,7 +2388,7 @@ declare class Compiler { constructor(context: string, options?: WebpackOptionsNormalized); hooks: Readonly<{ initialize: SyncHook<[]>; - shouldEmit: SyncBailHook<[Compilation], undefined | boolean>; + shouldEmit: SyncBailHook<[Compilation], boolean | void>; done: AsyncSeriesHook<[Stats]>; afterDone: SyncHook<[Stats]>; additionalPass: AsyncSeriesHook<[]>; @@ -2277,12 +2413,15 @@ declare class Compiler { invalid: SyncHook<[null | string, number]>; watchClose: SyncHook<[]>; shutdown: AsyncSeriesHook<[]>; - infrastructureLog: SyncBailHook<[string, string, any[]], true>; + infrastructureLog: SyncBailHook< + [string, string, undefined | any[]], + true | void + >; environment: SyncHook<[]>; afterEnvironment: SyncHook<[]>; afterPlugins: SyncHook<[Compiler]>; afterResolvers: SyncHook<[Compiler]>; - entryOption: SyncBailHook<[string, EntryNormalized], boolean>; + entryOption: SyncBailHook<[string, EntryNormalized], boolean | void>; }>; webpack: typeof exports; name?: string; @@ -2309,20 +2448,17 @@ declare class Compiler { >; fsStartTime?: number; resolverFactory: ResolverFactory; - infrastructureLogger?: (arg0: string, arg1: LogTypeEnum, arg2: any[]) => void; + infrastructureLogger?: ( + arg0: string, + arg1: LogTypeEnum, + arg2?: any[] + ) => void; platform: Readonly; options: WebpackOptionsNormalized; context: string; requestShortener: RequestShortener; cache: Cache; - moduleMemCaches?: Map< - Module, - { - buildInfo: BuildInfo; - references?: WeakMap; - memCache: WeakTupleMap; - } - >; + moduleMemCaches?: Map; compilerPath: string; running: boolean; idle: boolean; @@ -2349,7 +2485,7 @@ declare class Compiler { compilation: Compilation, compilerName: string, compilerIndex: number, - outputOptions?: OutputNormalized, + outputOptions?: Partial, plugins?: WebpackPluginInstance[] ): Compiler; isChild(): boolean; @@ -2371,19 +2507,27 @@ declare class ConcatSource extends Source { addAllSkipOptimizing(items: Source[]): void; } declare interface ConcatenatedModuleInfo { - index: number; + type: "concatenated"; module: Module; - - /** - * mapping from export name to symbol - */ - exportMap: Map; - - /** - * mapping from export name to symbol - */ - rawExportMap: Map; + index: number; + ast?: Program; + internalSource?: Source; + source?: ReplaceSource; + chunkInitFragments?: InitFragment[]; + runtimeRequirements?: ReadonlySet; + globalScope?: Scope; + moduleScope?: Scope; + internalNames: Map; + exportMap?: Map; + rawExportMap?: Map; namespaceExportSymbol?: string; + namespaceObjectName?: string; + interopNamespaceObjectUsed: boolean; + interopNamespaceObjectName?: string; + interopNamespaceObject2Used: boolean; + interopNamespaceObject2Name?: string; + interopDefaultAccessUsed: boolean; + interopDefaultAccessName?: string; } declare interface ConcatenationBailoutReasonContext { /** @@ -2515,6 +2659,7 @@ declare interface Configuration { | "jsonp" | "system" | "promise" + | "module-import" | "script" | "node-commonjs"; @@ -2768,9 +2913,7 @@ declare interface ConsumesConfig { declare interface ConsumesObject { [index: string]: string | ConsumesConfig; } -type ContainerOptionsFormat = - | Record - | (string | Record)[]; +type ContainerOptionsFormat = Item | (string | Item)[]; declare class ContainerPlugin { constructor(options: ContainerPluginOptions); @@ -2834,8 +2977,12 @@ declare interface ContainerReferencePluginOptions { */ shareScope?: string; } +declare interface ContextAlternativeRequest { + context: string; + request: string; +} declare abstract class ContextElementDependency extends ModuleDependency { - referencedExports?: string[][]; + referencedExports?: null | string[][]; } declare class ContextExclusionPlugin { constructor(negativeMatcher: RegExp); @@ -2871,12 +3018,12 @@ declare abstract class ContextModuleFactory extends ModuleFactory { contextModuleFiles: SyncWaterfallHook<[string[]]>; alternatives: FakeHook< Pick< - AsyncSeriesWaterfallHook<[any[]]>, + AsyncSeriesWaterfallHook<[ContextAlternativeRequest[]]>, "name" | "tap" | "tapAsync" | "tapPromise" > >; alternativeRequests: AsyncSeriesWaterfallHook< - [any[], ContextModuleOptions] + [ContextAlternativeRequest[], ContextModuleOptions] >; }>; resolverFactory: ResolverFactory; @@ -2884,7 +3031,7 @@ declare abstract class ContextModuleFactory extends ModuleFactory { fs: InputFileSystem, options: ContextModuleOptions, callback: ( - err?: null | Error, + err: null | Error, dependencies?: ContextElementDependency[] ) => any ): void; @@ -2896,9 +3043,9 @@ declare interface ContextModuleOptions { regExp: RegExp; namespaceObject?: boolean | "strict"; addon?: string; - chunkName?: string; - include?: RegExp; - exclude?: RegExp; + chunkName?: null | string; + include?: null | RegExp; + exclude?: null | RegExp; groupOptions?: RawChunkGroupOptions; typePrefix?: string; category?: string; @@ -2919,14 +3066,14 @@ declare class ContextReplacementPlugin { resourceRegExp: RegExp, newContentResource?: any, newContentRecursive?: any, - newContentRegExp?: any + newContentRegExp?: RegExp ); resourceRegExp: RegExp; newContentCallback: any; newContentResource: any; newContentCreateContextMap: any; newContentRecursive: any; - newContentRegExp: any; + newContentRegExp?: RegExp; /** * Apply the plugin @@ -2940,8 +3087,8 @@ declare interface ContextTimestampAndHash { resolved?: ResolvedContextTimestampAndHash; symlinks?: Set; } -type CreateStatsOptionsContext = KnownCreateStatsOptionsContext & - Record; +type CreateStatsOptionsContext = Record & + KnownCreateStatsOptionsContext; type CreateWriteStreamFSImplementation = FSImplementation & { write: (...args: any[]) => any; close?: (...args: any[]) => any; @@ -3048,6 +3195,44 @@ declare interface CssImportDependencyMeta { supports?: string; media?: string; } +type CssLayer = undefined | string; +declare class CssLoadingRuntimeModule extends RuntimeModule { + constructor(runtimeRequirements: ReadonlySet); + static getCompilationHooks( + compilation: Compilation + ): CssLoadingRuntimeModulePluginHooks; + + /** + * Runtime modules without any dependencies to other runtime modules + */ + static STAGE_NORMAL: number; + + /** + * Runtime modules with simple dependencies on other runtime modules + */ + static STAGE_BASIC: number; + + /** + * Runtime modules which attach to handlers of other runtime modules + */ + static STAGE_ATTACH: number; + + /** + * Runtime modules which trigger actions on bootstrap + */ + static STAGE_TRIGGER: number; +} +declare interface CssLoadingRuntimeModulePluginHooks { + createStylesheet: SyncWaterfallHook<[string, Chunk]>; + linkPreload: SyncWaterfallHook<[string, Chunk]>; + linkPrefetch: SyncWaterfallHook<[string, Chunk]>; +} +declare abstract class CssModule extends NormalModule { + cssLayer: CssLayer; + supports: Supports; + media: Media; + inheritance: [CssLayer, Supports, Media][]; +} /** * Generator options for css/module modules. @@ -3089,6 +3274,41 @@ declare interface CssModuleParserOptions { */ namedExports?: boolean; } +declare class CssModulesPlugin { + constructor(); + + /** + * Apply the plugin + */ + apply(compiler: Compiler): void; + getModulesInOrder( + chunk: Chunk, + modules: Iterable, + compilation: Compilation + ): Module[]; + getOrderedChunkCssModules( + chunk: Chunk, + chunkGraph: ChunkGraph, + compilation: Compilation + ): Module[]; + renderModule( + module: CssModule, + renderContext: ChunkRenderContextCssModulesPlugin, + hooks: CompilationHooksCssModulesPlugin + ): Source; + renderChunk( + __0: RenderContextCssModulesPlugin, + hooks: CompilationHooksCssModulesPlugin + ): Source; + static getCompilationHooks( + compilation: Compilation + ): CompilationHooksCssModulesPlugin; + static getChunkFilenameTemplate( + chunk: Chunk, + outputOptions: OutputNormalized + ): TemplatePath; + static chunkHasCss(chunk: Chunk, chunkGraph: ChunkGraph): boolean; +} /** * Parser options for css modules. @@ -3115,14 +3335,14 @@ declare class DefinePlugin { fn: (arg0: { module: NormalModule; key: string; - readonly version?: string; + readonly version: ValueCacheVersion; }) => CodeValuePrimitive, options?: true | string[] | RuntimeValueOptions ): RuntimeValue; } declare class DelegatedPlugin { - constructor(options?: any); - options: any; + constructor(options: Options); + options: Options; /** * Apply the plugin @@ -3619,6 +3839,9 @@ declare interface Effect { type: string; value: any; } +declare interface EffectData { + [index: string]: any; +} declare class ElectronTargetPlugin { constructor(context?: "main" | "preload" | "renderer"); @@ -3859,8 +4082,7 @@ type EntryOptions = { name?: string } & Omit< >; declare class EntryPlugin { /** - * An entry plugin which will handle - * creation of the EntryDependency + * An entry plugin which will handle creation of the EntryDependency */ constructor(context: string, entry: string, options?: string | EntryOptions); context: string; @@ -3982,9 +4204,9 @@ declare interface Environment { templateLiteral?: boolean; } declare class EnvironmentPlugin { - constructor(...keys: any[]); - keys: any[]; - defaultValues: any; + constructor(...keys: (string | string[] | Record)[]); + keys: string[]; + defaultValues: Record; /** * Apply the plugin @@ -4036,7 +4258,7 @@ declare class EvalSourceMapDevToolPlugin { } declare interface ExecuteModuleArgument { module: Module; - moduleObject?: { id: string; exports: any; loaded: boolean }; + moduleObject?: ModuleObject; preparedInfo: any; codeGenerationResult: CodeGenerationResult; } @@ -4145,6 +4367,9 @@ declare interface ExperimentsNormalizedExtra { */ lazyCompilation?: false | LazyCompilationOptions; } +type ExportAllDeclarationJavascriptParser = ExportAllDeclarationImport & { + attributes?: ImportAttribute[]; +}; declare abstract class ExportInfo { name: string; @@ -4190,7 +4415,7 @@ declare abstract class ExportInfo { setTarget( key: any, connection: ModuleGraphConnection, - exportName?: string[], + exportName?: null | string[], priority?: number ): boolean; getUsed(runtime: RuntimeSpec): UsageStateType; @@ -4210,42 +4435,30 @@ declare abstract class ExportInfo { setUsedName(name: string): void; getTerminalBinding( moduleGraph: ModuleGraph, - resolveTargetFilter?: (arg0: { - module: Module; - export?: string[]; - }) => boolean + resolveTargetFilter?: (arg0: TargetItem) => boolean ): undefined | ExportsInfo | ExportInfo; isReexport(): undefined | boolean; findTarget( moduleGraph: ModuleGraph, validTargetModuleFilter: (arg0: Module) => boolean - ): undefined | false | { module: Module; export?: string[] }; + ): undefined | null | false | TargetItemWithoutConnection; getTarget( moduleGraph: ModuleGraph, - resolveTargetFilter?: (arg0: { - module: Module; - export?: string[]; - }) => boolean - ): undefined | { module: Module; export?: string[] }; + resolveTargetFilter?: (arg0: TargetItem) => boolean + ): undefined | TargetItem; /** * Move the target forward as long resolveTargetFilter is fulfilled */ moveTarget( moduleGraph: ModuleGraph, - resolveTargetFilter: (arg0: { - module: Module; - export?: string[]; - }) => boolean, - updateOriginalConnection?: (arg0: { - module: Module; - export?: string[]; - }) => ModuleGraphConnection - ): undefined | { module: Module; export?: string[] }; - createNestedExportsInfo(): undefined | ExportsInfo; + resolveTargetFilter: (arg0: TargetItem) => boolean, + updateOriginalConnection?: (arg0: TargetItem) => ModuleGraphConnection + ): undefined | TargetItem; + createNestedExportsInfo(): ExportsInfo; getNestedExportsInfo(): undefined | ExportsInfo; - hasInfo(baseInfo?: any, runtime?: any): boolean; - updateHash(hash?: any, runtime?: any): void; + hasInfo(baseInfo: ExportInfo, runtime: RuntimeSpec): boolean; + updateHash(hash: Hash, runtime: RuntimeSpec): void; getUsedInfo(): string; getProvidedInfo(): | "no provided info" @@ -4254,6 +4467,9 @@ declare abstract class ExportInfo { | "not provided"; getRenameInfo(): string; } +type ExportNamedDeclarationJavascriptParser = ExportNamedDeclarationImport & { + attributes?: ImportAttribute[]; +}; declare interface ExportSpec { /** * the name of the export @@ -4330,12 +4546,9 @@ declare abstract class ExportsInfo { getUsageKey(runtime: RuntimeSpec): string; isEquallyUsed(runtimeA: RuntimeSpec, runtimeB: RuntimeSpec): boolean; getUsed(name: string | string[], runtime: RuntimeSpec): UsageStateType; - getUsedName( - name: undefined | string | string[], - runtime: RuntimeSpec - ): string | false | string[]; + getUsedName(name: string | string[], runtime: RuntimeSpec): UsedName; updateHash(hash: Hash, runtime: RuntimeSpec): void; - getRestoreProvidedData(): any; + getRestoreProvidedData(): RestoreProvidedData; restoreProvided(__0: { otherProvided: any; otherCanMangleProvide: any; @@ -4357,7 +4570,7 @@ declare interface ExportsSpec { /** * list of maybe prior exposed, but now hidden exports */ - hideExports?: Set; + hideExports?: null | Set; /** * when reexported: from which module @@ -4408,6 +4621,7 @@ declare interface ExposesObject { [index: string]: string | ExposesConfig | string[]; } type Expression = + | ImportExpressionImport | UnaryExpression | ArrayExpression | ArrowFunctionExpression @@ -4421,7 +4635,6 @@ type Expression = | ConditionalExpression | FunctionExpression | Identifier - | ImportExpression | SimpleLiteral | RegExpLiteral | BigIntLiteral @@ -4525,12 +4738,18 @@ declare class ExternalModule extends Module { request: string | string[] | RequestRecord, type: string, userRequest: string, - dependencyMeta?: ImportDependencyMeta | CssImportDependencyMeta + dependencyMeta?: + | ImportDependencyMeta + | CssImportDependencyMeta + | AssetDependencyMeta ); request: string | string[] | Record; externalType: string; userRequest: string; - dependencyMeta?: ImportDependencyMeta | CssImportDependencyMeta; + dependencyMeta?: + | ImportDependencyMeta + | CssImportDependencyMeta + | AssetDependencyMeta; /** * restore unsafe cache data @@ -4541,8 +4760,17 @@ declare class ExternalModule extends Module { ): void; } declare interface ExternalModuleInfo { - index: number; + type: "external"; module: Module; + runtimeCondition?: string | boolean | SortableSet; + index: number; + name?: string; + interopNamespaceObjectUsed: boolean; + interopNamespaceObjectName?: string; + interopNamespaceObject2Used: boolean; + interopNamespaceObject2Name?: string; + interopDefaultAccessUsed: boolean; + interopDefaultAccessName?: string; } type Externals = | string @@ -4632,6 +4860,7 @@ type ExternalsType = | "jsonp" | "system" | "promise" + | "module-import" | "script" | "node-commonjs"; declare interface FSImplementation { @@ -4639,7 +4868,7 @@ declare interface FSImplementation { close?: (...args: any[]) => any; } declare interface FactorizeModuleOptions { - currentProfile: ModuleProfile; + currentProfile?: ModuleProfile; factory: ModuleFactory; dependencies: Dependency[]; @@ -4809,16 +5038,12 @@ declare interface FileSystem { declare abstract class FileSystemInfo { fs: InputFileSystem; logger?: WebpackLogger; - fileTimestampQueue: AsyncQueue; - fileHashQueue: AsyncQueue; - contextTimestampQueue: AsyncQueue< - string, - string, - null | ContextFileSystemInfoEntry - >; - contextHashQueue: AsyncQueue; - contextTshQueue: AsyncQueue; - managedItemQueue: AsyncQueue; + fileTimestampQueue: AsyncQueue; + fileHashQueue: AsyncQueue; + contextTimestampQueue: AsyncQueue; + contextHashQueue: AsyncQueue; + contextTshQueue: AsyncQueue; + managedItemQueue: AsyncQueue; managedItemDirectoryQueue: AsyncQueue>; unmanagedPathsWithSlash: string[]; unmanagedPathsRegExps: RegExp[]; @@ -4864,7 +5089,7 @@ declare abstract class FileSystemInfo { path: string, callback: ( arg0?: null | WebpackError, - arg1?: ResolvedContextTimestampAndHash + arg1?: null | ResolvedContextTimestampAndHash ) => void ): void; resolveBuildDependencies( @@ -4885,7 +5110,7 @@ declare abstract class FileSystemInfo { directories: null | Iterable, missing: null | Iterable, options: undefined | null | SnapshotOptionsFileSystemInfo, - callback: (arg0?: null | WebpackError, arg1?: null | Snapshot) => void + callback: (arg0: null | WebpackError, arg1: null | Snapshot) => void ): void; mergeSnapshots(snapshot1: Snapshot, snapshot2: Snapshot): Snapshot; checkSnapshotValid( @@ -4900,6 +5125,9 @@ declare interface FileSystemInfoEntry { timestamp?: number; } type FilterItemTypes = string | RegExp | ((value: string) => boolean); +declare interface Flags { + [index: string]: Argument; +} declare interface GenerateContext { /** * mapping from dependencies to templates @@ -4953,9 +5181,9 @@ declare interface GenerateContext { } declare class Generator { constructor(); - getTypes(module: NormalModule): Set; + getTypes(module: NormalModule): ReadonlySet; getSize(module: NormalModule, type?: string): number; - generate(module: NormalModule, __1: GenerateContext): Source; + generate(module: NormalModule, __1: GenerateContext): null | Source; getConcatenationBailoutReason( module: NormalModule, context: ConcatenationBailoutReasonContext @@ -5042,14 +5270,14 @@ declare class GetChunkFilenameRuntimeModule extends RuntimeModule { global: string, getFilenameForChunk: ( arg0: Chunk - ) => string | ((arg0: PathData, arg1?: AssetInfo) => string), + ) => string | false | ((arg0: PathData, arg1?: AssetInfo) => string), allChunks: boolean ); contentType: string; global: string; getFilenameForChunk: ( arg0: Chunk - ) => string | ((arg0: PathData, arg1?: AssetInfo) => string); + ) => string | false | ((arg0: PathData, arg1?: AssetInfo) => string); allChunks: boolean; /** @@ -5073,7 +5301,7 @@ declare class GetChunkFilenameRuntimeModule extends RuntimeModule { static STAGE_TRIGGER: number; } declare interface GroupConfig { - getKeys: (arg0?: any) => string[]; + getKeys: (arg0?: any) => undefined | string[]; createGroup: (arg0: string, arg1: any[], arg2: any[]) => object; getOptions?: (arg0: string, arg1: any[]) => GroupOptions; } @@ -5083,8 +5311,43 @@ declare interface GroupOptions { targetGroupCount?: number; } declare interface HMRJavascriptParserHooks { - hotAcceptCallback: SyncBailHook<[any, string[]], void>; - hotAcceptWithoutCallback: SyncBailHook<[any, string[]], void>; + hotAcceptCallback: SyncBailHook< + [ + ( + | ImportExpressionImport + | UnaryExpression + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AwaitExpression + | BinaryExpression + | SimpleCallExpression + | NewExpression + | ChainExpression + | ClassExpression + | ConditionalExpression + | FunctionExpression + | Identifier + | SimpleLiteral + | RegExpLiteral + | BigIntLiteral + | LogicalExpression + | MemberExpression + | MetaProperty + | ObjectExpression + | SequenceExpression + | TaggedTemplateExpression + | TemplateLiteral + | ThisExpression + | UpdateExpression + | YieldExpression + | SpreadElement + ), + string[] + ], + void + >; + hotAcceptWithoutCallback: SyncBailHook<[CallExpression, string[]], void>; } declare interface HandleModuleCreationOptions { factory: ModuleFactory; @@ -5157,6 +5420,7 @@ declare class Hash { */ digest(encoding?: string): string | Buffer; } +type HashFunction = string | typeof Hash; declare interface HashableObject { updateHash: (arg0: Hash) => void; } @@ -5319,8 +5583,7 @@ declare class IgnorePlugin { options: IgnorePluginOptions; /** - * Note that if "contextRegExp" is given, both the "resourceRegExp" - * and "contextRegExp" have to match. + * Note that if "contextRegExp" is given, both the "resourceRegExp" and "contextRegExp" have to match. */ checkIgnore(resolveData: ResolveData): undefined | false; @@ -5346,10 +5609,50 @@ type IgnorePluginOptions = */ checkResource: (resource: string, context: string) => boolean; }; +type ImportAttribute = BaseNode & { + type: "ImportAttribute"; + key: Identifier | SimpleLiteral | RegExpLiteral | BigIntLiteral; + value: Literal; +}; type ImportAttributes = Record & {}; +type ImportDeclarationJavascriptParser = ImportDeclarationImport & { + attributes?: ImportAttribute[]; +}; declare interface ImportDependencyMeta { attributes?: ImportAttributes; + externalType?: "import" | "module"; } +type ImportExpressionJavascriptParser = ImportExpressionImport & { + options?: + | null + | ImportExpressionImport + | UnaryExpression + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AwaitExpression + | BinaryExpression + | SimpleCallExpression + | NewExpression + | ChainExpression + | ClassExpression + | ConditionalExpression + | FunctionExpression + | Identifier + | SimpleLiteral + | RegExpLiteral + | BigIntLiteral + | LogicalExpression + | MemberExpression + | MetaProperty + | ObjectExpression + | SequenceExpression + | TaggedTemplateExpression + | TemplateLiteral + | ThisExpression + | UpdateExpression + | YieldExpression; +}; declare interface ImportModuleOptions { /** * the target layer @@ -5505,6 +5808,13 @@ declare interface IntermediateFileSystemExtras { ) => void; } type InternalCell = T | typeof TOMBSTONE | typeof UNDEFINED_MARKER; +declare interface InterpolatedPathAndAssetInfo { + path: string; + info: AssetInfo; +} +declare interface Item { + [index: string]: string | string[] | T; +} declare abstract class ItemCacheFacade { get(callback: CallbackCacheCacheFacade): void; getPromise(): Promise; @@ -5526,12 +5836,12 @@ declare class JavascriptModulesPlugin { apply(compiler: Compiler): void; renderModule( module: Module, - renderContext: ChunkRenderContext, + renderContext: ChunkRenderContextJavascriptModulesPlugin, hooks: CompilationHooksJavascriptModulesPlugin, factory: boolean - ): Source; + ): null | Source; renderChunk( - renderContext: RenderContext, + renderContext: RenderContextJavascriptModulesPlugin, hooks: CompilationHooksJavascriptModulesPlugin ): Source; renderMain( @@ -5547,33 +5857,27 @@ declare class JavascriptModulesPlugin { renderBootstrap( renderContext: RenderBootstrapContext, hooks: CompilationHooksJavascriptModulesPlugin - ): { - header: string[]; - beforeStartup: string[]; - startup: string[]; - afterStartup: string[]; - allowInlineStartup: boolean; - }; + ): Bootstrap; renderRequire( renderContext: RenderBootstrapContext, hooks: CompilationHooksJavascriptModulesPlugin ): string; - renameInlineModule( + getRenamedInlineModule( allModules: Module[], renderContext: MainRenderContext, inlinedModules: Set, - chunkRenderContext: ChunkRenderContext, - hooks: CompilationHooksJavascriptModulesPlugin - ): Map; - findNewName( - oldName: string, - usedName: Set, - extraInfo: string - ): string; + chunkRenderContext: ChunkRenderContextJavascriptModulesPlugin, + hooks: CompilationHooksJavascriptModulesPlugin, + allStrict: undefined | boolean, + hasChunkModules: boolean + ): false | Map; static getCompilationHooks( compilation: Compilation ): CompilationHooksJavascriptModulesPlugin; - static getChunkFilenameTemplate(chunk?: any, outputOptions?: any): any; + static getChunkFilenameTemplate( + chunk: Chunk, + outputOptions: Output + ): TemplatePath; static chunkHasJs: (chunk: Chunk, chunkGraph: ChunkGraph) => boolean; } declare class JavascriptParser extends Parser { @@ -5586,7 +5890,40 @@ declare class JavascriptParser extends Parser { > >; evaluate: HookMap< - SyncBailHook<[Expression], undefined | null | BasicEvaluatedExpression> + SyncBailHook< + [ + | ImportExpressionImport + | UnaryExpression + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AwaitExpression + | BinaryExpression + | SimpleCallExpression + | NewExpression + | ChainExpression + | ClassExpression + | ConditionalExpression + | FunctionExpression + | Identifier + | SimpleLiteral + | RegExpLiteral + | BigIntLiteral + | LogicalExpression + | MemberExpression + | MetaProperty + | ObjectExpression + | SequenceExpression + | TaggedTemplateExpression + | TemplateLiteral + | ThisExpression + | UpdateExpression + | YieldExpression + | SpreadElement + | PrivateIdentifier + ], + undefined | null | BasicEvaluatedExpression + > >; evaluateIdentifier: HookMap< SyncBailHook< @@ -5619,6 +5956,7 @@ declare class JavascriptParser extends Parser { SyncBailHook< [ ( + | ImportExpressionImport | UnaryExpression | ArrayExpression | ArrowFunctionExpression @@ -5632,7 +5970,6 @@ declare class JavascriptParser extends Parser { | ConditionalExpression | FunctionExpression | Identifier - | ImportExpression | SimpleLiteral | RegExpLiteral | BigIntLiteral @@ -5646,10 +5983,10 @@ declare class JavascriptParser extends Parser { | ThisExpression | UpdateExpression | YieldExpression + | PrivateIdentifier | FunctionDeclaration | VariableDeclaration | ClassDeclaration - | PrivateIdentifier ), number ], @@ -5658,6 +5995,9 @@ declare class JavascriptParser extends Parser { >; preStatement: SyncBailHook< [ + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser | FunctionDeclaration | VariableDeclaration | ClassDeclaration @@ -5680,15 +6020,15 @@ declare class JavascriptParser extends Parser { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration | ExportDefaultDeclaration - | ExportAllDeclaration ], boolean | void >; blockPreStatement: SyncBailHook< [ + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser | FunctionDeclaration | VariableDeclaration | ClassDeclaration @@ -5711,15 +6051,15 @@ declare class JavascriptParser extends Parser { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration | ExportDefaultDeclaration - | ExportAllDeclaration ], boolean | void >; statement: SyncBailHook< [ + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser | FunctionDeclaration | VariableDeclaration | ClassDeclaration @@ -5742,10 +6082,7 @@ declare class JavascriptParser extends Parser { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration | ExportDefaultDeclaration - | ExportAllDeclaration ], boolean | void >; @@ -5770,25 +6107,34 @@ declare class JavascriptParser extends Parser { boolean | void >; label: HookMap>; - import: SyncBailHook<[ImportDeclaration, ImportSource], boolean | void>; + import: SyncBailHook< + [ImportDeclarationJavascriptParser, ImportSource], + boolean | void + >; importSpecifier: SyncBailHook< - [ImportDeclaration, ImportSource, string, string], + [ImportDeclarationJavascriptParser, ImportSource, null | string, string], boolean | void >; export: SyncBailHook< - [ExportNamedDeclaration | ExportDefaultDeclaration], + [ExportNamedDeclarationJavascriptParser | ExportDefaultDeclaration], boolean | void >; exportImport: SyncBailHook< - [ExportNamedDeclaration | ExportAllDeclaration, ImportSource], + [ + ( + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser + ), + ImportSource + ], boolean | void >; exportDeclaration: SyncBailHook< [ ( - | ExportNamedDeclaration + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser | ExportDefaultDeclaration - | ExportAllDeclaration ), Declaration ], @@ -5801,9 +6147,9 @@ declare class JavascriptParser extends Parser { exportSpecifier: SyncBailHook< [ ( - | ExportNamedDeclaration + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser | ExportDefaultDeclaration - | ExportAllDeclaration ), string, string, @@ -5813,10 +6159,13 @@ declare class JavascriptParser extends Parser { >; exportImportSpecifier: SyncBailHook< [ - ExportNamedDeclaration | ExportAllDeclaration, + ( + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser + ), ImportSource, - string, - string, + null | string, + null | string, undefined | number ], boolean | void @@ -5838,9 +6187,13 @@ declare class JavascriptParser extends Parser { SyncBailHook<[AssignmentExpression, string[]], boolean | void> >; typeof: HookMap>; - importCall: SyncBailHook<[ImportExpression], boolean | void>; + importCall: SyncBailHook< + [ImportExpressionJavascriptParser], + boolean | void + >; topLevelAwait: SyncBailHook< [ + | ImportExpressionImport | UnaryExpression | ArrayExpression | ArrowFunctionExpression @@ -5854,7 +6207,6 @@ declare class JavascriptParser extends Parser { | ConditionalExpression | FunctionExpression | Identifier - | ImportExpression | SimpleLiteral | RegExpLiteral | BigIntLiteral @@ -5926,8 +6278,12 @@ declare class JavascriptParser extends Parser { state: ParserState; comments?: Comment[]; semicolons?: Set; - statementPath: StatementPathItem[]; + statementPath?: StatementPathItem[]; prevStatement?: + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser + | ImportExpressionImport | UnaryExpression | ArrayExpression | ArrowFunctionExpression @@ -5941,7 +6297,6 @@ declare class JavascriptParser extends Parser { | ConditionalExpression | FunctionExpression | Identifier - | ImportExpression | SimpleLiteral | RegExpLiteral | BigIntLiteral @@ -5977,10 +6332,7 @@ declare class JavascriptParser extends Parser { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration - | ExportDefaultDeclaration - | ExportAllDeclaration; + | ExportDefaultDeclaration; destructuringAssignmentProperties?: WeakMap< Expression, Set @@ -5991,7 +6343,35 @@ declare class JavascriptParser extends Parser { node: Expression ): undefined | Set; getRenameIdentifier( - expr: Expression + expr: + | ImportExpressionImport + | UnaryExpression + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AwaitExpression + | BinaryExpression + | SimpleCallExpression + | NewExpression + | ChainExpression + | ClassExpression + | ConditionalExpression + | FunctionExpression + | Identifier + | SimpleLiteral + | RegExpLiteral + | BigIntLiteral + | LogicalExpression + | MemberExpression + | MetaProperty + | ObjectExpression + | SequenceExpression + | TaggedTemplateExpression + | TemplateLiteral + | ThisExpression + | UpdateExpression + | YieldExpression + | SpreadElement ): undefined | string | VariableInfoInterface; walkClass(classy: ClassExpression | ClassDeclaration): void; @@ -6000,6 +6380,9 @@ declare class JavascriptParser extends Parser { */ preWalkStatements( statements: ( + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser | FunctionDeclaration | VariableDeclaration | ClassDeclaration @@ -6022,10 +6405,7 @@ declare class JavascriptParser extends Parser { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration | ExportDefaultDeclaration - | ExportAllDeclaration )[] ): void; @@ -6034,6 +6414,9 @@ declare class JavascriptParser extends Parser { */ blockPreWalkStatements( statements: ( + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser | FunctionDeclaration | VariableDeclaration | ClassDeclaration @@ -6056,10 +6439,7 @@ declare class JavascriptParser extends Parser { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration | ExportDefaultDeclaration - | ExportAllDeclaration )[] ): void; @@ -6068,6 +6448,9 @@ declare class JavascriptParser extends Parser { */ walkStatements( statements: ( + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser | FunctionDeclaration | VariableDeclaration | ClassDeclaration @@ -6090,10 +6473,7 @@ declare class JavascriptParser extends Parser { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration | ExportDefaultDeclaration - | ExportAllDeclaration )[] ): void; @@ -6102,6 +6482,9 @@ declare class JavascriptParser extends Parser { */ preWalkStatement( statement: + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser | FunctionDeclaration | VariableDeclaration | ClassDeclaration @@ -6124,13 +6507,13 @@ declare class JavascriptParser extends Parser { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration | ExportDefaultDeclaration - | ExportAllDeclaration ): void; blockPreWalkStatement( statement: + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser | FunctionDeclaration | VariableDeclaration | ClassDeclaration @@ -6153,13 +6536,13 @@ declare class JavascriptParser extends Parser { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration | ExportDefaultDeclaration - | ExportAllDeclaration ): void; walkStatement( statement: + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser | FunctionDeclaration | VariableDeclaration | ClassDeclaration @@ -6182,10 +6565,7 @@ declare class JavascriptParser extends Parser { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration | ExportDefaultDeclaration - | ExportAllDeclaration ): void; /** @@ -6224,13 +6604,24 @@ declare class JavascriptParser extends Parser { walkFunctionDeclaration(statement: FunctionDeclaration): void; blockPreWalkExpressionStatement(statement: ExpressionStatement): void; preWalkAssignmentExpression(expression: AssignmentExpression): void; - blockPreWalkImportDeclaration(statement: ImportDeclaration): void; - enterDeclaration(declaration: Declaration, onIdent?: any): void; - blockPreWalkExportNamedDeclaration(statement: ExportNamedDeclaration): void; - walkExportNamedDeclaration(statement: ExportNamedDeclaration): void; + blockPreWalkImportDeclaration( + statement: ImportDeclarationJavascriptParser + ): void; + enterDeclaration( + declaration: Declaration, + onIdent: (arg0: string, arg1: Identifier) => void + ): void; + blockPreWalkExportNamedDeclaration( + statement: ExportNamedDeclarationJavascriptParser + ): void; + walkExportNamedDeclaration( + statement: ExportNamedDeclarationJavascriptParser + ): void; blockPreWalkExportDefaultDeclaration(statement?: any): void; walkExportDefaultDeclaration(statement: ExportDefaultDeclaration): void; - blockPreWalkExportAllDeclaration(statement: ExportAllDeclaration): void; + blockPreWalkExportAllDeclaration( + statement: ExportAllDeclarationJavascriptParser + ): void; preWalkVariableDeclaration(statement: VariableDeclaration): void; blockPreWalkVariableDeclaration(statement: VariableDeclaration): void; preWalkVariableDeclarator(declarator: VariableDeclarator): void; @@ -6249,6 +6640,7 @@ declare class JavascriptParser extends Parser { walkExpressions( expressions: ( | null + | ImportExpressionImport | UnaryExpression | ArrayExpression | ArrowFunctionExpression @@ -6262,7 +6654,6 @@ declare class JavascriptParser extends Parser { | ConditionalExpression | FunctionExpression | Identifier - | ImportExpression | SimpleLiteral | RegExpLiteral | BigIntLiteral @@ -6303,7 +6694,7 @@ declare class JavascriptParser extends Parser { walkTaggedTemplateExpression(expression: TaggedTemplateExpression): void; walkClassExpression(expression: ClassExpression): void; walkChainExpression(expression: ChainExpression): void; - walkImportExpression(expression: ImportExpression): void; + walkImportExpression(expression: ImportExpressionJavascriptParser): void; walkCallExpression(expression: CallExpression): void; walkMemberExpression(expression: MemberExpression): void; walkMemberExpressionWithExpressionName( @@ -6318,12 +6709,68 @@ declare class JavascriptParser extends Parser { walkMetaProperty(metaProperty: MetaProperty): void; callHooksForExpression( hookMap: HookMap>, - expr: any, + expr: + | ImportExpressionImport + | UnaryExpression + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AwaitExpression + | BinaryExpression + | SimpleCallExpression + | NewExpression + | ChainExpression + | ClassExpression + | ConditionalExpression + | FunctionExpression + | Identifier + | SimpleLiteral + | RegExpLiteral + | BigIntLiteral + | LogicalExpression + | MemberExpression + | MetaProperty + | ObjectExpression + | SequenceExpression + | TaggedTemplateExpression + | TemplateLiteral + | ThisExpression + | UpdateExpression + | YieldExpression + | Super, ...args: AsArray ): undefined | R; callHooksForExpressionWithFallback( hookMap: HookMap>, - expr: MemberExpression, + expr: + | ImportExpressionImport + | UnaryExpression + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AwaitExpression + | BinaryExpression + | SimpleCallExpression + | NewExpression + | ChainExpression + | ClassExpression + | ConditionalExpression + | FunctionExpression + | Identifier + | SimpleLiteral + | RegExpLiteral + | BigIntLiteral + | LogicalExpression + | MemberExpression + | MetaProperty + | ObjectExpression + | SequenceExpression + | TaggedTemplateExpression + | TemplateLiteral + | ThisExpression + | UpdateExpression + | YieldExpression + | Super, fallback: | undefined | (( @@ -6348,7 +6795,7 @@ declare class JavascriptParser extends Parser { hookMap: HookMap>, info: ExportedVariableInfo, fallback: undefined | ((arg0: string) => any), - defined: undefined | (() => any), + defined: undefined | ((arg0?: string) => any), ...args: AsArray ): undefined | R; callHooksForNameWithFallback( @@ -6359,11 +6806,26 @@ declare class JavascriptParser extends Parser { ...args: AsArray ): undefined | R; inScope(params: any, fn: () => void): void; - inClassScope(hasThis: boolean, params: any, fn: () => void): void; - inFunctionScope(hasThis: boolean, params: any, fn: () => void): void; + inClassScope(hasThis: boolean, params: Identifier[], fn: () => void): void; + inFunctionScope( + hasThis: boolean, + params: ( + | string + | Identifier + | MemberExpression + | ObjectPattern + | ArrayPattern + | RestElement + | AssignmentPattern + )[], + fn: () => void + ): void; inBlockScope(fn: () => void): void; detectMode( statements: ( + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser | FunctionDeclaration | VariableDeclaration | ClassDeclaration @@ -6386,10 +6848,7 @@ declare class JavascriptParser extends Parser { | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration | ExportDefaultDeclaration - | ExportAllDeclaration | Directive )[] ): void; @@ -6404,7 +6863,7 @@ declare class JavascriptParser extends Parser { | AssignmentPattern | Property )[], - onIdent?: any + onIdent: (arg0: string) => void ): void; enterPattern( pattern: @@ -6415,21 +6874,31 @@ declare class JavascriptParser extends Parser { | RestElement | AssignmentPattern | Property, - onIdent?: any + onIdent: (arg0: string, arg1: Identifier) => void ): void; - enterIdentifier(pattern: Identifier, onIdent?: any): void; - enterObjectPattern(pattern: ObjectPattern, onIdent?: any): void; - enterArrayPattern(pattern: ArrayPattern, onIdent?: any): void; - enterRestElement(pattern: RestElement, onIdent?: any): void; - enterAssignmentPattern(pattern: AssignmentPattern, onIdent?: any): void; - evaluateExpression(expression?: any): BasicEvaluatedExpression; - parseString(expression: Expression): string; - parseCalculatedString(expression: Expression): any; - evaluate(source: string): BasicEvaluatedExpression; - isPure( - expr: - | undefined - | null + enterIdentifier( + pattern: Identifier, + onIdent: (arg0: string, arg1: Identifier) => void + ): void; + enterObjectPattern( + pattern: ObjectPattern, + onIdent: (arg0: string, arg1: Identifier) => void + ): void; + enterArrayPattern( + pattern: ArrayPattern, + onIdent: (arg0: string, arg1: Identifier) => void + ): void; + enterRestElement( + pattern: RestElement, + onIdent: (arg0: string, arg1: Identifier) => void + ): void; + enterAssignmentPattern( + pattern: AssignmentPattern, + onIdent: (arg0: string, arg1: Identifier) => void + ): void; + evaluateExpression( + expression: + | ImportExpressionImport | UnaryExpression | ArrayExpression | ArrowFunctionExpression @@ -6443,7 +6912,6 @@ declare class JavascriptParser extends Parser { | ConditionalExpression | FunctionExpression | Identifier - | ImportExpression | SimpleLiteral | RegExpLiteral | BigIntLiteral @@ -6457,28 +6925,105 @@ declare class JavascriptParser extends Parser { | ThisExpression | UpdateExpression | YieldExpression - | FunctionDeclaration - | VariableDeclaration - | ClassDeclaration - | PrivateIdentifier, - commentsStartPos: number - ): boolean; - getComments(range: [number, number]): Comment[]; - isAsiPosition(pos: number): boolean; - unsetAsiPosition(pos: number): void; - isStatementLevelExpression(expr: Expression): boolean; - getTagData(name: string, tag?: any): any; - tagVariable(name: string, tag?: any, data?: any): void; - defineVariable(name: string): void; - undefineVariable(name: string): void; - isVariableDefined(name: string): boolean; - getVariableInfo(name: string): ExportedVariableInfo; - setVariable(name: string, variableInfo: ExportedVariableInfo): void; - evaluatedVariable(tagInfo: TagInfo): VariableInfo; - parseCommentOptions(range: [number, number]): any; - extractMemberExpressionChain(expression: MemberExpression): { - members: string[]; - object: + | SpreadElement + | PrivateIdentifier + ): BasicEvaluatedExpression; + parseString(expression: Expression): string; + parseCalculatedString(expression: Expression): { + range?: [number, number]; + value: string; + code: boolean; + conditional: any; + }; + evaluate(source: string): BasicEvaluatedExpression; + isPure( + expr: + | undefined + | null + | ImportExpressionImport + | UnaryExpression + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AwaitExpression + | BinaryExpression + | SimpleCallExpression + | NewExpression + | ChainExpression + | ClassExpression + | ConditionalExpression + | FunctionExpression + | Identifier + | SimpleLiteral + | RegExpLiteral + | BigIntLiteral + | LogicalExpression + | MemberExpression + | MetaProperty + | ObjectExpression + | SequenceExpression + | TaggedTemplateExpression + | TemplateLiteral + | ThisExpression + | UpdateExpression + | YieldExpression + | PrivateIdentifier + | FunctionDeclaration + | VariableDeclaration + | ClassDeclaration, + commentsStartPos: number + ): boolean; + getComments(range: [number, number]): Comment[]; + isAsiPosition(pos: number): boolean; + setAsiPosition(pos: number): void; + unsetAsiPosition(pos: number): void; + isStatementLevelExpression(expr: Expression): boolean; + getTagData(name: string, tag: symbol): any; + tagVariable(name: string, tag: symbol, data?: any): void; + defineVariable(name: string): void; + undefineVariable(name: string): void; + isVariableDefined(name: string): boolean; + getVariableInfo(name: string): ExportedVariableInfo; + setVariable(name: string, variableInfo: ExportedVariableInfo): void; + evaluatedVariable(tagInfo: TagInfo): VariableInfo; + parseCommentOptions(range: [number, number]): { + options: null | Record; + errors: null | (Error & { comment: Comment })[]; + }; + extractMemberExpressionChain( + expression: + | ImportExpressionImport + | UnaryExpression + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AwaitExpression + | BinaryExpression + | SimpleCallExpression + | NewExpression + | ChainExpression + | ClassExpression + | ConditionalExpression + | FunctionExpression + | Identifier + | SimpleLiteral + | RegExpLiteral + | BigIntLiteral + | LogicalExpression + | MemberExpression + | MetaProperty + | ObjectExpression + | SequenceExpression + | TaggedTemplateExpression + | TemplateLiteral + | ThisExpression + | UpdateExpression + | YieldExpression + | Super + ): { + members: string[]; + object: + | ImportExpressionImport | UnaryExpression | ArrayExpression | ArrowFunctionExpression @@ -6492,7 +7037,6 @@ declare class JavascriptParser extends Parser { | ConditionalExpression | FunctionExpression | Identifier - | ImportExpression | SimpleLiteral | RegExpLiteral | BigIntLiteral @@ -6514,7 +7058,35 @@ declare class JavascriptParser extends Parser { varName: string ): undefined | { name: string; info: string | VariableInfo }; getMemberExpressionInfo( - expression: MemberExpression, + expression: + | ImportExpressionImport + | UnaryExpression + | ArrayExpression + | ArrowFunctionExpression + | AssignmentExpression + | AwaitExpression + | BinaryExpression + | SimpleCallExpression + | NewExpression + | ChainExpression + | ClassExpression + | ConditionalExpression + | FunctionExpression + | Identifier + | SimpleLiteral + | RegExpLiteral + | BigIntLiteral + | LogicalExpression + | MemberExpression + | MetaProperty + | ObjectExpression + | SequenceExpression + | TaggedTemplateExpression + | TemplateLiteral + | ThisExpression + | UpdateExpression + | YieldExpression + | Super, allowedTypes: number ): undefined | CallExpressionInfo | ExpressionExpressionInfo; getNameForExpression( @@ -6529,6 +7101,13 @@ declare class JavascriptParser extends Parser { static ALLOWED_MEMBER_TYPES_ALL: 3; static ALLOWED_MEMBER_TYPES_EXPRESSION: 2; static ALLOWED_MEMBER_TYPES_CALL_EXPRESSION: 1; + static getImportAttributes: ( + node: + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser + | ImportExpressionJavascriptParser + ) => undefined | ImportAttributes; } /** @@ -6975,14 +7554,14 @@ declare interface KnownStatsChunk { recorded: boolean; reason?: string; size: number; - sizes?: Record; - names?: string[]; - idHints?: string[]; + sizes: Record; + names: string[]; + idHints: string[]; runtime?: string[]; - files?: string[]; - auxiliaryFiles?: string[]; + files: string[]; + auxiliaryFiles: string[]; hash: string; - childrenByOrder?: Record; + childrenByOrder: Record; id?: string | number; siblings?: (string | number)[]; parents?: (string | number)[]; @@ -6992,7 +7571,7 @@ declare interface KnownStatsChunk { origins?: StatsChunkOrigin[]; } declare interface KnownStatsChunkGroup { - name?: string; + name?: null | string; chunks?: (string | number)[]; assets?: { name: string; size?: number }[]; filteredAssets?: number; @@ -7005,11 +7584,11 @@ declare interface KnownStatsChunkGroup { isOverSizeLimit?: boolean; } declare interface KnownStatsChunkOrigin { - module?: string; - moduleIdentifier?: string; - moduleName?: string; - loc?: string; - request?: string; + module: string; + moduleIdentifier: string; + moduleName: string; + loc: string; + request: string; moduleId?: string | number; } declare interface KnownStatsCompilation { @@ -7054,14 +7633,14 @@ declare interface KnownStatsError { } declare interface KnownStatsFactoryContext { type: string; - makePathsRelative?: (arg0: string) => string; - compilation?: Compilation; - rootModules?: Set; - compilationFileToChunks?: Map; - compilationAuxiliaryFileToChunks?: Map; - runtime?: RuntimeSpec; - cachedGetErrors?: (arg0: Compilation) => WebpackError[]; - cachedGetWarnings?: (arg0: Compilation) => WebpackError[]; + makePathsRelative: (arg0: string) => string; + compilation: Compilation; + rootModules: Set; + compilationFileToChunks: Map; + compilationAuxiliaryFileToChunks: Map; + runtime: RuntimeSpec; + cachedGetErrors: (arg0: Compilation) => WebpackError[]; + cachedGetWarnings: (arg0: Compilation) => WebpackError[]; } declare interface KnownStatsLogging { entries: StatsLoggingEntry[]; @@ -7070,7 +7649,7 @@ declare interface KnownStatsLogging { } declare interface KnownStatsLoggingEntry { type: string; - message: string; + message?: string; trace?: string[]; children?: StatsLoggingEntry[]; args?: any[]; @@ -7079,10 +7658,10 @@ declare interface KnownStatsLoggingEntry { declare interface KnownStatsModule { type?: string; moduleType?: string; - layer?: string; + layer?: null | string; identifier?: string; name?: string; - nameForCondition?: string; + nameForCondition?: null | string; index?: number; preOrderIndex?: number; index2?: number; @@ -7097,45 +7676,45 @@ declare interface KnownStatsModule { optional?: boolean; orphan?: boolean; id?: string | number; - issuerId?: string | number; + issuerId?: null | string | number; chunks?: (string | number)[]; assets?: (string | number)[]; dependent?: boolean; - issuer?: string; - issuerName?: string; + issuer?: null | string; + issuerName?: null | string; issuerPath?: StatsModuleIssuer[]; failed?: boolean; errors?: number; warnings?: number; profile?: StatsProfile; reasons?: StatsModuleReason[]; - usedExports?: boolean | string[]; - providedExports?: string[]; + usedExports?: null | boolean | string[]; + providedExports?: null | string[]; optimizationBailout?: string[]; - depth?: number; + depth?: null | number; modules?: StatsModule[]; filteredModules?: number; source?: string | Buffer; } declare interface KnownStatsModuleIssuer { - identifier?: string; - name?: string; + identifier: string; + name: string; id?: string | number; - profile?: StatsProfile; + profile: StatsProfile; } declare interface KnownStatsModuleReason { - moduleIdentifier?: string; - module?: string; - moduleName?: string; - resolvedModuleIdentifier?: string; - resolvedModule?: string; - type?: string; + moduleIdentifier: null | string; + module: null | string; + moduleName: null | string; + resolvedModuleIdentifier: null | string; + resolvedModule: null | string; + type: null | string; active: boolean; - explanation?: string; - userRequest?: string; - loc?: string; - moduleId?: string | number; - resolvedModuleId?: string | number; + explanation: null | string; + userRequest: null | string; + loc?: null | string; + moduleId?: null | string | number; + resolvedModuleId?: null | string | number; } declare interface KnownStatsModuleTraceDependency { loc?: string; @@ -7149,20 +7728,31 @@ declare interface KnownStatsModuleTraceItem { originId?: string | number; moduleId?: string | number; } -declare interface KnownStatsPrinterContext { - type?: string; - compilation?: StatsCompilation; - chunkGroup?: StatsChunkGroup; - asset?: StatsAsset; - module?: StatsModule; - chunk?: StatsChunk; - moduleReason?: StatsModuleReason; +declare interface KnownStatsPrinterColorFn { bold?: (str: string) => string; yellow?: (str: string) => string; red?: (str: string) => string; green?: (str: string) => string; magenta?: (str: string) => string; cyan?: (str: string) => string; +} +declare interface KnownStatsPrinterContext { + type?: string; + compilation?: StatsCompilation; + chunkGroup?: StatsChunkGroup; + chunkGroupKind?: string; + asset?: StatsAsset; + module?: StatsModule; + chunk?: StatsChunk; + moduleReason?: StatsModuleReason; + moduleIssuer?: StatsModuleIssuer; + error?: StatsError; + profile?: StatsProfile; + logging?: StatsLogging; + moduleTraceItem?: StatsModuleTraceItem; + moduleTraceDependency?: StatsModuleTraceDependency; +} +declare interface KnownStatsPrinterFormaters { formatFilename?: (file: string, oversize?: boolean) => string; formatModuleId?: (id: string) => string; formatChunkId?: ( @@ -7170,10 +7760,11 @@ declare interface KnownStatsPrinterContext { direction?: "parent" | "child" | "sibling" ) => string; formatSize?: (size: number) => string; + formatLayer?: (size: string) => string; formatDateTime?: (dateTime: number) => string; formatFlag?: (flag: string) => string; formatTime?: (time: number, boldQuantity?: boolean) => string; - chunkGroupKind?: string; + formatError?: (message: string) => string; } declare interface KnownStatsProfile { total: number; @@ -7295,7 +7886,7 @@ declare interface LazyCompilationOptions { backend?: | (( compiler: Compiler, - callback: (err?: Error, api?: BackendApi) => void + callback: (err: null | Error, api?: BackendApi) => void ) => void) | ((compiler: Compiler) => Promise) | LazyCompilationDefaultBackendOptions; @@ -7495,7 +8086,7 @@ declare class LibraryTemplatePlugin { } declare class LimitChunkCountPlugin { constructor(options?: LimitChunkCountPluginOptions); - options?: LimitChunkCountPluginOptions; + options: LimitChunkCountPluginOptions; apply(compiler: Compiler): void; } declare interface LimitChunkCountPluginOptions { @@ -7514,6 +8105,7 @@ declare interface LimitChunkCountPluginOptions { */ maxChunks: number; } +type Literal = SimpleLiteral | RegExpLiteral | BigIntLiteral; declare interface LoadScriptCompilationHooks { createScript: SyncWaterfallHook<[string, Chunk]>; } @@ -7550,8 +8142,13 @@ declare class LoadScriptRuntimeModule extends HelperRuntimeModule { declare interface Loader { [index: string]: any; } -type LoaderContext = NormalModuleLoaderContext & - LoaderRunnerLoaderContext & +type LoaderContextDeclarationsIndex = + NormalModuleLoaderContext & + LoaderRunnerLoaderContext & + LoaderPluginLoaderContext & + HotModuleReplacementPluginLoaderContext; +type LoaderContextNormalModule = NormalModuleLoaderContext & + LoaderRunnerLoaderContext & LoaderPluginLoaderContext & HotModuleReplacementPluginLoaderContext; type LoaderDefinition< @@ -7637,14 +8234,14 @@ declare interface LoaderPluginLoaderContext { request: string, callback: ( err: null | Error, - source: string, - sourceMap: any, - module: NormalModule + source?: string | Buffer, + sourceMap?: null | object, + module?: Module ) => void ): void; importModule( request: string, - options: ImportModuleOptions, + options: undefined | ImportModuleOptions, callback: (err?: null | Error, exports?: any) => any ): void; importModule(request: string, options?: ImportModuleOptions): Promise; @@ -7805,7 +8402,7 @@ declare class LoaderTargetPlugin { } declare interface LogEntry { type: string; - args: any[]; + args?: any[]; time: number; trace?: string[]; } @@ -7865,25 +8462,81 @@ declare interface MainRenderContext { /** * rendering in strict context */ - strictMode: boolean; + strictMode?: boolean; } declare abstract class MainTemplate { hooks: Readonly<{ - renderManifest: { tap: (options?: any, fn?: any) => void }; + renderManifest: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: ( + arg0: RenderManifestEntry[], + arg1: RenderManifestOptions + ) => RenderManifestEntry[] + ) => void; + }; modules: { tap: () => never }; moduleObj: { tap: () => never }; - require: { tap: (options?: any, fn?: any) => void }; + require: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: (arg0: string, arg1: RenderBootstrapContext) => string + ) => void; + }; beforeStartup: { tap: () => never }; startup: { tap: () => never }; afterStartup: { tap: () => never }; - render: { tap: (options?: any, fn?: any) => void }; - renderWithEntry: { tap: (options?: any, fn?: any) => void }; - assetPath: { - tap: (options?: any, fn?: any) => void; - call: (filename?: any, options?: any) => string; + render: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: ( + arg0: Source, + arg1: Chunk, + arg2: undefined | string, + arg3: ModuleTemplate, + arg4: DependencyTemplates + ) => Source + ) => void; + }; + renderWithEntry: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: (arg0: Source, arg1: Chunk, arg2?: string) => Source + ) => void; + }; + assetPath: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: (arg0: string, arg1: object, arg2?: AssetInfo) => string + ) => void; + call: (filename: TemplatePath, options: PathData) => string; + }; + hash: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: (arg0: Hash) => void + ) => void; + }; + hashForChunk: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: (arg0: Hash, arg1: Chunk) => void + ) => void; }; - hash: { tap: (options?: any, fn?: any) => void }; - hashForChunk: { tap: (options?: any, fn?: any) => void }; globalHashPaths: { tap: () => void }; globalHash: { tap: () => void }; hotBootstrap: { tap: () => never }; @@ -7898,12 +8551,12 @@ declare abstract class MainTemplate { get linkPreload(): SyncWaterfallHook<[string, Chunk]>; }>; renderCurrentHashCode: (hash: string, length?: number) => string; - getPublicPath: (options: object) => string; - getAssetPath: (path?: any, options?: any) => string; + getPublicPath: (options: PathData) => string; + getAssetPath: (path: TemplatePath, options: PathData) => string; getAssetPathWithInfo: ( - path?: any, - options?: any - ) => { path: string; info: AssetInfo }; + path: TemplatePath, + options: PathData + ) => InterpolatedPathAndAssetInfo; get requireFn(): "__webpack_require__"; get outputOptions(): Output; } @@ -7921,6 +8574,7 @@ declare interface MatchObject { exclude?: string | RegExp | (string | RegExp)[]; } type Matcher = string | RegExp | (string | RegExp)[]; +type Media = undefined | string; /** * Options object for in-memory caching. @@ -8033,7 +8687,7 @@ declare class Module extends DependenciesBlock { buildInfo?: BuildInfo; presentationalDependencies?: Dependency[]; codeGenerationDependencies?: Dependency[]; - id: ModuleId; + id: null | string | number; get hash(): string; get renderedHash(): string; profile?: ModuleProfile; @@ -8109,7 +8763,7 @@ declare class Module extends DependenciesBlock { fs: InputFileSystem, callback: (arg0?: WebpackError) => void ): void; - getSourceTypes(): Set; + getSourceTypes(): ReadonlySet; source( dependencyTemplates: DependencyTemplates, runtimeTemplate: RuntimeTemplate, @@ -8156,9 +8810,34 @@ declare class Module extends DependenciesBlock { get warnings(): any; used: any; } +declare class ModuleChunkLoadingRuntimeModule extends RuntimeModule { + constructor(runtimeRequirements: ReadonlySet); + static getCompilationHooks( + compilation: Compilation + ): JsonpCompilationPluginHooks; + + /** + * Runtime modules without any dependencies to other runtime modules + */ + static STAGE_NORMAL: number; + + /** + * Runtime modules with simple dependencies on other runtime modules + */ + static STAGE_BASIC: number; + + /** + * Runtime modules which attach to handlers of other runtime modules + */ + static STAGE_ATTACH: number; + + /** + * Runtime modules which trigger actions on bootstrap + */ + static STAGE_TRIGGER: number; +} declare class ModuleConcatenationPlugin { - constructor(options?: any); - options: any; + constructor(); /** * Apply the plugin @@ -8214,6 +8893,13 @@ declare class ModuleFederationPlugin { * Apply the plugin */ apply(compiler: Compiler): void; + + /** + * Get the compilation hooks associated with this plugin. + */ + static getCompilationHooks( + compilation: Compilation + ): CompilationHooksModuleFederationPlugin; } declare interface ModuleFederationPluginOptions { /** @@ -8259,6 +8945,7 @@ declare interface ModuleFederationPluginOptions { | "jsonp" | "system" | "promise" + | "module-import" | "script" | "node-commonjs"; @@ -8424,11 +9111,11 @@ declare class ModuleGraphConnection { ): void; addExplanation(explanation: string): void; get explanation(): string; - active: void; isActive(runtime: RuntimeSpec): boolean; isTargetActive(runtime: RuntimeSpec): boolean; getActiveState(runtime: RuntimeSpec): ConnectionState; setActive(value: boolean): void; + active: void; static addConnectionStates: ( a: ConnectionState, b: ConnectionState @@ -8438,6 +9125,16 @@ declare class ModuleGraphConnection { } type ModuleId = string | number; type ModuleInfo = ConcatenatedModuleInfo | ExternalModuleInfo; +declare interface ModuleMemCachesItem { + buildInfo: BuildInfo; + references?: WeakMap; + memCache: WeakTupleMap; +} +declare interface ModuleObject { + id: string; + exports: any; + loaded: boolean; +} /** * Options affecting the normal modules (`NormalModuleFactory`). @@ -8641,6 +9338,11 @@ declare interface ModuleReferenceOptions { */ asiSafe?: boolean; } +declare interface ModuleResult { + client: string; + data: string; + active: boolean; +} declare interface ModuleSettings { /** * Specifies the layer in which the module should be placed in. @@ -8675,13 +9377,68 @@ declare interface ModuleSettings { declare abstract class ModuleTemplate { type: string; hooks: Readonly<{ - content: { tap: (options?: any, fn?: any) => void }; - module: { tap: (options?: any, fn?: any) => void }; - render: { tap: (options?: any, fn?: any) => void }; - package: { tap: (options?: any, fn?: any) => void }; - hash: { tap: (options?: any, fn?: any) => void }; + content: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: ( + arg0: Source, + arg1: Module, + arg2: ChunkRenderContextJavascriptModulesPlugin, + arg3: DependencyTemplates + ) => Source + ) => void; + }; + module: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: ( + arg0: Source, + arg1: Module, + arg2: ChunkRenderContextJavascriptModulesPlugin, + arg3: DependencyTemplates + ) => Source + ) => void; + }; + render: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: ( + arg0: Source, + arg1: Module, + arg2: ChunkRenderContextJavascriptModulesPlugin, + arg3: DependencyTemplates + ) => Source + ) => void; + }; + package: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: ( + arg0: Source, + arg1: Module, + arg2: ChunkRenderContextJavascriptModulesPlugin, + arg3: DependencyTemplates + ) => Source + ) => void; + }; + hash: { + tap: ( + options: + | string + | (TapOptions & { name: string } & IfSet), + fn: (arg0: Hash) => void + ) => void; + }; }>; - get runtimeTemplate(): any; + get runtimeTemplate(): RuntimeTemplate; } declare interface ModuleTemplates { javascript: ModuleTemplate; @@ -8735,8 +9492,8 @@ declare abstract class MultiStats { get hash(): string; hasErrors(): boolean; hasWarnings(): boolean; - toJson(options?: any): StatsCompilation; - toString(options?: any): string; + toJson(options?: string | boolean | StatsOptions): StatsCompilation; + toString(options?: string | boolean | StatsOptions): string; } declare abstract class MultiWatching { watchings: Watching[]; @@ -8907,7 +9664,7 @@ declare class NormalModule extends Module { createSource( context: string, content: string | Buffer, - sourceMap?: string | SourceMapSource, + sourceMap?: null | string | SourceMapSource, associatedObjectForCache?: object ): Source; markModuleAsErrored(error: WebpackError): void; @@ -8916,17 +9673,26 @@ declare class NormalModule extends Module { static getCompilationHooks( compilation: Compilation ): NormalModuleCompilationHooks; - static deserialize(context?: any): NormalModule; + static deserialize(context: ObjectDeserializerContext): any; } declare interface NormalModuleCompilationHooks { - loader: SyncHook<[object, NormalModule]>; - beforeLoaders: SyncHook<[LoaderItem[], NormalModule, object]>; + loader: SyncHook<[LoaderContextNormalModule, NormalModule]>; + beforeLoaders: SyncHook< + [LoaderItem[], NormalModule, LoaderContextNormalModule] + >; beforeParse: SyncHook<[NormalModule]>; beforeSnapshot: SyncHook<[NormalModule]>; readResourceForScheme: HookMap< - AsyncSeriesBailHook<[string, NormalModule], string | Buffer> + FakeHook< + AsyncSeriesBailHook<[string, NormalModule], null | string | Buffer> + > + >; + readResource: HookMap< + AsyncSeriesBailHook< + [LoaderContextNormalModule], + null | string | Buffer + > >; - readResource: HookMap>; needBuild: AsyncSeriesBailHook<[NormalModule, NeedBuildContext], boolean>; } declare interface NormalModuleCreateData { @@ -9029,14 +9795,15 @@ declare abstract class NormalModuleFactory extends ModuleFactory { Module, Partial, ResolveData - ], - Module + ] >; - createParser: HookMap>; + createParser: HookMap>; parser: HookMap>; - createGenerator: HookMap>; + createGenerator: HookMap< + SyncBailHook<[GeneratorOptions], void | Generator> + >; generator: HookMap>; - createModuleClass: HookMap>; + createModuleClass: HookMap>; }>; resolverFactory: ResolverFactory; ruleSet: RuleSet; @@ -9123,6 +9890,10 @@ declare interface NormalModuleLoaderContext { sourceMap?: boolean; mode: "none" | "development" | "production"; webpack?: boolean; + hashFunction: HashFunction; + hashDigest: string; + hashDigestLength: number; + hashSalt: string; _module?: NormalModule; _compilation?: Compilation; _compiler?: Compiler; @@ -9222,6 +9993,9 @@ declare interface ObjectEncodingOptions { | "base64url" | "hex"; } +declare interface ObjectForExtract { + [index: string]: any; +} declare interface ObjectSerializer { serialize: (arg0: any, arg1: ObjectSerializerContext) => void; deserialize: (arg0: ObjectDeserializerContext) => any; @@ -9284,6 +10058,11 @@ declare interface Open { * Enables/Disables integrated optimizations. */ declare interface Optimization { + /** + * Avoid wrapping the entry module in an IIFE. + */ + avoidEntryIife?: boolean; + /** * Check for incompatible wasm types when importing/exporting from/to ESM. */ @@ -9674,11 +10453,50 @@ declare interface OptimizationSplitChunksOptions { */ usedExports?: boolean; } +declare interface Options { + /** + * source + */ + source: string; + + /** + * absolute context path to which lib ident is relative to + */ + context: string; + + /** + * content + */ + content: DllReferencePluginOptionsContent; + + /** + * type + */ + type?: "object" | "require"; + + /** + * extensions + */ + extensions?: string[]; + + /** + * scope + */ + scope?: string; + + /** + * object for caching + */ + associatedObjectForCache?: object; +} declare abstract class OptionsApply { - process(options?: any, compiler?: any): void; + process( + options: WebpackOptionsNormalized, + compiler: Compiler + ): WebpackOptionsNormalized; } declare interface OriginRecord { - module: Module; + module: null | Module; loc: DependencyLocation; request: string; } @@ -10096,22 +10914,22 @@ declare interface OutputNormalized { /** * List of chunk loading types enabled for use by entry points. */ - enabledChunkLoadingTypes?: string[]; + enabledChunkLoadingTypes: string[]; /** * List of library types enabled for use by entry points. */ - enabledLibraryTypes?: string[]; + enabledLibraryTypes: string[]; /** * List of wasm loading types enabled for use by entry points. */ - enabledWasmLoadingTypes?: string[]; + enabledWasmLoadingTypes: string[]; /** * The abilities of the environment where the webpack generated code should run. */ - environment?: Environment; + environment: Environment; /** * Specifies the filename of output files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk. @@ -11376,7 +12194,48 @@ declare interface RenderBootstrapContext { */ hash: string; } -declare interface RenderContext { +declare interface RenderContextCssModulesPlugin { + /** + * the chunk + */ + chunk: Chunk; + + /** + * the chunk graph + */ + chunkGraph: ChunkGraph; + + /** + * results of code generation + */ + codeGenerationResults: CodeGenerationResults; + + /** + * the runtime template + */ + runtimeTemplate: RuntimeTemplate; + + /** + * the unique name + */ + uniqueName: string; + + /** + * need compress + */ + cssHeadDataCompression: boolean; + + /** + * undo path to css file + */ + undoPath: string; + + /** + * modules + */ + modules: CssModule[]; +} +declare interface RenderContextJavascriptModulesPlugin { /** * the chunk */ @@ -11410,7 +12269,7 @@ declare interface RenderContext { /** * rendering in strict context */ - strictMode: boolean; + strictMode?: boolean; } type RenderManifestEntry = | RenderManifestEntryTemplated @@ -11425,7 +12284,7 @@ declare interface RenderManifestEntryStatic { } declare interface RenderManifestEntryTemplated { render: () => Source; - filenameTemplate: string | ((arg0: PathData, arg1?: AssetInfo) => string); + filenameTemplate: TemplatePath; pathOptions?: PathData; info?: AssetInfo; identifier: string; @@ -11487,7 +12346,7 @@ declare interface ResolveBuildDependenciesResult { /** * stored resolve results */ - resolveResults: Map; + resolveResults: Map; /** * dependencies of the resolving @@ -11547,6 +12406,7 @@ declare interface ResolveData { fileDependencies: LazySet; missingDependencies: LazySet; contextDependencies: LazySet; + ignoredModule?: Module; /** * allow to use the unsafe cache @@ -12040,6 +12900,13 @@ declare interface ResourceDataWithData { context?: string; data: Record; } +declare abstract class RestoreProvidedData { + exports: any; + otherProvided: any; + otherCanMangleProvide: any; + otherTerminalBinding: any; + serialize(__0: ObjectSerializerContext): void; +} declare interface RmDirOptions { maxRetries?: number; recursive?: boolean; @@ -12066,7 +12933,7 @@ declare interface RuleSet { /** * execute the rule set */ - exec: (arg0: object) => Effect[]; + exec: (arg0: EffectData) => Effect[]; } type RuleSetCondition = | string @@ -12610,7 +13477,7 @@ declare abstract class RuntimeTemplate { /** * name of the chunk referenced */ - chunkName?: string; + chunkName?: null | string; /** * reason information of the chunk */ @@ -12968,26 +13835,12 @@ declare abstract class RuntimeTemplate { */ runtimeRequirements: Set; }): string; - assetUrl(__0: { - /** - * the module - */ - module: Module; - /** - * runtime - */ - runtime?: RuntimeSpec; - /** - * the code generation results - */ - codeGenerationResults: CodeGenerationResults; - }): string; } declare abstract class RuntimeValue { fn: (arg0: { module: NormalModule; key: string; - readonly version?: string; + readonly version: ValueCacheVersion; }) => CodeValuePrimitive; options: true | RuntimeValueOptions; get fileDependencies(): true | string[]; @@ -13138,6 +13991,7 @@ declare class SideEffectsFlagPlugin { cache: Map ): undefined | boolean; } +type SimpleType = "string" | "number" | "boolean"; declare class SizeOnlySource extends Source { constructor(size: number); } @@ -13157,32 +14011,36 @@ declare abstract class Snapshot { children?: Set; hasStartTime(): boolean; setStartTime(value: number): void; - setMergedStartTime(value?: any, snapshot?: any): void; + setMergedStartTime(value: undefined | number, snapshot: Snapshot): void; hasFileTimestamps(): boolean; - setFileTimestamps(value?: any): void; + setFileTimestamps(value: Map): void; hasFileHashes(): boolean; - setFileHashes(value?: any): void; + setFileHashes(value: Map): void; hasFileTshs(): boolean; - setFileTshs(value?: any): void; + setFileTshs(value: Map): void; hasContextTimestamps(): boolean; - setContextTimestamps(value?: any): void; + setContextTimestamps( + value: Map + ): void; hasContextHashes(): boolean; - setContextHashes(value?: any): void; + setContextHashes(value: Map): void; hasContextTshs(): boolean; - setContextTshs(value?: any): void; + setContextTshs( + value: Map + ): void; hasMissingExistence(): boolean; - setMissingExistence(value?: any): void; + setMissingExistence(value: Map): void; hasManagedItemInfo(): boolean; - setManagedItemInfo(value?: any): void; + setManagedItemInfo(value: Map): void; hasManagedFiles(): boolean; - setManagedFiles(value?: any): void; + setManagedFiles(value: Set): void; hasManagedContexts(): boolean; - setManagedContexts(value?: any): void; + setManagedContexts(value: Set): void; hasManagedMissing(): boolean; - setManagedMissing(value?: any): void; + setManagedMissing(value: Set): void; hasChildren(): boolean; - setChildren(value?: any): void; - addChild(child?: any): void; + setChildren(value: Set): void; + addChild(child: Snapshot): void; serialize(__0: ObjectSerializerContext): void; deserialize(__0: ObjectDeserializerContext): void; getFileIterable(): Iterable; @@ -13276,11 +14134,14 @@ declare interface SnapshotOptionsWebpackOptions { */ unmanagedPaths?: (string | RegExp)[]; } +declare interface SortFunction { + (arg0: T, arg1: T): number; +} declare abstract class SortableSet extends Set { /** * Sort with a comparer function */ - sortWith(sortFn: (arg0: T, arg1: T) => number): void; + sortWith(sortFn?: SortFunction): void; sort(): SortableSet; /** @@ -13293,11 +14154,6 @@ declare abstract class SortableSet extends Set { */ getFromUnorderedCache(fn: (arg0: SortableSet) => R): R; toJSON(): T[]; - - /** - * Iterates over values in the set. - */ - [Symbol.iterator](): IterableIterator; } declare class Source { constructor(); @@ -13447,7 +14303,7 @@ declare interface SplitChunksOptions { maxAsyncRequests: number; maxInitialRequests: number; hidePathInfo: boolean; - filename: string | ((arg0: PathData, arg1?: AssetInfo) => string); + filename: TemplatePath; automaticNameDelimiter: string; getCacheGroups: ( module: Module, @@ -13487,7 +14343,9 @@ declare abstract class StackedMap { get size(): number; createChild(): StackedMap; } -type StartupRenderContext = RenderContext & { inlined: boolean }; +type StartupRenderContext = RenderContextJavascriptModulesPlugin & { + inlined: boolean; +}; declare interface StatFs { ( path: PathLikeFs, @@ -13588,6 +14446,10 @@ type Statement = | ForInStatement | ForOfStatement; type StatementPathItem = + | ImportDeclarationJavascriptParser + | ExportNamedDeclarationJavascriptParser + | ExportAllDeclarationJavascriptParser + | ImportExpressionImport | UnaryExpression | ArrayExpression | ArrowFunctionExpression @@ -13601,7 +14463,6 @@ type StatementPathItem = | ConditionalExpression | FunctionExpression | Identifier - | ImportExpression | SimpleLiteral | RegExpLiteral | BigIntLiteral @@ -13637,10 +14498,7 @@ type StatementPathItem = | ForStatement | ForInStatement | ForOfStatement - | ImportDeclaration - | ExportNamedDeclaration - | ExportDefaultDeclaration - | ExportAllDeclaration; + | ExportDefaultDeclaration; declare class Stats { constructor(compilation: Compilation); compilation: Compilation; @@ -13652,59 +14510,64 @@ declare class Stats { toJson(options?: string | boolean | StatsOptions): StatsCompilation; toString(options?: string | boolean | StatsOptions): string; } -type StatsAsset = KnownStatsAsset & Record; -type StatsChunk = KnownStatsChunk & Record; -type StatsChunkGroup = KnownStatsChunkGroup & Record; -type StatsChunkOrigin = KnownStatsChunkOrigin & Record; -type StatsCompilation = KnownStatsCompilation & Record; -type StatsError = KnownStatsError & Record; +type StatsAsset = Record & KnownStatsAsset; +type StatsChunk = Record & KnownStatsChunk; +type StatsChunkGroup = Record & KnownStatsChunkGroup; +type StatsChunkOrigin = Record & KnownStatsChunkOrigin; +type StatsCompilation = Record & KnownStatsCompilation; +type StatsError = Record & KnownStatsError; declare abstract class StatsFactory { - hooks: Readonly<{ - extract: HookMap>; - filter: HookMap< - SyncBailHook<[any, StatsFactoryContext, number, number], any> - >; - sort: HookMap< - SyncBailHook< - [((arg0?: any, arg1?: any) => number)[], StatsFactoryContext], - any - > - >; - filterSorted: HookMap< - SyncBailHook<[any, StatsFactoryContext, number, number], any> - >; - groupResults: HookMap< - SyncBailHook<[GroupConfig[], StatsFactoryContext], any> - >; - sortResults: HookMap< - SyncBailHook< - [((arg0?: any, arg1?: any) => number)[], StatsFactoryContext], - any - > - >; - filterResults: HookMap< - SyncBailHook<[any, StatsFactoryContext, number, number], any> - >; - merge: HookMap>; - result: HookMap>; - getItemName: HookMap>; - getItemFactory: HookMap>; - }>; + hooks: StatsFactoryHooks; create( type: string, data: any, baseContext: Omit ): any; } -type StatsFactoryContext = KnownStatsFactoryContext & Record; -type StatsLogging = KnownStatsLogging & Record; -type StatsLoggingEntry = KnownStatsLoggingEntry & Record; -type StatsModule = KnownStatsModule & Record; -type StatsModuleIssuer = KnownStatsModuleIssuer & Record; -type StatsModuleReason = KnownStatsModuleReason & Record; -type StatsModuleTraceDependency = KnownStatsModuleTraceDependency & - Record; -type StatsModuleTraceItem = KnownStatsModuleTraceItem & Record; +type StatsFactoryContext = Record & KnownStatsFactoryContext; +declare interface StatsFactoryHooks { + extract: HookMap< + SyncBailHook<[ObjectForExtract, any, StatsFactoryContext], void> + >; + filter: HookMap< + SyncBailHook<[any, StatsFactoryContext, number, number], boolean | void> + >; + sort: HookMap< + SyncBailHook< + [((arg0?: any, arg1?: any) => 0 | 1 | -1)[], StatsFactoryContext], + void + > + >; + filterSorted: HookMap< + SyncBailHook<[any, StatsFactoryContext, number, number], boolean | void> + >; + groupResults: HookMap< + SyncBailHook<[GroupConfig[], StatsFactoryContext], void> + >; + sortResults: HookMap< + SyncBailHook< + [((arg0?: any, arg1?: any) => 0 | 1 | -1)[], StatsFactoryContext], + void + > + >; + filterResults: HookMap< + SyncBailHook<[any, StatsFactoryContext, number, number], boolean | void> + >; + merge: HookMap>; + result: HookMap>; + getItemName: HookMap>; + getItemFactory: HookMap< + SyncBailHook<[any, StatsFactoryContext], void | StatsFactory> + >; +} +type StatsLogging = Record & KnownStatsLogging; +type StatsLoggingEntry = Record & KnownStatsLoggingEntry; +type StatsModule = Record & KnownStatsModule; +type StatsModuleIssuer = Record & KnownStatsModuleIssuer; +type StatsModuleReason = Record & KnownStatsModuleReason; +type StatsModuleTraceDependency = Record & + KnownStatsModuleTraceDependency; +type StatsModuleTraceItem = Record & KnownStatsModuleTraceItem; /** * Stats options object. @@ -14153,22 +15016,30 @@ declare interface StatsOptions { */ warningsSpace?: number; } -declare abstract class StatsPrinter { - hooks: Readonly<{ - sortElements: HookMap>; - printElements: HookMap< - SyncBailHook<[PrintedElement[], StatsPrinterContext], string> - >; - sortItems: HookMap>; - getItemName: HookMap>; - printItems: HookMap>; - print: HookMap>; - result: HookMap>; - }>; - print(type: string, object: object, baseContext?: object): string; +declare interface StatsPrintHooks { + sortElements: HookMap>; + printElements: HookMap< + SyncBailHook<[PrintedElement[], StatsPrinterContext], string | void> + >; + sortItems: HookMap< + SyncBailHook<[any[], StatsPrinterContext], boolean | void> + >; + getItemName: HookMap>; + printItems: HookMap< + SyncBailHook<[string[], StatsPrinterContext], string | void> + >; + print: HookMap>; + result: HookMap>; } -type StatsPrinterContext = KnownStatsPrinterContext & Record; -type StatsProfile = KnownStatsProfile & Record; +declare abstract class StatsPrinter { + hooks: StatsPrintHooks; + print(type: string, object?: any, baseContext?: StatsPrinterContext): string; +} +type StatsPrinterContext = Record & + KnownStatsPrinterColorFn & + KnownStatsPrinterFormaters & + KnownStatsPrinterContext; +type StatsProfile = Record & KnownStatsProfile; type StatsValue = | boolean | StatsOptions @@ -14180,6 +15051,7 @@ type StatsValue = | "minimal" | "normal" | "detailed"; +type Supports = undefined | string; declare class SyncModuleIdsPlugin { constructor(__0: { /** @@ -14197,7 +15069,7 @@ declare class SyncModuleIdsPlugin { /** * operation mode (defaults to merge) */ - mode?: "read" | "merge" | "create" | "update"; + mode?: "read" | "create" | "merge" | "update"; }); /** @@ -14223,6 +15095,15 @@ declare interface TagInfo { data: any; next?: TagInfo; } +declare interface TargetItem { + module: Module; + connection: ModuleGraphConnection; + export?: string[]; +} +declare interface TargetItemWithoutConnection { + module: Module; + export: string[]; +} declare class Template { constructor(); static getFunctionContent(fn: Function): string; @@ -14237,24 +15118,25 @@ declare class Template { static asString(str: string | string[]): string; static getModulesArrayBounds(modules: WithId[]): false | [number, number]; static renderChunkModules( - renderContext: ChunkRenderContext, + renderContext: ChunkRenderContextJavascriptModulesPlugin, modules: Module[], - renderModule: (arg0: Module) => Source, + renderModule: (arg0: Module) => null | Source, prefix?: string ): null | Source; static renderRuntimeModules( runtimeModules: RuntimeModule[], - renderContext: RenderContext & { + renderContext: RenderContextJavascriptModulesPlugin & { codeGenerationResults?: CodeGenerationResults; } ): Source; static renderChunkRuntimeModules( runtimeModules: RuntimeModule[], - renderContext: RenderContext + renderContext: RenderContextJavascriptModulesPlugin ): Source; static NUMBER_OF_IDENTIFIER_START_CHARS: number; static NUMBER_OF_IDENTIFIER_CONTINUATION_CHARS: number; } +type TemplatePath = string | ((arg0: PathData, arg1?: AssetInfo) => string); declare interface TimestampAndHash { safeTime: number; timestamp?: number; @@ -14305,6 +15187,9 @@ declare interface UpdateHashContextGenerator { runtimeTemplate?: RuntimeTemplate; } type UsageStateType = 0 | 1 | 2 | 3 | 4; +type UsedName = string | false | string[]; +type Value = string | number | boolean | RegExp; +type ValueCacheVersion = string | Set; declare abstract class VariableInfo { declaredScope: ScopeInfo; freeName?: string | true; @@ -14312,7 +15197,7 @@ declare abstract class VariableInfo { } declare interface VariableInfoInterface { declaredScope: ScopeInfo; - freeName: string | true; + freeName?: string | true; tagInfo?: TagInfo; } type WarningFilterItemTypes = @@ -14328,10 +15213,10 @@ declare interface WatchFileSystem { options: WatchOptions, callback: ( arg0: null | Error, - arg1: Map, - arg2: Map, - arg3: Set, - arg4: Set + arg1?: Map, + arg2?: Map, + arg3?: Set, + arg4?: Set ) => void, callbackUndelayed: (arg0: string, arg1: number) => void ) => Watcher; @@ -14395,12 +15280,12 @@ declare interface Watcher { /** * get current aggregated changes that have not yet send to callback */ - getAggregatedChanges?: () => Set; + getAggregatedChanges?: () => null | Set; /** * get current aggregated removals that have not yet send to callback */ - getAggregatedRemovals?: () => Set; + getAggregatedRemovals?: () => null | Set; /** * get info about files @@ -14421,12 +15306,12 @@ declare interface WatcherInfo { /** * get current aggregated changes that have not yet send to callback */ - changes: Set; + changes: null | Set; /** * get current aggregated removals that have not yet send to callback */ - removals: Set; + removals: null | Set; /** * get info about files @@ -14446,28 +15331,7 @@ declare abstract class Watching { closed: boolean; suspended: boolean; blocked: boolean; - watchOptions: { - /** - * Delay the rebuilt after the first change. Value is a time in ms. - */ - aggregateTimeout?: number; - /** - * Resolve symlinks and watch symlink and real file. This is usually not needed as webpack already resolves symlinks ('resolve.symlinks'). - */ - followSymlinks?: boolean; - /** - * Ignore some files from watching (glob pattern or regexp). - */ - ignored?: string | RegExp | string[]; - /** - * Enable polling mode for watching. - */ - poll?: number | boolean; - /** - * Stop watching when stdin stream has ended. - */ - stdin?: boolean; - }; + watchOptions: WatchOptions; compiler: Compiler; running: boolean; watcher?: null | Watcher; @@ -14574,7 +15438,7 @@ declare abstract class WebpackLogger { status(...args: any[]): void; group(...args: any[]): void; groupCollapsed(...args: any[]): void; - groupEnd(...args: any[]): void; + groupEnd(): void; profile(label?: string): void; profileEnd(label?: string): void; time(label: string): void; @@ -14673,6 +15537,7 @@ declare interface WebpackOptionsNormalized { | "jsonp" | "system" | "promise" + | "module-import" | "script" | "node-commonjs"; @@ -14974,7 +15839,7 @@ declare namespace exports { callback?: CallbackWebpack ): MultiCompiler; }; - export const validate: (options?: any) => void; + export const validate: (arg0: Configuration | Configuration[]) => void; export const validateSchema: ( schema: Parameters[0], options: Parameters[1], @@ -14982,18 +15847,11 @@ declare namespace exports { ) => void; export const version: string; export namespace cli { - export let getArguments: (schema?: any) => Record; + export let getArguments: (schema?: any) => Flags; export let processArguments: ( - args: Record, + args: Flags, config: any, - values: Record< - string, - | string - | number - | boolean - | RegExp - | (string | number | boolean | RegExp)[] - > + values: Record ) => null | Problem[]; } export namespace ModuleFilenameHelpers { @@ -15243,9 +16101,13 @@ declare namespace exports { FetchCompileAsyncWasmPlugin, FetchCompileWasmPlugin, JsonpChunkLoadingRuntimeModule, - JsonpTemplatePlugin + JsonpTemplatePlugin, + CssLoadingRuntimeModule }; } + export namespace esm { + export { ModuleChunkLoadingRuntimeModule }; + } export namespace webworker { export { WebWorkerTemplatePlugin }; } @@ -15264,6 +16126,9 @@ declare namespace exports { export namespace wasm { export { AsyncWebAssemblyModulesPlugin, EnableWasmLoadingPlugin }; } + export namespace css { + export { CssModulesPlugin }; + } export namespace library { export { AbstractLibraryPlugin, EnableLibraryPlugin }; } @@ -15289,7 +16154,7 @@ declare namespace exports { export { ProfilingPlugin }; } export namespace util { - export const createHash: (algorithm: string | typeof Hash) => Hash; + export const createHash: (algorithm: Algorithm) => Hash; export namespace comparators { export let compareChunksById: (a: Chunk, b: Chunk) => 0 | 1 | -1; export let compareModulesByIdentifier: ( @@ -15418,7 +16283,10 @@ declare namespace exports { ) => Serializer; export { MEASURE_START_OPERATION, MEASURE_END_OPERATION }; } - export const cleverMerge: (first: T, second: O) => T | O | (T & O); + export const cleverMerge: ( + first?: null | T, + second?: null | O + ) => T | O | (T & O); export function compileBooleanMatcher( map: Record ): boolean | ((arg0: string) => string); @@ -15575,7 +16443,7 @@ declare namespace exports { LoaderDefinitionFunction, PitchLoaderDefinitionFunction, RawLoaderDefinitionFunction, - LoaderContext + LoaderContextDeclarationsIndex as LoaderContext }; } declare const topLevelSymbolTag: unique symbol; diff --git a/package-lock.json b/package-lock.json index 9632983..b2d3276 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "ora": "^5.4.0" }, "bin": { - "reactwizard": "index.js" + "react-crafter": "bin/cli.js" }, "devDependencies": { "@babel/core": "^7.13.1", @@ -25,7 +25,7 @@ "@babel/preset-typescript": "^7.24.7", "@commitlint/cli": "^19.4.0", "@commitlint/config-conventional": "^19.2.2", - "@types/jest": "^29.5.12", + "@types/jest": "^29.5.14", "babel-loader": "^8.2.2", "css-loader": "^5.1.1", "dotenv-webpack": "^7.0.2", @@ -39,6 +39,7 @@ "pretty-quick": "^4.0.0", "sass-loader": "^11.0.1", "style-loader": "^2.0.0", + "ts-jest": "^29.2.5", "ts-node": "^10.9.2", "webpack": "^5.24.3", "webpack-cli": "^4.5.0" @@ -59,13 +60,14 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -73,9 +75,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", - "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "license": "MIT", "engines": { @@ -83,22 +85,22 @@ } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -114,58 +116,59 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", - "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.0", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", - "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -174,18 +177,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", - "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.0", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", "semver": "^6.3.1" }, "engines": { @@ -196,14 +199,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", - "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", "semver": "^6.3.1" }, "engines": { @@ -214,9 +217,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", - "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", "dev": true, "license": "MIT", "dependencies": { @@ -231,44 +234,43 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", - "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -278,22 +280,22 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", - "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "license": "MIT", "engines": { @@ -301,15 +303,15 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", - "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-wrap-function": "^7.25.0", - "@babel/traverse": "^7.25.0" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -319,15 +321,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", - "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -337,37 +339,37 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", - "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "license": "MIT", "engines": { @@ -375,9 +377,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "license": "MIT", "engines": { @@ -385,9 +387,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "license": "MIT", "engines": { @@ -395,126 +397,42 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", - "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", - "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.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, - "license": "MIT", - "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, - "license": "MIT", - "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, - "license": "MIT", - "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, - "license": "MIT" - }, - "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, - "license": "MIT", - "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, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/parser": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", - "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.2" + "@babel/types": "^7.26.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -524,14 +442,14 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", - "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.3" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -541,13 +459,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", - "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -557,13 +475,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", - "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -573,15 +491,15 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", - "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -591,14 +509,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", - "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -675,40 +593,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", - "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -718,13 +610,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", - "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -760,13 +652,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -886,13 +778,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", - "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -919,13 +811,13 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", - "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -935,16 +827,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", - "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-remap-async-to-generator": "^7.25.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/traverse": "^7.25.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -954,15 +845,15 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", - "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -972,13 +863,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", - "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -988,13 +879,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", - "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1004,14 +895,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", - "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1021,15 +912,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", - "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1039,17 +929,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", - "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/traverse": "^7.25.0", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", "globals": "^11.1.0" }, "engines": { @@ -1060,14 +950,14 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", - "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/template": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1077,13 +967,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", - "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1093,14 +983,14 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", - "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1110,13 +1000,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", - "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1126,14 +1016,14 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", - "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1143,14 +1033,13 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", - "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1160,14 +1049,14 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", - "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1177,14 +1066,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", - "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1194,14 +1082,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", - "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1211,15 +1099,15 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", - "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.1" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1229,14 +1117,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", - "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1246,13 +1133,13 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", - "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1262,14 +1149,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", - "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1279,13 +1165,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", - "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1295,14 +1181,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", - "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1312,15 +1198,15 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", - "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-simple-access": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1330,16 +1216,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", - "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1349,14 +1235,14 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", - "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1366,14 +1252,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", - "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1383,13 +1269,13 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", - "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1399,14 +1285,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", - "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1416,14 +1301,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", - "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1433,16 +1317,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", - "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.7" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1452,14 +1335,14 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", - "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1469,14 +1352,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", - "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1486,15 +1368,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", - "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1504,13 +1385,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", - "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1520,14 +1401,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", - "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1537,16 +1418,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", - "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1556,13 +1436,13 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", - "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1572,13 +1452,13 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1588,17 +1468,17 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz", - "integrity": "sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.25.2" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1608,13 +1488,13 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1624,14 +1504,14 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1641,13 +1521,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", - "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.9", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1657,14 +1537,31 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", - "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1674,13 +1571,13 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", - "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1690,14 +1587,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", - "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1707,13 +1604,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", - "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1723,13 +1620,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", - "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1739,13 +1636,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", - "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1755,17 +1652,17 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", - "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", + "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-typescript": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1775,13 +1672,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", - "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1791,14 +1688,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", - "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1808,14 +1705,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", - "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1825,14 +1722,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", - "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1842,94 +1739,80 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", - "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-option": "^7.24.8", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.7", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.0", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.24.7", - "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.25.0", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-dotall-regex": "^7.24.7", - "@babel/plugin-transform-duplicate-keys": "^7.24.7", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", - "@babel/plugin-transform-dynamic-import": "^7.24.7", - "@babel/plugin-transform-exponentiation-operator": "^7.24.7", - "@babel/plugin-transform-export-namespace-from": "^7.24.7", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-member-expression-literals": "^7.24.7", - "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-modules-systemjs": "^7.25.0", - "@babel/plugin-transform-modules-umd": "^7.24.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-new-target": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-object-super": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-property-literals": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-reserved-words": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.8", - "@babel/plugin-transform-unicode-escapes": "^7.24.7", - "@babel/plugin-transform-unicode-property-regex": "^7.24.7", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.37.1", + "core-js-compat": "^3.38.1", "semver": "^6.3.1" }, "engines": { @@ -1955,18 +1838,18 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz", + "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1976,17 +1859,17 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", - "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", - "@babel/plugin-transform-typescript": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1995,17 +1878,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/runtime": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", - "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "dev": true, "license": "MIT", "dependencies": { @@ -2016,32 +1892,32 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", - "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/parser": "^7.25.3", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2050,15 +1926,14 @@ } }, "node_modules/@babel/types": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", - "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2072,18 +1947,18 @@ "license": "MIT" }, "node_modules/@commitlint/cli": { - "version": "19.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.4.0.tgz", - "integrity": "sha512-sJX4J9UioVwZHq7JWM9tjT5bgWYaIN3rC4FP7YwfEwBYiIO+wMyRttRvQLNkow0vCdM0D67r9NEWU0Ui03I4Eg==", + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.6.0.tgz", + "integrity": "sha512-v17BgGD9w5KnthaKxXnEg6KLq6DYiAxyiN44TpiRtqyW8NSq+Kx99mkEG8Qo6uu6cI5eMzMojW2muJxjmPnF8w==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/format": "^19.3.0", - "@commitlint/lint": "^19.2.2", - "@commitlint/load": "^19.4.0", - "@commitlint/read": "^19.4.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1", + "@commitlint/format": "^19.5.0", + "@commitlint/lint": "^19.6.0", + "@commitlint/load": "^19.5.0", + "@commitlint/read": "^19.5.0", + "@commitlint/types": "^19.5.0", + "tinyexec": "^0.3.0", "yargs": "^17.0.0" }, "bin": { @@ -2093,158 +1968,14 @@ "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@commitlint/cli/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/@commitlint/cli/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/cli/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@commitlint/cli/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@commitlint/config-conventional": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.2.2.tgz", - "integrity": "sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==", + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.6.0.tgz", + "integrity": "sha512-DJT40iMnTYtBtUfw9ApbsLZFke1zKh6llITVJ+x9mtpHD08gsNXaIRqHTmwTZL3dNX5+WoyK7pCN/5zswvkBCQ==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "conventional-changelog-conventionalcommits": "^7.0.2" }, "engines": { @@ -2252,51 +1983,27 @@ } }, "node_modules/@commitlint/config-validator": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.0.3.tgz", - "integrity": "sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.5.0.tgz", + "integrity": "sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "ajv": "^8.11.0" }, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/config-validator/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@commitlint/config-validator/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, "node_modules/@commitlint/ensure": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.0.3.tgz", - "integrity": "sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.5.0.tgz", + "integrity": "sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "lodash.camelcase": "^4.3.0", "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", @@ -2308,9 +2015,9 @@ } }, "node_modules/@commitlint/execute-rule": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.0.0.tgz", - "integrity": "sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz", + "integrity": "sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==", "dev": true, "license": "MIT", "engines": { @@ -2318,13 +2025,13 @@ } }, "node_modules/@commitlint/format": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.3.0.tgz", - "integrity": "sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.5.0.tgz", + "integrity": "sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "chalk": "^5.3.0" }, "engines": { @@ -2345,13 +2052,13 @@ } }, "node_modules/@commitlint/is-ignored": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.2.2.tgz", - "integrity": "sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==", + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.6.0.tgz", + "integrity": "sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "semver": "^7.6.0" }, "engines": { @@ -2372,32 +2079,32 @@ } }, "node_modules/@commitlint/lint": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.2.2.tgz", - "integrity": "sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==", + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.6.0.tgz", + "integrity": "sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/is-ignored": "^19.2.2", - "@commitlint/parse": "^19.0.3", - "@commitlint/rules": "^19.0.3", - "@commitlint/types": "^19.0.3" + "@commitlint/is-ignored": "^19.6.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/rules": "^19.6.0", + "@commitlint/types": "^19.5.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/load": { - "version": "19.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.4.0.tgz", - "integrity": "sha512-I4lCWaEZYQJ1y+Y+gdvbGAx9pYPavqZAZ3/7/8BpWh+QjscAn8AjsUpLV2PycBsEx7gupq5gM4BViV9xwTIJuw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.5.0.tgz", + "integrity": "sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/config-validator": "^19.0.3", - "@commitlint/execute-rule": "^19.0.0", - "@commitlint/resolve-extends": "^19.1.0", - "@commitlint/types": "^19.0.3", + "@commitlint/config-validator": "^19.5.0", + "@commitlint/execute-rule": "^19.5.0", + "@commitlint/resolve-extends": "^19.5.0", + "@commitlint/types": "^19.5.0", "chalk": "^5.3.0", "cosmiconfig": "^9.0.0", "cosmiconfig-typescript-loader": "^5.0.0", @@ -2423,9 +2130,9 @@ } }, "node_modules/@commitlint/message": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.0.0.tgz", - "integrity": "sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.5.0.tgz", + "integrity": "sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==", "dev": true, "license": "MIT", "engines": { @@ -2433,13 +2140,13 @@ } }, "node_modules/@commitlint/parse": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.0.3.tgz", - "integrity": "sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.5.0.tgz", + "integrity": "sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^19.0.3", + "@commitlint/types": "^19.5.0", "conventional-changelog-angular": "^7.0.0", "conventional-commits-parser": "^5.0.0" }, @@ -2448,175 +2155,31 @@ } }, "node_modules/@commitlint/read": { - "version": "19.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.4.0.tgz", - "integrity": "sha512-r95jLOEZzKDakXtnQub+zR3xjdnrl2XzerPwm7ch1/cc5JGq04tyaNpa6ty0CRCWdVrk4CZHhqHozb8yZwy2+g==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.5.0.tgz", + "integrity": "sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/top-level": "^19.0.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1", + "@commitlint/top-level": "^19.5.0", + "@commitlint/types": "^19.5.0", "git-raw-commits": "^4.0.0", - "minimist": "^1.2.8" + "minimist": "^1.2.8", + "tinyexec": "^0.3.0" }, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/read/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@commitlint/read/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/read/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/@commitlint/read/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/read/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/read/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/read/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/read/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/read/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@commitlint/read/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@commitlint/resolve-extends": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.1.0.tgz", - "integrity": "sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz", + "integrity": "sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/config-validator": "^19.0.3", - "@commitlint/types": "^19.0.3", + "@commitlint/config-validator": "^19.5.0", + "@commitlint/types": "^19.5.0", "global-directory": "^4.0.1", "import-meta-resolve": "^4.0.0", "lodash.mergewith": "^4.6.2", @@ -2627,170 +2190,25 @@ } }, "node_modules/@commitlint/rules": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.0.3.tgz", - "integrity": "sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==", + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.6.0.tgz", + "integrity": "sha512-1f2reW7lbrI0X0ozZMesS/WZxgPa4/wi56vFuJENBmed6mWq5KsheN/nxqnl/C23ioxpPO/PL6tXpiiFy5Bhjw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/ensure": "^19.0.3", - "@commitlint/message": "^19.0.0", - "@commitlint/to-lines": "^19.0.0", - "@commitlint/types": "^19.0.3", - "execa": "^8.0.1" + "@commitlint/ensure": "^19.5.0", + "@commitlint/message": "^19.5.0", + "@commitlint/to-lines": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "engines": { "node": ">=v18" } }, - "node_modules/@commitlint/rules/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@commitlint/rules/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/@commitlint/rules/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/rules/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@commitlint/rules/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@commitlint/to-lines": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.0.0.tgz", - "integrity": "sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.5.0.tgz", + "integrity": "sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==", "dev": true, "license": "MIT", "engines": { @@ -2798,9 +2216,9 @@ } }, "node_modules/@commitlint/top-level": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.0.0.tgz", - "integrity": "sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.5.0.tgz", + "integrity": "sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==", "dev": true, "license": "MIT", "dependencies": { @@ -2810,99 +2228,10 @@ "node": ">=v18" } }, - "node_modules/@commitlint/top-level/node_modules/find-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", - "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^7.2.0", - "path-exists": "^5.0.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/@commitlint/top-level/node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@commitlint/types": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.0.3.tgz", - "integrity": "sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.5.0.tgz", + "integrity": "sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==", "dev": true, "license": "MIT", "dependencies": { @@ -2961,9 +2290,9 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.48.0.tgz", - "integrity": "sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.49.0.tgz", + "integrity": "sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2976,17 +2305,20 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } @@ -3005,9 +2337,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -3015,9 +2347,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", - "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", + "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3029,10 +2361,20 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", + "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", "dependencies": { @@ -3053,12 +2395,22 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "Python-2.0" + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "14.0.0", @@ -3073,23 +2425,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } + "license": "MIT" }, "node_modules/@eslint/js": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", - "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz", + "integrity": "sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==", "dev": true, "license": "MIT", "engines": { @@ -3106,6 +2452,57 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -3121,9 +2518,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", - "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3151,6 +2548,96 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -3579,44 +3066,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/@pkgr/core": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", @@ -3741,9 +3190,9 @@ } }, "node_modules/@types/eslint": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz", - "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, "license": "MIT", "dependencies": { @@ -3763,9 +3212,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, "license": "MIT" }, @@ -3807,9 +3256,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3825,13 +3274,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.2.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.2.0.tgz", - "integrity": "sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==", + "version": "22.9.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.3.tgz", + "integrity": "sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.13.0" + "undici-types": "~6.19.8" } }, "node_modules/@types/stack-utils": { @@ -3859,73 +3308,73 @@ "license": "MIT" }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, "license": "MIT", "dependencies": { @@ -3933,9 +3382,9 @@ } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3943,79 +3392,79 @@ } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -4073,9 +3522,9 @@ "license": "Apache-2.0" }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -4085,16 +3534,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -4106,9 +3545,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", - "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, "license": "MIT", "dependencies": { @@ -4119,16 +3558,16 @@ } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -4210,14 +3649,11 @@ "license": "MIT" }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "license": "Python-2.0" }, "node_modules/array-ify": { "version": "1.0.0", @@ -4226,6 +3662,13 @@ "dev": true, "license": "MIT" }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -4249,14 +3692,14 @@ } }, "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", "dev": true, "license": "MIT", "dependencies": { "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", + "loader-utils": "^2.0.4", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, @@ -4319,14 +3762,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", + "@babel/helper-define-polyfill-provider": "^0.6.3", "semver": "^6.3.1" }, "peerDependencies": { @@ -4348,37 +3791,40 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" + "@babel/helper-define-polyfill-provider": "^0.6.3" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.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==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "dev": true, "license": "MIT", "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-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -4474,9 +3920,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -4494,10 +3940,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -4506,6 +3952,19 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", @@ -4568,9 +4027,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001651", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", - "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "version": "1.0.30001683", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001683.tgz", + "integrity": "sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==", "dev": true, "funding": [ { @@ -4647,9 +4106,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", "dev": true, "license": "MIT" }, @@ -4910,13 +4369,13 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.38.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz", - "integrity": "sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==", + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.23.3" + "browserslist": "^4.24.2" }, "funding": { "type": "opencollective", @@ -4951,13 +4410,13 @@ } }, "node_modules/cosmiconfig-typescript-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", - "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.1.0.tgz", + "integrity": "sha512-7PtBB+6FdsOvZyJtlF3hEPpACq7RQX6BVGsgC7/lfVXnKMvNCu/XY3ykreqG5w/rBNdu2z8LCIKoF3kpHHdHlA==", "dev": true, "license": "MIT", "dependencies": { - "jiti": "^1.19.1" + "jiti": "^1.21.6" }, "engines": { "node": ">=v16" @@ -4968,26 +4427,6 @@ "typescript": ">=4" } }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -5018,9 +4457,9 @@ "license": "MIT" }, "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==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -5060,6 +4499,30 @@ "webpack": "^4.27.0 || ^5.0.0" } }, + "node_modules/css-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/css-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -5119,13 +4582,13 @@ } }, "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -5259,10 +4722,26 @@ "webpack": "^4 || ^5" } }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron-to-chromium": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.6.tgz", - "integrity": "sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==", + "version": "1.5.64", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.64.tgz", + "integrity": "sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==", "dev": true, "license": "ISC" }, @@ -5321,9 +4800,9 @@ } }, "node_modules/envinfo": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", - "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", "dev": true, "license": "MIT", "bin": { @@ -5351,9 +4830,9 @@ "license": "MIT" }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "engines": { @@ -5361,37 +4840,45 @@ } }, "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz", - "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==", + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.15.0.tgz", + "integrity": "sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.17.1", - "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.9.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.15.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.0", - "@nodelib/fs.walk": "^1.2.8", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.5", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.0.2", - "eslint-visitor-keys": "^4.0.0", - "espree": "^10.1.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -5401,15 +4888,11 @@ "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" @@ -5443,13 +4926,13 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "50.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.2.1.tgz", - "integrity": "sha512-KbGhcct6JxzM0x1gjqH1hf4vvc+YNMag5JXyMuPFIPP9THWctRg3UgBUjNcI6a6Rw+1GdKeJ3vTmSICLVF0mtw==", + "version": "50.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.5.0.tgz", + "integrity": "sha512-xTkshfZrUbiSHXBwZ/9d5ulZ2OcHXxSvm/NPo494H/hadLRJwOq5PMV0EUpMqsb9V+kQo+9BAgi6Z7aJtdBp2A==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.48.0", + "@es-joy/jsdoccomment": "~0.49.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.6", @@ -5468,19 +4951,6 @@ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint-plugin-jsdoc/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -5526,59 +4996,9 @@ } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/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, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", - "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -5592,14 +5012,34 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "BSD-2-Clause", + "license": "Apache-2.0", "engines": { - "node": ">=4.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/eslint/node_modules/find-up": { @@ -5619,6 +5059,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/eslint/node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5651,29 +5098,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/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==", + "node_modules/eslint/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, "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { "node": ">=8" } }, "node_modules/espree": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", - "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.12.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5709,16 +5153,6 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -5732,7 +5166,7 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", @@ -5742,16 +5176,6 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -5864,11 +5288,11 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -5880,16 +5304,6 @@ "node": ">= 4.9.1" } }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", @@ -5912,6 +5326,15 @@ "node": ">=4" } }, + "node_modules/figures/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==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -5925,6 +5348,39 @@ "node": ">=16.0.0" } }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -5957,17 +5413,21 @@ } }, "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==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat": { @@ -5995,9 +5455,9 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, "license": "ISC" }, @@ -6220,9 +5680,9 @@ } }, "node_modules/husky": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.4.tgz", - "integrity": "sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==", + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true, "license": "MIT", "bin": { @@ -6451,6 +5911,15 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "license": "MIT" }, + "node_modules/inquirer/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==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/inquirer/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -6490,9 +5959,9 @@ "license": "MIT" }, "node_modules/is-core-module": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", - "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6576,16 +6045,6 @@ "node": ">=8" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -6765,6 +6224,25 @@ "node": ">=8" } }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", @@ -7395,14 +6873,13 @@ "license": "MIT" }, "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==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -7419,16 +6896,16 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { @@ -7446,9 +6923,9 @@ "license": "MIT" }, "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, "license": "MIT" }, @@ -7608,16 +7085,19 @@ } }, "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==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -7654,6 +7134,13 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -7775,9 +7262,9 @@ "license": "MIT" }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { @@ -7854,9 +7341,9 @@ } }, "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==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, @@ -8073,29 +7560,45 @@ } }, "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==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8125,11 +7628,11 @@ } }, "node_modules/parse-imports": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.1.1.tgz", - "integrity": "sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz", + "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==", "dev": true, - "license": "Apache-2.0", + "license": "Apache-2.0 AND MIT", "dependencies": { "es-module-lexer": "^1.5.3", "slashes": "^3.0.12" @@ -8158,13 +7661,13 @@ } }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/path-is-absolute": { @@ -8194,9 +7697,9 @@ "license": "MIT" }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, @@ -8236,10 +7739,76 @@ "node": ">=8" } }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/postcss": { - "version": "8.4.41", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, "funding": [ { @@ -8258,8 +7827,8 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -8279,14 +7848,14 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", - "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz", + "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==", "dev": true, "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -8297,13 +7866,13 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" @@ -8329,9 +7898,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8490,6 +8059,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/pretty-quick/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/pretty-quick/node_modules/picomatch": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", @@ -8503,13 +8082,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pretty-quick/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "dev": true, - "license": "0BSD" - }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -8551,27 +8123,6 @@ ], "license": "MIT" }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -8624,9 +8175,9 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, "license": "MIT", "dependencies": { @@ -8654,16 +8205,16 @@ } }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -8671,28 +8222,26 @@ "node": ">=4" } }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -8798,17 +8347,6 @@ "node": ">=4" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -8818,30 +8356,6 @@ "node": ">=0.12.0" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -8854,6 +8368,12 @@ "npm": ">=2.0.0" } }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -8934,6 +8454,30 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -9029,9 +8573,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -9068,9 +8612,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.18", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", - "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", "dev": true, "license": "CC0-1.0" }, @@ -9259,6 +8803,30 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/style-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/style-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/style-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -9304,9 +8872,9 @@ } }, "node_modules/synckit": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", "dev": true, "license": "MIT", "dependencies": { @@ -9320,13 +8888,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/synckit/node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "dev": true, - "license": "0BSD" - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -9338,9 +8899,9 @@ } }, "node_modules/terser": { - "version": "5.31.5", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.5.tgz", - "integrity": "sha512-YPmas0L0rE1UyLL/llTWA0SiDOqIcAQYLeUj7cJYzXHlRTAnMSg9pPe4VJ5PlKvTrPQsdVFuiRiwyeNlYgwh2Q==", + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -9391,6 +8952,23 @@ } } }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -9406,6 +8984,13 @@ "node": ">= 10.13.0" } }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -9487,19 +9072,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "license": "MIT" }, + "node_modules/tinyexec": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "dev": true, + "license": "MIT" + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -9519,16 +9104,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "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, - "license": "MIT", - "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", @@ -9542,6 +9117,68 @@ "node": ">=8.0" } }, + "node_modules/ts-jest": { + "version": "29.2.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", + "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.6.3", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", @@ -9587,9 +9224,10 @@ } }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, "license": "0BSD" }, "node_modules/type-check": { @@ -9629,16 +9267,16 @@ } }, "node_modules/undici-types": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz", - "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==", + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true, "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, "license": "MIT", "engines": { @@ -9660,9 +9298,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, "license": "MIT", "engines": { @@ -9702,9 +9340,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -9722,8 +9360,8 @@ ], "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -9781,9 +9419,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, "license": "MIT", "dependencies": { @@ -9804,22 +9442,21 @@ } }, "node_modules/webpack": { - "version": "5.93.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", - "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", "dev": true, "license": "MIT", "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -9924,6 +9561,54 @@ "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", diff --git a/package.json b/package.json index 8d671b3..614a988 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "A CLI tool to quickly scaffold a React application with TypeScript, Ant Design, Sass, Webpack, and essential development tools like Husky and linters pre-configured. Perfect for kickstarting modern React projects with best practices.", "main": "index.js", "bin": { - "reactwizard": "./index.js" + "react-crafter": "bin/cli.js" }, "keywords": [ "react", @@ -29,8 +29,12 @@ "url": "https://github.com/CarGDev/reactwizard" }, "scripts": { - "start": "node index.js", + "start": "node bin/cli.js", "test": "jest", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage", + "test:debug": "node --inspect-brk ./node_modules/.bin/jest --runInBand", + "test:local": "npm link && npx react-crafter test-project", "publish": "node release.js", "lint:prettier": "node check-format.js", "pretty-quick": "pretty-quick", @@ -52,7 +56,7 @@ "@babel/preset-typescript": "^7.24.7", "@commitlint/cli": "^19.4.0", "@commitlint/config-conventional": "^19.2.2", - "@types/jest": "^29.5.12", + "@types/jest": "^29.5.14", "babel-loader": "^8.2.2", "css-loader": "^5.1.1", "dotenv-webpack": "^7.0.2", @@ -66,6 +70,7 @@ "pretty-quick": "^4.0.0", "sass-loader": "^11.0.1", "style-loader": "^2.0.0", + "ts-jest": "^29.2.5", "ts-node": "^10.9.2", "webpack": "^5.24.3", "webpack-cli": "^4.5.0" diff --git a/src/config/babel.config.js b/src/config/babel.config.js new file mode 100644 index 0000000..6f6b2cf --- /dev/null +++ b/src/config/babel.config.js @@ -0,0 +1 @@ +// Placeholder for babel.config.js \ No newline at end of file diff --git a/src/config/webpack.config.js b/src/config/webpack.config.js new file mode 100644 index 0000000..ceb4b72 --- /dev/null +++ b/src/config/webpack.config.js @@ -0,0 +1 @@ +// Placeholder for webpack.config.js \ No newline at end of file diff --git a/src/setup/dependencies.js b/src/setup/dependencies.js new file mode 100644 index 0000000..6144287 --- /dev/null +++ b/src/setup/dependencies.js @@ -0,0 +1,26 @@ +const { execSync } = require('child_process'); +const ora = require('ora'); +const { deps } = require('./deps'); + +function installDependencies(userInput, options) { + const spinner = ora('πŸ”„ Installing dependencies...').start(); + try { + if (userInput.useAntd) { + deps.push('antd'); + } + if (userInput.useRedux) { + deps.push('@reduxjs/toolkit'); + deps.push('react-redux'); + deps.push('redux'); + } + execSync( + `npm install ${deps.join(' ')} ${options.verbose ? '--verbose' : ''}` + ); + spinner.succeed('βœ… Dependencies installed.'); + } catch (error) { + spinner.fail('❌ Failed to install dependencies.'); + console.error(error); + } +} + +module.exports = { installDependencies }; diff --git a/src/setup/deps.js b/src/setup/deps.js new file mode 100644 index 0000000..b0e65e3 --- /dev/null +++ b/src/setup/deps.js @@ -0,0 +1,27 @@ +const deps = [ + 'react', + 'react-dom', + '@babel/core', + '@babel/preset-env', + 'webpack-cli', + 'webpack', + 'web-vitals', + 'typescript', + 'style-loader', + 'react-scripts', + 'react-dom', + 'react', + 'jest', + 'babel-loader', + 'ajv', + '@types/react-dom', + '@types/react', + '@types/node', + '@types/jest', + '@testing-library/user-event', + '@testing-library/react', + '@testing-library/jest-dom', + '@babel/preset-react', +]; + +module.exports = { deps }; diff --git a/src/setup/devDependencies.js b/src/setup/devDependencies.js new file mode 100644 index 0000000..a6473c3 --- /dev/null +++ b/src/setup/devDependencies.js @@ -0,0 +1,18 @@ +const { execSync } = require('child_process'); +const ora = require('ora'); +const { devDeps } = require('./devDeps'); + +function installDevDependencies(options){ + const spinner = ora('πŸ”„ Installing additional dev dependencies...').start(); + try { + execSync( + `npm install ${devDeps.join(' ')} ${options.verbose ? '--verbose' : ''}` + ); + spinner.succeed('βœ… Additional dev dependencies installed.'); + } catch (error) { + spinner.fail('❌ Failed to install dependencies.'); + console.error(error); + } +} + +module.exports = { installDevDependencies }; diff --git a/src/setup/devDeps.js b/src/setup/devDeps.js new file mode 100644 index 0000000..727a932 --- /dev/null +++ b/src/setup/devDeps.js @@ -0,0 +1,16 @@ +const devDeps = [ + 'pretty-quick', + 'webpack-dev-server', + 'url-loader', + 'husky', + 'dotenv-webpack', + 'dotenv', + '@svgr/webpack', + '@commitlint/config-conventional', + '@commitlint/cli', + 'prettier', + 'ora', + '@babel/plugin-proposal-private-property-in-object', +]; + +module.exports = { devDeps }; diff --git a/src/setup/gitInit.js b/src/setup/gitInit.js new file mode 100644 index 0000000..a958fc7 --- /dev/null +++ b/src/setup/gitInit.js @@ -0,0 +1,17 @@ +// Purpose: Initialize a Git repository and run Git commands. +const { execSync } = require('child_process'); +const ora = require('ora'); + +async function setupGit(options) { + const spinner = ora('πŸ”§ Running Git commands...').start(); + + try { + execSync(`git init ${options.verbose ? '--verbose' : ''}`); + spinner.succeed('βœ… Git commands executed successfully.'); + } catch (error) { + spinner.fail('❌ Failed to execute Git commands.'); + console.error(error); + } +} + +module.exports = { setupGit }; diff --git a/src/setup/husky.js b/src/setup/husky.js new file mode 100644 index 0000000..1c6c333 --- /dev/null +++ b/src/setup/husky.js @@ -0,0 +1,15 @@ +const { execSync } = require('child_process'); +const ora = require('ora'); + +function setupHusky(options) { + const spinner = ora('🐢 Setting up Husky...').start(); + execSync( + `npx husky-init && npm install ${options.verbose ? '--verbose' : ''}` + ); + execSync( + `npx husky add .husky/pre-commit "npm test" ${options.verbose ? '--verbose' : ''}` + ); + spinner.succeed('🐢 Husky set up.'); +} + +module.exports = { setupHusky }; diff --git a/src/setup/init.js b/src/setup/init.js new file mode 100644 index 0000000..c925da8 --- /dev/null +++ b/src/setup/init.js @@ -0,0 +1,65 @@ +const path = require('path'); +const { execSync } = require('child_process'); +const ora = require('ora'); +const fs = require('fs'); +const { installDependencies } = require('./dependencies'); +const { installDevDependencies } = require('./devDependencies'); +const { setupHusky } = require('./husky'); +const { setupRedux } = require('./redux'); +const { setupStyles } = require('./styles'); +const { setupGit } = require('./gitInit'); +const { setupTesting } = require('./testing'); +const { createAtomicStructure } = require('../templates/atomicStructure'); +const { updatePackageJson } = require('../templates/packageJson'); +const { askUserWhereToOpen } = require('../utils/logging'); +const inquirer = require('inquirer'); + +async function initProject(projectDirectory, userInput, options) { + const root = path.resolve(projectDirectory); + const verboseFlag = options.verbose ? '--verbose' : ''; + + // Create the project directory + fs.mkdirSync(root, { recursive: true }); + process.chdir(root); + + console.log(`πŸš€ Creating a new React app in ${root}...`); + + const spinner = ora('Installing base Create React App...').start(); + + try { + // Initialize CRA with or without TypeScript + const template = userInput.language === 'TypeScript' ? '--template typescript' : ''; + execSync(`npx create-react-app . ${template} ${verboseFlag}`, { stdio: 'inherit' }); + spinner.succeed('βœ… Base React app created successfully.'); + } catch (error) { + spinner.fail('❌ Failed to create base React app.'); + console.error(error); + process.exit(1); + } + + // Set up Git + setupGit(options); + // Install additional dependencies + installDependencies(userInput, options); + // Install additional dev dependencies + installDevDependencies(options); + + // Set up additional features based on user input + if (userInput.useHusky) setupHusky(options); + if (userInput.useRedux) setupRedux(options); + setupStyles(userInput.styling); + setupTesting(userInput.testingFramework); + + // Create atomic design structure + createAtomicStructure(); + + // Update package.json + updatePackageJson(userInput); + + console.log('πŸŽ‰ Project setup complete!'); + + // Ask user where to open the project + askUserWhereToOpen(root); +} + +module.exports = { initProject }; diff --git a/src/setup/init.test.js b/src/setup/init.test.js new file mode 100644 index 0000000..38ec355 --- /dev/null +++ b/src/setup/init.test.js @@ -0,0 +1,29 @@ +const fs = require('fs'); +const path = require('path'); +const { initProject } = require('./init'); + +jest.mock('fs'); +jest.mock('ora', () => () => ({ + start: jest.fn(() => ({ succeed: jest.fn(), fail: jest.fn() })), +})); +jest.mock('./dependencies', () => ({ installDependencies: jest.fn() })); +jest.mock('../utils/prompts', () => ({ askUserWhereToOpen: jest.fn() })); + +describe('initProject', () => { + const testDir = 'test-project'; + + beforeEach(() => { + fs.mkdirSync.mockClear(); + fs.existsSync.mockReturnValue(false); + }); + + test('Creates project directory and initializes app', async () => { + initProject(testDir, { useHusky: false }, { verbose: false }); + expect(fs.mkdirSync).toHaveBeenCalledWith(path.resolve(testDir), { recursive: true }); + }); + + test('Fails if directory already exists and not overwritten', () => { + fs.existsSync.mockReturnValue(true); + expect(() => initProject(testDir, {}, {})).toThrowError(); + }); +}); diff --git a/src/setup/redux.js b/src/setup/redux.js new file mode 100644 index 0000000..2ef7c18 --- /dev/null +++ b/src/setup/redux.js @@ -0,0 +1,60 @@ +const ora = require('ora'); +const fs = require('fs'); +const path = require('path'); + +function setupRedux(options) { + console.log('options...', options); + const spinner = ora('πŸ› οΈ Setting up Redux...').start(); + + const reduxStructure = [ + 'src/store', + 'src/store/slices', + 'src/store/middleware', + 'src/store/selectors', + ]; + + reduxStructure.forEach((dir) => { + fs.mkdirSync(dir, { recursive: true }); + }); + + const appFileName = options.language === 'TypeScript' ? 'App.tsx' : 'App.js'; + const extension = options.language === 'TypeScript' ? '.ts' : '.js'; + const reactFileType = options.language === 'JavaScript' ? '' : ': React.FC'; + + const storeIndex = ` +import { configureStore } from β€˜@reduxjs/toolkit’; + +const store = configureStore({ + reducer: { + // Add your reducers here + }, + middleware: (getDefaultMiddleware) => getDefaultMiddleware(), +}); + +export default store; + `; + fs.writeFileSync(path.resolve(`src/store/index${extension}`), storeIndex); + + const appTsxJsPath = path.resolve(`src/${appFileName}`); + let appTsxJs = fs.readFileSync(appTsxPath, 'utf8'); + appTsxJs = ` +import React from 'react'; +import { Provider } from 'react-redux'; +import store from './store'; + +const App${reactFileType} = () => { + return ( + + ${appTsx} + + ); +}; + +export default App; + `; + fs.writeFileSync(appTsxJsPath, appTsxJs); + + spinner.succeed('πŸ› οΈ Redux set up.'); +} + +module.exports = { setupRedux }; diff --git a/src/setup/styles.js b/src/setup/styles.js new file mode 100644 index 0000000..55c2b77 --- /dev/null +++ b/src/setup/styles.js @@ -0,0 +1,52 @@ +const fs = require('fs'); +const path = require('path'); +const ora = require('ora'); +const { execSync } = require('child_process'); + +function setupStyles(styleChoice) { + const spinner = ora('🎨 Setting up styles...').start(); + + try { + const stylesMap = { + CSS: { fileName: 'index.css', dependency: '' }, + SCSS: { fileName: 'index.scss', dependency: 'sass' }, + SASS: { fileName: 'index.sass', dependency: 'sass' }, + LESS: { fileName: 'index.less', dependency: 'less' }, + }; + + // Ensure styleChoice is valid + if (!stylesMap[styleChoice]) { + spinner.fail(`❌ Unsupported style option: ${styleChoice}`); + return; + } + + const { fileName, dependency } = stylesMap[styleChoice]; + const stylePath = path.resolve('src', fileName); + + // Create the style file with a placeholder content + fs.writeFileSync(stylePath, `/* Placeholder for ${styleChoice} styles */`); + + // Update index.js or index.tsx to include the style + const indexPath = path.resolve('src', 'index.tsx'); + let indexContent = fs.readFileSync(indexPath, 'utf8'); + + // Remove any existing style imports and add the new one + indexContent = indexContent.replace(/import\s+['"].*\.(css|scss|sass|less)['"];?/g, ''); + indexContent = `import './${fileName}';\n${indexContent}`; + + fs.writeFileSync(indexPath, indexContent); + + // Install necessary dependency for the chosen style + if (dependency) { + spinner.text = `πŸ“¦ Installing ${dependency}...`; + execSync(`npm install ${dependency}`, { stdio: 'inherit' }); + } + + spinner.succeed(`🎨 ${styleChoice} styles set up successfully.`); + } catch (error) { + spinner.fail('❌ Failed to set up styles.'); + console.error(error); + } +} + +module.exports = { setupStyles }; diff --git a/src/setup/styles.test.js b/src/setup/styles.test.js new file mode 100644 index 0000000..d1af74a --- /dev/null +++ b/src/setup/styles.test.js @@ -0,0 +1,23 @@ +const fs = require('fs'); +const { setupStyles } = require('./styles'); +const { execSync } = require('child_process'); + +jest.mock('fs'); +jest.mock('child_process'); + +describe('setupStyles', () => { + beforeEach(() => { + fs.writeFileSync.mockClear(); + execSync.mockClear(); + }); + + test('Sets up SCSS styles', () => { + setupStyles('SCSS'); + expect(fs.writeFileSync).toHaveBeenCalledWith(expect.stringContaining('index.scss'), expect.any(String)); + expect(execSync).toHaveBeenCalledWith('npm install sass', { stdio: 'inherit' }); + }); + + test('Fails for unsupported style options', () => { + expect(() => setupStyles('UnknownStyle')).not.toThrow(); + }); +}); diff --git a/src/setup/testing.js b/src/setup/testing.js new file mode 100644 index 0000000..e544e62 --- /dev/null +++ b/src/setup/testing.js @@ -0,0 +1,69 @@ +const fs = require('fs'); +const path = require('path'); +const ora = require('ora'); +const { execSync } = require('child_process'); + +function setupTesting(testingFramework) { + const spinner = ora('πŸ§ͺ Setting up testing framework...').start(); + + try { + const testingMap = { + Jest: { + dependency: 'jest @types/jest ts-jest', + configFile: 'jest.config.js', + }, + Mocha: { + dependency: 'mocha chai @types/mocha', + configFile: 'mocha.opts', + }, + }; + + // Ensure testingFramework is valid + if (!testingMap[testingFramework]) { + spinner.fail(`❌ Unsupported testing framework: ${testingFramework}`); + return; + } + + const { dependency, configFile } = testingMap[testingFramework]; + + // Install necessary dependencies for the chosen testing framework + spinner.text = `πŸ“¦ Installing ${testingFramework} and related packages...`; + execSync(`npm install --save-dev ${dependency}`, { stdio: 'inherit' }); + + // Create a configuration file for the testing framework + const configPath = path.resolve(configFile); + + let configContent = ''; + if (testingFramework === 'Jest') { + configContent = `module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', +};`; + } else if (testingFramework === 'Mocha') { + configContent = `--require ts-node/register +--recursive +`; + } + + fs.writeFileSync(configPath, configContent); + spinner.succeed( + `πŸ§ͺ ${testingFramework} set up successfully with configuration file: ${configFile}` + ); + + // Add test script to package.json + const packageJsonPath = path.resolve('package.json'); + const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); + + packageJson.scripts = { + ...packageJson.scripts, + test: testingFramework === 'Jest' ? 'jest' : 'mocha', + }; + + fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2)); + } catch (error) { + spinner.fail('❌ Failed to set up testing framework.'); + console.error(error); + } +} + +module.exports = { setupTesting }; diff --git a/src/templates/atomicStructure.js b/src/templates/atomicStructure.js new file mode 100644 index 0000000..9930a5c --- /dev/null +++ b/src/templates/atomicStructure.js @@ -0,0 +1,17 @@ +function createAtomicStructure() { + const spinner = ora('πŸ—οΈ Creating atomic design structure…').start(); + const atomicStructure = [ + 'src/components/atoms', + 'src/components/molecules', + 'src/components/organisms', + 'src/components/templates', + 'src/components/pages', + ]; + + atomicStructure.forEach((dir) => { + fs.mkdirSync(dir, { recursive: true }); + }); + spinner.succeed('πŸ—οΈ Atomic design structure created.'); +} + +module.exports = { createAtomicStructure }; diff --git a/src/templates/packageJson.js b/src/templates/packageJson.js new file mode 100644 index 0000000..467e26c --- /dev/null +++ b/src/templates/packageJson.js @@ -0,0 +1,27 @@ +// Placeholder for packageJson.js +function updatePackageJson() { + const spinner = ora( + 'πŸ“ Updating package.json with custom scripts...' + ).start(); + + const packageJsonPath = path.resolve('package.json'); + const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); + + packageJson.scripts = { + start: 'webpack serve --config webpack.config.js --mode development', + build: 'webpack --config webpack.config.js --mode production', + test: 'echo "Error: no test specified" && exit 0', + 'test:dev': 'react-scripts test', + 'pretty-quick': 'pretty-quick', + 'lint:prettier': 'node check-format.js', + prettier: 'prettier --write . --config .prettierrc', + 'prettier:commit': 'node prettier-commit.js', + eject: 'react-scripts eject', + prepare: 'husky install', + }; + + fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2)); + spinner.succeed('πŸ“ package.json updated with custom scripts.'); +} + +module.exports = { updatePackageJson }; diff --git a/src/templates/reduxTemplate.js b/src/templates/reduxTemplate.js new file mode 100644 index 0000000..9455f08 --- /dev/null +++ b/src/templates/reduxTemplate.js @@ -0,0 +1 @@ +// Placeholder for reduxTemplate.js \ No newline at end of file diff --git a/src/utils/fileUtils.js b/src/utils/fileUtils.js new file mode 100644 index 0000000..3bfbbdd --- /dev/null +++ b/src/utils/fileUtils.js @@ -0,0 +1 @@ +// Placeholder for fileUtils.js \ No newline at end of file diff --git a/src/utils/logging.js b/src/utils/logging.js new file mode 100644 index 0000000..a2db92e --- /dev/null +++ b/src/utils/logging.js @@ -0,0 +1,35 @@ +const chalk = require('chalk'); +const inquirer = require('inquirer'); + +function askUserWhereToOpen(directory) { + inquirer + .prompt([ + { + type: 'list', + name: 'openIn', + message: 'Where would you like to open the project?', + choices: ['Terminal', 'VSCode', 'Neovim', 'None'], + }, + ]) + .then((answers) => { + switch (answers.openIn) { + case 'Terminal': + openInTerminal(directory); + break; + case 'VSCode': + openInVSCode(directory); + break; + case 'Neovim': + openInNeovim(directory); + break; + default: + console.log( + chalk.yellow( + 'Project setup complete. You can manually open the project if needed.' + ) + ); + } + }); +} + +module.exports = { askUserWhereToOpen }; diff --git a/src/utils/overWriteFolder.js b/src/utils/overWriteFolder.js new file mode 100644 index 0000000..cc4fa1e --- /dev/null +++ b/src/utils/overWriteFolder.js @@ -0,0 +1,28 @@ +const fs = require('fs'); +const path = require('path'); +const inquirer = require('inquirer'); + +async function overWriteFolder(root) { + // Check if directory exists + if (fs.existsSync(root)) { + const { overwrite } = await inquirer.prompt([ + { + type: 'confirm', + name: 'overwrite', + message: `⚠️ The directory ${root} already exists. Do you want to overwrite it?`, + default: false, + }, + ]); + + if (!overwrite) { + console.error(`❌ Exiting setup as the directory ${root} already exists.`); + process.exit(1); + } + + console.log(`πŸ—‘οΈ Removing existing directory: ${root}`); + fs.rmSync(root, { recursive: true, force: true }); + } + return true; +} + +module.exports = { overWriteFolder }; diff --git a/src/utils/overWriteProject.test.js b/src/utils/overWriteProject.test.js new file mode 100644 index 0000000..dcb9188 --- /dev/null +++ b/src/utils/overWriteProject.test.js @@ -0,0 +1,39 @@ +const fs = require('fs'); +const path = require('path'); +const { overWrite } = require('./overWriteProject'); + +jest.mock('fs'); +jest.mock('inquirer', () => ({ + prompt: jest.fn(() => Promise.resolve({ overwrite: true })), +})); + +describe('overWrite Function', () => { + const testDir = path.resolve('test-dir'); + + beforeEach(() => { + fs.existsSync.mockClear(); + fs.rmSync.mockClear(); + }); + + test('Removes directory if overwrite is confirmed', async () => { + fs.existsSync.mockReturnValue(true); + const result = await overWrite(testDir); + expect(fs.rmSync).toHaveBeenCalledWith(testDir, { recursive: true, force: true }); + expect(result).toBe(true); + }); + + test('Exits if overwrite is declined', async () => { + require('inquirer').prompt.mockResolvedValueOnce({ overwrite: false }); + fs.existsSync.mockReturnValue(true); + const result = await overWrite(testDir); + expect(fs.rmSync).not.toHaveBeenCalled(); + expect(result).toBe(false); + }); + + test('Proceeds if directory does not exist', async () => { + fs.existsSync.mockReturnValue(false); + const result = await overWrite(testDir); + expect(fs.rmSync).not.toHaveBeenCalled(); + expect(result).toBe(true); + }); +}); diff --git a/src/utils/prompts.js b/src/utils/prompts.js new file mode 100644 index 0000000..2ea781c --- /dev/null +++ b/src/utils/prompts.js @@ -0,0 +1,17 @@ +const inquirer = require('inquirer'); + +async function askProjectDetails() { + return inquirer.prompt([ + { type: 'confirm', name: 'useHusky', message: 'Install Husky?' }, + { type: 'confirm', name: 'useAntd', message: 'Install Antd?' }, + { type: 'confirm', name: 'useRedux', message: 'Use Redux?' }, + + { type: 'confirm', name: 'useModuleFederation', message: 'Use Module Federation Plugin?' }, + { type: 'list', name: 'language', message: 'Choose language:', choices: ['JavaScript', 'TypeScript'] }, + { type: 'list', name: 'testingFramework', message: 'Choose testing framework:', choices: ['Jest', 'Mocha'] }, + { type: 'list', name: 'styling', message: 'Choose styling option:', choices: ['CSS', 'SCSS', 'SASS', 'LESS'] }, + { type: 'list', name: 'modules', message: 'Use CSS Modules, styled-components, or emotion?', choices: ['Modules', 'styled-components', 'emotion'] }, + ]); +} + +module.exports = { askProjectDetails }; diff --git a/structure.js b/structure.js new file mode 100644 index 0000000..097b77a --- /dev/null +++ b/structure.js @@ -0,0 +1,60 @@ +const fs = require('fs'); +const path = require('path'); + +// Helper function to create directories recursively +function createDirectory(dirPath) { + if (!fs.existsSync(dirPath)) { + fs.mkdirSync(dirPath, { recursive: true }); + console.log(`Created directory: ${dirPath}`); + } +} + +// Helper function to create files with default content +function createFile(filePath, content = '') { + if (!fs.existsSync(filePath)) { + fs.writeFileSync(filePath, content); + console.log(`Created file: ${filePath}`); + } +} + +// Define the project structure +const projectStructure = { + './bin': ['cli.js'], + './src/setup': [ + 'dependencies.js', + 'husky.js', + 'redux.js', + 'styles.js', + 'testing.js', + ], + './src/config': ['webpack.config.js', 'babel.config.js'], + './src/templates': [ + 'atomicStructure.js', + 'packageJson.js', + 'reduxTemplate.js', + ], + './src/utils': ['fileUtils.js', 'logging.js', 'prompts.js'], +}; + +// Define root-level files with default content +const rootFiles = { + 'package.json': + '{\n "name": "project-name",\n "version": "1.0.0",\n "main": "bin/cli.js",\n "scripts": {\n "start": "node bin/cli.js"\n }\n}', + 'README.md': '# Project Name\n\nThis is the README file for the project.', + LICENSE: 'MIT License\n\nCopyright (c) 2024 Your Name', +}; + +// Create directories and files +for (const [dir, files] of Object.entries(projectStructure)) { + createDirectory(dir); + files.forEach((file) => + createFile(path.join(dir, file), `// Placeholder for ${file}`) + ); +} + +// Create root-level files +for (const [file, content] of Object.entries(rootFiles)) { + createFile(file, content); +} + +console.log('Project structure setup complete.');