From b2aa50a6d209a82e9a3d95da404f69c7b428d79d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 12:31:45 +0000 Subject: [PATCH 1/3] Initial plan From c45156dc5a9dc5fbb8c40e64dd432f4cf2cb9ede Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 12:39:14 +0000 Subject: [PATCH 2/3] Initial plan for CSS linting fixes Co-authored-by: gb119 <4428426+gb119@users.noreply.github.com> --- .stylelintrc.json | 3 + node_modules/.bin/cssesc | 1 + node_modules/.bin/js-yaml | 1 + node_modules/.bin/nanoid | 1 + node_modules/.bin/stylelint | 1 + node_modules/.bin/which | 1 + node_modules/.package-lock.json | 1613 +++ node_modules/@babel/code-frame/LICENSE | 22 + node_modules/@babel/code-frame/README.md | 19 + node_modules/@babel/code-frame/lib/index.js | 217 + .../@babel/code-frame/lib/index.js.map | 1 + node_modules/@babel/code-frame/package.json | 32 + .../helper-validator-identifier/LICENSE | 22 + .../helper-validator-identifier/README.md | 19 + .../lib/identifier.js | 70 + .../lib/identifier.js.map | 1 + .../helper-validator-identifier/lib/index.js | 57 + .../lib/index.js.map | 1 + .../lib/keyword.js | 35 + .../lib/keyword.js.map | 1 + .../helper-validator-identifier/package.json | 31 + node_modules/@cacheable/memory/LICENSE | 19 + node_modules/@cacheable/memory/README.md | 340 + node_modules/@cacheable/memory/dist/index.cjs | 830 ++ .../@cacheable/memory/dist/index.d.cts | 310 + .../@cacheable/memory/dist/index.d.ts | 310 + node_modules/@cacheable/memory/dist/index.js | 807 ++ node_modules/@cacheable/memory/package.json | 69 + node_modules/@cacheable/utils/LICENSE | 19 + node_modules/@cacheable/utils/README.md | 520 + node_modules/@cacheable/utils/dist/index.cjs | 677 + .../@cacheable/utils/dist/index.d.cts | 307 + node_modules/@cacheable/utils/dist/index.d.ts | 307 + node_modules/@cacheable/utils/dist/index.js | 630 + node_modules/@cacheable/utils/package.json | 60 + node_modules/@csstools/css-calc/CHANGELOG.md | 9 + node_modules/@csstools/css-calc/LICENSE.md | 20 + node_modules/@csstools/css-calc/README.md | 132 + .../@csstools/css-calc/dist/index.d.ts | 101 + .../@csstools/css-calc/dist/index.mjs | 1 + node_modules/@csstools/css-calc/package.json | 59 + .../css-parser-algorithms/CHANGELOG.md | 11 + .../css-parser-algorithms/LICENSE.md | 20 + .../@csstools/css-parser-algorithms/README.md | 119 + .../css-parser-algorithms/dist/index.d.ts | 604 + .../css-parser-algorithms/dist/index.mjs | 1 + .../css-parser-algorithms/package.json | 58 + .../CHANGELOG.md | 9 + .../css-syntax-patches-for-csstree/LICENSE.md | 18 + .../css-syntax-patches-for-csstree/README.md | 43 + .../dist/index.d.ts | 5 + .../dist/index.json | 913 ++ .../package.json | 48 + .../@csstools/css-tokenizer/CHANGELOG.md | 10 + .../@csstools/css-tokenizer/LICENSE.md | 20 + .../@csstools/css-tokenizer/README.md | 111 + .../@csstools/css-tokenizer/dist/index.d.ts | 593 + .../@csstools/css-tokenizer/dist/index.mjs | 1 + .../@csstools/css-tokenizer/package.json | 55 + .../media-query-list-parser/CHANGELOG.md | 12 + .../media-query-list-parser/LICENSE.md | 20 + .../media-query-list-parser/README.md | 61 + .../media-query-list-parser/dist/index.d.ts | 775 ++ .../media-query-list-parser/dist/index.mjs | 1 + .../media-query-list-parser/package.json | 60 + .../selector-resolve-nested/CHANGELOG.md | 10 + .../selector-resolve-nested/LICENSE.md | 18 + .../selector-resolve-nested/README.md | 34 + .../selector-resolve-nested/dist/index.d.ts | 55 + .../selector-resolve-nested/dist/index.mjs | 1 + .../selector-resolve-nested/package.json | 59 + .../selector-specificity/CHANGELOG.md | 10 + .../@csstools/selector-specificity/LICENSE.md | 18 + .../@csstools/selector-specificity/README.md | 58 + .../selector-specificity/dist/index.d.ts | 58 + .../selector-specificity/dist/index.mjs | 1 + .../selector-specificity/package.json | 59 + node_modules/@keyv/bigmap/LICENSE | 21 + node_modules/@keyv/bigmap/README.md | 624 + node_modules/@keyv/bigmap/dist/index.cjs | 268 + node_modules/@keyv/bigmap/dist/index.d.cts | 157 + node_modules/@keyv/bigmap/dist/index.d.ts | 157 + node_modules/@keyv/bigmap/dist/index.js | 239 + node_modules/@keyv/bigmap/package.json | 73 + node_modules/@keyv/serialize/LICENSE | 22 + node_modules/@keyv/serialize/README.md | 15 + node_modules/@keyv/serialize/dist/index.cjs | 84 + node_modules/@keyv/serialize/dist/index.d.cts | 4 + node_modules/@keyv/serialize/dist/index.d.ts | 4 + node_modules/@keyv/serialize/dist/index.js | 58 + node_modules/@keyv/serialize/package.json | 55 + node_modules/@nodelib/fs.scandir/LICENSE | 21 + node_modules/@nodelib/fs.scandir/README.md | 171 + .../@nodelib/fs.scandir/out/adapters/fs.d.ts | 20 + .../@nodelib/fs.scandir/out/adapters/fs.js | 19 + .../@nodelib/fs.scandir/out/constants.d.ts | 4 + .../@nodelib/fs.scandir/out/constants.js | 17 + .../@nodelib/fs.scandir/out/index.d.ts | 12 + node_modules/@nodelib/fs.scandir/out/index.js | 26 + .../fs.scandir/out/providers/async.d.ts | 7 + .../fs.scandir/out/providers/async.js | 104 + .../fs.scandir/out/providers/common.d.ts | 1 + .../fs.scandir/out/providers/common.js | 13 + .../fs.scandir/out/providers/sync.d.ts | 5 + .../@nodelib/fs.scandir/out/providers/sync.js | 54 + .../@nodelib/fs.scandir/out/settings.d.ts | 20 + .../@nodelib/fs.scandir/out/settings.js | 24 + .../@nodelib/fs.scandir/out/types/index.d.ts | 20 + .../@nodelib/fs.scandir/out/types/index.js | 2 + .../@nodelib/fs.scandir/out/utils/fs.d.ts | 2 + .../@nodelib/fs.scandir/out/utils/fs.js | 19 + .../@nodelib/fs.scandir/out/utils/index.d.ts | 2 + .../@nodelib/fs.scandir/out/utils/index.js | 5 + node_modules/@nodelib/fs.scandir/package.json | 44 + node_modules/@nodelib/fs.stat/LICENSE | 21 + node_modules/@nodelib/fs.stat/README.md | 126 + .../@nodelib/fs.stat/out/adapters/fs.d.ts | 13 + .../@nodelib/fs.stat/out/adapters/fs.js | 17 + node_modules/@nodelib/fs.stat/out/index.d.ts | 12 + node_modules/@nodelib/fs.stat/out/index.js | 26 + .../@nodelib/fs.stat/out/providers/async.d.ts | 4 + .../@nodelib/fs.stat/out/providers/async.js | 36 + .../@nodelib/fs.stat/out/providers/sync.d.ts | 3 + .../@nodelib/fs.stat/out/providers/sync.js | 23 + .../@nodelib/fs.stat/out/settings.d.ts | 16 + node_modules/@nodelib/fs.stat/out/settings.js | 16 + .../@nodelib/fs.stat/out/types/index.d.ts | 4 + .../@nodelib/fs.stat/out/types/index.js | 2 + node_modules/@nodelib/fs.stat/package.json | 37 + node_modules/@nodelib/fs.walk/LICENSE | 21 + node_modules/@nodelib/fs.walk/README.md | 215 + node_modules/@nodelib/fs.walk/out/index.d.ts | 14 + node_modules/@nodelib/fs.walk/out/index.js | 34 + .../@nodelib/fs.walk/out/providers/async.d.ts | 12 + .../@nodelib/fs.walk/out/providers/async.js | 30 + .../@nodelib/fs.walk/out/providers/index.d.ts | 4 + .../@nodelib/fs.walk/out/providers/index.js | 9 + .../fs.walk/out/providers/stream.d.ts | 12 + .../@nodelib/fs.walk/out/providers/stream.js | 34 + .../@nodelib/fs.walk/out/providers/sync.d.ts | 10 + .../@nodelib/fs.walk/out/providers/sync.js | 14 + .../@nodelib/fs.walk/out/readers/async.d.ts | 30 + .../@nodelib/fs.walk/out/readers/async.js | 97 + .../@nodelib/fs.walk/out/readers/common.d.ts | 7 + .../@nodelib/fs.walk/out/readers/common.js | 31 + .../@nodelib/fs.walk/out/readers/reader.d.ts | 6 + .../@nodelib/fs.walk/out/readers/reader.js | 11 + .../@nodelib/fs.walk/out/readers/sync.d.ts | 15 + .../@nodelib/fs.walk/out/readers/sync.js | 59 + .../@nodelib/fs.walk/out/settings.d.ts | 30 + node_modules/@nodelib/fs.walk/out/settings.js | 26 + .../@nodelib/fs.walk/out/types/index.d.ts | 8 + .../@nodelib/fs.walk/out/types/index.js | 2 + node_modules/@nodelib/fs.walk/package.json | 44 + .../@sindresorhus/merge-streams/index.d.ts | 44 + .../@sindresorhus/merge-streams/index.js | 265 + .../@sindresorhus/merge-streams/license | 9 + .../@sindresorhus/merge-streams/package.json | 49 + .../@sindresorhus/merge-streams/readme.md | 53 + node_modules/ajv/.runkit_example.js | 23 + node_modules/ajv/LICENSE | 22 + node_modules/ajv/README.md | 207 + node_modules/ajv/dist/2019.d.ts | 19 + node_modules/ajv/dist/2019.js | 61 + node_modules/ajv/dist/2019.js.map | 1 + node_modules/ajv/dist/2020.d.ts | 19 + node_modules/ajv/dist/2020.js | 55 + node_modules/ajv/dist/2020.js.map | 1 + node_modules/ajv/dist/ajv.d.ts | 18 + node_modules/ajv/dist/ajv.js | 50 + node_modules/ajv/dist/ajv.js.map | 1 + .../ajv/dist/compile/codegen/code.d.ts | 40 + node_modules/ajv/dist/compile/codegen/code.js | 156 + .../ajv/dist/compile/codegen/code.js.map | 1 + .../ajv/dist/compile/codegen/index.d.ts | 79 + .../ajv/dist/compile/codegen/index.js | 697 + .../ajv/dist/compile/codegen/index.js.map | 1 + .../ajv/dist/compile/codegen/scope.d.ts | 79 + .../ajv/dist/compile/codegen/scope.js | 143 + .../ajv/dist/compile/codegen/scope.js.map | 1 + node_modules/ajv/dist/compile/errors.d.ts | 13 + node_modules/ajv/dist/compile/errors.js | 123 + node_modules/ajv/dist/compile/errors.js.map | 1 + node_modules/ajv/dist/compile/index.d.ts | 80 + node_modules/ajv/dist/compile/index.js | 242 + node_modules/ajv/dist/compile/index.js.map | 1 + node_modules/ajv/dist/compile/jtd/parse.d.ts | 4 + node_modules/ajv/dist/compile/jtd/parse.js | 350 + .../ajv/dist/compile/jtd/parse.js.map | 1 + .../ajv/dist/compile/jtd/serialize.d.ts | 4 + .../ajv/dist/compile/jtd/serialize.js | 236 + .../ajv/dist/compile/jtd/serialize.js.map | 1 + node_modules/ajv/dist/compile/jtd/types.d.ts | 6 + node_modules/ajv/dist/compile/jtd/types.js | 14 + .../ajv/dist/compile/jtd/types.js.map | 1 + node_modules/ajv/dist/compile/names.d.ts | 20 + node_modules/ajv/dist/compile/names.js | 28 + node_modules/ajv/dist/compile/names.js.map | 1 + node_modules/ajv/dist/compile/ref_error.d.ts | 6 + node_modules/ajv/dist/compile/ref_error.js | 12 + .../ajv/dist/compile/ref_error.js.map | 1 + node_modules/ajv/dist/compile/resolve.d.ts | 12 + node_modules/ajv/dist/compile/resolve.js | 155 + node_modules/ajv/dist/compile/resolve.js.map | 1 + node_modules/ajv/dist/compile/rules.d.ts | 28 + node_modules/ajv/dist/compile/rules.js | 26 + node_modules/ajv/dist/compile/rules.js.map | 1 + node_modules/ajv/dist/compile/util.d.ts | 40 + node_modules/ajv/dist/compile/util.js | 178 + node_modules/ajv/dist/compile/util.js.map | 1 + .../dist/compile/validate/applicability.d.ts | 6 + .../dist/compile/validate/applicability.js | 19 + .../compile/validate/applicability.js.map | 1 + .../ajv/dist/compile/validate/boolSchema.d.ts | 4 + .../ajv/dist/compile/validate/boolSchema.js | 50 + .../dist/compile/validate/boolSchema.js.map | 1 + .../ajv/dist/compile/validate/dataType.d.ts | 17 + .../ajv/dist/compile/validate/dataType.js | 203 + .../ajv/dist/compile/validate/dataType.js.map | 1 + .../ajv/dist/compile/validate/defaults.d.ts | 2 + .../ajv/dist/compile/validate/defaults.js | 35 + .../ajv/dist/compile/validate/defaults.js.map | 1 + .../ajv/dist/compile/validate/index.d.ts | 42 + .../ajv/dist/compile/validate/index.js | 520 + .../ajv/dist/compile/validate/index.js.map | 1 + .../ajv/dist/compile/validate/keyword.d.ts | 8 + .../ajv/dist/compile/validate/keyword.js | 124 + .../ajv/dist/compile/validate/keyword.js.map | 1 + .../ajv/dist/compile/validate/subschema.d.ts | 47 + .../ajv/dist/compile/validate/subschema.js | 81 + .../dist/compile/validate/subschema.js.map | 1 + node_modules/ajv/dist/core.d.ts | 174 + node_modules/ajv/dist/core.js | 618 + node_modules/ajv/dist/core.js.map | 1 + node_modules/ajv/dist/jtd.d.ts | 47 + node_modules/ajv/dist/jtd.js | 72 + node_modules/ajv/dist/jtd.js.map | 1 + node_modules/ajv/dist/refs/data.json | 13 + .../dist/refs/json-schema-2019-09/index.d.ts | 2 + .../dist/refs/json-schema-2019-09/index.js | 28 + .../refs/json-schema-2019-09/index.js.map | 1 + .../json-schema-2019-09/meta/applicator.json | 53 + .../json-schema-2019-09/meta/content.json | 17 + .../refs/json-schema-2019-09/meta/core.json | 57 + .../refs/json-schema-2019-09/meta/format.json | 14 + .../json-schema-2019-09/meta/meta-data.json | 37 + .../json-schema-2019-09/meta/validation.json | 90 + .../dist/refs/json-schema-2019-09/schema.json | 39 + .../dist/refs/json-schema-2020-12/index.d.ts | 2 + .../dist/refs/json-schema-2020-12/index.js | 30 + .../refs/json-schema-2020-12/index.js.map | 1 + .../json-schema-2020-12/meta/applicator.json | 48 + .../json-schema-2020-12/meta/content.json | 17 + .../refs/json-schema-2020-12/meta/core.json | 51 + .../meta/format-annotation.json | 14 + .../json-schema-2020-12/meta/meta-data.json | 37 + .../json-schema-2020-12/meta/unevaluated.json | 15 + .../json-schema-2020-12/meta/validation.json | 90 + .../dist/refs/json-schema-2020-12/schema.json | 55 + .../ajv/dist/refs/json-schema-draft-06.json | 137 + .../ajv/dist/refs/json-schema-draft-07.json | 151 + .../ajv/dist/refs/json-schema-secure.json | 88 + node_modules/ajv/dist/refs/jtd-schema.d.ts | 3 + node_modules/ajv/dist/refs/jtd-schema.js | 118 + node_modules/ajv/dist/refs/jtd-schema.js.map | 1 + node_modules/ajv/dist/runtime/equal.d.ts | 6 + node_modules/ajv/dist/runtime/equal.js | 7 + node_modules/ajv/dist/runtime/equal.js.map | 1 + node_modules/ajv/dist/runtime/parseJson.d.ts | 18 + node_modules/ajv/dist/runtime/parseJson.js | 185 + .../ajv/dist/runtime/parseJson.js.map | 1 + node_modules/ajv/dist/runtime/quote.d.ts | 5 + node_modules/ajv/dist/runtime/quote.js | 30 + node_modules/ajv/dist/runtime/quote.js.map | 1 + node_modules/ajv/dist/runtime/re2.d.ts | 6 + node_modules/ajv/dist/runtime/re2.js | 6 + node_modules/ajv/dist/runtime/re2.js.map | 1 + node_modules/ajv/dist/runtime/timestamp.d.ts | 5 + node_modules/ajv/dist/runtime/timestamp.js | 42 + .../ajv/dist/runtime/timestamp.js.map | 1 + node_modules/ajv/dist/runtime/ucs2length.d.ts | 5 + node_modules/ajv/dist/runtime/ucs2length.js | 24 + .../ajv/dist/runtime/ucs2length.js.map | 1 + node_modules/ajv/dist/runtime/uri.d.ts | 6 + node_modules/ajv/dist/runtime/uri.js | 6 + node_modules/ajv/dist/runtime/uri.js.map | 1 + .../ajv/dist/runtime/validation_error.d.ts | 7 + .../ajv/dist/runtime/validation_error.js | 11 + .../ajv/dist/runtime/validation_error.js.map | 1 + node_modules/ajv/dist/standalone/index.d.ts | 6 + node_modules/ajv/dist/standalone/index.js | 90 + node_modules/ajv/dist/standalone/index.js.map | 1 + .../ajv/dist/standalone/instance.d.ts | 12 + node_modules/ajv/dist/standalone/instance.js | 35 + .../ajv/dist/standalone/instance.js.map | 1 + node_modules/ajv/dist/types/index.d.ts | 183 + node_modules/ajv/dist/types/index.js | 3 + node_modules/ajv/dist/types/index.js.map | 1 + node_modules/ajv/dist/types/json-schema.d.ts | 125 + node_modules/ajv/dist/types/json-schema.js | 3 + .../ajv/dist/types/json-schema.js.map | 1 + node_modules/ajv/dist/types/jtd-schema.d.ts | 174 + node_modules/ajv/dist/types/jtd-schema.js | 3 + node_modules/ajv/dist/types/jtd-schema.js.map | 1 + .../applicator/additionalItems.d.ts | 8 + .../applicator/additionalItems.js | 49 + .../applicator/additionalItems.js.map | 1 + .../applicator/additionalProperties.d.ts | 6 + .../applicator/additionalProperties.js | 106 + .../applicator/additionalProperties.js.map | 1 + .../dist/vocabularies/applicator/allOf.d.ts | 3 + .../ajv/dist/vocabularies/applicator/allOf.js | 23 + .../dist/vocabularies/applicator/allOf.js.map | 1 + .../dist/vocabularies/applicator/anyOf.d.ts | 4 + .../ajv/dist/vocabularies/applicator/anyOf.js | 12 + .../dist/vocabularies/applicator/anyOf.js.map | 1 + .../vocabularies/applicator/contains.d.ts | 7 + .../dist/vocabularies/applicator/contains.js | 95 + .../vocabularies/applicator/contains.js.map | 1 + .../vocabularies/applicator/dependencies.d.ts | 21 + .../vocabularies/applicator/dependencies.js | 85 + .../applicator/dependencies.js.map | 1 + .../applicator/dependentSchemas.d.ts | 3 + .../applicator/dependentSchemas.js | 11 + .../applicator/dependentSchemas.js.map | 1 + .../ajv/dist/vocabularies/applicator/if.d.ts | 6 + .../ajv/dist/vocabularies/applicator/if.js | 66 + .../dist/vocabularies/applicator/if.js.map | 1 + .../dist/vocabularies/applicator/index.d.ts | 13 + .../ajv/dist/vocabularies/applicator/index.js | 44 + .../dist/vocabularies/applicator/index.js.map | 1 + .../dist/vocabularies/applicator/items.d.ts | 5 + .../ajv/dist/vocabularies/applicator/items.js | 52 + .../dist/vocabularies/applicator/items.js.map | 1 + .../vocabularies/applicator/items2020.d.ts | 6 + .../dist/vocabularies/applicator/items2020.js | 30 + .../vocabularies/applicator/items2020.js.map | 1 + .../ajv/dist/vocabularies/applicator/not.d.ts | 4 + .../ajv/dist/vocabularies/applicator/not.js | 26 + .../dist/vocabularies/applicator/not.js.map | 1 + .../dist/vocabularies/applicator/oneOf.d.ts | 6 + .../ajv/dist/vocabularies/applicator/oneOf.js | 60 + .../dist/vocabularies/applicator/oneOf.js.map | 1 + .../applicator/patternProperties.d.ts | 3 + .../applicator/patternProperties.js | 75 + .../applicator/patternProperties.js.map | 1 + .../vocabularies/applicator/prefixItems.d.ts | 3 + .../vocabularies/applicator/prefixItems.js | 12 + .../applicator/prefixItems.js.map | 1 + .../vocabularies/applicator/properties.d.ts | 3 + .../vocabularies/applicator/properties.js | 54 + .../vocabularies/applicator/properties.js.map | 1 + .../applicator/propertyNames.d.ts | 6 + .../vocabularies/applicator/propertyNames.js | 38 + .../applicator/propertyNames.js.map | 1 + .../vocabularies/applicator/thenElse.d.ts | 3 + .../dist/vocabularies/applicator/thenElse.js | 13 + .../vocabularies/applicator/thenElse.js.map | 1 + node_modules/ajv/dist/vocabularies/code.d.ts | 17 + node_modules/ajv/dist/vocabularies/code.js | 131 + .../ajv/dist/vocabularies/code.js.map | 1 + .../ajv/dist/vocabularies/core/id.d.ts | 3 + node_modules/ajv/dist/vocabularies/core/id.js | 10 + .../ajv/dist/vocabularies/core/id.js.map | 1 + .../ajv/dist/vocabularies/core/index.d.ts | 3 + .../ajv/dist/vocabularies/core/index.js | 16 + .../ajv/dist/vocabularies/core/index.js.map | 1 + .../ajv/dist/vocabularies/core/ref.d.ts | 8 + .../ajv/dist/vocabularies/core/ref.js | 122 + .../ajv/dist/vocabularies/core/ref.js.map | 1 + .../vocabularies/discriminator/index.d.ts | 5 + .../dist/vocabularies/discriminator/index.js | 104 + .../vocabularies/discriminator/index.js.map | 1 + .../vocabularies/discriminator/types.d.ts | 10 + .../dist/vocabularies/discriminator/types.js | 9 + .../vocabularies/discriminator/types.js.map | 1 + .../ajv/dist/vocabularies/draft2020.d.ts | 3 + .../ajv/dist/vocabularies/draft2020.js | 23 + .../ajv/dist/vocabularies/draft2020.js.map | 1 + .../ajv/dist/vocabularies/draft7.d.ts | 3 + node_modules/ajv/dist/vocabularies/draft7.js | 17 + .../ajv/dist/vocabularies/draft7.js.map | 1 + .../vocabularies/dynamic/dynamicAnchor.d.ts | 5 + .../vocabularies/dynamic/dynamicAnchor.js | 30 + .../vocabularies/dynamic/dynamicAnchor.js.map | 1 + .../dist/vocabularies/dynamic/dynamicRef.d.ts | 5 + .../dist/vocabularies/dynamic/dynamicRef.js | 51 + .../vocabularies/dynamic/dynamicRef.js.map | 1 + .../ajv/dist/vocabularies/dynamic/index.d.ts | 3 + .../ajv/dist/vocabularies/dynamic/index.js | 9 + .../dist/vocabularies/dynamic/index.js.map | 1 + .../vocabularies/dynamic/recursiveAnchor.d.ts | 3 + .../vocabularies/dynamic/recursiveAnchor.js | 16 + .../dynamic/recursiveAnchor.js.map | 1 + .../vocabularies/dynamic/recursiveRef.d.ts | 3 + .../dist/vocabularies/dynamic/recursiveRef.js | 10 + .../vocabularies/dynamic/recursiveRef.js.map | 1 + .../ajv/dist/vocabularies/errors.d.ts | 9 + node_modules/ajv/dist/vocabularies/errors.js | 3 + .../ajv/dist/vocabularies/errors.js.map | 1 + .../ajv/dist/vocabularies/format/format.d.ts | 8 + .../ajv/dist/vocabularies/format/format.js | 92 + .../dist/vocabularies/format/format.js.map | 1 + .../ajv/dist/vocabularies/format/index.d.ts | 3 + .../ajv/dist/vocabularies/format/index.js | 6 + .../ajv/dist/vocabularies/format/index.js.map | 1 + .../dist/vocabularies/jtd/discriminator.d.ts | 6 + .../dist/vocabularies/jtd/discriminator.js | 71 + .../vocabularies/jtd/discriminator.js.map | 1 + .../ajv/dist/vocabularies/jtd/elements.d.ts | 5 + .../ajv/dist/vocabularies/jtd/elements.js | 24 + .../ajv/dist/vocabularies/jtd/elements.js.map | 1 + .../ajv/dist/vocabularies/jtd/enum.d.ts | 6 + .../ajv/dist/vocabularies/jtd/enum.js | 43 + .../ajv/dist/vocabularies/jtd/enum.js.map | 1 + .../ajv/dist/vocabularies/jtd/error.d.ts | 9 + .../ajv/dist/vocabularies/jtd/error.js | 20 + .../ajv/dist/vocabularies/jtd/error.js.map | 1 + .../ajv/dist/vocabularies/jtd/index.d.ts | 10 + .../ajv/dist/vocabularies/jtd/index.js | 29 + .../ajv/dist/vocabularies/jtd/index.js.map | 1 + .../ajv/dist/vocabularies/jtd/metadata.d.ts | 5 + .../ajv/dist/vocabularies/jtd/metadata.js | 25 + .../ajv/dist/vocabularies/jtd/metadata.js.map | 1 + .../ajv/dist/vocabularies/jtd/nullable.d.ts | 4 + .../ajv/dist/vocabularies/jtd/nullable.js | 22 + .../ajv/dist/vocabularies/jtd/nullable.js.map | 1 + .../vocabularies/jtd/optionalProperties.d.ts | 3 + .../vocabularies/jtd/optionalProperties.js | 15 + .../jtd/optionalProperties.js.map | 1 + .../ajv/dist/vocabularies/jtd/properties.d.ts | 22 + .../ajv/dist/vocabularies/jtd/properties.js | 149 + .../dist/vocabularies/jtd/properties.js.map | 1 + .../ajv/dist/vocabularies/jtd/ref.d.ts | 4 + node_modules/ajv/dist/vocabularies/jtd/ref.js | 67 + .../ajv/dist/vocabularies/jtd/ref.js.map | 1 + .../ajv/dist/vocabularies/jtd/type.d.ts | 10 + .../ajv/dist/vocabularies/jtd/type.js | 69 + .../ajv/dist/vocabularies/jtd/type.js.map | 1 + .../ajv/dist/vocabularies/jtd/union.d.ts | 3 + .../ajv/dist/vocabularies/jtd/union.js | 12 + .../ajv/dist/vocabularies/jtd/union.js.map | 1 + .../ajv/dist/vocabularies/jtd/values.d.ts | 5 + .../ajv/dist/vocabularies/jtd/values.js | 51 + .../ajv/dist/vocabularies/jtd/values.js.map | 1 + .../ajv/dist/vocabularies/metadata.d.ts | 3 + .../ajv/dist/vocabularies/metadata.js | 18 + .../ajv/dist/vocabularies/metadata.js.map | 1 + node_modules/ajv/dist/vocabularies/next.d.ts | 3 + node_modules/ajv/dist/vocabularies/next.js | 8 + .../ajv/dist/vocabularies/next.js.map | 1 + .../dist/vocabularies/unevaluated/index.d.ts | 3 + .../dist/vocabularies/unevaluated/index.js | 7 + .../vocabularies/unevaluated/index.js.map | 1 + .../unevaluated/unevaluatedItems.d.ts | 6 + .../unevaluated/unevaluatedItems.js | 40 + .../unevaluated/unevaluatedItems.js.map | 1 + .../unevaluated/unevaluatedProperties.d.ts | 6 + .../unevaluated/unevaluatedProperties.js | 65 + .../unevaluated/unevaluatedProperties.js.map | 1 + .../dist/vocabularies/validation/const.d.ts | 6 + .../ajv/dist/vocabularies/validation/const.js | 25 + .../dist/vocabularies/validation/const.js.map | 1 + .../validation/dependentRequired.d.ts | 5 + .../validation/dependentRequired.js | 12 + .../validation/dependentRequired.js.map | 1 + .../dist/vocabularies/validation/enum.d.ts | 8 + .../ajv/dist/vocabularies/validation/enum.js | 48 + .../dist/vocabularies/validation/enum.js.map | 1 + .../dist/vocabularies/validation/index.d.ts | 16 + .../ajv/dist/vocabularies/validation/index.js | 33 + .../dist/vocabularies/validation/index.js.map | 1 + .../validation/limitContains.d.ts | 3 + .../vocabularies/validation/limitContains.js | 15 + .../validation/limitContains.js.map | 1 + .../vocabularies/validation/limitItems.d.ts | 3 + .../vocabularies/validation/limitItems.js | 24 + .../vocabularies/validation/limitItems.js.map | 1 + .../vocabularies/validation/limitLength.d.ts | 3 + .../vocabularies/validation/limitLength.js | 27 + .../validation/limitLength.js.map | 1 + .../vocabularies/validation/limitNumber.d.ts | 11 + .../vocabularies/validation/limitNumber.js | 27 + .../validation/limitNumber.js.map | 1 + .../validation/limitProperties.d.ts | 3 + .../validation/limitProperties.js | 24 + .../validation/limitProperties.js.map | 1 + .../vocabularies/validation/multipleOf.d.ts | 8 + .../vocabularies/validation/multipleOf.js | 26 + .../vocabularies/validation/multipleOf.js.map | 1 + .../dist/vocabularies/validation/pattern.d.ts | 8 + .../dist/vocabularies/validation/pattern.js | 33 + .../vocabularies/validation/pattern.js.map | 1 + .../vocabularies/validation/required.d.ts | 8 + .../dist/vocabularies/validation/required.js | 79 + .../vocabularies/validation/required.js.map | 1 + .../vocabularies/validation/uniqueItems.d.ts | 9 + .../vocabularies/validation/uniqueItems.js | 64 + .../validation/uniqueItems.js.map | 1 + node_modules/ajv/lib/2019.ts | 81 + node_modules/ajv/lib/2020.ts | 75 + node_modules/ajv/lib/ajv.ts | 70 + node_modules/ajv/lib/compile/codegen/code.ts | 169 + node_modules/ajv/lib/compile/codegen/index.ts | 852 ++ node_modules/ajv/lib/compile/codegen/scope.ts | 215 + node_modules/ajv/lib/compile/errors.ts | 184 + node_modules/ajv/lib/compile/index.ts | 324 + node_modules/ajv/lib/compile/jtd/parse.ts | 411 + node_modules/ajv/lib/compile/jtd/serialize.ts | 277 + node_modules/ajv/lib/compile/jtd/types.ts | 16 + node_modules/ajv/lib/compile/names.ts | 27 + node_modules/ajv/lib/compile/ref_error.ts | 13 + node_modules/ajv/lib/compile/resolve.ts | 149 + node_modules/ajv/lib/compile/rules.ts | 50 + node_modules/ajv/lib/compile/util.ts | 213 + .../ajv/lib/compile/validate/applicability.ts | 22 + .../ajv/lib/compile/validate/boolSchema.ts | 47 + .../ajv/lib/compile/validate/dataType.ts | 230 + .../ajv/lib/compile/validate/defaults.ts | 32 + .../ajv/lib/compile/validate/index.ts | 582 + .../ajv/lib/compile/validate/keyword.ts | 171 + .../ajv/lib/compile/validate/subschema.ts | 135 + node_modules/ajv/lib/core.ts | 892 ++ node_modules/ajv/lib/jtd.ts | 132 + node_modules/ajv/lib/refs/data.json | 13 + .../ajv/lib/refs/json-schema-2019-09/index.ts | 28 + .../json-schema-2019-09/meta/applicator.json | 53 + .../json-schema-2019-09/meta/content.json | 17 + .../refs/json-schema-2019-09/meta/core.json | 57 + .../refs/json-schema-2019-09/meta/format.json | 14 + .../json-schema-2019-09/meta/meta-data.json | 37 + .../json-schema-2019-09/meta/validation.json | 90 + .../lib/refs/json-schema-2019-09/schema.json | 39 + .../ajv/lib/refs/json-schema-2020-12/index.ts | 30 + .../json-schema-2020-12/meta/applicator.json | 48 + .../json-schema-2020-12/meta/content.json | 17 + .../refs/json-schema-2020-12/meta/core.json | 51 + .../meta/format-annotation.json | 14 + .../json-schema-2020-12/meta/meta-data.json | 37 + .../json-schema-2020-12/meta/unevaluated.json | 15 + .../json-schema-2020-12/meta/validation.json | 90 + .../lib/refs/json-schema-2020-12/schema.json | 55 + .../ajv/lib/refs/json-schema-draft-06.json | 137 + .../ajv/lib/refs/json-schema-draft-07.json | 151 + .../ajv/lib/refs/json-schema-secure.json | 88 + node_modules/ajv/lib/refs/jtd-schema.ts | 130 + node_modules/ajv/lib/runtime/equal.ts | 7 + node_modules/ajv/lib/runtime/parseJson.ts | 177 + node_modules/ajv/lib/runtime/quote.ts | 31 + node_modules/ajv/lib/runtime/re2.ts | 6 + node_modules/ajv/lib/runtime/timestamp.ts | 46 + node_modules/ajv/lib/runtime/ucs2length.ts | 20 + node_modules/ajv/lib/runtime/uri.ts | 6 + .../ajv/lib/runtime/validation_error.ts | 13 + node_modules/ajv/lib/standalone/index.ts | 100 + node_modules/ajv/lib/standalone/instance.ts | 36 + node_modules/ajv/lib/types/index.ts | 244 + node_modules/ajv/lib/types/json-schema.ts | 187 + node_modules/ajv/lib/types/jtd-schema.ts | 273 + .../applicator/additionalItems.ts | 56 + .../applicator/additionalProperties.ts | 118 + .../ajv/lib/vocabularies/applicator/allOf.ts | 22 + .../ajv/lib/vocabularies/applicator/anyOf.ts | 14 + .../lib/vocabularies/applicator/contains.ts | 109 + .../vocabularies/applicator/dependencies.ts | 112 + .../applicator/dependentSchemas.ts | 11 + .../ajv/lib/vocabularies/applicator/if.ts | 80 + .../ajv/lib/vocabularies/applicator/index.ts | 53 + .../ajv/lib/vocabularies/applicator/items.ts | 59 + .../lib/vocabularies/applicator/items2020.ts | 36 + .../ajv/lib/vocabularies/applicator/not.ts | 38 + .../ajv/lib/vocabularies/applicator/oneOf.ts | 82 + .../applicator/patternProperties.ts | 91 + .../vocabularies/applicator/prefixItems.ts | 12 + .../lib/vocabularies/applicator/properties.ts | 57 + .../vocabularies/applicator/propertyNames.ts | 50 + .../lib/vocabularies/applicator/thenElse.ts | 13 + node_modules/ajv/lib/vocabularies/code.ts | 168 + node_modules/ajv/lib/vocabularies/core/id.ts | 10 + .../ajv/lib/vocabularies/core/index.ts | 16 + node_modules/ajv/lib/vocabularies/core/ref.ts | 129 + .../lib/vocabularies/discriminator/index.ts | 113 + .../lib/vocabularies/discriminator/types.ts | 12 + .../ajv/lib/vocabularies/draft2020.ts | 23 + node_modules/ajv/lib/vocabularies/draft7.ts | 17 + .../lib/vocabularies/dynamic/dynamicAnchor.ts | 31 + .../lib/vocabularies/dynamic/dynamicRef.ts | 51 + .../ajv/lib/vocabularies/dynamic/index.ts | 9 + .../vocabularies/dynamic/recursiveAnchor.ts | 14 + .../lib/vocabularies/dynamic/recursiveRef.ts | 10 + node_modules/ajv/lib/vocabularies/errors.ts | 18 + .../ajv/lib/vocabularies/format/format.ts | 120 + .../ajv/lib/vocabularies/format/index.ts | 6 + .../ajv/lib/vocabularies/jtd/discriminator.ts | 89 + .../ajv/lib/vocabularies/jtd/elements.ts | 32 + node_modules/ajv/lib/vocabularies/jtd/enum.ts | 45 + .../ajv/lib/vocabularies/jtd/error.ts | 23 + .../ajv/lib/vocabularies/jtd/index.ts | 37 + .../ajv/lib/vocabularies/jtd/metadata.ts | 24 + .../ajv/lib/vocabularies/jtd/nullable.ts | 21 + .../vocabularies/jtd/optionalProperties.ts | 15 + .../ajv/lib/vocabularies/jtd/properties.ts | 184 + node_modules/ajv/lib/vocabularies/jtd/ref.ts | 76 + node_modules/ajv/lib/vocabularies/jtd/type.ts | 75 + .../ajv/lib/vocabularies/jtd/union.ts | 12 + .../ajv/lib/vocabularies/jtd/values.ts | 58 + node_modules/ajv/lib/vocabularies/metadata.ts | 17 + node_modules/ajv/lib/vocabularies/next.ts | 8 + .../ajv/lib/vocabularies/unevaluated/index.ts | 7 + .../unevaluated/unevaluatedItems.ts | 47 + .../unevaluated/unevaluatedProperties.ts | 85 + .../ajv/lib/vocabularies/validation/const.ts | 28 + .../validation/dependentRequired.ts | 23 + .../ajv/lib/vocabularies/validation/enum.ts | 54 + .../ajv/lib/vocabularies/validation/index.ts | 49 + .../vocabularies/validation/limitContains.ts | 16 + .../lib/vocabularies/validation/limitItems.ts | 26 + .../vocabularies/validation/limitLength.ts | 30 + .../vocabularies/validation/limitNumber.ts | 42 + .../validation/limitProperties.ts | 26 + .../lib/vocabularies/validation/multipleOf.ts | 34 + .../lib/vocabularies/validation/pattern.ts | 39 + .../lib/vocabularies/validation/required.ts | 98 + .../vocabularies/validation/uniqueItems.ts | 79 + node_modules/ajv/package.json | 127 + node_modules/ansi-regex/index.d.ts | 33 + node_modules/ansi-regex/index.js | 14 + node_modules/ansi-regex/license | 9 + node_modules/ansi-regex/package.json | 61 + node_modules/ansi-regex/readme.md | 66 + node_modules/ansi-styles/index.d.ts | 345 + node_modules/ansi-styles/index.js | 163 + node_modules/ansi-styles/license | 9 + node_modules/ansi-styles/package.json | 56 + node_modules/ansi-styles/readme.md | 152 + node_modules/argparse/CHANGELOG.md | 216 + node_modules/argparse/LICENSE | 254 + node_modules/argparse/README.md | 84 + node_modules/argparse/argparse.js | 3707 ++++++ node_modules/argparse/lib/sub.js | 67 + node_modules/argparse/lib/textwrap.js | 440 + node_modules/argparse/package.json | 31 + node_modules/astral-regex/index.d.ts | 28 + node_modules/astral-regex/index.js | 6 + node_modules/astral-regex/license | 9 + node_modules/astral-regex/package.json | 33 + node_modules/astral-regex/readme.md | 46 + node_modules/braces/LICENSE | 21 + node_modules/braces/README.md | 586 + node_modules/braces/index.js | 170 + node_modules/braces/lib/compile.js | 60 + node_modules/braces/lib/constants.js | 57 + node_modules/braces/lib/expand.js | 113 + node_modules/braces/lib/parse.js | 331 + node_modules/braces/lib/stringify.js | 32 + node_modules/braces/lib/utils.js | 122 + node_modules/braces/package.json | 77 + node_modules/cacheable/LICENSE | 19 + node_modules/cacheable/README.md | 845 ++ node_modules/cacheable/dist/index.cjs | 1146 ++ node_modules/cacheable/dist/index.d.cts | 494 + node_modules/cacheable/dist/index.d.ts | 494 + node_modules/cacheable/dist/index.js | 1130 ++ node_modules/cacheable/package.json | 85 + node_modules/callsites/index.d.ts | 96 + node_modules/callsites/index.js | 13 + node_modules/callsites/license | 9 + node_modules/callsites/package.json | 39 + node_modules/callsites/readme.md | 48 + node_modules/color-convert/CHANGELOG.md | 54 + node_modules/color-convert/LICENSE | 21 + node_modules/color-convert/README.md | 68 + node_modules/color-convert/conversions.js | 839 ++ node_modules/color-convert/index.js | 81 + node_modules/color-convert/package.json | 48 + node_modules/color-convert/route.js | 97 + node_modules/color-name/LICENSE | 8 + node_modules/color-name/README.md | 11 + node_modules/color-name/index.js | 152 + node_modules/color-name/package.json | 28 + node_modules/colord/CHANGELOG.md | 188 + node_modules/colord/LICENSE.md | 21 + node_modules/colord/README.md | 1053 ++ node_modules/colord/colord.d.ts | 103 + node_modules/colord/constants.d.ts | 10 + node_modules/colord/extend.d.ts | 4 + node_modules/colord/helpers.d.ts | 20 + node_modules/colord/index.d.ts | 5 + node_modules/colord/index.js | 1 + node_modules/colord/index.mjs | 1 + node_modules/colord/package.json | 210 + node_modules/colord/parse.d.ts | 8 + node_modules/colord/plugins/a11y.d.ts | 38 + node_modules/colord/plugins/a11y.js | 1 + node_modules/colord/plugins/a11y.mjs | 1 + node_modules/colord/plugins/cmyk.d.ts | 24 + node_modules/colord/plugins/cmyk.js | 1 + node_modules/colord/plugins/cmyk.mjs | 1 + node_modules/colord/plugins/harmonies.d.ts | 16 + node_modules/colord/plugins/harmonies.js | 1 + node_modules/colord/plugins/harmonies.mjs | 1 + node_modules/colord/plugins/hwb.d.ts | 23 + node_modules/colord/plugins/hwb.js | 1 + node_modules/colord/plugins/hwb.mjs | 1 + node_modules/colord/plugins/lab.d.ts | 23 + node_modules/colord/plugins/lab.js | 1 + node_modules/colord/plugins/lab.mjs | 1 + node_modules/colord/plugins/lch.d.ts | 24 + node_modules/colord/plugins/lch.js | 1 + node_modules/colord/plugins/lch.mjs | 1 + node_modules/colord/plugins/minify.d.ts | 20 + node_modules/colord/plugins/minify.js | 1 + node_modules/colord/plugins/minify.mjs | 1 + node_modules/colord/plugins/mix.d.ts | 27 + node_modules/colord/plugins/mix.js | 1 + node_modules/colord/plugins/mix.mjs | 1 + node_modules/colord/plugins/names.d.ts | 19 + node_modules/colord/plugins/names.js | 1 + node_modules/colord/plugins/names.mjs | 1 + node_modules/colord/plugins/xyz.d.ts | 14 + node_modules/colord/plugins/xyz.js | 1 + node_modules/colord/plugins/xyz.mjs | 1 + node_modules/colord/random.d.ts | 2 + node_modules/colord/types.d.ts | 67 + node_modules/cosmiconfig/LICENSE | 22 + node_modules/cosmiconfig/README.md | 782 ++ node_modules/cosmiconfig/dist/Explorer.d.ts | 2 + node_modules/cosmiconfig/dist/Explorer.js | 170 + .../cosmiconfig/dist/ExplorerBase.d.ts | 2 + node_modules/cosmiconfig/dist/ExplorerBase.js | 126 + .../cosmiconfig/dist/ExplorerSync.d.ts | 2 + node_modules/cosmiconfig/dist/ExplorerSync.js | 184 + .../cosmiconfig/dist/cacheWrapper.d.ts | 5 + node_modules/cosmiconfig/dist/cacheWrapper.js | 32 + .../cosmiconfig/dist/canUseDynamicImport.d.ts | 3 + .../cosmiconfig/dist/canUseDynamicImport.js | 23 + node_modules/cosmiconfig/dist/defaults.d.ts | 25 + node_modules/cosmiconfig/dist/defaults.js | 105 + .../cosmiconfig/dist/getDirectory.d.ts | 4 + node_modules/cosmiconfig/dist/getDirectory.js | 38 + .../cosmiconfig/dist/getPropertyByPath.d.ts | 5 + .../cosmiconfig/dist/getPropertyByPath.js | 28 + node_modules/cosmiconfig/dist/index.d.ts | 6 + node_modules/cosmiconfig/dist/index.js | 148 + node_modules/cosmiconfig/dist/loaders.d.ts | 8 + node_modules/cosmiconfig/dist/loaders.js | 150 + node_modules/cosmiconfig/dist/merge.d.ts | 9 + node_modules/cosmiconfig/dist/merge.js | 40 + node_modules/cosmiconfig/dist/readFile.d.ts | 7 + node_modules/cosmiconfig/dist/readFile.js | 56 + node_modules/cosmiconfig/dist/types.d.ts | 98 + node_modules/cosmiconfig/dist/types.js | 3 + node_modules/cosmiconfig/dist/util.d.ts | 2 + node_modules/cosmiconfig/dist/util.js | 99 + node_modules/cosmiconfig/package.json | 103 + node_modules/css-functions-list/CHANGELOG.md | 103 + node_modules/css-functions-list/LICENSE.md | 16 + node_modules/css-functions-list/README.md | 66 + .../css-functions-list/dist/index.cjs | 11 + .../css-functions-list/dist/index.cjs.map | 1 + .../css-functions-list/dist/index.d.ts | 9 + .../css-functions-list/dist/index.d.ts.map | 1 + node_modules/css-functions-list/dist/index.js | 11 + .../css-functions-list/dist/index.js.map | 1 + .../css-functions-list/dist/index.json | 762 ++ node_modules/css-functions-list/package.json | 83 + node_modules/css-tree/LICENSE | 19 + node_modules/css-tree/README.md | 192 + .../css-tree/cjs/convertor/create.cjs | 32 + node_modules/css-tree/cjs/convertor/index.cjs | 8 + node_modules/css-tree/cjs/data-patch.cjs | 7 + node_modules/css-tree/cjs/data.cjs | 120 + .../cjs/definition-syntax/SyntaxError.cjs | 16 + .../cjs/definition-syntax/generate.cjs | 139 + .../css-tree/cjs/definition-syntax/index.cjs | 13 + .../css-tree/cjs/definition-syntax/parse.cjs | 556 + .../cjs/definition-syntax/scanner.cjs | 113 + .../cjs/definition-syntax/tokenizer.cjs | 59 + .../css-tree/cjs/definition-syntax/walk.cjs | 57 + .../css-tree/cjs/generator/create.cjs | 102 + node_modules/css-tree/cjs/generator/index.cjs | 8 + .../css-tree/cjs/generator/sourceMap.cjs | 96 + .../css-tree/cjs/generator/token-before.cjs | 170 + node_modules/css-tree/cjs/index.cjs | 65 + node_modules/css-tree/cjs/lexer/Lexer.cjs | 517 + node_modules/css-tree/cjs/lexer/error.cjs | 128 + .../css-tree/cjs/lexer/generic-an-plus-b.cjs | 235 + .../css-tree/cjs/lexer/generic-const.cjs | 12 + .../css-tree/cjs/lexer/generic-urange.cjs | 149 + node_modules/css-tree/cjs/lexer/generic.cjs | 589 + node_modules/css-tree/cjs/lexer/index.cjs | 7 + .../css-tree/cjs/lexer/match-graph.cjs | 530 + node_modules/css-tree/cjs/lexer/match.cjs | 632 + .../css-tree/cjs/lexer/prepare-tokens.cjs | 54 + node_modules/css-tree/cjs/lexer/search.cjs | 65 + node_modules/css-tree/cjs/lexer/structure.cjs | 173 + node_modules/css-tree/cjs/lexer/trace.cjs | 73 + node_modules/css-tree/cjs/lexer/units.cjs | 38 + .../css-tree/cjs/parser/SyntaxError.cjs | 74 + node_modules/css-tree/cjs/parser/create.cjs | 340 + node_modules/css-tree/cjs/parser/index.cjs | 8 + .../css-tree/cjs/parser/parse-selector.cjs | 8 + node_modules/css-tree/cjs/parser/sequence.cjs | 47 + .../css-tree/cjs/syntax/atrule/container.cjs | 32 + .../css-tree/cjs/syntax/atrule/font-face.cjs | 12 + .../css-tree/cjs/syntax/atrule/import.cjs | 101 + .../css-tree/cjs/syntax/atrule/index.cjs | 27 + .../css-tree/cjs/syntax/atrule/layer.cjs | 16 + .../css-tree/cjs/syntax/atrule/media.cjs | 16 + .../css-tree/cjs/syntax/atrule/nest.cjs | 16 + .../css-tree/cjs/syntax/atrule/page.cjs | 16 + .../css-tree/cjs/syntax/atrule/scope.cjs | 16 + .../cjs/syntax/atrule/starting-style.cjs | 12 + .../css-tree/cjs/syntax/atrule/supports.cjs | 16 + .../css-tree/cjs/syntax/config/generator.cjs | 9 + .../css-tree/cjs/syntax/config/lexer.cjs | 14 + .../css-tree/cjs/syntax/config/mix.cjs | 127 + .../cjs/syntax/config/parser-selector.cjs | 19 + .../css-tree/cjs/syntax/config/parser.cjs | 49 + .../css-tree/cjs/syntax/config/walker.cjs | 9 + node_modules/css-tree/cjs/syntax/create.cjs | 58 + .../cjs/syntax/function/expression.cjs | 11 + .../css-tree/cjs/syntax/function/var.cjs | 43 + node_modules/css-tree/cjs/syntax/index.cjs | 14 + .../css-tree/cjs/syntax/node/AnPlusB.cjs | 293 + .../css-tree/cjs/syntax/node/Atrule.cjs | 103 + .../cjs/syntax/node/AtrulePrelude.cjs | 52 + .../cjs/syntax/node/AttributeSelector.cjs | 148 + .../css-tree/cjs/syntax/node/Block.cjs | 96 + .../css-tree/cjs/syntax/node/Brackets.cjs | 38 + node_modules/css-tree/cjs/syntax/node/CDC.cjs | 26 + node_modules/css-tree/cjs/syntax/node/CDO.cjs | 26 + .../cjs/syntax/node/ClassSelector.cjs | 31 + .../css-tree/cjs/syntax/node/Combinator.cjs | 61 + .../css-tree/cjs/syntax/node/Comment.cjs | 40 + .../css-tree/cjs/syntax/node/Condition.cjs | 120 + .../css-tree/cjs/syntax/node/Declaration.cjs | 166 + .../cjs/syntax/node/DeclarationList.cjs | 62 + .../css-tree/cjs/syntax/node/Dimension.cjs | 30 + .../css-tree/cjs/syntax/node/Feature.cjs | 101 + .../cjs/syntax/node/FeatureFunction.cjs | 67 + .../css-tree/cjs/syntax/node/FeatureRange.cjs | 133 + .../css-tree/cjs/syntax/node/Function.cjs | 45 + .../cjs/syntax/node/GeneralEnclosed.cjs | 68 + .../css-tree/cjs/syntax/node/Hash.cjs | 30 + .../css-tree/cjs/syntax/node/IdSelector.cjs | 33 + .../css-tree/cjs/syntax/node/Identifier.cjs | 25 + .../css-tree/cjs/syntax/node/Layer.cjs | 35 + .../css-tree/cjs/syntax/node/LayerList.cjs | 43 + .../css-tree/cjs/syntax/node/LayerName.cjs | 34 + .../cjs/syntax/node/LayerNameList.cjs | 42 + .../cjs/syntax/node/MediaCondition.cjs | 70 + .../css-tree/cjs/syntax/node/MediaFeature.cjs | 76 + .../cjs/syntax/node/MediaFeatureRange.cjs | 11 + .../css-tree/cjs/syntax/node/MediaQuery.cjs | 100 + .../cjs/syntax/node/MediaQueryList.cjs | 41 + .../cjs/syntax/node/NestingSelector.cjs | 29 + node_modules/css-tree/cjs/syntax/node/Nth.cjs | 54 + .../css-tree/cjs/syntax/node/Number.cjs | 25 + .../css-tree/cjs/syntax/node/Operator.cjs | 28 + .../css-tree/cjs/syntax/node/Parentheses.cjs | 38 + .../css-tree/cjs/syntax/node/Percentage.cjs | 25 + .../cjs/syntax/node/PseudoClassSelector.cjs | 67 + .../cjs/syntax/node/PseudoElementSelector.cjs | 69 + .../css-tree/cjs/syntax/node/Ratio.cjs | 71 + node_modules/css-tree/cjs/syntax/node/Raw.cjs | 48 + .../css-tree/cjs/syntax/node/Rule.cjs | 58 + .../css-tree/cjs/syntax/node/Scope.cjs | 69 + .../css-tree/cjs/syntax/node/Selector.cjs | 38 + .../css-tree/cjs/syntax/node/SelectorList.cjs | 43 + .../css-tree/cjs/syntax/node/String.cjs | 26 + .../css-tree/cjs/syntax/node/StyleSheet.cjs | 83 + .../cjs/syntax/node/SupportsDeclaration.cjs | 38 + .../cjs/syntax/node/SupportsFeature.cjs | 69 + .../css-tree/cjs/syntax/node/TypeSelector.cjs | 59 + .../css-tree/cjs/syntax/node/UnicodeRange.cjs | 158 + node_modules/css-tree/cjs/syntax/node/Url.cjs | 54 + .../css-tree/cjs/syntax/node/Value.cjs | 26 + .../css-tree/cjs/syntax/node/WhiteSpace.cjs | 34 + .../cjs/syntax/node/common/feature-range.cjs | 112 + .../cjs/syntax/node/common/feature.cjs | 76 + .../cjs/syntax/node/index-generate.cjs | 103 + .../cjs/syntax/node/index-parse-selector.cjs | 39 + .../css-tree/cjs/syntax/node/index-parse.cjs | 103 + .../css-tree/cjs/syntax/node/index.cjs | 103 + .../css-tree/cjs/syntax/pseudo/index.cjs | 60 + .../css-tree/cjs/syntax/pseudo/lang.cjs | 37 + .../cjs/syntax/scope/atrulePrelude.cjs | 9 + .../css-tree/cjs/syntax/scope/default.cjs | 76 + .../css-tree/cjs/syntax/scope/index.cjs | 11 + .../css-tree/cjs/syntax/scope/selector.cjs | 88 + .../css-tree/cjs/syntax/scope/value.cjs | 29 + .../cjs/tokenizer/OffsetToLocation.cjs | 91 + .../css-tree/cjs/tokenizer/TokenStream.cjs | 308 + .../css-tree/cjs/tokenizer/adopt-buffer.cjs | 13 + .../cjs/tokenizer/char-code-definitions.cjs | 236 + node_modules/css-tree/cjs/tokenizer/index.cjs | 554 + node_modules/css-tree/cjs/tokenizer/names.cjs | 32 + node_modules/css-tree/cjs/tokenizer/types.cjs | 57 + node_modules/css-tree/cjs/tokenizer/utils.cjs | 261 + node_modules/css-tree/cjs/utils/List.cjs | 473 + node_modules/css-tree/cjs/utils/clone.cjs | 25 + .../cjs/utils/create-custom-error.cjs | 18 + node_modules/css-tree/cjs/utils/ident.cjs | 102 + node_modules/css-tree/cjs/utils/index.cjs | 20 + node_modules/css-tree/cjs/utils/names.cjs | 113 + node_modules/css-tree/cjs/utils/string.cjs | 99 + node_modules/css-tree/cjs/utils/url.cjs | 108 + node_modules/css-tree/cjs/version.cjs | 5 + node_modules/css-tree/cjs/walker/create.cjs | 291 + node_modules/css-tree/cjs/walker/index.cjs | 8 + node_modules/css-tree/data/patch.json | 982 ++ node_modules/css-tree/dist/csstree.esm.js | 12 + node_modules/css-tree/dist/csstree.js | 12 + node_modules/css-tree/dist/data.cjs | 1308 ++ node_modules/css-tree/dist/data.js | 1308 ++ node_modules/css-tree/dist/version.cjs | 1 + node_modules/css-tree/dist/version.js | 1 + node_modules/css-tree/lib/convertor/create.js | 28 + node_modules/css-tree/lib/convertor/index.js | 4 + node_modules/css-tree/lib/data-patch.js | 6 + node_modules/css-tree/lib/data.js | 118 + .../lib/definition-syntax/SyntaxError.js | 12 + .../lib/definition-syntax/generate.js | 135 + .../css-tree/lib/definition-syntax/index.js | 4 + .../css-tree/lib/definition-syntax/parse.js | 552 + .../css-tree/lib/definition-syntax/scanner.js | 109 + .../css-tree/lib/definition-syntax/walk.js | 53 + node_modules/css-tree/lib/generator/create.js | 97 + node_modules/css-tree/lib/generator/index.js | 4 + .../css-tree/lib/generator/sourceMap.js | 92 + .../css-tree/lib/generator/token-before.js | 182 + node_modules/css-tree/lib/index.js | 30 + node_modules/css-tree/lib/lexer/Lexer.js | 511 + node_modules/css-tree/lib/lexer/error.js | 123 + .../css-tree/lib/lexer/generic-an-plus-b.js | 238 + .../css-tree/lib/lexer/generic-const.js | 8 + .../css-tree/lib/lexer/generic-urange.js | 151 + node_modules/css-tree/lib/lexer/generic.js | 622 + node_modules/css-tree/lib/lexer/index.js | 1 + .../css-tree/lib/lexer/match-graph.js | 527 + node_modules/css-tree/lib/lexer/match.js | 630 + .../css-tree/lib/lexer/prepare-tokens.js | 50 + node_modules/css-tree/lib/lexer/search.js | 61 + node_modules/css-tree/lib/lexer/structure.js | 169 + node_modules/css-tree/lib/lexer/trace.js | 66 + node_modules/css-tree/lib/lexer/units.js | 27 + .../css-tree/lib/parser/SyntaxError.js | 70 + node_modules/css-tree/lib/parser/create.js | 350 + node_modules/css-tree/lib/parser/index.js | 4 + .../css-tree/lib/parser/parse-selector.js | 4 + node_modules/css-tree/lib/parser/sequence.js | 43 + .../css-tree/lib/syntax/atrule/container.js | 28 + .../css-tree/lib/syntax/atrule/font-face.js | 8 + .../css-tree/lib/syntax/atrule/import.js | 104 + .../css-tree/lib/syntax/atrule/index.js | 23 + .../css-tree/lib/syntax/atrule/layer.js | 12 + .../css-tree/lib/syntax/atrule/media.js | 12 + .../css-tree/lib/syntax/atrule/nest.js | 12 + .../css-tree/lib/syntax/atrule/page.js | 12 + .../css-tree/lib/syntax/atrule/scope.js | 12 + .../lib/syntax/atrule/starting-style.js | 8 + .../css-tree/lib/syntax/atrule/supports.js | 12 + .../css-tree/lib/syntax/config/generator.js | 5 + .../css-tree/lib/syntax/config/lexer.js | 10 + .../css-tree/lib/syntax/config/mix.js | 123 + .../lib/syntax/config/parser-selector.js | 15 + .../css-tree/lib/syntax/config/parser.js | 45 + .../css-tree/lib/syntax/config/walker.js | 5 + node_modules/css-tree/lib/syntax/create.js | 55 + .../lib/syntax/function/expression.js | 7 + .../css-tree/lib/syntax/function/var.js | 39 + node_modules/css-tree/lib/syntax/index.js | 10 + .../css-tree/lib/syntax/node/AnPlusB.js | 292 + .../css-tree/lib/syntax/node/Atrule.js | 100 + .../css-tree/lib/syntax/node/AtrulePrelude.js | 47 + .../lib/syntax/node/AttributeSelector.js | 147 + .../css-tree/lib/syntax/node/Block.js | 95 + .../css-tree/lib/syntax/node/Brackets.js | 35 + node_modules/css-tree/lib/syntax/node/CDC.js | 19 + node_modules/css-tree/lib/syntax/node/CDO.js | 19 + .../css-tree/lib/syntax/node/ClassSelector.js | 24 + .../css-tree/lib/syntax/node/Combinator.js | 54 + .../css-tree/lib/syntax/node/Comment.js | 33 + .../css-tree/lib/syntax/node/Condition.js | 123 + .../css-tree/lib/syntax/node/Declaration.js | 165 + .../lib/syntax/node/DeclarationList.js | 62 + .../css-tree/lib/syntax/node/Dimension.js | 23 + .../css-tree/lib/syntax/node/Feature.js | 103 + .../lib/syntax/node/FeatureFunction.js | 63 + .../css-tree/lib/syntax/node/FeatureRange.js | 133 + .../css-tree/lib/syntax/node/Function.js | 41 + .../lib/syntax/node/GeneralEnclosed.js | 66 + node_modules/css-tree/lib/syntax/node/Hash.js | 23 + .../css-tree/lib/syntax/node/IdSelector.js | 26 + .../css-tree/lib/syntax/node/Identifier.js | 18 + .../css-tree/lib/syntax/node/Layer.js | 28 + .../css-tree/lib/syntax/node/LayerList.js | 36 + .../css-tree/lib/syntax/node/MediaQuery.js | 102 + .../lib/syntax/node/MediaQueryList.js | 34 + .../lib/syntax/node/NestingSelector.js | 22 + node_modules/css-tree/lib/syntax/node/Nth.js | 47 + .../css-tree/lib/syntax/node/Number.js | 18 + .../css-tree/lib/syntax/node/Operator.js | 21 + .../css-tree/lib/syntax/node/Parentheses.js | 34 + .../css-tree/lib/syntax/node/Percentage.js | 18 + .../lib/syntax/node/PseudoClassSelector.js | 65 + .../lib/syntax/node/PseudoElementSelector.js | 66 + .../css-tree/lib/syntax/node/Ratio.js | 68 + node_modules/css-tree/lib/syntax/node/Raw.js | 41 + node_modules/css-tree/lib/syntax/node/Rule.js | 51 + .../css-tree/lib/syntax/node/Scope.js | 66 + .../css-tree/lib/syntax/node/Selector.js | 31 + .../css-tree/lib/syntax/node/SelectorList.js | 35 + .../css-tree/lib/syntax/node/String.js | 19 + .../css-tree/lib/syntax/node/StyleSheet.js | 82 + .../lib/syntax/node/SupportsDeclaration.js | 34 + .../css-tree/lib/syntax/node/TypeSelector.js | 52 + .../css-tree/lib/syntax/node/UnicodeRange.js | 156 + node_modules/css-tree/lib/syntax/node/Url.js | 52 + .../css-tree/lib/syntax/node/Value.js | 19 + .../css-tree/lib/syntax/node/WhiteSpace.js | 27 + .../lib/syntax/node/index-generate.js | 49 + .../lib/syntax/node/index-parse-selector.js | 17 + .../css-tree/lib/syntax/node/index-parse.js | 49 + .../css-tree/lib/syntax/node/index.js | 49 + .../css-tree/lib/syntax/pseudo/index.js | 56 + .../css-tree/lib/syntax/pseudo/lang.js | 33 + .../lib/syntax/scope/atrulePrelude.js | 5 + .../css-tree/lib/syntax/scope/default.js | 85 + .../css-tree/lib/syntax/scope/index.js | 3 + .../css-tree/lib/syntax/scope/selector.js | 94 + .../css-tree/lib/syntax/scope/value.js | 25 + .../lib/tokenizer/OffsetToLocation.js | 87 + .../css-tree/lib/tokenizer/TokenStream.js | 316 + .../css-tree/lib/tokenizer/adopt-buffer.js | 9 + .../lib/tokenizer/char-code-definitions.js | 212 + node_modules/css-tree/lib/tokenizer/index.js | 513 + node_modules/css-tree/lib/tokenizer/names.js | 28 + node_modules/css-tree/lib/tokenizer/types.js | 28 + node_modules/css-tree/lib/tokenizer/utils.js | 254 + node_modules/css-tree/lib/utils/List.js | 469 + node_modules/css-tree/lib/utils/clone.js | 21 + .../css-tree/lib/utils/create-custom-error.js | 14 + node_modules/css-tree/lib/utils/ident.js | 101 + node_modules/css-tree/lib/utils/index.js | 6 + node_modules/css-tree/lib/utils/names.js | 106 + node_modules/css-tree/lib/utils/string.js | 99 + node_modules/css-tree/lib/utils/url.js | 108 + node_modules/css-tree/lib/version.js | 5 + node_modules/css-tree/lib/walker/create.js | 287 + node_modules/css-tree/lib/walker/index.js | 4 + node_modules/css-tree/package.json | 125 + node_modules/cssesc/LICENSE-MIT.txt | 20 + node_modules/cssesc/README.md | 201 + node_modules/cssesc/bin/cssesc | 116 + node_modules/cssesc/cssesc.js | 110 + node_modules/cssesc/man/cssesc.1 | 70 + node_modules/cssesc/package.json | 51 + node_modules/debug/LICENSE | 20 + node_modules/debug/README.md | 481 + node_modules/debug/package.json | 64 + node_modules/debug/src/browser.js | 272 + node_modules/debug/src/common.js | 292 + node_modules/debug/src/index.js | 10 + node_modules/debug/src/node.js | 263 + node_modules/emoji-regex/LICENSE-MIT.txt | 20 + node_modules/emoji-regex/README.md | 73 + node_modules/emoji-regex/es2015/index.js | 6 + node_modules/emoji-regex/es2015/text.js | 6 + node_modules/emoji-regex/index.d.ts | 23 + node_modules/emoji-regex/index.js | 6 + node_modules/emoji-regex/package.json | 50 + node_modules/emoji-regex/text.js | 6 + node_modules/env-paths/index.d.ts | 101 + node_modules/env-paths/index.js | 74 + node_modules/env-paths/license | 9 + node_modules/env-paths/package.json | 45 + node_modules/env-paths/readme.md | 115 + node_modules/error-ex/LICENSE | 21 + node_modules/error-ex/README.md | 144 + node_modules/error-ex/index.js | 141 + node_modules/error-ex/package.json | 46 + node_modules/fast-deep-equal/LICENSE | 21 + node_modules/fast-deep-equal/README.md | 96 + node_modules/fast-deep-equal/es6/index.d.ts | 2 + node_modules/fast-deep-equal/es6/index.js | 72 + node_modules/fast-deep-equal/es6/react.d.ts | 2 + node_modules/fast-deep-equal/es6/react.js | 79 + node_modules/fast-deep-equal/index.d.ts | 4 + node_modules/fast-deep-equal/index.js | 46 + node_modules/fast-deep-equal/package.json | 61 + node_modules/fast-deep-equal/react.d.ts | 2 + node_modules/fast-deep-equal/react.js | 53 + node_modules/fast-glob/LICENSE | 21 + node_modules/fast-glob/README.md | 830 ++ node_modules/fast-glob/out/index.d.ts | 40 + node_modules/fast-glob/out/index.js | 102 + .../fast-glob/out/managers/tasks.d.ts | 22 + node_modules/fast-glob/out/managers/tasks.js | 110 + .../fast-glob/out/providers/async.d.ts | 9 + node_modules/fast-glob/out/providers/async.js | 23 + .../fast-glob/out/providers/filters/deep.d.ts | 16 + .../fast-glob/out/providers/filters/deep.js | 62 + .../out/providers/filters/entry.d.ts | 17 + .../fast-glob/out/providers/filters/entry.js | 85 + .../out/providers/filters/error.d.ts | 8 + .../fast-glob/out/providers/filters/error.js | 15 + .../out/providers/matchers/matcher.d.ts | 33 + .../out/providers/matchers/matcher.js | 45 + .../out/providers/matchers/partial.d.ts | 4 + .../out/providers/matchers/partial.js | 38 + .../fast-glob/out/providers/provider.d.ts | 19 + .../fast-glob/out/providers/provider.js | 48 + .../fast-glob/out/providers/stream.d.ts | 11 + .../fast-glob/out/providers/stream.js | 31 + .../fast-glob/out/providers/sync.d.ts | 9 + node_modules/fast-glob/out/providers/sync.js | 23 + .../out/providers/transformers/entry.d.ts | 8 + .../out/providers/transformers/entry.js | 26 + node_modules/fast-glob/out/readers/async.d.ts | 10 + node_modules/fast-glob/out/readers/async.js | 35 + .../fast-glob/out/readers/reader.d.ts | 15 + node_modules/fast-glob/out/readers/reader.js | 33 + .../fast-glob/out/readers/stream.d.ts | 14 + node_modules/fast-glob/out/readers/stream.js | 55 + node_modules/fast-glob/out/readers/sync.d.ts | 12 + node_modules/fast-glob/out/readers/sync.js | 43 + node_modules/fast-glob/out/settings.d.ts | 164 + node_modules/fast-glob/out/settings.js | 59 + node_modules/fast-glob/out/types/index.d.ts | 31 + node_modules/fast-glob/out/types/index.js | 2 + node_modules/fast-glob/out/utils/array.d.ts | 2 + node_modules/fast-glob/out/utils/array.js | 22 + node_modules/fast-glob/out/utils/errno.d.ts | 2 + node_modules/fast-glob/out/utils/errno.js | 7 + node_modules/fast-glob/out/utils/fs.d.ts | 4 + node_modules/fast-glob/out/utils/fs.js | 19 + node_modules/fast-glob/out/utils/index.d.ts | 8 + node_modules/fast-glob/out/utils/index.js | 17 + node_modules/fast-glob/out/utils/path.d.ts | 13 + node_modules/fast-glob/out/utils/path.js | 68 + node_modules/fast-glob/out/utils/pattern.d.ts | 49 + node_modules/fast-glob/out/utils/pattern.js | 206 + node_modules/fast-glob/out/utils/stream.d.ts | 4 + node_modules/fast-glob/out/utils/stream.js | 17 + node_modules/fast-glob/out/utils/string.d.ts | 2 + node_modules/fast-glob/out/utils/string.js | 11 + node_modules/fast-glob/package.json | 81 + node_modules/fast-uri/.gitattributes | 2 + node_modules/fast-uri/.github/.stale.yml | 21 + node_modules/fast-uri/.github/dependabot.yml | 13 + .../fast-uri/.github/tests_checker.yml | 8 + .../fast-uri/.github/workflows/ci.yml | 101 + .../.github/workflows/package-manager-ci.yml | 24 + node_modules/fast-uri/LICENSE | 32 + node_modules/fast-uri/README.md | 143 + node_modules/fast-uri/benchmark/benchmark.mjs | 159 + node_modules/fast-uri/benchmark/equal.mjs | 51 + .../fast-uri/benchmark/non-simple-domain.mjs | 22 + node_modules/fast-uri/benchmark/package.json | 17 + .../string-array-to-hex-stripped.mjs | 24 + .../fast-uri/benchmark/ws-is-secure.mjs | 65 + node_modules/fast-uri/eslint.config.js | 6 + node_modules/fast-uri/index.js | 340 + node_modules/fast-uri/lib/schemes.js | 267 + node_modules/fast-uri/lib/utils.js | 336 + node_modules/fast-uri/package.json | 69 + node_modules/fast-uri/test/ajv.test.js | 43 + node_modules/fast-uri/test/equal.test.js | 108 + .../fast-uri/test/fixtures/uri-js-parse.json | 501 + .../test/fixtures/uri-js-serialize.json | 120 + node_modules/fast-uri/test/parse.test.js | 318 + node_modules/fast-uri/test/resolve.test.js | 78 + node_modules/fast-uri/test/rfc-3986.test.js | 90 + node_modules/fast-uri/test/serialize.test.js | 151 + .../test/uri-js-compatibility.test.js | 33 + node_modules/fast-uri/test/uri-js.test.js | 912 ++ node_modules/fast-uri/test/util.test.js | 38 + node_modules/fast-uri/tsconfig.json | 9 + node_modules/fast-uri/types/index.d.ts | 60 + node_modules/fast-uri/types/index.test-d.ts | 17 + .../fastest-levenshtein/.eslintrc.json | 30 + node_modules/fastest-levenshtein/.prettierrc | 4 + node_modules/fastest-levenshtein/.travis.yml | 21 + node_modules/fastest-levenshtein/LICENSE.md | 21 + node_modules/fastest-levenshtein/README.md | 57 + node_modules/fastest-levenshtein/bench.js | 96 + node_modules/fastest-levenshtein/esm/mod.d.ts | 4 + .../fastest-levenshtein/esm/mod.d.ts.map | 1 + node_modules/fastest-levenshtein/esm/mod.js | 138 + node_modules/fastest-levenshtein/mod.d.ts | 3 + node_modules/fastest-levenshtein/mod.js | 142 + node_modules/fastest-levenshtein/package.json | 72 + node_modules/fastest-levenshtein/test.js | 55 + node_modules/fastest-levenshtein/test.ts | 67 + node_modules/fastq/LICENSE | 13 + node_modules/fastq/README.md | 310 + node_modules/fastq/SECURITY.md | 15 + node_modules/fastq/bench.js | 66 + node_modules/fastq/eslint.config.js | 11 + node_modules/fastq/example.js | 14 + node_modules/fastq/example.mjs | 9 + node_modules/fastq/index.d.ts | 59 + node_modules/fastq/package.json | 49 + node_modules/fastq/queue.js | 346 + node_modules/fastq/test/example.ts | 83 + node_modules/fastq/test/promise.js | 325 + node_modules/fastq/test/test.js | 733 ++ node_modules/fastq/test/tsconfig.json | 11 + node_modules/file-entry-cache/LICENSE | 19 + node_modules/file-entry-cache/README.md | 630 + node_modules/file-entry-cache/dist/index.cjs | 559 + .../file-entry-cache/dist/index.d.cts | 304 + node_modules/file-entry-cache/dist/index.d.ts | 304 + node_modules/file-entry-cache/dist/index.js | 525 + node_modules/file-entry-cache/package.json | 62 + node_modules/fill-range/LICENSE | 21 + node_modules/fill-range/README.md | 237 + node_modules/fill-range/index.js | 248 + node_modules/fill-range/package.json | 74 + node_modules/flat-cache/LICENSE | 19 + node_modules/flat-cache/README.md | 235 + node_modules/flat-cache/dist/index.cjs | 495 + node_modules/flat-cache/dist/index.d.cts | 255 + node_modules/flat-cache/dist/index.d.ts | 255 + node_modules/flat-cache/dist/index.js | 455 + node_modules/flat-cache/package.json | 87 + node_modules/flatted/LICENSE | 15 + node_modules/flatted/README.md | 117 + node_modules/flatted/cjs/index.js | 125 + node_modules/flatted/cjs/package.json | 1 + node_modules/flatted/es.js | 1 + node_modules/flatted/esm.js | 1 + node_modules/flatted/esm/index.js | 120 + node_modules/flatted/golang/README.md | 60 + .../flatted/golang/pkg/flatted/flatted.go | 277 + node_modules/flatted/index.js | 146 + node_modules/flatted/min.js | 1 + node_modules/flatted/package.json | 79 + node_modules/flatted/php/flatted.php | 156 + node_modules/flatted/python/flatted.py | 149 + node_modules/flatted/types/index.d.ts | 4 + node_modules/get-east-asian-width/index.d.ts | 60 + node_modules/get-east-asian-width/index.js | 30 + node_modules/get-east-asian-width/license | 9 + .../get-east-asian-width/lookup-data.js | 18 + node_modules/get-east-asian-width/lookup.js | 135 + .../get-east-asian-width/package.json | 71 + node_modules/get-east-asian-width/readme.md | 65 + .../get-east-asian-width/utilities.js | 24 + node_modules/glob-parent/CHANGELOG.md | 110 + node_modules/glob-parent/LICENSE | 15 + node_modules/glob-parent/README.md | 137 + node_modules/glob-parent/index.js | 42 + node_modules/glob-parent/package.json | 48 + node_modules/global-modules/LICENSE | 21 + node_modules/global-modules/README.md | 87 + node_modules/global-modules/index.js | 29 + node_modules/global-modules/package.json | 66 + node_modules/global-prefix/LICENSE | 21 + node_modules/global-prefix/README.md | 92 + node_modules/global-prefix/index.js | 85 + node_modules/global-prefix/package.json | 50 + node_modules/globby/ignore.js | 337 + node_modules/globby/index.d.ts | 394 + node_modules/globby/index.js | 488 + node_modules/globby/license | 9 + node_modules/globby/package.json | 94 + node_modules/globby/readme.md | 388 + node_modules/globby/utilities.js | 382 + node_modules/globjoin/CHANGELOG.md | 14 + node_modules/globjoin/LICENSE | 22 + node_modules/globjoin/README.md | 54 + node_modules/globjoin/index.js | 43 + node_modules/globjoin/package.json | 37 + node_modules/has-flag/index.d.ts | 39 + node_modules/has-flag/index.js | 8 + node_modules/has-flag/license | 9 + node_modules/has-flag/package.json | 49 + node_modules/has-flag/readme.md | 74 + node_modules/hashery/LICENSE | 21 + node_modules/hashery/README.md | 1373 ++ .../hashery/dist/browser/index.global.js | 8 + .../hashery/dist/browser/index.global.js.map | 1 + node_modules/hashery/dist/browser/index.js | 3 + .../hashery/dist/browser/index.js.map | 1 + node_modules/hashery/dist/node/index.cjs | 989 ++ node_modules/hashery/dist/node/index.d.cts | 935 ++ node_modules/hashery/dist/node/index.d.ts | 935 ++ node_modules/hashery/dist/node/index.js | 957 ++ node_modules/hashery/package.json | 92 + node_modules/hookified/LICENSE | 19 + node_modules/hookified/README.md | 1424 ++ .../hookified/dist/browser/index.global.js | 693 + .../dist/browser/index.global.js.map | 1 + node_modules/hookified/dist/browser/index.js | 694 + .../hookified/dist/browser/index.js.map | 1 + node_modules/hookified/dist/node/index.cjs | 717 + node_modules/hookified/dist/node/index.d.cts | 543 + node_modules/hookified/dist/node/index.d.ts | 543 + node_modules/hookified/dist/node/index.js | 689 + node_modules/hookified/package.json | 92 + node_modules/html-tags/html-tags-void.d.ts | 14 + node_modules/html-tags/html-tags-void.json | 15 + node_modules/html-tags/html-tags.d.ts | 116 + node_modules/html-tags/html-tags.json | 117 + node_modules/html-tags/index.d.ts | 33 + node_modules/html-tags/index.js | 3 + node_modules/html-tags/license | 9 + node_modules/html-tags/package.json | 50 + node_modules/html-tags/readme.md | 35 + node_modules/ignore/LICENSE-MIT | 21 + node_modules/ignore/README.md | 452 + node_modules/ignore/index.d.ts | 81 + node_modules/ignore/index.js | 784 ++ node_modules/ignore/legacy.js | 681 + node_modules/ignore/package.json | 87 + node_modules/import-fresh/index.d.ts | 30 + node_modules/import-fresh/index.js | 34 + node_modules/import-fresh/license | 9 + node_modules/import-fresh/package.json | 48 + node_modules/import-fresh/readme.md | 54 + node_modules/import-meta-resolve/index.d.ts | 19 + .../import-meta-resolve/index.d.ts.map | 1 + node_modules/import-meta-resolve/index.js | 47 + .../import-meta-resolve/lib/errors.d.ts | 24 + .../import-meta-resolve/lib/errors.d.ts.map | 1 + .../import-meta-resolve/lib/errors.js | 504 + .../import-meta-resolve/lib/get-format.d.ts | 13 + .../lib/get-format.d.ts.map | 1 + .../import-meta-resolve/lib/get-format.js | 159 + .../lib/package-json-reader.d.ts | 31 + .../lib/package-json-reader.d.ts.map | 1 + .../lib/package-json-reader.js | 177 + .../import-meta-resolve/lib/resolve.d.ts | 29 + .../import-meta-resolve/lib/resolve.d.ts.map | 1 + .../import-meta-resolve/lib/resolve.js | 1301 ++ .../import-meta-resolve/lib/utils.d.ts | 6 + .../import-meta-resolve/lib/utils.d.ts.map | 1 + node_modules/import-meta-resolve/lib/utils.js | 47 + node_modules/import-meta-resolve/license | 74 + node_modules/import-meta-resolve/package.json | 78 + node_modules/import-meta-resolve/readme.md | 252 + node_modules/imurmurhash/README.md | 122 + node_modules/imurmurhash/imurmurhash.js | 138 + node_modules/imurmurhash/imurmurhash.min.js | 12 + node_modules/imurmurhash/package.json | 40 + node_modules/ini/LICENSE | 15 + node_modules/ini/README.md | 102 + node_modules/ini/ini.js | 206 + node_modules/ini/package.json | 33 + node_modules/is-arrayish/.editorconfig | 18 + node_modules/is-arrayish/.istanbul.yml | 4 + node_modules/is-arrayish/.npmignore | 5 + node_modules/is-arrayish/.travis.yml | 17 + node_modules/is-arrayish/LICENSE | 21 + node_modules/is-arrayish/README.md | 16 + node_modules/is-arrayish/index.js | 10 + node_modules/is-arrayish/package.json | 34 + node_modules/is-extglob/LICENSE | 21 + node_modules/is-extglob/README.md | 107 + node_modules/is-extglob/index.js | 20 + node_modules/is-extglob/package.json | 69 + .../is-fullwidth-code-point/index.d.ts | 17 + node_modules/is-fullwidth-code-point/index.js | 50 + node_modules/is-fullwidth-code-point/license | 9 + .../is-fullwidth-code-point/package.json | 42 + .../is-fullwidth-code-point/readme.md | 39 + node_modules/is-glob/LICENSE | 21 + node_modules/is-glob/README.md | 206 + node_modules/is-glob/index.js | 150 + node_modules/is-glob/package.json | 81 + node_modules/is-number/LICENSE | 21 + node_modules/is-number/README.md | 187 + node_modules/is-number/index.js | 18 + node_modules/is-number/package.json | 82 + node_modules/is-path-inside/index.d.ts | 25 + node_modules/is-path-inside/index.js | 12 + node_modules/is-path-inside/license | 9 + node_modules/is-path-inside/package.json | 38 + node_modules/is-path-inside/readme.md | 59 + node_modules/is-plain-object/LICENSE | 21 + node_modules/is-plain-object/README.md | 125 + .../is-plain-object/dist/is-plain-object.js | 38 + .../is-plain-object/dist/is-plain-object.mjs | 34 + .../is-plain-object/is-plain-object.d.ts | 1 + node_modules/is-plain-object/package.json | 85 + node_modules/isexe/.npmignore | 2 + node_modules/isexe/LICENSE | 15 + node_modules/isexe/README.md | 51 + node_modules/isexe/index.js | 57 + node_modules/isexe/mode.js | 41 + node_modules/isexe/package.json | 31 + node_modules/isexe/test/basic.js | 221 + node_modules/isexe/windows.js | 42 + node_modules/js-tokens/CHANGELOG.md | 151 + node_modules/js-tokens/LICENSE | 21 + node_modules/js-tokens/README.md | 240 + node_modules/js-tokens/index.js | 23 + node_modules/js-tokens/package.json | 30 + node_modules/js-yaml/LICENSE | 21 + node_modules/js-yaml/README.md | 247 + node_modules/js-yaml/bin/js-yaml.js | 126 + node_modules/js-yaml/dist/js-yaml.js | 3880 ++++++ node_modules/js-yaml/dist/js-yaml.min.js | 2 + node_modules/js-yaml/dist/js-yaml.mjs | 3856 ++++++ node_modules/js-yaml/index.js | 47 + node_modules/js-yaml/lib/common.js | 59 + node_modules/js-yaml/lib/dumper.js | 965 ++ node_modules/js-yaml/lib/exception.js | 55 + node_modules/js-yaml/lib/loader.js | 1733 +++ node_modules/js-yaml/lib/schema.js | 121 + node_modules/js-yaml/lib/schema/core.js | 11 + node_modules/js-yaml/lib/schema/default.js | 22 + node_modules/js-yaml/lib/schema/failsafe.js | 17 + node_modules/js-yaml/lib/schema/json.js | 19 + node_modules/js-yaml/lib/snippet.js | 101 + node_modules/js-yaml/lib/type.js | 66 + node_modules/js-yaml/lib/type/binary.js | 125 + node_modules/js-yaml/lib/type/bool.js | 35 + node_modules/js-yaml/lib/type/float.js | 97 + node_modules/js-yaml/lib/type/int.js | 156 + node_modules/js-yaml/lib/type/map.js | 8 + node_modules/js-yaml/lib/type/merge.js | 12 + node_modules/js-yaml/lib/type/null.js | 35 + node_modules/js-yaml/lib/type/omap.js | 44 + node_modules/js-yaml/lib/type/pairs.js | 53 + node_modules/js-yaml/lib/type/seq.js | 8 + node_modules/js-yaml/lib/type/set.js | 29 + node_modules/js-yaml/lib/type/str.js | 8 + node_modules/js-yaml/lib/type/timestamp.js | 88 + node_modules/js-yaml/package.json | 66 + .../CHANGELOG.md | 50 + .../json-parse-even-better-errors/LICENSE.md | 25 + .../json-parse-even-better-errors/README.md | 96 + .../json-parse-even-better-errors/index.js | 121 + .../package.json | 33 + .../json-schema-traverse/.eslintrc.yml | 27 + .../json-schema-traverse/.github/FUNDING.yml | 2 + .../.github/workflows/build.yml | 28 + .../.github/workflows/publish.yml | 27 + node_modules/json-schema-traverse/LICENSE | 21 + node_modules/json-schema-traverse/README.md | 95 + node_modules/json-schema-traverse/index.d.ts | 40 + node_modules/json-schema-traverse/index.js | 93 + .../json-schema-traverse/package.json | 43 + .../json-schema-traverse/spec/.eslintrc.yml | 6 + .../spec/fixtures/schema.js | 125 + .../json-schema-traverse/spec/index.spec.js | 171 + node_modules/keyv/LICENSE | 22 + node_modules/keyv/README.md | 828 ++ node_modules/keyv/dist/index.cjs | 990 ++ node_modules/keyv/dist/index.d.cts | 378 + node_modules/keyv/dist/index.d.ts | 378 + node_modules/keyv/dist/index.js | 964 ++ node_modules/keyv/package.json | 88 + node_modules/kind-of/CHANGELOG.md | 160 + node_modules/kind-of/LICENSE | 21 + node_modules/kind-of/README.md | 367 + node_modules/kind-of/index.js | 129 + node_modules/kind-of/package.json | 88 + node_modules/lines-and-columns/LICENSE | 21 + node_modules/lines-and-columns/README.md | 33 + .../lines-and-columns/build/index.d.ts | 13 + node_modules/lines-and-columns/build/index.js | 62 + node_modules/lines-and-columns/package.json | 49 + node_modules/lodash.truncate/LICENSE | 47 + node_modules/lodash.truncate/README.md | 18 + node_modules/lodash.truncate/index.js | 632 + node_modules/lodash.truncate/package.json | 17 + node_modules/mathml-tag-names/index.d.ts | 7 + node_modules/mathml-tag-names/index.d.ts.map | 1 + node_modules/mathml-tag-names/index.js | 208 + node_modules/mathml-tag-names/license | 22 + node_modules/mathml-tag-names/package.json | 74 + node_modules/mathml-tag-names/readme.md | 176 + node_modules/mdn-data/LICENSE | 116 + node_modules/mdn-data/README.md | 59 + node_modules/mdn-data/api/index.js | 3 + node_modules/mdn-data/api/inheritance.json | 2681 ++++ .../mdn-data/api/inheritance.schema.json | 31 + node_modules/mdn-data/css/at-rules.json | 504 + .../mdn-data/css/at-rules.schema.json | 131 + node_modules/mdn-data/css/definitions.json | 80 + node_modules/mdn-data/css/functions.json | 593 + .../mdn-data/css/functions.schema.json | 45 + node_modules/mdn-data/css/index.js | 9 + node_modules/mdn-data/css/properties.json | 10806 ++++++++++++++++ .../mdn-data/css/properties.schema.json | 449 + node_modules/mdn-data/css/selectors.json | 1071 ++ .../mdn-data/css/selectors.schema.json | 36 + node_modules/mdn-data/css/syntaxes.json | 899 ++ .../mdn-data/css/syntaxes.schema.json | 15 + node_modules/mdn-data/css/types.json | 287 + node_modules/mdn-data/css/types.schema.json | 32 + node_modules/mdn-data/css/units.json | 213 + node_modules/mdn-data/css/units.schema.json | 28 + node_modules/mdn-data/index.js | 5 + node_modules/mdn-data/l10n/css.json | 1876 +++ node_modules/mdn-data/l10n/index.js | 3 + node_modules/mdn-data/package.json | 38 + node_modules/meow/build/dependencies.js | 7347 +++++++++++ node_modules/meow/build/index.d.ts | 2684 ++++ node_modules/meow/build/index.js | 185 + node_modules/meow/build/licenses.md | 1254 ++ node_modules/meow/build/options.js | 147 + node_modules/meow/build/parser.js | 113 + node_modules/meow/build/utils.js | 7 + node_modules/meow/build/validate.js | 145 + node_modules/meow/license | 9 + node_modules/meow/package.json | 103 + node_modules/meow/readme.md | 387 + node_modules/merge2/LICENSE | 21 + node_modules/merge2/README.md | 144 + node_modules/merge2/index.js | 144 + node_modules/merge2/package.json | 43 + node_modules/micromatch/LICENSE | 21 + node_modules/micromatch/README.md | 1024 ++ node_modules/micromatch/index.js | 474 + node_modules/micromatch/package.json | 119 + node_modules/ms/index.js | 162 + node_modules/ms/license.md | 21 + node_modules/ms/package.json | 38 + node_modules/ms/readme.md | 59 + node_modules/nanoid/LICENSE | 20 + node_modules/nanoid/README.md | 39 + node_modules/nanoid/async/index.browser.cjs | 69 + node_modules/nanoid/async/index.browser.js | 34 + node_modules/nanoid/async/index.cjs | 71 + node_modules/nanoid/async/index.d.ts | 56 + node_modules/nanoid/async/index.js | 35 + node_modules/nanoid/async/index.native.js | 26 + node_modules/nanoid/async/package.json | 12 + node_modules/nanoid/bin/nanoid.cjs | 55 + node_modules/nanoid/index.browser.cjs | 72 + node_modules/nanoid/index.browser.js | 34 + node_modules/nanoid/index.cjs | 85 + node_modules/nanoid/index.d.cts | 91 + node_modules/nanoid/index.d.ts | 91 + node_modules/nanoid/index.js | 45 + node_modules/nanoid/nanoid.js | 1 + node_modules/nanoid/non-secure/index.cjs | 34 + node_modules/nanoid/non-secure/index.d.ts | 33 + node_modules/nanoid/non-secure/index.js | 21 + node_modules/nanoid/non-secure/package.json | 6 + node_modules/nanoid/package.json | 89 + node_modules/nanoid/url-alphabet/index.cjs | 7 + node_modules/nanoid/url-alphabet/index.js | 3 + node_modules/nanoid/url-alphabet/package.json | 6 + node_modules/normalize-path/LICENSE | 21 + node_modules/normalize-path/README.md | 127 + node_modules/normalize-path/index.js | 35 + node_modules/normalize-path/package.json | 77 + node_modules/parent-module/index.js | 37 + node_modules/parent-module/license | 9 + node_modules/parent-module/package.json | 46 + node_modules/parent-module/readme.md | 67 + node_modules/parse-json/index.js | 54 + node_modules/parse-json/license | 9 + node_modules/parse-json/package.json | 45 + node_modules/parse-json/readme.md | 119 + node_modules/picocolors/LICENSE | 15 + node_modules/picocolors/README.md | 21 + node_modules/picocolors/package.json | 25 + node_modules/picocolors/picocolors.browser.js | 4 + node_modules/picocolors/picocolors.d.ts | 5 + node_modules/picocolors/picocolors.js | 75 + node_modules/picocolors/types.d.ts | 51 + node_modules/picomatch/CHANGELOG.md | 136 + node_modules/picomatch/LICENSE | 21 + node_modules/picomatch/README.md | 708 + node_modules/picomatch/index.js | 3 + node_modules/picomatch/lib/constants.js | 179 + node_modules/picomatch/lib/parse.js | 1091 ++ node_modules/picomatch/lib/picomatch.js | 342 + node_modules/picomatch/lib/scan.js | 391 + node_modules/picomatch/lib/utils.js | 64 + node_modules/picomatch/package.json | 81 + node_modules/postcss-safe-parser/LICENSE | 20 + node_modules/postcss-safe-parser/README.md | 25 + .../postcss-safe-parser/lib/safe-parse.js | 12 + .../postcss-safe-parser/lib/safe-parser.js | 100 + node_modules/postcss-safe-parser/package.json | 36 + node_modules/postcss-selector-parser/API.md | 874 ++ .../postcss-selector-parser/CHANGELOG.md | 562 + .../postcss-selector-parser/LICENSE-MIT | 22 + .../postcss-selector-parser/README.md | 49 + .../postcss-selector-parser/dist/index.js | 17 + .../postcss-selector-parser/dist/parser.js | 1015 ++ .../postcss-selector-parser/dist/processor.js | 170 + .../dist/selectors/attribute.js | 448 + .../dist/selectors/className.js | 50 + .../dist/selectors/combinator.js | 21 + .../dist/selectors/comment.js | 21 + .../dist/selectors/constructors.js | 65 + .../dist/selectors/container.js | 321 + .../dist/selectors/guards.js | 58 + .../dist/selectors/id.js | 25 + .../dist/selectors/index.js | 21 + .../dist/selectors/namespace.js | 80 + .../dist/selectors/nesting.js | 22 + .../dist/selectors/node.js | 192 + .../dist/selectors/pseudo.js | 26 + .../dist/selectors/root.js | 44 + .../dist/selectors/selector.js | 21 + .../dist/selectors/string.js | 21 + .../dist/selectors/tag.js | 21 + .../dist/selectors/types.js | 28 + .../dist/selectors/universal.js | 22 + .../dist/sortAscending.js | 11 + .../dist/tokenTypes.js | 70 + .../postcss-selector-parser/dist/tokenize.js | 239 + .../dist/util/ensureObject.js | 17 + .../dist/util/getProp.js | 18 + .../dist/util/index.js | 13 + .../dist/util/stripComments.js | 21 + .../dist/util/unesc.js | 76 + .../postcss-selector-parser/package.json | 81 + .../postcss-selector-parser.d.ts | 556 + node_modules/postcss-value-parser/LICENSE | 22 + node_modules/postcss-value-parser/README.md | 263 + .../postcss-value-parser/lib/index.d.ts | 177 + .../postcss-value-parser/lib/index.js | 28 + .../postcss-value-parser/lib/parse.js | 321 + .../postcss-value-parser/lib/stringify.js | 48 + node_modules/postcss-value-parser/lib/unit.js | 120 + node_modules/postcss-value-parser/lib/walk.js | 22 + .../postcss-value-parser/package.json | 58 + node_modules/postcss/LICENSE | 20 + node_modules/postcss/README.md | 29 + node_modules/postcss/lib/at-rule.d.ts | 140 + node_modules/postcss/lib/at-rule.js | 25 + node_modules/postcss/lib/comment.d.ts | 68 + node_modules/postcss/lib/comment.js | 13 + node_modules/postcss/lib/container.d.ts | 483 + node_modules/postcss/lib/container.js | 447 + .../postcss/lib/css-syntax-error.d.ts | 248 + node_modules/postcss/lib/css-syntax-error.js | 133 + node_modules/postcss/lib/declaration.d.ts | 151 + node_modules/postcss/lib/declaration.js | 24 + node_modules/postcss/lib/document.d.ts | 69 + node_modules/postcss/lib/document.js | 33 + node_modules/postcss/lib/fromJSON.d.ts | 9 + node_modules/postcss/lib/fromJSON.js | 54 + node_modules/postcss/lib/input.d.ts | 227 + node_modules/postcss/lib/input.js | 265 + node_modules/postcss/lib/lazy-result.d.ts | 190 + node_modules/postcss/lib/lazy-result.js | 550 + node_modules/postcss/lib/list.d.ts | 60 + node_modules/postcss/lib/list.js | 58 + node_modules/postcss/lib/map-generator.js | 376 + node_modules/postcss/lib/no-work-result.d.ts | 46 + node_modules/postcss/lib/no-work-result.js | 137 + node_modules/postcss/lib/node.d.ts | 556 + node_modules/postcss/lib/node.js | 449 + node_modules/postcss/lib/parse.d.ts | 9 + node_modules/postcss/lib/parse.js | 42 + node_modules/postcss/lib/parser.js | 611 + node_modules/postcss/lib/postcss.d.mts | 69 + node_modules/postcss/lib/postcss.d.ts | 458 + node_modules/postcss/lib/postcss.js | 101 + node_modules/postcss/lib/postcss.mjs | 30 + node_modules/postcss/lib/previous-map.d.ts | 81 + node_modules/postcss/lib/previous-map.js | 144 + node_modules/postcss/lib/processor.d.ts | 115 + node_modules/postcss/lib/processor.js | 67 + node_modules/postcss/lib/result.d.ts | 205 + node_modules/postcss/lib/result.js | 42 + node_modules/postcss/lib/root.d.ts | 87 + node_modules/postcss/lib/root.js | 61 + node_modules/postcss/lib/rule.d.ts | 126 + node_modules/postcss/lib/rule.js | 27 + node_modules/postcss/lib/stringifier.d.ts | 46 + node_modules/postcss/lib/stringifier.js | 353 + node_modules/postcss/lib/stringify.d.ts | 9 + node_modules/postcss/lib/stringify.js | 11 + node_modules/postcss/lib/symbols.js | 5 + .../postcss/lib/terminal-highlight.js | 70 + node_modules/postcss/lib/tokenize.js | 266 + node_modules/postcss/lib/warn-once.js | 13 + node_modules/postcss/lib/warning.d.ts | 147 + node_modules/postcss/lib/warning.js | 37 + node_modules/postcss/package.json | 88 + node_modules/qified/LICENSE | 19 + node_modules/qified/README.md | 493 + node_modules/qified/dist/index.cjs | 653 + node_modules/qified/dist/index.d.cts | 601 + node_modules/qified/dist/index.d.ts | 601 + node_modules/qified/dist/index.js | 624 + node_modules/qified/package.json | 58 + node_modules/queue-microtask/LICENSE | 20 + node_modules/queue-microtask/README.md | 90 + node_modules/queue-microtask/index.d.ts | 2 + node_modules/queue-microtask/index.js | 9 + node_modules/queue-microtask/package.json | 55 + node_modules/require-from-string/index.js | 34 + node_modules/require-from-string/license | 21 + node_modules/require-from-string/package.json | 28 + node_modules/require-from-string/readme.md | 56 + node_modules/resolve-from/index.js | 47 + node_modules/resolve-from/license | 9 + node_modules/resolve-from/package.json | 34 + node_modules/resolve-from/readme.md | 72 + node_modules/reusify/.github/dependabot.yml | 7 + node_modules/reusify/.github/workflows/ci.yml | 96 + node_modules/reusify/LICENSE | 22 + node_modules/reusify/README.md | 139 + node_modules/reusify/SECURITY.md | 15 + .../benchmarks/createNoCodeFunction.js | 30 + node_modules/reusify/benchmarks/fib.js | 13 + .../reusify/benchmarks/reuseNoCodeFunction.js | 38 + node_modules/reusify/eslint.config.js | 14 + node_modules/reusify/package.json | 50 + node_modules/reusify/reusify.d.ts | 14 + node_modules/reusify/reusify.js | 33 + node_modules/reusify/test.js | 66 + node_modules/reusify/tsconfig.json | 11 + node_modules/run-parallel/LICENSE | 20 + node_modules/run-parallel/README.md | 85 + node_modules/run-parallel/index.js | 51 + node_modules/run-parallel/package.json | 58 + node_modules/signal-exit/LICENSE.txt | 16 + node_modules/signal-exit/README.md | 74 + .../signal-exit/dist/cjs/browser.d.ts | 12 + .../signal-exit/dist/cjs/browser.d.ts.map | 1 + node_modules/signal-exit/dist/cjs/browser.js | 10 + .../signal-exit/dist/cjs/browser.js.map | 1 + node_modules/signal-exit/dist/cjs/index.d.ts | 48 + .../signal-exit/dist/cjs/index.d.ts.map | 1 + node_modules/signal-exit/dist/cjs/index.js | 279 + .../signal-exit/dist/cjs/index.js.map | 1 + .../signal-exit/dist/cjs/package.json | 3 + .../signal-exit/dist/cjs/signals.d.ts | 29 + .../signal-exit/dist/cjs/signals.d.ts.map | 1 + node_modules/signal-exit/dist/cjs/signals.js | 42 + .../signal-exit/dist/cjs/signals.js.map | 1 + .../signal-exit/dist/mjs/browser.d.ts | 12 + .../signal-exit/dist/mjs/browser.d.ts.map | 1 + node_modules/signal-exit/dist/mjs/browser.js | 4 + .../signal-exit/dist/mjs/browser.js.map | 1 + node_modules/signal-exit/dist/mjs/index.d.ts | 48 + .../signal-exit/dist/mjs/index.d.ts.map | 1 + node_modules/signal-exit/dist/mjs/index.js | 275 + .../signal-exit/dist/mjs/index.js.map | 1 + .../signal-exit/dist/mjs/package.json | 3 + .../signal-exit/dist/mjs/signals.d.ts | 29 + .../signal-exit/dist/mjs/signals.d.ts.map | 1 + node_modules/signal-exit/dist/mjs/signals.js | 39 + .../signal-exit/dist/mjs/signals.js.map | 1 + node_modules/signal-exit/package.json | 106 + node_modules/slash/index.d.ts | 23 + node_modules/slash/index.js | 9 + node_modules/slash/license | 9 + node_modules/slash/package.json | 39 + node_modules/slash/readme.md | 36 + node_modules/slice-ansi/index.js | 103 + node_modules/slice-ansi/license | 10 + node_modules/slice-ansi/package.json | 52 + node_modules/slice-ansi/readme.md | 66 + node_modules/source-map-js/LICENSE | 28 + node_modules/source-map-js/README.md | 765 ++ node_modules/source-map-js/lib/array-set.js | 121 + node_modules/source-map-js/lib/base64-vlq.js | 140 + node_modules/source-map-js/lib/base64.js | 67 + .../source-map-js/lib/binary-search.js | 111 + .../source-map-js/lib/mapping-list.js | 79 + node_modules/source-map-js/lib/quick-sort.js | 132 + .../lib/source-map-consumer.d.ts | 1 + .../source-map-js/lib/source-map-consumer.js | 1188 ++ .../lib/source-map-generator.d.ts | 1 + .../source-map-js/lib/source-map-generator.js | 444 + .../source-map-js/lib/source-node.d.ts | 1 + node_modules/source-map-js/lib/source-node.js | 413 + node_modules/source-map-js/lib/util.js | 594 + node_modules/source-map-js/package.json | 71 + node_modules/source-map-js/source-map.d.ts | 104 + node_modules/source-map-js/source-map.js | 8 + node_modules/string-width/index.d.ts | 39 + node_modules/string-width/index.js | 119 + node_modules/string-width/license | 9 + node_modules/string-width/package.json | 65 + node_modules/string-width/readme.md | 66 + node_modules/strip-ansi/index.d.ts | 15 + node_modules/strip-ansi/index.js | 19 + node_modules/strip-ansi/license | 9 + node_modules/strip-ansi/package.json | 59 + node_modules/strip-ansi/readme.md | 37 + .../stylelint-config-recommended/LICENSE | 21 + .../stylelint-config-recommended/README.md | 51 + .../stylelint-config-recommended/index.js | 55 + .../stylelint-config-recommended/package.json | 71 + .../stylelint-config-standard/LICENSE | 20 + .../stylelint-config-standard/README.md | 130 + .../stylelint-config-standard/index.js | 133 + .../stylelint-config-standard/package.json | 72 + node_modules/stylelint/LICENSE | 20 + node_modules/stylelint/README.md | 113 + node_modules/stylelint/bin/stylelint.mjs | 7 + .../stylelint/lib/assignDisabledRanges.mjs | 483 + node_modules/stylelint/lib/augmentConfig.mjs | 586 + node_modules/stylelint/lib/cli.mjs | 746 ++ node_modules/stylelint/lib/constants.mjs | 25 + .../lib/createPartialStylelintResult.mjs | 114 + node_modules/stylelint/lib/createPlugin.mjs | 9 + .../stylelint/lib/createStylelint.mjs | 37 + .../stylelint/lib/descriptionlessDisables.mjs | 51 + .../lib/formatters/calcSeverityCounts.mjs | 21 + .../lib/formatters/compactFormatter.mjs | 23 + .../stylelint/lib/formatters/index.mjs | 23 + .../lib/formatters/jsonFormatter.mjs | 10 + .../lib/formatters/preprocessWarnings.mjs | 74 + .../lib/formatters/stringFormatter.mjs | 308 + .../stylelint/lib/formatters/tapFormatter.mjs | 85 + .../stylelint/lib/formatters/terminalLink.mjs | 21 + .../lib/formatters/unixFormatter.mjs | 32 + .../lib/formatters/verboseFormatter.mjs | 175 + .../stylelint/lib/getConfigForFile.mjs | 110 + .../stylelint/lib/getPostcssResult.mjs | 130 + node_modules/stylelint/lib/index.mjs | 38 + .../stylelint/lib/invalidScopeDisables.mjs | 41 + node_modules/stylelint/lib/isPathIgnored.mjs | 48 + .../stylelint/lib/lintPostcssResult.mjs | 172 + node_modules/stylelint/lib/lintSource.mjs | 135 + .../stylelint/lib/needlessDisables.mjs | 91 + .../lib/normalizeAllRuleSettings.mjs | 29 + .../stylelint/lib/normalizeRuleSettings.mjs | 56 + node_modules/stylelint/lib/postcssPlugin.mjs | 50 + .../stylelint/lib/prepareReturnValue.mjs | 63 + node_modules/stylelint/lib/printConfig.mjs | 44 + .../stylelint/lib/reference/atKeywords.mjs | 83 + .../stylelint/lib/reference/functions.mjs | 96 + .../stylelint/lib/reference/keywords.mjs | 663 + .../stylelint/lib/reference/mediaFeatures.mjs | 115 + .../stylelint/lib/reference/mediaTypes.mjs | 14 + .../stylelint/lib/reference/prefixes.mjs | 17 + .../stylelint/lib/reference/properties.mjs | 1112 ++ .../stylelint/lib/reference/selectors.mjs | 472 + .../stylelint/lib/reference/units.mjs | 82 + node_modules/stylelint/lib/reportDisables.mjs | 48 + .../stylelint/lib/reportUnknownRuleNames.mjs | 76 + node_modules/stylelint/lib/resolveConfig.mjs | 43 + .../lib/rules/alpha-value-notation/index.mjs | 207 + .../lib/rules/annotation-no-unknown/index.mjs | 88 + .../lib/rules/at-rule-allowed-list/index.mjs | 62 + .../at-rule-descriptor-no-unknown/index.mjs | 108 + .../index.mjs | 64 + .../rules/at-rule-disallowed-list/index.mjs | 62 + .../rules/at-rule-empty-line-before/index.mjs | 178 + .../lib/rules/at-rule-no-deprecated/index.mjs | 86 + .../lib/rules/at-rule-no-unknown/index.mjs | 80 + .../rules/at-rule-no-vendor-prefix/index.mjs | 82 + .../at-rule-prelude-no-invalid/index.mjs | 76 + .../at-rule-property-required-list/index.mjs | 92 + .../lib/rules/block-no-empty/index.mjs | 116 + .../index.mjs | 52 + .../color-function-alias-notation/index.mjs | 87 + .../rules/color-function-notation/index.mjs | 168 + .../lib/rules/color-hex-alpha/index.mjs | 75 + .../lib/rules/color-hex-length/index.mjs | 128 + .../lib/rules/color-named/colordUtils.mjs | 109 + .../stylelint/lib/rules/color-named/index.mjs | 183 + .../lib/rules/color-no-hex/index.mjs | 69 + .../lib/rules/color-no-invalid-hex/index.mjs | 68 + .../rules/comment-empty-line-before/index.mjs | 131 + .../lib/rules/comment-no-empty/index.mjs | 50 + .../lib/rules/comment-pattern/index.mjs | 51 + .../rules/comment-whitespace-inside/index.mjs | 149 + .../comment-word-disallowed-list/index.mjs | 63 + .../rules/container-name-pattern/index.mjs | 107 + .../lib/rules/custom-media-pattern/index.mjs | 61 + .../index.mjs | 156 + .../index.mjs | 148 + .../rules/custom-property-pattern/index.mjs | 100 + .../index.mjs | 82 + .../index.mjs | 301 + .../index.mjs | 411 + .../index.mjs | 74 + .../index.mjs | 62 + .../declaration-empty-line-before/index.mjs | 160 + .../rules/declaration-no-important/index.mjs | 51 + .../declaration-property-max-values/index.mjs | 79 + .../index.mjs | 108 + .../index.mjs | 94 + .../index.mjs | 66 + .../index.mjs | 66 + .../index.mjs | 203 + .../index.mjs | 424 + .../lib/rules/display-notation/index.mjs | 225 + .../rules/font-family-name-quotes/index.mjs | 243 + .../font-family-no-duplicate-names/index.mjs | 122 + .../index.mjs | 122 + .../lib/rules/font-weight-notation/index.mjs | 221 + .../lib/rules/function-allowed-list/index.mjs | 114 + .../index.mjs | 589 + .../rules/function-disallowed-list/index.mjs | 73 + .../index.mjs | 145 + .../lib/rules/function-name-case/index.mjs | 120 + .../lib/rules/function-no-unknown/index.mjs | 83 + .../function-url-no-scheme-relative/index.mjs | 67 + .../lib/rules/function-url-quotes/index.mjs | 230 + .../index.mjs | 70 + .../index.mjs | 70 + .../lib/rules/hue-degree-notation/index.mjs | 123 + .../lib/rules/import-notation/index.mjs | 104 + node_modules/stylelint/lib/rules/index.mjs | 180 + .../index.mjs | 68 + .../index.mjs | 54 + .../keyframe-selector-notation/index.mjs | 202 + .../rules/keyframes-name-pattern/index.mjs | 63 + .../lib/rules/layer-name-pattern/index.mjs | 91 + .../lib/rules/length-zero-no-unit/index.mjs | 221 + .../lib/rules/lightness-notation/index.mjs | 165 + .../lib/rules/max-nesting-depth/index.mjs | 195 + .../media-feature-name-allowed-list/index.mjs | 67 + .../index.mjs | 67 + .../media-feature-name-no-unknown/index.mjs | 79 + .../index.mjs | 94 + .../index.mjs | 110 + .../index.mjs | 100 + .../index.mjs | 277 + .../media-feature-range-notation/index.mjs | 187 + .../rules/media-query-no-invalid/index.mjs | 193 + .../rules/media-type-no-deprecated/index.mjs | 82 + .../named-grid-areas-no-invalid/index.mjs | 117 + .../utils/findNotContiguousOrRectangular.mjs | 57 + .../index.mjs | 165 + .../rules/no-descending-specificity/index.mjs | 200 + .../no-duplicate-at-import-rules/index.mjs | 156 + .../rules/no-duplicate-selectors/index.mjs | 218 + .../lib/rules/no-empty-source/index.mjs | 61 + .../index.mjs | 77 + .../index.mjs | 76 + .../no-invalid-position-declaration/index.mjs | 86 + .../rules/no-irregular-whitespace/index.mjs | 236 + .../lib/rules/no-unknown-animations/index.mjs | 71 + .../rules/no-unknown-custom-media/index.mjs | 77 + .../no-unknown-custom-properties/index.mjs | 72 + .../lib/rules/number-max-precision/index.mjs | 209 + .../lib/rules/property-allowed-list/index.mjs | 58 + .../rules/property-disallowed-list/index.mjs | 58 + .../rules/property-no-deprecated/index.mjs | 143 + .../lib/rules/property-no-unknown/index.mjs | 126 + .../rules/property-no-vendor-prefix/index.mjs | 100 + .../rules/rule-empty-line-before/index.mjs | 156 + .../index.mjs | 85 + .../index.mjs | 119 + .../selector-anb-no-unmatchable/index.mjs | 121 + .../index.mjs | 69 + .../index.mjs | 70 + .../index.mjs | 70 + .../rules/selector-attribute-quotes/index.mjs | 107 + .../rules/selector-class-pattern/index.mjs | 71 + .../index.mjs | 81 + .../index.mjs | 81 + .../rules/selector-disallowed-list/index.mjs | 115 + .../lib/rules/selector-id-pattern/index.mjs | 66 + .../rules/selector-max-attribute/index.mjs | 92 + .../lib/rules/selector-max-class/index.mjs | 75 + .../rules/selector-max-combinators/index.mjs | 77 + .../selector-max-compound-selectors/index.mjs | 123 + .../lib/rules/selector-max-id/index.mjs | 107 + .../rules/selector-max-pseudo-class/index.mjs | 85 + .../rules/selector-max-specificity/index.mjs | 146 + .../lib/rules/selector-max-type/index.mjs | 219 + .../rules/selector-max-universal/index.mjs | 95 + .../rules/selector-nested-pattern/index.mjs | 95 + .../selector-no-qualifying-type/index.mjs | 323 + .../rules/selector-no-vendor-prefix/index.mjs | 92 + .../lib/rules/selector-not-notation/index.mjs | 217 + .../index.mjs | 84 + .../index.mjs | 84 + .../index.mjs | 179 + .../index.mjs | 75 + .../index.mjs | 93 + .../index.mjs | 74 + .../index.mjs | 91 + .../lib/rules/selector-type-case/index.mjs | 118 + .../rules/selector-type-no-unknown/index.mjs | 148 + .../index.mjs | 359 + .../lib/rules/string-no-newline/index.mjs | 120 + .../rules/syntax-string-no-invalid/index.mjs | 80 + .../lib/rules/time-min-milliseconds/index.mjs | 167 + .../lib/rules/unit-allowed-list/index.mjs | 116 + .../lib/rules/unit-disallowed-list/index.mjs | 211 + .../lib/rules/unit-no-unknown/index.mjs | 207 + .../lib/rules/value-keyword-case/index.mjs | 253 + .../rules/value-no-vendor-prefix/index.mjs | 92 + node_modules/stylelint/lib/standalone.mjs | 381 + node_modules/stylelint/lib/timing.mjs | 134 + .../stylelint/lib/unscopedDisables.mjs | 66 + .../stylelint/lib/utils/FileCache.mjs | 115 + .../lib/utils/addEmptyLineBefore.mjs | 21 + .../lib/utils/addSemicolonForEditInfo.mjs | 35 + .../stylelint/lib/utils/appendRuleName.mjs | 13 + .../stylelint/lib/utils/arrayEqual.mjs | 14 + .../stylelint/lib/utils/beforeBlockString.mjs | 28 + .../stylelint/lib/utils/blockString.mjs | 19 + .../stylelint/lib/utils/blurInterpolation.mjs | 8 + .../stylelint/lib/utils/cachedImport.mjs | 68 + .../stylelint/lib/utils/checkAgainstRule.mjs | 71 + .../lib/utils/checkInvalidCLIOptions.mjs | 105 + .../lib/utils/configurationComment.mjs | 74 + .../stylelint/lib/utils/containsString.mjs | 52 + .../stylelint/lib/utils/createMapWithSet.mjs | 19 + .../stylelint/lib/utils/dynamicImport.mjs | 13 + .../lib/utils/eachDeclarationBlock.mjs | 59 + .../stylelint/lib/utils/eachNodeUpToRoot.mjs | 22 + .../stylelint/lib/utils/emitWarning.mjs | 83 + node_modules/stylelint/lib/utils/errors.mjs | 55 + .../stylelint/lib/utils/filterFilePaths.mjs | 17 + .../stylelint/lib/utils/findAnimationName.mjs | 74 + .../stylelint/lib/utils/findAtRuleContext.mjs | 27 + .../stylelint/lib/utils/findFontFamily.mjs | 148 + .../lib/utils/findMediaFeatureNames.mjs | 151 + .../stylelint/lib/utils/findNodeUpToRoot.mjs | 25 + .../lib/utils/fixEmptyLinesBefore.mjs | 26 + .../lib/utils/functionArgumentsSearch.mjs | 64 + .../stylelint/lib/utils/getAtRuleParams.mjs | 7 + .../lib/utils/getDeclarationValue.mjs | 9 + .../stylelint/lib/utils/getDimension.mjs | 62 + .../stylelint/lib/utils/getFileIgnorer.mjs | 41 + .../stylelint/lib/utils/getFormatter.mjs | 43 + .../lib/utils/getFormatterOptionsText.mjs | 12 + .../lib/utils/getImportantPosition.mjs | 15 + node_modules/stylelint/lib/utils/getLexer.mjs | 39 + .../stylelint/lib/utils/getModulePath.mjs | 35 + .../utils/getNextNonSharedLineCommentNode.mjs | 34 + .../getPreviousNonSharedLineCommentNode.mjs | 36 + .../stylelint/lib/utils/getRelativePath.mjs | 12 + .../stylelint/lib/utils/getRuleSelector.mjs | 9 + .../stylelint/lib/utils/getSchemeFromUrl.mjs | 36 + .../lib/utils/getSelectorSourceIndex.mjs | 12 + .../lib/utils/getStrippedSelectorSource.mjs | 47 + .../stylelint/lib/utils/getStylelintRule.mjs | 22 + node_modules/stylelint/lib/utils/hasBlock.mjs | 9 + .../stylelint/lib/utils/hasEmptyLine.mjs | 13 + .../stylelint/lib/utils/hasInterpolation.mjs | 24 + .../lib/utils/hasLessInterpolation.mjs | 11 + .../lib/utils/hasPsvInterpolation.mjs | 11 + .../lib/utils/hasScssInterpolation.mjs | 11 + .../lib/utils/hasTplInterpolation.mjs | 11 + node_modules/stylelint/lib/utils/hash.mjs | 10 + .../stylelint/lib/utils/isAfterBlock.mjs | 15 + .../stylelint/lib/utils/isAfterComment.mjs | 15 + .../lib/utils/isAfterSingleLineComment.mjs | 19 + .../isAfterStandardPropertyDeclaration.mjs | 19 + .../stylelint/lib/utils/isAutoprefixable.mjs | 364 + .../isBlocklessAtRuleAfterBlocklessAtRule.mjs | 21 + ...lessAtRuleAfterSameNameBlocklessAtRule.mjs | 21 + .../utils/isContextFunctionalPseudoClass.mjs | 24 + .../isCounterIncrementCustomIdentValue.mjs | 19 + .../utils/isCounterResetCustomIdentValue.mjs | 19 + .../stylelint/lib/utils/isCustomElement.mjs | 34 + .../stylelint/lib/utils/isCustomFunction.mjs | 9 + .../lib/utils/isCustomMediaQuery.mjs | 8 + .../stylelint/lib/utils/isCustomProperty.mjs | 8 + .../stylelint/lib/utils/isCustomSelector.mjs | 9 + .../lib/utils/isDescriptorDeclaration.mjs | 22 + .../stylelint/lib/utils/isFirstNested.mjs | 83 + .../stylelint/lib/utils/isFirstNodeOfRoot.mjs | 17 + .../stylelint/lib/utils/isHexColor.mjs | 9 + .../stylelint/lib/utils/isInDocument.mjs | 32 + .../stylelint/lib/utils/isKeyframeRule.mjs | 17 + .../lib/utils/isKeyframeSelector.mjs | 29 + .../stylelint/lib/utils/isMathFunction.mjs | 11 + .../lib/utils/isNonNegativeInteger.mjs | 6 + .../stylelint/lib/utils/isNumbery.mjs | 9 + .../stylelint/lib/utils/isOnlyWhitespace.mjs | 17 + .../lib/utils/isPathNotFoundError.mjs | 9 + .../stylelint/lib/utils/isScssVariable.mjs | 19 + .../lib/utils/isSharedLineComment.mjs | 53 + .../lib/utils/isSingleLineString.mjs | 10 + .../lib/utils/isStandardSyntaxAtRule.mjs | 32 + .../utils/isStandardSyntaxColorFunction.mjs | 24 + .../lib/utils/isStandardSyntaxCombinator.mjs | 32 + .../lib/utils/isStandardSyntaxComment.mjs | 13 + .../lib/utils/isStandardSyntaxDeclaration.mjs | 57 + .../lib/utils/isStandardSyntaxFunction.mjs | 28 + .../lib/utils/isStandardSyntaxHexColor.mjs | 14 + .../utils/isStandardSyntaxKeyframesName.mjs | 15 + .../lib/utils/isStandardSyntaxProperty.mjs | 32 + .../lib/utils/isStandardSyntaxRule.mjs | 24 + .../lib/utils/isStandardSyntaxSelector.mjs | 56 + .../utils/isStandardSyntaxTypeSelector.mjs | 56 + .../lib/utils/isStandardSyntaxUrl.mjs | 49 + .../lib/utils/isStandardSyntaxValue.mjs | 51 + .../lib/utils/isUnicodeRangeDescriptor.mjs | 24 + .../lib/utils/isUnicodeSupported.mjs | 26 + .../stylelint/lib/utils/isUrlFunction.mjs | 9 + .../stylelint/lib/utils/isValidFontSize.mjs | 38 + .../stylelint/lib/utils/isValidHex.mjs | 11 + .../stylelint/lib/utils/isValidIdentifier.mjs | 39 + .../stylelint/lib/utils/isVarFunction.mjs | 9 + .../stylelint/lib/utils/isVariable.mjs | 9 + .../stylelint/lib/utils/isWhitespace.mjs | 9 + .../lib/utils/matchesStringOrRegExp.mjs | 97 + .../lib/utils/mergeSyntaxDefinitions.mjs | 137 + .../stylelint/lib/utils/narrowFixRange.mjs | 68 + .../stylelint/lib/utils/nodeContextLookup.mjs | 41 + .../stylelint/lib/utils/nodeFieldIndices.mjs | 119 + .../stylelint/lib/utils/normalizeFilePath.mjs | 26 + .../stylelint/lib/utils/normalizeFixMode.mjs | 22 + .../stylelint/lib/utils/normalizeSelector.mjs | 166 + .../stylelint/lib/utils/optionsMatches.mjs | 20 + .../lib/utils/parseCustomMediaQuery.mjs | 15 + .../stylelint/lib/utils/parseMediaQuery.mjs | 15 + .../stylelint/lib/utils/parseSelector.mjs | 19 + .../stylelint/lib/utils/pathExists.mjs | 16 + .../stylelint/lib/utils/pluralize.mjs | 10 + .../stylelint/lib/utils/putIfAbsent.mjs | 20 + .../stylelint/lib/utils/rangesOverlap.mjs | 19 + .../stylelint/lib/utils/rawNodeString.mjs | 29 + node_modules/stylelint/lib/utils/regexes.mjs | 135 + .../lib/utils/removeEmptyLinesBefore.mjs | 13 + node_modules/stylelint/lib/utils/report.mjs | 321 + .../lib/utils/reportCommentProblem.mjs | 39 + .../stylelint/lib/utils/resolveFilePath.mjs | 38 + .../utils/resolveNestedSelectorsForRule.mjs | 108 + .../lib/utils/resolveOptionValue.mjs | 30 + .../stylelint/lib/utils/resolveSilent.mjs | 144 + .../stylelint/lib/utils/ruleMessages.mjs | 18 + .../stylelint/lib/utils/setAtRuleParams.mjs | 18 + .../lib/utils/setDeclarationValue.mjs | 18 + .../lib/utils/suppressionsService.mjs | 317 + node_modules/stylelint/lib/utils/toPath.mjs | 23 + .../stylelint/lib/utils/typeGuards.mjs | 90 + .../stylelint/lib/utils/uniteSets.mjs | 9 + .../utils/validateObjectWithArrayProps.mjs | 29 + .../lib/utils/validateObjectWithProps.mjs | 28 + .../stylelint/lib/utils/validateOptions.mjs | 176 + .../stylelint/lib/utils/validateTypes.mjs | 148 + node_modules/stylelint/lib/utils/vendor.mjs | 43 + .../stylelint/lib/validateDisableSettings.mjs | 67 + .../stylelint/lib/writeOutputFile.mjs | 15 + node_modules/stylelint/package.json | 212 + .../stylelint/types/stylelint/index.d.ts | 1590 +++ node_modules/supports-color/browser.d.ts | 1 + node_modules/supports-color/browser.js | 35 + node_modules/supports-color/index.d.ts | 55 + node_modules/supports-color/index.js | 202 + node_modules/supports-color/license | 9 + node_modules/supports-color/package.json | 64 + node_modules/supports-color/readme.md | 75 + node_modules/supports-hyperlinks/browser.js | 10 + node_modules/supports-hyperlinks/index.d.ts | 25 + node_modules/supports-hyperlinks/index.js | 157 + node_modules/supports-hyperlinks/license | 10 + node_modules/supports-hyperlinks/package.json | 47 + node_modules/supports-hyperlinks/readme.md | 39 + node_modules/svg-tags/LICENSE | 21 + node_modules/svg-tags/README.md | 99 + node_modules/svg-tags/lib/index.js | 1 + node_modules/svg-tags/lib/svg-tags.json | 82 + node_modules/svg-tags/package.json | 46 + node_modules/table/LICENSE | 24 + node_modules/table/README.md | 837 ++ .../table/dist/src/alignSpanningCell.d.ts | 7 + .../table/dist/src/alignSpanningCell.js | 48 + .../table/dist/src/alignSpanningCell.js.map | 1 + node_modules/table/dist/src/alignString.d.ts | 6 + node_modules/table/dist/src/alignString.js | 60 + .../table/dist/src/alignString.js.map | 1 + .../table/dist/src/alignTableData.d.ts | 2 + node_modules/table/dist/src/alignTableData.js | 20 + .../table/dist/src/alignTableData.js.map | 1 + .../table/dist/src/calculateCellHeight.d.ts | 4 + .../table/dist/src/calculateCellHeight.js | 12 + .../table/dist/src/calculateCellHeight.js.map | 1 + .../src/calculateMaximumColumnWidths.d.ts | 7 + .../dist/src/calculateMaximumColumnWidths.js | 36 + .../src/calculateMaximumColumnWidths.js.map | 1 + .../dist/src/calculateOutputColumnWidths.d.ts | 2 + .../dist/src/calculateOutputColumnWidths.js | 10 + .../src/calculateOutputColumnWidths.js.map | 1 + .../table/dist/src/calculateRowHeights.d.ts | 5 + .../table/dist/src/calculateRowHeights.js | 42 + .../table/dist/src/calculateRowHeights.js.map | 1 + .../dist/src/calculateSpanningCellWidth.d.ts | 3 + .../dist/src/calculateSpanningCellWidth.js | 26 + .../src/calculateSpanningCellWidth.js.map | 1 + node_modules/table/dist/src/createStream.d.ts | 2 + node_modules/table/dist/src/createStream.js | 74 + .../table/dist/src/createStream.js.map | 1 + node_modules/table/dist/src/drawBorder.d.ts | 34 + node_modules/table/dist/src/drawBorder.js | 202 + node_modules/table/dist/src/drawBorder.js.map | 1 + node_modules/table/dist/src/drawContent.d.ts | 14 + node_modules/table/dist/src/drawContent.js | 51 + .../table/dist/src/drawContent.js.map | 1 + node_modules/table/dist/src/drawRow.d.ts | 10 + node_modules/table/dist/src/drawRow.js | 25 + node_modules/table/dist/src/drawRow.js.map | 1 + node_modules/table/dist/src/drawTable.d.ts | 2 + node_modules/table/dist/src/drawTable.js | 31 + node_modules/table/dist/src/drawTable.js.map | 1 + .../table/dist/src/generated/validators.d.ts | 13 + .../table/dist/src/generated/validators.js | 2694 ++++ .../dist/src/generated/validators.js.map | 1 + .../table/dist/src/getBorderCharacters.d.ts | 2 + .../table/dist/src/getBorderCharacters.js | 105 + .../table/dist/src/getBorderCharacters.js.map | 1 + node_modules/table/dist/src/index.d.ts | 5 + node_modules/table/dist/src/index.js | 21 + node_modules/table/dist/src/index.js.map | 1 + .../table/dist/src/injectHeaderConfig.d.ts | 3 + .../table/dist/src/injectHeaderConfig.js | 29 + .../table/dist/src/injectHeaderConfig.js.map | 1 + .../table/dist/src/makeRangeConfig.d.ts | 3 + .../table/dist/src/makeRangeConfig.js | 18 + .../table/dist/src/makeRangeConfig.js.map | 1 + .../table/dist/src/makeStreamConfig.d.ts | 7 + .../table/dist/src/makeStreamConfig.js | 43 + .../table/dist/src/makeStreamConfig.js.map | 1 + .../table/dist/src/makeTableConfig.d.ts | 7 + .../table/dist/src/makeTableConfig.js | 62 + .../table/dist/src/makeTableConfig.js.map | 1 + .../dist/src/mapDataUsingRowHeights.d.ts | 4 + .../table/dist/src/mapDataUsingRowHeights.js | 52 + .../dist/src/mapDataUsingRowHeights.js.map | 1 + node_modules/table/dist/src/padTableData.d.ts | 3 + node_modules/table/dist/src/padTableData.js | 23 + .../table/dist/src/padTableData.js.map | 1 + .../table/dist/src/schemas/config.json | 95 + .../table/dist/src/schemas/shared.json | 139 + .../table/dist/src/schemas/streamConfig.json | 25 + .../table/dist/src/spanningCellManager.d.ts | 23 + .../table/dist/src/spanningCellManager.js | 95 + .../table/dist/src/spanningCellManager.js.map | 1 + .../table/dist/src/stringifyTableData.d.ts | 2 + .../table/dist/src/stringifyTableData.js | 13 + .../table/dist/src/stringifyTableData.js.map | 1 + node_modules/table/dist/src/table.d.ts | 2 + node_modules/table/dist/src/table.js | 32 + node_modules/table/dist/src/table.js.map | 1 + .../table/dist/src/truncateTableData.d.ts | 6 + .../table/dist/src/truncateTableData.js | 24 + .../table/dist/src/truncateTableData.js.map | 1 + node_modules/table/dist/src/types/api.d.ts | 130 + node_modules/table/dist/src/types/api.js | 3 + node_modules/table/dist/src/types/api.js.map | 1 + .../table/dist/src/types/internal.d.ts | 1 + node_modules/table/dist/src/types/internal.js | 3 + .../table/dist/src/types/internal.js.map | 1 + node_modules/table/dist/src/utils.d.ts | 9 + node_modules/table/dist/src/utils.js | 134 + node_modules/table/dist/src/utils.js.map | 1 + .../table/dist/src/validateConfig.d.ts | 2 + node_modules/table/dist/src/validateConfig.js | 27 + .../table/dist/src/validateConfig.js.map | 1 + .../dist/src/validateSpanningCellConfig.d.ts | 3 + .../dist/src/validateSpanningCellConfig.js | 46 + .../src/validateSpanningCellConfig.js.map | 1 + .../table/dist/src/validateTableData.d.ts | 1 + .../table/dist/src/validateTableData.js | 32 + .../table/dist/src/validateTableData.js.map | 1 + node_modules/table/dist/src/wrapCell.d.ts | 8 + node_modules/table/dist/src/wrapCell.js | 33 + node_modules/table/dist/src/wrapCell.js.map | 1 + node_modules/table/dist/src/wrapString.d.ts | 9 + node_modules/table/dist/src/wrapString.js | 27 + node_modules/table/dist/src/wrapString.js.map | 1 + node_modules/table/dist/src/wrapWord.d.ts | 1 + node_modules/table/dist/src/wrapWord.js | 42 + node_modules/table/dist/src/wrapWord.js.map | 1 + .../table/node_modules/ansi-regex/index.d.ts | 37 + .../table/node_modules/ansi-regex/index.js | 10 + .../table/node_modules/ansi-regex/license | 9 + .../node_modules/ansi-regex/package.json | 55 + .../table/node_modules/ansi-regex/readme.md | 78 + .../node_modules/string-width/index.d.ts | 29 + .../table/node_modules/string-width/index.js | 47 + .../table/node_modules/string-width/license | 9 + .../node_modules/string-width/package.json | 56 + .../table/node_modules/string-width/readme.md | 50 + .../table/node_modules/strip-ansi/index.d.ts | 17 + .../table/node_modules/strip-ansi/index.js | 4 + .../table/node_modules/strip-ansi/license | 9 + .../node_modules/strip-ansi/package.json | 54 + .../table/node_modules/strip-ansi/readme.md | 46 + node_modules/table/package.json | 78 + node_modules/to-regex-range/LICENSE | 21 + node_modules/to-regex-range/README.md | 305 + node_modules/to-regex-range/index.js | 288 + node_modules/to-regex-range/package.json | 88 + node_modules/unicorn-magic/default.d.ts | 13 + node_modules/unicorn-magic/default.js | 14 + node_modules/unicorn-magic/license | 9 + node_modules/unicorn-magic/node.d.ts | 125 + node_modules/unicorn-magic/node.js | 49 + node_modules/unicorn-magic/package.json | 68 + node_modules/unicorn-magic/readme.md | 31 + node_modules/util-deprecate/History.md | 16 + node_modules/util-deprecate/LICENSE | 24 + node_modules/util-deprecate/README.md | 53 + node_modules/util-deprecate/browser.js | 67 + node_modules/util-deprecate/node.js | 6 + node_modules/util-deprecate/package.json | 27 + node_modules/which/CHANGELOG.md | 152 + node_modules/which/LICENSE | 15 + node_modules/which/README.md | 51 + node_modules/which/bin/which | 52 + node_modules/which/package.json | 30 + node_modules/which/which.js | 135 + node_modules/write-file-atomic/LICENSE.md | 6 + node_modules/write-file-atomic/README.md | 91 + node_modules/write-file-atomic/lib/index.js | 269 + node_modules/write-file-atomic/package.json | 57 + package-lock.json | 1622 +++ package.json | 28 + 2310 files changed, 255571 insertions(+) create mode 100644 .stylelintrc.json create mode 120000 node_modules/.bin/cssesc create mode 120000 node_modules/.bin/js-yaml create mode 120000 node_modules/.bin/nanoid create mode 120000 node_modules/.bin/stylelint create mode 120000 node_modules/.bin/which create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@babel/code-frame/LICENSE create mode 100644 node_modules/@babel/code-frame/README.md create mode 100644 node_modules/@babel/code-frame/lib/index.js create mode 100644 node_modules/@babel/code-frame/lib/index.js.map create mode 100644 node_modules/@babel/code-frame/package.json create mode 100644 node_modules/@babel/helper-validator-identifier/LICENSE create mode 100644 node_modules/@babel/helper-validator-identifier/README.md create mode 100644 node_modules/@babel/helper-validator-identifier/lib/identifier.js create mode 100644 node_modules/@babel/helper-validator-identifier/lib/identifier.js.map create mode 100644 node_modules/@babel/helper-validator-identifier/lib/index.js create mode 100644 node_modules/@babel/helper-validator-identifier/lib/index.js.map create mode 100644 node_modules/@babel/helper-validator-identifier/lib/keyword.js create mode 100644 node_modules/@babel/helper-validator-identifier/lib/keyword.js.map create mode 100644 node_modules/@babel/helper-validator-identifier/package.json create mode 100644 node_modules/@cacheable/memory/LICENSE create mode 100644 node_modules/@cacheable/memory/README.md create mode 100644 node_modules/@cacheable/memory/dist/index.cjs create mode 100644 node_modules/@cacheable/memory/dist/index.d.cts create mode 100644 node_modules/@cacheable/memory/dist/index.d.ts create mode 100644 node_modules/@cacheable/memory/dist/index.js create mode 100644 node_modules/@cacheable/memory/package.json create mode 100644 node_modules/@cacheable/utils/LICENSE create mode 100644 node_modules/@cacheable/utils/README.md create mode 100644 node_modules/@cacheable/utils/dist/index.cjs create mode 100644 node_modules/@cacheable/utils/dist/index.d.cts create mode 100644 node_modules/@cacheable/utils/dist/index.d.ts create mode 100644 node_modules/@cacheable/utils/dist/index.js create mode 100644 node_modules/@cacheable/utils/package.json create mode 100644 node_modules/@csstools/css-calc/CHANGELOG.md create mode 100644 node_modules/@csstools/css-calc/LICENSE.md create mode 100644 node_modules/@csstools/css-calc/README.md create mode 100644 node_modules/@csstools/css-calc/dist/index.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/index.mjs create mode 100644 node_modules/@csstools/css-calc/package.json create mode 100644 node_modules/@csstools/css-parser-algorithms/CHANGELOG.md create mode 100644 node_modules/@csstools/css-parser-algorithms/LICENSE.md create mode 100644 node_modules/@csstools/css-parser-algorithms/README.md create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/index.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/index.mjs create mode 100644 node_modules/@csstools/css-parser-algorithms/package.json create mode 100644 node_modules/@csstools/css-syntax-patches-for-csstree/CHANGELOG.md create mode 100644 node_modules/@csstools/css-syntax-patches-for-csstree/LICENSE.md create mode 100644 node_modules/@csstools/css-syntax-patches-for-csstree/README.md create mode 100644 node_modules/@csstools/css-syntax-patches-for-csstree/dist/index.d.ts create mode 100644 node_modules/@csstools/css-syntax-patches-for-csstree/dist/index.json create mode 100644 node_modules/@csstools/css-syntax-patches-for-csstree/package.json create mode 100644 node_modules/@csstools/css-tokenizer/CHANGELOG.md create mode 100644 node_modules/@csstools/css-tokenizer/LICENSE.md create mode 100644 node_modules/@csstools/css-tokenizer/README.md create mode 100644 node_modules/@csstools/css-tokenizer/dist/index.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/index.mjs create mode 100644 node_modules/@csstools/css-tokenizer/package.json create mode 100644 node_modules/@csstools/media-query-list-parser/CHANGELOG.md create mode 100644 node_modules/@csstools/media-query-list-parser/LICENSE.md create mode 100644 node_modules/@csstools/media-query-list-parser/README.md create mode 100644 node_modules/@csstools/media-query-list-parser/dist/index.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/index.mjs create mode 100644 node_modules/@csstools/media-query-list-parser/package.json create mode 100644 node_modules/@csstools/selector-resolve-nested/CHANGELOG.md create mode 100644 node_modules/@csstools/selector-resolve-nested/LICENSE.md create mode 100644 node_modules/@csstools/selector-resolve-nested/README.md create mode 100644 node_modules/@csstools/selector-resolve-nested/dist/index.d.ts create mode 100644 node_modules/@csstools/selector-resolve-nested/dist/index.mjs create mode 100644 node_modules/@csstools/selector-resolve-nested/package.json create mode 100644 node_modules/@csstools/selector-specificity/CHANGELOG.md create mode 100644 node_modules/@csstools/selector-specificity/LICENSE.md create mode 100644 node_modules/@csstools/selector-specificity/README.md create mode 100644 node_modules/@csstools/selector-specificity/dist/index.d.ts create mode 100644 node_modules/@csstools/selector-specificity/dist/index.mjs create mode 100644 node_modules/@csstools/selector-specificity/package.json create mode 100644 node_modules/@keyv/bigmap/LICENSE create mode 100644 node_modules/@keyv/bigmap/README.md create mode 100644 node_modules/@keyv/bigmap/dist/index.cjs create mode 100644 node_modules/@keyv/bigmap/dist/index.d.cts create mode 100644 node_modules/@keyv/bigmap/dist/index.d.ts create mode 100644 node_modules/@keyv/bigmap/dist/index.js create mode 100644 node_modules/@keyv/bigmap/package.json create mode 100644 node_modules/@keyv/serialize/LICENSE create mode 100644 node_modules/@keyv/serialize/README.md create mode 100644 node_modules/@keyv/serialize/dist/index.cjs create mode 100644 node_modules/@keyv/serialize/dist/index.d.cts create mode 100644 node_modules/@keyv/serialize/dist/index.d.ts create mode 100644 node_modules/@keyv/serialize/dist/index.js create mode 100644 node_modules/@keyv/serialize/package.json create mode 100644 node_modules/@nodelib/fs.scandir/LICENSE create mode 100644 node_modules/@nodelib/fs.scandir/README.md create mode 100644 node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/adapters/fs.js create mode 100644 node_modules/@nodelib/fs.scandir/out/constants.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/constants.js create mode 100644 node_modules/@nodelib/fs.scandir/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/index.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/common.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/common.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.scandir/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/settings.js create mode 100644 node_modules/@nodelib/fs.scandir/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/types/index.js create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/fs.js create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/index.js create mode 100644 node_modules/@nodelib/fs.scandir/package.json create mode 100644 node_modules/@nodelib/fs.stat/LICENSE create mode 100644 node_modules/@nodelib/fs.stat/README.md create mode 100644 node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/adapters/fs.js create mode 100644 node_modules/@nodelib/fs.stat/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/index.js create mode 100644 node_modules/@nodelib/fs.stat/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.stat/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.stat/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/settings.js create mode 100644 node_modules/@nodelib/fs.stat/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/types/index.js create mode 100644 node_modules/@nodelib/fs.stat/package.json create mode 100644 node_modules/@nodelib/fs.walk/LICENSE create mode 100644 node_modules/@nodelib/fs.walk/README.md create mode 100644 node_modules/@nodelib/fs.walk/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/index.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/index.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/stream.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/stream.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/async.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/async.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/common.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/common.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/reader.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/reader.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/sync.js create mode 100644 node_modules/@nodelib/fs.walk/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/settings.js create mode 100644 node_modules/@nodelib/fs.walk/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/types/index.js create mode 100644 node_modules/@nodelib/fs.walk/package.json create mode 100644 node_modules/@sindresorhus/merge-streams/index.d.ts create mode 100644 node_modules/@sindresorhus/merge-streams/index.js create mode 100644 node_modules/@sindresorhus/merge-streams/license create mode 100644 node_modules/@sindresorhus/merge-streams/package.json create mode 100644 node_modules/@sindresorhus/merge-streams/readme.md create mode 100644 node_modules/ajv/.runkit_example.js create mode 100644 node_modules/ajv/LICENSE create mode 100644 node_modules/ajv/README.md create mode 100644 node_modules/ajv/dist/2019.d.ts create mode 100644 node_modules/ajv/dist/2019.js create mode 100644 node_modules/ajv/dist/2019.js.map create mode 100644 node_modules/ajv/dist/2020.d.ts create mode 100644 node_modules/ajv/dist/2020.js create mode 100644 node_modules/ajv/dist/2020.js.map create mode 100644 node_modules/ajv/dist/ajv.d.ts create mode 100644 node_modules/ajv/dist/ajv.js create mode 100644 node_modules/ajv/dist/ajv.js.map create mode 100644 node_modules/ajv/dist/compile/codegen/code.d.ts create mode 100644 node_modules/ajv/dist/compile/codegen/code.js create mode 100644 node_modules/ajv/dist/compile/codegen/code.js.map create mode 100644 node_modules/ajv/dist/compile/codegen/index.d.ts create mode 100644 node_modules/ajv/dist/compile/codegen/index.js create mode 100644 node_modules/ajv/dist/compile/codegen/index.js.map create mode 100644 node_modules/ajv/dist/compile/codegen/scope.d.ts create mode 100644 node_modules/ajv/dist/compile/codegen/scope.js create mode 100644 node_modules/ajv/dist/compile/codegen/scope.js.map create mode 100644 node_modules/ajv/dist/compile/errors.d.ts create mode 100644 node_modules/ajv/dist/compile/errors.js create mode 100644 node_modules/ajv/dist/compile/errors.js.map create mode 100644 node_modules/ajv/dist/compile/index.d.ts create mode 100644 node_modules/ajv/dist/compile/index.js create mode 100644 node_modules/ajv/dist/compile/index.js.map create mode 100644 node_modules/ajv/dist/compile/jtd/parse.d.ts create mode 100644 node_modules/ajv/dist/compile/jtd/parse.js create mode 100644 node_modules/ajv/dist/compile/jtd/parse.js.map create mode 100644 node_modules/ajv/dist/compile/jtd/serialize.d.ts create mode 100644 node_modules/ajv/dist/compile/jtd/serialize.js create mode 100644 node_modules/ajv/dist/compile/jtd/serialize.js.map create mode 100644 node_modules/ajv/dist/compile/jtd/types.d.ts create mode 100644 node_modules/ajv/dist/compile/jtd/types.js create mode 100644 node_modules/ajv/dist/compile/jtd/types.js.map create mode 100644 node_modules/ajv/dist/compile/names.d.ts create mode 100644 node_modules/ajv/dist/compile/names.js create mode 100644 node_modules/ajv/dist/compile/names.js.map create mode 100644 node_modules/ajv/dist/compile/ref_error.d.ts create mode 100644 node_modules/ajv/dist/compile/ref_error.js create mode 100644 node_modules/ajv/dist/compile/ref_error.js.map create mode 100644 node_modules/ajv/dist/compile/resolve.d.ts create mode 100644 node_modules/ajv/dist/compile/resolve.js create mode 100644 node_modules/ajv/dist/compile/resolve.js.map create mode 100644 node_modules/ajv/dist/compile/rules.d.ts create mode 100644 node_modules/ajv/dist/compile/rules.js create mode 100644 node_modules/ajv/dist/compile/rules.js.map create mode 100644 node_modules/ajv/dist/compile/util.d.ts create mode 100644 node_modules/ajv/dist/compile/util.js create mode 100644 node_modules/ajv/dist/compile/util.js.map create mode 100644 node_modules/ajv/dist/compile/validate/applicability.d.ts create mode 100644 node_modules/ajv/dist/compile/validate/applicability.js create mode 100644 node_modules/ajv/dist/compile/validate/applicability.js.map create mode 100644 node_modules/ajv/dist/compile/validate/boolSchema.d.ts create mode 100644 node_modules/ajv/dist/compile/validate/boolSchema.js create mode 100644 node_modules/ajv/dist/compile/validate/boolSchema.js.map create mode 100644 node_modules/ajv/dist/compile/validate/dataType.d.ts create mode 100644 node_modules/ajv/dist/compile/validate/dataType.js create mode 100644 node_modules/ajv/dist/compile/validate/dataType.js.map create mode 100644 node_modules/ajv/dist/compile/validate/defaults.d.ts create mode 100644 node_modules/ajv/dist/compile/validate/defaults.js create mode 100644 node_modules/ajv/dist/compile/validate/defaults.js.map create mode 100644 node_modules/ajv/dist/compile/validate/index.d.ts create mode 100644 node_modules/ajv/dist/compile/validate/index.js create mode 100644 node_modules/ajv/dist/compile/validate/index.js.map create mode 100644 node_modules/ajv/dist/compile/validate/keyword.d.ts create mode 100644 node_modules/ajv/dist/compile/validate/keyword.js create mode 100644 node_modules/ajv/dist/compile/validate/keyword.js.map create mode 100644 node_modules/ajv/dist/compile/validate/subschema.d.ts create mode 100644 node_modules/ajv/dist/compile/validate/subschema.js create mode 100644 node_modules/ajv/dist/compile/validate/subschema.js.map create mode 100644 node_modules/ajv/dist/core.d.ts create mode 100644 node_modules/ajv/dist/core.js create mode 100644 node_modules/ajv/dist/core.js.map create mode 100644 node_modules/ajv/dist/jtd.d.ts create mode 100644 node_modules/ajv/dist/jtd.js create mode 100644 node_modules/ajv/dist/jtd.js.map create mode 100644 node_modules/ajv/dist/refs/data.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2019-09/index.d.ts create mode 100644 node_modules/ajv/dist/refs/json-schema-2019-09/index.js create mode 100644 node_modules/ajv/dist/refs/json-schema-2019-09/index.js.map create mode 100644 node_modules/ajv/dist/refs/json-schema-2019-09/meta/applicator.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2019-09/meta/content.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2019-09/meta/core.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2019-09/meta/format.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2019-09/meta/meta-data.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2019-09/schema.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2020-12/index.d.ts create mode 100644 node_modules/ajv/dist/refs/json-schema-2020-12/index.js create mode 100644 node_modules/ajv/dist/refs/json-schema-2020-12/index.js.map create mode 100644 node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json create mode 100644 node_modules/ajv/dist/refs/json-schema-2020-12/schema.json create mode 100644 node_modules/ajv/dist/refs/json-schema-draft-06.json create mode 100644 node_modules/ajv/dist/refs/json-schema-draft-07.json create mode 100644 node_modules/ajv/dist/refs/json-schema-secure.json create mode 100644 node_modules/ajv/dist/refs/jtd-schema.d.ts create mode 100644 node_modules/ajv/dist/refs/jtd-schema.js create mode 100644 node_modules/ajv/dist/refs/jtd-schema.js.map create mode 100644 node_modules/ajv/dist/runtime/equal.d.ts create mode 100644 node_modules/ajv/dist/runtime/equal.js create mode 100644 node_modules/ajv/dist/runtime/equal.js.map create mode 100644 node_modules/ajv/dist/runtime/parseJson.d.ts create mode 100644 node_modules/ajv/dist/runtime/parseJson.js create mode 100644 node_modules/ajv/dist/runtime/parseJson.js.map create mode 100644 node_modules/ajv/dist/runtime/quote.d.ts create mode 100644 node_modules/ajv/dist/runtime/quote.js create mode 100644 node_modules/ajv/dist/runtime/quote.js.map create mode 100644 node_modules/ajv/dist/runtime/re2.d.ts create mode 100644 node_modules/ajv/dist/runtime/re2.js create mode 100644 node_modules/ajv/dist/runtime/re2.js.map create mode 100644 node_modules/ajv/dist/runtime/timestamp.d.ts create mode 100644 node_modules/ajv/dist/runtime/timestamp.js create mode 100644 node_modules/ajv/dist/runtime/timestamp.js.map create mode 100644 node_modules/ajv/dist/runtime/ucs2length.d.ts create mode 100644 node_modules/ajv/dist/runtime/ucs2length.js create mode 100644 node_modules/ajv/dist/runtime/ucs2length.js.map create mode 100644 node_modules/ajv/dist/runtime/uri.d.ts create mode 100644 node_modules/ajv/dist/runtime/uri.js create mode 100644 node_modules/ajv/dist/runtime/uri.js.map create mode 100644 node_modules/ajv/dist/runtime/validation_error.d.ts create mode 100644 node_modules/ajv/dist/runtime/validation_error.js create mode 100644 node_modules/ajv/dist/runtime/validation_error.js.map create mode 100644 node_modules/ajv/dist/standalone/index.d.ts create mode 100644 node_modules/ajv/dist/standalone/index.js create mode 100644 node_modules/ajv/dist/standalone/index.js.map create mode 100644 node_modules/ajv/dist/standalone/instance.d.ts create mode 100644 node_modules/ajv/dist/standalone/instance.js create mode 100644 node_modules/ajv/dist/standalone/instance.js.map create mode 100644 node_modules/ajv/dist/types/index.d.ts create mode 100644 node_modules/ajv/dist/types/index.js create mode 100644 node_modules/ajv/dist/types/index.js.map create mode 100644 node_modules/ajv/dist/types/json-schema.d.ts create mode 100644 node_modules/ajv/dist/types/json-schema.js create mode 100644 node_modules/ajv/dist/types/json-schema.js.map create mode 100644 node_modules/ajv/dist/types/jtd-schema.d.ts create mode 100644 node_modules/ajv/dist/types/jtd-schema.js create mode 100644 node_modules/ajv/dist/types/jtd-schema.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/additionalItems.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/allOf.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/allOf.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/allOf.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/anyOf.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/contains.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/contains.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/contains.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/dependencies.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/if.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/if.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/if.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/index.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/index.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/index.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/items.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/items.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/items.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/items2020.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/items2020.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/not.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/not.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/not.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/oneOf.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/patternProperties.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/patternProperties.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/prefixItems.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/prefixItems.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/properties.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/properties.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/properties.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/propertyNames.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map create mode 100644 node_modules/ajv/dist/vocabularies/applicator/thenElse.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/applicator/thenElse.js create mode 100644 node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map create mode 100644 node_modules/ajv/dist/vocabularies/code.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/code.js create mode 100644 node_modules/ajv/dist/vocabularies/code.js.map create mode 100644 node_modules/ajv/dist/vocabularies/core/id.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/core/id.js create mode 100644 node_modules/ajv/dist/vocabularies/core/id.js.map create mode 100644 node_modules/ajv/dist/vocabularies/core/index.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/core/index.js create mode 100644 node_modules/ajv/dist/vocabularies/core/index.js.map create mode 100644 node_modules/ajv/dist/vocabularies/core/ref.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/core/ref.js create mode 100644 node_modules/ajv/dist/vocabularies/core/ref.js.map create mode 100644 node_modules/ajv/dist/vocabularies/discriminator/index.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/discriminator/index.js create mode 100644 node_modules/ajv/dist/vocabularies/discriminator/index.js.map create mode 100644 node_modules/ajv/dist/vocabularies/discriminator/types.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/discriminator/types.js create mode 100644 node_modules/ajv/dist/vocabularies/discriminator/types.js.map create mode 100644 node_modules/ajv/dist/vocabularies/draft2020.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/draft2020.js create mode 100644 node_modules/ajv/dist/vocabularies/draft2020.js.map create mode 100644 node_modules/ajv/dist/vocabularies/draft7.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/draft7.js create mode 100644 node_modules/ajv/dist/vocabularies/draft7.js.map create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js.map create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js.map create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/index.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/index.js create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/index.js.map create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js.map create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js create mode 100644 node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js.map create mode 100644 node_modules/ajv/dist/vocabularies/errors.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/errors.js create mode 100644 node_modules/ajv/dist/vocabularies/errors.js.map create mode 100644 node_modules/ajv/dist/vocabularies/format/format.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/format/format.js create mode 100644 node_modules/ajv/dist/vocabularies/format/format.js.map create mode 100644 node_modules/ajv/dist/vocabularies/format/index.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/format/index.js create mode 100644 node_modules/ajv/dist/vocabularies/format/index.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/discriminator.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/discriminator.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/elements.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/elements.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/elements.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/enum.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/enum.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/enum.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/error.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/error.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/error.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/index.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/index.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/index.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/metadata.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/metadata.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/metadata.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/nullable.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/nullable.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/nullable.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/optionalProperties.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/properties.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/properties.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/properties.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/ref.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/ref.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/ref.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/type.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/type.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/type.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/union.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/union.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/union.js.map create mode 100644 node_modules/ajv/dist/vocabularies/jtd/values.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/jtd/values.js create mode 100644 node_modules/ajv/dist/vocabularies/jtd/values.js.map create mode 100644 node_modules/ajv/dist/vocabularies/metadata.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/metadata.js create mode 100644 node_modules/ajv/dist/vocabularies/metadata.js.map create mode 100644 node_modules/ajv/dist/vocabularies/next.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/next.js create mode 100644 node_modules/ajv/dist/vocabularies/next.js.map create mode 100644 node_modules/ajv/dist/vocabularies/unevaluated/index.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/unevaluated/index.js create mode 100644 node_modules/ajv/dist/vocabularies/unevaluated/index.js.map create mode 100644 node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js create mode 100644 node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js.map create mode 100644 node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js create mode 100644 node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/const.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/const.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/const.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/dependentRequired.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/dependentRequired.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/enum.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/enum.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/enum.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/index.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/index.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/index.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitContains.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitContains.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitContains.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitItems.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitItems.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitItems.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitLength.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitLength.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitLength.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitNumber.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitProperties.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitProperties.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/multipleOf.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/pattern.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/pattern.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/pattern.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/required.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/required.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/required.js.map create mode 100644 node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts create mode 100644 node_modules/ajv/dist/vocabularies/validation/uniqueItems.js create mode 100644 node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map create mode 100644 node_modules/ajv/lib/2019.ts create mode 100644 node_modules/ajv/lib/2020.ts create mode 100644 node_modules/ajv/lib/ajv.ts create mode 100644 node_modules/ajv/lib/compile/codegen/code.ts create mode 100644 node_modules/ajv/lib/compile/codegen/index.ts create mode 100644 node_modules/ajv/lib/compile/codegen/scope.ts create mode 100644 node_modules/ajv/lib/compile/errors.ts create mode 100644 node_modules/ajv/lib/compile/index.ts create mode 100644 node_modules/ajv/lib/compile/jtd/parse.ts create mode 100644 node_modules/ajv/lib/compile/jtd/serialize.ts create mode 100644 node_modules/ajv/lib/compile/jtd/types.ts create mode 100644 node_modules/ajv/lib/compile/names.ts create mode 100644 node_modules/ajv/lib/compile/ref_error.ts create mode 100644 node_modules/ajv/lib/compile/resolve.ts create mode 100644 node_modules/ajv/lib/compile/rules.ts create mode 100644 node_modules/ajv/lib/compile/util.ts create mode 100644 node_modules/ajv/lib/compile/validate/applicability.ts create mode 100644 node_modules/ajv/lib/compile/validate/boolSchema.ts create mode 100644 node_modules/ajv/lib/compile/validate/dataType.ts create mode 100644 node_modules/ajv/lib/compile/validate/defaults.ts create mode 100644 node_modules/ajv/lib/compile/validate/index.ts create mode 100644 node_modules/ajv/lib/compile/validate/keyword.ts create mode 100644 node_modules/ajv/lib/compile/validate/subschema.ts create mode 100644 node_modules/ajv/lib/core.ts create mode 100644 node_modules/ajv/lib/jtd.ts create mode 100644 node_modules/ajv/lib/refs/data.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2019-09/index.ts create mode 100644 node_modules/ajv/lib/refs/json-schema-2019-09/meta/applicator.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2019-09/meta/content.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2019-09/meta/core.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2019-09/meta/format.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2019-09/meta/meta-data.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2019-09/meta/validation.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2019-09/schema.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2020-12/index.ts create mode 100644 node_modules/ajv/lib/refs/json-schema-2020-12/meta/applicator.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2020-12/meta/content.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2020-12/meta/core.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2020-12/meta/format-annotation.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2020-12/meta/meta-data.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2020-12/meta/unevaluated.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2020-12/meta/validation.json create mode 100644 node_modules/ajv/lib/refs/json-schema-2020-12/schema.json create mode 100644 node_modules/ajv/lib/refs/json-schema-draft-06.json create mode 100644 node_modules/ajv/lib/refs/json-schema-draft-07.json create mode 100644 node_modules/ajv/lib/refs/json-schema-secure.json create mode 100644 node_modules/ajv/lib/refs/jtd-schema.ts create mode 100644 node_modules/ajv/lib/runtime/equal.ts create mode 100644 node_modules/ajv/lib/runtime/parseJson.ts create mode 100644 node_modules/ajv/lib/runtime/quote.ts create mode 100644 node_modules/ajv/lib/runtime/re2.ts create mode 100644 node_modules/ajv/lib/runtime/timestamp.ts create mode 100644 node_modules/ajv/lib/runtime/ucs2length.ts create mode 100644 node_modules/ajv/lib/runtime/uri.ts create mode 100644 node_modules/ajv/lib/runtime/validation_error.ts create mode 100644 node_modules/ajv/lib/standalone/index.ts create mode 100644 node_modules/ajv/lib/standalone/instance.ts create mode 100644 node_modules/ajv/lib/types/index.ts create mode 100644 node_modules/ajv/lib/types/json-schema.ts create mode 100644 node_modules/ajv/lib/types/jtd-schema.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/allOf.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/anyOf.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/contains.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/dependencies.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/if.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/index.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/items.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/items2020.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/not.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/oneOf.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/properties.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts create mode 100644 node_modules/ajv/lib/vocabularies/applicator/thenElse.ts create mode 100644 node_modules/ajv/lib/vocabularies/code.ts create mode 100644 node_modules/ajv/lib/vocabularies/core/id.ts create mode 100644 node_modules/ajv/lib/vocabularies/core/index.ts create mode 100644 node_modules/ajv/lib/vocabularies/core/ref.ts create mode 100644 node_modules/ajv/lib/vocabularies/discriminator/index.ts create mode 100644 node_modules/ajv/lib/vocabularies/discriminator/types.ts create mode 100644 node_modules/ajv/lib/vocabularies/draft2020.ts create mode 100644 node_modules/ajv/lib/vocabularies/draft7.ts create mode 100644 node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts create mode 100644 node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts create mode 100644 node_modules/ajv/lib/vocabularies/dynamic/index.ts create mode 100644 node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts create mode 100644 node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts create mode 100644 node_modules/ajv/lib/vocabularies/errors.ts create mode 100644 node_modules/ajv/lib/vocabularies/format/format.ts create mode 100644 node_modules/ajv/lib/vocabularies/format/index.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/discriminator.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/elements.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/enum.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/error.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/index.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/metadata.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/nullable.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/optionalProperties.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/properties.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/ref.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/type.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/union.ts create mode 100644 node_modules/ajv/lib/vocabularies/jtd/values.ts create mode 100644 node_modules/ajv/lib/vocabularies/metadata.ts create mode 100644 node_modules/ajv/lib/vocabularies/next.ts create mode 100644 node_modules/ajv/lib/vocabularies/unevaluated/index.ts create mode 100644 node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts create mode 100644 node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/const.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/enum.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/index.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/limitContains.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/limitItems.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/limitLength.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/limitNumber.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/limitProperties.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/multipleOf.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/pattern.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/required.ts create mode 100644 node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts create mode 100644 node_modules/ajv/package.json create mode 100644 node_modules/ansi-regex/index.d.ts create mode 100644 node_modules/ansi-regex/index.js create mode 100644 node_modules/ansi-regex/license create mode 100644 node_modules/ansi-regex/package.json create mode 100644 node_modules/ansi-regex/readme.md create mode 100644 node_modules/ansi-styles/index.d.ts create mode 100644 node_modules/ansi-styles/index.js create mode 100644 node_modules/ansi-styles/license create mode 100644 node_modules/ansi-styles/package.json create mode 100644 node_modules/ansi-styles/readme.md create mode 100644 node_modules/argparse/CHANGELOG.md create mode 100644 node_modules/argparse/LICENSE create mode 100644 node_modules/argparse/README.md create mode 100644 node_modules/argparse/argparse.js create mode 100644 node_modules/argparse/lib/sub.js create mode 100644 node_modules/argparse/lib/textwrap.js create mode 100644 node_modules/argparse/package.json create mode 100644 node_modules/astral-regex/index.d.ts create mode 100644 node_modules/astral-regex/index.js create mode 100644 node_modules/astral-regex/license create mode 100644 node_modules/astral-regex/package.json create mode 100644 node_modules/astral-regex/readme.md create mode 100644 node_modules/braces/LICENSE create mode 100644 node_modules/braces/README.md create mode 100644 node_modules/braces/index.js create mode 100644 node_modules/braces/lib/compile.js create mode 100644 node_modules/braces/lib/constants.js create mode 100644 node_modules/braces/lib/expand.js create mode 100644 node_modules/braces/lib/parse.js create mode 100644 node_modules/braces/lib/stringify.js create mode 100644 node_modules/braces/lib/utils.js create mode 100644 node_modules/braces/package.json create mode 100644 node_modules/cacheable/LICENSE create mode 100644 node_modules/cacheable/README.md create mode 100644 node_modules/cacheable/dist/index.cjs create mode 100644 node_modules/cacheable/dist/index.d.cts create mode 100644 node_modules/cacheable/dist/index.d.ts create mode 100644 node_modules/cacheable/dist/index.js create mode 100644 node_modules/cacheable/package.json create mode 100644 node_modules/callsites/index.d.ts create mode 100644 node_modules/callsites/index.js create mode 100644 node_modules/callsites/license create mode 100644 node_modules/callsites/package.json create mode 100644 node_modules/callsites/readme.md create mode 100644 node_modules/color-convert/CHANGELOG.md create mode 100644 node_modules/color-convert/LICENSE create mode 100644 node_modules/color-convert/README.md create mode 100644 node_modules/color-convert/conversions.js create mode 100644 node_modules/color-convert/index.js create mode 100644 node_modules/color-convert/package.json create mode 100644 node_modules/color-convert/route.js create mode 100644 node_modules/color-name/LICENSE create mode 100644 node_modules/color-name/README.md create mode 100644 node_modules/color-name/index.js create mode 100644 node_modules/color-name/package.json create mode 100644 node_modules/colord/CHANGELOG.md create mode 100644 node_modules/colord/LICENSE.md create mode 100644 node_modules/colord/README.md create mode 100644 node_modules/colord/colord.d.ts create mode 100644 node_modules/colord/constants.d.ts create mode 100644 node_modules/colord/extend.d.ts create mode 100644 node_modules/colord/helpers.d.ts create mode 100644 node_modules/colord/index.d.ts create mode 100644 node_modules/colord/index.js create mode 100644 node_modules/colord/index.mjs create mode 100644 node_modules/colord/package.json create mode 100644 node_modules/colord/parse.d.ts create mode 100644 node_modules/colord/plugins/a11y.d.ts create mode 100644 node_modules/colord/plugins/a11y.js create mode 100644 node_modules/colord/plugins/a11y.mjs create mode 100644 node_modules/colord/plugins/cmyk.d.ts create mode 100644 node_modules/colord/plugins/cmyk.js create mode 100644 node_modules/colord/plugins/cmyk.mjs create mode 100644 node_modules/colord/plugins/harmonies.d.ts create mode 100644 node_modules/colord/plugins/harmonies.js create mode 100644 node_modules/colord/plugins/harmonies.mjs create mode 100644 node_modules/colord/plugins/hwb.d.ts create mode 100644 node_modules/colord/plugins/hwb.js create mode 100644 node_modules/colord/plugins/hwb.mjs create mode 100644 node_modules/colord/plugins/lab.d.ts create mode 100644 node_modules/colord/plugins/lab.js create mode 100644 node_modules/colord/plugins/lab.mjs create mode 100644 node_modules/colord/plugins/lch.d.ts create mode 100644 node_modules/colord/plugins/lch.js create mode 100644 node_modules/colord/plugins/lch.mjs create mode 100644 node_modules/colord/plugins/minify.d.ts create mode 100644 node_modules/colord/plugins/minify.js create mode 100644 node_modules/colord/plugins/minify.mjs create mode 100644 node_modules/colord/plugins/mix.d.ts create mode 100644 node_modules/colord/plugins/mix.js create mode 100644 node_modules/colord/plugins/mix.mjs create mode 100644 node_modules/colord/plugins/names.d.ts create mode 100644 node_modules/colord/plugins/names.js create mode 100644 node_modules/colord/plugins/names.mjs create mode 100644 node_modules/colord/plugins/xyz.d.ts create mode 100644 node_modules/colord/plugins/xyz.js create mode 100644 node_modules/colord/plugins/xyz.mjs create mode 100644 node_modules/colord/random.d.ts create mode 100644 node_modules/colord/types.d.ts create mode 100644 node_modules/cosmiconfig/LICENSE create mode 100644 node_modules/cosmiconfig/README.md create mode 100644 node_modules/cosmiconfig/dist/Explorer.d.ts create mode 100644 node_modules/cosmiconfig/dist/Explorer.js create mode 100644 node_modules/cosmiconfig/dist/ExplorerBase.d.ts create mode 100644 node_modules/cosmiconfig/dist/ExplorerBase.js create mode 100644 node_modules/cosmiconfig/dist/ExplorerSync.d.ts create mode 100644 node_modules/cosmiconfig/dist/ExplorerSync.js create mode 100644 node_modules/cosmiconfig/dist/cacheWrapper.d.ts create mode 100644 node_modules/cosmiconfig/dist/cacheWrapper.js create mode 100644 node_modules/cosmiconfig/dist/canUseDynamicImport.d.ts create mode 100644 node_modules/cosmiconfig/dist/canUseDynamicImport.js create mode 100644 node_modules/cosmiconfig/dist/defaults.d.ts create mode 100644 node_modules/cosmiconfig/dist/defaults.js create mode 100644 node_modules/cosmiconfig/dist/getDirectory.d.ts create mode 100644 node_modules/cosmiconfig/dist/getDirectory.js create mode 100644 node_modules/cosmiconfig/dist/getPropertyByPath.d.ts create mode 100644 node_modules/cosmiconfig/dist/getPropertyByPath.js create mode 100644 node_modules/cosmiconfig/dist/index.d.ts create mode 100644 node_modules/cosmiconfig/dist/index.js create mode 100644 node_modules/cosmiconfig/dist/loaders.d.ts create mode 100644 node_modules/cosmiconfig/dist/loaders.js create mode 100644 node_modules/cosmiconfig/dist/merge.d.ts create mode 100644 node_modules/cosmiconfig/dist/merge.js create mode 100644 node_modules/cosmiconfig/dist/readFile.d.ts create mode 100644 node_modules/cosmiconfig/dist/readFile.js create mode 100644 node_modules/cosmiconfig/dist/types.d.ts create mode 100644 node_modules/cosmiconfig/dist/types.js create mode 100644 node_modules/cosmiconfig/dist/util.d.ts create mode 100644 node_modules/cosmiconfig/dist/util.js create mode 100644 node_modules/cosmiconfig/package.json create mode 100644 node_modules/css-functions-list/CHANGELOG.md create mode 100644 node_modules/css-functions-list/LICENSE.md create mode 100644 node_modules/css-functions-list/README.md create mode 100644 node_modules/css-functions-list/dist/index.cjs create mode 100644 node_modules/css-functions-list/dist/index.cjs.map create mode 100644 node_modules/css-functions-list/dist/index.d.ts create mode 100644 node_modules/css-functions-list/dist/index.d.ts.map create mode 100644 node_modules/css-functions-list/dist/index.js create mode 100644 node_modules/css-functions-list/dist/index.js.map create mode 100644 node_modules/css-functions-list/dist/index.json create mode 100644 node_modules/css-functions-list/package.json create mode 100644 node_modules/css-tree/LICENSE create mode 100644 node_modules/css-tree/README.md create mode 100644 node_modules/css-tree/cjs/convertor/create.cjs create mode 100644 node_modules/css-tree/cjs/convertor/index.cjs create mode 100644 node_modules/css-tree/cjs/data-patch.cjs create mode 100644 node_modules/css-tree/cjs/data.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/SyntaxError.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/generate.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/index.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/parse.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/scanner.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/tokenizer.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/walk.cjs create mode 100644 node_modules/css-tree/cjs/generator/create.cjs create mode 100644 node_modules/css-tree/cjs/generator/index.cjs create mode 100644 node_modules/css-tree/cjs/generator/sourceMap.cjs create mode 100644 node_modules/css-tree/cjs/generator/token-before.cjs create mode 100644 node_modules/css-tree/cjs/index.cjs create mode 100644 node_modules/css-tree/cjs/lexer/Lexer.cjs create mode 100644 node_modules/css-tree/cjs/lexer/error.cjs create mode 100644 node_modules/css-tree/cjs/lexer/generic-an-plus-b.cjs create mode 100644 node_modules/css-tree/cjs/lexer/generic-const.cjs create mode 100644 node_modules/css-tree/cjs/lexer/generic-urange.cjs create mode 100644 node_modules/css-tree/cjs/lexer/generic.cjs create mode 100644 node_modules/css-tree/cjs/lexer/index.cjs create mode 100644 node_modules/css-tree/cjs/lexer/match-graph.cjs create mode 100644 node_modules/css-tree/cjs/lexer/match.cjs create mode 100644 node_modules/css-tree/cjs/lexer/prepare-tokens.cjs create mode 100644 node_modules/css-tree/cjs/lexer/search.cjs create mode 100644 node_modules/css-tree/cjs/lexer/structure.cjs create mode 100644 node_modules/css-tree/cjs/lexer/trace.cjs create mode 100644 node_modules/css-tree/cjs/lexer/units.cjs create mode 100644 node_modules/css-tree/cjs/parser/SyntaxError.cjs create mode 100644 node_modules/css-tree/cjs/parser/create.cjs create mode 100644 node_modules/css-tree/cjs/parser/index.cjs create mode 100644 node_modules/css-tree/cjs/parser/parse-selector.cjs create mode 100644 node_modules/css-tree/cjs/parser/sequence.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/container.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/font-face.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/import.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/index.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/layer.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/media.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/nest.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/page.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/scope.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/starting-style.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/supports.cjs create mode 100644 node_modules/css-tree/cjs/syntax/config/generator.cjs create mode 100644 node_modules/css-tree/cjs/syntax/config/lexer.cjs create mode 100644 node_modules/css-tree/cjs/syntax/config/mix.cjs create mode 100644 node_modules/css-tree/cjs/syntax/config/parser-selector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/config/parser.cjs create mode 100644 node_modules/css-tree/cjs/syntax/config/walker.cjs create mode 100644 node_modules/css-tree/cjs/syntax/create.cjs create mode 100644 node_modules/css-tree/cjs/syntax/function/expression.cjs create mode 100644 node_modules/css-tree/cjs/syntax/function/var.cjs create mode 100644 node_modules/css-tree/cjs/syntax/index.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/AnPlusB.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Atrule.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/AtrulePrelude.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/AttributeSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Block.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Brackets.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/CDC.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/CDO.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/ClassSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Combinator.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Comment.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Condition.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Declaration.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/DeclarationList.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Dimension.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Feature.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/FeatureFunction.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/FeatureRange.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Function.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/GeneralEnclosed.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Hash.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/IdSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Identifier.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Layer.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/LayerList.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/LayerName.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/LayerNameList.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/MediaCondition.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/MediaFeature.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/MediaFeatureRange.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/MediaQuery.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/MediaQueryList.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/NestingSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Nth.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Number.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Operator.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Parentheses.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Percentage.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/PseudoClassSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/PseudoElementSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Ratio.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Raw.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Rule.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Scope.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Selector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/SelectorList.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/String.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/StyleSheet.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/SupportsDeclaration.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/SupportsFeature.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/TypeSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/UnicodeRange.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Url.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Value.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/WhiteSpace.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/common/feature-range.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/common/feature.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/index-generate.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/index-parse-selector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/index-parse.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/index.cjs create mode 100644 node_modules/css-tree/cjs/syntax/pseudo/index.cjs create mode 100644 node_modules/css-tree/cjs/syntax/pseudo/lang.cjs create mode 100644 node_modules/css-tree/cjs/syntax/scope/atrulePrelude.cjs create mode 100644 node_modules/css-tree/cjs/syntax/scope/default.cjs create mode 100644 node_modules/css-tree/cjs/syntax/scope/index.cjs create mode 100644 node_modules/css-tree/cjs/syntax/scope/selector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/scope/value.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/OffsetToLocation.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/TokenStream.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/adopt-buffer.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/char-code-definitions.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/index.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/names.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/types.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/utils.cjs create mode 100644 node_modules/css-tree/cjs/utils/List.cjs create mode 100644 node_modules/css-tree/cjs/utils/clone.cjs create mode 100644 node_modules/css-tree/cjs/utils/create-custom-error.cjs create mode 100644 node_modules/css-tree/cjs/utils/ident.cjs create mode 100644 node_modules/css-tree/cjs/utils/index.cjs create mode 100644 node_modules/css-tree/cjs/utils/names.cjs create mode 100644 node_modules/css-tree/cjs/utils/string.cjs create mode 100644 node_modules/css-tree/cjs/utils/url.cjs create mode 100644 node_modules/css-tree/cjs/version.cjs create mode 100644 node_modules/css-tree/cjs/walker/create.cjs create mode 100644 node_modules/css-tree/cjs/walker/index.cjs create mode 100644 node_modules/css-tree/data/patch.json create mode 100644 node_modules/css-tree/dist/csstree.esm.js create mode 100644 node_modules/css-tree/dist/csstree.js create mode 100644 node_modules/css-tree/dist/data.cjs create mode 100644 node_modules/css-tree/dist/data.js create mode 100644 node_modules/css-tree/dist/version.cjs create mode 100644 node_modules/css-tree/dist/version.js create mode 100644 node_modules/css-tree/lib/convertor/create.js create mode 100644 node_modules/css-tree/lib/convertor/index.js create mode 100644 node_modules/css-tree/lib/data-patch.js create mode 100755 node_modules/css-tree/lib/data.js create mode 100644 node_modules/css-tree/lib/definition-syntax/SyntaxError.js create mode 100644 node_modules/css-tree/lib/definition-syntax/generate.js create mode 100644 node_modules/css-tree/lib/definition-syntax/index.js create mode 100644 node_modules/css-tree/lib/definition-syntax/parse.js create mode 100644 node_modules/css-tree/lib/definition-syntax/scanner.js create mode 100644 node_modules/css-tree/lib/definition-syntax/walk.js create mode 100644 node_modules/css-tree/lib/generator/create.js create mode 100644 node_modules/css-tree/lib/generator/index.js create mode 100644 node_modules/css-tree/lib/generator/sourceMap.js create mode 100644 node_modules/css-tree/lib/generator/token-before.js create mode 100644 node_modules/css-tree/lib/index.js create mode 100644 node_modules/css-tree/lib/lexer/Lexer.js create mode 100644 node_modules/css-tree/lib/lexer/error.js create mode 100644 node_modules/css-tree/lib/lexer/generic-an-plus-b.js create mode 100644 node_modules/css-tree/lib/lexer/generic-const.js create mode 100644 node_modules/css-tree/lib/lexer/generic-urange.js create mode 100644 node_modules/css-tree/lib/lexer/generic.js create mode 100644 node_modules/css-tree/lib/lexer/index.js create mode 100644 node_modules/css-tree/lib/lexer/match-graph.js create mode 100644 node_modules/css-tree/lib/lexer/match.js create mode 100644 node_modules/css-tree/lib/lexer/prepare-tokens.js create mode 100644 node_modules/css-tree/lib/lexer/search.js create mode 100644 node_modules/css-tree/lib/lexer/structure.js create mode 100644 node_modules/css-tree/lib/lexer/trace.js create mode 100644 node_modules/css-tree/lib/lexer/units.js create mode 100644 node_modules/css-tree/lib/parser/SyntaxError.js create mode 100644 node_modules/css-tree/lib/parser/create.js create mode 100644 node_modules/css-tree/lib/parser/index.js create mode 100644 node_modules/css-tree/lib/parser/parse-selector.js create mode 100644 node_modules/css-tree/lib/parser/sequence.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/container.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/font-face.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/import.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/index.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/layer.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/media.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/nest.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/page.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/scope.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/starting-style.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/supports.js create mode 100644 node_modules/css-tree/lib/syntax/config/generator.js create mode 100644 node_modules/css-tree/lib/syntax/config/lexer.js create mode 100644 node_modules/css-tree/lib/syntax/config/mix.js create mode 100644 node_modules/css-tree/lib/syntax/config/parser-selector.js create mode 100644 node_modules/css-tree/lib/syntax/config/parser.js create mode 100644 node_modules/css-tree/lib/syntax/config/walker.js create mode 100644 node_modules/css-tree/lib/syntax/create.js create mode 100644 node_modules/css-tree/lib/syntax/function/expression.js create mode 100644 node_modules/css-tree/lib/syntax/function/var.js create mode 100644 node_modules/css-tree/lib/syntax/index.js create mode 100644 node_modules/css-tree/lib/syntax/node/AnPlusB.js create mode 100644 node_modules/css-tree/lib/syntax/node/Atrule.js create mode 100644 node_modules/css-tree/lib/syntax/node/AtrulePrelude.js create mode 100644 node_modules/css-tree/lib/syntax/node/AttributeSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/Block.js create mode 100644 node_modules/css-tree/lib/syntax/node/Brackets.js create mode 100644 node_modules/css-tree/lib/syntax/node/CDC.js create mode 100644 node_modules/css-tree/lib/syntax/node/CDO.js create mode 100644 node_modules/css-tree/lib/syntax/node/ClassSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/Combinator.js create mode 100644 node_modules/css-tree/lib/syntax/node/Comment.js create mode 100644 node_modules/css-tree/lib/syntax/node/Condition.js create mode 100644 node_modules/css-tree/lib/syntax/node/Declaration.js create mode 100644 node_modules/css-tree/lib/syntax/node/DeclarationList.js create mode 100644 node_modules/css-tree/lib/syntax/node/Dimension.js create mode 100644 node_modules/css-tree/lib/syntax/node/Feature.js create mode 100644 node_modules/css-tree/lib/syntax/node/FeatureFunction.js create mode 100644 node_modules/css-tree/lib/syntax/node/FeatureRange.js create mode 100644 node_modules/css-tree/lib/syntax/node/Function.js create mode 100644 node_modules/css-tree/lib/syntax/node/GeneralEnclosed.js create mode 100644 node_modules/css-tree/lib/syntax/node/Hash.js create mode 100644 node_modules/css-tree/lib/syntax/node/IdSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/Identifier.js create mode 100644 node_modules/css-tree/lib/syntax/node/Layer.js create mode 100644 node_modules/css-tree/lib/syntax/node/LayerList.js create mode 100644 node_modules/css-tree/lib/syntax/node/MediaQuery.js create mode 100644 node_modules/css-tree/lib/syntax/node/MediaQueryList.js create mode 100644 node_modules/css-tree/lib/syntax/node/NestingSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/Nth.js create mode 100644 node_modules/css-tree/lib/syntax/node/Number.js create mode 100644 node_modules/css-tree/lib/syntax/node/Operator.js create mode 100644 node_modules/css-tree/lib/syntax/node/Parentheses.js create mode 100644 node_modules/css-tree/lib/syntax/node/Percentage.js create mode 100644 node_modules/css-tree/lib/syntax/node/PseudoClassSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/PseudoElementSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/Ratio.js create mode 100644 node_modules/css-tree/lib/syntax/node/Raw.js create mode 100644 node_modules/css-tree/lib/syntax/node/Rule.js create mode 100644 node_modules/css-tree/lib/syntax/node/Scope.js create mode 100644 node_modules/css-tree/lib/syntax/node/Selector.js create mode 100644 node_modules/css-tree/lib/syntax/node/SelectorList.js create mode 100644 node_modules/css-tree/lib/syntax/node/String.js create mode 100644 node_modules/css-tree/lib/syntax/node/StyleSheet.js create mode 100644 node_modules/css-tree/lib/syntax/node/SupportsDeclaration.js create mode 100644 node_modules/css-tree/lib/syntax/node/TypeSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/UnicodeRange.js create mode 100644 node_modules/css-tree/lib/syntax/node/Url.js create mode 100644 node_modules/css-tree/lib/syntax/node/Value.js create mode 100644 node_modules/css-tree/lib/syntax/node/WhiteSpace.js create mode 100644 node_modules/css-tree/lib/syntax/node/index-generate.js create mode 100644 node_modules/css-tree/lib/syntax/node/index-parse-selector.js create mode 100644 node_modules/css-tree/lib/syntax/node/index-parse.js create mode 100644 node_modules/css-tree/lib/syntax/node/index.js create mode 100644 node_modules/css-tree/lib/syntax/pseudo/index.js create mode 100644 node_modules/css-tree/lib/syntax/pseudo/lang.js create mode 100644 node_modules/css-tree/lib/syntax/scope/atrulePrelude.js create mode 100644 node_modules/css-tree/lib/syntax/scope/default.js create mode 100644 node_modules/css-tree/lib/syntax/scope/index.js create mode 100644 node_modules/css-tree/lib/syntax/scope/selector.js create mode 100644 node_modules/css-tree/lib/syntax/scope/value.js create mode 100644 node_modules/css-tree/lib/tokenizer/OffsetToLocation.js create mode 100644 node_modules/css-tree/lib/tokenizer/TokenStream.js create mode 100644 node_modules/css-tree/lib/tokenizer/adopt-buffer.js create mode 100644 node_modules/css-tree/lib/tokenizer/char-code-definitions.js create mode 100644 node_modules/css-tree/lib/tokenizer/index.js create mode 100644 node_modules/css-tree/lib/tokenizer/names.js create mode 100644 node_modules/css-tree/lib/tokenizer/types.js create mode 100644 node_modules/css-tree/lib/tokenizer/utils.js create mode 100644 node_modules/css-tree/lib/utils/List.js create mode 100644 node_modules/css-tree/lib/utils/clone.js create mode 100644 node_modules/css-tree/lib/utils/create-custom-error.js create mode 100644 node_modules/css-tree/lib/utils/ident.js create mode 100644 node_modules/css-tree/lib/utils/index.js create mode 100644 node_modules/css-tree/lib/utils/names.js create mode 100644 node_modules/css-tree/lib/utils/string.js create mode 100644 node_modules/css-tree/lib/utils/url.js create mode 100644 node_modules/css-tree/lib/version.js create mode 100644 node_modules/css-tree/lib/walker/create.js create mode 100644 node_modules/css-tree/lib/walker/index.js create mode 100644 node_modules/css-tree/package.json create mode 100644 node_modules/cssesc/LICENSE-MIT.txt create mode 100644 node_modules/cssesc/README.md create mode 100755 node_modules/cssesc/bin/cssesc create mode 100644 node_modules/cssesc/cssesc.js create mode 100644 node_modules/cssesc/man/cssesc.1 create mode 100644 node_modules/cssesc/package.json create mode 100644 node_modules/debug/LICENSE create mode 100644 node_modules/debug/README.md create mode 100644 node_modules/debug/package.json create mode 100644 node_modules/debug/src/browser.js create mode 100644 node_modules/debug/src/common.js create mode 100644 node_modules/debug/src/index.js create mode 100644 node_modules/debug/src/node.js create mode 100644 node_modules/emoji-regex/LICENSE-MIT.txt create mode 100644 node_modules/emoji-regex/README.md create mode 100644 node_modules/emoji-regex/es2015/index.js create mode 100644 node_modules/emoji-regex/es2015/text.js create mode 100644 node_modules/emoji-regex/index.d.ts create mode 100644 node_modules/emoji-regex/index.js create mode 100644 node_modules/emoji-regex/package.json create mode 100644 node_modules/emoji-regex/text.js create mode 100644 node_modules/env-paths/index.d.ts create mode 100644 node_modules/env-paths/index.js create mode 100644 node_modules/env-paths/license create mode 100644 node_modules/env-paths/package.json create mode 100644 node_modules/env-paths/readme.md create mode 100644 node_modules/error-ex/LICENSE create mode 100644 node_modules/error-ex/README.md create mode 100644 node_modules/error-ex/index.js create mode 100644 node_modules/error-ex/package.json create mode 100644 node_modules/fast-deep-equal/LICENSE create mode 100644 node_modules/fast-deep-equal/README.md create mode 100644 node_modules/fast-deep-equal/es6/index.d.ts create mode 100644 node_modules/fast-deep-equal/es6/index.js create mode 100644 node_modules/fast-deep-equal/es6/react.d.ts create mode 100644 node_modules/fast-deep-equal/es6/react.js create mode 100644 node_modules/fast-deep-equal/index.d.ts create mode 100644 node_modules/fast-deep-equal/index.js create mode 100644 node_modules/fast-deep-equal/package.json create mode 100644 node_modules/fast-deep-equal/react.d.ts create mode 100644 node_modules/fast-deep-equal/react.js create mode 100644 node_modules/fast-glob/LICENSE create mode 100644 node_modules/fast-glob/README.md create mode 100644 node_modules/fast-glob/out/index.d.ts create mode 100644 node_modules/fast-glob/out/index.js create mode 100644 node_modules/fast-glob/out/managers/tasks.d.ts create mode 100644 node_modules/fast-glob/out/managers/tasks.js create mode 100644 node_modules/fast-glob/out/providers/async.d.ts create mode 100644 node_modules/fast-glob/out/providers/async.js create mode 100644 node_modules/fast-glob/out/providers/filters/deep.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/deep.js create mode 100644 node_modules/fast-glob/out/providers/filters/entry.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/entry.js create mode 100644 node_modules/fast-glob/out/providers/filters/error.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/error.js create mode 100644 node_modules/fast-glob/out/providers/matchers/matcher.d.ts create mode 100644 node_modules/fast-glob/out/providers/matchers/matcher.js create mode 100644 node_modules/fast-glob/out/providers/matchers/partial.d.ts create mode 100644 node_modules/fast-glob/out/providers/matchers/partial.js create mode 100644 node_modules/fast-glob/out/providers/provider.d.ts create mode 100644 node_modules/fast-glob/out/providers/provider.js create mode 100644 node_modules/fast-glob/out/providers/stream.d.ts create mode 100644 node_modules/fast-glob/out/providers/stream.js create mode 100644 node_modules/fast-glob/out/providers/sync.d.ts create mode 100644 node_modules/fast-glob/out/providers/sync.js create mode 100644 node_modules/fast-glob/out/providers/transformers/entry.d.ts create mode 100644 node_modules/fast-glob/out/providers/transformers/entry.js create mode 100644 node_modules/fast-glob/out/readers/async.d.ts create mode 100644 node_modules/fast-glob/out/readers/async.js create mode 100644 node_modules/fast-glob/out/readers/reader.d.ts create mode 100644 node_modules/fast-glob/out/readers/reader.js create mode 100644 node_modules/fast-glob/out/readers/stream.d.ts create mode 100644 node_modules/fast-glob/out/readers/stream.js create mode 100644 node_modules/fast-glob/out/readers/sync.d.ts create mode 100644 node_modules/fast-glob/out/readers/sync.js create mode 100644 node_modules/fast-glob/out/settings.d.ts create mode 100644 node_modules/fast-glob/out/settings.js create mode 100644 node_modules/fast-glob/out/types/index.d.ts create mode 100644 node_modules/fast-glob/out/types/index.js create mode 100644 node_modules/fast-glob/out/utils/array.d.ts create mode 100644 node_modules/fast-glob/out/utils/array.js create mode 100644 node_modules/fast-glob/out/utils/errno.d.ts create mode 100644 node_modules/fast-glob/out/utils/errno.js create mode 100644 node_modules/fast-glob/out/utils/fs.d.ts create mode 100644 node_modules/fast-glob/out/utils/fs.js create mode 100644 node_modules/fast-glob/out/utils/index.d.ts create mode 100644 node_modules/fast-glob/out/utils/index.js create mode 100644 node_modules/fast-glob/out/utils/path.d.ts create mode 100644 node_modules/fast-glob/out/utils/path.js create mode 100644 node_modules/fast-glob/out/utils/pattern.d.ts create mode 100644 node_modules/fast-glob/out/utils/pattern.js create mode 100644 node_modules/fast-glob/out/utils/stream.d.ts create mode 100644 node_modules/fast-glob/out/utils/stream.js create mode 100644 node_modules/fast-glob/out/utils/string.d.ts create mode 100644 node_modules/fast-glob/out/utils/string.js create mode 100644 node_modules/fast-glob/package.json create mode 100644 node_modules/fast-uri/.gitattributes create mode 100644 node_modules/fast-uri/.github/.stale.yml create mode 100644 node_modules/fast-uri/.github/dependabot.yml create mode 100644 node_modules/fast-uri/.github/tests_checker.yml create mode 100644 node_modules/fast-uri/.github/workflows/ci.yml create mode 100644 node_modules/fast-uri/.github/workflows/package-manager-ci.yml create mode 100644 node_modules/fast-uri/LICENSE create mode 100644 node_modules/fast-uri/README.md create mode 100644 node_modules/fast-uri/benchmark/benchmark.mjs create mode 100644 node_modules/fast-uri/benchmark/equal.mjs create mode 100644 node_modules/fast-uri/benchmark/non-simple-domain.mjs create mode 100644 node_modules/fast-uri/benchmark/package.json create mode 100644 node_modules/fast-uri/benchmark/string-array-to-hex-stripped.mjs create mode 100644 node_modules/fast-uri/benchmark/ws-is-secure.mjs create mode 100644 node_modules/fast-uri/eslint.config.js create mode 100644 node_modules/fast-uri/index.js create mode 100644 node_modules/fast-uri/lib/schemes.js create mode 100644 node_modules/fast-uri/lib/utils.js create mode 100644 node_modules/fast-uri/package.json create mode 100644 node_modules/fast-uri/test/ajv.test.js create mode 100644 node_modules/fast-uri/test/equal.test.js create mode 100644 node_modules/fast-uri/test/fixtures/uri-js-parse.json create mode 100644 node_modules/fast-uri/test/fixtures/uri-js-serialize.json create mode 100644 node_modules/fast-uri/test/parse.test.js create mode 100644 node_modules/fast-uri/test/resolve.test.js create mode 100644 node_modules/fast-uri/test/rfc-3986.test.js create mode 100644 node_modules/fast-uri/test/serialize.test.js create mode 100644 node_modules/fast-uri/test/uri-js-compatibility.test.js create mode 100644 node_modules/fast-uri/test/uri-js.test.js create mode 100644 node_modules/fast-uri/test/util.test.js create mode 100644 node_modules/fast-uri/tsconfig.json create mode 100644 node_modules/fast-uri/types/index.d.ts create mode 100644 node_modules/fast-uri/types/index.test-d.ts create mode 100644 node_modules/fastest-levenshtein/.eslintrc.json create mode 100644 node_modules/fastest-levenshtein/.prettierrc create mode 100644 node_modules/fastest-levenshtein/.travis.yml create mode 100644 node_modules/fastest-levenshtein/LICENSE.md create mode 100644 node_modules/fastest-levenshtein/README.md create mode 100644 node_modules/fastest-levenshtein/bench.js create mode 100644 node_modules/fastest-levenshtein/esm/mod.d.ts create mode 100644 node_modules/fastest-levenshtein/esm/mod.d.ts.map create mode 100644 node_modules/fastest-levenshtein/esm/mod.js create mode 100644 node_modules/fastest-levenshtein/mod.d.ts create mode 100644 node_modules/fastest-levenshtein/mod.js create mode 100644 node_modules/fastest-levenshtein/package.json create mode 100644 node_modules/fastest-levenshtein/test.js create mode 100644 node_modules/fastest-levenshtein/test.ts create mode 100644 node_modules/fastq/LICENSE create mode 100644 node_modules/fastq/README.md create mode 100644 node_modules/fastq/SECURITY.md create mode 100644 node_modules/fastq/bench.js create mode 100644 node_modules/fastq/eslint.config.js create mode 100644 node_modules/fastq/example.js create mode 100644 node_modules/fastq/example.mjs create mode 100644 node_modules/fastq/index.d.ts create mode 100644 node_modules/fastq/package.json create mode 100644 node_modules/fastq/queue.js create mode 100644 node_modules/fastq/test/example.ts create mode 100644 node_modules/fastq/test/promise.js create mode 100644 node_modules/fastq/test/test.js create mode 100644 node_modules/fastq/test/tsconfig.json create mode 100644 node_modules/file-entry-cache/LICENSE create mode 100644 node_modules/file-entry-cache/README.md create mode 100644 node_modules/file-entry-cache/dist/index.cjs create mode 100644 node_modules/file-entry-cache/dist/index.d.cts create mode 100644 node_modules/file-entry-cache/dist/index.d.ts create mode 100644 node_modules/file-entry-cache/dist/index.js create mode 100644 node_modules/file-entry-cache/package.json create mode 100644 node_modules/fill-range/LICENSE create mode 100644 node_modules/fill-range/README.md create mode 100644 node_modules/fill-range/index.js create mode 100644 node_modules/fill-range/package.json create mode 100644 node_modules/flat-cache/LICENSE create mode 100644 node_modules/flat-cache/README.md create mode 100644 node_modules/flat-cache/dist/index.cjs create mode 100644 node_modules/flat-cache/dist/index.d.cts create mode 100644 node_modules/flat-cache/dist/index.d.ts create mode 100644 node_modules/flat-cache/dist/index.js create mode 100644 node_modules/flat-cache/package.json create mode 100644 node_modules/flatted/LICENSE create mode 100644 node_modules/flatted/README.md create mode 100644 node_modules/flatted/cjs/index.js create mode 100644 node_modules/flatted/cjs/package.json create mode 100644 node_modules/flatted/es.js create mode 100644 node_modules/flatted/esm.js create mode 100644 node_modules/flatted/esm/index.js create mode 100644 node_modules/flatted/golang/README.md create mode 100644 node_modules/flatted/golang/pkg/flatted/flatted.go create mode 100644 node_modules/flatted/index.js create mode 100644 node_modules/flatted/min.js create mode 100644 node_modules/flatted/package.json create mode 100644 node_modules/flatted/php/flatted.php create mode 100644 node_modules/flatted/python/flatted.py create mode 100644 node_modules/flatted/types/index.d.ts create mode 100644 node_modules/get-east-asian-width/index.d.ts create mode 100644 node_modules/get-east-asian-width/index.js create mode 100644 node_modules/get-east-asian-width/license create mode 100644 node_modules/get-east-asian-width/lookup-data.js create mode 100644 node_modules/get-east-asian-width/lookup.js create mode 100644 node_modules/get-east-asian-width/package.json create mode 100644 node_modules/get-east-asian-width/readme.md create mode 100644 node_modules/get-east-asian-width/utilities.js create mode 100644 node_modules/glob-parent/CHANGELOG.md create mode 100644 node_modules/glob-parent/LICENSE create mode 100644 node_modules/glob-parent/README.md create mode 100644 node_modules/glob-parent/index.js create mode 100644 node_modules/glob-parent/package.json create mode 100644 node_modules/global-modules/LICENSE create mode 100644 node_modules/global-modules/README.md create mode 100644 node_modules/global-modules/index.js create mode 100644 node_modules/global-modules/package.json create mode 100644 node_modules/global-prefix/LICENSE create mode 100644 node_modules/global-prefix/README.md create mode 100644 node_modules/global-prefix/index.js create mode 100644 node_modules/global-prefix/package.json create mode 100644 node_modules/globby/ignore.js create mode 100644 node_modules/globby/index.d.ts create mode 100644 node_modules/globby/index.js create mode 100644 node_modules/globby/license create mode 100644 node_modules/globby/package.json create mode 100644 node_modules/globby/readme.md create mode 100644 node_modules/globby/utilities.js create mode 100644 node_modules/globjoin/CHANGELOG.md create mode 100644 node_modules/globjoin/LICENSE create mode 100644 node_modules/globjoin/README.md create mode 100644 node_modules/globjoin/index.js create mode 100644 node_modules/globjoin/package.json create mode 100644 node_modules/has-flag/index.d.ts create mode 100644 node_modules/has-flag/index.js create mode 100644 node_modules/has-flag/license create mode 100644 node_modules/has-flag/package.json create mode 100644 node_modules/has-flag/readme.md create mode 100644 node_modules/hashery/LICENSE create mode 100644 node_modules/hashery/README.md create mode 100644 node_modules/hashery/dist/browser/index.global.js create mode 100644 node_modules/hashery/dist/browser/index.global.js.map create mode 100644 node_modules/hashery/dist/browser/index.js create mode 100644 node_modules/hashery/dist/browser/index.js.map create mode 100644 node_modules/hashery/dist/node/index.cjs create mode 100644 node_modules/hashery/dist/node/index.d.cts create mode 100644 node_modules/hashery/dist/node/index.d.ts create mode 100644 node_modules/hashery/dist/node/index.js create mode 100644 node_modules/hashery/package.json create mode 100644 node_modules/hookified/LICENSE create mode 100644 node_modules/hookified/README.md create mode 100644 node_modules/hookified/dist/browser/index.global.js create mode 100644 node_modules/hookified/dist/browser/index.global.js.map create mode 100644 node_modules/hookified/dist/browser/index.js create mode 100644 node_modules/hookified/dist/browser/index.js.map create mode 100644 node_modules/hookified/dist/node/index.cjs create mode 100644 node_modules/hookified/dist/node/index.d.cts create mode 100644 node_modules/hookified/dist/node/index.d.ts create mode 100644 node_modules/hookified/dist/node/index.js create mode 100644 node_modules/hookified/package.json create mode 100644 node_modules/html-tags/html-tags-void.d.ts create mode 100644 node_modules/html-tags/html-tags-void.json create mode 100644 node_modules/html-tags/html-tags.d.ts create mode 100644 node_modules/html-tags/html-tags.json create mode 100644 node_modules/html-tags/index.d.ts create mode 100644 node_modules/html-tags/index.js create mode 100644 node_modules/html-tags/license create mode 100644 node_modules/html-tags/package.json create mode 100644 node_modules/html-tags/readme.md create mode 100644 node_modules/ignore/LICENSE-MIT create mode 100644 node_modules/ignore/README.md create mode 100644 node_modules/ignore/index.d.ts create mode 100644 node_modules/ignore/index.js create mode 100644 node_modules/ignore/legacy.js create mode 100644 node_modules/ignore/package.json create mode 100644 node_modules/import-fresh/index.d.ts create mode 100644 node_modules/import-fresh/index.js create mode 100644 node_modules/import-fresh/license create mode 100644 node_modules/import-fresh/package.json create mode 100644 node_modules/import-fresh/readme.md create mode 100644 node_modules/import-meta-resolve/index.d.ts create mode 100644 node_modules/import-meta-resolve/index.d.ts.map create mode 100644 node_modules/import-meta-resolve/index.js create mode 100644 node_modules/import-meta-resolve/lib/errors.d.ts create mode 100644 node_modules/import-meta-resolve/lib/errors.d.ts.map create mode 100644 node_modules/import-meta-resolve/lib/errors.js create mode 100644 node_modules/import-meta-resolve/lib/get-format.d.ts create mode 100644 node_modules/import-meta-resolve/lib/get-format.d.ts.map create mode 100644 node_modules/import-meta-resolve/lib/get-format.js create mode 100644 node_modules/import-meta-resolve/lib/package-json-reader.d.ts create mode 100644 node_modules/import-meta-resolve/lib/package-json-reader.d.ts.map create mode 100644 node_modules/import-meta-resolve/lib/package-json-reader.js create mode 100644 node_modules/import-meta-resolve/lib/resolve.d.ts create mode 100644 node_modules/import-meta-resolve/lib/resolve.d.ts.map create mode 100644 node_modules/import-meta-resolve/lib/resolve.js create mode 100644 node_modules/import-meta-resolve/lib/utils.d.ts create mode 100644 node_modules/import-meta-resolve/lib/utils.d.ts.map create mode 100644 node_modules/import-meta-resolve/lib/utils.js create mode 100644 node_modules/import-meta-resolve/license create mode 100644 node_modules/import-meta-resolve/package.json create mode 100644 node_modules/import-meta-resolve/readme.md create mode 100644 node_modules/imurmurhash/README.md create mode 100644 node_modules/imurmurhash/imurmurhash.js create mode 100644 node_modules/imurmurhash/imurmurhash.min.js create mode 100644 node_modules/imurmurhash/package.json create mode 100644 node_modules/ini/LICENSE create mode 100644 node_modules/ini/README.md create mode 100644 node_modules/ini/ini.js create mode 100644 node_modules/ini/package.json create mode 100644 node_modules/is-arrayish/.editorconfig create mode 100644 node_modules/is-arrayish/.istanbul.yml create mode 100644 node_modules/is-arrayish/.npmignore create mode 100644 node_modules/is-arrayish/.travis.yml create mode 100644 node_modules/is-arrayish/LICENSE create mode 100644 node_modules/is-arrayish/README.md create mode 100644 node_modules/is-arrayish/index.js create mode 100644 node_modules/is-arrayish/package.json create mode 100644 node_modules/is-extglob/LICENSE create mode 100644 node_modules/is-extglob/README.md create mode 100644 node_modules/is-extglob/index.js create mode 100644 node_modules/is-extglob/package.json create mode 100644 node_modules/is-fullwidth-code-point/index.d.ts create mode 100644 node_modules/is-fullwidth-code-point/index.js create mode 100644 node_modules/is-fullwidth-code-point/license create mode 100644 node_modules/is-fullwidth-code-point/package.json create mode 100644 node_modules/is-fullwidth-code-point/readme.md create mode 100644 node_modules/is-glob/LICENSE create mode 100644 node_modules/is-glob/README.md create mode 100644 node_modules/is-glob/index.js create mode 100644 node_modules/is-glob/package.json create mode 100644 node_modules/is-number/LICENSE create mode 100644 node_modules/is-number/README.md create mode 100644 node_modules/is-number/index.js create mode 100644 node_modules/is-number/package.json create mode 100644 node_modules/is-path-inside/index.d.ts create mode 100644 node_modules/is-path-inside/index.js create mode 100644 node_modules/is-path-inside/license create mode 100644 node_modules/is-path-inside/package.json create mode 100644 node_modules/is-path-inside/readme.md create mode 100644 node_modules/is-plain-object/LICENSE create mode 100644 node_modules/is-plain-object/README.md create mode 100644 node_modules/is-plain-object/dist/is-plain-object.js create mode 100644 node_modules/is-plain-object/dist/is-plain-object.mjs create mode 100644 node_modules/is-plain-object/is-plain-object.d.ts create mode 100644 node_modules/is-plain-object/package.json create mode 100644 node_modules/isexe/.npmignore create mode 100644 node_modules/isexe/LICENSE create mode 100644 node_modules/isexe/README.md create mode 100644 node_modules/isexe/index.js create mode 100644 node_modules/isexe/mode.js create mode 100644 node_modules/isexe/package.json create mode 100644 node_modules/isexe/test/basic.js create mode 100644 node_modules/isexe/windows.js create mode 100644 node_modules/js-tokens/CHANGELOG.md create mode 100644 node_modules/js-tokens/LICENSE create mode 100644 node_modules/js-tokens/README.md create mode 100644 node_modules/js-tokens/index.js create mode 100644 node_modules/js-tokens/package.json create mode 100644 node_modules/js-yaml/LICENSE create mode 100644 node_modules/js-yaml/README.md create mode 100755 node_modules/js-yaml/bin/js-yaml.js create mode 100644 node_modules/js-yaml/dist/js-yaml.js create mode 100644 node_modules/js-yaml/dist/js-yaml.min.js create mode 100644 node_modules/js-yaml/dist/js-yaml.mjs create mode 100644 node_modules/js-yaml/index.js create mode 100644 node_modules/js-yaml/lib/common.js create mode 100644 node_modules/js-yaml/lib/dumper.js create mode 100644 node_modules/js-yaml/lib/exception.js create mode 100644 node_modules/js-yaml/lib/loader.js create mode 100644 node_modules/js-yaml/lib/schema.js create mode 100644 node_modules/js-yaml/lib/schema/core.js create mode 100644 node_modules/js-yaml/lib/schema/default.js create mode 100644 node_modules/js-yaml/lib/schema/failsafe.js create mode 100644 node_modules/js-yaml/lib/schema/json.js create mode 100644 node_modules/js-yaml/lib/snippet.js create mode 100644 node_modules/js-yaml/lib/type.js create mode 100644 node_modules/js-yaml/lib/type/binary.js create mode 100644 node_modules/js-yaml/lib/type/bool.js create mode 100644 node_modules/js-yaml/lib/type/float.js create mode 100644 node_modules/js-yaml/lib/type/int.js create mode 100644 node_modules/js-yaml/lib/type/map.js create mode 100644 node_modules/js-yaml/lib/type/merge.js create mode 100644 node_modules/js-yaml/lib/type/null.js create mode 100644 node_modules/js-yaml/lib/type/omap.js create mode 100644 node_modules/js-yaml/lib/type/pairs.js create mode 100644 node_modules/js-yaml/lib/type/seq.js create mode 100644 node_modules/js-yaml/lib/type/set.js create mode 100644 node_modules/js-yaml/lib/type/str.js create mode 100644 node_modules/js-yaml/lib/type/timestamp.js create mode 100644 node_modules/js-yaml/package.json create mode 100644 node_modules/json-parse-even-better-errors/CHANGELOG.md create mode 100644 node_modules/json-parse-even-better-errors/LICENSE.md create mode 100644 node_modules/json-parse-even-better-errors/README.md create mode 100644 node_modules/json-parse-even-better-errors/index.js create mode 100644 node_modules/json-parse-even-better-errors/package.json create mode 100644 node_modules/json-schema-traverse/.eslintrc.yml create mode 100644 node_modules/json-schema-traverse/.github/FUNDING.yml create mode 100644 node_modules/json-schema-traverse/.github/workflows/build.yml create mode 100644 node_modules/json-schema-traverse/.github/workflows/publish.yml create mode 100644 node_modules/json-schema-traverse/LICENSE create mode 100644 node_modules/json-schema-traverse/README.md create mode 100644 node_modules/json-schema-traverse/index.d.ts create mode 100644 node_modules/json-schema-traverse/index.js create mode 100644 node_modules/json-schema-traverse/package.json create mode 100644 node_modules/json-schema-traverse/spec/.eslintrc.yml create mode 100644 node_modules/json-schema-traverse/spec/fixtures/schema.js create mode 100644 node_modules/json-schema-traverse/spec/index.spec.js create mode 100644 node_modules/keyv/LICENSE create mode 100644 node_modules/keyv/README.md create mode 100644 node_modules/keyv/dist/index.cjs create mode 100644 node_modules/keyv/dist/index.d.cts create mode 100644 node_modules/keyv/dist/index.d.ts create mode 100644 node_modules/keyv/dist/index.js create mode 100644 node_modules/keyv/package.json create mode 100644 node_modules/kind-of/CHANGELOG.md create mode 100644 node_modules/kind-of/LICENSE create mode 100644 node_modules/kind-of/README.md create mode 100644 node_modules/kind-of/index.js create mode 100644 node_modules/kind-of/package.json create mode 100644 node_modules/lines-and-columns/LICENSE create mode 100644 node_modules/lines-and-columns/README.md create mode 100644 node_modules/lines-and-columns/build/index.d.ts create mode 100644 node_modules/lines-and-columns/build/index.js create mode 100644 node_modules/lines-and-columns/package.json create mode 100644 node_modules/lodash.truncate/LICENSE create mode 100644 node_modules/lodash.truncate/README.md create mode 100644 node_modules/lodash.truncate/index.js create mode 100644 node_modules/lodash.truncate/package.json create mode 100644 node_modules/mathml-tag-names/index.d.ts create mode 100644 node_modules/mathml-tag-names/index.d.ts.map create mode 100644 node_modules/mathml-tag-names/index.js create mode 100644 node_modules/mathml-tag-names/license create mode 100644 node_modules/mathml-tag-names/package.json create mode 100644 node_modules/mathml-tag-names/readme.md create mode 100644 node_modules/mdn-data/LICENSE create mode 100644 node_modules/mdn-data/README.md create mode 100644 node_modules/mdn-data/api/index.js create mode 100644 node_modules/mdn-data/api/inheritance.json create mode 100644 node_modules/mdn-data/api/inheritance.schema.json create mode 100644 node_modules/mdn-data/css/at-rules.json create mode 100644 node_modules/mdn-data/css/at-rules.schema.json create mode 100644 node_modules/mdn-data/css/definitions.json create mode 100644 node_modules/mdn-data/css/functions.json create mode 100644 node_modules/mdn-data/css/functions.schema.json create mode 100644 node_modules/mdn-data/css/index.js create mode 100644 node_modules/mdn-data/css/properties.json create mode 100644 node_modules/mdn-data/css/properties.schema.json create mode 100644 node_modules/mdn-data/css/selectors.json create mode 100644 node_modules/mdn-data/css/selectors.schema.json create mode 100644 node_modules/mdn-data/css/syntaxes.json create mode 100644 node_modules/mdn-data/css/syntaxes.schema.json create mode 100644 node_modules/mdn-data/css/types.json create mode 100644 node_modules/mdn-data/css/types.schema.json create mode 100644 node_modules/mdn-data/css/units.json create mode 100644 node_modules/mdn-data/css/units.schema.json create mode 100644 node_modules/mdn-data/index.js create mode 100644 node_modules/mdn-data/l10n/css.json create mode 100644 node_modules/mdn-data/l10n/index.js create mode 100644 node_modules/mdn-data/package.json create mode 100644 node_modules/meow/build/dependencies.js create mode 100644 node_modules/meow/build/index.d.ts create mode 100644 node_modules/meow/build/index.js create mode 100644 node_modules/meow/build/licenses.md create mode 100644 node_modules/meow/build/options.js create mode 100644 node_modules/meow/build/parser.js create mode 100644 node_modules/meow/build/utils.js create mode 100644 node_modules/meow/build/validate.js create mode 100644 node_modules/meow/license create mode 100644 node_modules/meow/package.json create mode 100644 node_modules/meow/readme.md create mode 100644 node_modules/merge2/LICENSE create mode 100644 node_modules/merge2/README.md create mode 100644 node_modules/merge2/index.js create mode 100644 node_modules/merge2/package.json create mode 100755 node_modules/micromatch/LICENSE create mode 100644 node_modules/micromatch/README.md create mode 100644 node_modules/micromatch/index.js create mode 100644 node_modules/micromatch/package.json create mode 100644 node_modules/ms/index.js create mode 100644 node_modules/ms/license.md create mode 100644 node_modules/ms/package.json create mode 100644 node_modules/ms/readme.md create mode 100644 node_modules/nanoid/LICENSE create mode 100644 node_modules/nanoid/README.md create mode 100644 node_modules/nanoid/async/index.browser.cjs create mode 100644 node_modules/nanoid/async/index.browser.js create mode 100644 node_modules/nanoid/async/index.cjs create mode 100644 node_modules/nanoid/async/index.d.ts create mode 100644 node_modules/nanoid/async/index.js create mode 100644 node_modules/nanoid/async/index.native.js create mode 100644 node_modules/nanoid/async/package.json create mode 100755 node_modules/nanoid/bin/nanoid.cjs create mode 100644 node_modules/nanoid/index.browser.cjs create mode 100644 node_modules/nanoid/index.browser.js create mode 100644 node_modules/nanoid/index.cjs create mode 100644 node_modules/nanoid/index.d.cts create mode 100644 node_modules/nanoid/index.d.ts create mode 100644 node_modules/nanoid/index.js create mode 100644 node_modules/nanoid/nanoid.js create mode 100644 node_modules/nanoid/non-secure/index.cjs create mode 100644 node_modules/nanoid/non-secure/index.d.ts create mode 100644 node_modules/nanoid/non-secure/index.js create mode 100644 node_modules/nanoid/non-secure/package.json create mode 100644 node_modules/nanoid/package.json create mode 100644 node_modules/nanoid/url-alphabet/index.cjs create mode 100644 node_modules/nanoid/url-alphabet/index.js create mode 100644 node_modules/nanoid/url-alphabet/package.json create mode 100644 node_modules/normalize-path/LICENSE create mode 100644 node_modules/normalize-path/README.md create mode 100644 node_modules/normalize-path/index.js create mode 100644 node_modules/normalize-path/package.json create mode 100644 node_modules/parent-module/index.js create mode 100644 node_modules/parent-module/license create mode 100644 node_modules/parent-module/package.json create mode 100644 node_modules/parent-module/readme.md create mode 100644 node_modules/parse-json/index.js create mode 100644 node_modules/parse-json/license create mode 100644 node_modules/parse-json/package.json create mode 100644 node_modules/parse-json/readme.md create mode 100644 node_modules/picocolors/LICENSE create mode 100644 node_modules/picocolors/README.md create mode 100644 node_modules/picocolors/package.json create mode 100644 node_modules/picocolors/picocolors.browser.js create mode 100644 node_modules/picocolors/picocolors.d.ts create mode 100644 node_modules/picocolors/picocolors.js create mode 100644 node_modules/picocolors/types.d.ts create mode 100644 node_modules/picomatch/CHANGELOG.md create mode 100644 node_modules/picomatch/LICENSE create mode 100644 node_modules/picomatch/README.md create mode 100644 node_modules/picomatch/index.js create mode 100644 node_modules/picomatch/lib/constants.js create mode 100644 node_modules/picomatch/lib/parse.js create mode 100644 node_modules/picomatch/lib/picomatch.js create mode 100644 node_modules/picomatch/lib/scan.js create mode 100644 node_modules/picomatch/lib/utils.js create mode 100644 node_modules/picomatch/package.json create mode 100644 node_modules/postcss-safe-parser/LICENSE create mode 100644 node_modules/postcss-safe-parser/README.md create mode 100644 node_modules/postcss-safe-parser/lib/safe-parse.js create mode 100644 node_modules/postcss-safe-parser/lib/safe-parser.js create mode 100644 node_modules/postcss-safe-parser/package.json create mode 100644 node_modules/postcss-selector-parser/API.md create mode 100644 node_modules/postcss-selector-parser/CHANGELOG.md create mode 100644 node_modules/postcss-selector-parser/LICENSE-MIT create mode 100644 node_modules/postcss-selector-parser/README.md create mode 100644 node_modules/postcss-selector-parser/dist/index.js create mode 100644 node_modules/postcss-selector-parser/dist/parser.js create mode 100644 node_modules/postcss-selector-parser/dist/processor.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/attribute.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/className.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/combinator.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/comment.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/constructors.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/container.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/guards.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/id.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/index.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/namespace.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/nesting.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/node.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/pseudo.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/root.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/selector.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/string.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/tag.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/types.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/universal.js create mode 100644 node_modules/postcss-selector-parser/dist/sortAscending.js create mode 100644 node_modules/postcss-selector-parser/dist/tokenTypes.js create mode 100644 node_modules/postcss-selector-parser/dist/tokenize.js create mode 100644 node_modules/postcss-selector-parser/dist/util/ensureObject.js create mode 100644 node_modules/postcss-selector-parser/dist/util/getProp.js create mode 100644 node_modules/postcss-selector-parser/dist/util/index.js create mode 100644 node_modules/postcss-selector-parser/dist/util/stripComments.js create mode 100644 node_modules/postcss-selector-parser/dist/util/unesc.js create mode 100644 node_modules/postcss-selector-parser/package.json create mode 100644 node_modules/postcss-selector-parser/postcss-selector-parser.d.ts create mode 100644 node_modules/postcss-value-parser/LICENSE create mode 100644 node_modules/postcss-value-parser/README.md create mode 100644 node_modules/postcss-value-parser/lib/index.d.ts create mode 100644 node_modules/postcss-value-parser/lib/index.js create mode 100644 node_modules/postcss-value-parser/lib/parse.js create mode 100644 node_modules/postcss-value-parser/lib/stringify.js create mode 100644 node_modules/postcss-value-parser/lib/unit.js create mode 100644 node_modules/postcss-value-parser/lib/walk.js create mode 100644 node_modules/postcss-value-parser/package.json create mode 100644 node_modules/postcss/LICENSE create mode 100644 node_modules/postcss/README.md create mode 100644 node_modules/postcss/lib/at-rule.d.ts create mode 100644 node_modules/postcss/lib/at-rule.js create mode 100644 node_modules/postcss/lib/comment.d.ts create mode 100644 node_modules/postcss/lib/comment.js create mode 100644 node_modules/postcss/lib/container.d.ts create mode 100644 node_modules/postcss/lib/container.js create mode 100644 node_modules/postcss/lib/css-syntax-error.d.ts create mode 100644 node_modules/postcss/lib/css-syntax-error.js create mode 100644 node_modules/postcss/lib/declaration.d.ts create mode 100644 node_modules/postcss/lib/declaration.js create mode 100644 node_modules/postcss/lib/document.d.ts create mode 100644 node_modules/postcss/lib/document.js create mode 100644 node_modules/postcss/lib/fromJSON.d.ts create mode 100644 node_modules/postcss/lib/fromJSON.js create mode 100644 node_modules/postcss/lib/input.d.ts create mode 100644 node_modules/postcss/lib/input.js create mode 100644 node_modules/postcss/lib/lazy-result.d.ts create mode 100644 node_modules/postcss/lib/lazy-result.js create mode 100644 node_modules/postcss/lib/list.d.ts create mode 100644 node_modules/postcss/lib/list.js create mode 100644 node_modules/postcss/lib/map-generator.js create mode 100644 node_modules/postcss/lib/no-work-result.d.ts create mode 100644 node_modules/postcss/lib/no-work-result.js create mode 100644 node_modules/postcss/lib/node.d.ts create mode 100644 node_modules/postcss/lib/node.js create mode 100644 node_modules/postcss/lib/parse.d.ts create mode 100644 node_modules/postcss/lib/parse.js create mode 100644 node_modules/postcss/lib/parser.js create mode 100644 node_modules/postcss/lib/postcss.d.mts create mode 100644 node_modules/postcss/lib/postcss.d.ts create mode 100644 node_modules/postcss/lib/postcss.js create mode 100644 node_modules/postcss/lib/postcss.mjs create mode 100644 node_modules/postcss/lib/previous-map.d.ts create mode 100644 node_modules/postcss/lib/previous-map.js create mode 100644 node_modules/postcss/lib/processor.d.ts create mode 100644 node_modules/postcss/lib/processor.js create mode 100644 node_modules/postcss/lib/result.d.ts create mode 100644 node_modules/postcss/lib/result.js create mode 100644 node_modules/postcss/lib/root.d.ts create mode 100644 node_modules/postcss/lib/root.js create mode 100644 node_modules/postcss/lib/rule.d.ts create mode 100644 node_modules/postcss/lib/rule.js create mode 100644 node_modules/postcss/lib/stringifier.d.ts create mode 100644 node_modules/postcss/lib/stringifier.js create mode 100644 node_modules/postcss/lib/stringify.d.ts create mode 100644 node_modules/postcss/lib/stringify.js create mode 100644 node_modules/postcss/lib/symbols.js create mode 100644 node_modules/postcss/lib/terminal-highlight.js create mode 100644 node_modules/postcss/lib/tokenize.js create mode 100644 node_modules/postcss/lib/warn-once.js create mode 100644 node_modules/postcss/lib/warning.d.ts create mode 100644 node_modules/postcss/lib/warning.js create mode 100644 node_modules/postcss/package.json create mode 100644 node_modules/qified/LICENSE create mode 100644 node_modules/qified/README.md create mode 100644 node_modules/qified/dist/index.cjs create mode 100644 node_modules/qified/dist/index.d.cts create mode 100644 node_modules/qified/dist/index.d.ts create mode 100644 node_modules/qified/dist/index.js create mode 100644 node_modules/qified/package.json create mode 100755 node_modules/queue-microtask/LICENSE create mode 100644 node_modules/queue-microtask/README.md create mode 100644 node_modules/queue-microtask/index.d.ts create mode 100644 node_modules/queue-microtask/index.js create mode 100644 node_modules/queue-microtask/package.json create mode 100644 node_modules/require-from-string/index.js create mode 100644 node_modules/require-from-string/license create mode 100644 node_modules/require-from-string/package.json create mode 100644 node_modules/require-from-string/readme.md create mode 100644 node_modules/resolve-from/index.js create mode 100644 node_modules/resolve-from/license create mode 100644 node_modules/resolve-from/package.json create mode 100644 node_modules/resolve-from/readme.md create mode 100644 node_modules/reusify/.github/dependabot.yml create mode 100644 node_modules/reusify/.github/workflows/ci.yml create mode 100644 node_modules/reusify/LICENSE create mode 100644 node_modules/reusify/README.md create mode 100644 node_modules/reusify/SECURITY.md create mode 100644 node_modules/reusify/benchmarks/createNoCodeFunction.js create mode 100644 node_modules/reusify/benchmarks/fib.js create mode 100644 node_modules/reusify/benchmarks/reuseNoCodeFunction.js create mode 100644 node_modules/reusify/eslint.config.js create mode 100644 node_modules/reusify/package.json create mode 100644 node_modules/reusify/reusify.d.ts create mode 100644 node_modules/reusify/reusify.js create mode 100644 node_modules/reusify/test.js create mode 100644 node_modules/reusify/tsconfig.json create mode 100644 node_modules/run-parallel/LICENSE create mode 100644 node_modules/run-parallel/README.md create mode 100644 node_modules/run-parallel/index.js create mode 100644 node_modules/run-parallel/package.json create mode 100644 node_modules/signal-exit/LICENSE.txt create mode 100644 node_modules/signal-exit/README.md create mode 100644 node_modules/signal-exit/dist/cjs/browser.d.ts create mode 100644 node_modules/signal-exit/dist/cjs/browser.d.ts.map create mode 100644 node_modules/signal-exit/dist/cjs/browser.js create mode 100644 node_modules/signal-exit/dist/cjs/browser.js.map create mode 100644 node_modules/signal-exit/dist/cjs/index.d.ts create mode 100644 node_modules/signal-exit/dist/cjs/index.d.ts.map create mode 100644 node_modules/signal-exit/dist/cjs/index.js create mode 100644 node_modules/signal-exit/dist/cjs/index.js.map create mode 100644 node_modules/signal-exit/dist/cjs/package.json create mode 100644 node_modules/signal-exit/dist/cjs/signals.d.ts create mode 100644 node_modules/signal-exit/dist/cjs/signals.d.ts.map create mode 100644 node_modules/signal-exit/dist/cjs/signals.js create mode 100644 node_modules/signal-exit/dist/cjs/signals.js.map create mode 100644 node_modules/signal-exit/dist/mjs/browser.d.ts create mode 100644 node_modules/signal-exit/dist/mjs/browser.d.ts.map create mode 100644 node_modules/signal-exit/dist/mjs/browser.js create mode 100644 node_modules/signal-exit/dist/mjs/browser.js.map create mode 100644 node_modules/signal-exit/dist/mjs/index.d.ts create mode 100644 node_modules/signal-exit/dist/mjs/index.d.ts.map create mode 100644 node_modules/signal-exit/dist/mjs/index.js create mode 100644 node_modules/signal-exit/dist/mjs/index.js.map create mode 100644 node_modules/signal-exit/dist/mjs/package.json create mode 100644 node_modules/signal-exit/dist/mjs/signals.d.ts create mode 100644 node_modules/signal-exit/dist/mjs/signals.d.ts.map create mode 100644 node_modules/signal-exit/dist/mjs/signals.js create mode 100644 node_modules/signal-exit/dist/mjs/signals.js.map create mode 100644 node_modules/signal-exit/package.json create mode 100644 node_modules/slash/index.d.ts create mode 100644 node_modules/slash/index.js create mode 100644 node_modules/slash/license create mode 100644 node_modules/slash/package.json create mode 100644 node_modules/slash/readme.md create mode 100755 node_modules/slice-ansi/index.js create mode 100644 node_modules/slice-ansi/license create mode 100644 node_modules/slice-ansi/package.json create mode 100644 node_modules/slice-ansi/readme.md create mode 100644 node_modules/source-map-js/LICENSE create mode 100644 node_modules/source-map-js/README.md create mode 100644 node_modules/source-map-js/lib/array-set.js create mode 100644 node_modules/source-map-js/lib/base64-vlq.js create mode 100644 node_modules/source-map-js/lib/base64.js create mode 100644 node_modules/source-map-js/lib/binary-search.js create mode 100644 node_modules/source-map-js/lib/mapping-list.js create mode 100644 node_modules/source-map-js/lib/quick-sort.js create mode 100644 node_modules/source-map-js/lib/source-map-consumer.d.ts create mode 100644 node_modules/source-map-js/lib/source-map-consumer.js create mode 100644 node_modules/source-map-js/lib/source-map-generator.d.ts create mode 100644 node_modules/source-map-js/lib/source-map-generator.js create mode 100644 node_modules/source-map-js/lib/source-node.d.ts create mode 100644 node_modules/source-map-js/lib/source-node.js create mode 100644 node_modules/source-map-js/lib/util.js create mode 100644 node_modules/source-map-js/package.json create mode 100644 node_modules/source-map-js/source-map.d.ts create mode 100644 node_modules/source-map-js/source-map.js create mode 100644 node_modules/string-width/index.d.ts create mode 100644 node_modules/string-width/index.js create mode 100644 node_modules/string-width/license create mode 100644 node_modules/string-width/package.json create mode 100644 node_modules/string-width/readme.md create mode 100644 node_modules/strip-ansi/index.d.ts create mode 100644 node_modules/strip-ansi/index.js create mode 100644 node_modules/strip-ansi/license create mode 100644 node_modules/strip-ansi/package.json create mode 100644 node_modules/strip-ansi/readme.md create mode 100644 node_modules/stylelint-config-recommended/LICENSE create mode 100644 node_modules/stylelint-config-recommended/README.md create mode 100644 node_modules/stylelint-config-recommended/index.js create mode 100644 node_modules/stylelint-config-recommended/package.json create mode 100644 node_modules/stylelint-config-standard/LICENSE create mode 100644 node_modules/stylelint-config-standard/README.md create mode 100644 node_modules/stylelint-config-standard/index.js create mode 100644 node_modules/stylelint-config-standard/package.json create mode 100644 node_modules/stylelint/LICENSE create mode 100644 node_modules/stylelint/README.md create mode 100755 node_modules/stylelint/bin/stylelint.mjs create mode 100644 node_modules/stylelint/lib/assignDisabledRanges.mjs create mode 100644 node_modules/stylelint/lib/augmentConfig.mjs create mode 100644 node_modules/stylelint/lib/cli.mjs create mode 100644 node_modules/stylelint/lib/constants.mjs create mode 100644 node_modules/stylelint/lib/createPartialStylelintResult.mjs create mode 100644 node_modules/stylelint/lib/createPlugin.mjs create mode 100644 node_modules/stylelint/lib/createStylelint.mjs create mode 100644 node_modules/stylelint/lib/descriptionlessDisables.mjs create mode 100644 node_modules/stylelint/lib/formatters/calcSeverityCounts.mjs create mode 100644 node_modules/stylelint/lib/formatters/compactFormatter.mjs create mode 100644 node_modules/stylelint/lib/formatters/index.mjs create mode 100644 node_modules/stylelint/lib/formatters/jsonFormatter.mjs create mode 100644 node_modules/stylelint/lib/formatters/preprocessWarnings.mjs create mode 100644 node_modules/stylelint/lib/formatters/stringFormatter.mjs create mode 100644 node_modules/stylelint/lib/formatters/tapFormatter.mjs create mode 100644 node_modules/stylelint/lib/formatters/terminalLink.mjs create mode 100644 node_modules/stylelint/lib/formatters/unixFormatter.mjs create mode 100644 node_modules/stylelint/lib/formatters/verboseFormatter.mjs create mode 100644 node_modules/stylelint/lib/getConfigForFile.mjs create mode 100644 node_modules/stylelint/lib/getPostcssResult.mjs create mode 100644 node_modules/stylelint/lib/index.mjs create mode 100644 node_modules/stylelint/lib/invalidScopeDisables.mjs create mode 100644 node_modules/stylelint/lib/isPathIgnored.mjs create mode 100644 node_modules/stylelint/lib/lintPostcssResult.mjs create mode 100644 node_modules/stylelint/lib/lintSource.mjs create mode 100644 node_modules/stylelint/lib/needlessDisables.mjs create mode 100644 node_modules/stylelint/lib/normalizeAllRuleSettings.mjs create mode 100644 node_modules/stylelint/lib/normalizeRuleSettings.mjs create mode 100644 node_modules/stylelint/lib/postcssPlugin.mjs create mode 100644 node_modules/stylelint/lib/prepareReturnValue.mjs create mode 100644 node_modules/stylelint/lib/printConfig.mjs create mode 100644 node_modules/stylelint/lib/reference/atKeywords.mjs create mode 100644 node_modules/stylelint/lib/reference/functions.mjs create mode 100644 node_modules/stylelint/lib/reference/keywords.mjs create mode 100644 node_modules/stylelint/lib/reference/mediaFeatures.mjs create mode 100644 node_modules/stylelint/lib/reference/mediaTypes.mjs create mode 100644 node_modules/stylelint/lib/reference/prefixes.mjs create mode 100644 node_modules/stylelint/lib/reference/properties.mjs create mode 100644 node_modules/stylelint/lib/reference/selectors.mjs create mode 100644 node_modules/stylelint/lib/reference/units.mjs create mode 100644 node_modules/stylelint/lib/reportDisables.mjs create mode 100644 node_modules/stylelint/lib/reportUnknownRuleNames.mjs create mode 100644 node_modules/stylelint/lib/resolveConfig.mjs create mode 100644 node_modules/stylelint/lib/rules/alpha-value-notation/index.mjs create mode 100644 node_modules/stylelint/lib/rules/annotation-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/at-rule-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/at-rule-descriptor-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/at-rule-descriptor-value-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/at-rule-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/at-rule-empty-line-before/index.mjs create mode 100644 node_modules/stylelint/lib/rules/at-rule-no-deprecated/index.mjs create mode 100644 node_modules/stylelint/lib/rules/at-rule-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/at-rule-no-vendor-prefix/index.mjs create mode 100644 node_modules/stylelint/lib/rules/at-rule-prelude-no-invalid/index.mjs create mode 100644 node_modules/stylelint/lib/rules/at-rule-property-required-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/block-no-empty/index.mjs create mode 100644 node_modules/stylelint/lib/rules/block-no-redundant-nested-style-rules/index.mjs create mode 100644 node_modules/stylelint/lib/rules/color-function-alias-notation/index.mjs create mode 100644 node_modules/stylelint/lib/rules/color-function-notation/index.mjs create mode 100644 node_modules/stylelint/lib/rules/color-hex-alpha/index.mjs create mode 100644 node_modules/stylelint/lib/rules/color-hex-length/index.mjs create mode 100644 node_modules/stylelint/lib/rules/color-named/colordUtils.mjs create mode 100644 node_modules/stylelint/lib/rules/color-named/index.mjs create mode 100644 node_modules/stylelint/lib/rules/color-no-hex/index.mjs create mode 100644 node_modules/stylelint/lib/rules/color-no-invalid-hex/index.mjs create mode 100644 node_modules/stylelint/lib/rules/comment-empty-line-before/index.mjs create mode 100644 node_modules/stylelint/lib/rules/comment-no-empty/index.mjs create mode 100644 node_modules/stylelint/lib/rules/comment-pattern/index.mjs create mode 100644 node_modules/stylelint/lib/rules/comment-whitespace-inside/index.mjs create mode 100644 node_modules/stylelint/lib/rules/comment-word-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/container-name-pattern/index.mjs create mode 100644 node_modules/stylelint/lib/rules/custom-media-pattern/index.mjs create mode 100644 node_modules/stylelint/lib/rules/custom-property-empty-line-before/index.mjs create mode 100644 node_modules/stylelint/lib/rules/custom-property-no-missing-var-function/index.mjs create mode 100644 node_modules/stylelint/lib/rules/custom-property-pattern/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-block-no-duplicate-custom-properties/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-block-no-duplicate-properties/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-block-no-redundant-longhand-properties/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-block-no-shorthand-property-overrides/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-block-single-line-max-declarations/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-empty-line-before/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-no-important/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-property-max-values/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-property-unit-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-property-unit-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-property-value-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-property-value-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-property-value-keyword-no-deprecated/index.mjs create mode 100644 node_modules/stylelint/lib/rules/declaration-property-value-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/display-notation/index.mjs create mode 100644 node_modules/stylelint/lib/rules/font-family-name-quotes/index.mjs create mode 100644 node_modules/stylelint/lib/rules/font-family-no-duplicate-names/index.mjs create mode 100644 node_modules/stylelint/lib/rules/font-family-no-missing-generic-family-keyword/index.mjs create mode 100644 node_modules/stylelint/lib/rules/font-weight-notation/index.mjs create mode 100644 node_modules/stylelint/lib/rules/function-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/function-calc-no-unspaced-operator/index.mjs create mode 100644 node_modules/stylelint/lib/rules/function-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/function-linear-gradient-no-nonstandard-direction/index.mjs create mode 100644 node_modules/stylelint/lib/rules/function-name-case/index.mjs create mode 100644 node_modules/stylelint/lib/rules/function-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/function-url-no-scheme-relative/index.mjs create mode 100644 node_modules/stylelint/lib/rules/function-url-quotes/index.mjs create mode 100644 node_modules/stylelint/lib/rules/function-url-scheme-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/function-url-scheme-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/hue-degree-notation/index.mjs create mode 100644 node_modules/stylelint/lib/rules/import-notation/index.mjs create mode 100644 node_modules/stylelint/lib/rules/index.mjs create mode 100644 node_modules/stylelint/lib/rules/keyframe-block-no-duplicate-selectors/index.mjs create mode 100644 node_modules/stylelint/lib/rules/keyframe-declaration-no-important/index.mjs create mode 100644 node_modules/stylelint/lib/rules/keyframe-selector-notation/index.mjs create mode 100644 node_modules/stylelint/lib/rules/keyframes-name-pattern/index.mjs create mode 100644 node_modules/stylelint/lib/rules/layer-name-pattern/index.mjs create mode 100644 node_modules/stylelint/lib/rules/length-zero-no-unit/index.mjs create mode 100644 node_modules/stylelint/lib/rules/lightness-notation/index.mjs create mode 100644 node_modules/stylelint/lib/rules/max-nesting-depth/index.mjs create mode 100644 node_modules/stylelint/lib/rules/media-feature-name-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/media-feature-name-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/media-feature-name-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/media-feature-name-no-vendor-prefix/index.mjs create mode 100644 node_modules/stylelint/lib/rules/media-feature-name-unit-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/media-feature-name-value-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/media-feature-name-value-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/media-feature-range-notation/index.mjs create mode 100644 node_modules/stylelint/lib/rules/media-query-no-invalid/index.mjs create mode 100644 node_modules/stylelint/lib/rules/media-type-no-deprecated/index.mjs create mode 100644 node_modules/stylelint/lib/rules/named-grid-areas-no-invalid/index.mjs create mode 100644 node_modules/stylelint/lib/rules/named-grid-areas-no-invalid/utils/findNotContiguousOrRectangular.mjs create mode 100644 node_modules/stylelint/lib/rules/nesting-selector-no-missing-scoping-root/index.mjs create mode 100644 node_modules/stylelint/lib/rules/no-descending-specificity/index.mjs create mode 100644 node_modules/stylelint/lib/rules/no-duplicate-at-import-rules/index.mjs create mode 100644 node_modules/stylelint/lib/rules/no-duplicate-selectors/index.mjs create mode 100644 node_modules/stylelint/lib/rules/no-empty-source/index.mjs create mode 100644 node_modules/stylelint/lib/rules/no-invalid-double-slash-comments/index.mjs create mode 100644 node_modules/stylelint/lib/rules/no-invalid-position-at-import-rule/index.mjs create mode 100644 node_modules/stylelint/lib/rules/no-invalid-position-declaration/index.mjs create mode 100644 node_modules/stylelint/lib/rules/no-irregular-whitespace/index.mjs create mode 100644 node_modules/stylelint/lib/rules/no-unknown-animations/index.mjs create mode 100644 node_modules/stylelint/lib/rules/no-unknown-custom-media/index.mjs create mode 100644 node_modules/stylelint/lib/rules/no-unknown-custom-properties/index.mjs create mode 100644 node_modules/stylelint/lib/rules/number-max-precision/index.mjs create mode 100644 node_modules/stylelint/lib/rules/property-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/property-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/property-no-deprecated/index.mjs create mode 100644 node_modules/stylelint/lib/rules/property-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/property-no-vendor-prefix/index.mjs create mode 100644 node_modules/stylelint/lib/rules/rule-empty-line-before/index.mjs create mode 100644 node_modules/stylelint/lib/rules/rule-nesting-at-rule-required-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/rule-selector-property-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-anb-no-unmatchable/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-attribute-name-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-attribute-operator-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-attribute-operator-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-attribute-quotes/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-class-pattern/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-combinator-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-combinator-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-id-pattern/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-max-attribute/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-max-class/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-max-combinators/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-max-compound-selectors/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-max-id/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-max-pseudo-class/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-max-specificity/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-max-type/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-max-universal/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-nested-pattern/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-no-qualifying-type/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-no-vendor-prefix/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-not-notation/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-pseudo-class-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-pseudo-class-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-pseudo-class-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-pseudo-element-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-pseudo-element-colon-notation/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-pseudo-element-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-pseudo-element-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-type-case/index.mjs create mode 100644 node_modules/stylelint/lib/rules/selector-type-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/shorthand-property-no-redundant-values/index.mjs create mode 100644 node_modules/stylelint/lib/rules/string-no-newline/index.mjs create mode 100644 node_modules/stylelint/lib/rules/syntax-string-no-invalid/index.mjs create mode 100644 node_modules/stylelint/lib/rules/time-min-milliseconds/index.mjs create mode 100644 node_modules/stylelint/lib/rules/unit-allowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/unit-disallowed-list/index.mjs create mode 100644 node_modules/stylelint/lib/rules/unit-no-unknown/index.mjs create mode 100644 node_modules/stylelint/lib/rules/value-keyword-case/index.mjs create mode 100644 node_modules/stylelint/lib/rules/value-no-vendor-prefix/index.mjs create mode 100644 node_modules/stylelint/lib/standalone.mjs create mode 100644 node_modules/stylelint/lib/timing.mjs create mode 100644 node_modules/stylelint/lib/unscopedDisables.mjs create mode 100644 node_modules/stylelint/lib/utils/FileCache.mjs create mode 100644 node_modules/stylelint/lib/utils/addEmptyLineBefore.mjs create mode 100644 node_modules/stylelint/lib/utils/addSemicolonForEditInfo.mjs create mode 100644 node_modules/stylelint/lib/utils/appendRuleName.mjs create mode 100644 node_modules/stylelint/lib/utils/arrayEqual.mjs create mode 100644 node_modules/stylelint/lib/utils/beforeBlockString.mjs create mode 100644 node_modules/stylelint/lib/utils/blockString.mjs create mode 100644 node_modules/stylelint/lib/utils/blurInterpolation.mjs create mode 100644 node_modules/stylelint/lib/utils/cachedImport.mjs create mode 100644 node_modules/stylelint/lib/utils/checkAgainstRule.mjs create mode 100644 node_modules/stylelint/lib/utils/checkInvalidCLIOptions.mjs create mode 100644 node_modules/stylelint/lib/utils/configurationComment.mjs create mode 100644 node_modules/stylelint/lib/utils/containsString.mjs create mode 100644 node_modules/stylelint/lib/utils/createMapWithSet.mjs create mode 100644 node_modules/stylelint/lib/utils/dynamicImport.mjs create mode 100644 node_modules/stylelint/lib/utils/eachDeclarationBlock.mjs create mode 100644 node_modules/stylelint/lib/utils/eachNodeUpToRoot.mjs create mode 100644 node_modules/stylelint/lib/utils/emitWarning.mjs create mode 100644 node_modules/stylelint/lib/utils/errors.mjs create mode 100644 node_modules/stylelint/lib/utils/filterFilePaths.mjs create mode 100644 node_modules/stylelint/lib/utils/findAnimationName.mjs create mode 100644 node_modules/stylelint/lib/utils/findAtRuleContext.mjs create mode 100644 node_modules/stylelint/lib/utils/findFontFamily.mjs create mode 100644 node_modules/stylelint/lib/utils/findMediaFeatureNames.mjs create mode 100644 node_modules/stylelint/lib/utils/findNodeUpToRoot.mjs create mode 100644 node_modules/stylelint/lib/utils/fixEmptyLinesBefore.mjs create mode 100644 node_modules/stylelint/lib/utils/functionArgumentsSearch.mjs create mode 100644 node_modules/stylelint/lib/utils/getAtRuleParams.mjs create mode 100644 node_modules/stylelint/lib/utils/getDeclarationValue.mjs create mode 100644 node_modules/stylelint/lib/utils/getDimension.mjs create mode 100644 node_modules/stylelint/lib/utils/getFileIgnorer.mjs create mode 100644 node_modules/stylelint/lib/utils/getFormatter.mjs create mode 100644 node_modules/stylelint/lib/utils/getFormatterOptionsText.mjs create mode 100644 node_modules/stylelint/lib/utils/getImportantPosition.mjs create mode 100644 node_modules/stylelint/lib/utils/getLexer.mjs create mode 100644 node_modules/stylelint/lib/utils/getModulePath.mjs create mode 100644 node_modules/stylelint/lib/utils/getNextNonSharedLineCommentNode.mjs create mode 100644 node_modules/stylelint/lib/utils/getPreviousNonSharedLineCommentNode.mjs create mode 100644 node_modules/stylelint/lib/utils/getRelativePath.mjs create mode 100644 node_modules/stylelint/lib/utils/getRuleSelector.mjs create mode 100644 node_modules/stylelint/lib/utils/getSchemeFromUrl.mjs create mode 100644 node_modules/stylelint/lib/utils/getSelectorSourceIndex.mjs create mode 100644 node_modules/stylelint/lib/utils/getStrippedSelectorSource.mjs create mode 100644 node_modules/stylelint/lib/utils/getStylelintRule.mjs create mode 100644 node_modules/stylelint/lib/utils/hasBlock.mjs create mode 100644 node_modules/stylelint/lib/utils/hasEmptyLine.mjs create mode 100644 node_modules/stylelint/lib/utils/hasInterpolation.mjs create mode 100644 node_modules/stylelint/lib/utils/hasLessInterpolation.mjs create mode 100644 node_modules/stylelint/lib/utils/hasPsvInterpolation.mjs create mode 100644 node_modules/stylelint/lib/utils/hasScssInterpolation.mjs create mode 100644 node_modules/stylelint/lib/utils/hasTplInterpolation.mjs create mode 100644 node_modules/stylelint/lib/utils/hash.mjs create mode 100644 node_modules/stylelint/lib/utils/isAfterBlock.mjs create mode 100644 node_modules/stylelint/lib/utils/isAfterComment.mjs create mode 100644 node_modules/stylelint/lib/utils/isAfterSingleLineComment.mjs create mode 100644 node_modules/stylelint/lib/utils/isAfterStandardPropertyDeclaration.mjs create mode 100644 node_modules/stylelint/lib/utils/isAutoprefixable.mjs create mode 100644 node_modules/stylelint/lib/utils/isBlocklessAtRuleAfterBlocklessAtRule.mjs create mode 100644 node_modules/stylelint/lib/utils/isBlocklessAtRuleAfterSameNameBlocklessAtRule.mjs create mode 100644 node_modules/stylelint/lib/utils/isContextFunctionalPseudoClass.mjs create mode 100644 node_modules/stylelint/lib/utils/isCounterIncrementCustomIdentValue.mjs create mode 100644 node_modules/stylelint/lib/utils/isCounterResetCustomIdentValue.mjs create mode 100644 node_modules/stylelint/lib/utils/isCustomElement.mjs create mode 100644 node_modules/stylelint/lib/utils/isCustomFunction.mjs create mode 100644 node_modules/stylelint/lib/utils/isCustomMediaQuery.mjs create mode 100644 node_modules/stylelint/lib/utils/isCustomProperty.mjs create mode 100644 node_modules/stylelint/lib/utils/isCustomSelector.mjs create mode 100644 node_modules/stylelint/lib/utils/isDescriptorDeclaration.mjs create mode 100644 node_modules/stylelint/lib/utils/isFirstNested.mjs create mode 100644 node_modules/stylelint/lib/utils/isFirstNodeOfRoot.mjs create mode 100644 node_modules/stylelint/lib/utils/isHexColor.mjs create mode 100644 node_modules/stylelint/lib/utils/isInDocument.mjs create mode 100644 node_modules/stylelint/lib/utils/isKeyframeRule.mjs create mode 100644 node_modules/stylelint/lib/utils/isKeyframeSelector.mjs create mode 100644 node_modules/stylelint/lib/utils/isMathFunction.mjs create mode 100644 node_modules/stylelint/lib/utils/isNonNegativeInteger.mjs create mode 100644 node_modules/stylelint/lib/utils/isNumbery.mjs create mode 100644 node_modules/stylelint/lib/utils/isOnlyWhitespace.mjs create mode 100644 node_modules/stylelint/lib/utils/isPathNotFoundError.mjs create mode 100644 node_modules/stylelint/lib/utils/isScssVariable.mjs create mode 100644 node_modules/stylelint/lib/utils/isSharedLineComment.mjs create mode 100644 node_modules/stylelint/lib/utils/isSingleLineString.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxAtRule.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxColorFunction.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxCombinator.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxComment.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxDeclaration.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxFunction.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxHexColor.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxKeyframesName.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxProperty.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxRule.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxSelector.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxTypeSelector.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxUrl.mjs create mode 100644 node_modules/stylelint/lib/utils/isStandardSyntaxValue.mjs create mode 100644 node_modules/stylelint/lib/utils/isUnicodeRangeDescriptor.mjs create mode 100644 node_modules/stylelint/lib/utils/isUnicodeSupported.mjs create mode 100644 node_modules/stylelint/lib/utils/isUrlFunction.mjs create mode 100644 node_modules/stylelint/lib/utils/isValidFontSize.mjs create mode 100644 node_modules/stylelint/lib/utils/isValidHex.mjs create mode 100644 node_modules/stylelint/lib/utils/isValidIdentifier.mjs create mode 100644 node_modules/stylelint/lib/utils/isVarFunction.mjs create mode 100644 node_modules/stylelint/lib/utils/isVariable.mjs create mode 100644 node_modules/stylelint/lib/utils/isWhitespace.mjs create mode 100644 node_modules/stylelint/lib/utils/matchesStringOrRegExp.mjs create mode 100644 node_modules/stylelint/lib/utils/mergeSyntaxDefinitions.mjs create mode 100644 node_modules/stylelint/lib/utils/narrowFixRange.mjs create mode 100644 node_modules/stylelint/lib/utils/nodeContextLookup.mjs create mode 100644 node_modules/stylelint/lib/utils/nodeFieldIndices.mjs create mode 100644 node_modules/stylelint/lib/utils/normalizeFilePath.mjs create mode 100644 node_modules/stylelint/lib/utils/normalizeFixMode.mjs create mode 100644 node_modules/stylelint/lib/utils/normalizeSelector.mjs create mode 100644 node_modules/stylelint/lib/utils/optionsMatches.mjs create mode 100644 node_modules/stylelint/lib/utils/parseCustomMediaQuery.mjs create mode 100644 node_modules/stylelint/lib/utils/parseMediaQuery.mjs create mode 100644 node_modules/stylelint/lib/utils/parseSelector.mjs create mode 100644 node_modules/stylelint/lib/utils/pathExists.mjs create mode 100644 node_modules/stylelint/lib/utils/pluralize.mjs create mode 100644 node_modules/stylelint/lib/utils/putIfAbsent.mjs create mode 100644 node_modules/stylelint/lib/utils/rangesOverlap.mjs create mode 100644 node_modules/stylelint/lib/utils/rawNodeString.mjs create mode 100644 node_modules/stylelint/lib/utils/regexes.mjs create mode 100644 node_modules/stylelint/lib/utils/removeEmptyLinesBefore.mjs create mode 100644 node_modules/stylelint/lib/utils/report.mjs create mode 100644 node_modules/stylelint/lib/utils/reportCommentProblem.mjs create mode 100644 node_modules/stylelint/lib/utils/resolveFilePath.mjs create mode 100644 node_modules/stylelint/lib/utils/resolveNestedSelectorsForRule.mjs create mode 100644 node_modules/stylelint/lib/utils/resolveOptionValue.mjs create mode 100644 node_modules/stylelint/lib/utils/resolveSilent.mjs create mode 100644 node_modules/stylelint/lib/utils/ruleMessages.mjs create mode 100644 node_modules/stylelint/lib/utils/setAtRuleParams.mjs create mode 100644 node_modules/stylelint/lib/utils/setDeclarationValue.mjs create mode 100644 node_modules/stylelint/lib/utils/suppressionsService.mjs create mode 100644 node_modules/stylelint/lib/utils/toPath.mjs create mode 100644 node_modules/stylelint/lib/utils/typeGuards.mjs create mode 100644 node_modules/stylelint/lib/utils/uniteSets.mjs create mode 100644 node_modules/stylelint/lib/utils/validateObjectWithArrayProps.mjs create mode 100644 node_modules/stylelint/lib/utils/validateObjectWithProps.mjs create mode 100644 node_modules/stylelint/lib/utils/validateOptions.mjs create mode 100644 node_modules/stylelint/lib/utils/validateTypes.mjs create mode 100644 node_modules/stylelint/lib/utils/vendor.mjs create mode 100644 node_modules/stylelint/lib/validateDisableSettings.mjs create mode 100644 node_modules/stylelint/lib/writeOutputFile.mjs create mode 100644 node_modules/stylelint/package.json create mode 100644 node_modules/stylelint/types/stylelint/index.d.ts create mode 100644 node_modules/supports-color/browser.d.ts create mode 100644 node_modules/supports-color/browser.js create mode 100644 node_modules/supports-color/index.d.ts create mode 100644 node_modules/supports-color/index.js create mode 100644 node_modules/supports-color/license create mode 100644 node_modules/supports-color/package.json create mode 100644 node_modules/supports-color/readme.md create mode 100644 node_modules/supports-hyperlinks/browser.js create mode 100644 node_modules/supports-hyperlinks/index.d.ts create mode 100644 node_modules/supports-hyperlinks/index.js create mode 100644 node_modules/supports-hyperlinks/license create mode 100644 node_modules/supports-hyperlinks/package.json create mode 100644 node_modules/supports-hyperlinks/readme.md create mode 100644 node_modules/svg-tags/LICENSE create mode 100644 node_modules/svg-tags/README.md create mode 100644 node_modules/svg-tags/lib/index.js create mode 100644 node_modules/svg-tags/lib/svg-tags.json create mode 100644 node_modules/svg-tags/package.json create mode 100644 node_modules/table/LICENSE create mode 100644 node_modules/table/README.md create mode 100644 node_modules/table/dist/src/alignSpanningCell.d.ts create mode 100644 node_modules/table/dist/src/alignSpanningCell.js create mode 100644 node_modules/table/dist/src/alignSpanningCell.js.map create mode 100644 node_modules/table/dist/src/alignString.d.ts create mode 100644 node_modules/table/dist/src/alignString.js create mode 100644 node_modules/table/dist/src/alignString.js.map create mode 100644 node_modules/table/dist/src/alignTableData.d.ts create mode 100644 node_modules/table/dist/src/alignTableData.js create mode 100644 node_modules/table/dist/src/alignTableData.js.map create mode 100644 node_modules/table/dist/src/calculateCellHeight.d.ts create mode 100644 node_modules/table/dist/src/calculateCellHeight.js create mode 100644 node_modules/table/dist/src/calculateCellHeight.js.map create mode 100644 node_modules/table/dist/src/calculateMaximumColumnWidths.d.ts create mode 100644 node_modules/table/dist/src/calculateMaximumColumnWidths.js create mode 100644 node_modules/table/dist/src/calculateMaximumColumnWidths.js.map create mode 100644 node_modules/table/dist/src/calculateOutputColumnWidths.d.ts create mode 100644 node_modules/table/dist/src/calculateOutputColumnWidths.js create mode 100644 node_modules/table/dist/src/calculateOutputColumnWidths.js.map create mode 100644 node_modules/table/dist/src/calculateRowHeights.d.ts create mode 100644 node_modules/table/dist/src/calculateRowHeights.js create mode 100644 node_modules/table/dist/src/calculateRowHeights.js.map create mode 100644 node_modules/table/dist/src/calculateSpanningCellWidth.d.ts create mode 100644 node_modules/table/dist/src/calculateSpanningCellWidth.js create mode 100644 node_modules/table/dist/src/calculateSpanningCellWidth.js.map create mode 100644 node_modules/table/dist/src/createStream.d.ts create mode 100644 node_modules/table/dist/src/createStream.js create mode 100644 node_modules/table/dist/src/createStream.js.map create mode 100644 node_modules/table/dist/src/drawBorder.d.ts create mode 100644 node_modules/table/dist/src/drawBorder.js create mode 100644 node_modules/table/dist/src/drawBorder.js.map create mode 100644 node_modules/table/dist/src/drawContent.d.ts create mode 100644 node_modules/table/dist/src/drawContent.js create mode 100644 node_modules/table/dist/src/drawContent.js.map create mode 100644 node_modules/table/dist/src/drawRow.d.ts create mode 100644 node_modules/table/dist/src/drawRow.js create mode 100644 node_modules/table/dist/src/drawRow.js.map create mode 100644 node_modules/table/dist/src/drawTable.d.ts create mode 100644 node_modules/table/dist/src/drawTable.js create mode 100644 node_modules/table/dist/src/drawTable.js.map create mode 100644 node_modules/table/dist/src/generated/validators.d.ts create mode 100644 node_modules/table/dist/src/generated/validators.js create mode 100644 node_modules/table/dist/src/generated/validators.js.map create mode 100644 node_modules/table/dist/src/getBorderCharacters.d.ts create mode 100644 node_modules/table/dist/src/getBorderCharacters.js create mode 100644 node_modules/table/dist/src/getBorderCharacters.js.map create mode 100644 node_modules/table/dist/src/index.d.ts create mode 100644 node_modules/table/dist/src/index.js create mode 100644 node_modules/table/dist/src/index.js.map create mode 100644 node_modules/table/dist/src/injectHeaderConfig.d.ts create mode 100644 node_modules/table/dist/src/injectHeaderConfig.js create mode 100644 node_modules/table/dist/src/injectHeaderConfig.js.map create mode 100644 node_modules/table/dist/src/makeRangeConfig.d.ts create mode 100644 node_modules/table/dist/src/makeRangeConfig.js create mode 100644 node_modules/table/dist/src/makeRangeConfig.js.map create mode 100644 node_modules/table/dist/src/makeStreamConfig.d.ts create mode 100644 node_modules/table/dist/src/makeStreamConfig.js create mode 100644 node_modules/table/dist/src/makeStreamConfig.js.map create mode 100644 node_modules/table/dist/src/makeTableConfig.d.ts create mode 100644 node_modules/table/dist/src/makeTableConfig.js create mode 100644 node_modules/table/dist/src/makeTableConfig.js.map create mode 100644 node_modules/table/dist/src/mapDataUsingRowHeights.d.ts create mode 100644 node_modules/table/dist/src/mapDataUsingRowHeights.js create mode 100644 node_modules/table/dist/src/mapDataUsingRowHeights.js.map create mode 100644 node_modules/table/dist/src/padTableData.d.ts create mode 100644 node_modules/table/dist/src/padTableData.js create mode 100644 node_modules/table/dist/src/padTableData.js.map create mode 100644 node_modules/table/dist/src/schemas/config.json create mode 100644 node_modules/table/dist/src/schemas/shared.json create mode 100644 node_modules/table/dist/src/schemas/streamConfig.json create mode 100644 node_modules/table/dist/src/spanningCellManager.d.ts create mode 100644 node_modules/table/dist/src/spanningCellManager.js create mode 100644 node_modules/table/dist/src/spanningCellManager.js.map create mode 100644 node_modules/table/dist/src/stringifyTableData.d.ts create mode 100644 node_modules/table/dist/src/stringifyTableData.js create mode 100644 node_modules/table/dist/src/stringifyTableData.js.map create mode 100644 node_modules/table/dist/src/table.d.ts create mode 100644 node_modules/table/dist/src/table.js create mode 100644 node_modules/table/dist/src/table.js.map create mode 100644 node_modules/table/dist/src/truncateTableData.d.ts create mode 100644 node_modules/table/dist/src/truncateTableData.js create mode 100644 node_modules/table/dist/src/truncateTableData.js.map create mode 100644 node_modules/table/dist/src/types/api.d.ts create mode 100644 node_modules/table/dist/src/types/api.js create mode 100644 node_modules/table/dist/src/types/api.js.map create mode 100644 node_modules/table/dist/src/types/internal.d.ts create mode 100644 node_modules/table/dist/src/types/internal.js create mode 100644 node_modules/table/dist/src/types/internal.js.map create mode 100644 node_modules/table/dist/src/utils.d.ts create mode 100644 node_modules/table/dist/src/utils.js create mode 100644 node_modules/table/dist/src/utils.js.map create mode 100644 node_modules/table/dist/src/validateConfig.d.ts create mode 100644 node_modules/table/dist/src/validateConfig.js create mode 100644 node_modules/table/dist/src/validateConfig.js.map create mode 100644 node_modules/table/dist/src/validateSpanningCellConfig.d.ts create mode 100644 node_modules/table/dist/src/validateSpanningCellConfig.js create mode 100644 node_modules/table/dist/src/validateSpanningCellConfig.js.map create mode 100644 node_modules/table/dist/src/validateTableData.d.ts create mode 100644 node_modules/table/dist/src/validateTableData.js create mode 100644 node_modules/table/dist/src/validateTableData.js.map create mode 100644 node_modules/table/dist/src/wrapCell.d.ts create mode 100644 node_modules/table/dist/src/wrapCell.js create mode 100644 node_modules/table/dist/src/wrapCell.js.map create mode 100644 node_modules/table/dist/src/wrapString.d.ts create mode 100644 node_modules/table/dist/src/wrapString.js create mode 100644 node_modules/table/dist/src/wrapString.js.map create mode 100644 node_modules/table/dist/src/wrapWord.d.ts create mode 100644 node_modules/table/dist/src/wrapWord.js create mode 100644 node_modules/table/dist/src/wrapWord.js.map create mode 100644 node_modules/table/node_modules/ansi-regex/index.d.ts create mode 100644 node_modules/table/node_modules/ansi-regex/index.js create mode 100644 node_modules/table/node_modules/ansi-regex/license create mode 100644 node_modules/table/node_modules/ansi-regex/package.json create mode 100644 node_modules/table/node_modules/ansi-regex/readme.md create mode 100644 node_modules/table/node_modules/string-width/index.d.ts create mode 100644 node_modules/table/node_modules/string-width/index.js create mode 100644 node_modules/table/node_modules/string-width/license create mode 100644 node_modules/table/node_modules/string-width/package.json create mode 100644 node_modules/table/node_modules/string-width/readme.md create mode 100644 node_modules/table/node_modules/strip-ansi/index.d.ts create mode 100644 node_modules/table/node_modules/strip-ansi/index.js create mode 100644 node_modules/table/node_modules/strip-ansi/license create mode 100644 node_modules/table/node_modules/strip-ansi/package.json create mode 100644 node_modules/table/node_modules/strip-ansi/readme.md create mode 100644 node_modules/table/package.json create mode 100644 node_modules/to-regex-range/LICENSE create mode 100644 node_modules/to-regex-range/README.md create mode 100644 node_modules/to-regex-range/index.js create mode 100644 node_modules/to-regex-range/package.json create mode 100644 node_modules/unicorn-magic/default.d.ts create mode 100644 node_modules/unicorn-magic/default.js create mode 100644 node_modules/unicorn-magic/license create mode 100644 node_modules/unicorn-magic/node.d.ts create mode 100644 node_modules/unicorn-magic/node.js create mode 100644 node_modules/unicorn-magic/package.json create mode 100644 node_modules/unicorn-magic/readme.md create mode 100644 node_modules/util-deprecate/History.md create mode 100644 node_modules/util-deprecate/LICENSE create mode 100644 node_modules/util-deprecate/README.md create mode 100644 node_modules/util-deprecate/browser.js create mode 100644 node_modules/util-deprecate/node.js create mode 100644 node_modules/util-deprecate/package.json create mode 100644 node_modules/which/CHANGELOG.md create mode 100644 node_modules/which/LICENSE create mode 100644 node_modules/which/README.md create mode 100755 node_modules/which/bin/which create mode 100644 node_modules/which/package.json create mode 100644 node_modules/which/which.js create mode 100644 node_modules/write-file-atomic/LICENSE.md create mode 100644 node_modules/write-file-atomic/README.md create mode 100644 node_modules/write-file-atomic/lib/index.js create mode 100644 node_modules/write-file-atomic/package.json create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 0000000..40db42c --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "stylelint-config-standard" +} diff --git a/node_modules/.bin/cssesc b/node_modules/.bin/cssesc new file mode 120000 index 0000000..487b689 --- /dev/null +++ b/node_modules/.bin/cssesc @@ -0,0 +1 @@ +../cssesc/bin/cssesc \ No newline at end of file diff --git a/node_modules/.bin/js-yaml b/node_modules/.bin/js-yaml new file mode 120000 index 0000000..9dbd010 --- /dev/null +++ b/node_modules/.bin/js-yaml @@ -0,0 +1 @@ +../js-yaml/bin/js-yaml.js \ No newline at end of file diff --git a/node_modules/.bin/nanoid b/node_modules/.bin/nanoid new file mode 120000 index 0000000..e2be547 --- /dev/null +++ b/node_modules/.bin/nanoid @@ -0,0 +1 @@ +../nanoid/bin/nanoid.cjs \ No newline at end of file diff --git a/node_modules/.bin/stylelint b/node_modules/.bin/stylelint new file mode 120000 index 0000000..df47b6f --- /dev/null +++ b/node_modules/.bin/stylelint @@ -0,0 +1 @@ +../stylelint/bin/stylelint.mjs \ No newline at end of file diff --git a/node_modules/.bin/which b/node_modules/.bin/which new file mode 120000 index 0000000..f62471c --- /dev/null +++ b/node_modules/.bin/which @@ -0,0 +1 @@ +../which/bin/which \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..7bb0f57 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,1613 @@ +{ + "name": "labman", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cacheable/memory": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.8.tgz", + "integrity": "sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/utils": "^2.4.0", + "@keyv/bigmap": "^1.3.1", + "hookified": "^1.15.1", + "keyv": "^5.6.0" + } + }, + "node_modules/@cacheable/utils": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.4.0.tgz", + "integrity": "sha512-PeMMsqjVq+bF0WBsxFBxr/WozBJiZKY0rUojuaCoIaKnEl3Ju1wfEwS+SV1DU/cSe8fqHIPiYJFif8T3MVt4cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.5.0", + "keyv": "^5.6.0" + } + }, + "node_modules/@csstools/css-calc": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz", + "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.0.29", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.29.tgz", + "integrity": "sha512-jx9GjkkP5YHuTmko2eWAvpPnb0mB4mGRr2U7XwVNwevm8nlpobZEVk+GNmiYMk2VuA75v+plfXWyroWKmICZXg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0" + }, + "node_modules/@csstools/css-tokenizer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-5.0.0.tgz", + "integrity": "sha512-T9lXmZOfnam3eMERPsszjY5NK0jX8RmThmmm99FZ8b7z8yMaFZWKwLWGZuTwdO3ddRY5fy13GmmEYZXB4I98Eg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/selector-resolve-nested": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.0.tgz", + "integrity": "sha512-9vAPxmp+Dx3wQBIUwc1v7Mdisw1kbbaGqXUM8QLTgWg7SoPGYtXBsMXvsFs/0Bn5yoFhcktzxNZGNaUt0VjgjA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.1.1" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-6.0.0.tgz", + "integrity": "sha512-4sSgl78OtOXEX/2d++8A83zHNTgwCJMaR24FvsYL7Uf/VS8HZk9PTwR51elTbGqMuwH3szLvvOXEaVnqn0Z3zA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.1.1" + } + }, + "node_modules/@keyv/bigmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", + "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.4.0", + "hookified": "^1.15.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "^5.6.0" + } + }, + "node_modules/@keyv/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", + "dev": true, + "license": "MIT" + }, + "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/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "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/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.3.tgz", + "integrity": "sha512-iffYMX4zxKp54evOH27fm92hs+DeC1DhXmNVN8Tr94M/iZIV42dqTHSR2Ik4TOSPyOAwKr7Yu3rN9ALoLkbWyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memory": "^2.0.8", + "@cacheable/utils": "^2.4.0", + "hookified": "^1.15.0", + "keyv": "^5.6.0", + "qified": "^0.6.0" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", + "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/css-functions-list": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.3.3.tgz", + "integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.2.tgz", + "integrity": "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^6.1.20" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "6.1.20", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.20.tgz", + "integrity": "sha512-AhHYqwvN62NVLp4lObVXGVluiABTHapoB57EyegZVmazN+hhGhLTn3uZbOofoTw4DSDvVCadzzyChXhOAvy8uQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cacheable": "^2.3.2", + "flatted": "^3.3.3", + "hookified": "^1.15.0" + } + }, + "node_modules/flatted": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.4.tgz", + "integrity": "sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==", + "dev": true, + "license": "ISC" + }, + "node_modules/get-east-asian-width": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", + "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/globby": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.1.1.tgz", + "integrity": "sha512-dW7vl+yiAJSp6aCekaVnVJxurRv7DCOLyXqEG3RYMYUg7AuJ2jCqPkZTA8ooqC2vtnkaMcV5WfFBMuEnTu1OQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.5", + "is-path-inside": "^4.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.4.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz", + "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hashery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.0.tgz", + "integrity": "sha512-nhQ6ExaOIqti2FDWoEMWARUqIKyjr2VcZzXShrI+A3zpeiuPWzx6iPftt44LhP74E5sW36B75N6VHbvRtpvO6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.14.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/hookified": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz", + "integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-tags": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-5.1.0.tgz", + "integrity": "sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "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/keyv": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/mathml-tag-names": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-4.0.0.tgz", + "integrity": "sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/meow": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-14.1.0.tgz", + "integrity": "sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "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": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/picocolors": { + "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" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", + "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-safe-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/qified": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/qified/-/qified-0.6.0.tgz", + "integrity": "sha512-tsSGN1x3h569ZSU1u6diwhltLyfUWDp3YbFHedapTmpBl0B3P6U3+Qptg7xu+v+1io1EwhdPyyRHYbEw0KN2FA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.14.0" + }, + "engines": { + "node": ">=20" + } + }, + "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/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.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/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/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map-js": { + "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": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.0.tgz", + "integrity": "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stylelint": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.4.0.tgz", + "integrity": "sha512-3kQ2/cHv3Zt8OBg+h2B8XCx9evEABQIrv4hh3uXahGz/ZEHrTR80zxBiK2NfXNaSoyBzxO1pjsz1Vhdzwn5XSw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^3.1.1", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-syntax-patches-for-csstree": "^1.0.27", + "@csstools/css-tokenizer": "^4.0.0", + "@csstools/media-query-list-parser": "^5.0.0", + "@csstools/selector-resolve-nested": "^4.0.0", + "@csstools/selector-specificity": "^6.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^9.0.0", + "css-functions-list": "^3.3.3", + "css-tree": "^3.1.0", + "debug": "^4.4.3", + "fast-glob": "^3.3.3", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^11.1.2", + "global-modules": "^2.0.0", + "globby": "^16.1.0", + "globjoin": "^0.1.4", + "html-tags": "^5.1.0", + "ignore": "^7.0.5", + "import-meta-resolve": "^4.2.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "mathml-tag-names": "^4.0.0", + "meow": "^14.0.0", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.5.6", + "postcss-safe-parser": "^7.0.1", + "postcss-selector-parser": "^7.1.1", + "postcss-value-parser": "^4.2.0", + "string-width": "^8.1.1", + "supports-hyperlinks": "^4.4.0", + "svg-tags": "^1.0.0", + "table": "^6.9.0", + "write-file-atomic": "^7.0.0" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-18.0.0.tgz", + "integrity": "sha512-mxgT2XY6YZ3HWWe3Di8umG6aBmWmHTblTgu/f10rqFXnyWxjKWwNdjSWkgkwCtxIKnqjSJzvFmPT5yabVIRxZg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "stylelint": "^17.0.0" + } + }, + "node_modules/stylelint-config-standard": { + "version": "40.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-40.0.0.tgz", + "integrity": "sha512-EznGJxOUhtWck2r6dJpbgAdPATIzvpLdK9+i5qPd4Lx70es66TkBPljSg4wN3Qnc6c4h2n+WbUrUynQ3fanjHw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "^18.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "stylelint": "^17.0.0" + } + }, + "node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-hyperlinks": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-4.4.0.tgz", + "integrity": "sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^5.0.1", + "supports-color": "^10.2.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/table": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/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/table/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/unicorn-magic": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", + "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/write-file-atomic": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-7.0.1.tgz", + "integrity": "sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==", + "dev": true, + "license": "ISC", + "dependencies": { + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + } + } +} diff --git a/node_modules/@babel/code-frame/LICENSE b/node_modules/@babel/code-frame/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/code-frame/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/code-frame/README.md b/node_modules/@babel/code-frame/README.md new file mode 100644 index 0000000..7160755 --- /dev/null +++ b/node_modules/@babel/code-frame/README.md @@ -0,0 +1,19 @@ +# @babel/code-frame + +> Generate errors that contain a code frame that point to source locations. + +See our website [@babel/code-frame](https://babeljs.io/docs/babel-code-frame) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/code-frame +``` + +or using yarn: + +```sh +yarn add @babel/code-frame --dev +``` diff --git a/node_modules/@babel/code-frame/lib/index.js b/node_modules/@babel/code-frame/lib/index.js new file mode 100644 index 0000000..9c5db40 --- /dev/null +++ b/node_modules/@babel/code-frame/lib/index.js @@ -0,0 +1,217 @@ +'use strict'; + +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 + ); +} +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), + 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") { + const tokenValue = token.value; + if (helperValidatorIdentifier.isKeyword(tokenValue) || helperValidatorIdentifier.isStrictReservedWord(tokenValue, true) || sometimesKeywords.has(tokenValue)) { + return "keyword"; + } + if (JSX_TAG.test(tokenValue) && (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, startLineBaseZero) { + const startLoc = Object.assign({ + column: 0, + line: -1 + }, loc.start); + const endLoc = Object.assign({}, startLoc, loc.end); + const { + linesAbove = 2, + linesBelow = 3 + } = opts || {}; + const startLine = startLoc.line - startLineBaseZero; + const startColumn = startLoc.column; + const endLine = endLoc.line - startLineBaseZero; + const endColumn = endLoc.column; + let start = Math.max(startLine - (linesAbove + 1), 0); + let end = Math.min(source.length, endLine + linesBelow); + if (startLine === -1) { + start = 0; + } + if (endLine === -1) { + end = source.length; + } + const lineDiff = endLine - startLine; + const markerLines = {}; + if (lineDiff) { + for (let i = 0; i <= lineDiff; i++) { + const lineNumber = i + startLine; + if (!startColumn) { + markerLines[lineNumber] = true; + } else if (i === 0) { + const sourceLength = source[lineNumber - 1].length; + markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; + } else if (i === lineDiff) { + markerLines[lineNumber] = [0, endColumn]; + } else { + const sourceLength = source[lineNumber - i].length; + markerLines[lineNumber] = [0, sourceLength]; + } + } + } else { + if (startColumn === endColumn) { + if (startColumn) { + markerLines[startLine] = [startColumn, 0]; + } else { + markerLines[startLine] = true; + } + } else { + markerLines[startLine] = [startColumn, endColumn - startColumn]; + } + } + return { + start, + end, + markerLines + }; +} +function codeFrameColumns(rawLines, loc, opts = {}) { + const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode; + const startLineBaseZero = (opts.startLine || 1) - 1; + const defs = getDefs(shouldHighlight); + const lines = rawLines.split(NEWLINE); + const { + start, + end, + markerLines + } = getMarkerLines(loc, lines, opts, startLineBaseZero); + const hasColumns = loc.start && typeof loc.start.column === "number"; + const numberMaxWidth = String(end + startLineBaseZero).length; + 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 + startLineBaseZero}`.slice(-numberMaxWidth); + const gutter = ` ${paddedNumber} |`; + const hasMarker = markerLines[number]; + const lastMarkerLine = !markerLines[number + 1]; + if (hasMarker) { + let markerLine = ""; + if (Array.isArray(hasMarker)) { + const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); + const numberOfMarkers = hasMarker[1] || 1; + markerLine = ["\n ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join(""); + if (lastMarkerLine && opts.message) { + markerLine += " " + defs.message(opts.message); + } + } + return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); + } else { + return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`; + } + }).join("\n"); + if (opts.message && !hasColumns) { + frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; + } + if (shouldHighlight) { + return defs.reset(frame); + } else { + return frame; + } +} +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`."; + if (process.emitWarning) { + process.emitWarning(message, "DeprecationWarning"); + } else { + const deprecationError = new Error(message); + deprecationError.name = "DeprecationWarning"; + console.warn(new Error(message)); + } + } + colNumber = Math.max(colNumber, 0); + const location = { + start: { + column: colNumber, + line: lineNumber + } + }; + return codeFrameColumns(rawLines, location, opts); +} + +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 new file mode 100644 index 0000000..6b85ae4 --- /dev/null +++ b/node_modules/@babel/code-frame/lib/index.js.map @@ -0,0 +1 @@ +{"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 = Record;\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// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\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 const tokenValue = token.value;\n if (\n isKeyword(tokenValue) ||\n isStrictReservedWord(tokenValue, true) ||\n sometimesKeywords.has(tokenValue)\n ) {\n return \"keyword\";\n }\n\n const firstChar = tokenValue.charCodeAt(0);\n if (firstChar < 128) {\n // ASCII characters\n if (\n firstChar >= charCodes.uppercaseA &&\n firstChar <= charCodes.uppercaseZ\n ) {\n return \"capitalized\";\n }\n } else {\n const firstChar = String.fromCodePoint(tokenValue.codePointAt(0));\n if (firstChar !== firstChar.toLowerCase()) {\n return \"capitalized\";\n }\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 const tokenValue = token.value;\n if (\n isKeyword(tokenValue) ||\n isStrictReservedWord(tokenValue, true) ||\n sometimesKeywords.has(tokenValue)\n ) {\n return \"keyword\";\n }\n\n if (\n JSX_TAG.test(tokenValue) &&\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 /** The line number corresponding to the first line in `rawLines`. default: 1 */\n startLine?: 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: string[],\n opts: Options,\n startLineBaseZero: number,\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 - startLineBaseZero;\n const startColumn = startLoc.column;\n const endLine = endLoc.line - startLineBaseZero;\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 startLineBaseZero = (opts.startLine || 1) - 1;\n const defs = getDefs(shouldHighlight);\n\n const lines = rawLines.split(NEWLINE);\n const { start, end, markerLines } = getMarkerLines(\n loc,\n lines,\n opts,\n startLineBaseZero,\n );\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n const numberMaxWidth = String(end + startLineBaseZero).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 + startLineBaseZero}`.slice(\n -numberMaxWidth,\n );\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","tokenValue","value","isKeyword","isStrictReservedWord","has","test","slice","firstChar","String","fromCodePoint","codePointAt","toLowerCase","match","jsTokens","default","exec","matchToToken","index","highlight","defs","highlighted","split","map","str","join","deprecationWarningShown","getMarkerLines","loc","source","opts","startLineBaseZero","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","highlightedLines","frame","paddedNumber","hasMarker","lastMarkerLine","markerLine","Array","isArray","markerSpacing","replace","numberOfMarkers","repeat","colNumber","emitWarning","deprecationError","Error","name","console","warn","location"],"mappings":";;;;;;;;AAGO,SAASA,gBAAgBA,GAAG;EACjC,QAEE,OAAOC,OAAO,KAAK,QAAQ,KACxBA,OAAO,CAACC,GAAG,CAACC,WAAW,KAAK,GAAG,IAAIF,OAAO,CAACC,GAAG,CAACC,WAAW,KAAK,OAAO,CAAC,GACtE,KAAK,GACLC,UAAU,CAACJ,gBAAAA;AAAgB,IAAA;AAEnC,CAAA;AAiBA,MAAMK,OAAkE,GACtEA,CAACC,CAAC,EAAEC,CAAC,KAAKC,CAAC,IACTF,CAAC,CAACC,CAAC,CAACC,CAAC,CAAC,CAAC,CAAA;AAKX,SAASC,SAASA,CAACC,MAAc,EAAQ;EACvC,OAAO;IACLC,OAAO,EAAED,MAAM,CAACE,IAAI;IACpBC,WAAW,EAAEH,MAAM,CAACI,MAAM;IAC1BC,aAAa,EAAEL,MAAM,CAACI,MAAM;IAC5BE,UAAU,EAAEN,MAAM,CAACI,MAAM;IACzBG,MAAM,EAAEP,MAAM,CAACQ,OAAO;IACtBC,MAAM,EAAET,MAAM,CAACU,KAAK;IACpBC,KAAK,EAAEX,MAAM,CAACQ,OAAO;IACrBI,OAAO,EAAEZ,MAAM,CAACa,IAAI;AACpBC,IAAAA,OAAO,EAAEnB,OAAO,CAACA,OAAO,CAACK,MAAM,CAACe,KAAK,EAAEf,MAAM,CAACgB,KAAK,CAAC,EAAEhB,MAAM,CAACiB,IAAI,CAAC;IAElEC,MAAM,EAAElB,MAAM,CAACa,IAAI;IACnBM,MAAM,EAAExB,OAAO,CAACK,MAAM,CAACoB,GAAG,EAAEpB,MAAM,CAACiB,IAAI,CAAC;IACxCI,OAAO,EAAE1B,OAAO,CAACK,MAAM,CAACoB,GAAG,EAAEpB,MAAM,CAACiB,IAAI,CAAC;IAEzCK,KAAK,EAAEtB,MAAM,CAACsB,KAAAA;GACf,CAAA;AACH,CAAA;AAEA,MAAMC,MAAM,GAAGxB,SAAS,CAACyB,uBAAY,CAAC,IAAI,CAAC,CAAC,CAAA;AAC5C,MAAMC,OAAO,GAAG1B,SAAS,CAACyB,uBAAY,CAAC,KAAK,CAAC,CAAC,CAAA;AAEvC,SAASE,OAAOA,CAACC,OAAgB,EAAQ;AAC9C,EAAA,OAAOA,OAAO,GAAGJ,MAAM,GAAGE,OAAO,CAAA;AACnC;;ACtCA,MAAMG,iBAAiB,GAAG,IAAIC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AAU9E,MAAMC,SAAO,GAAG,yBAAyB,CAAA;AAKzC,MAAMC,OAAO,GAAG,aAAa,CAAA;AAE7B,IAAIC,QAEoE,CAAA;AA8GtE,MAAMC,OAAO,GAAG,gBAAgB,CAAA;AAIhC,MAAMC,YAAY,GAAG,UAAUC,KAAU,EAAEC,MAAc,EAAEC,IAAY,EAAE;AACvE,EAAA,IAAIF,KAAK,CAACG,IAAI,KAAK,MAAM,EAAE;AACzB,IAAA,MAAMC,UAAU,GAAGJ,KAAK,CAACK,KAAK,CAAA;AAC9B,IAAA,IACEC,mCAAS,CAACF,UAAU,CAAC,IACrBG,8CAAoB,CAACH,UAAU,EAAE,IAAI,CAAC,IACtCX,iBAAiB,CAACe,GAAG,CAACJ,UAAU,CAAC,EACjC;AACA,MAAA,OAAO,SAAS,CAAA;AAClB,KAAA;AAEA,IAAA,IACEN,OAAO,CAACW,IAAI,CAACL,UAAU,CAAC,KACvBF,IAAI,CAACD,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,IAAIC,IAAI,CAACQ,KAAK,CAACT,MAAM,GAAG,CAAC,EAAEA,MAAM,CAAC,KAAK,IAAI,CAAC,EACrE;AACA,MAAA,OAAO,eAAe,CAAA;AACxB,KAAA;AAEA,IAAA,MAAMU,SAAS,GAAGC,MAAM,CAACC,aAAa,CAACT,UAAU,CAACU,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AACjE,IAAA,IAAIH,SAAS,KAAKA,SAAS,CAACI,WAAW,EAAE,EAAE;AACzC,MAAA,OAAO,aAAa,CAAA;AACtB,KAAA;AACF,GAAA;AAEA,EAAA,IAAIf,KAAK,CAACG,IAAI,KAAK,YAAY,IAAIP,OAAO,CAACa,IAAI,CAACT,KAAK,CAACK,KAAK,CAAC,EAAE;AAC5D,IAAA,OAAO,SAAS,CAAA;AAClB,GAAA;AAEA,EAAA,IACEL,KAAK,CAACG,IAAI,KAAK,SAAS,KACvBH,KAAK,CAACK,KAAK,KAAK,GAAG,IAAIL,KAAK,CAACK,KAAK,KAAK,GAAG,CAAC,EAC5C;AACA,IAAA,OAAO,YAAY,CAAA;AACrB,GAAA;EAEA,OAAOL,KAAK,CAACG,IAAI,CAAA;AACnB,CAAC,CAAA;AAEDN,QAAQ,GAAG,WAAWK,IAAY,EAAE;AAClC,EAAA,IAAIc,KAAK,CAAA;EACT,OAAQA,KAAK,GAAIC,QAAQ,CAASC,OAAO,CAACC,IAAI,CAACjB,IAAI,CAAC,EAAG;AACrD,IAAA,MAAMF,KAAK,GAAIiB,QAAQ,CAASG,YAAY,CAACJ,KAAK,CAAC,CAAA;IAEnD,MAAM;MACJb,IAAI,EAAEJ,YAAY,CAACC,KAAK,EAAEgB,KAAK,CAACK,KAAK,EAAEnB,IAAI,CAAC;MAC5CG,KAAK,EAAEL,KAAK,CAACK,KAAAA;KACd,CAAA;AACH,GAAA;AACF,CAAC,CAAA;AAGI,SAASiB,SAASA,CAACpB,IAAY,EAAE;AACtC,EAAA,IAAIA,IAAI,KAAK,EAAE,EAAE,OAAO,EAAE,CAAA;AAE1B,EAAA,MAAMqB,IAAI,GAAGhC,OAAO,CAAC,IAAI,CAAC,CAAA;EAE1B,IAAIiC,WAAW,GAAG,EAAE,CAAA;AAEpB,EAAA,KAAK,MAAM;IAAErB,IAAI;AAAEE,IAAAA,KAAAA;AAAM,GAAC,IAAIR,QAAQ,CAACK,IAAI,CAAC,EAAE;IAC5C,IAAIC,IAAI,IAAIoB,IAAI,EAAE;MAChBC,WAAW,IAAInB,KAAK,CACjBoB,KAAK,CAAC9B,SAAO,CAAC,CACd+B,GAAG,CAACC,GAAG,IAAIJ,IAAI,CAACpB,IAAI,CAAsB,CAACwB,GAAG,CAAC,CAAC,CAChDC,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,KAAC,MAAM;AACLJ,MAAAA,WAAW,IAAInB,KAAK,CAAA;AACtB,KAAA;AACF,GAAA;AAEA,EAAA,OAAOmB,WAAW,CAAA;AACpB;;AC5NA,IAAIK,uBAAuB,GAAG,KAAK,CAAA;AAwCnC,MAAMlC,OAAO,GAAG,yBAAyB,CAAA;AAQzC,SAASmC,cAAcA,CACrBC,GAAiB,EACjBC,MAAgB,EAChBC,IAAa,EACbC,iBAAyB,EAKzB;AACA,EAAA,MAAMC,QAAkB,GAAAC,MAAA,CAAAC,MAAA,CAAA;AACtBC,IAAAA,MAAM,EAAE,CAAC;AACTC,IAAAA,IAAI,EAAE,CAAC,CAAA;GACJR,EAAAA,GAAG,CAACS,KAAK,CACb,CAAA;EACD,MAAMC,MAAgB,GAAAL,MAAA,CAAAC,MAAA,CACjBF,EAAAA,EAAAA,QAAQ,EACRJ,GAAG,CAACW,GAAG,CACX,CAAA;EACD,MAAM;AAAEC,IAAAA,UAAU,GAAG,CAAC;AAAEC,IAAAA,UAAU,GAAG,CAAA;AAAE,GAAC,GAAGX,IAAI,IAAI,EAAE,CAAA;AACrD,EAAA,MAAMY,SAAS,GAAGV,QAAQ,CAACI,IAAI,GAAGL,iBAAiB,CAAA;AACnD,EAAA,MAAMY,WAAW,GAAGX,QAAQ,CAACG,MAAM,CAAA;AACnC,EAAA,MAAMS,OAAO,GAAGN,MAAM,CAACF,IAAI,GAAGL,iBAAiB,CAAA;AAC/C,EAAA,MAAMc,SAAS,GAAGP,MAAM,CAACH,MAAM,CAAA;AAE/B,EAAA,IAAIE,KAAK,GAAGS,IAAI,CAACC,GAAG,CAACL,SAAS,IAAIF,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACrD,EAAA,IAAID,GAAG,GAAGO,IAAI,CAACE,GAAG,CAACnB,MAAM,CAACoB,MAAM,EAAEL,OAAO,GAAGH,UAAU,CAAC,CAAA;AAEvD,EAAA,IAAIC,SAAS,KAAK,CAAC,CAAC,EAAE;AACpBL,IAAAA,KAAK,GAAG,CAAC,CAAA;AACX,GAAA;AAEA,EAAA,IAAIO,OAAO,KAAK,CAAC,CAAC,EAAE;IAClBL,GAAG,GAAGV,MAAM,CAACoB,MAAM,CAAA;AACrB,GAAA;AAEA,EAAA,MAAMC,QAAQ,GAAGN,OAAO,GAAGF,SAAS,CAAA;EACpC,MAAMS,WAAwB,GAAG,EAAE,CAAA;AAEnC,EAAA,IAAID,QAAQ,EAAE;IACZ,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIF,QAAQ,EAAEE,CAAC,EAAE,EAAE;AAClC,MAAA,MAAMC,UAAU,GAAGD,CAAC,GAAGV,SAAS,CAAA;MAEhC,IAAI,CAACC,WAAW,EAAE;AAChBQ,QAAAA,WAAW,CAACE,UAAU,CAAC,GAAG,IAAI,CAAA;AAChC,OAAC,MAAM,IAAID,CAAC,KAAK,CAAC,EAAE;QAClB,MAAME,YAAY,GAAGzB,MAAM,CAACwB,UAAU,GAAG,CAAC,CAAC,CAACJ,MAAM,CAAA;AAElDE,QAAAA,WAAW,CAACE,UAAU,CAAC,GAAG,CAACV,WAAW,EAAEW,YAAY,GAAGX,WAAW,GAAG,CAAC,CAAC,CAAA;AACzE,OAAC,MAAM,IAAIS,CAAC,KAAKF,QAAQ,EAAE;QACzBC,WAAW,CAACE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAER,SAAS,CAAC,CAAA;AAC1C,OAAC,MAAM;QACL,MAAMS,YAAY,GAAGzB,MAAM,CAACwB,UAAU,GAAGD,CAAC,CAAC,CAACH,MAAM,CAAA;QAElDE,WAAW,CAACE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAEC,YAAY,CAAC,CAAA;AAC7C,OAAA;AACF,KAAA;AACF,GAAC,MAAM;IACL,IAAIX,WAAW,KAAKE,SAAS,EAAE;AAC7B,MAAA,IAAIF,WAAW,EAAE;QACfQ,WAAW,CAACT,SAAS,CAAC,GAAG,CAACC,WAAW,EAAE,CAAC,CAAC,CAAA;AAC3C,OAAC,MAAM;AACLQ,QAAAA,WAAW,CAACT,SAAS,CAAC,GAAG,IAAI,CAAA;AAC/B,OAAA;AACF,KAAC,MAAM;MACLS,WAAW,CAACT,SAAS,CAAC,GAAG,CAACC,WAAW,EAAEE,SAAS,GAAGF,WAAW,CAAC,CAAA;AACjE,KAAA;AACF,GAAA;EAEA,OAAO;IAAEN,KAAK;IAAEE,GAAG;AAAEY,IAAAA,WAAAA;GAAa,CAAA;AACpC,CAAA;AAEO,SAASI,gBAAgBA,CAC9BC,QAAgB,EAChB5B,GAAiB,EACjBE,IAAa,GAAG,EAAE,EACV;AACR,EAAA,MAAM2B,eAAe,GACnB3B,IAAI,CAAC4B,UAAU,IAAK1G,gBAAgB,EAAE,IAAI8E,IAAI,CAAC6B,aAAc,CAAA;EAC/D,MAAM5B,iBAAiB,GAAG,CAACD,IAAI,CAACY,SAAS,IAAI,CAAC,IAAI,CAAC,CAAA;AACnD,EAAA,MAAMtB,IAAI,GAAGhC,OAAO,CAACqE,eAAe,CAAC,CAAA;AAErC,EAAA,MAAMG,KAAK,GAAGJ,QAAQ,CAAClC,KAAK,CAAC9B,OAAO,CAAC,CAAA;EACrC,MAAM;IAAE6C,KAAK;IAAEE,GAAG;AAAEY,IAAAA,WAAAA;GAAa,GAAGxB,cAAc,CAChDC,GAAG,EACHgC,KAAK,EACL9B,IAAI,EACJC,iBACF,CAAC,CAAA;AACD,EAAA,MAAM8B,UAAU,GAAGjC,GAAG,CAACS,KAAK,IAAI,OAAOT,GAAG,CAACS,KAAK,CAACF,MAAM,KAAK,QAAQ,CAAA;EAEpE,MAAM2B,cAAc,GAAGrD,MAAM,CAAC8B,GAAG,GAAGR,iBAAiB,CAAC,CAACkB,MAAM,CAAA;EAE7D,MAAMc,gBAAgB,GAAGN,eAAe,GAAGtC,SAAS,CAACqC,QAAQ,CAAC,GAAGA,QAAQ,CAAA;EAEzE,IAAIQ,KAAK,GAAGD,gBAAgB,CACzBzC,KAAK,CAAC9B,OAAO,EAAE+C,GAAG,CAAC,CACnBhC,KAAK,CAAC8B,KAAK,EAAEE,GAAG,CAAC,CACjBhB,GAAG,CAAC,CAACa,IAAI,EAAElB,KAAK,KAAK;AACpB,IAAA,MAAMjD,MAAM,GAAGoE,KAAK,GAAG,CAAC,GAAGnB,KAAK,CAAA;AAChC,IAAA,MAAM+C,YAAY,GAAG,CAAIhG,CAAAA,EAAAA,MAAM,GAAG8D,iBAAiB,CAAE,CAAA,CAACxB,KAAK,CACzD,CAACuD,cACH,CAAC,CAAA;AACD,IAAA,MAAMlF,MAAM,GAAG,CAAIqF,CAAAA,EAAAA,YAAY,CAAI,EAAA,CAAA,CAAA;AACnC,IAAA,MAAMC,SAAS,GAAGf,WAAW,CAAClF,MAAM,CAAC,CAAA;IACrC,MAAMkG,cAAc,GAAG,CAAChB,WAAW,CAAClF,MAAM,GAAG,CAAC,CAAC,CAAA;AAC/C,IAAA,IAAIiG,SAAS,EAAE;MACb,IAAIE,UAAU,GAAG,EAAE,CAAA;AACnB,MAAA,IAAIC,KAAK,CAACC,OAAO,CAACJ,SAAS,CAAC,EAAE;AAC5B,QAAA,MAAMK,aAAa,GAAGnC,IAAI,CACvB7B,KAAK,CAAC,CAAC,EAAEuC,IAAI,CAACC,GAAG,CAACmB,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CACvCM,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACzB,QAAA,MAAMC,eAAe,GAAGP,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAEzCE,QAAAA,UAAU,GAAG,CACX,KAAK,EACLhD,IAAI,CAACxC,MAAM,CAACA,MAAM,CAAC4F,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EACvC,GAAG,EACHD,aAAa,EACbnD,IAAI,CAACvC,MAAM,CAAC,GAAG,CAAC,CAAC6F,MAAM,CAACD,eAAe,CAAC,CACzC,CAAChD,IAAI,CAAC,EAAE,CAAC,CAAA;AAEV,QAAA,IAAI0C,cAAc,IAAIrC,IAAI,CAAC/C,OAAO,EAAE;UAClCqF,UAAU,IAAI,GAAG,GAAGhD,IAAI,CAACrC,OAAO,CAAC+C,IAAI,CAAC/C,OAAO,CAAC,CAAA;AAChD,SAAA;AACF,OAAA;AACA,MAAA,OAAO,CACLqC,IAAI,CAACvC,MAAM,CAAC,GAAG,CAAC,EAChBuC,IAAI,CAACxC,MAAM,CAACA,MAAM,CAAC,EACnBwD,IAAI,CAACa,MAAM,GAAG,CAAC,GAAG,CAAA,CAAA,EAAIb,IAAI,CAAE,CAAA,GAAG,EAAE,EACjCgC,UAAU,CACX,CAAC3C,IAAI,CAAC,EAAE,CAAC,CAAA;AACZ,KAAC,MAAM;AACL,MAAA,OAAO,IAAIL,IAAI,CAACxC,MAAM,CAACA,MAAM,CAAC,CAAGwD,EAAAA,IAAI,CAACa,MAAM,GAAG,CAAC,GAAG,CAAA,CAAA,EAAIb,IAAI,CAAE,CAAA,GAAG,EAAE,CAAE,CAAA,CAAA;AACtE,KAAA;AACF,GAAC,CAAC,CACDX,IAAI,CAAC,IAAI,CAAC,CAAA;AAEb,EAAA,IAAIK,IAAI,CAAC/C,OAAO,IAAI,CAAC8E,UAAU,EAAE;AAC/BG,IAAAA,KAAK,GAAG,CAAG,EAAA,GAAG,CAACU,MAAM,CAACZ,cAAc,GAAG,CAAC,CAAC,GAAGhC,IAAI,CAAC/C,OAAO,CAAA,EAAA,EAAKiF,KAAK,CAAE,CAAA,CAAA;AACtE,GAAA;AAEA,EAAA,IAAIP,eAAe,EAAE;AACnB,IAAA,OAAOrC,IAAI,CAACpC,KAAK,CAACgF,KAAK,CAAC,CAAA;AAC1B,GAAC,MAAM;AACL,IAAA,OAAOA,KAAK,CAAA;AACd,GAAA;AACF,CAAA;AAMe,cAAA,EACbR,QAAgB,EAChBH,UAAkB,EAClBsB,SAAyB,EACzB7C,IAAa,GAAG,EAAE,EACV;EACR,IAAI,CAACJ,uBAAuB,EAAE;AAC5BA,IAAAA,uBAAuB,GAAG,IAAI,CAAA;IAE9B,MAAM3C,OAAO,GACX,qGAAqG,CAAA;IAEvG,IAAI9B,OAAO,CAAC2H,WAAW,EAAE;AAGvB3H,MAAAA,OAAO,CAAC2H,WAAW,CAAC7F,OAAO,EAAE,oBAAoB,CAAC,CAAA;AACpD,KAAC,MAAM;AACL,MAAA,MAAM8F,gBAAgB,GAAG,IAAIC,KAAK,CAAC/F,OAAO,CAAC,CAAA;MAC3C8F,gBAAgB,CAACE,IAAI,GAAG,oBAAoB,CAAA;MAC5CC,OAAO,CAACC,IAAI,CAAC,IAAIH,KAAK,CAAC/F,OAAO,CAAC,CAAC,CAAA;AAClC,KAAA;AACF,GAAA;EAEA4F,SAAS,GAAG7B,IAAI,CAACC,GAAG,CAAC4B,SAAS,EAAE,CAAC,CAAC,CAAA;AAElC,EAAA,MAAMO,QAAsB,GAAG;AAC7B7C,IAAAA,KAAK,EAAE;AAAEF,MAAAA,MAAM,EAAEwC,SAAS;AAAEvC,MAAAA,IAAI,EAAEiB,UAAAA;AAAW,KAAA;GAC9C,CAAA;AAED,EAAA,OAAOE,gBAAgB,CAACC,QAAQ,EAAE0B,QAAQ,EAAEpD,IAAI,CAAC,CAAA;AACnD;;;;;;"} \ No newline at end of file diff --git a/node_modules/@babel/code-frame/package.json b/node_modules/@babel/code-frame/package.json new file mode 100644 index 0000000..d78a947 --- /dev/null +++ b/node_modules/@babel/code-frame/package.json @@ -0,0 +1,32 @@ +{ + "name": "@babel/code-frame", + "version": "7.29.0", + "description": "Generate errors that contain a code frame that point to source locations.", + "author": "The Babel Team (https://babel.dev/team)", + "homepage": "https://babel.dev/docs/en/next/babel-code-frame", + "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-code-frame" + }, + "main": "./lib/index.js", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "devDependencies": { + "charcodes": "^0.2.0", + "import-meta-resolve": "^4.1.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/LICENSE b/node_modules/@babel/helper-validator-identifier/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/helper-validator-identifier/README.md b/node_modules/@babel/helper-validator-identifier/README.md new file mode 100644 index 0000000..05c19e6 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/README.md @@ -0,0 +1,19 @@ +# @babel/helper-validator-identifier + +> Validate identifier/keywords name + +See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/babel-helper-validator-identifier) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/helper-validator-identifier +``` + +or using yarn: + +```sh +yarn add @babel/helper-validator-identifier +``` diff --git a/node_modules/@babel/helper-validator-identifier/lib/identifier.js b/node_modules/@babel/helper-validator-identifier/lib/identifier.js new file mode 100644 index 0000000..b12e6e4 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/identifier.js @@ -0,0 +1,70 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isIdentifierChar = isIdentifierChar; +exports.isIdentifierName = isIdentifierName; +exports.isIdentifierStart = isIdentifierStart; +let nonASCIIidentifierStartChars = "\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-\u088f\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\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\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-\ua7dc\ua7f1-\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"; +let nonASCIIidentifierChars = "\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-\u1add\u1ae0-\u1aeb\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"; +const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489]; +const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; +function isInAstralSet(code, set) { + let pos = 0x10000; + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; + } + return false; +} +function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes); +} +function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); +} +function isIdentifierName(name) { + let isFirst = true; + for (let i = 0; i < name.length; i++) { + let cp = name.charCodeAt(i); + if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) { + const trail = name.charCodeAt(++i); + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } + if (isFirst) { + isFirst = false; + if (!isIdentifierStart(cp)) { + return false; + } + } else if (!isIdentifierChar(cp)) { + return false; + } + } + return !isFirst; +} + +//# sourceMappingURL=identifier.js.map diff --git a/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map b/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map new file mode 100644 index 0000000..71d32ff --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map @@ -0,0 +1 @@ +{"version":3,"names":["nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","RegExp","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","code","set","pos","i","length","isIdentifierStart","test","String","fromCharCode","isIdentifierChar","isIdentifierName","name","isFirst","cp","charCodeAt","trail"],"sources":["../src/identifier.ts"],"sourcesContent":["// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.cjs`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\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-\\u088f\\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\\u0c5c\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdc-\\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-\\ua7dc\\ua7f1-\\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\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\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-\\u1add\\u1ae0-\\u1aeb\\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\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.cjs`.\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = name.charCodeAt(i);\n if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n"],"mappings":";;;;;;;;AAaA,IAAIA,4BAA4B,GAAG,spIAAspI;AAEzrI,IAAIC,uBAAuB,GAAG,4lFAA4lF;AAE1nF,MAAMC,uBAAuB,GAAG,IAAIC,MAAM,CACxC,GAAG,GAAGH,4BAA4B,GAAG,GACvC,CAAC;AACD,MAAMI,kBAAkB,GAAG,IAAID,MAAM,CACnC,GAAG,GAAGH,4BAA4B,GAAGC,uBAAuB,GAAG,GACjE,CAAC;AAEDD,4BAA4B,GAAGC,uBAAuB,GAAG,IAAI;AAQ7D,MAAMI,0BAA0B,GAAG,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,CAAC;AAEjnD,MAAMC,qBAAqB,GAAG,CAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,GAAG,CAAC;AAK52B,SAASC,aAAaA,CAACC,IAAY,EAAEC,GAAsB,EAAW;EACpE,IAAIC,GAAG,GAAG,OAAO;EACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,MAAM,GAAGH,GAAG,CAACG,MAAM,EAAED,CAAC,GAAGC,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;IACvDD,GAAG,IAAID,GAAG,CAACE,CAAC,CAAC;IACb,IAAID,GAAG,GAAGF,IAAI,EAAE,OAAO,KAAK;IAE5BE,GAAG,IAAID,GAAG,CAACE,CAAC,GAAG,CAAC,CAAC;IACjB,IAAID,GAAG,IAAIF,IAAI,EAAE,OAAO,IAAI;EAC9B;EACA,OAAO,KAAK;AACd;AAIO,SAASK,iBAAiBA,CAACL,IAAY,EAAW;EACvD,IAAIA,IAAI,KAAuB,EAAE,OAAOA,IAAI,OAAyB;EACrE,IAAIA,IAAI,MAAwB,EAAE,OAAO,IAAI;EAC7C,IAAIA,IAAI,KAAuB,EAAE,OAAOA,IAAI,OAAyB;EACrE,IAAIA,IAAI,OAAwB,EAAE,OAAO,IAAI;EAC7C,IAAIA,IAAI,IAAI,MAAM,EAAE;IAClB,OACEA,IAAI,IAAI,IAAI,IAAIN,uBAAuB,CAACY,IAAI,CAACC,MAAM,CAACC,YAAY,CAACR,IAAI,CAAC,CAAC;EAE3E;EACA,OAAOD,aAAa,CAACC,IAAI,EAAEH,0BAA0B,CAAC;AACxD;AAIO,SAASY,gBAAgBA,CAACT,IAAY,EAAW;EACtD,IAAIA,IAAI,KAAmB,EAAE,OAAOA,IAAI,OAAyB;EACjE,IAAIA,IAAI,KAAkB,EAAE,OAAO,IAAI;EACvC,IAAIA,IAAI,KAAuB,EAAE,OAAO,KAAK;EAC7C,IAAIA,IAAI,MAAwB,EAAE,OAAO,IAAI;EAC7C,IAAIA,IAAI,KAAuB,EAAE,OAAOA,IAAI,OAAyB;EACrE,IAAIA,IAAI,OAAwB,EAAE,OAAO,IAAI;EAC7C,IAAIA,IAAI,IAAI,MAAM,EAAE;IAClB,OAAOA,IAAI,IAAI,IAAI,IAAIJ,kBAAkB,CAACU,IAAI,CAACC,MAAM,CAACC,YAAY,CAACR,IAAI,CAAC,CAAC;EAC3E;EACA,OACED,aAAa,CAACC,IAAI,EAAEH,0BAA0B,CAAC,IAC/CE,aAAa,CAACC,IAAI,EAAEF,qBAAqB,CAAC;AAE9C;AAIO,SAASY,gBAAgBA,CAACC,IAAY,EAAW;EACtD,IAAIC,OAAO,GAAG,IAAI;EAClB,KAAK,IAAIT,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGQ,IAAI,CAACP,MAAM,EAAED,CAAC,EAAE,EAAE;IAKpC,IAAIU,EAAE,GAAGF,IAAI,CAACG,UAAU,CAACX,CAAC,CAAC;IAC3B,IAAI,CAACU,EAAE,GAAG,MAAM,MAAM,MAAM,IAAIV,CAAC,GAAG,CAAC,GAAGQ,IAAI,CAACP,MAAM,EAAE;MACnD,MAAMW,KAAK,GAAGJ,IAAI,CAACG,UAAU,CAAC,EAAEX,CAAC,CAAC;MAClC,IAAI,CAACY,KAAK,GAAG,MAAM,MAAM,MAAM,EAAE;QAC/BF,EAAE,GAAG,OAAO,IAAI,CAACA,EAAE,GAAG,KAAK,KAAK,EAAE,CAAC,IAAIE,KAAK,GAAG,KAAK,CAAC;MACvD;IACF;IACA,IAAIH,OAAO,EAAE;MACXA,OAAO,GAAG,KAAK;MACf,IAAI,CAACP,iBAAiB,CAACQ,EAAE,CAAC,EAAE;QAC1B,OAAO,KAAK;MACd;IACF,CAAC,MAAM,IAAI,CAACJ,gBAAgB,CAACI,EAAE,CAAC,EAAE;MAChC,OAAO,KAAK;IACd;EACF;EACA,OAAO,CAACD,OAAO;AACjB","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/lib/index.js b/node_modules/@babel/helper-validator-identifier/lib/index.js new file mode 100644 index 0000000..76b2282 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/index.js @@ -0,0 +1,57 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isIdentifierChar", { + enumerable: true, + get: function () { + return _identifier.isIdentifierChar; + } +}); +Object.defineProperty(exports, "isIdentifierName", { + enumerable: true, + get: function () { + return _identifier.isIdentifierName; + } +}); +Object.defineProperty(exports, "isIdentifierStart", { + enumerable: true, + get: function () { + return _identifier.isIdentifierStart; + } +}); +Object.defineProperty(exports, "isKeyword", { + enumerable: true, + get: function () { + return _keyword.isKeyword; + } +}); +Object.defineProperty(exports, "isReservedWord", { + enumerable: true, + get: function () { + return _keyword.isReservedWord; + } +}); +Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictBindOnlyReservedWord; + } +}); +Object.defineProperty(exports, "isStrictBindReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictBindReservedWord; + } +}); +Object.defineProperty(exports, "isStrictReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictReservedWord; + } +}); +var _identifier = require("./identifier.js"); +var _keyword = require("./keyword.js"); + +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/helper-validator-identifier/lib/index.js.map b/node_modules/@babel/helper-validator-identifier/lib/index.js.map new file mode 100644 index 0000000..d985f3b --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_identifier","require","_keyword"],"sources":["../src/index.ts"],"sourcesContent":["export {\n isIdentifierName,\n isIdentifierChar,\n isIdentifierStart,\n} from \"./identifier.ts\";\nexport {\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"./keyword.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/lib/keyword.js b/node_modules/@babel/helper-validator-identifier/lib/keyword.js new file mode 100644 index 0000000..054cf84 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/keyword.js @@ -0,0 +1,35 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isKeyword = isKeyword; +exports.isReservedWord = isReservedWord; +exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; +exports.isStrictBindReservedWord = isStrictBindReservedWord; +exports.isStrictReservedWord = isStrictReservedWord; +const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] +}; +const keywords = new Set(reservedWords.keyword); +const reservedWordsStrictSet = new Set(reservedWords.strict); +const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); +function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; +} +function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +} +function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); +} +function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +} +function isKeyword(word) { + return keywords.has(word); +} + +//# sourceMappingURL=keyword.js.map diff --git a/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map b/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map new file mode 100644 index 0000000..3471f78 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map @@ -0,0 +1 @@ +{"version":3,"names":["reservedWords","keyword","strict","strictBind","keywords","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","has","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword"],"sources":["../src/keyword.ts"],"sourcesContent":["const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,aAAa,GAAG;EACpBC,OAAO,EAAE,CACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,CACT;EACDC,MAAM,EAAE,CACN,YAAY,EACZ,WAAW,EACX,KAAK,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,CACR;EACDC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW;AAClC,CAAC;AACD,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAACL,aAAa,CAACC,OAAO,CAAC;AAC/C,MAAMK,sBAAsB,GAAG,IAAID,GAAG,CAACL,aAAa,CAACE,MAAM,CAAC;AAC5D,MAAMK,0BAA0B,GAAG,IAAIF,GAAG,CAACL,aAAa,CAACG,UAAU,CAAC;AAK7D,SAASK,cAAcA,CAACC,IAAY,EAAEC,QAAiB,EAAW;EACvE,OAAQA,QAAQ,IAAID,IAAI,KAAK,OAAO,IAAKA,IAAI,KAAK,MAAM;AAC1D;AAOO,SAASE,oBAAoBA,CAACF,IAAY,EAAEC,QAAiB,EAAW;EAC7E,OAAOF,cAAc,CAACC,IAAI,EAAEC,QAAQ,CAAC,IAAIJ,sBAAsB,CAACM,GAAG,CAACH,IAAI,CAAC;AAC3E;AAMO,SAASI,4BAA4BA,CAACJ,IAAY,EAAW;EAClE,OAAOF,0BAA0B,CAACK,GAAG,CAACH,IAAI,CAAC;AAC7C;AAOO,SAASK,wBAAwBA,CACtCL,IAAY,EACZC,QAAiB,EACR;EACT,OACEC,oBAAoB,CAACF,IAAI,EAAEC,QAAQ,CAAC,IAAIG,4BAA4B,CAACJ,IAAI,CAAC;AAE9E;AAEO,SAASM,SAASA,CAACN,IAAY,EAAW;EAC/C,OAAOL,QAAQ,CAACQ,GAAG,CAACH,IAAI,CAAC;AAC3B","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/package.json b/node_modules/@babel/helper-validator-identifier/package.json new file mode 100644 index 0000000..1aea38d --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/package.json @@ -0,0 +1,31 @@ +{ + "name": "@babel/helper-validator-identifier", + "version": "7.28.5", + "description": "Validate identifier/keywords name", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-helper-validator-identifier" + }, + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "main": "./lib/index.js", + "exports": { + ".": { + "types": "./lib/index.d.ts", + "default": "./lib/index.js" + }, + "./package.json": "./package.json" + }, + "devDependencies": { + "@unicode/unicode-17.0.0": "^1.6.10", + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "author": "The Babel Team (https://babel.dev/team)", + "type": "commonjs" +} \ No newline at end of file diff --git a/node_modules/@cacheable/memory/LICENSE b/node_modules/@cacheable/memory/LICENSE new file mode 100644 index 0000000..9d6198a --- /dev/null +++ b/node_modules/@cacheable/memory/LICENSE @@ -0,0 +1,19 @@ +MIT License & © Jared Wray + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@cacheable/memory/README.md b/node_modules/@cacheable/memory/README.md new file mode 100644 index 0000000..8a65257 --- /dev/null +++ b/node_modules/@cacheable/memory/README.md @@ -0,0 +1,340 @@ +[Cacheable](https://github.com/jaredwray/cacheable) + +> High Performance Layer 1 / Layer 2 Caching with Keyv Storage + +[![codecov](https://codecov.io/gh/jaredwray/cacheable/branch/main/graph/badge.svg?token=lWZ9OBQ7GM)](https://codecov.io/gh/jaredwray/cacheable) +[![tests](https://github.com/jaredwray/cacheable/actions/workflows/tests.yml/badge.svg)](https://github.com/jaredwray/cacheable/actions/workflows/tests.yml) +[![npm](https://img.shields.io/npm/dm/@cacheable/memory.svg)](https://www.npmjs.com/package/@cacheable/memory) +[![npm](https://img.shields.io/npm/v/@cacheable/memory.svg)](https://www.npmjs.com/package/@cacheable/memory) +[![license](https://img.shields.io/github/license/jaredwray/cacheable)](https://github.com/jaredwray/cacheable/blob/main/LICENSE) + +You can use `CacheableMemory` as a standalone cache or as a primary store for `cacheable`. You can also set the `useClones` property to `false` if you want to use the same reference for the values. This is useful if you are using large objects and want to save memory. The `lruSize` property is the size of the LRU cache and is set to `0` by default which is unlimited. When setting the `lruSize` property it will limit the number of keys in the cache. + +This simple in-memory cache uses multiple Map objects and a with `expiration` and `lru` policies if set to manage the in memory cache at scale. + +By default we use lazy expiration deletion which means on `get` and `getMany` type functions we look if it is expired and then delete it. If you want to have a more aggressive expiration policy you can set the `checkInterval` property to a value greater than `0` which will check for expired keys at the interval you set. + +Here are some of the main features of `CacheableMemory`: +* High performance in-memory cache with a robust API and feature set. 🚀 +* Can scale past the `16,777,216 (2^24) keys` limit of a single `Map` via `hashStoreSize`. Default is `16` Map objects. +* LRU (Least Recently Used) cache feature to limit the number of keys in the cache via `lruSize`. Limit to `16,777,216 (2^24) keys` total. +* Expiration policy to delete expired keys with lazy deletion or aggressive deletion via `checkInterval`. +* `Wrap` feature to memoize `sync` and `async` functions with stampede protection. +* Ability to do many operations at once such as `setMany`, `getMany`, `deleteMany`, and `takeMany`. +* Supports `raw` data retrieval with `getRaw` and `getManyRaw` methods to get the full metadata of the cache entry. + +# Table of Contents +* [Getting Started](#getting-started) +* [CacheableMemory - In-Memory Cache](#cacheablememory---in-memory-cache) +* [CacheableMemory Store Hashing](#cacheablememory-store-hashing) +* [CacheableMemory LRU Feature](#cacheablememory-lru-feature) +* [CacheableMemory Performance](#cacheablememory-performance) +* [CacheableMemory Options](#cacheablememory-options) +* [CacheableMemory - API](#cacheablememory---api) +* [Keyv Storage Adapter - KeyvCacheableMemory](#keyv-storage-adapter---keyvcacheablememory) +* [Wrap / Memoization for Sync and Async Functions](#wrap--memoization-for-sync-and-async-functions) +* [Get Or Set Memoization Function](#get-or-set-memoization-function) +* [How to Contribute](#how-to-contribute) +* [License and Copyright](#license-and-copyright) + +# Getting Started + +```bash +npm install @cacheable/memory +``` + +# Basic Usage + +```javascript +import { CacheableMemory } from '@cacheable/memory'; + +const cacheable = new CacheableMemory(); +await cacheable.set('key', 'value', 1000); +const value = await cacheable.get('key'); +``` + +In this example, the primary store we will use `lru-cache` and the secondary store is Redis. You can also set multiple stores in the options: + +```javascript +import { CacheableMemory } from '@cacheable/memory'; + +// we set the storeHashSize to 1 so that we only use a single Map object as the lru is limited to a single Map size +const cache = new CacheableMemory({storeHashSize: 1, lruSize: 80000}); + +cache.set('key1', 'value1'); +const result = cache.get('key1'); +console.log(result); // 'value1' +``` + +This is a more advanced example and not needed for most use cases. + +# Shorthand for Time to Live (ttl) + +By default `Cacheable` and `CacheableMemory` the `ttl` is in milliseconds but you can use shorthand for the time to live. Here are the following shorthand values: + +* `ms`: Milliseconds such as (1ms = 1) +* `s`: Seconds such as (1s = 1000) +* `m`: Minutes such as (1m = 60000) +* `h` or `hr`: Hours such as (1h = 3600000) +* `d`: Days such as (1d = 86400000) + +Here is an example of how to use the shorthand for the `ttl`: + +```javascript +import { CacheableMemory } from 'cacheable'; +const cache = new CacheableMemory({ ttl: '15m' }); //sets the default ttl to 15 minutes (900000 ms) +cache.set('key', 'value', '1h'); //sets the ttl to 1 hour (3600000 ms) and overrides the default +``` + +if you want to disable the `ttl` you can set it to `0` or `undefined`: + +```javascript +import { CacheableMemory } from 'cacheable'; +const cache = new CacheableMemory({ ttl: 0 }); //sets the default ttl to 0 which is disabled +cache.set('key', 'value', 0); //sets the ttl to 0 which is disabled +``` + +If you set the ttl to anything below `0` or `undefined` it will disable the ttl for the cache and the value that returns will be `undefined`. With no ttl set the value will be stored `indefinitely`. + +```javascript +import { CacheableMemory } from 'cacheable'; +const cache = new CacheableMemory({ ttl: 0 }); //sets the default ttl to 0 which is disabled +console.log(cache.ttl); // undefined +cache.ttl = '1h'; // sets the default ttl to 1 hour (3600000 ms) +console.log(cache.ttl); // '1h' +cache.ttl = -1; // sets the default ttl to 0 which is disabled +console.log(cache.ttl); // undefined +``` + +## Retrieving raw cache entries + +The `getRaw` and `getManyRaw` methods return the full stored metadata (`StoredDataRaw`) instead of just the value: + +```typescript +import { CacheableMemory } from 'cacheable'; + +const cache = new CacheableMemory(); + +// store a value +await cache.set('user:1', { name: 'Alice' }, '1h'); // 1 hour + +// default: only the value +const user = await cache.get<{ name: string }>('user:1'); +console.log(user); // { name: 'Alice' } + +// with raw: full record including expiration +const raw = await cache.getRaw('user:1'); +console.log(raw.value); // { name: 'Alice' } +console.log(raw.expires); // e.g. 1677628495000 or null +``` + +## CacheableMemory Store Hashing + +`CacheableMemory` uses `Map` objects to store the keys and values. To make this scale past the `16,777,216 (2^24) keys` limit of a single `Map` we use a hash to balance the data across multiple `Map` objects. This is done by hashing the key and using the hash to determine which `Map` object to use. The default hashing algorithm is `djb2` but you can change it by setting the `storeHashAlgorithm` property in the options. Supported algorithms include DJB2, FNV1, MURMER, and CRC32. By default we set the amount of `Map` objects to `16`. + +NOTE: if you are using the LRU cache feature the `lruSize` no matter how many `Map` objects you have it will be limited to the `16,777,216 (2^24) keys` limit of a single `Map` object. This is because we use a double linked list to manage the LRU cache and it is not possible to have more than `16,777,216 (2^24) keys` in a single `Map` object. + +Here is an example of how to set the number of `Map` objects and the hashing algorithm: + +```javascript +import { CacheableMemory } from '@cacheable/memory'; +const cache = new CacheableMemory({ + storeSize: 32, // set the number of Map objects to 32 +}); +cache.set('key', 'value'); +const value = cache.get('key'); // value +``` + +Here is an example of how to use the `storeHashAlgorithm` property with supported algorithms: + +```javascript +import { CacheableMemory, HashAlgorithm } from '@cacheable/memory'; + +// Using DJB2 (default) +const cache = new CacheableMemory({ storeHashAlgorithm: HashAlgorithm.DJB2 }); + +// Or other non-cryptographic algorithms for better performance +const cache2 = new CacheableMemory({ storeHashAlgorithm: HashAlgorithm.FNV1 }); +const cache3 = new CacheableMemory({ storeHashAlgorithm: HashAlgorithm.MURMER }); +const cache4 = new CacheableMemory({ storeHashAlgorithm: HashAlgorithm.CRC32 }); + +cache.set('key', 'value'); +const value = cache.get('key'); // value +``` + +**Available algorithms:** DJB2 (default), FNV1, MURMER, CRC32. Note: Cryptographic algorithms (SHA-256, SHA-384, SHA-512) are not recommended for store hashing due to performance overhead. + +If you want to provide your own hashing function you can set the `storeHashAlgorithm` property to a function that takes an object and returns a `number` that is in the range of the amount of `Map` stores you have. + +```javascript +import { CacheableMemory } from 'cacheable'; +/** + * Custom hash function that takes a key and the size of the store + * and returns a number between 0 and storeHashSize - 1. + * @param {string} key - The key to hash. + * @param {number} storeHashSize - The size of the store (number of Map objects). + * @returns {number} - A number between 0 and storeHashSize - 1. + */ +const customHash = (key, storeHashSize) => { + // custom hashing logic + return key.length % storeHashSize; // returns a number between 0 and 31 for 32 Map objects +}; +const cache = new CacheableMemory({ storeHashAlgorithm: customHash, storeSize: 32 }); +cache.set('key', 'value'); +const value = cache.get('key'); // value +``` + +## CacheableMemory LRU Feature + +You can enable the LRU (Least Recently Used) feature in `CacheableMemory` by setting the `lruSize` property in the options. This will limit the number of keys in the cache to the size you set. When the cache reaches the limit it will remove the least recently used keys from the cache. This is useful if you want to limit the memory usage of the cache. + +When you set the `lruSize` we use a double linked list to manage the LRU cache and also set the `hashStoreSize` to `1` which means we will only use a single `Map` object for the LRU cache. This is because the LRU cache is managed by the double linked list and it is not possible to have more than `16,777,216 (2^24) keys` in a single `Map` object. + +```javascript +import { CacheableMemory } from 'cacheable'; +const cache = new CacheableMemory({ lruSize: 1 }); // sets the LRU cache size to 1000 keys and hashStoreSize to 1 +cache.set('key1', 'value1'); +cache.set('key2', 'value2'); +const value1 = cache.get('key1'); +console.log(value1); // undefined if the cache is full and key1 is the least recently used +const value2 = cache.get('key2'); +console.log(value2); // value2 if key2 is still in the cache +console.log(cache.size()); // 1 +``` + +NOTE: if you set the `lruSize` property to `0` after it was enabled it will disable the LRU cache feature and will not limit the number of keys in the cache. This will remove the `16,777,216 (2^24) keys` limit of a single `Map` object and will allow you to store more keys in the cache. + +## CacheableMemory Performance + +Our goal with `cacheable` and `CacheableMemory` is to provide a high performance caching engine that is simple to use and has a robust API. We test it against other cacheing engines such that are less feature rich to make sure there is little difference. Here are some of the benchmarks we have run: + +*Memory Benchmark Results:* +| name | summary | ops/sec | time/op | margin | samples | +|------------------------------------------|:---------:|----------:|----------:|:--------:|----------:| +| Cacheable Memory (v1.10.0) - set / get | 🥇 | 152K | 7µs | ±0.94% | 147K | +| Map (v22) - set / get | -1.1% | 151K | 7µs | ±0.69% | 145K | +| Node Cache - set / get | -4.3% | 146K | 7µs | ±1.13% | 142K | +| bentocache (v1.4.0) - set / get | -20% | 121K | 8µs | ±0.40% | 119K | + +*Memory LRU Benchmark Results:* +| name | summary | ops/sec | time/op | margin | samples | +|------------------------------------------|:---------:|----------:|----------:|:--------:|----------:| +| quick-lru (v7.0.1) - set / get | 🥇 | 118K | 9µs | ±0.85% | 112K | +| Map (v22) - set / get | -0.56% | 117K | 9µs | ±1.35% | 110K | +| lru.min (v1.1.2) - set / get | -1.7% | 116K | 9µs | ±0.90% | 110K | +| Cacheable Memory (v1.10.0) - set / get | -3.3% | 114K | 9µs | ±1.16% | 108K | + +As you can see from the benchmarks `CacheableMemory` is on par with other caching engines such as `Map`, `Node Cache`, and `bentocache`. We have also tested it against other LRU caching engines such as `quick-lru` and `lru.min` and it performs well against them too. + +## CacheableMemory Options + +* `ttl`: The time to live for the cache in milliseconds. Default is `undefined` which is means indefinitely. +* `useClones`: If the cache should use clones for the values. Default is `true`. +* `lruSize`: The size of the LRU cache. Default is `0` which is unlimited. +* `checkInterval`: The interval to check for expired keys in milliseconds. Default is `0` which is disabled. +* `storeHashSize`: The number of `Map` objects to use for the cache. Default is `16`. +* `storeHashAlgorithm`: The hashing algorithm to use for the cache. Default is `djb2`. Supported: DJB2, FNV1, MURMER, CRC32. + +## CacheableMemory - API + +* `set(key, value, ttl?)`: Sets a value in the cache. +* `setMany([{key, value, ttl?}])`: Sets multiple values in the cache from `CacheableItem`. +* `get(key)`: Gets a value from the cache. +* `getMany([keys])`: Gets multiple values from the cache. +* `getRaw(key)`: Gets a value from the cache as `CacheableStoreItem`. +* `getManyRaw([keys])`: Gets multiple values from the cache as `CacheableStoreItem`. +* `has(key)`: Checks if a value exists in the cache. +* `hasMany([keys])`: Checks if multiple values exist in the cache. +* `delete(key)`: Deletes a value from the cache. +* `deleteMany([keys])`: Deletes multiple values from the cache. +* `take(key)`: Takes a value from the cache and deletes it. +* `takeMany([keys])`: Takes multiple values from the cache and deletes them. +* `wrap(function, WrapSyncOptions)`: Wraps a `sync` function in a cache. +* `clear()`: Clears the cache. +* `ttl`: The default time to live for the cache in milliseconds. Default is `undefined` which is disabled. +* `useClones`: If the cache should use clones for the values. Default is `true`. +* `lruSize`: The size of the LRU cache. Default is `0` which is unlimited. +* `size`: The number of keys in the cache. +* `checkInterval`: The interval to check for expired keys in milliseconds. Default is `0` which is disabled. +* `storeHashSize`: The number of `Map` objects to use for the cache. Default is `16`. +* `storeHashAlgorithm`: The hashing algorithm to use for the cache. Default is `djb2`. Supported: DJB2, FNV1, MURMER, CRC32. +* `keys`: Get the keys in the cache. Not able to be set. +* `items`: Get the items in the cache as `CacheableStoreItem` example `{ key, value, expires? }`. +* `store`: The hash store for the cache which is an array of `Map` objects. +* `checkExpired()`: Checks for expired keys in the cache. This is used by the `checkInterval` property. +* `startIntervalCheck()`: Starts the interval check for expired keys if `checkInterval` is above 0 ms. +* `stopIntervalCheck()`: Stops the interval check for expired keys. + +# Keyv Storage Adapter - KeyvCacheableMemory + +`cacheable` comes with a built-in storage adapter for Keyv called `KeyvCacheableMemory`. This takes `CacheableMemory` and creates a storage adapter for Keyv. This is useful if you want to use `CacheableMemory` as a storage adapter for Keyv. Here is an example of how to use `KeyvCacheableMemory`: + +```javascript +import { Keyv } from 'keyv'; +import { KeyvCacheableMemory } from 'cacheable'; + +const keyv = new Keyv({ store: new KeyvCacheableMemory() }); +await keyv.set('foo', 'bar'); +const value = await keyv.get('foo'); +console.log(value); // bar +``` + +# Wrap / Memoization for Sync and Async Functions + +`CacheableMemory` has a feature called `wrap` that allows you to wrap a function in a cache. This is useful for memoization and caching the results of a function. You can wrap a `sync` function in a cache. Here is an example of how to use the `wrap` function: + +```javascript +import { CacheableMemory } from 'cacheable'; +const syncFunction = (value: number) => { + return value * 2; +}; + +const cache = new CacheableMemory(); +const wrappedFunction = cache.wrap(syncFunction, { ttl: '1h', key: 'syncFunction' }); +console.log(wrappedFunction(2)); // 4 +console.log(wrappedFunction(2)); // 4 from cache +``` + +In this example we are wrapping a `sync` function in a cache with a `ttl` of `1 hour`. This will cache the result of the function for `1 hour` and then expire the value. You can also set the `key` property in the `wrap()` options to set a custom key for the cache. + +When an error occurs in the function it will not cache the value and will return the error. This is useful if you want to cache the results of a function but not cache the error. If you want it to cache the error you can set the `cacheError` property to `true` in the `wrap()` options. This is disabled by default. + +```javascript +import { CacheableMemory } from 'cacheable'; +const syncFunction = (value: number) => { + throw new Error('error'); +}; + +const cache = new CacheableMemory(); +const wrappedFunction = cache.wrap(syncFunction, { ttl: '1h', key: 'syncFunction', cacheError: true }); +console.log(wrappedFunction()); // error +console.log(wrappedFunction()); // error from cache +``` + +If you would like to generate your own key for the wrapped function you can set the `createKey` property in the `wrap()` options. This is useful if you want to generate a key based on the arguments of the function or any other criteria. + +```javascript + const cache = new CacheableMemory(); + const options: WrapOptions = { + cache, + keyPrefix: 'test', + createKey: (function_, arguments_, options: WrapOptions) => `customKey:${options?.keyPrefix}:${arguments_[0]}`, + }; + + const wrapped = wrap((argument: string) => `Result for ${argument}`, options); + + const result1 = wrapped('arg1'); + const result2 = wrapped('arg1'); // Should hit the cache + + console.log(result1); // Result for arg1 + console.log(result2); // Result for arg1 (from cache) +``` + +We will pass in the `function` that is being wrapped, the `arguments` passed to the function, and the `options` used to wrap the function. You can then use these to generate a custom key for the cache. + +# How to Contribute + +You can contribute by forking the repo and submitting a pull request. Please make sure to add tests and update the documentation. To learn more about how to contribute go to our main README [https://github.com/jaredwray/cacheable](https://github.com/jaredwray/cacheable). This will talk about how to `Open a Pull Request`, `Ask a Question`, or `Post an Issue`. + +# License and Copyright +[MIT © Jared Wray](./LICENSE) diff --git a/node_modules/@cacheable/memory/dist/index.cjs b/node_modules/@cacheable/memory/dist/index.cjs new file mode 100644 index 0000000..78c3e0a --- /dev/null +++ b/node_modules/@cacheable/memory/dist/index.cjs @@ -0,0 +1,830 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var index_exports = {}; +__export(index_exports, { + CacheableMemory: () => CacheableMemory, + HashAlgorithm: () => import_utils2.HashAlgorithm, + KeyvCacheableMemory: () => KeyvCacheableMemory, + createKeyv: () => createKeyv, + defaultStoreHashSize: () => defaultStoreHashSize, + hash: () => import_utils2.hash, + hashToNumber: () => import_utils2.hashToNumber, + maximumMapSize: () => maximumMapSize +}); +module.exports = __toCommonJS(index_exports); +var import_utils = require("@cacheable/utils"); +var import_hookified = require("hookified"); + +// src/memory-lru.ts +var ListNode = class { + value; + prev = void 0; + next = void 0; + constructor(value) { + this.value = value; + } +}; +var DoublyLinkedList = class { + head = void 0; + tail = void 0; + nodesMap = /* @__PURE__ */ new Map(); + // Add a new node to the front (most recently used) + addToFront(value) { + const newNode = new ListNode(value); + if (this.head) { + newNode.next = this.head; + this.head.prev = newNode; + this.head = newNode; + } else { + this.head = this.tail = newNode; + } + this.nodesMap.set(value, newNode); + } + // Move an existing node to the front (most recently used) + moveToFront(value) { + const node = this.nodesMap.get(value); + if (!node || this.head === node) { + return; + } + if (node.prev) { + node.prev.next = node.next; + } + if (node.next) { + node.next.prev = node.prev; + } + if (node === this.tail) { + this.tail = node.prev; + } + node.prev = void 0; + node.next = this.head; + if (this.head) { + this.head.prev = node; + } + this.head = node; + this.tail ??= node; + } + // Get the oldest node (tail) + getOldest() { + return this.tail ? this.tail.value : void 0; + } + // Remove the oldest node (tail) + removeOldest() { + if (!this.tail) { + return void 0; + } + const oldValue = this.tail.value; + if (this.tail.prev) { + this.tail = this.tail.prev; + this.tail.next = void 0; + } else { + this.head = this.tail = void 0; + } + this.nodesMap.delete(oldValue); + return oldValue; + } + // Remove a specific node by value + remove(value) { + const node = this.nodesMap.get(value); + if (!node) { + return false; + } + if (node.prev) { + node.prev.next = node.next; + } else { + this.head = node.next; + if (this.head) { + this.head.prev = void 0; + } + } + if (node.next) { + node.next.prev = node.prev; + } else { + this.tail = node.prev; + if (this.tail) { + this.tail.next = void 0; + } + } + this.nodesMap.delete(value); + return true; + } + get size() { + return this.nodesMap.size; + } +}; + +// src/index.ts +var import_utils2 = require("@cacheable/utils"); + +// src/keyv-memory.ts +var import_keyv = require("keyv"); +var KeyvCacheableMemory = class { + opts = { + ttl: 0, + useClone: true, + lruSize: 0, + checkInterval: 0 + }; + _defaultCache = new CacheableMemory(); + _nCache = /* @__PURE__ */ new Map(); + _namespace; + constructor(options) { + if (options) { + this.opts = options; + this._defaultCache = new CacheableMemory(options); + if (options.namespace) { + this._namespace = options.namespace; + this._nCache.set(this._namespace, new CacheableMemory(options)); + } + } + } + get namespace() { + return this._namespace; + } + set namespace(value) { + this._namespace = value; + } + get store() { + return this.getStore(this._namespace); + } + async get(key) { + const result = this.getStore(this._namespace).get(key); + if (result) { + return result; + } + return void 0; + } + async getMany(keys) { + const result = this.getStore(this._namespace).getMany(keys); + return result; + } + // biome-ignore lint/suspicious/noExplicitAny: type format + async set(key, value, ttl) { + this.getStore(this._namespace).set(key, value, ttl); + } + async setMany(values) { + this.getStore(this._namespace).setMany(values); + } + async delete(key) { + this.getStore(this._namespace).delete(key); + return true; + } + async deleteMany(key) { + this.getStore(this._namespace).deleteMany(key); + return true; + } + async clear() { + this.getStore(this._namespace).clear(); + } + async has(key) { + return this.getStore(this._namespace).has(key); + } + // biome-ignore lint/suspicious/noExplicitAny: type format + on(event, listener) { + this.getStore(this._namespace).on(event, listener); + return this; + } + getStore(namespace) { + if (!namespace) { + return this._defaultCache; + } + if (!this._nCache.has(namespace)) { + this._nCache.set(namespace, new CacheableMemory(this.opts)); + } + return this._nCache.get(namespace); + } +}; +function createKeyv(options) { + const store = new KeyvCacheableMemory(options); + const namespace = options?.namespace; + let ttl; + if (options?.ttl && Number.isInteger(options.ttl)) { + ttl = options?.ttl; + } + const keyv = new import_keyv.Keyv({ store, namespace, ttl }); + keyv.serialize = void 0; + keyv.deserialize = void 0; + return keyv; +} + +// src/index.ts +var defaultStoreHashSize = 16; +var maximumMapSize = 16777216; +var CacheableMemory = class extends import_hookified.Hookified { + _lru = new DoublyLinkedList(); + _storeHashSize = defaultStoreHashSize; + _storeHashAlgorithm = import_utils.HashAlgorithm.DJB2; + // Default is djb2Hash + _store = Array.from( + { length: this._storeHashSize }, + () => /* @__PURE__ */ new Map() + ); + _ttl; + // Turned off by default + _useClone = true; + // Turned on by default + _lruSize = 0; + // Turned off by default + _checkInterval = 0; + // Turned off by default + _interval = 0; + // Turned off by default + /** + * @constructor + * @param {CacheableMemoryOptions} [options] - The options for the CacheableMemory + */ + constructor(options) { + super(); + if (options?.ttl) { + this.setTtl(options.ttl); + } + if (options?.useClone !== void 0) { + this._useClone = options.useClone; + } + if (options?.storeHashSize && options.storeHashSize > 0) { + this._storeHashSize = options.storeHashSize; + } + if (options?.lruSize) { + if (options.lruSize > maximumMapSize) { + this.emit( + "error", + new Error( + `LRU size cannot be larger than ${maximumMapSize} due to Map limitations.` + ) + ); + } else { + this._lruSize = options.lruSize; + } + } + if (options?.checkInterval) { + this._checkInterval = options.checkInterval; + } + if (options?.storeHashAlgorithm) { + this._storeHashAlgorithm = options.storeHashAlgorithm; + } + this._store = Array.from( + { length: this._storeHashSize }, + () => /* @__PURE__ */ new Map() + ); + this.startIntervalCheck(); + } + /** + * Gets the time-to-live + * @returns {number|string|undefined} - The time-to-live in miliseconds or a human-readable format. If undefined, it will not have a time-to-live. + */ + get ttl() { + return this._ttl; + } + /** + * Sets the time-to-live + * @param {number|string|undefined} value - The time-to-live in miliseconds or a human-readable format (example '1s' = 1 second, '1h' = 1 hour). If undefined, it will not have a time-to-live. + */ + set ttl(value) { + this.setTtl(value); + } + /** + * Gets whether to use clone + * @returns {boolean} - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. + */ + get useClone() { + return this._useClone; + } + /** + * Sets whether to use clone + * @param {boolean} value - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. + */ + set useClone(value) { + this._useClone = value; + } + /** + * Gets the size of the LRU cache + * @returns {number} - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. If you are using LRU then the limit is based on Map() size 17mm. + */ + get lruSize() { + return this._lruSize; + } + /** + * Sets the size of the LRU cache + * @param {number} value - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. If you are using LRU then the limit is based on Map() size 17mm. + */ + set lruSize(value) { + if (value > maximumMapSize) { + this.emit( + "error", + new Error( + `LRU size cannot be larger than ${maximumMapSize} due to Map limitations.` + ) + ); + return; + } + this._lruSize = value; + if (this._lruSize === 0) { + this._lru = new DoublyLinkedList(); + return; + } + this.lruResize(); + } + /** + * Gets the check interval + * @returns {number} - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. + */ + get checkInterval() { + return this._checkInterval; + } + /** + * Sets the check interval + * @param {number} value - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. + */ + set checkInterval(value) { + this._checkInterval = value; + } + /** + * Gets the size of the cache + * @returns {number} - The size of the cache + */ + get size() { + let size = 0; + for (const store of this._store) { + size += store.size; + } + return size; + } + /** + * Gets the number of hash stores + * @returns {number} - The number of hash stores + */ + get storeHashSize() { + return this._storeHashSize; + } + /** + * Sets the number of hash stores. This will recreate the store and all data will be cleared + * @param {number} value - The number of hash stores + */ + set storeHashSize(value) { + if (value === this._storeHashSize) { + return; + } + this._storeHashSize = value; + this._store = Array.from( + { length: this._storeHashSize }, + () => /* @__PURE__ */ new Map() + ); + } + /** + * Gets the store hash algorithm + * @returns {HashAlgorithm | StoreHashAlgorithmFunction} - The store hash algorithm + */ + get storeHashAlgorithm() { + return this._storeHashAlgorithm; + } + /** + * Sets the store hash algorithm. This will recreate the store and all data will be cleared + * @param {HashAlgorithm | HashAlgorithmFunction} value - The store hash algorithm + */ + set storeHashAlgorithm(value) { + this._storeHashAlgorithm = value; + } + /** + * Gets the keys + * @returns {IterableIterator} - The keys + */ + get keys() { + const keys = []; + for (const store of this._store) { + for (const key of store.keys()) { + const item = store.get(key); + if (item && this.hasExpired(item)) { + store.delete(key); + this.lruRemove(key); + continue; + } + keys.push(key); + } + } + return keys.values(); + } + /** + * Gets the items + * @returns {IterableIterator} - The items + */ + get items() { + const items = []; + for (const store of this._store) { + for (const item of store.values()) { + if (this.hasExpired(item)) { + store.delete(item.key); + this.lruRemove(item.key); + continue; + } + items.push(item); + } + } + return items.values(); + } + /** + * Gets the store + * @returns {Array>} - The store + */ + get store() { + return this._store; + } + /** + * Gets the value of the key + * @param {string} key - The key to get the value + * @returns {T | undefined} - The value of the key + */ + get(key) { + const store = this.getStore(key); + const item = store.get(key); + if (!item) { + return void 0; + } + if (item.expires && Date.now() > item.expires) { + store.delete(key); + this.lruRemove(key); + return void 0; + } + this.lruMoveToFront(key); + if (!this._useClone) { + return item.value; + } + return this.clone(item.value); + } + /** + * Gets the values of the keys + * @param {string[]} keys - The keys to get the values + * @returns {T[]} - The values of the keys + */ + getMany(keys) { + const result = []; + for (const key of keys) { + result.push(this.get(key)); + } + return result; + } + /** + * Gets the raw value of the key + * @param {string} key - The key to get the value + * @returns {CacheableStoreItem | undefined} - The raw value of the key + */ + getRaw(key) { + const store = this.getStore(key); + const item = store.get(key); + if (!item) { + return void 0; + } + if (item.expires && item.expires && Date.now() > item.expires) { + store.delete(key); + this.lruRemove(key); + return void 0; + } + this.lruMoveToFront(key); + return item; + } + /** + * Gets the raw values of the keys + * @param {string[]} keys - The keys to get the values + * @returns {CacheableStoreItem[]} - The raw values of the keys + */ + getManyRaw(keys) { + const result = []; + for (const key of keys) { + result.push(this.getRaw(key)); + } + return result; + } + /** + * Sets the value of the key + * @param {string} key - The key to set the value + * @param {any} value - The value to set + * @param {number|string|SetOptions} [ttl] - Time to Live - If you set a number it is miliseconds, if you set a string it is a human-readable. + * If you want to set expire directly you can do that by setting the expire property in the SetOptions. + * If you set undefined, it will use the default time-to-live. If both are undefined then it will not have a time-to-live. + * @returns {void} + */ + set(key, value, ttl) { + const store = this.getStore(key); + let expires; + if (ttl !== void 0 || this._ttl !== void 0) { + if (typeof ttl === "object") { + if (ttl.expire) { + expires = typeof ttl.expire === "number" ? ttl.expire : ttl.expire.getTime(); + } + if (ttl.ttl) { + const finalTtl = (0, import_utils.shorthandToTime)(ttl.ttl); + if (finalTtl !== void 0) { + expires = finalTtl; + } + } + } else { + const finalTtl = (0, import_utils.shorthandToTime)(ttl ?? this._ttl); + if (finalTtl !== void 0) { + expires = finalTtl; + } + } + } + if (this._lruSize > 0) { + if (store.has(key)) { + this.lruMoveToFront(key); + } else { + this.lruAddToFront(key); + if (this._lru.size > this._lruSize) { + const oldestKey = this._lru.getOldest(); + if (oldestKey) { + this._lru.removeOldest(); + this.delete(oldestKey); + } + } + } + } + const item = { key, value, expires }; + store.set(key, item); + } + /** + * Sets the values of the keys + * @param {CacheableItem[]} items - The items to set + * @returns {void} + */ + setMany(items) { + for (const item of items) { + this.set(item.key, item.value, item.ttl); + } + } + /** + * Checks if the key exists + * @param {string} key - The key to check + * @returns {boolean} - If true, the key exists. If false, the key does not exist. + */ + has(key) { + const item = this.get(key); + return Boolean(item); + } + /** + * @function hasMany + * @param {string[]} keys - The keys to check + * @returns {boolean[]} - If true, the key exists. If false, the key does not exist. + */ + hasMany(keys) { + const result = []; + for (const key of keys) { + const item = this.get(key); + result.push(Boolean(item)); + } + return result; + } + /** + * Take will get the key and delete the entry from cache + * @param {string} key - The key to take + * @returns {T | undefined} - The value of the key + */ + take(key) { + const item = this.get(key); + if (!item) { + return void 0; + } + this.delete(key); + return item; + } + /** + * TakeMany will get the keys and delete the entries from cache + * @param {string[]} keys - The keys to take + * @returns {T[]} - The values of the keys + */ + takeMany(keys) { + const result = []; + for (const key of keys) { + result.push(this.take(key)); + } + return result; + } + /** + * Delete the key + * @param {string} key - The key to delete + * @returns {void} + */ + delete(key) { + const store = this.getStore(key); + store.delete(key); + this.lruRemove(key); + } + /** + * Delete the keys + * @param {string[]} keys - The keys to delete + * @returns {void} + */ + deleteMany(keys) { + for (const key of keys) { + this.delete(key); + } + } + /** + * Clear the cache + * @returns {void} + */ + clear() { + this._store = Array.from( + { length: this._storeHashSize }, + () => /* @__PURE__ */ new Map() + ); + this._lru = new DoublyLinkedList(); + } + /** + * Get the store based on the key (internal use) + * @param {string} key - The key to get the store + * @returns {CacheableHashStore} - The store + */ + getStore(key) { + const hash2 = this.getKeyStoreHash(key); + this._store[hash2] ||= /* @__PURE__ */ new Map(); + return this._store[hash2]; + } + /** + * Hash the key for which store to go to (internal use) + * @param {string} key - The key to hash + * Available algorithms are: SHA256, SHA1, MD5, and djb2Hash. + * @returns {number} - The hashed key as a number + */ + getKeyStoreHash(key) { + if (this._store.length === 1) { + return 0; + } + if (typeof this._storeHashAlgorithm === "function") { + return this._storeHashAlgorithm(key, this._storeHashSize); + } + const storeHashSize = this._storeHashSize - 1; + const hash2 = (0, import_utils.hashToNumberSync)(key, { + min: 0, + max: storeHashSize, + algorithm: this._storeHashAlgorithm + }); + return hash2; + } + /** + * Clone the value. This is for internal use + * @param {any} value - The value to clone + * @returns {any} - The cloned value + */ + // biome-ignore lint/suspicious/noExplicitAny: type format + clone(value) { + if (this.isPrimitive(value)) { + return value; + } + return structuredClone(value); + } + /** + * Add to the front of the LRU cache. This is for internal use + * @param {string} key - The key to add to the front + * @returns {void} + */ + lruAddToFront(key) { + if (this._lruSize === 0) { + return; + } + this._lru.addToFront(key); + } + /** + * Move to the front of the LRU cache. This is for internal use + * @param {string} key - The key to move to the front + * @returns {void} + */ + lruMoveToFront(key) { + if (this._lruSize === 0) { + return; + } + this._lru.moveToFront(key); + } + /** + * Remove a key from the LRU cache. This is for internal use + * @param {string} key - The key to remove + * @returns {void} + */ + lruRemove(key) { + if (this._lruSize === 0) { + return; + } + this._lru.remove(key); + } + /** + * Resize the LRU cache. This is for internal use. + * @returns {void} + */ + lruResize() { + while (this._lru.size > this._lruSize) { + const oldestKey = this._lru.getOldest(); + if (oldestKey) { + this._lru.removeOldest(); + this.delete(oldestKey); + } + } + } + /** + * Check for expiration. This is for internal use + * @returns {void} + */ + checkExpiration() { + for (const store of this._store) { + for (const item of store.values()) { + if (item.expires && Date.now() > item.expires) { + store.delete(item.key); + this.lruRemove(item.key); + } + } + } + } + /** + * Start the interval check. This is for internal use + * @returns {void} + */ + startIntervalCheck() { + if (this._checkInterval > 0) { + if (this._interval) { + clearInterval(this._interval); + } + this._interval = setInterval(() => { + this.checkExpiration(); + }, this._checkInterval).unref(); + } + } + /** + * Stop the interval check. This is for internal use + * @returns {void} + */ + stopIntervalCheck() { + if (this._interval) { + clearInterval(this._interval); + } + this._interval = 0; + this._checkInterval = 0; + } + /** + * Wrap the function for caching + * @param {Function} function_ - The function to wrap + * @param {Object} [options] - The options to wrap + * @returns {Function} - The wrapped function + */ + // biome-ignore lint/suspicious/noExplicitAny: type format + wrap(function_, options) { + const wrapOptions = { + ttl: options?.ttl ?? this._ttl, + keyPrefix: options?.keyPrefix, + createKey: options?.createKey, + cache: this + }; + return (0, import_utils.wrapSync)(function_, wrapOptions); + } + // biome-ignore lint/suspicious/noExplicitAny: type format + isPrimitive(value) { + const result = false; + if (value === null || value === void 0) { + return true; + } + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + return true; + } + return result; + } + setTtl(ttl) { + if (typeof ttl === "string" || ttl === void 0) { + this._ttl = ttl; + } else if (ttl > 0) { + this._ttl = ttl; + } else { + this._ttl = void 0; + } + } + hasExpired(item) { + if (item.expires && Date.now() > item.expires) { + return true; + } + return false; + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + CacheableMemory, + HashAlgorithm, + KeyvCacheableMemory, + createKeyv, + defaultStoreHashSize, + hash, + hashToNumber, + maximumMapSize +}); +/* v8 ignore next -- @preserve */ diff --git a/node_modules/@cacheable/memory/dist/index.d.cts b/node_modules/@cacheable/memory/dist/index.d.cts new file mode 100644 index 0000000..262a5a9 --- /dev/null +++ b/node_modules/@cacheable/memory/dist/index.d.cts @@ -0,0 +1,310 @@ +import { HashAlgorithm, CacheableStoreItem, CacheableItem, WrapFunctionOptions } from '@cacheable/utils'; +export { CacheableItem, CacheableStoreItem, HashAlgorithm, hash, hashToNumber } from '@cacheable/utils'; +import { Hookified } from 'hookified'; +import { KeyvStoreAdapter, StoredData, Keyv } from 'keyv'; + +type KeyvCacheableMemoryOptions = CacheableMemoryOptions & { + namespace?: string; +}; +declare class KeyvCacheableMemory implements KeyvStoreAdapter { + opts: CacheableMemoryOptions; + private readonly _defaultCache; + private readonly _nCache; + private _namespace?; + constructor(options?: KeyvCacheableMemoryOptions); + get namespace(): string | undefined; + set namespace(value: string | undefined); + get store(): CacheableMemory; + get(key: string): Promise | undefined>; + getMany(keys: string[]): Promise>>; + set(key: string, value: any, ttl?: number): Promise; + setMany(values: Array<{ + key: string; + value: any; + ttl?: number; + }>): Promise; + delete(key: string): Promise; + deleteMany?(key: string[]): Promise; + clear(): Promise; + has?(key: string): Promise; + on(event: string, listener: (...arguments_: any[]) => void): this; + getStore(namespace?: string): CacheableMemory; +} +/** + * Creates a new Keyv instance with a new KeyvCacheableMemory store. This also removes the serialize/deserialize methods from the Keyv instance for optimization. + * @param options + * @returns + */ +declare function createKeyv(options?: KeyvCacheableMemoryOptions): Keyv; + +type StoreHashAlgorithmFunction = (key: string, storeHashSize: number) => number; +/** + * @typedef {Object} CacheableMemoryOptions + * @property {number|string} [ttl] - Time to Live - If you set a number it is miliseconds, if you set a string it is a human-readable + * format such as `1s` for 1 second or `1h` for 1 hour. Setting undefined means that it will use the default time-to-live. If both are + * undefined then it will not have a time-to-live. + * @property {boolean} [useClone] - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. + * @property {number} [lruSize] - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. If you are using LRU then the limit is based on Map() size 17mm. + * @property {number} [checkInterval] - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. + * @property {number} [storeHashSize] - The number of how many Map stores we have for the hash. Default is 10. + */ +type CacheableMemoryOptions = { + ttl?: number | string; + useClone?: boolean; + lruSize?: number; + checkInterval?: number; + storeHashSize?: number; + storeHashAlgorithm?: HashAlgorithm | ((key: string, storeHashSize: number) => number); +}; +type SetOptions = { + ttl?: number | string; + expire?: number | Date; +}; +declare const defaultStoreHashSize = 16; +declare const maximumMapSize = 16777216; +declare class CacheableMemory extends Hookified { + private _lru; + private _storeHashSize; + private _storeHashAlgorithm; + private _store; + private _ttl; + private _useClone; + private _lruSize; + private _checkInterval; + private _interval; + /** + * @constructor + * @param {CacheableMemoryOptions} [options] - The options for the CacheableMemory + */ + constructor(options?: CacheableMemoryOptions); + /** + * Gets the time-to-live + * @returns {number|string|undefined} - The time-to-live in miliseconds or a human-readable format. If undefined, it will not have a time-to-live. + */ + get ttl(): number | string | undefined; + /** + * Sets the time-to-live + * @param {number|string|undefined} value - The time-to-live in miliseconds or a human-readable format (example '1s' = 1 second, '1h' = 1 hour). If undefined, it will not have a time-to-live. + */ + set ttl(value: number | string | undefined); + /** + * Gets whether to use clone + * @returns {boolean} - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. + */ + get useClone(): boolean; + /** + * Sets whether to use clone + * @param {boolean} value - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. + */ + set useClone(value: boolean); + /** + * Gets the size of the LRU cache + * @returns {number} - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. If you are using LRU then the limit is based on Map() size 17mm. + */ + get lruSize(): number; + /** + * Sets the size of the LRU cache + * @param {number} value - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. If you are using LRU then the limit is based on Map() size 17mm. + */ + set lruSize(value: number); + /** + * Gets the check interval + * @returns {number} - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. + */ + get checkInterval(): number; + /** + * Sets the check interval + * @param {number} value - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. + */ + set checkInterval(value: number); + /** + * Gets the size of the cache + * @returns {number} - The size of the cache + */ + get size(): number; + /** + * Gets the number of hash stores + * @returns {number} - The number of hash stores + */ + get storeHashSize(): number; + /** + * Sets the number of hash stores. This will recreate the store and all data will be cleared + * @param {number} value - The number of hash stores + */ + set storeHashSize(value: number); + /** + * Gets the store hash algorithm + * @returns {HashAlgorithm | StoreHashAlgorithmFunction} - The store hash algorithm + */ + get storeHashAlgorithm(): HashAlgorithm | StoreHashAlgorithmFunction; + /** + * Sets the store hash algorithm. This will recreate the store and all data will be cleared + * @param {HashAlgorithm | HashAlgorithmFunction} value - The store hash algorithm + */ + set storeHashAlgorithm(value: HashAlgorithm | StoreHashAlgorithmFunction); + /** + * Gets the keys + * @returns {IterableIterator} - The keys + */ + get keys(): IterableIterator; + /** + * Gets the items + * @returns {IterableIterator} - The items + */ + get items(): IterableIterator; + /** + * Gets the store + * @returns {Array>} - The store + */ + get store(): Array>; + /** + * Gets the value of the key + * @param {string} key - The key to get the value + * @returns {T | undefined} - The value of the key + */ + get(key: string): T | undefined; + /** + * Gets the values of the keys + * @param {string[]} keys - The keys to get the values + * @returns {T[]} - The values of the keys + */ + getMany(keys: string[]): T[]; + /** + * Gets the raw value of the key + * @param {string} key - The key to get the value + * @returns {CacheableStoreItem | undefined} - The raw value of the key + */ + getRaw(key: string): CacheableStoreItem | undefined; + /** + * Gets the raw values of the keys + * @param {string[]} keys - The keys to get the values + * @returns {CacheableStoreItem[]} - The raw values of the keys + */ + getManyRaw(keys: string[]): Array; + /** + * Sets the value of the key + * @param {string} key - The key to set the value + * @param {any} value - The value to set + * @param {number|string|SetOptions} [ttl] - Time to Live - If you set a number it is miliseconds, if you set a string it is a human-readable. + * If you want to set expire directly you can do that by setting the expire property in the SetOptions. + * If you set undefined, it will use the default time-to-live. If both are undefined then it will not have a time-to-live. + * @returns {void} + */ + set(key: string, value: any, ttl?: number | string | SetOptions): void; + /** + * Sets the values of the keys + * @param {CacheableItem[]} items - The items to set + * @returns {void} + */ + setMany(items: CacheableItem[]): void; + /** + * Checks if the key exists + * @param {string} key - The key to check + * @returns {boolean} - If true, the key exists. If false, the key does not exist. + */ + has(key: string): boolean; + /** + * @function hasMany + * @param {string[]} keys - The keys to check + * @returns {boolean[]} - If true, the key exists. If false, the key does not exist. + */ + hasMany(keys: string[]): boolean[]; + /** + * Take will get the key and delete the entry from cache + * @param {string} key - The key to take + * @returns {T | undefined} - The value of the key + */ + take(key: string): T | undefined; + /** + * TakeMany will get the keys and delete the entries from cache + * @param {string[]} keys - The keys to take + * @returns {T[]} - The values of the keys + */ + takeMany(keys: string[]): T[]; + /** + * Delete the key + * @param {string} key - The key to delete + * @returns {void} + */ + delete(key: string): void; + /** + * Delete the keys + * @param {string[]} keys - The keys to delete + * @returns {void} + */ + deleteMany(keys: string[]): void; + /** + * Clear the cache + * @returns {void} + */ + clear(): void; + /** + * Get the store based on the key (internal use) + * @param {string} key - The key to get the store + * @returns {CacheableHashStore} - The store + */ + getStore(key: string): Map; + /** + * Hash the key for which store to go to (internal use) + * @param {string} key - The key to hash + * Available algorithms are: SHA256, SHA1, MD5, and djb2Hash. + * @returns {number} - The hashed key as a number + */ + getKeyStoreHash(key: string): number; + /** + * Clone the value. This is for internal use + * @param {any} value - The value to clone + * @returns {any} - The cloned value + */ + clone(value: any): any; + /** + * Add to the front of the LRU cache. This is for internal use + * @param {string} key - The key to add to the front + * @returns {void} + */ + lruAddToFront(key: string): void; + /** + * Move to the front of the LRU cache. This is for internal use + * @param {string} key - The key to move to the front + * @returns {void} + */ + lruMoveToFront(key: string): void; + /** + * Remove a key from the LRU cache. This is for internal use + * @param {string} key - The key to remove + * @returns {void} + */ + lruRemove(key: string): void; + /** + * Resize the LRU cache. This is for internal use. + * @returns {void} + */ + lruResize(): void; + /** + * Check for expiration. This is for internal use + * @returns {void} + */ + checkExpiration(): void; + /** + * Start the interval check. This is for internal use + * @returns {void} + */ + startIntervalCheck(): void; + /** + * Stop the interval check. This is for internal use + * @returns {void} + */ + stopIntervalCheck(): void; + /** + * Wrap the function for caching + * @param {Function} function_ - The function to wrap + * @param {Object} [options] - The options to wrap + * @returns {Function} - The wrapped function + */ + wrap(function_: (...arguments_: Arguments) => T, options?: WrapFunctionOptions): (...arguments_: Arguments) => T; + private isPrimitive; + private setTtl; + private hasExpired; +} + +export { CacheableMemory, type CacheableMemoryOptions, KeyvCacheableMemory, type KeyvCacheableMemoryOptions, type SetOptions, type StoreHashAlgorithmFunction, createKeyv, defaultStoreHashSize, maximumMapSize }; diff --git a/node_modules/@cacheable/memory/dist/index.d.ts b/node_modules/@cacheable/memory/dist/index.d.ts new file mode 100644 index 0000000..262a5a9 --- /dev/null +++ b/node_modules/@cacheable/memory/dist/index.d.ts @@ -0,0 +1,310 @@ +import { HashAlgorithm, CacheableStoreItem, CacheableItem, WrapFunctionOptions } from '@cacheable/utils'; +export { CacheableItem, CacheableStoreItem, HashAlgorithm, hash, hashToNumber } from '@cacheable/utils'; +import { Hookified } from 'hookified'; +import { KeyvStoreAdapter, StoredData, Keyv } from 'keyv'; + +type KeyvCacheableMemoryOptions = CacheableMemoryOptions & { + namespace?: string; +}; +declare class KeyvCacheableMemory implements KeyvStoreAdapter { + opts: CacheableMemoryOptions; + private readonly _defaultCache; + private readonly _nCache; + private _namespace?; + constructor(options?: KeyvCacheableMemoryOptions); + get namespace(): string | undefined; + set namespace(value: string | undefined); + get store(): CacheableMemory; + get(key: string): Promise | undefined>; + getMany(keys: string[]): Promise>>; + set(key: string, value: any, ttl?: number): Promise; + setMany(values: Array<{ + key: string; + value: any; + ttl?: number; + }>): Promise; + delete(key: string): Promise; + deleteMany?(key: string[]): Promise; + clear(): Promise; + has?(key: string): Promise; + on(event: string, listener: (...arguments_: any[]) => void): this; + getStore(namespace?: string): CacheableMemory; +} +/** + * Creates a new Keyv instance with a new KeyvCacheableMemory store. This also removes the serialize/deserialize methods from the Keyv instance for optimization. + * @param options + * @returns + */ +declare function createKeyv(options?: KeyvCacheableMemoryOptions): Keyv; + +type StoreHashAlgorithmFunction = (key: string, storeHashSize: number) => number; +/** + * @typedef {Object} CacheableMemoryOptions + * @property {number|string} [ttl] - Time to Live - If you set a number it is miliseconds, if you set a string it is a human-readable + * format such as `1s` for 1 second or `1h` for 1 hour. Setting undefined means that it will use the default time-to-live. If both are + * undefined then it will not have a time-to-live. + * @property {boolean} [useClone] - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. + * @property {number} [lruSize] - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. If you are using LRU then the limit is based on Map() size 17mm. + * @property {number} [checkInterval] - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. + * @property {number} [storeHashSize] - The number of how many Map stores we have for the hash. Default is 10. + */ +type CacheableMemoryOptions = { + ttl?: number | string; + useClone?: boolean; + lruSize?: number; + checkInterval?: number; + storeHashSize?: number; + storeHashAlgorithm?: HashAlgorithm | ((key: string, storeHashSize: number) => number); +}; +type SetOptions = { + ttl?: number | string; + expire?: number | Date; +}; +declare const defaultStoreHashSize = 16; +declare const maximumMapSize = 16777216; +declare class CacheableMemory extends Hookified { + private _lru; + private _storeHashSize; + private _storeHashAlgorithm; + private _store; + private _ttl; + private _useClone; + private _lruSize; + private _checkInterval; + private _interval; + /** + * @constructor + * @param {CacheableMemoryOptions} [options] - The options for the CacheableMemory + */ + constructor(options?: CacheableMemoryOptions); + /** + * Gets the time-to-live + * @returns {number|string|undefined} - The time-to-live in miliseconds or a human-readable format. If undefined, it will not have a time-to-live. + */ + get ttl(): number | string | undefined; + /** + * Sets the time-to-live + * @param {number|string|undefined} value - The time-to-live in miliseconds or a human-readable format (example '1s' = 1 second, '1h' = 1 hour). If undefined, it will not have a time-to-live. + */ + set ttl(value: number | string | undefined); + /** + * Gets whether to use clone + * @returns {boolean} - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. + */ + get useClone(): boolean; + /** + * Sets whether to use clone + * @param {boolean} value - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. + */ + set useClone(value: boolean); + /** + * Gets the size of the LRU cache + * @returns {number} - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. If you are using LRU then the limit is based on Map() size 17mm. + */ + get lruSize(): number; + /** + * Sets the size of the LRU cache + * @param {number} value - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. If you are using LRU then the limit is based on Map() size 17mm. + */ + set lruSize(value: number); + /** + * Gets the check interval + * @returns {number} - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. + */ + get checkInterval(): number; + /** + * Sets the check interval + * @param {number} value - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. + */ + set checkInterval(value: number); + /** + * Gets the size of the cache + * @returns {number} - The size of the cache + */ + get size(): number; + /** + * Gets the number of hash stores + * @returns {number} - The number of hash stores + */ + get storeHashSize(): number; + /** + * Sets the number of hash stores. This will recreate the store and all data will be cleared + * @param {number} value - The number of hash stores + */ + set storeHashSize(value: number); + /** + * Gets the store hash algorithm + * @returns {HashAlgorithm | StoreHashAlgorithmFunction} - The store hash algorithm + */ + get storeHashAlgorithm(): HashAlgorithm | StoreHashAlgorithmFunction; + /** + * Sets the store hash algorithm. This will recreate the store and all data will be cleared + * @param {HashAlgorithm | HashAlgorithmFunction} value - The store hash algorithm + */ + set storeHashAlgorithm(value: HashAlgorithm | StoreHashAlgorithmFunction); + /** + * Gets the keys + * @returns {IterableIterator} - The keys + */ + get keys(): IterableIterator; + /** + * Gets the items + * @returns {IterableIterator} - The items + */ + get items(): IterableIterator; + /** + * Gets the store + * @returns {Array>} - The store + */ + get store(): Array>; + /** + * Gets the value of the key + * @param {string} key - The key to get the value + * @returns {T | undefined} - The value of the key + */ + get(key: string): T | undefined; + /** + * Gets the values of the keys + * @param {string[]} keys - The keys to get the values + * @returns {T[]} - The values of the keys + */ + getMany(keys: string[]): T[]; + /** + * Gets the raw value of the key + * @param {string} key - The key to get the value + * @returns {CacheableStoreItem | undefined} - The raw value of the key + */ + getRaw(key: string): CacheableStoreItem | undefined; + /** + * Gets the raw values of the keys + * @param {string[]} keys - The keys to get the values + * @returns {CacheableStoreItem[]} - The raw values of the keys + */ + getManyRaw(keys: string[]): Array; + /** + * Sets the value of the key + * @param {string} key - The key to set the value + * @param {any} value - The value to set + * @param {number|string|SetOptions} [ttl] - Time to Live - If you set a number it is miliseconds, if you set a string it is a human-readable. + * If you want to set expire directly you can do that by setting the expire property in the SetOptions. + * If you set undefined, it will use the default time-to-live. If both are undefined then it will not have a time-to-live. + * @returns {void} + */ + set(key: string, value: any, ttl?: number | string | SetOptions): void; + /** + * Sets the values of the keys + * @param {CacheableItem[]} items - The items to set + * @returns {void} + */ + setMany(items: CacheableItem[]): void; + /** + * Checks if the key exists + * @param {string} key - The key to check + * @returns {boolean} - If true, the key exists. If false, the key does not exist. + */ + has(key: string): boolean; + /** + * @function hasMany + * @param {string[]} keys - The keys to check + * @returns {boolean[]} - If true, the key exists. If false, the key does not exist. + */ + hasMany(keys: string[]): boolean[]; + /** + * Take will get the key and delete the entry from cache + * @param {string} key - The key to take + * @returns {T | undefined} - The value of the key + */ + take(key: string): T | undefined; + /** + * TakeMany will get the keys and delete the entries from cache + * @param {string[]} keys - The keys to take + * @returns {T[]} - The values of the keys + */ + takeMany(keys: string[]): T[]; + /** + * Delete the key + * @param {string} key - The key to delete + * @returns {void} + */ + delete(key: string): void; + /** + * Delete the keys + * @param {string[]} keys - The keys to delete + * @returns {void} + */ + deleteMany(keys: string[]): void; + /** + * Clear the cache + * @returns {void} + */ + clear(): void; + /** + * Get the store based on the key (internal use) + * @param {string} key - The key to get the store + * @returns {CacheableHashStore} - The store + */ + getStore(key: string): Map; + /** + * Hash the key for which store to go to (internal use) + * @param {string} key - The key to hash + * Available algorithms are: SHA256, SHA1, MD5, and djb2Hash. + * @returns {number} - The hashed key as a number + */ + getKeyStoreHash(key: string): number; + /** + * Clone the value. This is for internal use + * @param {any} value - The value to clone + * @returns {any} - The cloned value + */ + clone(value: any): any; + /** + * Add to the front of the LRU cache. This is for internal use + * @param {string} key - The key to add to the front + * @returns {void} + */ + lruAddToFront(key: string): void; + /** + * Move to the front of the LRU cache. This is for internal use + * @param {string} key - The key to move to the front + * @returns {void} + */ + lruMoveToFront(key: string): void; + /** + * Remove a key from the LRU cache. This is for internal use + * @param {string} key - The key to remove + * @returns {void} + */ + lruRemove(key: string): void; + /** + * Resize the LRU cache. This is for internal use. + * @returns {void} + */ + lruResize(): void; + /** + * Check for expiration. This is for internal use + * @returns {void} + */ + checkExpiration(): void; + /** + * Start the interval check. This is for internal use + * @returns {void} + */ + startIntervalCheck(): void; + /** + * Stop the interval check. This is for internal use + * @returns {void} + */ + stopIntervalCheck(): void; + /** + * Wrap the function for caching + * @param {Function} function_ - The function to wrap + * @param {Object} [options] - The options to wrap + * @returns {Function} - The wrapped function + */ + wrap(function_: (...arguments_: Arguments) => T, options?: WrapFunctionOptions): (...arguments_: Arguments) => T; + private isPrimitive; + private setTtl; + private hasExpired; +} + +export { CacheableMemory, type CacheableMemoryOptions, KeyvCacheableMemory, type KeyvCacheableMemoryOptions, type SetOptions, type StoreHashAlgorithmFunction, createKeyv, defaultStoreHashSize, maximumMapSize }; diff --git a/node_modules/@cacheable/memory/dist/index.js b/node_modules/@cacheable/memory/dist/index.js new file mode 100644 index 0000000..0dc32aa --- /dev/null +++ b/node_modules/@cacheable/memory/dist/index.js @@ -0,0 +1,807 @@ +// src/index.ts +import { + HashAlgorithm, + hashToNumberSync, + shorthandToTime, + wrapSync +} from "@cacheable/utils"; +import { Hookified } from "hookified"; + +// src/memory-lru.ts +var ListNode = class { + value; + prev = void 0; + next = void 0; + constructor(value) { + this.value = value; + } +}; +var DoublyLinkedList = class { + head = void 0; + tail = void 0; + nodesMap = /* @__PURE__ */ new Map(); + // Add a new node to the front (most recently used) + addToFront(value) { + const newNode = new ListNode(value); + if (this.head) { + newNode.next = this.head; + this.head.prev = newNode; + this.head = newNode; + } else { + this.head = this.tail = newNode; + } + this.nodesMap.set(value, newNode); + } + // Move an existing node to the front (most recently used) + moveToFront(value) { + const node = this.nodesMap.get(value); + if (!node || this.head === node) { + return; + } + if (node.prev) { + node.prev.next = node.next; + } + if (node.next) { + node.next.prev = node.prev; + } + if (node === this.tail) { + this.tail = node.prev; + } + node.prev = void 0; + node.next = this.head; + if (this.head) { + this.head.prev = node; + } + this.head = node; + this.tail ??= node; + } + // Get the oldest node (tail) + getOldest() { + return this.tail ? this.tail.value : void 0; + } + // Remove the oldest node (tail) + removeOldest() { + if (!this.tail) { + return void 0; + } + const oldValue = this.tail.value; + if (this.tail.prev) { + this.tail = this.tail.prev; + this.tail.next = void 0; + } else { + this.head = this.tail = void 0; + } + this.nodesMap.delete(oldValue); + return oldValue; + } + // Remove a specific node by value + remove(value) { + const node = this.nodesMap.get(value); + if (!node) { + return false; + } + if (node.prev) { + node.prev.next = node.next; + } else { + this.head = node.next; + if (this.head) { + this.head.prev = void 0; + } + } + if (node.next) { + node.next.prev = node.prev; + } else { + this.tail = node.prev; + if (this.tail) { + this.tail.next = void 0; + } + } + this.nodesMap.delete(value); + return true; + } + get size() { + return this.nodesMap.size; + } +}; + +// src/index.ts +import { + HashAlgorithm as HashAlgorithm2, + hash, + hashToNumber +} from "@cacheable/utils"; + +// src/keyv-memory.ts +import { Keyv } from "keyv"; +var KeyvCacheableMemory = class { + opts = { + ttl: 0, + useClone: true, + lruSize: 0, + checkInterval: 0 + }; + _defaultCache = new CacheableMemory(); + _nCache = /* @__PURE__ */ new Map(); + _namespace; + constructor(options) { + if (options) { + this.opts = options; + this._defaultCache = new CacheableMemory(options); + if (options.namespace) { + this._namespace = options.namespace; + this._nCache.set(this._namespace, new CacheableMemory(options)); + } + } + } + get namespace() { + return this._namespace; + } + set namespace(value) { + this._namespace = value; + } + get store() { + return this.getStore(this._namespace); + } + async get(key) { + const result = this.getStore(this._namespace).get(key); + if (result) { + return result; + } + return void 0; + } + async getMany(keys) { + const result = this.getStore(this._namespace).getMany(keys); + return result; + } + // biome-ignore lint/suspicious/noExplicitAny: type format + async set(key, value, ttl) { + this.getStore(this._namespace).set(key, value, ttl); + } + async setMany(values) { + this.getStore(this._namespace).setMany(values); + } + async delete(key) { + this.getStore(this._namespace).delete(key); + return true; + } + async deleteMany(key) { + this.getStore(this._namespace).deleteMany(key); + return true; + } + async clear() { + this.getStore(this._namespace).clear(); + } + async has(key) { + return this.getStore(this._namespace).has(key); + } + // biome-ignore lint/suspicious/noExplicitAny: type format + on(event, listener) { + this.getStore(this._namespace).on(event, listener); + return this; + } + getStore(namespace) { + if (!namespace) { + return this._defaultCache; + } + if (!this._nCache.has(namespace)) { + this._nCache.set(namespace, new CacheableMemory(this.opts)); + } + return this._nCache.get(namespace); + } +}; +function createKeyv(options) { + const store = new KeyvCacheableMemory(options); + const namespace = options?.namespace; + let ttl; + if (options?.ttl && Number.isInteger(options.ttl)) { + ttl = options?.ttl; + } + const keyv = new Keyv({ store, namespace, ttl }); + keyv.serialize = void 0; + keyv.deserialize = void 0; + return keyv; +} + +// src/index.ts +var defaultStoreHashSize = 16; +var maximumMapSize = 16777216; +var CacheableMemory = class extends Hookified { + _lru = new DoublyLinkedList(); + _storeHashSize = defaultStoreHashSize; + _storeHashAlgorithm = HashAlgorithm.DJB2; + // Default is djb2Hash + _store = Array.from( + { length: this._storeHashSize }, + () => /* @__PURE__ */ new Map() + ); + _ttl; + // Turned off by default + _useClone = true; + // Turned on by default + _lruSize = 0; + // Turned off by default + _checkInterval = 0; + // Turned off by default + _interval = 0; + // Turned off by default + /** + * @constructor + * @param {CacheableMemoryOptions} [options] - The options for the CacheableMemory + */ + constructor(options) { + super(); + if (options?.ttl) { + this.setTtl(options.ttl); + } + if (options?.useClone !== void 0) { + this._useClone = options.useClone; + } + if (options?.storeHashSize && options.storeHashSize > 0) { + this._storeHashSize = options.storeHashSize; + } + if (options?.lruSize) { + if (options.lruSize > maximumMapSize) { + this.emit( + "error", + new Error( + `LRU size cannot be larger than ${maximumMapSize} due to Map limitations.` + ) + ); + } else { + this._lruSize = options.lruSize; + } + } + if (options?.checkInterval) { + this._checkInterval = options.checkInterval; + } + if (options?.storeHashAlgorithm) { + this._storeHashAlgorithm = options.storeHashAlgorithm; + } + this._store = Array.from( + { length: this._storeHashSize }, + () => /* @__PURE__ */ new Map() + ); + this.startIntervalCheck(); + } + /** + * Gets the time-to-live + * @returns {number|string|undefined} - The time-to-live in miliseconds or a human-readable format. If undefined, it will not have a time-to-live. + */ + get ttl() { + return this._ttl; + } + /** + * Sets the time-to-live + * @param {number|string|undefined} value - The time-to-live in miliseconds or a human-readable format (example '1s' = 1 second, '1h' = 1 hour). If undefined, it will not have a time-to-live. + */ + set ttl(value) { + this.setTtl(value); + } + /** + * Gets whether to use clone + * @returns {boolean} - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. + */ + get useClone() { + return this._useClone; + } + /** + * Sets whether to use clone + * @param {boolean} value - If true, it will clone the value before returning it. If false, it will return the value directly. Default is true. + */ + set useClone(value) { + this._useClone = value; + } + /** + * Gets the size of the LRU cache + * @returns {number} - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. If you are using LRU then the limit is based on Map() size 17mm. + */ + get lruSize() { + return this._lruSize; + } + /** + * Sets the size of the LRU cache + * @param {number} value - The size of the LRU cache. If set to 0, it will not use LRU cache. Default is 0. If you are using LRU then the limit is based on Map() size 17mm. + */ + set lruSize(value) { + if (value > maximumMapSize) { + this.emit( + "error", + new Error( + `LRU size cannot be larger than ${maximumMapSize} due to Map limitations.` + ) + ); + return; + } + this._lruSize = value; + if (this._lruSize === 0) { + this._lru = new DoublyLinkedList(); + return; + } + this.lruResize(); + } + /** + * Gets the check interval + * @returns {number} - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. + */ + get checkInterval() { + return this._checkInterval; + } + /** + * Sets the check interval + * @param {number} value - The interval to check for expired items. If set to 0, it will not check for expired items. Default is 0. + */ + set checkInterval(value) { + this._checkInterval = value; + } + /** + * Gets the size of the cache + * @returns {number} - The size of the cache + */ + get size() { + let size = 0; + for (const store of this._store) { + size += store.size; + } + return size; + } + /** + * Gets the number of hash stores + * @returns {number} - The number of hash stores + */ + get storeHashSize() { + return this._storeHashSize; + } + /** + * Sets the number of hash stores. This will recreate the store and all data will be cleared + * @param {number} value - The number of hash stores + */ + set storeHashSize(value) { + if (value === this._storeHashSize) { + return; + } + this._storeHashSize = value; + this._store = Array.from( + { length: this._storeHashSize }, + () => /* @__PURE__ */ new Map() + ); + } + /** + * Gets the store hash algorithm + * @returns {HashAlgorithm | StoreHashAlgorithmFunction} - The store hash algorithm + */ + get storeHashAlgorithm() { + return this._storeHashAlgorithm; + } + /** + * Sets the store hash algorithm. This will recreate the store and all data will be cleared + * @param {HashAlgorithm | HashAlgorithmFunction} value - The store hash algorithm + */ + set storeHashAlgorithm(value) { + this._storeHashAlgorithm = value; + } + /** + * Gets the keys + * @returns {IterableIterator} - The keys + */ + get keys() { + const keys = []; + for (const store of this._store) { + for (const key of store.keys()) { + const item = store.get(key); + if (item && this.hasExpired(item)) { + store.delete(key); + this.lruRemove(key); + continue; + } + keys.push(key); + } + } + return keys.values(); + } + /** + * Gets the items + * @returns {IterableIterator} - The items + */ + get items() { + const items = []; + for (const store of this._store) { + for (const item of store.values()) { + if (this.hasExpired(item)) { + store.delete(item.key); + this.lruRemove(item.key); + continue; + } + items.push(item); + } + } + return items.values(); + } + /** + * Gets the store + * @returns {Array>} - The store + */ + get store() { + return this._store; + } + /** + * Gets the value of the key + * @param {string} key - The key to get the value + * @returns {T | undefined} - The value of the key + */ + get(key) { + const store = this.getStore(key); + const item = store.get(key); + if (!item) { + return void 0; + } + if (item.expires && Date.now() > item.expires) { + store.delete(key); + this.lruRemove(key); + return void 0; + } + this.lruMoveToFront(key); + if (!this._useClone) { + return item.value; + } + return this.clone(item.value); + } + /** + * Gets the values of the keys + * @param {string[]} keys - The keys to get the values + * @returns {T[]} - The values of the keys + */ + getMany(keys) { + const result = []; + for (const key of keys) { + result.push(this.get(key)); + } + return result; + } + /** + * Gets the raw value of the key + * @param {string} key - The key to get the value + * @returns {CacheableStoreItem | undefined} - The raw value of the key + */ + getRaw(key) { + const store = this.getStore(key); + const item = store.get(key); + if (!item) { + return void 0; + } + if (item.expires && item.expires && Date.now() > item.expires) { + store.delete(key); + this.lruRemove(key); + return void 0; + } + this.lruMoveToFront(key); + return item; + } + /** + * Gets the raw values of the keys + * @param {string[]} keys - The keys to get the values + * @returns {CacheableStoreItem[]} - The raw values of the keys + */ + getManyRaw(keys) { + const result = []; + for (const key of keys) { + result.push(this.getRaw(key)); + } + return result; + } + /** + * Sets the value of the key + * @param {string} key - The key to set the value + * @param {any} value - The value to set + * @param {number|string|SetOptions} [ttl] - Time to Live - If you set a number it is miliseconds, if you set a string it is a human-readable. + * If you want to set expire directly you can do that by setting the expire property in the SetOptions. + * If you set undefined, it will use the default time-to-live. If both are undefined then it will not have a time-to-live. + * @returns {void} + */ + set(key, value, ttl) { + const store = this.getStore(key); + let expires; + if (ttl !== void 0 || this._ttl !== void 0) { + if (typeof ttl === "object") { + if (ttl.expire) { + expires = typeof ttl.expire === "number" ? ttl.expire : ttl.expire.getTime(); + } + if (ttl.ttl) { + const finalTtl = shorthandToTime(ttl.ttl); + if (finalTtl !== void 0) { + expires = finalTtl; + } + } + } else { + const finalTtl = shorthandToTime(ttl ?? this._ttl); + if (finalTtl !== void 0) { + expires = finalTtl; + } + } + } + if (this._lruSize > 0) { + if (store.has(key)) { + this.lruMoveToFront(key); + } else { + this.lruAddToFront(key); + if (this._lru.size > this._lruSize) { + const oldestKey = this._lru.getOldest(); + if (oldestKey) { + this._lru.removeOldest(); + this.delete(oldestKey); + } + } + } + } + const item = { key, value, expires }; + store.set(key, item); + } + /** + * Sets the values of the keys + * @param {CacheableItem[]} items - The items to set + * @returns {void} + */ + setMany(items) { + for (const item of items) { + this.set(item.key, item.value, item.ttl); + } + } + /** + * Checks if the key exists + * @param {string} key - The key to check + * @returns {boolean} - If true, the key exists. If false, the key does not exist. + */ + has(key) { + const item = this.get(key); + return Boolean(item); + } + /** + * @function hasMany + * @param {string[]} keys - The keys to check + * @returns {boolean[]} - If true, the key exists. If false, the key does not exist. + */ + hasMany(keys) { + const result = []; + for (const key of keys) { + const item = this.get(key); + result.push(Boolean(item)); + } + return result; + } + /** + * Take will get the key and delete the entry from cache + * @param {string} key - The key to take + * @returns {T | undefined} - The value of the key + */ + take(key) { + const item = this.get(key); + if (!item) { + return void 0; + } + this.delete(key); + return item; + } + /** + * TakeMany will get the keys and delete the entries from cache + * @param {string[]} keys - The keys to take + * @returns {T[]} - The values of the keys + */ + takeMany(keys) { + const result = []; + for (const key of keys) { + result.push(this.take(key)); + } + return result; + } + /** + * Delete the key + * @param {string} key - The key to delete + * @returns {void} + */ + delete(key) { + const store = this.getStore(key); + store.delete(key); + this.lruRemove(key); + } + /** + * Delete the keys + * @param {string[]} keys - The keys to delete + * @returns {void} + */ + deleteMany(keys) { + for (const key of keys) { + this.delete(key); + } + } + /** + * Clear the cache + * @returns {void} + */ + clear() { + this._store = Array.from( + { length: this._storeHashSize }, + () => /* @__PURE__ */ new Map() + ); + this._lru = new DoublyLinkedList(); + } + /** + * Get the store based on the key (internal use) + * @param {string} key - The key to get the store + * @returns {CacheableHashStore} - The store + */ + getStore(key) { + const hash2 = this.getKeyStoreHash(key); + this._store[hash2] ||= /* @__PURE__ */ new Map(); + return this._store[hash2]; + } + /** + * Hash the key for which store to go to (internal use) + * @param {string} key - The key to hash + * Available algorithms are: SHA256, SHA1, MD5, and djb2Hash. + * @returns {number} - The hashed key as a number + */ + getKeyStoreHash(key) { + if (this._store.length === 1) { + return 0; + } + if (typeof this._storeHashAlgorithm === "function") { + return this._storeHashAlgorithm(key, this._storeHashSize); + } + const storeHashSize = this._storeHashSize - 1; + const hash2 = hashToNumberSync(key, { + min: 0, + max: storeHashSize, + algorithm: this._storeHashAlgorithm + }); + return hash2; + } + /** + * Clone the value. This is for internal use + * @param {any} value - The value to clone + * @returns {any} - The cloned value + */ + // biome-ignore lint/suspicious/noExplicitAny: type format + clone(value) { + if (this.isPrimitive(value)) { + return value; + } + return structuredClone(value); + } + /** + * Add to the front of the LRU cache. This is for internal use + * @param {string} key - The key to add to the front + * @returns {void} + */ + lruAddToFront(key) { + if (this._lruSize === 0) { + return; + } + this._lru.addToFront(key); + } + /** + * Move to the front of the LRU cache. This is for internal use + * @param {string} key - The key to move to the front + * @returns {void} + */ + lruMoveToFront(key) { + if (this._lruSize === 0) { + return; + } + this._lru.moveToFront(key); + } + /** + * Remove a key from the LRU cache. This is for internal use + * @param {string} key - The key to remove + * @returns {void} + */ + lruRemove(key) { + if (this._lruSize === 0) { + return; + } + this._lru.remove(key); + } + /** + * Resize the LRU cache. This is for internal use. + * @returns {void} + */ + lruResize() { + while (this._lru.size > this._lruSize) { + const oldestKey = this._lru.getOldest(); + if (oldestKey) { + this._lru.removeOldest(); + this.delete(oldestKey); + } + } + } + /** + * Check for expiration. This is for internal use + * @returns {void} + */ + checkExpiration() { + for (const store of this._store) { + for (const item of store.values()) { + if (item.expires && Date.now() > item.expires) { + store.delete(item.key); + this.lruRemove(item.key); + } + } + } + } + /** + * Start the interval check. This is for internal use + * @returns {void} + */ + startIntervalCheck() { + if (this._checkInterval > 0) { + if (this._interval) { + clearInterval(this._interval); + } + this._interval = setInterval(() => { + this.checkExpiration(); + }, this._checkInterval).unref(); + } + } + /** + * Stop the interval check. This is for internal use + * @returns {void} + */ + stopIntervalCheck() { + if (this._interval) { + clearInterval(this._interval); + } + this._interval = 0; + this._checkInterval = 0; + } + /** + * Wrap the function for caching + * @param {Function} function_ - The function to wrap + * @param {Object} [options] - The options to wrap + * @returns {Function} - The wrapped function + */ + // biome-ignore lint/suspicious/noExplicitAny: type format + wrap(function_, options) { + const wrapOptions = { + ttl: options?.ttl ?? this._ttl, + keyPrefix: options?.keyPrefix, + createKey: options?.createKey, + cache: this + }; + return wrapSync(function_, wrapOptions); + } + // biome-ignore lint/suspicious/noExplicitAny: type format + isPrimitive(value) { + const result = false; + if (value === null || value === void 0) { + return true; + } + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + return true; + } + return result; + } + setTtl(ttl) { + if (typeof ttl === "string" || ttl === void 0) { + this._ttl = ttl; + } else if (ttl > 0) { + this._ttl = ttl; + } else { + this._ttl = void 0; + } + } + hasExpired(item) { + if (item.expires && Date.now() > item.expires) { + return true; + } + return false; + } +}; +export { + CacheableMemory, + HashAlgorithm2 as HashAlgorithm, + KeyvCacheableMemory, + createKeyv, + defaultStoreHashSize, + hash, + hashToNumber, + maximumMapSize +}; +/* v8 ignore next -- @preserve */ diff --git a/node_modules/@cacheable/memory/package.json b/node_modules/@cacheable/memory/package.json new file mode 100644 index 0000000..f9ad8c4 --- /dev/null +++ b/node_modules/@cacheable/memory/package.json @@ -0,0 +1,69 @@ +{ + "name": "@cacheable/memory", + "version": "2.0.8", + "description": "High Performance In-Memory Cache for Node.js", + "type": "module", + "main": "./dist/index.js", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } + } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/jaredwray/cacheable.git", + "directory": "packages/cacheable" + }, + "author": "Jared Wray ", + "license": "MIT", + "private": false, + "devDependencies": { + "@faker-js/faker": "^10.3.0", + "@types/node": "^25.3.0", + "rimraf": "^6.1.3", + "tsup": "^8.5.1", + "typescript": "^5.9.3" + }, + "dependencies": { + "@keyv/bigmap": "^1.3.1", + "hookified": "^1.15.1", + "keyv": "^5.6.0", + "@cacheable/utils": "^2.4.0" + }, + "keywords": [ + "cacheable", + "high performance", + "distributed caching", + "Keyv storage engine", + "keyv", + "memory caching", + "LRU cache", + "memory", + "in-memory", + "scalable cache", + "in-memory cache", + "lruSize", + "lru" + ], + "files": [ + "dist", + "LICENSE" + ], + "scripts": { + "build": "rimraf ./dist && tsup src/index.ts --format cjs,esm --dts --clean", + "prepublish": "pnpm build", + "lint": "biome check --write --error-on-warnings", + "test": "pnpm lint && vitest run --coverage", + "test:ci": "biome check --error-on-warnings && vitest run --coverage", + "clean": "rimraf ./dist ./coverage ./node_modules" + } +} \ No newline at end of file diff --git a/node_modules/@cacheable/utils/LICENSE b/node_modules/@cacheable/utils/LICENSE new file mode 100644 index 0000000..9d6198a --- /dev/null +++ b/node_modules/@cacheable/utils/LICENSE @@ -0,0 +1,19 @@ +MIT License & © Jared Wray + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@cacheable/utils/README.md b/node_modules/@cacheable/utils/README.md new file mode 100644 index 0000000..4714943 --- /dev/null +++ b/node_modules/@cacheable/utils/README.md @@ -0,0 +1,520 @@ +[Cacheable](https://github.com/jaredwray/cacheable) + +> Cacheble Utils + +[![codecov](https://codecov.io/gh/jaredwray/cacheable/branch/main/graph/badge.svg?token=lWZ9OBQ7GM)](https://codecov.io/gh/jaredwray/cacheable) +[![tests](https://github.com/jaredwray/cacheable/actions/workflows/tests.yml/badge.svg)](https://github.com/jaredwray/cacheable/actions/workflows/tests.yml) +[![npm](https://img.shields.io/npm/dm/@cacheable/utils.svg)](https://www.npmjs.com/package/@cacheable/utils) +[![npm](https://img.shields.io/npm/v/@cacheable/utils)](https://www.npmjs.com/package/@cacheable/utils) +[![license](https://img.shields.io/github/license/jaredwray/cacheable)](https://github.com/jaredwray/cacheable/blob/main/LICENSE) + +`@cacheable/utils` is a collecton of utility functions, helpers, and types for `cacheable` and other caching libraries. It provides a robust set of features to enhance caching capabilities, including: + +* Data Types for Caching Items +* Hash Functions for Key Generation +* Coalesce Async for Handling Multiple Promises +* Stats Helpers for Caching Statistics +* Sleep / Delay for Testing and Timing +* Memoization for wraping or get / set options +* Time to Live (TTL) Helpers + +# Table of Contents +* [Getting Started](#getting-started) +* [Cacheable Types](#cacheable-types) +* [Coalesce Async](#coalesce-async) +* [Hash Functions](#hash-functions) +* [Shorthand Time Helpers](#shorthand-time-helpers) +* [Sleep Helper](#sleep-helper) +* [Stats Helpers](#stats-helpers) +* [Time to Live (TTL) Helpers](#time-to-live-ttl-helpers) +* [Run if Function Helper](#run-if-function-helper) +* [Less Than Helper](#less-than-helper) +* [Is Object Helper](#is-object-helper) +* [Wrap / Memoization for Sync and Async Functions](#wrap--memoization-for-sync-and-async-functions) +* [Get Or Set Memoization Function](#get-or-set-memoization-function) +* [How to Contribute](#how-to-contribute) +* [License and Copyright](#license-and-copyright) + +# Getting Started + +```bash +npm install @cacheable/utils --save +``` + +# Cacheable Types + +The `@cacheable/utils` package provides various types that are used throughout the caching library. These types help in defining the structure of cached items, ensuring type safety and consistency across your caching operations. + +```typescript + +/** + * CacheableItem + * @typedef {Object} CacheableItem + * @property {string} key - The key of the cacheable item + * @property {any} value - The value of the cacheable item + * @property {number|string} [ttl] - Time to Live - If you set a number it is miliseconds, if you set a string it is a human-readable + * format such as `1s` for 1 second or `1h` for 1 hour. Setting undefined means that it will use the default time-to-live. If both are + * undefined then it will not have a time-to-live. + */ +export type CacheableItem = { + key: string; + value: any; + ttl?: number | string; +}; + +/** + * CacheableStoreItem + * @typedef {Object} CacheableStoreItem + * @property {string} key - The key of the cacheable store item + * @property {any} value - The value of the cacheable store item + * @property {number} [expires] - The expiration time in milliseconds since epoch. If not set, the item does not expire. + */ +export type CacheableStoreItem = { + key: string; + value: any; + expires?: number; +}; +``` + +# Coalesce Async + +The `coalesceAsync` function is a utility that allows you to handle multiple asynchronous operations efficiently. It was designed by `Douglas Cayers` https://github.com/douglascayers/promise-coalesce. It helps in coalescing multiple promises into a single promise, ensuring that only one operation is executed at a time for the same key. + +```typescript +import { coalesceAsync } from '@cacheable/utils'; + +const fetchData = async (key: string) => { + // Simulate an asynchronous operation + return new Promise((resolve) => setTimeout(() => resolve(`Data for ${key}`), 1000)); +}; + +const result = await Promise.all([ + coalesceAsync('my-key', fetchData), + coalesceAsync('my-key', fetchData), + coalesceAsync('my-key', fetchData), +]); +console.log(result); // Data for my-key only executed once +``` + +# Hash Functions + +The `@cacheable/utils` package provides hash functions that can be used to generate unique keys for caching operations. These functions are useful for creating consistent and unique identifiers for cached items. + +The hashing API provides both **async** (for cryptographic algorithms) and **sync** (for non-cryptographic algorithms) methods. + +## Async Hashing (Cryptographic Algorithms) + +Use `hash()` and `hashToNumber()` for cryptographic algorithms like SHA-256, SHA-384, and SHA-512: + +```typescript +import { hash, hashToNumber, HashAlgorithm } from '@cacheable/utils'; + +// Hash using SHA-256 (default) +const key = await hash('my-cache-key'); +console.log(key); // Unique hash for 'my-cache-key' + +// Hash with specific algorithm +const sha512Hash = await hash('my-data', { algorithm: HashAlgorithm.SHA512 }); + +// Convert hash to number within range +const min = 0; +const max = 10; +const result = await hashToNumber({foo: 'bar'}, { min, max, algorithm: HashAlgorithm.SHA256 }); +console.log(result); // A number between 0 and 10 based on the hash value +``` + +## Sync Hashing (Non-Cryptographic Algorithms) + +Use `hashSync()` and `hashToNumberSync()` for faster, non-cryptographic algorithms like DJB2, FNV1, MURMER, and CRC32: + +```typescript +import { hashSync, hashToNumberSync, HashAlgorithm } from '@cacheable/utils'; + +// Hash using DJB2 (default for sync) +const key = hashSync('my-cache-key'); +console.log(key); // Unique hash for 'my-cache-key' + +// Hash with specific algorithm +const fnv1Hash = hashSync('my-data', { algorithm: HashAlgorithm.FNV1 }); + +// Convert hash to number within range +const min = 0; +const max = 10; +const result = hashToNumberSync({foo: 'bar'}, { min, max, algorithm: HashAlgorithm.DJB2 }); +console.log(result); // A number between 0 and 10 based on the hash value +``` + +## Available Hash Algorithms + +**Cryptographic (Async):** +- `HashAlgorithm.SHA256` - SHA-256 (default for async methods) +- `HashAlgorithm.SHA384` - SHA-384 +- `HashAlgorithm.SHA512` - SHA-512 + +**Non-Cryptographic (Sync):** +- `HashAlgorithm.DJB2` - DJB2 (default for sync methods) +- `HashAlgorithm.FNV1` - FNV-1 +- `HashAlgorithm.MURMER` - Murmur hash +- `HashAlgorithm.CRC32` - CRC32 + +# Shorthand Time Helpers + +The `@cacheable/utils` package provides a shorthand function to convert human-readable time strings into milliseconds. This is useful for setting time-to-live (TTL) values in caching operations. + +You can also use the `shorthandToMilliseconds` function: + +```typescript +import { shorthandToMilliseconds } from '@cacheable/utils'; + +const milliseconds = shorthandToMilliseconds('1h'); +console.log(milliseconds); // 3600000 +``` + +You can also use the `shorthandToTime` function to get the current date plus the shorthand time: + +```typescript +import { shorthandToTime } from '@cacheable/utils'; + +const currentDate = new Date(); +const timeInMs = shorthandToTime('1h', currentDate); +console.log(timeInMs); // Current date + 1 hour in milliseconds since epoch +``` + +# Sleep Helper + +The `sleep` function is a utility that allows you to pause execution for a specified duration. This can be useful in testing scenarios or when you need to introduce delays in your code. + +```typescript +import { sleep } from '@cacheable/utils'; + +await sleep(1000); // Pause for 1 second +console.log('Execution resumed after 1 second'); +``` + +# Stats Helpers + +The `@cacheable/utils` package provides statistics helpers that can be used to track and analyze caching operations. These helpers can be used to gather metrics such as hit rates, miss rates, and other performance-related statistics. + +```typescript +import { stats } from '@cacheable/utils'; + +const cacheStats = stats(); +cacheStats.incrementHits(); +console.log(cacheStats.hits); // Get the hit rate of the cache +``` + +# Time to Live (TTL) Helpers + +The `@cacheable/utils` package provides helpers for managing time-to-live (TTL) values for cached items. + +You can use the `calculateTtlFromExpiration` function to calculate the TTL based on an expiration date: + +```typescript +import { calculateTtlFromExpiration } from '@cacheable/utils'; + +const expirationDate = new Date(Date.now() + 1000 * 60 * 5); // 5 minutes from now +const ttl = calculateTtlFromExpiration(Date.now(), expirationDate); +console.log(ttl); // 300000 +``` + +You can also use `getTtlFromExpires` to get the TTL from an expiration date: + +```typescript +import { getTtlFromExpires } from '@cacheable/utils'; + +const expirationDate = new Date(Date.now() + 1000 * 60 * 5); // 5 minutes from now +const ttl = getTtlFromExpires(expirationDate); +console.log(ttl); // 300000 +``` + +You can use `getCascadingTtl` to get the TTL for cascading cache operations: + +```typescript +import { getCascadingTtl } from '@cacheable/utils'; +const cacheableTtl = 1000 * 60 * 5; // 5 minutes +const primaryTtl = 1000 * 60 * 2; // 2 minutes +const secondaryTtl = 1000 * 60; // 1 minute +const ttl = getCascadingTtl(cacheableTtl, primaryTtl, secondaryTtl); +``` + +# Run if Function Helper + +The `runIfFn` utility function provides a convenient way to conditionally execute functions or return values based on whether the input is a function or not. This pattern is commonly used in UI libraries and configuration systems where values can be either static or computed. + +```typescript +import { runIfFn } from '@cacheable/utils'; + +// Static value - returns the value as-is +const staticValue = runIfFn('hello world'); +console.log(staticValue); // 'hello world' + +// Function with no arguments - executes the function +const dynamicValue = runIfFn(() => new Date().toISOString()); +console.log(dynamicValue); // Current timestamp + +// Function with arguments - executes with provided arguments +const sum = runIfFn((a: number, b: number) => a + b, 5, 10); +console.log(sum); // 15 + +// Complex example with conditional logic +const getConfig = (isDevelopment: boolean) => ({ + apiUrl: isDevelopment ? 'http://localhost:3000' : 'https://api.example.com', + timeout: isDevelopment ? 5000 : 30000 +}); + +const config = runIfFn(getConfig, true); +console.log(config); // { apiUrl: 'http://localhost:3000', timeout: 5000 } +``` + +# Less Than Helper + +The `lessThan` utility function provides a safe way to compare two values and determine if the first value is less than the second. It only performs the comparison if both values are valid numbers, returning `false` for any non-number inputs. + +```typescript +import { lessThan } from '@cacheable/utils'; + +// Basic number comparisons +console.log(lessThan(1, 2)); // true +console.log(lessThan(2, 1)); // false +console.log(lessThan(1, 1)); // false + +// Works with negative numbers +console.log(lessThan(-1, 0)); // true +console.log(lessThan(-2, -1)); // true + +// Works with decimal numbers +console.log(lessThan(1.5, 2.5)); // true +console.log(lessThan(2.7, 2.7)); // false + +// Safe handling of non-number values +console.log(lessThan("1", 2)); // false +console.log(lessThan(1, "2")); // false +console.log(lessThan(null, 1)); // false +console.log(lessThan(undefined, 1)); // false +console.log(lessThan(NaN, 1)); // false + +// Useful in filtering and sorting operations +const numbers = [5, 2, 8, 1, 9]; +const lessThanFive = numbers.filter(n => lessThan(n, 5)); +console.log(lessThanFive); // [2, 1] + +// Safe comparison in conditional logic +function processValue(a?: number, b?: number) { + if (lessThan(a, b)) { + return `${a} is less than ${b}`; + } + return 'Invalid comparison or a >= b'; +} +``` + +This utility is particularly useful when dealing with potentially undefined or invalid numeric values, ensuring type safety in comparison operations. + +# Is Object Helper + +The `isObject` utility function provides a type-safe way to determine if a value is a plain object. It returns `true` for objects but `false` for arrays, `null`, functions, and primitive types. This function also serves as a TypeScript type guard. + +```typescript +import { isObject } from '@cacheable/utils'; + +// Basic object detection +console.log(isObject({})); // true +console.log(isObject({ name: 'John', age: 30 })); // true +console.log(isObject(Object.create(null))); // true + +// Arrays are not considered objects +console.log(isObject([])); // false +console.log(isObject([1, 2, 3])); // false + +// null is not considered an object (despite typeof null === 'object') +console.log(isObject(null)); // false + +// Primitive types return false +console.log(isObject('string')); // false +console.log(isObject(123)); // false +console.log(isObject(true)); // false +console.log(isObject(undefined)); // false + +// Functions return false +console.log(isObject(() => {})); // false +console.log(isObject(Date)); // false + +// Built-in object types return true +console.log(isObject(new Date())); // true +console.log(isObject(/regex/)); // true +console.log(isObject(new Error('test'))); // true +console.log(isObject(new Map())); // true + +// TypeScript type guard usage +function processValue(value: unknown) { + if (isObject<{ name: string; age: number }>(value)) { + // TypeScript now knows value is an object with name and age properties + console.log(`Name: ${value.name}, Age: ${value.age}`); + } +} + +// Useful for configuration validation +function validateConfig(config: unknown) { + if (!isObject(config)) { + throw new Error('Configuration must be an object'); + } + + // Safe to access object properties + return config; +} + +// Filtering arrays for objects only +const mixedArray = [1, 'string', {}, [], null, { valid: true }]; +const objectsOnly = mixedArray.filter(isObject); +console.log(objectsOnly); // [{}', { valid: true }] +``` + +This utility is particularly useful for: +- **Type validation** - Ensuring values are objects before accessing properties +- **TypeScript type guarding** - Narrowing types in conditional blocks +- **Configuration parsing** - Validating that configuration values are objects +- **Data filtering** - Separating objects from other data types + +# Wrap / Memoization for Sync and Async Functions + +The `@cacheable/utils` package provides two main functions: `wrap` and `wrapSync`. These functions are used to memoize asynchronous and synchronous functions, respectively. + +```javascript +import { Cacheable } from 'cacheable'; +const asyncFunction = async (value: number) => { + return Math.random() * value; +}; + +const cache = new Cacheable(); +const options = { + ttl: '1h', // 1 hour + keyPrefix: 'p1', // key prefix. This is used if you have multiple functions and need to set a unique prefix. + cache, +} +const wrappedFunction = wrap(asyncFunction, options); +console.log(await wrappedFunction(2)); // 4 +console.log(await wrappedFunction(2)); // 4 from cache +``` +With `wrap` we have also included stampede protection so that a `Promise` based call will only be called once if multiple requests of the same are executed at the same time. Here is an example of how to test for stampede protection: + +```javascript +import { Cacheable } from 'cacheable'; +const asyncFunction = async (value: number) => { + return value; +}; + +const cache = new Cacheable(); +const options = { + ttl: '1h', // 1 hour + keyPrefix: 'p1', // key prefix. This is used if you have multiple functions and need to set a unique prefix. + cache, +} + +const wrappedFunction = wrap(asyncFunction, options); +const promises = []; +for (let i = 0; i < 10; i++) { + promises.push(wrappedFunction(i)); +} + +const results = await Promise.all(promises); // all results should be the same + +console.log(results); // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] +``` + +In this example we are wrapping an `async` function in a cache with a `ttl` of `1 hour`. This will cache the result of the function for `1 hour` and then expire the value. You can also wrap a `sync` function in a cache: + +```javascript +import { CacheableMemory } from 'cacheable'; +const syncFunction = (value: number) => { + return value * 2; +}; + +const cache = new CacheableMemory(); +const wrappedFunction = wrap(syncFunction, { ttl: '1h', key: 'syncFunction', cache }); +console.log(wrappedFunction(2)); // 4 +console.log(wrappedFunction(2)); // 4 from cache +``` + +In this example we are wrapping a `sync` function in a cache with a `ttl` of `1 hour`. This will cache the result of the function for `1 hour` and then expire the value. You can also set the `key` property in the `wrap()` options to set a custom key for the cache. + +When an error occurs in the function it will not cache the value and will return the error. This is useful if you want to cache the results of a function but not cache the error. If you want it to cache the error you can set the `cacheError` property to `true` in the `wrap()` options. This is disabled by default. + +```javascript +import { CacheableMemory } from 'cacheable'; +const syncFunction = (value: number) => { + throw new Error('error'); +}; + +const cache = new CacheableMemory(); +const wrappedFunction = wrap(syncFunction, { ttl: '1h', key: 'syncFunction', cacheError: true, cache }); +console.log(wrappedFunction()); // error +console.log(wrappedFunction()); // error from cache +``` + +If you would like to generate your own key for the wrapped function you can set the `createKey` property in the `wrap()` options. This is useful if you want to generate a key based on the arguments of the function or any other criteria. + +```javascript + const cache = new Cacheable(); + const options: WrapOptions = { + cache, + keyPrefix: 'test', + createKey: (function_, arguments_, options: WrapOptions) => `customKey:${options?.keyPrefix}:${arguments_[0]}`, + }; + + const wrapped = wrap((argument: string) => `Result for ${argument}`, options); + + const result1 = await wrapped('arg1'); + const result2 = await wrapped('arg1'); // Should hit the cache + + console.log(result1); // Result for arg1 + console.log(result2); // Result for arg1 (from cache) +``` + +We will pass in the `function` that is being wrapped, the `arguments` passed to the function, and the `options` used to wrap the function. You can then use these to generate a custom key for the cache. + +# Get Or Set Memoization Function + +The `getOrSet` method provides a convenient way to implement the cache-aside pattern. It attempts to retrieve a value from cache, and if not found, calls the provided function to compute the value and store it in cache before returning it. Here are the options: + +```typescript +export type GetOrSetFunctionOptions = { + ttl?: number | string; + cacheErrors?: boolean; + throwErrors?: boolean; + nonBlocking?: boolean; +}; +``` + +The `nonBlocking` option allows you to override the instance-level `nonBlocking` setting for the `get` call within `getOrSet`. When set to `false`, the `get` will block and wait for a response from the secondary store before deciding whether to call the provided function. When set to `true`, the primary store returns immediately and syncs from secondary in the background. + +Here is an example of how to use the `getOrSet` method: + +```javascript +import { Cacheable } from 'cacheable'; +const cache = new Cacheable(); +// Use getOrSet to fetch user data +const function_ = async () => Math.random() * 100; +const value = await getOrSet('randomValue', function_, { ttl: '1h', cache }); +console.log(value); // e.g. 42.123456789 +``` + +You can also use a function to compute the key for the function: + +```javascript +import { Cacheable, GetOrSetOptions } from 'cacheable'; +const cache = new Cacheable(); + +// Function to generate a key based on options +const generateKey = (options?: GetOrSetOptions) => { + return `custom_key_:${options?.cacheId || 'default'}`; +}; + +const function_ = async () => Math.random() * 100; +const value = await getOrSet(generateKey(), function_, { ttl: '1h', cache }); +``` + +# How to Contribute + +You can contribute by forking the repo and submitting a pull request. Please make sure to add tests and update the documentation. To learn more about how to contribute go to our main README [https://github.com/jaredwray/cacheable](https://github.com/jaredwray/cacheable). This will talk about how to `Open a Pull Request`, `Ask a Question`, or `Post an Issue`. + +# License and Copyright +[MIT © Jared Wray](./LICENSE) diff --git a/node_modules/@cacheable/utils/dist/index.cjs b/node_modules/@cacheable/utils/dist/index.cjs new file mode 100644 index 0000000..e129983 --- /dev/null +++ b/node_modules/@cacheable/utils/dist/index.cjs @@ -0,0 +1,677 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/index.ts +var index_exports = {}; +__export(index_exports, { + HashAlgorithm: () => HashAlgorithm, + Stats: () => Stats, + calculateTtlFromExpiration: () => calculateTtlFromExpiration, + coalesceAsync: () => coalesceAsync, + createWrapKey: () => createWrapKey, + getCascadingTtl: () => getCascadingTtl, + getOrSet: () => getOrSet, + getTtlFromExpires: () => getTtlFromExpires, + hash: () => hash, + hashSync: () => hashSync, + hashToNumber: () => hashToNumber, + hashToNumberSync: () => hashToNumberSync, + isKeyvInstance: () => isKeyvInstance, + isObject: () => isObject, + lessThan: () => lessThan, + runIfFn: () => runIfFn, + shorthandToMilliseconds: () => shorthandToMilliseconds, + shorthandToTime: () => shorthandToTime, + sleep: () => sleep, + wrap: () => wrap, + wrapSync: () => wrapSync +}); +module.exports = __toCommonJS(index_exports); + +// src/shorthand-time.ts +var shorthandToMilliseconds = (shorthand) => { + let milliseconds; + if (shorthand === void 0) { + return void 0; + } + if (typeof shorthand === "number") { + milliseconds = shorthand; + } else { + if (typeof shorthand !== "string") { + return void 0; + } + shorthand = shorthand.trim(); + if (Number.isNaN(Number(shorthand))) { + const match = /^([\d.]+)\s*(ms|s|m|h|hr|d)$/i.exec(shorthand); + if (!match) { + throw new Error( + `Unsupported time format: "${shorthand}". Use 'ms', 's', 'm', 'h', 'hr', or 'd'.` + ); + } + const [, value, unit] = match; + const numericValue = Number.parseFloat(value); + const unitLower = unit.toLowerCase(); + switch (unitLower) { + case "ms": { + milliseconds = numericValue; + break; + } + case "s": { + milliseconds = numericValue * 1e3; + break; + } + case "m": { + milliseconds = numericValue * 1e3 * 60; + break; + } + case "h": { + milliseconds = numericValue * 1e3 * 60 * 60; + break; + } + case "hr": { + milliseconds = numericValue * 1e3 * 60 * 60; + break; + } + case "d": { + milliseconds = numericValue * 1e3 * 60 * 60 * 24; + break; + } + /* v8 ignore next -- @preserve */ + default: { + milliseconds = Number(shorthand); + } + } + } else { + milliseconds = Number(shorthand); + } + } + return milliseconds; +}; +var shorthandToTime = (shorthand, fromDate) => { + fromDate ??= /* @__PURE__ */ new Date(); + const milliseconds = shorthandToMilliseconds(shorthand); + if (milliseconds === void 0) { + return fromDate.getTime(); + } + return fromDate.getTime() + milliseconds; +}; + +// src/coalesce-async.ts +var callbacks = /* @__PURE__ */ new Map(); +function hasKey(key) { + return callbacks.has(key); +} +function addKey(key) { + callbacks.set(key, []); +} +function removeKey(key) { + callbacks.delete(key); +} +function addCallbackToKey(key, callback) { + const stash = getCallbacksByKey(key); + stash.push(callback); + callbacks.set(key, stash); +} +function getCallbacksByKey(key) { + return callbacks.get(key) ?? []; +} +async function enqueue(key) { + return new Promise((resolve, reject) => { + const callback = { resolve, reject }; + addCallbackToKey(key, callback); + }); +} +function dequeue(key) { + const stash = getCallbacksByKey(key); + removeKey(key); + return stash; +} +function coalesce(options) { + const { key, error, result } = options; + for (const callback of dequeue(key)) { + if (error) { + callback.reject(error); + } else { + callback.resolve(result); + } + } +} +async function coalesceAsync(key, fnc) { + if (!hasKey(key)) { + addKey(key); + try { + const result = await Promise.resolve(fnc()); + coalesce({ key, result }); + return result; + } catch (error) { + coalesce({ key, error }); + throw error; + } + } + return enqueue(key); +} + +// src/hash.ts +var import_hashery = require("hashery"); +var HashAlgorithm = /* @__PURE__ */ ((HashAlgorithm2) => { + HashAlgorithm2["SHA256"] = "SHA-256"; + HashAlgorithm2["SHA384"] = "SHA-384"; + HashAlgorithm2["SHA512"] = "SHA-512"; + HashAlgorithm2["DJB2"] = "djb2"; + HashAlgorithm2["FNV1"] = "fnv1"; + HashAlgorithm2["MURMER"] = "murmer"; + HashAlgorithm2["CRC32"] = "crc32"; + return HashAlgorithm2; +})(HashAlgorithm || {}); +async function hash(object, options = { + algorithm: "SHA-256" /* SHA256 */, + serialize: JSON.stringify +}) { + const algorithm = options?.algorithm ?? "SHA-256" /* SHA256 */; + const serialize = options?.serialize ?? JSON.stringify; + const objectString = serialize(object); + const hashery = new import_hashery.Hashery(); + return hashery.toHash(objectString, { algorithm }); +} +function hashSync(object, options = { + algorithm: "djb2" /* DJB2 */, + serialize: JSON.stringify +}) { + const algorithm = options?.algorithm ?? "djb2" /* DJB2 */; + const serialize = options?.serialize ?? JSON.stringify; + const objectString = serialize(object); + const hashery = new import_hashery.Hashery(); + return hashery.toHashSync(objectString, { algorithm }); +} +async function hashToNumber(object, options = { + min: 0, + max: 10, + algorithm: "SHA-256" /* SHA256 */, + serialize: JSON.stringify +}) { + const min = options?.min ?? 0; + const max = options?.max ?? 10; + const algorithm = options?.algorithm ?? "SHA-256" /* SHA256 */; + const serialize = options?.serialize ?? JSON.stringify; + const hashLength = options?.hashLength ?? 16; + if (min >= max) { + throw new Error( + `Invalid range: min (${min}) must be less than max (${max})` + ); + } + const objectString = serialize(object); + const hashery = new import_hashery.Hashery(); + return hashery.toNumber(objectString, { + algorithm, + min, + max, + hashLength + }); +} +function hashToNumberSync(object, options = { + min: 0, + max: 10, + algorithm: "djb2" /* DJB2 */, + serialize: JSON.stringify +}) { + const min = options?.min ?? 0; + const max = options?.max ?? 10; + const algorithm = options?.algorithm ?? "djb2" /* DJB2 */; + const serialize = options?.serialize ?? JSON.stringify; + const hashLength = options?.hashLength ?? 16; + if (min >= max) { + throw new Error( + `Invalid range: min (${min}) must be less than max (${max})` + ); + } + const objectString = serialize(object); + const hashery = new import_hashery.Hashery(); + return hashery.toNumberSync(objectString, { + algorithm, + min, + max, + hashLength + }); +} + +// src/is-keyv-instance.ts +var import_keyv = require("keyv"); +function isKeyvInstance(keyv) { + if (keyv === null || keyv === void 0) { + return false; + } + if (keyv instanceof import_keyv.Keyv) { + return true; + } + const keyvMethods = [ + "generateIterator", + "get", + "getMany", + "set", + "setMany", + "delete", + "deleteMany", + "has", + "hasMany", + "clear", + "disconnect", + "serialize", + "deserialize" + ]; + return keyvMethods.every((method) => typeof keyv[method] === "function"); +} + +// src/is-object.ts +function isObject(value) { + return value !== null && typeof value === "object" && !Array.isArray(value); +} + +// src/less-than.ts +function lessThan(number1, number2) { + return typeof number1 === "number" && typeof number2 === "number" ? number1 < number2 : false; +} + +// src/memoize.ts +function wrapSync(function_, options) { + const { ttl, keyPrefix, cache, serialize } = options; + return (...arguments_) => { + let cacheKey = createWrapKey(function_, arguments_, { + keyPrefix, + serialize + }); + if (options.createKey) { + cacheKey = options.createKey(function_, arguments_, options); + } + let value = cache.get(cacheKey); + if (value === void 0) { + try { + value = function_(...arguments_); + cache.set(cacheKey, value, ttl); + } catch (error) { + cache.emit("error", error); + if (options.cacheErrors) { + cache.set(cacheKey, error, ttl); + } + } + } + return value; + }; +} +async function getOrSet(key, function_, options) { + const keyString = typeof key === "function" ? key(options) : key; + let value; + try { + value = await options.cache.get(keyString); + } catch (error) { + options.cache.emit("error", error); + if (options.throwErrors === true || options.throwErrors === "store") { + throw error; + } + } + if (value === void 0) { + const cacheId = options.cacheId ?? "default"; + const coalesceKey = `${cacheId}::${keyString}`; + value = await coalesceAsync(coalesceKey, async () => { + let result; + try { + try { + result = await function_(); + } catch (error) { + throw new ErrorEnvelope( + error, + "function" + ); + } + try { + await options.cache.set(keyString, result, options.ttl); + } catch (error) { + throw new ErrorEnvelope(error, "store"); + } + return result; + } catch (caught) { + const errorType = caught instanceof ErrorEnvelope ? caught.context : ( + /* c8 ignore next 1 */ + void 0 + ); + const error = caught instanceof ErrorEnvelope ? caught.error : caught; + options.cache.emit("error", error); + if (options.cacheErrors) { + await options.cache.set(keyString, error, options.ttl); + } + if (options.throwErrors === true || options.throwErrors === errorType) { + throw error; + } + } + return result; + }); + } + return value; +} +function wrap(function_, options) { + const { keyPrefix, serialize } = options; + return async (...arguments_) => { + let cacheKey = createWrapKey(function_, arguments_, { + keyPrefix, + serialize + }); + if (options.createKey) { + cacheKey = options.createKey(function_, arguments_, options); + } + return getOrSet( + cacheKey, + async () => function_(...arguments_), + options + ); + }; +} +function createWrapKey(function_, arguments_, options) { + const { keyPrefix, serialize } = options || {}; + if (!keyPrefix) { + return `${function_.name}::${hashSync(arguments_, { serialize })}`; + } + return `${keyPrefix}::${function_.name}::${hashSync(arguments_, { serialize })}`; +} +var ErrorEnvelope = class { + constructor(error, context) { + this.error = error; + this.context = context; + } +}; + +// src/run-if-fn.ts +function runIfFn(valueOrFunction, ...arguments_) { + return typeof valueOrFunction === "function" ? valueOrFunction(...arguments_) : valueOrFunction; +} + +// src/sleep.ts +var sleep = async (ms) => new Promise((resolve) => setTimeout(resolve, ms)); + +// src/stats.ts +var Stats = class { + _hits = 0; + _misses = 0; + _gets = 0; + _sets = 0; + _deletes = 0; + _clears = 0; + _vsize = 0; + _ksize = 0; + _count = 0; + _enabled = false; + constructor(options) { + if (options?.enabled) { + this._enabled = options.enabled; + } + } + /** + * @returns {boolean} - Whether the stats are enabled + */ + get enabled() { + return this._enabled; + } + /** + * @param {boolean} enabled - Whether to enable the stats + */ + set enabled(enabled) { + this._enabled = enabled; + } + /** + * @returns {number} - The number of hits + * @readonly + */ + get hits() { + return this._hits; + } + /** + * @returns {number} - The number of misses + * @readonly + */ + get misses() { + return this._misses; + } + /** + * @returns {number} - The number of gets + * @readonly + */ + get gets() { + return this._gets; + } + /** + * @returns {number} - The number of sets + * @readonly + */ + get sets() { + return this._sets; + } + /** + * @returns {number} - The number of deletes + * @readonly + */ + get deletes() { + return this._deletes; + } + /** + * @returns {number} - The number of clears + * @readonly + */ + get clears() { + return this._clears; + } + /** + * @returns {number} - The vsize (value size) of the cache instance + * @readonly + */ + get vsize() { + return this._vsize; + } + /** + * @returns {number} - The ksize (key size) of the cache instance + * @readonly + */ + get ksize() { + return this._ksize; + } + /** + * @returns {number} - The count of the cache instance + * @readonly + */ + get count() { + return this._count; + } + incrementHits() { + if (!this._enabled) { + return; + } + this._hits++; + } + incrementMisses() { + if (!this._enabled) { + return; + } + this._misses++; + } + incrementGets() { + if (!this._enabled) { + return; + } + this._gets++; + } + incrementSets() { + if (!this._enabled) { + return; + } + this._sets++; + } + incrementDeletes() { + if (!this._enabled) { + return; + } + this._deletes++; + } + incrementClears() { + if (!this._enabled) { + return; + } + this._clears++; + } + incrementVSize(value) { + if (!this._enabled) { + return; + } + this._vsize += this.roughSizeOfObject(value); + } + decreaseVSize(value) { + if (!this._enabled) { + return; + } + this._vsize -= this.roughSizeOfObject(value); + } + incrementKSize(key) { + if (!this._enabled) { + return; + } + this._ksize += this.roughSizeOfString(key); + } + decreaseKSize(key) { + if (!this._enabled) { + return; + } + this._ksize -= this.roughSizeOfString(key); + } + incrementCount() { + if (!this._enabled) { + return; + } + this._count++; + } + decreaseCount() { + if (!this._enabled) { + return; + } + this._count--; + } + setCount(count) { + if (!this._enabled) { + return; + } + this._count = count; + } + roughSizeOfString(value) { + return value.length * 2; + } + roughSizeOfObject(object) { + const objectList = []; + const stack = [object]; + let bytes = 0; + while (stack.length > 0) { + const value = stack.pop(); + if (typeof value === "boolean") { + bytes += 4; + } else if (typeof value === "string") { + bytes += value.length * 2; + } else if (typeof value === "number") { + bytes += 8; + } else { + if (value === null || value === void 0) { + bytes += 4; + continue; + } + if (objectList.includes(value)) { + continue; + } + objectList.push(value); + for (const key in value) { + bytes += key.length * 2; + stack.push(value[key]); + } + } + } + return bytes; + } + reset() { + this._hits = 0; + this._misses = 0; + this._gets = 0; + this._sets = 0; + this._deletes = 0; + this._clears = 0; + this._vsize = 0; + this._ksize = 0; + this._count = 0; + } + resetStoreValues() { + this._vsize = 0; + this._ksize = 0; + this._count = 0; + } +}; + +// src/ttl.ts +function getTtlFromExpires(expires) { + if (expires === void 0 || expires === null) { + return void 0; + } + const now = Date.now(); + if (expires < now) { + return void 0; + } + return expires - now; +} +function getCascadingTtl(cacheableTtl, primaryTtl, secondaryTtl) { + return secondaryTtl ?? primaryTtl ?? shorthandToMilliseconds(cacheableTtl); +} +function calculateTtlFromExpiration(ttl, expires) { + const ttlFromExpires = getTtlFromExpires(expires); + const expiresFromTtl = ttl ? Date.now() + ttl : void 0; + if (ttlFromExpires === void 0) { + return ttl; + } + if (expiresFromTtl === void 0) { + return ttlFromExpires; + } + if (expires && expires > expiresFromTtl) { + return ttl; + } + return ttlFromExpires; +} +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + HashAlgorithm, + Stats, + calculateTtlFromExpiration, + coalesceAsync, + createWrapKey, + getCascadingTtl, + getOrSet, + getTtlFromExpires, + hash, + hashSync, + hashToNumber, + hashToNumberSync, + isKeyvInstance, + isObject, + lessThan, + runIfFn, + shorthandToMilliseconds, + shorthandToTime, + sleep, + wrap, + wrapSync +}); +/* v8 ignore next -- @preserve */ diff --git a/node_modules/@cacheable/utils/dist/index.d.cts b/node_modules/@cacheable/utils/dist/index.d.cts new file mode 100644 index 0000000..d547e39 --- /dev/null +++ b/node_modules/@cacheable/utils/dist/index.d.cts @@ -0,0 +1,307 @@ +/** + * Converts a shorthand time string or number into milliseconds. + * The shorthand can be a string like '1s', '2m', '3h', '4d', or a number representing milliseconds. + * If the input is undefined, it returns undefined. + * If the input is a string that does not match the expected format, it throws an error. + * @param shorthand - A shorthand time string or number representing milliseconds. + * @returns The equivalent time in milliseconds or undefined. + */ +declare const shorthandToMilliseconds: (shorthand?: string | number) => number | undefined; +/** + * Converts a shorthand time string or number into a timestamp. + * If the shorthand is undefined, it returns the current date's timestamp. + * If the shorthand is a valid time format, it adds that duration to the current date's timestamp. + * @param shorthand - A shorthand time string or number representing milliseconds. + * @param fromDate - An optional Date object to calculate from. Defaults to the current date if not provided. + * @returns The timestamp in milliseconds since epoch. + */ +declare const shorthandToTime: (shorthand?: string | number, fromDate?: Date) => number; + +/** + * CacheableItem + * @typedef {Object} CacheableItem + * @property {string} key - The key of the cacheable item + * @property {any} value - The value of the cacheable item + * @property {number|string} [ttl] - Time to Live - If you set a number it is miliseconds, if you set a string it is a human-readable + * format such as `1s` for 1 second or `1h` for 1 hour. Setting undefined means that it will use the default time-to-live. If both are + * undefined then it will not have a time-to-live. + */ +type CacheableItem = { + key: string; + value: any; + ttl?: number | string; +}; +/** + * CacheableStoreItem + * @typedef {Object} CacheableStoreItem + * @property {string} key - The key of the cacheable store item + * @property {any} value - The value of the cacheable store item + * @property {number} [expires] - The expiration time in milliseconds since epoch. If not set, the item does not expire. + */ +type CacheableStoreItem = { + key: string; + value: any; + expires?: number; +}; + +/** + * Enqueue a promise for the group identified by `key`. + * + * All requests received for the same key while a request for that key + * is already being executed will wait. Once the running request settles + * then all the waiting requests in the group will settle, too. + * This minimizes how many times the function itself runs at the same time. + * This function resolves or rejects according to the given function argument. + * + * @url https://github.com/douglascayers/promise-coalesce + */ +declare function coalesceAsync( +/** + * Any identifier to group requests together. + */ +key: string, +/** + * The function to run. + */ +fnc: () => T | PromiseLike): Promise; + +declare enum HashAlgorithm { + SHA256 = "SHA-256", + SHA384 = "SHA-384", + SHA512 = "SHA-512", + DJB2 = "djb2", + FNV1 = "fnv1", + MURMER = "murmer", + CRC32 = "crc32" +} +type HashOptions = { + algorithm?: HashAlgorithm; + serialize?: (object: any) => string; +}; +type HashToNumberOptions = HashOptions & { + min?: number; + max?: number; + hashLength?: number; +}; +/** + * Hashes an object asynchronously using the specified cryptographic algorithm. + * This method should be used for cryptographic algorithms (SHA-256, SHA-384, SHA-512). + * For non-cryptographic algorithms, use hashSync() for better performance. + * @param object The object to hash + * @param options The hash options to use + * @returns {Promise} The hash of the object + */ +declare function hash(object: any, options?: HashOptions): Promise; +/** + * Hashes an object synchronously using the specified non-cryptographic algorithm. + * This method should be used for non-cryptographic algorithms (DJB2, FNV1, MURMER, CRC32). + * For cryptographic algorithms, use hash() instead. + * @param object The object to hash + * @param options The hash options to use + * @returns {string} The hash of the object + */ +declare function hashSync(object: any, options?: HashOptions): string; +/** + * Hashes an object asynchronously and converts it to a number within a specified range. + * This method should be used for cryptographic algorithms (SHA-256, SHA-384, SHA-512). + * For non-cryptographic algorithms, use hashToNumberSync() for better performance. + * @param object The object to hash + * @param options The hash options to use including min/max range + * @returns {Promise} A number within the specified range + */ +declare function hashToNumber(object: any, options?: HashToNumberOptions): Promise; +/** + * Hashes an object synchronously and converts it to a number within a specified range. + * This method should be used for non-cryptographic algorithms (DJB2, FNV1, MURMER, CRC32). + * For cryptographic algorithms, use hashToNumber() instead. + * @param object The object to hash + * @param options The hash options to use including min/max range + * @returns {number} A number within the specified range + */ +declare function hashToNumberSync(object: any, options?: HashToNumberOptions): number; + +declare function isKeyvInstance(keyv: any): boolean; + +declare function isObject>(value: unknown): value is T; + +declare function lessThan(number1?: number, number2?: number): boolean; + +type CacheInstance = { + get: (key: string) => Promise; + has: (key: string) => Promise; + set: (key: string, value: any, ttl?: number | string) => Promise; + on: (event: string, listener: (...args: any[]) => void) => void; + emit: (event: string, ...args: any[]) => boolean; +}; +type CacheSyncInstance = { + get: (key: string) => any | undefined; + has: (key: string) => boolean; + set: (key: string, value: any, ttl?: number | string) => void; + on: (event: string, listener: (...args: any[]) => void) => void; + emit: (event: string, ...args: any[]) => boolean; +}; +type GetOrSetKey = string | ((options?: GetOrSetOptions) => string); +type GetOrSetThrowErrorsContext = "function" | "store"; +type GetOrSetFunctionOptions = { + ttl?: number | string; + cacheErrors?: boolean; + /** Whether or not to throw errors: + * - `false` (default) - do not throw any errors + * - `true` - throw any error + * - `"function"` - only throw errors that occur in the provided function / setter + * - `"store"` - only throw errors that occur when getting/setting the cache + */ + throwErrors?: boolean | GetOrSetThrowErrorsContext; + /** + * If set, this will bypass the instances nonBlocking setting for the get call. + * @type {boolean} + */ + nonBlocking?: boolean; +}; +type GetOrSetOptions = GetOrSetFunctionOptions & { + cacheId?: string; + cache: CacheInstance; +}; +type CreateWrapKey = (function_: AnyFunction, arguments_: any[], options?: WrapFunctionOptions) => string; +type WrapFunctionOptions = { + ttl?: number | string; + keyPrefix?: string; + createKey?: CreateWrapKey; + cacheErrors?: boolean; + cacheId?: string; + serialize?: (object: any) => string; +}; +type WrapOptions = WrapFunctionOptions & { + cache: CacheInstance; + serialize?: (object: any) => string; +}; +type WrapSyncOptions = WrapFunctionOptions & { + cache: CacheSyncInstance; + serialize?: (object: any) => string; +}; +type AnyFunction = (...arguments_: any[]) => any; +declare function wrapSync(function_: AnyFunction, options: WrapSyncOptions): AnyFunction; +declare function getOrSet(key: GetOrSetKey, function_: () => Promise, options: GetOrSetOptions): Promise; +declare function wrap(function_: AnyFunction, options: WrapOptions): AnyFunction; +type CreateWrapKeyOptions = { + keyPrefix?: string; + serialize?: (object: any) => string; +}; +declare function createWrapKey(function_: AnyFunction, arguments_: any[], options?: CreateWrapKeyOptions): string; + +type Function_ = (...arguments_: P[]) => T; +declare function runIfFn(valueOrFunction: T | Function_, ...arguments_: P[]): T; + +declare const sleep: (ms: number) => Promise; + +type StatsOptions = { + enabled?: boolean; +}; +declare class Stats { + private _hits; + private _misses; + private _gets; + private _sets; + private _deletes; + private _clears; + private _vsize; + private _ksize; + private _count; + private _enabled; + constructor(options?: StatsOptions); + /** + * @returns {boolean} - Whether the stats are enabled + */ + get enabled(): boolean; + /** + * @param {boolean} enabled - Whether to enable the stats + */ + set enabled(enabled: boolean); + /** + * @returns {number} - The number of hits + * @readonly + */ + get hits(): number; + /** + * @returns {number} - The number of misses + * @readonly + */ + get misses(): number; + /** + * @returns {number} - The number of gets + * @readonly + */ + get gets(): number; + /** + * @returns {number} - The number of sets + * @readonly + */ + get sets(): number; + /** + * @returns {number} - The number of deletes + * @readonly + */ + get deletes(): number; + /** + * @returns {number} - The number of clears + * @readonly + */ + get clears(): number; + /** + * @returns {number} - The vsize (value size) of the cache instance + * @readonly + */ + get vsize(): number; + /** + * @returns {number} - The ksize (key size) of the cache instance + * @readonly + */ + get ksize(): number; + /** + * @returns {number} - The count of the cache instance + * @readonly + */ + get count(): number; + incrementHits(): void; + incrementMisses(): void; + incrementGets(): void; + incrementSets(): void; + incrementDeletes(): void; + incrementClears(): void; + incrementVSize(value: any): void; + decreaseVSize(value: any): void; + incrementKSize(key: string): void; + decreaseKSize(key: string): void; + incrementCount(): void; + decreaseCount(): void; + setCount(count: number): void; + roughSizeOfString(value: string): number; + roughSizeOfObject(object: any): number; + reset(): void; + resetStoreValues(): void; +} + +/** + * Converts a exspires value to a TTL value. + * @param expires - The expires value to convert. + * @returns {number | undefined} The TTL value in milliseconds, or undefined if the expires value is not valid. + */ +declare function getTtlFromExpires(expires: number | undefined): number | undefined; +/** + * Get the TTL value from the cacheableTtl, primaryTtl, and secondaryTtl values. + * @param cacheableTtl - The cacheableTtl value to use. + * @param primaryTtl - The primaryTtl value to use. + * @param secondaryTtl - The secondaryTtl value to use. + * @returns {number | undefined} The TTL value in milliseconds, or undefined if all values are undefined. + */ +declare function getCascadingTtl(cacheableTtl?: number | string, primaryTtl?: number, secondaryTtl?: number): number | undefined; +/** + * Calculate the TTL value from the expires value. If the ttl is undefined, it will be set to the expires value. If the + * expires value is undefined, it will be set to the ttl value. If both values are defined, the smaller of the two will be used. + * @param ttl + * @param expires + * @returns + */ +declare function calculateTtlFromExpiration(ttl: number | undefined, expires: number | undefined): number | undefined; + +export { type AnyFunction, type CacheInstance, type CacheSyncInstance, type CacheableItem, type CacheableStoreItem, type CreateWrapKey, type CreateWrapKeyOptions, type GetOrSetFunctionOptions, type GetOrSetKey, type GetOrSetOptions, HashAlgorithm, type HashOptions, type HashToNumberOptions, Stats, type StatsOptions, type WrapFunctionOptions, type WrapOptions, type WrapSyncOptions, calculateTtlFromExpiration, coalesceAsync, createWrapKey, getCascadingTtl, getOrSet, getTtlFromExpires, hash, hashSync, hashToNumber, hashToNumberSync, isKeyvInstance, isObject, lessThan, runIfFn, shorthandToMilliseconds, shorthandToTime, sleep, wrap, wrapSync }; diff --git a/node_modules/@cacheable/utils/dist/index.d.ts b/node_modules/@cacheable/utils/dist/index.d.ts new file mode 100644 index 0000000..d547e39 --- /dev/null +++ b/node_modules/@cacheable/utils/dist/index.d.ts @@ -0,0 +1,307 @@ +/** + * Converts a shorthand time string or number into milliseconds. + * The shorthand can be a string like '1s', '2m', '3h', '4d', or a number representing milliseconds. + * If the input is undefined, it returns undefined. + * If the input is a string that does not match the expected format, it throws an error. + * @param shorthand - A shorthand time string or number representing milliseconds. + * @returns The equivalent time in milliseconds or undefined. + */ +declare const shorthandToMilliseconds: (shorthand?: string | number) => number | undefined; +/** + * Converts a shorthand time string or number into a timestamp. + * If the shorthand is undefined, it returns the current date's timestamp. + * If the shorthand is a valid time format, it adds that duration to the current date's timestamp. + * @param shorthand - A shorthand time string or number representing milliseconds. + * @param fromDate - An optional Date object to calculate from. Defaults to the current date if not provided. + * @returns The timestamp in milliseconds since epoch. + */ +declare const shorthandToTime: (shorthand?: string | number, fromDate?: Date) => number; + +/** + * CacheableItem + * @typedef {Object} CacheableItem + * @property {string} key - The key of the cacheable item + * @property {any} value - The value of the cacheable item + * @property {number|string} [ttl] - Time to Live - If you set a number it is miliseconds, if you set a string it is a human-readable + * format such as `1s` for 1 second or `1h` for 1 hour. Setting undefined means that it will use the default time-to-live. If both are + * undefined then it will not have a time-to-live. + */ +type CacheableItem = { + key: string; + value: any; + ttl?: number | string; +}; +/** + * CacheableStoreItem + * @typedef {Object} CacheableStoreItem + * @property {string} key - The key of the cacheable store item + * @property {any} value - The value of the cacheable store item + * @property {number} [expires] - The expiration time in milliseconds since epoch. If not set, the item does not expire. + */ +type CacheableStoreItem = { + key: string; + value: any; + expires?: number; +}; + +/** + * Enqueue a promise for the group identified by `key`. + * + * All requests received for the same key while a request for that key + * is already being executed will wait. Once the running request settles + * then all the waiting requests in the group will settle, too. + * This minimizes how many times the function itself runs at the same time. + * This function resolves or rejects according to the given function argument. + * + * @url https://github.com/douglascayers/promise-coalesce + */ +declare function coalesceAsync( +/** + * Any identifier to group requests together. + */ +key: string, +/** + * The function to run. + */ +fnc: () => T | PromiseLike): Promise; + +declare enum HashAlgorithm { + SHA256 = "SHA-256", + SHA384 = "SHA-384", + SHA512 = "SHA-512", + DJB2 = "djb2", + FNV1 = "fnv1", + MURMER = "murmer", + CRC32 = "crc32" +} +type HashOptions = { + algorithm?: HashAlgorithm; + serialize?: (object: any) => string; +}; +type HashToNumberOptions = HashOptions & { + min?: number; + max?: number; + hashLength?: number; +}; +/** + * Hashes an object asynchronously using the specified cryptographic algorithm. + * This method should be used for cryptographic algorithms (SHA-256, SHA-384, SHA-512). + * For non-cryptographic algorithms, use hashSync() for better performance. + * @param object The object to hash + * @param options The hash options to use + * @returns {Promise} The hash of the object + */ +declare function hash(object: any, options?: HashOptions): Promise; +/** + * Hashes an object synchronously using the specified non-cryptographic algorithm. + * This method should be used for non-cryptographic algorithms (DJB2, FNV1, MURMER, CRC32). + * For cryptographic algorithms, use hash() instead. + * @param object The object to hash + * @param options The hash options to use + * @returns {string} The hash of the object + */ +declare function hashSync(object: any, options?: HashOptions): string; +/** + * Hashes an object asynchronously and converts it to a number within a specified range. + * This method should be used for cryptographic algorithms (SHA-256, SHA-384, SHA-512). + * For non-cryptographic algorithms, use hashToNumberSync() for better performance. + * @param object The object to hash + * @param options The hash options to use including min/max range + * @returns {Promise} A number within the specified range + */ +declare function hashToNumber(object: any, options?: HashToNumberOptions): Promise; +/** + * Hashes an object synchronously and converts it to a number within a specified range. + * This method should be used for non-cryptographic algorithms (DJB2, FNV1, MURMER, CRC32). + * For cryptographic algorithms, use hashToNumber() instead. + * @param object The object to hash + * @param options The hash options to use including min/max range + * @returns {number} A number within the specified range + */ +declare function hashToNumberSync(object: any, options?: HashToNumberOptions): number; + +declare function isKeyvInstance(keyv: any): boolean; + +declare function isObject>(value: unknown): value is T; + +declare function lessThan(number1?: number, number2?: number): boolean; + +type CacheInstance = { + get: (key: string) => Promise; + has: (key: string) => Promise; + set: (key: string, value: any, ttl?: number | string) => Promise; + on: (event: string, listener: (...args: any[]) => void) => void; + emit: (event: string, ...args: any[]) => boolean; +}; +type CacheSyncInstance = { + get: (key: string) => any | undefined; + has: (key: string) => boolean; + set: (key: string, value: any, ttl?: number | string) => void; + on: (event: string, listener: (...args: any[]) => void) => void; + emit: (event: string, ...args: any[]) => boolean; +}; +type GetOrSetKey = string | ((options?: GetOrSetOptions) => string); +type GetOrSetThrowErrorsContext = "function" | "store"; +type GetOrSetFunctionOptions = { + ttl?: number | string; + cacheErrors?: boolean; + /** Whether or not to throw errors: + * - `false` (default) - do not throw any errors + * - `true` - throw any error + * - `"function"` - only throw errors that occur in the provided function / setter + * - `"store"` - only throw errors that occur when getting/setting the cache + */ + throwErrors?: boolean | GetOrSetThrowErrorsContext; + /** + * If set, this will bypass the instances nonBlocking setting for the get call. + * @type {boolean} + */ + nonBlocking?: boolean; +}; +type GetOrSetOptions = GetOrSetFunctionOptions & { + cacheId?: string; + cache: CacheInstance; +}; +type CreateWrapKey = (function_: AnyFunction, arguments_: any[], options?: WrapFunctionOptions) => string; +type WrapFunctionOptions = { + ttl?: number | string; + keyPrefix?: string; + createKey?: CreateWrapKey; + cacheErrors?: boolean; + cacheId?: string; + serialize?: (object: any) => string; +}; +type WrapOptions = WrapFunctionOptions & { + cache: CacheInstance; + serialize?: (object: any) => string; +}; +type WrapSyncOptions = WrapFunctionOptions & { + cache: CacheSyncInstance; + serialize?: (object: any) => string; +}; +type AnyFunction = (...arguments_: any[]) => any; +declare function wrapSync(function_: AnyFunction, options: WrapSyncOptions): AnyFunction; +declare function getOrSet(key: GetOrSetKey, function_: () => Promise, options: GetOrSetOptions): Promise; +declare function wrap(function_: AnyFunction, options: WrapOptions): AnyFunction; +type CreateWrapKeyOptions = { + keyPrefix?: string; + serialize?: (object: any) => string; +}; +declare function createWrapKey(function_: AnyFunction, arguments_: any[], options?: CreateWrapKeyOptions): string; + +type Function_ = (...arguments_: P[]) => T; +declare function runIfFn(valueOrFunction: T | Function_, ...arguments_: P[]): T; + +declare const sleep: (ms: number) => Promise; + +type StatsOptions = { + enabled?: boolean; +}; +declare class Stats { + private _hits; + private _misses; + private _gets; + private _sets; + private _deletes; + private _clears; + private _vsize; + private _ksize; + private _count; + private _enabled; + constructor(options?: StatsOptions); + /** + * @returns {boolean} - Whether the stats are enabled + */ + get enabled(): boolean; + /** + * @param {boolean} enabled - Whether to enable the stats + */ + set enabled(enabled: boolean); + /** + * @returns {number} - The number of hits + * @readonly + */ + get hits(): number; + /** + * @returns {number} - The number of misses + * @readonly + */ + get misses(): number; + /** + * @returns {number} - The number of gets + * @readonly + */ + get gets(): number; + /** + * @returns {number} - The number of sets + * @readonly + */ + get sets(): number; + /** + * @returns {number} - The number of deletes + * @readonly + */ + get deletes(): number; + /** + * @returns {number} - The number of clears + * @readonly + */ + get clears(): number; + /** + * @returns {number} - The vsize (value size) of the cache instance + * @readonly + */ + get vsize(): number; + /** + * @returns {number} - The ksize (key size) of the cache instance + * @readonly + */ + get ksize(): number; + /** + * @returns {number} - The count of the cache instance + * @readonly + */ + get count(): number; + incrementHits(): void; + incrementMisses(): void; + incrementGets(): void; + incrementSets(): void; + incrementDeletes(): void; + incrementClears(): void; + incrementVSize(value: any): void; + decreaseVSize(value: any): void; + incrementKSize(key: string): void; + decreaseKSize(key: string): void; + incrementCount(): void; + decreaseCount(): void; + setCount(count: number): void; + roughSizeOfString(value: string): number; + roughSizeOfObject(object: any): number; + reset(): void; + resetStoreValues(): void; +} + +/** + * Converts a exspires value to a TTL value. + * @param expires - The expires value to convert. + * @returns {number | undefined} The TTL value in milliseconds, or undefined if the expires value is not valid. + */ +declare function getTtlFromExpires(expires: number | undefined): number | undefined; +/** + * Get the TTL value from the cacheableTtl, primaryTtl, and secondaryTtl values. + * @param cacheableTtl - The cacheableTtl value to use. + * @param primaryTtl - The primaryTtl value to use. + * @param secondaryTtl - The secondaryTtl value to use. + * @returns {number | undefined} The TTL value in milliseconds, or undefined if all values are undefined. + */ +declare function getCascadingTtl(cacheableTtl?: number | string, primaryTtl?: number, secondaryTtl?: number): number | undefined; +/** + * Calculate the TTL value from the expires value. If the ttl is undefined, it will be set to the expires value. If the + * expires value is undefined, it will be set to the ttl value. If both values are defined, the smaller of the two will be used. + * @param ttl + * @param expires + * @returns + */ +declare function calculateTtlFromExpiration(ttl: number | undefined, expires: number | undefined): number | undefined; + +export { type AnyFunction, type CacheInstance, type CacheSyncInstance, type CacheableItem, type CacheableStoreItem, type CreateWrapKey, type CreateWrapKeyOptions, type GetOrSetFunctionOptions, type GetOrSetKey, type GetOrSetOptions, HashAlgorithm, type HashOptions, type HashToNumberOptions, Stats, type StatsOptions, type WrapFunctionOptions, type WrapOptions, type WrapSyncOptions, calculateTtlFromExpiration, coalesceAsync, createWrapKey, getCascadingTtl, getOrSet, getTtlFromExpires, hash, hashSync, hashToNumber, hashToNumberSync, isKeyvInstance, isObject, lessThan, runIfFn, shorthandToMilliseconds, shorthandToTime, sleep, wrap, wrapSync }; diff --git a/node_modules/@cacheable/utils/dist/index.js b/node_modules/@cacheable/utils/dist/index.js new file mode 100644 index 0000000..0c53d6f --- /dev/null +++ b/node_modules/@cacheable/utils/dist/index.js @@ -0,0 +1,630 @@ +// src/shorthand-time.ts +var shorthandToMilliseconds = (shorthand) => { + let milliseconds; + if (shorthand === void 0) { + return void 0; + } + if (typeof shorthand === "number") { + milliseconds = shorthand; + } else { + if (typeof shorthand !== "string") { + return void 0; + } + shorthand = shorthand.trim(); + if (Number.isNaN(Number(shorthand))) { + const match = /^([\d.]+)\s*(ms|s|m|h|hr|d)$/i.exec(shorthand); + if (!match) { + throw new Error( + `Unsupported time format: "${shorthand}". Use 'ms', 's', 'm', 'h', 'hr', or 'd'.` + ); + } + const [, value, unit] = match; + const numericValue = Number.parseFloat(value); + const unitLower = unit.toLowerCase(); + switch (unitLower) { + case "ms": { + milliseconds = numericValue; + break; + } + case "s": { + milliseconds = numericValue * 1e3; + break; + } + case "m": { + milliseconds = numericValue * 1e3 * 60; + break; + } + case "h": { + milliseconds = numericValue * 1e3 * 60 * 60; + break; + } + case "hr": { + milliseconds = numericValue * 1e3 * 60 * 60; + break; + } + case "d": { + milliseconds = numericValue * 1e3 * 60 * 60 * 24; + break; + } + /* v8 ignore next -- @preserve */ + default: { + milliseconds = Number(shorthand); + } + } + } else { + milliseconds = Number(shorthand); + } + } + return milliseconds; +}; +var shorthandToTime = (shorthand, fromDate) => { + fromDate ??= /* @__PURE__ */ new Date(); + const milliseconds = shorthandToMilliseconds(shorthand); + if (milliseconds === void 0) { + return fromDate.getTime(); + } + return fromDate.getTime() + milliseconds; +}; + +// src/coalesce-async.ts +var callbacks = /* @__PURE__ */ new Map(); +function hasKey(key) { + return callbacks.has(key); +} +function addKey(key) { + callbacks.set(key, []); +} +function removeKey(key) { + callbacks.delete(key); +} +function addCallbackToKey(key, callback) { + const stash = getCallbacksByKey(key); + stash.push(callback); + callbacks.set(key, stash); +} +function getCallbacksByKey(key) { + return callbacks.get(key) ?? []; +} +async function enqueue(key) { + return new Promise((resolve, reject) => { + const callback = { resolve, reject }; + addCallbackToKey(key, callback); + }); +} +function dequeue(key) { + const stash = getCallbacksByKey(key); + removeKey(key); + return stash; +} +function coalesce(options) { + const { key, error, result } = options; + for (const callback of dequeue(key)) { + if (error) { + callback.reject(error); + } else { + callback.resolve(result); + } + } +} +async function coalesceAsync(key, fnc) { + if (!hasKey(key)) { + addKey(key); + try { + const result = await Promise.resolve(fnc()); + coalesce({ key, result }); + return result; + } catch (error) { + coalesce({ key, error }); + throw error; + } + } + return enqueue(key); +} + +// src/hash.ts +import { Hashery } from "hashery"; +var HashAlgorithm = /* @__PURE__ */ ((HashAlgorithm2) => { + HashAlgorithm2["SHA256"] = "SHA-256"; + HashAlgorithm2["SHA384"] = "SHA-384"; + HashAlgorithm2["SHA512"] = "SHA-512"; + HashAlgorithm2["DJB2"] = "djb2"; + HashAlgorithm2["FNV1"] = "fnv1"; + HashAlgorithm2["MURMER"] = "murmer"; + HashAlgorithm2["CRC32"] = "crc32"; + return HashAlgorithm2; +})(HashAlgorithm || {}); +async function hash(object, options = { + algorithm: "SHA-256" /* SHA256 */, + serialize: JSON.stringify +}) { + const algorithm = options?.algorithm ?? "SHA-256" /* SHA256 */; + const serialize = options?.serialize ?? JSON.stringify; + const objectString = serialize(object); + const hashery = new Hashery(); + return hashery.toHash(objectString, { algorithm }); +} +function hashSync(object, options = { + algorithm: "djb2" /* DJB2 */, + serialize: JSON.stringify +}) { + const algorithm = options?.algorithm ?? "djb2" /* DJB2 */; + const serialize = options?.serialize ?? JSON.stringify; + const objectString = serialize(object); + const hashery = new Hashery(); + return hashery.toHashSync(objectString, { algorithm }); +} +async function hashToNumber(object, options = { + min: 0, + max: 10, + algorithm: "SHA-256" /* SHA256 */, + serialize: JSON.stringify +}) { + const min = options?.min ?? 0; + const max = options?.max ?? 10; + const algorithm = options?.algorithm ?? "SHA-256" /* SHA256 */; + const serialize = options?.serialize ?? JSON.stringify; + const hashLength = options?.hashLength ?? 16; + if (min >= max) { + throw new Error( + `Invalid range: min (${min}) must be less than max (${max})` + ); + } + const objectString = serialize(object); + const hashery = new Hashery(); + return hashery.toNumber(objectString, { + algorithm, + min, + max, + hashLength + }); +} +function hashToNumberSync(object, options = { + min: 0, + max: 10, + algorithm: "djb2" /* DJB2 */, + serialize: JSON.stringify +}) { + const min = options?.min ?? 0; + const max = options?.max ?? 10; + const algorithm = options?.algorithm ?? "djb2" /* DJB2 */; + const serialize = options?.serialize ?? JSON.stringify; + const hashLength = options?.hashLength ?? 16; + if (min >= max) { + throw new Error( + `Invalid range: min (${min}) must be less than max (${max})` + ); + } + const objectString = serialize(object); + const hashery = new Hashery(); + return hashery.toNumberSync(objectString, { + algorithm, + min, + max, + hashLength + }); +} + +// src/is-keyv-instance.ts +import { Keyv } from "keyv"; +function isKeyvInstance(keyv) { + if (keyv === null || keyv === void 0) { + return false; + } + if (keyv instanceof Keyv) { + return true; + } + const keyvMethods = [ + "generateIterator", + "get", + "getMany", + "set", + "setMany", + "delete", + "deleteMany", + "has", + "hasMany", + "clear", + "disconnect", + "serialize", + "deserialize" + ]; + return keyvMethods.every((method) => typeof keyv[method] === "function"); +} + +// src/is-object.ts +function isObject(value) { + return value !== null && typeof value === "object" && !Array.isArray(value); +} + +// src/less-than.ts +function lessThan(number1, number2) { + return typeof number1 === "number" && typeof number2 === "number" ? number1 < number2 : false; +} + +// src/memoize.ts +function wrapSync(function_, options) { + const { ttl, keyPrefix, cache, serialize } = options; + return (...arguments_) => { + let cacheKey = createWrapKey(function_, arguments_, { + keyPrefix, + serialize + }); + if (options.createKey) { + cacheKey = options.createKey(function_, arguments_, options); + } + let value = cache.get(cacheKey); + if (value === void 0) { + try { + value = function_(...arguments_); + cache.set(cacheKey, value, ttl); + } catch (error) { + cache.emit("error", error); + if (options.cacheErrors) { + cache.set(cacheKey, error, ttl); + } + } + } + return value; + }; +} +async function getOrSet(key, function_, options) { + const keyString = typeof key === "function" ? key(options) : key; + let value; + try { + value = await options.cache.get(keyString); + } catch (error) { + options.cache.emit("error", error); + if (options.throwErrors === true || options.throwErrors === "store") { + throw error; + } + } + if (value === void 0) { + const cacheId = options.cacheId ?? "default"; + const coalesceKey = `${cacheId}::${keyString}`; + value = await coalesceAsync(coalesceKey, async () => { + let result; + try { + try { + result = await function_(); + } catch (error) { + throw new ErrorEnvelope( + error, + "function" + ); + } + try { + await options.cache.set(keyString, result, options.ttl); + } catch (error) { + throw new ErrorEnvelope(error, "store"); + } + return result; + } catch (caught) { + const errorType = caught instanceof ErrorEnvelope ? caught.context : ( + /* c8 ignore next 1 */ + void 0 + ); + const error = caught instanceof ErrorEnvelope ? caught.error : caught; + options.cache.emit("error", error); + if (options.cacheErrors) { + await options.cache.set(keyString, error, options.ttl); + } + if (options.throwErrors === true || options.throwErrors === errorType) { + throw error; + } + } + return result; + }); + } + return value; +} +function wrap(function_, options) { + const { keyPrefix, serialize } = options; + return async (...arguments_) => { + let cacheKey = createWrapKey(function_, arguments_, { + keyPrefix, + serialize + }); + if (options.createKey) { + cacheKey = options.createKey(function_, arguments_, options); + } + return getOrSet( + cacheKey, + async () => function_(...arguments_), + options + ); + }; +} +function createWrapKey(function_, arguments_, options) { + const { keyPrefix, serialize } = options || {}; + if (!keyPrefix) { + return `${function_.name}::${hashSync(arguments_, { serialize })}`; + } + return `${keyPrefix}::${function_.name}::${hashSync(arguments_, { serialize })}`; +} +var ErrorEnvelope = class { + constructor(error, context) { + this.error = error; + this.context = context; + } +}; + +// src/run-if-fn.ts +function runIfFn(valueOrFunction, ...arguments_) { + return typeof valueOrFunction === "function" ? valueOrFunction(...arguments_) : valueOrFunction; +} + +// src/sleep.ts +var sleep = async (ms) => new Promise((resolve) => setTimeout(resolve, ms)); + +// src/stats.ts +var Stats = class { + _hits = 0; + _misses = 0; + _gets = 0; + _sets = 0; + _deletes = 0; + _clears = 0; + _vsize = 0; + _ksize = 0; + _count = 0; + _enabled = false; + constructor(options) { + if (options?.enabled) { + this._enabled = options.enabled; + } + } + /** + * @returns {boolean} - Whether the stats are enabled + */ + get enabled() { + return this._enabled; + } + /** + * @param {boolean} enabled - Whether to enable the stats + */ + set enabled(enabled) { + this._enabled = enabled; + } + /** + * @returns {number} - The number of hits + * @readonly + */ + get hits() { + return this._hits; + } + /** + * @returns {number} - The number of misses + * @readonly + */ + get misses() { + return this._misses; + } + /** + * @returns {number} - The number of gets + * @readonly + */ + get gets() { + return this._gets; + } + /** + * @returns {number} - The number of sets + * @readonly + */ + get sets() { + return this._sets; + } + /** + * @returns {number} - The number of deletes + * @readonly + */ + get deletes() { + return this._deletes; + } + /** + * @returns {number} - The number of clears + * @readonly + */ + get clears() { + return this._clears; + } + /** + * @returns {number} - The vsize (value size) of the cache instance + * @readonly + */ + get vsize() { + return this._vsize; + } + /** + * @returns {number} - The ksize (key size) of the cache instance + * @readonly + */ + get ksize() { + return this._ksize; + } + /** + * @returns {number} - The count of the cache instance + * @readonly + */ + get count() { + return this._count; + } + incrementHits() { + if (!this._enabled) { + return; + } + this._hits++; + } + incrementMisses() { + if (!this._enabled) { + return; + } + this._misses++; + } + incrementGets() { + if (!this._enabled) { + return; + } + this._gets++; + } + incrementSets() { + if (!this._enabled) { + return; + } + this._sets++; + } + incrementDeletes() { + if (!this._enabled) { + return; + } + this._deletes++; + } + incrementClears() { + if (!this._enabled) { + return; + } + this._clears++; + } + incrementVSize(value) { + if (!this._enabled) { + return; + } + this._vsize += this.roughSizeOfObject(value); + } + decreaseVSize(value) { + if (!this._enabled) { + return; + } + this._vsize -= this.roughSizeOfObject(value); + } + incrementKSize(key) { + if (!this._enabled) { + return; + } + this._ksize += this.roughSizeOfString(key); + } + decreaseKSize(key) { + if (!this._enabled) { + return; + } + this._ksize -= this.roughSizeOfString(key); + } + incrementCount() { + if (!this._enabled) { + return; + } + this._count++; + } + decreaseCount() { + if (!this._enabled) { + return; + } + this._count--; + } + setCount(count) { + if (!this._enabled) { + return; + } + this._count = count; + } + roughSizeOfString(value) { + return value.length * 2; + } + roughSizeOfObject(object) { + const objectList = []; + const stack = [object]; + let bytes = 0; + while (stack.length > 0) { + const value = stack.pop(); + if (typeof value === "boolean") { + bytes += 4; + } else if (typeof value === "string") { + bytes += value.length * 2; + } else if (typeof value === "number") { + bytes += 8; + } else { + if (value === null || value === void 0) { + bytes += 4; + continue; + } + if (objectList.includes(value)) { + continue; + } + objectList.push(value); + for (const key in value) { + bytes += key.length * 2; + stack.push(value[key]); + } + } + } + return bytes; + } + reset() { + this._hits = 0; + this._misses = 0; + this._gets = 0; + this._sets = 0; + this._deletes = 0; + this._clears = 0; + this._vsize = 0; + this._ksize = 0; + this._count = 0; + } + resetStoreValues() { + this._vsize = 0; + this._ksize = 0; + this._count = 0; + } +}; + +// src/ttl.ts +function getTtlFromExpires(expires) { + if (expires === void 0 || expires === null) { + return void 0; + } + const now = Date.now(); + if (expires < now) { + return void 0; + } + return expires - now; +} +function getCascadingTtl(cacheableTtl, primaryTtl, secondaryTtl) { + return secondaryTtl ?? primaryTtl ?? shorthandToMilliseconds(cacheableTtl); +} +function calculateTtlFromExpiration(ttl, expires) { + const ttlFromExpires = getTtlFromExpires(expires); + const expiresFromTtl = ttl ? Date.now() + ttl : void 0; + if (ttlFromExpires === void 0) { + return ttl; + } + if (expiresFromTtl === void 0) { + return ttlFromExpires; + } + if (expires && expires > expiresFromTtl) { + return ttl; + } + return ttlFromExpires; +} +export { + HashAlgorithm, + Stats, + calculateTtlFromExpiration, + coalesceAsync, + createWrapKey, + getCascadingTtl, + getOrSet, + getTtlFromExpires, + hash, + hashSync, + hashToNumber, + hashToNumberSync, + isKeyvInstance, + isObject, + lessThan, + runIfFn, + shorthandToMilliseconds, + shorthandToTime, + sleep, + wrap, + wrapSync +}; +/* v8 ignore next -- @preserve */ diff --git a/node_modules/@cacheable/utils/package.json b/node_modules/@cacheable/utils/package.json new file mode 100644 index 0000000..fa43347 --- /dev/null +++ b/node_modules/@cacheable/utils/package.json @@ -0,0 +1,60 @@ +{ + "name": "@cacheable/utils", + "version": "2.4.0", + "description": "Cacheable Utilities for Caching Libraries", + "type": "module", + "main": "./dist/index.js", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "import": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } + } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/jaredwray/cacheable.git", + "directory": "packages/utils" + }, + "author": "Jared Wray ", + "license": "MIT", + "private": false, + "dependencies": { + "hashery": "^1.5.0", + "keyv": "^5.6.0" + }, + "devDependencies": { + "@faker-js/faker": "^10.3.0", + "@types/node": "^25.3.0", + "rimraf": "^6.1.3", + "tsup": "^8.5.1", + "typescript": "^5.9.3" + }, + "keywords": [ + "cacheable", + "caching", + "utilities", + "hashing", + "keyv", + "cache utils" + ], + "files": [ + "dist", + "LICENSE" + ], + "scripts": { + "build": "rimraf ./dist && tsup src/index.ts --format cjs,esm --dts --clean", + "prepublish": "pnpm build", + "lint": "biome check --write --error-on-warnings", + "test": "pnpm lint && vitest run --coverage", + "test:ci": "biome check --error-on-warnings && vitest run --coverage", + "clean": "rimraf ./dist ./coverage ./node_modules" + } +} \ No newline at end of file diff --git a/node_modules/@csstools/css-calc/CHANGELOG.md b/node_modules/@csstools/css-calc/CHANGELOG.md new file mode 100644 index 0000000..e0d6799 --- /dev/null +++ b/node_modules/@csstools/css-calc/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changes to CSS Calc + +### 3.1.1 + +_February 13, 2026_ + +- Fix missing whitespace between components after solving calc expressions (e.g. `calc(10px)calc(20px)` now serializes as `10px 20px`) + +[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md) diff --git a/node_modules/@csstools/css-calc/LICENSE.md b/node_modules/@csstools/css-calc/LICENSE.md new file mode 100644 index 0000000..af5411f --- /dev/null +++ b/node_modules/@csstools/css-calc/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2022 Romain Menke, Antonio Laguna + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT 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/@csstools/css-calc/README.md b/node_modules/@csstools/css-calc/README.md new file mode 100644 index 0000000..1e20fae --- /dev/null +++ b/node_modules/@csstools/css-calc/README.md @@ -0,0 +1,132 @@ +# CSS Calc for CSS + +[npm version][npm-url] +[Build Status][cli-url] +[Discord][discord] + +Implemented from : https://drafts.csswg.org/css-values-4/ on 2023-02-17 + +## Usage + +Add [CSS calc] to your project: + +```bash +npm install @csstools/css-calc @csstools/css-parser-algorithms @csstools/css-tokenizer --save-dev +``` + +### With string values : + +```mjs +import { calc } from '@csstools/css-calc'; + +// '20' +console.log(calc('calc(10 * 2)')); +``` + +### With component values : + +```mjs +import { stringify, tokenizer } from '@csstools/css-tokenizer'; +import { parseCommaSeparatedListOfComponentValues } from '@csstools/css-parser-algorithms'; +import { calcFromComponentValues } from '@csstools/css-calc'; + +const t = tokenizer({ + css: 'calc(10 * 2)', +}); + +const tokens = []; + +{ + while (!t.endOfFile()) { + tokens.push(t.nextToken()); + } + + tokens.push(t.nextToken()); // EOF-token +} + +const result = parseCommaSeparatedListOfComponentValues(tokens, {}); + +// filter or mutate the component values + +const calcResult = calcFromComponentValues(result, { precision: 5, toCanonicalUnits: true }); + +// filter or mutate the component values even further + +const calcResultStr = calcResult.map((componentValues) => { + return componentValues.map((x) => stringify(...x.tokens())).join(''); +}).join(','); + +// '20' +console.log(calcResultStr); +``` + +### Options + +#### `precision` : + +The default precision is fairly high. +It aims to be high enough to make rounding unnoticeable in the browser. + +You can set it to a lower number to suit your needs. + +```mjs +import { calc } from '@csstools/css-calc'; + +// '0.3' +console.log(calc('calc(1 / 3)', { precision: 1 })); +// '0.33' +console.log(calc('calc(1 / 3)', { precision: 2 })); +``` + +#### `globals` : + +Pass global values as a map of key value pairs. + +> Example : Relative color syntax (`lch(from pink calc(l / 2) c h)`) exposes color channel information as ident tokens. +> By passing globals for `l`, `c` and `h` it is possible to solve nested `calc()`'s. + +```mjs +import { calc } from '@csstools/css-calc'; + +const globals = new Map([ + ['a', '10px'], + ['b', '2rem'], +]); + +// '20px' +console.log(calc('calc(a * 2)', { globals: globals })); +// '6rem' +console.log(calc('calc(b * 3)', { globals: globals })); +``` + +#### `toCanonicalUnits` : + +By default this package will try to preserve units. +The heuristic to do this is very simplistic. +We take the first unit we encounter and try to convert other dimensions to that unit. + +This better matches what users expect from a CSS dev tool. + +If you want to have outputs that are closes to CSS serialized values you can pass `toCanonicalUnits: true`. + +```mjs +import { calc } from '@csstools/css-calc'; + +// '20hz' +console.log(calc('calc(0.01khz + 10hz)', { toCanonicalUnits: true })); + +// '20hz' +console.log(calc('calc(10hz + 0.01khz)', { toCanonicalUnits: true })); + +// '0.02khz' !!! +console.log(calc('calc(0.01khz + 10hz)', { toCanonicalUnits: false })); + +// '20hz' +console.log(calc('calc(10hz + 0.01khz)', { toCanonicalUnits: false })); +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/css-calc + +[CSS calc]: https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc diff --git a/node_modules/@csstools/css-calc/dist/index.d.ts b/node_modules/@csstools/css-calc/dist/index.d.ts new file mode 100644 index 0000000..28b8481 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/index.d.ts @@ -0,0 +1,101 @@ +import { ComponentValue } from '@csstools/css-parser-algorithms'; +import type { TokenDimension } from '@csstools/css-tokenizer'; +import type { TokenNumber } from '@csstools/css-tokenizer'; +import type { TokenPercentage } from '@csstools/css-tokenizer'; + +export declare function calc(css: string, options?: conversionOptions): string; + +export declare function calcFromComponentValues(componentValuesList: Array>, options?: conversionOptions): Array>; + +export declare type conversionOptions = { + /** + * If a calc expression can not be solved the parse error might be reported through this callback. + * Not all cases are covered. Open an issue if you need specific errors reported. + * + * Values are recursively visited and at each nesting level an attempt is made to solve the expression. + * Errors can be reported multiple times as a result of this. + */ + onParseError?: (error: ParseError) => void; + /** + * Pass global values as a map of key value pairs. + */ + globals?: GlobalsWithStrings; + /** + * The default precision is fairly high. + * It aims to be high enough to make rounding unnoticeable in the browser. + * You can set it to a lower number to suite your needs. + */ + precision?: number; + /** + * By default this package will try to preserve units. + * The heuristic to do this is very simplistic. + * We take the first unit we encounter and try to convert other dimensions to that unit. + * + * This better matches what users expect from a CSS dev tool. + * + * If you want to have outputs that are closes to CSS serialized values you can set `true`. + */ + toCanonicalUnits?: boolean; + /** + * Convert NaN, Infinity, ... into standard representable values. + */ + censorIntoStandardRepresentableValues?: boolean; + /** + * Some percentages resolve against other values and might be negative or positive depending on context. + * Raw percentages are more likely to be safe to simplify outside of a browser context + * + * @see https://drafts.csswg.org/css-values-4/#calc-simplification + */ + rawPercentages?: boolean; + /** + * The values used to generate random value cache keys. + */ + randomCaching?: { + /** + * The name of the property the random function is used in. + */ + propertyName: string; + /** + * N is the index of the random function among other random functions in the same property value. + */ + propertyN: number; + /** + * An element ID identifying the element the style is being applied to. + * When omitted any `random()` call will not be computed. + */ + elementID: string; + /** + * A document ID identifying the Document the styles are from. + * When omitted any `random()` call will not be computed. + */ + documentID: string; + }; +}; + +export declare type GlobalsWithStrings = Map; + +export declare const mathFunctionNames: Set; + +/** + * Any errors are reported through the `onParseError` callback. + */ +export declare class ParseError extends Error { + /** The index of the start character of the current token. */ + sourceStart: number; + /** The index of the end character of the current token. */ + sourceEnd: number; + constructor(message: string, sourceStart: number, sourceEnd: number); +} + +export declare const ParseErrorMessage: { + UnexpectedAdditionOfDimensionOrPercentageWithNumber: string; + UnexpectedSubtractionOfDimensionOrPercentageWithNumber: string; +}; + +export declare class ParseErrorWithComponentValues extends ParseError { + /** The associated component values. */ + componentValues: Array; + constructor(message: string, componentValues: Array); +} + +export { } diff --git a/node_modules/@csstools/css-calc/dist/index.mjs b/node_modules/@csstools/css-calc/dist/index.mjs new file mode 100644 index 0000000..4471bb9 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/index.mjs @@ -0,0 +1 @@ +import{sourceIndices as e,TokenNode as n,isTokenNode as t,isWhitespaceNode as r,isCommentNode as a,isWhiteSpaceOrCommentNode as u,isSimpleBlockNode as o,isFunctionNode as i,FunctionNode as l,WhitespaceNode as c,parseCommaSeparatedListOfComponentValues as s,walk as v}from"@csstools/css-parser-algorithms";import{isTokenDimension as f,TokenType as m,NumberType as p,mutateUnit as C,isTokenNumber as d,isTokenPercentage as g,isTokenIdent as D,isTokenNumeric as N,isTokenOpenParen as h,isTokenDelim as B,isTokenComma as A,isToken as b,tokenizer as F,tokenize as w,stringify as E,isTokenColon as S,isTokenSemicolon as I}from"@csstools/css-tokenizer";class ParseError extends Error{sourceStart;sourceEnd;constructor(e,n,t){super(e),this.name="ParseError",this.sourceStart=n,this.sourceEnd=t}}class ParseErrorWithComponentValues extends ParseError{componentValues;constructor(n,t){super(n,...e(t)),this.componentValues=t}}const y={UnexpectedAdditionOfDimensionOrPercentageWithNumber:"Unexpected addition of a dimension or percentage with a number.",UnexpectedSubtractionOfDimensionOrPercentageWithNumber:"Unexpected subtraction of a dimension or percentage with a number."},M=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(M,e=>String.fromCharCode(e.charCodeAt(0)+32))}const T={cm:"px",in:"px",mm:"px",pc:"px",pt:"px",px:"px",q:"px",deg:"deg",grad:"deg",rad:"deg",turn:"deg",ms:"s",s:"s",hz:"hz",khz:"hz"},x=new Map([["cm",e=>e],["mm",e=>10*e],["q",e=>40*e],["in",e=>e/2.54],["pc",e=>e/2.54*6],["pt",e=>e/2.54*72],["px",e=>e/2.54*96]]),P=new Map([["deg",e=>e],["grad",e=>e/.9],["rad",e=>e/180*Math.PI],["turn",e=>e/360]]),k=new Map([["deg",e=>.9*e],["grad",e=>e],["rad",e=>.9*e/180*Math.PI],["turn",e=>.9*e/360]]),O=new Map([["hz",e=>e],["khz",e=>e/1e3]]),W=new Map([["cm",e=>2.54*e],["mm",e=>25.4*e],["q",e=>25.4*e*4],["in",e=>e],["pc",e=>6*e],["pt",e=>72*e],["px",e=>96*e]]),U=new Map([["hz",e=>1e3*e],["khz",e=>e]]),L=new Map([["cm",e=>e/10],["mm",e=>e],["q",e=>4*e],["in",e=>e/25.4],["pc",e=>e/25.4*6],["pt",e=>e/25.4*72],["px",e=>e/25.4*96]]),V=new Map([["ms",e=>e],["s",e=>e/1e3]]),$=new Map([["cm",e=>e/6*2.54],["mm",e=>e/6*25.4],["q",e=>e/6*25.4*4],["in",e=>e/6],["pc",e=>e],["pt",e=>e/6*72],["px",e=>e/6*96]]),Z=new Map([["cm",e=>e/72*2.54],["mm",e=>e/72*25.4],["q",e=>e/72*25.4*4],["in",e=>e/72],["pc",e=>e/72*6],["pt",e=>e],["px",e=>e/72*96]]),z=new Map([["cm",e=>e/96*2.54],["mm",e=>e/96*25.4],["q",e=>e/96*25.4*4],["in",e=>e/96],["pc",e=>e/96*6],["pt",e=>e/96*72],["px",e=>e]]),q=new Map([["cm",e=>e/4/10],["mm",e=>e/4],["q",e=>e],["in",e=>e/4/25.4],["pc",e=>e/4/25.4*6],["pt",e=>e/4/25.4*72],["px",e=>e/4/25.4*96]]),G=new Map([["deg",e=>180*e/Math.PI],["grad",e=>180*e/Math.PI/.9],["rad",e=>e],["turn",e=>180*e/Math.PI/360]]),R=new Map([["ms",e=>1e3*e],["s",e=>e]]),j=new Map([["deg",e=>360*e],["grad",e=>360*e/.9],["rad",e=>360*e/180*Math.PI],["turn",e=>e]]),Y=new Map([["cm",x],["mm",L],["q",q],["in",W],["pc",$],["pt",Z],["px",z],["ms",V],["s",R],["deg",P],["grad",k],["rad",G],["turn",j],["hz",O],["khz",U]]);function convertUnit(e,n){if(!f(e))return n;if(!f(n))return n;const t=toLowerCaseAZ(e[4].unit),r=toLowerCaseAZ(n[4].unit);if(t===r)return n;const a=Y.get(r);if(!a)return n;const u=a.get(t);if(!u)return n;const o=u(n[4].value),i=[m.Dimension,"",n[2],n[3],{...n[4],signCharacter:o<0?"-":void 0,type:Number.isInteger(o)?p.Integer:p.Number,value:o}];return C(i,e[4].unit),i}function toCanonicalUnit(e){if(!f(e))return e;const n=toLowerCaseAZ(e[4].unit),t=T[n];if(n===t)return e;const r=Y.get(n);if(!r)return e;const a=r.get(t);if(!a)return e;const u=a(e[4].value),o=[m.Dimension,"",e[2],e[3],{...e[4],signCharacter:u<0?"-":void 0,type:Number.isInteger(u)?p.Integer:p.Number,value:u}];return C(o,t),o}function addition(e,t){if(2!==e.length)return-1;const r=e[0].value;let a=e[1].value;if(d(r)&&d(a)){const e=r[4].value+a[4].value;return new n([m.Number,e.toString(),r[2],a[3],{value:e,type:r[4].type===p.Integer&&a[4].type===p.Integer?p.Integer:p.Number}])}if(g(r)&&g(a)){const e=r[4].value+a[4].value;return new n([m.Percentage,e.toString()+"%",r[2],a[3],{value:e}])}if(f(r)&&f(a)&&(a=convertUnit(r,a),toLowerCaseAZ(r[4].unit)===toLowerCaseAZ(a[4].unit))){const e=r[4].value+a[4].value;return new n([m.Dimension,e.toString()+r[4].unit,r[2],a[3],{value:e,type:r[4].type===p.Integer&&a[4].type===p.Integer?p.Integer:p.Number,unit:r[4].unit}])}return(d(r)&&(f(a)||g(a))||d(a)&&(f(r)||g(r)))&&t.onParseError?.(new ParseErrorWithComponentValues(y.UnexpectedAdditionOfDimensionOrPercentageWithNumber,e)),-1}function division(e){if(2!==e.length)return-1;const t=e[0].value,r=e[1].value;if(d(t)&&d(r)){const e=t[4].value/r[4].value;return new n([m.Number,e.toString(),t[2],r[3],{value:e,type:Number.isInteger(e)?p.Integer:p.Number}])}if(g(t)&&d(r)){const e=t[4].value/r[4].value;return new n([m.Percentage,e.toString()+"%",t[2],r[3],{value:e}])}if(f(t)&&d(r)){const e=t[4].value/r[4].value;return new n([m.Dimension,e.toString()+t[4].unit,t[2],r[3],{value:e,type:Number.isInteger(e)?p.Integer:p.Number,unit:t[4].unit}])}return-1}function isCalculation(e){return!!e&&"object"==typeof e&&"inputs"in e&&Array.isArray(e.inputs)&&"operation"in e}function solve(e,n){if(-1===e)return-1;const r=[];for(let a=0;aconvertUnit(a,e.value));if(!arrayOfSameNumeric(u))return-1;const o=u.map(e=>e[4].value),i=Math.hypot(...o);return resultToCalculation(e,a,i)}function solveMax(e,n,r){if(!n.every(t))return-1;const a=n[0].value;if(!N(a))return-1;if(!r.rawPercentages&&g(a))return-1;const u=n.map(e=>convertUnit(a,e.value));if(!arrayOfSameNumeric(u))return-1;const o=u.map(e=>e[4].value),i=Math.max(...o);return resultToCalculation(e,a,i)}function solveMin(e,n,r){if(!n.every(t))return-1;const a=n[0].value;if(!N(a))return-1;if(!r.rawPercentages&&g(a))return-1;const u=n.map(e=>convertUnit(a,e.value));if(!arrayOfSameNumeric(u))return-1;const o=u.map(e=>e[4].value),i=Math.min(...o);return resultToCalculation(e,a,i)}function solveMod(e,n,t){const r=n.value;if(!N(r))return-1;const a=convertUnit(r,t.value);if(!twoOfSameNumeric(r,a))return-1;let u;return u=0===a[4].value?Number.NaN:Number.isFinite(r[4].value)&&(Number.isFinite(a[4].value)||(a[4].value!==Number.POSITIVE_INFINITY||r[4].value!==Number.NEGATIVE_INFINITY&&!Object.is(0*r[4].value,-0))&&(a[4].value!==Number.NEGATIVE_INFINITY||r[4].value!==Number.POSITIVE_INFINITY&&!Object.is(0*r[4].value,0)))?Number.isFinite(a[4].value)?(r[4].value%a[4].value+a[4].value)%a[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,u)}function solvePow(e,n,t){const r=n.value,a=t.value;if(!d(r))return-1;if(!twoOfSameNumeric(r,a))return-1;return numberToCalculation(e,Math.pow(r[4].value,a[4].value))}function solveRem(e,n,t){const r=n.value;if(!N(r))return-1;const a=convertUnit(r,t.value);if(!twoOfSameNumeric(r,a))return-1;let u;return u=0===a[4].value?Number.NaN:Number.isFinite(r[4].value)?Number.isFinite(a[4].value)?r[4].value%a[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,u)}function solveRound(e,n,t,r,a){const u=t.value;if(!N(u))return-1;if(!a.rawPercentages&&g(u))return-1;const o=convertUnit(u,r.value);if(!twoOfSameNumeric(u,o))return-1;let i;if(0===o[4].value)i=Number.NaN;else if(Number.isFinite(u[4].value)||Number.isFinite(o[4].value))if(!Number.isFinite(u[4].value)&&Number.isFinite(o[4].value))i=u[4].value;else if(Number.isFinite(u[4].value)&&!Number.isFinite(o[4].value))switch(n){case"down":i=u[4].value<0?-1/0:Object.is(-0,0*u[4].value)?-0:0;break;case"up":i=u[4].value>0?1/0:Object.is(0,0*u[4].value)?0:-0;break;default:i=Object.is(0,0*u[4].value)?0:-0}else if(Number.isFinite(o[4].value))switch(n){case"down":i=Math.floor(u[4].value/o[4].value)*o[4].value;break;case"up":i=Math.ceil(u[4].value/o[4].value)*o[4].value;break;case"to-zero":i=Math.trunc(u[4].value/o[4].value)*o[4].value;break;default:{let e=Math.floor(u[4].value/o[4].value)*o[4].value,n=Math.ceil(u[4].value/o[4].value)*o[4].value;if(e>n){const t=e;e=n,n=t}const t=Math.abs(u[4].value-e),r=Math.abs(u[4].value-n);i=t===r?n:t0?1/0:-1/0:Math.tan(u),numberToCalculation(e,u)}function subtraction(e,t){if(2!==e.length)return-1;const r=e[0].value;let a=e[1].value;if(d(r)&&d(a)){const e=r[4].value-a[4].value;return new n([m.Number,e.toString(),r[2],a[3],{value:e,type:r[4].type===p.Integer&&a[4].type===p.Integer?p.Integer:p.Number}])}if(g(r)&&g(a)){const e=r[4].value-a[4].value;return new n([m.Percentage,e.toString()+"%",r[2],a[3],{value:e}])}if(f(r)&&f(a)&&(a=convertUnit(r,a),toLowerCaseAZ(r[4].unit)===toLowerCaseAZ(a[4].unit))){const e=r[4].value-a[4].value;return new n([m.Dimension,e.toString()+r[4].unit,r[2],a[3],{value:e,type:r[4].type===p.Integer&&a[4].type===p.Integer?p.Integer:p.Number,unit:r[4].unit}])}return(d(r)&&(f(a)||g(a))||d(a)&&(f(r)||g(r)))&&t.onParseError?.(new ParseErrorWithComponentValues(y.UnexpectedSubtractionOfDimensionOrPercentageWithNumber,e)),-1}function solveLog(e,n){if(1===n.length){const r=n[0];if(!r||!t(r))return-1;const a=r.value;if(!d(a))return-1;return numberToCalculation(e,Math.log(a[4].value))}if(2===n.length){const r=n[0];if(!r||!t(r))return-1;const a=r.value;if(!d(a))return-1;const u=n[1];if(!u||!t(u))return-1;const o=u.value;if(!d(o))return-1;return numberToCalculation(e,Math.log(a[4].value)/Math.log(o[4].value))}return-1}const _=/^none$/i;function isNone(e){if(Array.isArray(e)){const n=e.filter(e=>!(r(e)&&a(e)));return 1===n.length&&isNone(n[0])}if(!t(e))return!1;const n=e.value;return!!D(n)&&_.test(n[4].value)}const H=String.fromCodePoint(0);function solveRandom(e,n,t,r,a,u){if(-1===n.fixed&&!u.randomCaching)return-1;u.randomCaching||(u.randomCaching={propertyName:"",propertyN:0,elementID:"",documentID:""}),u.randomCaching&&!u.randomCaching.propertyN&&(u.randomCaching.propertyN=0);const o=t.value;if(!N(o))return-1;const i=convertUnit(o,r.value);if(!twoOfSameNumeric(o,i))return-1;let l=null;if(a&&(l=convertUnit(o,a.value),!twoOfSameNumeric(o,l)))return-1;if(!Number.isFinite(o[4].value))return resultToCalculation(e,o,Number.NaN);if(!Number.isFinite(i[4].value))return resultToCalculation(e,o,Number.NaN);if(!Number.isFinite(i[4].value-o[4].value))return resultToCalculation(e,o,Number.NaN);if(l&&!Number.isFinite(l[4].value))return resultToCalculation(e,o,o[4].value);const c=-1===n.fixed?sfc32(crc32([n.dashedIdent?n.dashedIdent:`${u.randomCaching?.propertyName} ${u.randomCaching.propertyN++}`,n.elementShared?"":u.randomCaching.elementID,u.randomCaching.documentID].join(H))):()=>n.fixed;let s=o[4].value,v=i[4].value;if(s>v&&([s,v]=[v,s]),l&&(l[4].value<=0||Math.abs(s-v)/l[4].value>1e10)&&(l=null),l){const n=Math.max(l[4].value/1e3,1e-9),t=[s];let r=0;for(;;){r+=l[4].value;const e=s+r;if(!(e+nv)break}const a=c();return resultToCalculation(e,o,Number(t[Math.floor(t.length*a)].toFixed(5)))}const f=c();return resultToCalculation(e,o,Number((f*(v-s)+s).toFixed(5)))}function sfc32(e=.34944106645296036,n=.19228640875738723,t=.8784393832007205,r=.04850964319275053){return()=>{const a=((e|=0)+(n|=0)|0)+(r|=0)|0;return r=r+1|0,e=n^n>>>9,n=(t|=0)+(t<<3)|0,t=(t=t<<21|t>>>11)+a|0,(a>>>0)/4294967296}}function crc32(e){let n=0,t=0,r=0;n^=-1;for(let a=0,u=e.length;a>>8^t;return(-1^n)>>>0}const J=new Map([["abs",function abs(e,n,t){return singleNodeSolver(e,n,t,solveAbs)}],["acos",function acos(e,n,t){return singleNodeSolver(e,n,t,solveACos)}],["asin",function asin(e,n,t){return singleNodeSolver(e,n,t,solveASin)}],["atan",function atan(e,n,t){return singleNodeSolver(e,n,t,solveATan)}],["atan2",function atan2(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solveATan2)}],["calc",calc$1],["clamp",function clamp(r,a,o){const i=resolveGlobalsAndConstants([...r.value.filter(e=>!u(e))],a),c=[],s=[],v=[];{let e=c;for(let n=0;n!u(e)),n,t);if(-1===r)return-1;const[a,o]=r,i=variadicArguments(e,o,n,t);if(-1===i)return-1;const[l,c,s]=i;if(!l||!c)return-1;return solveRandom(e,a,l,c,s,t)}],["rem",function rem(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solveRem)}],["round",function round(e,r,a){const o=resolveGlobalsAndConstants([...e.value.filter(e=>!u(e))],r);let i="",l=!1;const c=[],s=[];{let e=c;for(let n=0;n!u(e))],n);if(1===a.length&&t(a[0]))return{inputs:[a[0]],operation:unary};let l=0;for(;l!u(e))],n),a=solve(calc$1(calcWrapper(e,r),n,t),t);return-1===a?-1:a}function twoCommaSeparatedNodesSolver(e,n,t,r){const a=twoCommaSeparatedArguments(e,n,t);if(-1===a)return-1;const[u,o]=a;return r(e,u,o,t)}function twoCommaSeparatedArguments(e,n,r){const a=resolveGlobalsAndConstants([...e.value.filter(e=>!u(e))],n),o=[],i=[];{let e=o;for(let n=0;n!u(e))],r),i=[];{const n=[];let u=[];for(let e=0;e1)return-1;u.fixed=Math.max(0,Math.min(i.value[4].value,1-1e-9));continue}if("auto"!==l)if(l.startsWith("--")){if(-1!==u.fixed||u.isAuto)return-1;u.dashedIdent=l}else;else{if(-1!==u.fixed||u.dashedIdent)return-1;u.isAuto=!0}}else{if(-1!==u.fixed)return-1;u.elementShared=!0}}return-1}function calcWrapper(e,n){return new l([m.Function,"calc(",e.name[2],e.name[3],{value:"calc"}],[m.CloseParen,")",e.endToken[2],e.endToken[3],void 0],n)}function maxWrapper(t,r,a){return new l([m.Function,"max(",t.name[2],t.name[3],{value:"max"}],[m.CloseParen,")",t.endToken[2],t.endToken[3],void 0],[r,new n([m.Comma,",",...e(r),void 0]),a])}function patchNaN(e){if(-1===e)return-1;if(i(e))return e;const t=e.value;return N(t)&&Number.isNaN(t[4].value)?d(t)?new l([m.Function,"calc(",t[2],t[3],{value:"calc"}],[m.CloseParen,")",t[2],t[3],void 0],[new n([m.Ident,"NaN",t[2],t[3],{value:"NaN"}])]):f(t)?new l([m.Function,"calc(",t[2],t[3],{value:"calc"}],[m.CloseParen,")",t[2],t[3],void 0],[new n([m.Ident,"NaN",t[2],t[3],{value:"NaN"}]),new c([[m.Whitespace," ",t[2],t[3],void 0]]),new n([m.Delim,"*",t[2],t[3],{value:"*"}]),new c([[m.Whitespace," ",t[2],t[3],void 0]]),new n([m.Dimension,"1"+t[4].unit,t[2],t[3],{value:1,type:p.Integer,unit:t[4].unit}])]):g(t)?new l([m.Function,"calc(",t[2],t[3],{value:"calc"}],[m.CloseParen,")",t[2],t[3],void 0],[new n([m.Ident,"NaN",t[2],t[3],{value:"NaN"}]),new c([[m.Whitespace," ",t[2],t[3],void 0]]),new n([m.Delim,"*",t[2],t[3],{value:"*"}]),new c([[m.Whitespace," ",t[2],t[3],void 0]]),new n([m.Percentage,"1%",t[2],t[3],{value:1}])]):-1:e}function patchInfinity(e){if(-1===e)return-1;if(i(e))return e;const t=e.value;if(!N(t))return e;if(Number.isFinite(t[4].value)||Number.isNaN(t[4].value))return e;let r="";return Number.NEGATIVE_INFINITY===t[4].value&&(r="-"),d(t)?new l([m.Function,"calc(",t[2],t[3],{value:"calc"}],[m.CloseParen,")",t[2],t[3],void 0],[new n([m.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}])]):f(t)?new l([m.Function,"calc(",t[2],t[3],{value:"calc"}],[m.CloseParen,")",t[2],t[3],void 0],[new n([m.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}]),new c([[m.Whitespace," ",t[2],t[3],void 0]]),new n([m.Delim,"*",t[2],t[3],{value:"*"}]),new c([[m.Whitespace," ",t[2],t[3],void 0]]),new n([m.Dimension,"1"+t[4].unit,t[2],t[3],{value:1,type:p.Integer,unit:t[4].unit}])]):new l([m.Function,"calc(",t[2],t[3],{value:"calc"}],[m.CloseParen,")",t[2],t[3],void 0],[new n([m.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}]),new c([[m.Whitespace," ",t[2],t[3],void 0]]),new n([m.Delim,"*",t[2],t[3],{value:"*"}]),new c([[m.Whitespace," ",t[2],t[3],void 0]]),new n([m.Percentage,"1%",t[2],t[3],{value:1}])])}function patchMinusZero(e){if(-1===e)return-1;if(i(e))return e;const n=e.value;return N(n)&&Object.is(-0,n[4].value)?("-0"===n[1]||(g(n)?n[1]="-0%":f(n)?n[1]="-0"+n[4].unit:n[1]="-0"),e):e}function patchPrecision(e,n=13){if(-1===e)return-1;if(n<=0)return e;if(i(e))return e;const t=e.value;if(!N(t))return e;if(Number.isInteger(t[4].value))return e;const r=Number(t[4].value.toFixed(n)).toString();return d(t)?t[1]=r:g(t)?t[1]=r+"%":f(t)&&(t[1]=r+t[4].unit),e}function patchCanonicalUnit(e){return-1===e?-1:i(e)?e:f(e.value)?(e.value=toCanonicalUnit(e.value),e):e}function patchCalcResult(e,n){let t=e;return n?.toCanonicalUnits&&(t=patchCanonicalUnit(t)),t=patchPrecision(t,n?.precision),t=patchMinusZero(t),n?.censorIntoStandardRepresentableValues||(t=patchNaN(t),t=patchInfinity(t)),t}function tokenizeGlobals(e){const n=new Map;if(!e)return n;for(const[t,r]of e)if(b(r))n.set(t,r);else if("string"==typeof r){const e=F({css:r}),a=e.nextToken();if(e.nextToken(),!e.endOfFile())continue;if(!N(a))continue;n.set(t,a);continue}return n}function calc(e,n){return calcFromComponentValues(s(w({css:e}),{}),n).map(e=>e.map(e=>E(...e.tokens())).join("")).join(",")}function calcFromComponentValues(e,n){const t=tokenizeGlobals(n?.globals);return replaceComponentValues(e,e=>{if(!i(e))return;const r=J.get(e.getName().toLowerCase());if(!r)return;const a=patchCalcResult(solve(r(e,t,n??{}),n??{}),n);return-1!==a?a:void 0})}function replaceComponentValues(n,r){for(let a=0;a{if("number"!=typeof a)return;const o=r(n.node);if(!o)return;const i=[o],l=n.parent.value[a-1];t(l)&&B(l.value)&&("-"===l.value[4].value||"+"===l.value[4].value)&&i.splice(0,0,new c([[m.Whitespace," ",...e(n.node),void 0]]));const s=n.parent.value[a+1];!s||u(s)||t(s)&&(A(s.value)||S(s.value)||I(s.value)||B(s.value)&&"-"!==s.value[4].value&&"+"!==s.value[4].value)||i.push(new c([[m.Whitespace," ",...e(n.node),void 0]])),n.parent.value.splice(a,1,...i)})}return n}const Q=new Set(J.keys());export{ParseError,y as ParseErrorMessage,ParseErrorWithComponentValues,calc,calcFromComponentValues,Q as mathFunctionNames}; diff --git a/node_modules/@csstools/css-calc/package.json b/node_modules/@csstools/css-calc/package.json new file mode 100644 index 0000000..8635ede --- /dev/null +++ b/node_modules/@csstools/css-calc/package.json @@ -0,0 +1,59 @@ +{ + "name": "@csstools/css-calc", + "description": "Solve CSS math expressions", + "version": "3.1.1", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=20.19.0" + }, + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "peerDependencies": { + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + }, + "scripts": {}, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/csstools/postcss-plugins.git", + "directory": "packages/css-calc" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "calc", + "css" + ] +} diff --git a/node_modules/@csstools/css-parser-algorithms/CHANGELOG.md b/node_modules/@csstools/css-parser-algorithms/CHANGELOG.md new file mode 100644 index 0000000..5abd590 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/CHANGELOG.md @@ -0,0 +1,11 @@ +# Changes to CSS Parser Algorithms + +### 4.0.0 + +_January 14, 2026_ + +- Updated: Support for Node `20.19.0` or later (major). +- Removed: `commonjs` API. In supported Node versions `require(esm)` will work without needing to make code changes. +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`4.0.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#400) (major) + +[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md) diff --git a/node_modules/@csstools/css-parser-algorithms/LICENSE.md b/node_modules/@csstools/css-parser-algorithms/LICENSE.md new file mode 100644 index 0000000..af5411f --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2022 Romain Menke, Antonio Laguna + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT 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/@csstools/css-parser-algorithms/README.md b/node_modules/@csstools/css-parser-algorithms/README.md new file mode 100644 index 0000000..a51d668 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/README.md @@ -0,0 +1,119 @@ +# CSS Parser Algorithms for CSS + +[npm version][npm-url] +[Build Status][cli-url] +[Discord][discord] + +Implemented from : https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/ + +## API + +[Read the API docs](./docs/css-parser-algorithms.md) + +## Usage + +Add [CSS Parser Algorithms] to your project: + +```bash +npm install @csstools/css-parser-algorithms @csstools/css-tokenizer --save-dev +``` + +[CSS Parser Algorithms] only accepts tokenized CSS. +It must be used together with `@csstools/css-tokenizer`. + + +```js +import { tokenizer, TokenType } from '@csstools/css-tokenizer'; +import { parseComponentValue } from '@csstools/css-parser-algorithms'; + +const myCSS = `@media only screen and (min-width: 768rem) { + .foo { + content: 'Some content!' !important; + } +} +`; + +const t = tokenizer({ + css: myCSS, +}); + +const tokens = []; + +{ + while (!t.endOfFile()) { + tokens.push(t.nextToken()); + } + + tokens.push(t.nextToken()); // EOF-token +} + +const options = { + onParseError: ((err) => { + throw err; + }), +}; + +const result = parseComponentValue(tokens, options); + +console.log(result); +``` + +### Available functions + +- [`parseComponentValue`](https://www.w3.org/TR/css-syntax-3/#parse-component-value) +- [`parseListOfComponentValues`](https://www.w3.org/TR/css-syntax-3/#parse-list-of-component-values) +- [`parseCommaSeparatedListOfComponentValues`](https://www.w3.org/TR/css-syntax-3/#parse-comma-separated-list-of-component-values) + +### Utilities + +#### `gatherNodeAncestry` + +The AST does not expose the entire ancestry of each node. +The walker methods do provide access to the current parent, but also not the entire ancestry. + +To gather the entire ancestry for a a given sub tree of the AST you can use `gatherNodeAncestry`. +The result is a `Map` with the child nodes as keys and the parents as values. +This allows you to lookup any ancestor of any node. + +```js +import { parseComponentValue } from '@csstools/css-parser-algorithms'; + +const result = parseComponentValue(tokens, options); +const ancestry = gatherNodeAncestry(result); +``` + +### Options + +```ts +{ + onParseError?: (error: ParseError) => void +} +``` + +#### `onParseError` + +The parser algorithms are forgiving and won't stop when a parse error is encountered. +Parse errors also aren't tokens. + +To receive parsing error information you can set a callback. + +Parser errors will try to inform you about the point in the parsing logic the error happened. +This tells you the kind of error. + +## Goals and non-goals + +Things this package aims to be: +- specification compliant CSS parser +- a reliable low level package to be used in CSS sub-grammars + +What it is not: +- opinionated +- fast +- small +- a replacement for PostCSS (PostCSS is fast and also an ecosystem) + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/css-parser-algorithms + +[CSS Parser Algorithms]: https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms diff --git a/node_modules/@csstools/css-parser-algorithms/dist/index.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/index.d.ts new file mode 100644 index 0000000..c59d3dd --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/index.d.ts @@ -0,0 +1,604 @@ +/** + * Parse CSS following the {@link https://drafts.csswg.org/css-syntax/#parsing | CSS Syntax Level 3 specification}. + * + * @remarks + * The tokenizing and parsing tools provided by CSS Tools are designed to be low level and generic with strong ties to their respective specifications. + * + * Any analysis or mutation of CSS source code should be done with the least powerful tool that can accomplish the task. + * For many applications it is sufficient to work with tokens. + * For others you might need to use {@link https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms | @csstools/css-parser-algorithms} or a more specific parser. + * + * The implementation of the AST nodes is kept lightweight and simple. + * Do not expect magic methods, instead assume that arrays and class instances behave like any other JavaScript. + * + * @example + * Parse a string of CSS into a component value: + * ```js + * import { tokenize } from '@csstools/css-tokenizer'; + * import { parseComponentValue } from '@csstools/css-parser-algorithms'; + * + * const myCSS = `calc(1px * 2)`; + * + * const componentValue = parseComponentValue(tokenize({ + * css: myCSS, + * })); + * + * console.log(componentValue); + * ``` + * + * @example + * Use the right algorithm for the job. + * + * Algorithms that can parse larger structures (comma-separated lists, ...) can also parse smaller structures. + * However, the opposite is not true. + * + * If your context allows a list of component values, use {@link parseListOfComponentValues}: + * ```js + * import { tokenize } from '@csstools/css-tokenizer'; + * import { parseListOfComponentValues } from '@csstools/css-parser-algorithms'; + * + * parseListOfComponentValues(tokenize({ css: `10x 20px` })); + * ``` + * + * If your context allows a comma-separated list of component values, use {@link parseCommaSeparatedListOfComponentValues}: + * ```js + * import { tokenize } from '@csstools/css-tokenizer'; + * import { parseCommaSeparatedListOfComponentValues } from '@csstools/css-parser-algorithms'; + * + * parseCommaSeparatedListOfComponentValues(tokenize({ css: `20deg, 50%, 30%` })); + * ``` + * + * @example + * Use the stateful walkers to keep track of the context of a given component value. + * + * ```js + * import { tokenize } from '@csstools/css-tokenizer'; + * import { parseComponentValue, isSimpleBlockNode } from '@csstools/css-parser-algorithms'; + * + * const myCSS = `calc(1px * (5 / 2))`; + * + * const componentValue = parseComponentValue(tokenize({ css: myCSS })); + * + * let state = { inSimpleBlock: false }; + * componentValue.walk((entry) => { + * if (isSimpleBlockNode(entry)) { + * entry.state.inSimpleBlock = true; + * return; + * } + * + * if (entry.state.inSimpleBlock) { + * console.log(entry.node.toString()); // `5`, ... + * } + * }, state); + * ``` + * + * @packageDocumentation + */ + +import type { CSSToken } from '@csstools/css-tokenizer'; +import { ParseError } from '@csstools/css-tokenizer'; +import type { TokenFunction } from '@csstools/css-tokenizer'; + +export declare class CommentNode { + /** + * The node type, always `ComponentValueType.Comment` + */ + type: ComponentValueType; + /** + * The comment token. + */ + value: CSSToken; + constructor(value: CSSToken); + /** + * Retrieve the tokens for the current comment. + * This is the inverse of parsing from a list of tokens. + */ + tokens(): Array; + /** + * Convert the current comment to a string. + * This is not a true serialization. + * It is purely a concatenation of the string representation of the tokens. + */ + toString(): string; + /** + * @internal + * + * A debug helper to convert the current object to a JSON representation. + * This is useful in asserts and to store large ASTs in files. + */ + toJSON(): Record; + /** + * @internal + */ + isCommentNode(): this is CommentNode; + /** + * @internal + */ + static isCommentNode(x: unknown): x is CommentNode; +} + +export declare type ComponentValue = FunctionNode | SimpleBlockNode | WhitespaceNode | CommentNode | TokenNode; + +export declare enum ComponentValueType { + Function = "function", + SimpleBlock = "simple-block", + Whitespace = "whitespace", + Comment = "comment", + Token = "token" +} + +export declare type ContainerNode = FunctionNode | SimpleBlockNode; + +export declare abstract class ContainerNodeBaseClass { + /** + * The contents of the `Function` or `Simple Block`. + * This is a list of component values. + */ + value: Array; + /** + * Retrieve the index of the given item in the current node. + * For most node types this will be trivially implemented as `this.value.indexOf(item)`. + */ + indexOf(item: ComponentValue): number | string; + /** + * Retrieve the item at the given index in the current node. + * For most node types this will be trivially implemented as `this.value[index]`. + */ + at(index: number | string): ComponentValue | undefined; + /** + * Iterates over each item in the `value` array of the current node. + * + * @param cb - The callback function to execute for each item. + * The function receives an object containing the current node (`node`), its parent (`parent`), + * and an optional `state` object. + * A second parameter is the index of the current node. + * The function can return `false` to stop the iteration. + * + * @param state - An optional state object that can be used to pass additional information to the callback function. + * The state object is cloned for each iteration. This means that changes to the state object are not reflected in the next iteration. + * + * @returns `false` if the iteration was halted, `undefined` otherwise. + */ + forEach, U extends ContainerNode>(this: U, cb: (entry: { + node: ComponentValue; + parent: ContainerNode; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + /** + * Walks the current node and all its children. + * + * @param cb - The callback function to execute for each item. + * The function receives an object containing the current node (`node`), its parent (`parent`), + * and an optional `state` object. + * A second parameter is the index of the current node. + * The function can return `false` to stop the iteration. + * + * @param state - An optional state object that can be used to pass additional information to the callback function. + * The state object is cloned for each iteration. This means that changes to the state object are not reflected in the next iteration. + * However changes are passed down to child node iterations. + * + * @returns `false` if the iteration was halted, `undefined` otherwise. + */ + walk, U extends ContainerNode>(this: U, cb: (entry: { + node: ComponentValue; + parent: ContainerNode; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; +} + +/** + * Iterates over each item in a list of component values. + * + * @param cb - The callback function to execute for each item. + * The function receives an object containing the current node (`node`), its parent (`parent`), + * and an optional `state` object. + * A second parameter is the index of the current node. + * The function can return `false` to stop the iteration. + * + * @param state - An optional state object that can be used to pass additional information to the callback function. + * The state object is cloned for each iteration. This means that changes to the state object are not reflected in the next iteration. + * + * @returns `false` if the iteration was halted, `undefined` otherwise. + */ +export declare function forEach>(componentValues: Array, cb: (entry: { + node: ComponentValue; + parent: ContainerNode | { + value: Array; + }; + state?: T; +}, index: number | string) => boolean | void, state?: T): false | undefined; + +/** + * A function node. + * + * @example + * ```js + * const node = parseComponentValue(tokenize('calc(1 + 1)')); + * + * isFunctionNode(node); // true + * node.getName(); // 'calc' + * ``` + */ +export declare class FunctionNode extends ContainerNodeBaseClass { + /** + * The node type, always `ComponentValueType.Function` + */ + type: ComponentValueType; + /** + * The token for the name of the function. + */ + name: TokenFunction; + /** + * The token for the closing parenthesis of the function. + * If the function is unclosed, this will be an EOF token. + */ + endToken: CSSToken; + constructor(name: TokenFunction, endToken: CSSToken, value: Array); + /** + * Retrieve the name of the current function. + * This is the parsed and unescaped name of the function. + */ + getName(): string; + /** + * Normalize the current function: + * 1. if the "endToken" is EOF, replace with a ")-token" + */ + normalize(): void; + /** + * Retrieve the tokens for the current function. + * This is the inverse of parsing from a list of tokens. + */ + tokens(): Array; + /** + * Convert the current function to a string. + * This is not a true serialization. + * It is purely a concatenation of the string representation of the tokens. + */ + toString(): string; + /** + * @internal + * + * A debug helper to convert the current object to a JSON representation. + * This is useful in asserts and to store large ASTs in files. + */ + toJSON(): unknown; + /** + * @internal + */ + isFunctionNode(): this is FunctionNode; + /** + * @internal + */ + static isFunctionNode(x: unknown): x is FunctionNode; +} + +/** + * AST nodes do not have a `parent` property or method. + * This makes it harder to traverse the AST upwards. + * This function builds a `Map` that can be used to lookup ancestors of a node. + * + * @remarks + * There is no magic behind this or the map it returns. + * Mutating the AST will not update the map. + * + * Types are erased and any content of the map has type `unknown`. + * If someone knows a clever way to type this, please let us know. + * + * @example + * ```js + * const ancestry = gatherNodeAncestry(mediaQuery); + * mediaQuery.walk((entry) => { + * const node = entry.node; // directly exposed + * const parent = entry.parent; // directly exposed + * const grandParent: unknown = ancestry.get(parent); // lookup + * + * console.log('node', node); + * console.log('parent', parent); + * console.log('grandParent', grandParent); + * }); + * ``` + */ +export declare function gatherNodeAncestry(node: { + walk(cb: (entry: { + node: unknown; + parent: unknown; + }, index: number | string) => boolean | void): false | undefined; +}): Map; + +/** + * Check if the current object is a `CommentNode`. + * This is a type guard. + */ +export declare function isCommentNode(x: unknown): x is CommentNode; + +/** + * Check if the current object is a `FunctionNode`. + * This is a type guard. + */ +export declare function isFunctionNode(x: unknown): x is FunctionNode; + +/** + * Check if the current object is a `SimpleBlockNode`. + * This is a type guard. + */ +export declare function isSimpleBlockNode(x: unknown): x is SimpleBlockNode; + +/** + * Check if the current object is a `TokenNode`. + * This is a type guard. + */ +export declare function isTokenNode(x: unknown): x is TokenNode; + +/** + * Check if the current object is a `WhitespaceNode`. + * This is a type guard. + */ +export declare function isWhitespaceNode(x: unknown): x is WhitespaceNode; + +/** + * Check if the current object is a `WhiteSpaceNode` or a `CommentNode`. + * This is a type guard. + */ +export declare function isWhiteSpaceOrCommentNode(x: unknown): x is WhitespaceNode | CommentNode; + +/** + * Parse a comma-separated list of component values. + * + * @example + * ```js + * import { tokenize } from '@csstools/css-tokenizer'; + * import { parseCommaSeparatedListOfComponentValues } from '@csstools/css-parser-algorithms'; + * + * parseCommaSeparatedListOfComponentValues(tokenize({ css: `20deg, 50%, 30%` })); + * ``` + */ +export declare function parseCommaSeparatedListOfComponentValues(tokens: Array, options?: { + onParseError?: (error: ParseError) => void; +}): Array>; + +/** + * Parse a single component value. + * + * @example + * ```js + * import { tokenize } from '@csstools/css-tokenizer'; + * import { parseComponentValue } from '@csstools/css-parser-algorithms'; + * + * parseComponentValue(tokenize({ css: `10px` })); + * parseComponentValue(tokenize({ css: `calc((10px + 1x) * 4)` })); + * ``` + */ +export declare function parseComponentValue(tokens: Array, options?: { + onParseError?: (error: ParseError) => void; +}): ComponentValue | undefined; + +/** + * Parse a list of component values. + * + * @example + * ```js + * import { tokenize } from '@csstools/css-tokenizer'; + * import { parseListOfComponentValues } from '@csstools/css-parser-algorithms'; + * + * parseListOfComponentValues(tokenize({ css: `20deg 30%` })); + * ``` + */ +export declare function parseListOfComponentValues(tokens: Array, options?: { + onParseError?: (error: ParseError) => void; +}): Array; + +/** + * Replace specific component values in a list of component values. + * A helper for the most common and simplistic cases when mutating an AST. + */ +export declare function replaceComponentValues(componentValuesList: Array>, replaceWith: (componentValue: ComponentValue) => Array | ComponentValue | void): Array>; + +/** + * A simple block node. + * + * @example + * ```js + * const node = parseComponentValue(tokenize('[foo=bar]')); + * + * isSimpleBlockNode(node); // true + * node.startToken; // [TokenType.OpenSquare, '[', 0, 0, undefined] + * ``` + */ +export declare class SimpleBlockNode extends ContainerNodeBaseClass { + /** + * The node type, always `ComponentValueType.SimpleBlock` + */ + type: ComponentValueType; + /** + * The token for the opening token of the block. + */ + startToken: CSSToken; + /** + * The token for the closing token of the block. + * If the block is closed it will be the mirror variant of the `startToken`. + * If the block is unclosed, this will be an EOF token. + */ + endToken: CSSToken; + constructor(startToken: CSSToken, endToken: CSSToken, value: Array); + /** + * Normalize the current simple block + * 1. if the "endToken" is EOF, replace with the mirror token of the "startToken" + */ + normalize(): void; + /** + * Retrieve the tokens for the current simple block. + * This is the inverse of parsing from a list of tokens. + */ + tokens(): Array; + /** + * Convert the current simple block to a string. + * This is not a true serialization. + * It is purely a concatenation of the string representation of the tokens. + */ + toString(): string; + /** + * @internal + * + * A debug helper to convert the current object to a JSON representation. + * This is useful in asserts and to store large ASTs in files. + */ + toJSON(): unknown; + /** + * @internal + */ + isSimpleBlockNode(): this is SimpleBlockNode; + /** + * @internal + */ + static isSimpleBlockNode(x: unknown): x is SimpleBlockNode; +} + +/** + * Returns the start and end index of a node in the CSS source string. + */ +export declare function sourceIndices(x: { + tokens(): Array; +} | Array<{ + tokens(): Array; +}>): [number, number]; + +/** + * Concatenate the string representation of a collection of component values. + * This is not a proper serializer that will handle escaping and whitespace. + * It only produces valid CSS for token lists that are also valid. + */ +export declare function stringify(componentValueLists: Array>): string; + +export declare class TokenNode { + /** + * The node type, always `ComponentValueType.Token` + */ + type: ComponentValueType; + /** + * The token. + */ + value: CSSToken; + constructor(value: CSSToken); + /** + * This is the inverse of parsing from a list of tokens. + */ + tokens(): [CSSToken]; + /** + * Convert the current token to a string. + * This is not a true serialization. + * It is purely the string representation of token. + */ + toString(): string; + /** + * @internal + * + * A debug helper to convert the current object to a JSON representation. + * This is useful in asserts and to store large ASTs in files. + */ + toJSON(): Record; + /** + * @internal + */ + isTokenNode(): this is TokenNode; + /** + * @internal + */ + static isTokenNode(x: unknown): x is TokenNode; +} + +/** + * Walks each item in a list of component values all of their children. + * + * @param cb - The callback function to execute for each item. + * The function receives an object containing the current node (`node`), its parent (`parent`), + * and an optional `state` object. + * A second parameter is the index of the current node. + * The function can return `false` to stop the iteration. + * + * @param state - An optional state object that can be used to pass additional information to the callback function. + * The state object is cloned for each iteration. This means that changes to the state object are not reflected in the next iteration. + * However changes are passed down to child node iterations. + * + * @returns `false` if the iteration was halted, `undefined` otherwise. + * + * @example + * ```js + * import { tokenize } from '@csstools/css-tokenizer'; + * import { parseListOfComponentValues, isSimpleBlockNode } from '@csstools/css-parser-algorithms'; + * + * const myCSS = `calc(1px * (5 / 2)) 10px`; + * + * const componentValues = parseListOfComponentValues(tokenize({ css: myCSS })); + * + * let state = { inSimpleBlock: false }; + * walk(componentValues, (entry) => { + * if (isSimpleBlockNode(entry)) { + * entry.state.inSimpleBlock = true; + * return; + * } + * + * if (entry.state.inSimpleBlock) { + * console.log(entry.node.toString()); // `5`, ... + * } + * }, state); + * ``` + */ +export declare function walk>(componentValues: Array, cb: (entry: { + node: ComponentValue; + parent: ContainerNode | { + value: Array; + }; + state?: T; +}, index: number | string) => boolean | void, state?: T): false | undefined; + +/** + * Generate a function that finds the next element that should be visited when walking an AST. + * Rules : + * 1. the previous iteration is used as a reference, so any checks are relative to the start of the current iteration. + * 2. the next element always appears after the current index. + * 3. the next element always exists in the list. + * 4. replacing an element does not cause the replaced element to be visited. + * 5. removing an element does not cause elements to be skipped. + * 6. an element added later in the list will be visited. + */ +export declare function walkerIndexGenerator(initialList: Array): (list: Array, child: T, index: number) => number; + +export declare class WhitespaceNode { + /** + * The node type, always `ComponentValueType.WhiteSpace` + */ + type: ComponentValueType; + /** + * The list of consecutive whitespace tokens. + */ + value: Array; + constructor(value: Array); + /** + * Retrieve the tokens for the current whitespace. + * This is the inverse of parsing from a list of tokens. + */ + tokens(): Array; + /** + * Convert the current whitespace to a string. + * This is not a true serialization. + * It is purely a concatenation of the string representation of the tokens. + */ + toString(): string; + /** + * @internal + * + * A debug helper to convert the current object to a JSON representation. + * This is useful in asserts and to store large ASTs in files. + */ + toJSON(): Record; + /** + * @internal + */ + isWhitespaceNode(): this is WhitespaceNode; + /** + * @internal + */ + static isWhitespaceNode(x: unknown): x is WhitespaceNode; +} + +export { } diff --git a/node_modules/@csstools/css-parser-algorithms/dist/index.mjs b/node_modules/@csstools/css-parser-algorithms/dist/index.mjs new file mode 100644 index 0000000..ca4f76d --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/index.mjs @@ -0,0 +1 @@ +import{isTokenEOF as e,TokenType as n,isToken as t,stringify as o,mirrorVariant as s,isTokenOpenParen as i,isTokenOpenCurly as r,isTokenOpenSquare as a,isTokenFunction as c,isTokenWhitespace as u,isTokenComment as l,mirrorVariantType as d,ParseError as h,isTokenWhiteSpaceOrComment as p,isTokenCloseParen as m,isTokenComma as k}from"@csstools/css-tokenizer";var f;function walkerIndexGenerator(e){let n=e.slice();return(e,t,o)=>{let s=-1;for(let i=n.indexOf(t);i=e.length)?-1:(n=e.slice(),s)}}function consumeComponentValue(e,n){const t=n[0];if(i(t)||r(t)||a(t)){const t=consumeSimpleBlock(e,n);return{advance:t.advance,node:t.node}}if(c(t)){const t=consumeFunction(e,n);return{advance:t.advance,node:t.node}}if(u(t)){const t=consumeWhitespace(e,n);return{advance:t.advance,node:t.node}}if(l(t)){const t=consumeComment(e,n);return{advance:t.advance,node:t.node}}return{advance:1,node:new TokenNode(t)}}!function(e){e.Function="function",e.SimpleBlock="simple-block",e.Whitespace="whitespace",e.Comment="comment",e.Token="token"}(f||(f={}));class ContainerNodeBaseClass{value=[];indexOf(e){return this.value.indexOf(e)}at(e){if("number"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}forEach(e,n){if(0===this.value.length)return;const t=walkerIndexGenerator(this.value);let o=0;for(;o!1!==e(n,t)&&((!("walk"in n.node)||!this.value.includes(n.node)||!1!==n.node.walk(e,n.state))&&void 0),n)}}class FunctionNode extends ContainerNodeBaseClass{type=f.Function;name;endToken;constructor(e,n,t){super(),this.name=e,this.endToken=n,this.value=t}getName(){return this.name[4].value}normalize(){e(this.endToken)&&(this.endToken=[n.CloseParen,")",-1,-1,void 0])}tokens(){return e(this.endToken)?[this.name,...this.value.flatMap(e=>e.tokens())]:[this.name,...this.value.flatMap(e=>e.tokens()),this.endToken]}toString(){const e=this.value.map(e=>t(e)?o(e):e.toString()).join("");return o(this.name)+e+o(this.endToken)}toJSON(){return{type:this.type,name:this.getName(),tokens:this.tokens(),value:this.value.map(e=>e.toJSON())}}isFunctionNode(){return FunctionNode.isFunctionNode(this)}static isFunctionNode(e){return!!e&&(e instanceof FunctionNode&&e.type===f.Function)}}function consumeFunction(n,t){const o=[];let s=1;for(;;){const i=t[s];if(!i||e(i))return n.onParseError(new h("Unexpected EOF while consuming a function.",t[0][2],t[t.length-1][3],["5.4.9. Consume a function","Unexpected EOF"])),{advance:t.length,node:new FunctionNode(t[0],i,o)};if(m(i))return{advance:s+1,node:new FunctionNode(t[0],i,o)};if(p(i)){const e=consumeAllCommentsAndWhitespace(n,t.slice(s));s+=e.advance,o.push(...e.nodes);continue}const r=consumeComponentValue(n,t.slice(s));s+=r.advance,o.push(r.node)}}class SimpleBlockNode extends ContainerNodeBaseClass{type=f.SimpleBlock;startToken;endToken;constructor(e,n,t){super(),this.startToken=e,this.endToken=n,this.value=t}normalize(){if(e(this.endToken)){const e=s(this.startToken);e&&(this.endToken=e)}}tokens(){return e(this.endToken)?[this.startToken,...this.value.flatMap(e=>e.tokens())]:[this.startToken,...this.value.flatMap(e=>e.tokens()),this.endToken]}toString(){const e=this.value.map(e=>t(e)?o(e):e.toString()).join("");return o(this.startToken)+e+o(this.endToken)}toJSON(){return{type:this.type,startToken:this.startToken,tokens:this.tokens(),value:this.value.map(e=>e.toJSON())}}isSimpleBlockNode(){return SimpleBlockNode.isSimpleBlockNode(this)}static isSimpleBlockNode(e){return!!e&&(e instanceof SimpleBlockNode&&e.type===f.SimpleBlock)}}function consumeSimpleBlock(n,t){const o=d(t[0][0]);if(!o)throw new Error("Failed to parse, a mirror variant must exist for all block open tokens.");const s=[];let i=1;for(;;){const r=t[i];if(!r||e(r))return n.onParseError(new h("Unexpected EOF while consuming a simple block.",t[0][2],t[t.length-1][3],["5.4.8. Consume a simple block","Unexpected EOF"])),{advance:t.length,node:new SimpleBlockNode(t[0],r,s)};if(r[0]===o)return{advance:i+1,node:new SimpleBlockNode(t[0],r,s)};if(p(r)){const e=consumeAllCommentsAndWhitespace(n,t.slice(i));i+=e.advance,s.push(...e.nodes);continue}const a=consumeComponentValue(n,t.slice(i));i+=a.advance,s.push(a.node)}}class WhitespaceNode{type=f.Whitespace;value;constructor(e){this.value=e}tokens(){return this.value}toString(){return o(...this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isWhitespaceNode(){return WhitespaceNode.isWhitespaceNode(this)}static isWhitespaceNode(e){return!!e&&(e instanceof WhitespaceNode&&e.type===f.Whitespace)}}function consumeWhitespace(e,n){let t=0;for(;;){const e=n[t];if(!u(e))return{advance:t,node:new WhitespaceNode(n.slice(0,t))};t++}}class CommentNode{type=f.Comment;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return o(this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isCommentNode(){return CommentNode.isCommentNode(this)}static isCommentNode(e){return!!e&&(e instanceof CommentNode&&e.type===f.Comment)}}function consumeComment(e,n){return{advance:1,node:new CommentNode(n[0])}}function consumeAllCommentsAndWhitespace(e,n){const t=[];let o=0;for(;;){if(u(n[o])){const e=consumeWhitespace(0,n.slice(o));o+=e.advance,t.push(e.node);continue}if(!l(n[o]))return{advance:o,nodes:t};t.push(new CommentNode(n[o])),o++}}class TokenNode{type=f.Token;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return this.value[1]}toJSON(){return{type:this.type,tokens:this.tokens()}}isTokenNode(){return TokenNode.isTokenNode(this)}static isTokenNode(e){return!!e&&(e instanceof TokenNode&&e.type===f.Token)}}function parseComponentValue(t,o){const s={onParseError:o?.onParseError??(()=>{})},i=[...t];e(i[i.length-1])||i.push([n.EOF,"",i[i.length-1][2],i[i.length-1][3],void 0]);const r=consumeComponentValue(s,i);if(e(i[Math.min(r.advance,i.length-1)]))return r.node;s.onParseError(new h("Expected EOF after parsing a component value.",t[0][2],t[t.length-1][3],["5.3.9. Parse a component value","Expected EOF"]))}function parseListOfComponentValues(t,o){const s={onParseError:o?.onParseError??(()=>{})},i=[...t];e(i[i.length-1])&&i.push([n.EOF,"",i[i.length-1][2],i[i.length-1][3],void 0]);const r=[];let a=0;for(;;){if(!i[a]||e(i[a]))return r;const n=consumeComponentValue(s,i.slice(a));r.push(n.node),a+=n.advance}}function parseCommaSeparatedListOfComponentValues(t,o){const s={onParseError:o?.onParseError??(()=>{})},i=[...t];if(0===t.length)return[];e(i[i.length-1])&&i.push([n.EOF,"",i[i.length-1][2],i[i.length-1][3],void 0]);const r=[];let a=[],c=0;for(;;){if(!i[c]||e(i[c]))return a.length&&r.push(a),r;if(k(i[c])){r.push(a),a=[],c++;continue}const n=consumeComponentValue(s,t.slice(c));a.push(n.node),c+=n.advance}}function gatherNodeAncestry(e){const n=new Map;return e.walk(e=>{Array.isArray(e.node)?e.node.forEach(t=>{n.set(t,e.parent)}):n.set(e.node,e.parent)}),n}function forEach(e,n,t){if(0===e.length)return;const o=walkerIndexGenerator(e);let s=0;for(;s!1!==n(t,o)&&((!("walk"in t.node)||!e.includes(t.node)||!1!==t.node.walk(n,t.state))&&void 0),t)}function replaceComponentValues(e,n){for(let t=0;t{if("number"!=typeof t)return;const o=n(e.node);o&&(Array.isArray(o)?e.parent.value.splice(t,1,...o):e.parent.value.splice(t,1,o))})}return e}function stringify(e){return e.map(e=>e.map(e=>o(...e.tokens())).join("")).join(",")}function isSimpleBlockNode(e){return SimpleBlockNode.isSimpleBlockNode(e)}function isFunctionNode(e){return FunctionNode.isFunctionNode(e)}function isWhitespaceNode(e){return WhitespaceNode.isWhitespaceNode(e)}function isCommentNode(e){return CommentNode.isCommentNode(e)}function isWhiteSpaceOrCommentNode(e){return isWhitespaceNode(e)||isCommentNode(e)}function isTokenNode(e){return TokenNode.isTokenNode(e)}function sourceIndices(e){if(Array.isArray(e)){const n=e[0];if(!n)return[0,0];const t=e[e.length-1]||n;return[sourceIndices(n)[0],sourceIndices(t)[1]]}const n=e.tokens(),t=n[0],o=n[n.length-1];return t&&o?[t[2],o[3]]:[0,0]}export{CommentNode,f as ComponentValueType,ContainerNodeBaseClass,FunctionNode,SimpleBlockNode,TokenNode,WhitespaceNode,forEach,gatherNodeAncestry,isCommentNode,isFunctionNode,isSimpleBlockNode,isTokenNode,isWhiteSpaceOrCommentNode,isWhitespaceNode,parseCommaSeparatedListOfComponentValues,parseComponentValue,parseListOfComponentValues,replaceComponentValues,sourceIndices,stringify,walk,walkerIndexGenerator}; diff --git a/node_modules/@csstools/css-parser-algorithms/package.json b/node_modules/@csstools/css-parser-algorithms/package.json new file mode 100644 index 0000000..5734668 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/package.json @@ -0,0 +1,58 @@ +{ + "name": "@csstools/css-parser-algorithms", + "description": "Algorithms to help you parse CSS from an array of tokens.", + "version": "4.0.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=20.19.0" + }, + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "peerDependencies": { + "@csstools/css-tokenizer": "^4.0.0" + }, + "scripts": {}, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/csstools/postcss-plugins.git", + "directory": "packages/css-parser-algorithms" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "css", + "parser" + ] +} diff --git a/node_modules/@csstools/css-syntax-patches-for-csstree/CHANGELOG.md b/node_modules/@csstools/css-syntax-patches-for-csstree/CHANGELOG.md new file mode 100644 index 0000000..c8cf33d --- /dev/null +++ b/node_modules/@csstools/css-syntax-patches-for-csstree/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changes to CSS Syntax Patches For CSSTree + +### 1.0.29 + +_March 2, 2026_ + +- Update `@webref/css` to [`v8.3.0`](https://github.com/w3c/webref/releases/tag/%40webref%2Fcss%408.3.0) + +[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/packages/css-syntax-patches-for-csstree/CHANGELOG.md) diff --git a/node_modules/@csstools/css-syntax-patches-for-csstree/LICENSE.md b/node_modules/@csstools/css-syntax-patches-for-csstree/LICENSE.md new file mode 100644 index 0000000..e8ae93b --- /dev/null +++ b/node_modules/@csstools/css-syntax-patches-for-csstree/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT 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/@csstools/css-syntax-patches-for-csstree/README.md b/node_modules/@csstools/css-syntax-patches-for-csstree/README.md new file mode 100644 index 0000000..00e214f --- /dev/null +++ b/node_modules/@csstools/css-syntax-patches-for-csstree/README.md @@ -0,0 +1,43 @@ +# CSS Syntax Patches For CSSTree for CSS + +[npm version][npm-url] +[Build Status][cli-url] + +Patch [csstree](https://github.com/csstree/csstree) syntax definitions with the latest data from CSS specifications. + +## Usage + +```bash +npm install @csstools/css-syntax-patches-for-csstree +``` + +```js +import { fork } from 'css-tree'; +import syntax_patches from '@csstools/css-syntax-patches-for-csstree' with { type: 'json' }; + +const forkedLexer = fork({ + atrules: syntax_patches.next.atrules, + properties: syntax_patches.next.properties, + types: syntax_patches.next.types, +}).lexer; +``` + +## `next` + +```js +import syntax_patches from '@csstools/css-syntax-patches-for-csstree' with { type: 'json' }; + +console.log(syntax_patches.next); +// ^^^^ +``` + +CSS specifications are often still in flux and various parts might change or disappear altogether. +Specifications also contains parts that haven't been implemented yet in a browser. +Only CSS that is widely adopted can be expected to be stable. + +The `next` grouping contains a combination of what is currently valid in browsers and the progress in various specifications. + +_In the future more groupings might be added._ + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[npm-url]: https://www.npmjs.com/package/@csstools/css-syntax-patches-for-csstree diff --git a/node_modules/@csstools/css-syntax-patches-for-csstree/dist/index.d.ts b/node_modules/@csstools/css-syntax-patches-for-csstree/dist/index.d.ts new file mode 100644 index 0000000..05d942a --- /dev/null +++ b/node_modules/@csstools/css-syntax-patches-for-csstree/dist/index.d.ts @@ -0,0 +1,5 @@ +export const next: { + atrules: Record }>, + properties: Record, + types: Record, +} diff --git a/node_modules/@csstools/css-syntax-patches-for-csstree/dist/index.json b/node_modules/@csstools/css-syntax-patches-for-csstree/dist/index.json new file mode 100644 index 0000000..803324a --- /dev/null +++ b/node_modules/@csstools/css-syntax-patches-for-csstree/dist/index.json @@ -0,0 +1,913 @@ +{ + "next": { + "atrules": { + "color-profile": { + "descriptors": { + "components": "#", + "rendering-intent": "relative-colorimetric | absolute-colorimetric | perceptual | saturation", + "src": "" + } + }, + "counter-style": { + "descriptors": { + "additive-symbols": "[ && ]#", + "pad": " && " + } + }, + "font-face": { + "descriptors": { + "ascent-override": "[ normal | ]{1,2}", + "descent-override": "[ normal | ]{1,2}", + "font-language-override": "normal | ", + "font-named-instance": "auto | ", + "font-size": "auto | [ ]{1,2}", + "font-style": "auto | normal | italic | left | right | oblique [ {1,2} ]?", + "font-weight": "| auto", + "font-width": "auto | <'font-width'>{1,2}", + "line-gap-override": "[ normal | ]{1,2}", + "size-adjust": "", + "src": "", + "subscript-position-override": "[ normal | from-font | ]{1,2}", + "subscript-size-override": "[ normal | from-font | ]{1,2}", + "superscript-position-override": "[ normal | from-font | ]{1,2}", + "superscript-size-override": "[ normal | from-font | ]{1,2}", + "unicode-range": "#" + } + }, + "font-feature-values": { + "descriptors": { + "font-display": "auto | block | swap | fallback | optional" + } + }, + "font-palette-values": { + "descriptors": { + "override-colors": "[ ]#" + } + }, + "function": { + "descriptors": { + "result": "?" + } + }, + "page": { + "descriptors": { + "size": "{1,2} | auto | [ || [ portrait | landscape ] ]" + } + }, + "view-transition": { + "descriptors": { + "navigation": "auto | none", + "types": "none | +" + } + } + }, + "properties": { + "align-items": "normal | stretch | | [ ? ] | anchor-center", + "align-self": "auto | ? [ normal | ] | stretch | | anchor-center", + "alignment-baseline": "auto | before-edge | text-before-edge | after-edge | text-after-edge | baseline | ", + "all": " | revert-rule", + "anchor-name": "none | #", + "anchor-scope": "none | all | #", + "animation-duration": "[ auto |