diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 0c853f2422..d2ec28336b 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -416,9 +416,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", - "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -762,17 +762,17 @@ } }, "node_modules/@octokit/types": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.1.0.tgz", - "integrity": "sha512-nBwAFOYqVUUJ2AZFK4ZzESQptaAVqdTDKk8gE0Xr0o99WuPDSrhUC38x0F40xD9OUxXhOOuZKWNNVVLPSHQDvQ==", + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.4.0.tgz", + "integrity": "sha512-WlMegy3lPXYWASe3k9Jslc5a0anrYAYMWtsFrxBTdQjS70hvLH6C+PGvHbOsgy3RA3LouGJoU/vAt4KarecQLQ==", "dependencies": { - "@octokit/openapi-types": "^21.0.0" + "@octokit/openapi-types": "^22.0.1" } }, "node_modules/@octokit/types/node_modules/@octokit/openapi-types": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-21.2.0.tgz", - "integrity": "sha512-xx+Xd6I7rYvul/hgUDqv6TeGX0IOGnhSg9IOeYgd/uI7IAqUy6DE2B6Ipv2M4mWoxaMcWjIzgTIcv8pMO3F3vw==" + "version": "22.0.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.0.1.tgz", + "integrity": "sha512-1yN5m1IMNXthoBDUXFF97N1gHop04B3H8ws7wtOr8GgRyDO1gKALjwMHARNBoMBiB/2vEe/vxstrApcJZzQbnQ==" }, "node_modules/@opentelemetry/api": { "version": "1.4.1", @@ -960,22 +960,22 @@ "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.5.0.tgz", - "integrity": "sha512-HpqNTH8Du34nLxbKgVMGljZMG0rJd2O9ecvr2QLYp+7512ty1j42KnsFwspPXg1Vh8an9YImf6CokUBltisZFQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz", + "integrity": "sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.5.0", - "@typescript-eslint/type-utils": "7.5.0", - "@typescript-eslint/utils": "7.5.0", - "@typescript-eslint/visitor-keys": "7.5.0", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/type-utils": "7.7.0", + "@typescript-eslint/utils": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -995,15 +995,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.5.0.tgz", - "integrity": "sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.5.0", - "@typescript-eslint/types": "7.5.0", - "@typescript-eslint/typescript-estree": "7.5.0", - "@typescript-eslint/visitor-keys": "7.5.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4" }, "engines": { @@ -1023,13 +1023,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.5.0.tgz", - "integrity": "sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", + "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.5.0", - "@typescript-eslint/visitor-keys": "7.5.0" + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1040,15 +1040,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.5.0.tgz", - "integrity": "sha512-A021Rj33+G8mx2Dqh0nMO9GyjjIBK3MqgVgZ2qlKf6CJy51wY/lkkFqq3TqqnH34XyAHUkq27IjlUkWlQRpLHw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz", + "integrity": "sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.5.0", - "@typescript-eslint/utils": "7.5.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/utils": "7.7.0", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1067,9 +1067,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.5.0.tgz", - "integrity": "sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", + "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1080,19 +1080,19 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.5.0.tgz", - "integrity": "sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", + "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.5.0", - "@typescript-eslint/visitor-keys": "7.5.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1117,9 +1117,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -1132,18 +1132,18 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.5.0.tgz", - "integrity": "sha512-3vZl9u0R+/FLQcpy2EHyRGNqAS/ofJ3Ji8aebilfJe+fobK8+LbIFmrHciLVDxjDoONmufDcnVSF38KwMEOjzw==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz", + "integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.5.0", - "@typescript-eslint/types": "7.5.0", - "@typescript-eslint/typescript-estree": "7.5.0", - "semver": "^7.5.4" + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "semver": "^7.6.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1157,13 +1157,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.5.0.tgz", - "integrity": "sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", + "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.5.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.7.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -3662,9 +3662,9 @@ } }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "engines": { "node": ">= 4" } @@ -5928,12 +5928,12 @@ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "node_modules/ts-api-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", - "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, "engines": { - "node": ">=16.13.0" + "node": ">=16" }, "peerDependencies": { "typescript": ">=4.2.0" @@ -6062,9 +6062,9 @@ } }, "node_modules/typescript": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.4.tgz", - "integrity": "sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, "bin": { "tsc": "bin/tsc", diff --git a/node_modules/@eslint-community/regexpp/index.d.ts b/node_modules/@eslint-community/regexpp/index.d.ts index 8ca7ecefc3..d553b10b36 100644 --- a/node_modules/@eslint-community/regexpp/index.d.ts +++ b/node_modules/@eslint-community/regexpp/index.d.ts @@ -5,6 +5,7 @@ declare module "@eslint-community/regexpp" { import { RegExpParser } from "@eslint-community/regexpp/parser"; import { RegExpValidator } from "@eslint-community/regexpp/validator"; import { RegExpVisitor } from "@eslint-community/regexpp/visitor"; + export { RegExpSyntaxError } from "@eslint-community/regexpp/regexp-syntax-error"; export { AST, RegExpParser, RegExpValidator }; /** * Parse a given regular expression literal then make AST object. @@ -88,8 +89,8 @@ declare module "@eslint-community/regexpp/ast" { export type ClassRangesCharacterClassElement = | Character | CharacterClassRange - | EscapeCharacterSet - | UnicodePropertyCharacterSet; + | CharacterUnicodePropertyCharacterSet + | EscapeCharacterSet; export type UnicodeSetsCharacterClassElement = | Character | CharacterClassRange @@ -208,23 +209,36 @@ declare module "@eslint-community/regexpp/ast" { type: "CharacterClass"; parent: | Alternative - | ExpressionCharacterClass + | ClassIntersection + | ClassSubtraction | Quantifier | UnicodeSetsCharacterClass; unicodeSets: boolean; negate: boolean; elements: CharacterClassElement[]; } + /** + * The character class used in legacy (neither `u` nor `v` flag) and Unicode mode (`u` flag). + * + * This character class is guaranteed to **not** contain strings. + * + * In Unicode sets mode (`v` flag), {@link UnicodeSetsCharacterClass} is used. + */ export interface ClassRangesCharacterClass extends BaseCharacterClass { parent: Alternative | Quantifier; unicodeSets: false; elements: ClassRangesCharacterClassElement[]; } - /** UnicodeSetsCharacterClass is the CharacterClass when in Unicode sets mode. So it may contain strings. */ + /** + * The character class used in Unicode sets mode (`v` flag). + * + * This character class may contain strings. + */ export interface UnicodeSetsCharacterClass extends BaseCharacterClass { parent: | Alternative - | ExpressionCharacterClass + | ClassIntersection + | ClassSubtraction | Quantifier | UnicodeSetsCharacterClass; unicodeSets: true; @@ -328,6 +342,12 @@ declare module "@eslint-community/regexpp/ast" { /** StringsUnicodePropertyCharacterSet is Unicode property escape with property of strings. */ export interface StringsUnicodePropertyCharacterSet extends BaseUnicodePropertyCharacterSet { + parent: + | Alternative + | ClassIntersection + | ClassSubtraction + | Quantifier + | UnicodeSetsCharacterClass; strings: true; value: null; negate: false; @@ -340,7 +360,8 @@ declare module "@eslint-community/regexpp/ast" { type: "ExpressionCharacterClass"; parent: | Alternative - | ExpressionCharacterClass + | ClassIntersection + | ClassSubtraction | Quantifier | UnicodeSetsCharacterClass; negate: boolean; @@ -1010,6 +1031,23 @@ declare module "@eslint-community/regexpp/visitor" { } } +declare module "@eslint-community/regexpp/regexp-syntax-error" { + import type { RegExpValidatorSourceContext } from "@eslint-community/regexpp/validator"; + export class RegExpSyntaxError extends SyntaxError { + index: number; + constructor(message: string, index: number); + } + export function newRegExpSyntaxError( + srcCtx: RegExpValidatorSourceContext, + flags: { + unicode: boolean; + unicodeSets: boolean; + }, + index: number, + message: string + ): RegExpSyntaxError; +} + declare module "@eslint-community/regexpp/ecma-versions" { export type EcmaVersion = | 5 diff --git a/node_modules/@eslint-community/regexpp/index.js b/node_modules/@eslint-community/regexpp/index.js index 07146d1ad9..545dc08ab6 100644 --- a/node_modules/@eslint-community/regexpp/index.js +++ b/node_modules/@eslint-community/regexpp/index.js @@ -45,10 +45,10 @@ function isLargeIdContinue(cp) { return isInRange(cp, largeIdContinueRanges !== null && largeIdContinueRanges !== void 0 ? largeIdContinueRanges : (largeIdContinueRanges = initLargeIdContinueRanges())); } function initLargeIdStartRanges() { - return restoreRanges("4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 2 0 7 0 2 2 2 0 2 j 2 2a 2 3u 9 4l 2 11 3 0 7 14 20 q 5 3 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 8 a 6 n 2 5 i 15 1n 1h 4 0 j 0 8 9 g f 5 7 3 1 3 l 2 6 2 0 4 3 4 0 h 0 e 1 2 2 f 1 b 0 9 5 5 1 3 l 2 6 2 1 2 1 2 1 w 3 2 0 k 2 h 8 2 2 2 l 2 6 2 1 2 4 4 0 j 0 g 1 o 0 c 7 3 1 3 l 2 6 2 1 2 4 4 0 v 1 2 2 g 0 i 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 b n 0 1h 7 2 2 2 m 2 f 4 0 r 2 3 0 3 1 v 0 5 7 2 2 2 m 2 9 2 4 4 0 w 1 2 1 g 1 i 8 2 2 2 14 3 0 h 0 6 2 9 2 p 5 6 h 4 n 2 8 2 0 3 6 1n 1b 2 1 d 6 1n 1 2 0 2 4 2 n 2 0 2 9 2 1 a 0 3 4 2 0 m 3 x 0 1s 7 2 z s 4 38 16 l 0 h 5 5 3 4 0 4 1 8 2 5 c d 0 i 11 2 0 6 0 3 16 2 98 2 3 3 6 2 0 2 3 3 14 2 3 3 w 2 3 3 6 2 0 2 3 3 e 2 1k 2 3 3 1u 12 f h 2d 3 5 4 h7 3 g 2 p 6 22 4 a 8 h e i f h f c 2 2 g 1f 10 0 5 0 1w 2g 8 14 2 0 6 1x b u 1e t 3 4 c 17 5 p 1j m a 1g 2b 0 2m 1a i 7 1j t e 1 b 17 r z 16 2 b z 3 8 8 16 3 2 16 3 2 5 2 1 4 0 6 5b 1t 7p 3 5 3 11 3 5 3 7 2 0 2 0 2 0 2 u 3 1g 2 6 2 0 4 2 2 6 4 3 3 5 5 c 6 2 2 6 39 0 e 0 h c 2u 0 5 0 3 9 2 0 3 5 7 0 2 0 2 0 2 f 3 3 6 4 5 0 i 14 22g 6c 7 3 4 1 d 11 2 0 6 0 3 1j 8 0 h m a 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 fb 2 q 8 8 4 3 4 5 2d 5 4 2 2h 2 3 6 16 2 2l i v 1d f e9 533 1t h3g 1w 19 3 7g 4 f b 1 l 1a h u 3 27 14 8 3 2u 3 1r 6 1 2 0 2 4 p f 2 2 2 3 2 m u 1f f 1d 1r 5 4 0 2 1 c r b m q s 8 1a t 0 h 4 2 9 b 4 2 14 o 2 2 7 l m 4 0 4 1d 2 0 4 1 3 4 3 0 2 0 p 2 3 a 8 2 d 5 3 5 3 5 a 6 2 6 2 16 2 d 7 36 u 8mb d m 5 1c 6it a5 3 2x 13 6 d 4 6 0 2 9 2 c 2 4 2 0 2 1 2 1 2 2z y a2 j 1r 3 1h 15 b 39 4 2 3q 11 p 7 p c 2g 4 5 3 5 3 5 3 2 10 b 2 p 2 i 2 1 2 e 3 d z 3e 1y 1g 7g s 4 1c 1c v e t 6 11 b t 3 z 5 7 2 4 17 4d j z 5 z 5 13 9 1f d a 2 e 2 6 2 1 2 a 2 e 2 6 2 1 1w 8m a l b 7 p 5 2 15 2 8 1y 5 3 0 2 17 2 1 4 0 3 m b m a u 1u i 2 1 b l b p 1z 1j 7 1 1t 0 g 3 2 2 2 s 17 s 4 s 10 7 2 r s 1h b l b i e h 33 20 1k 1e e 1e e z 9p 15 7 1 27 s b 0 9 l 17 h 1b k s m d 1g 1m 1 3 0 e 18 x o r z u 0 3 0 9 y 4 0 d 1b f 3 m 0 2 0 10 h 2 o k 1 1s 6 2 0 2 3 2 e 2 9 8 1a 13 7 3 1 3 l 2 6 2 1 2 4 4 0 j 0 d 4 4f 1g j 3 l 2 v 1b l 1 2 0 55 1a 16 3 11 1b l 0 1o 16 e 0 20 q 12 6 56 17 39 1r w 7 3 0 3 7 2 1 2 n g 0 2 0 2n 7 3 12 h 0 2 0 t 0 b 13 8 0 m 0 c 19 k 0 j 20 7c 8 2 10 i 0 1e t 35 6 2 1 2 11 m 0 q 5 2 1 2 v f 0 94 i g 0 2 c 2 x 3h 0 28 pl 2v 32 i 5f 219 2o g tr i 5 33u g6 6nu fs 8 u i 26 i t j 1b h 3 w k 6 i j5 1r 3l 22 6 0 1v c 1t 1 2 0 t 4qf 9 yd 17 8 6w8 3 2 6 2 1 2 82 g 0 u 2 3 0 f 3 9 az 1s5 2y 6 c 4 8 8 9 4mf 2c 2 1y 2 1 3 0 3 1 3 3 2 b 2 0 2 6 2 1s 2 3 3 7 2 6 2 r 2 3 2 4 2 0 4 6 2 9f 3 o 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 7 1f9 u 7 5 7a 1p 43 18 b 6 h 0 8y t j 17 dh r l1 6 2 3 2 1 2 e 2 5g 1o 1v 8 0 xh 3 2 q 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 g 6 2 2 4 2 g 3et wyn x 37d 7 65 3 4g1 f 5rk 2e8 f1 15v 3t6 6 38f"); + return restoreRanges("4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 2 0 7 0 2 2 2 0 2 j 2 2a 2 3u 9 4l 2 11 3 0 7 14 20 q 5 3 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 8 a 6 n 2 5 i 15 1n 1h 4 0 j 0 8 9 g f 5 7 3 1 3 l 2 6 2 0 4 3 4 0 h 0 e 1 2 2 f 1 b 0 9 5 5 1 3 l 2 6 2 1 2 1 2 1 w 3 2 0 k 2 h 8 2 2 2 l 2 6 2 1 2 4 4 0 j 0 g 1 o 0 c 7 3 1 3 l 2 6 2 1 2 4 4 0 v 1 2 2 g 0 i 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 b n 0 1h 7 2 2 2 m 2 f 4 0 r 2 3 0 3 1 v 0 5 7 2 2 2 m 2 9 2 4 4 0 w 1 2 1 g 1 i 8 2 2 2 14 3 0 h 0 6 2 9 2 p 5 6 h 4 n 2 8 2 0 3 6 1n 1b 2 1 d 6 1n 1 2 0 2 4 2 n 2 0 2 9 2 1 a 0 3 4 2 0 m 3 x 0 1s 7 2 z s 4 38 16 l 0 h 5 5 3 4 0 4 1 8 2 5 c d 0 i 11 2 0 6 0 3 16 2 98 2 3 3 6 2 0 2 3 3 14 2 3 3 w 2 3 3 6 2 0 2 3 3 e 2 1k 2 3 3 1u 12 f h 2d 3 5 4 h7 3 g 2 p 6 22 4 a 8 h e i f h f c 2 2 g 1f 10 0 5 0 1w 2g 8 14 2 0 6 1x b u 1e t 3 4 c 17 5 p 1j m a 1g 2b 0 2m 1a i 7 1j t e 1 b 17 r z 16 2 b z 3 8 8 16 3 2 16 3 2 5 2 1 4 0 6 5b 1t 7p 3 5 3 11 3 5 3 7 2 0 2 0 2 0 2 u 3 1g 2 6 2 0 4 2 2 6 4 3 3 5 5 c 6 2 2 6 39 0 e 0 h c 2u 0 5 0 3 9 2 0 3 5 7 0 2 0 2 0 2 f 3 3 6 4 5 0 i 14 22g 6c 7 3 4 1 d 11 2 0 6 0 3 1j 8 0 h m a 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 fb 2 q 8 8 4 3 4 5 2d 5 4 2 2h 2 3 6 16 2 2l i v 1d f e9 533 1t h3g 1w 19 3 7g 4 f b 1 l 1a h u 3 27 14 8 3 2u 3 1r 6 1 2 0 2 4 p f 2 2 2 3 2 m u 1f f 1d 1r 5 4 0 2 1 c r b m q s 8 1a t 0 h 4 2 9 b 4 2 14 o 2 2 7 l m 4 0 4 1d 2 0 4 1 3 4 3 0 2 0 p 2 3 a 8 2 d 5 3 5 3 5 a 6 2 6 2 16 2 d 7 36 u 8mb d m 5 1c 6it a5 3 2x 13 6 d 4 6 0 2 9 2 c 2 4 2 0 2 1 2 1 2 2z y a2 j 1r 3 1h 15 b 39 4 2 3q 11 p 7 p c 2g 4 5 3 5 3 5 3 2 10 b 2 p 2 i 2 1 2 e 3 d z 3e 1y 1g 7g s 4 1c 1c v e t 6 11 b t 3 z 5 7 2 4 17 4d j z 5 z 5 13 9 1f d a 2 e 2 6 2 1 2 a 2 e 2 6 2 1 1w 8m a l b 7 p 5 2 15 2 8 1y 5 3 0 2 17 2 1 4 0 3 m b m a u 1u i 2 1 b l b p 1z 1j 7 1 1t 0 g 3 2 2 2 s 17 s 4 s 10 7 2 r s 1h b l b i e h 33 20 1k 1e e 1e e z 9p 15 7 1 27 s b 0 9 l 17 h 1b k s m d 1g 1m 1 3 0 e 18 x o r z u 0 3 0 9 y 4 0 d 1b f 3 m 0 2 0 10 h 2 o k 1 1s 6 2 0 2 3 2 e 2 9 8 1a 13 7 3 1 3 l 2 6 2 1 2 4 4 0 j 0 d 4 4f 1g j 3 l 2 v 1b l 1 2 0 55 1a 16 3 11 1b l 0 1o 16 e 0 20 q 12 6 56 17 39 1r w 7 3 0 3 7 2 1 2 n g 0 2 0 2n 7 3 12 h 0 2 0 t 0 b 13 8 0 m 0 c 19 k 0 j 20 7c 8 2 10 i 0 1e t 35 6 2 1 2 11 m 0 q 5 2 1 2 v f 0 94 i g 0 2 c 2 x 3h 0 28 pl 2v 32 i 5f 219 2o g tr i 5 33u g6 6nu fs 8 u i 26 i t j 1b h 3 w k 6 i j5 1r 3l 22 6 0 1v c 1t 1 2 0 t 4qf 9 yd 17 8 6w8 3 2 6 2 1 2 82 g 0 u 2 3 0 f 3 9 az 1s5 2y 6 c 4 8 8 9 4mf 2c 2 1y 2 1 3 0 3 1 3 3 2 b 2 0 2 6 2 1s 2 3 3 7 2 6 2 r 2 3 2 4 2 0 4 6 2 9f 3 o 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 7 1f9 u 7 5 7a 1p 43 18 b 6 h 0 8y t j 17 dh r l1 6 2 3 2 1 2 e 2 5g 1o 1v 8 0 xh 3 2 q 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 g 6 2 2 4 2 g 3et wyn x 37d 7 65 3 4g1 f 5rk g h9 1wj f1 15v 3t6 6 38f"); } function initLargeIdContinueRanges() { - return restoreRanges("53 0 g9 33 o 0 70 4 7e 18 2 0 2 1 2 1 2 0 21 a 1d u 7 0 2u 6 3 5 3 1 2 3 3 9 o 0 v q 2k a g 9 y 8 a 0 p 3 2 8 2 2 2 4 18 2 1p 7 17 n 2 w 1j 2 2 h 2 6 b 1 3 9 i 2 1l 0 2 6 3 1 3 2 a 0 b 1 3 9 f 0 3 2 1l 0 2 4 5 1 3 2 4 0 l b 4 0 c 2 1l 0 2 7 2 2 2 2 l 1 3 9 b 5 2 2 1l 0 2 6 3 1 3 2 8 2 b 1 3 9 j 0 1o 4 4 2 2 3 a 0 f 9 h 4 1k 0 2 6 2 2 2 3 8 1 c 1 3 9 i 2 1l 0 2 6 2 2 2 3 8 1 c 1 3 9 4 0 d 3 1k 1 2 6 2 2 2 3 a 0 b 1 3 9 i 2 1z 0 5 5 2 0 2 7 7 9 3 1 1q 0 3 6 d 7 2 9 2g 0 3 8 c 6 2 9 1r 1 7 9 c 0 2 0 2 0 5 1 1e j 2 1 6 a 2 z a 0 2t j 2 9 d 3 5 2 2 2 3 6 4 3 e b 2 e jk 2 a 8 pt 3 t 2 u 1 v 1 1t v a 0 3 9 y 2 2 a 40 0 3b b 5 b b 9 3l a 1p 4 1m 9 2 s 3 a 7 9 n d 2 f 1e 4 1c g c 9 i 8 d 2 v c 3 9 19 d 1d j 9 9 7 9 3b 2 2 k 5 0 7 0 3 2 5j 1r g0 1 k 0 3g c 5 0 4 b 2db 2 3y 0 2p v ff 5 2y 1 n7q 9 1y 0 5 9 x 1 29 1 7l 0 4 0 5 0 o 4 5 0 2c 1 1f h b 9 7 h e a t 7 q c 19 3 1c d g 9 c 0 b 9 1c d d 0 9 1 3 9 y 2 1f 0 2 2 3 1 6 1 2 0 16 4 6 1 6l 7 2 1 3 9 fmt 0 ki f h f 4 1 p 2 5d 9 12 0 ji 0 6b 0 46 4 86 9 120 2 2 1 6 3 15 2 5 0 4m 1 fy 3 9 9 aa 1 29 2 1z a 1e 3 3f 2 1i e w a 3 1 b 3 1a a 8 0 1a 9 7 2 11 d 2 9 6 1 19 0 d 2 1d d 9 3 2 b 2b b 7 0 3 0 4e b 6 9 7 3 1k 1 2 6 3 1 3 2 a 0 b 1 3 6 4 4 5d h a 9 5 0 2a j d 9 5y 6 3 8 s 1 2b g g 9 2a c 9 9 2c e 5 9 6r e 4m 9 1z 5 2 1 3 3 2 0 2 1 d 9 3c 6 3 6 4 0 t 9 15 6 2 3 9 0 a a 1b f ba 7 2 7 h 9 1l l 2 d 3f 5 4 0 2 1 2 6 2 0 9 9 1d 4 2 1 2 4 9 9 96 3 a 1 2 0 1d 6 4 4 e 9 44n 0 7 e aob 9 2f 9 13 4 1o 6 q 9 s6 0 2 1i 8 3 2a 0 c 1 f58 1 3mq 19 3 m f3 4 4 5 9 7 3 6 v 3 45 2 13e 1d e9 1i 5 1d 9 0 f 0 n 4 2 e 11t 6 2 g 3 6 2 1 2 4 2t 0 4h 6 a 9 9x 0 1q d dv d rb 6 32 6 6 9 3o7 9 gvt3 6n"); + return restoreRanges("53 0 g9 33 o 0 70 4 7e 18 2 0 2 1 2 1 2 0 21 a 1d u 7 0 2u 6 3 5 3 1 2 3 3 9 o 0 v q 2k a g 9 y 8 a 0 p 3 2 8 2 2 2 4 18 2 1p 7 17 n 2 w 1j 2 2 h 2 6 b 1 3 9 i 2 1l 0 2 6 3 1 3 2 a 0 b 1 3 9 f 0 3 2 1l 0 2 4 5 1 3 2 4 0 l b 4 0 c 2 1l 0 2 7 2 2 2 2 l 1 3 9 b 5 2 2 1l 0 2 6 3 1 3 2 8 2 b 1 3 9 j 0 1o 4 4 2 2 3 a 0 f 9 h 4 1k 0 2 6 2 2 2 3 8 1 c 1 3 9 i 2 1l 0 2 6 2 2 2 3 8 1 c 1 3 9 4 0 d 3 1k 1 2 6 2 2 2 3 a 0 b 1 3 9 i 2 1z 0 5 5 2 0 2 7 7 9 3 1 1q 0 3 6 d 7 2 9 2g 0 3 8 c 6 2 9 1r 1 7 9 c 0 2 0 2 0 5 1 1e j 2 1 6 a 2 z a 0 2t j 2 9 d 3 5 2 2 2 3 6 4 3 e b 2 e jk 2 a 8 pt 3 t 2 u 1 v 1 1t v a 0 3 9 y 2 2 a 40 0 3b b 5 b b 9 3l a 1p 4 1m 9 2 s 3 a 7 9 n d 2 f 1e 4 1c g c 9 i 8 d 2 v c 3 9 19 d 1d j 9 9 7 9 3b 2 2 k 5 0 7 0 3 2 5j 1r el 1 1e 1 k 0 3g c 5 0 4 b 2db 2 3y 0 2p v ff 5 2y 1 2p 0 n51 9 1y 0 5 9 x 1 29 1 7l 0 4 0 5 0 o 4 5 0 2c 1 1f h b 9 7 h e a t 7 q c 19 3 1c d g 9 c 0 b 9 1c d d 0 9 1 3 9 y 2 1f 0 2 2 3 1 6 1 2 0 16 4 6 1 6l 7 2 1 3 9 fmt 0 ki f h f 4 1 p 2 5d 9 12 0 12 0 ig 0 6b 0 46 4 86 9 120 2 2 1 6 3 15 2 5 0 4m 1 fy 3 9 9 aa 1 29 2 1z a 1e 3 3f 2 1i e w a 3 1 b 3 1a a 8 0 1a 9 7 2 11 d 2 9 6 1 19 0 d 2 1d d 9 3 2 b 2b b 7 0 3 0 4e b 6 9 7 3 1k 1 2 6 3 1 3 2 a 0 b 1 3 6 4 4 5d h a 9 5 0 2a j d 9 5y 6 3 8 s 1 2b g g 9 2a c 9 9 2c e 5 9 6r e 4m 9 1z 5 2 1 3 3 2 0 2 1 d 9 3c 6 3 6 4 0 t 9 15 6 2 3 9 0 a a 1b f ba 7 2 7 h 9 1l l 2 d 3f 5 4 0 2 1 2 6 2 0 9 9 1d 4 2 1 2 4 9 9 96 3 a 1 2 0 1d 6 4 4 e 9 44n 0 7 e aob 9 2f 9 13 4 1o 6 q 9 s6 0 2 1i 8 3 2a 0 c 1 f58 1 3mq 19 3 m f3 4 4 5 9 7 3 6 v 3 45 2 13e 1d e9 1i 5 1d 9 0 f 0 n 4 2 e 11t 6 2 g 3 6 2 1 2 4 2t 0 4h 6 a 9 9x 0 1q d dv d rb 6 32 6 6 9 3o7 9 gvt3 6n"); } function isInRange(cp, ranges) { let l = 0, r = (ranges.length / 2) | 0, i = 0, min = 0, max = 0; @@ -117,6 +117,7 @@ const scNameSet = new Set(["Script", "Script_Extensions", "sc", "scx"]); const gcValueSets = new DataSet("C Cased_Letter Cc Cf Close_Punctuation Cn Co Combining_Mark Connector_Punctuation Control Cs Currency_Symbol Dash_Punctuation Decimal_Number Enclosing_Mark Final_Punctuation Format Initial_Punctuation L LC Letter Letter_Number Line_Separator Ll Lm Lo Lowercase_Letter Lt Lu M Mark Math_Symbol Mc Me Mn Modifier_Letter Modifier_Symbol N Nd Nl No Nonspacing_Mark Number Open_Punctuation Other Other_Letter Other_Number Other_Punctuation Other_Symbol P Paragraph_Separator Pc Pd Pe Pf Pi Po Private_Use Ps Punctuation S Sc Separator Sk Sm So Space_Separator Spacing_Mark Surrogate Symbol Titlecase_Letter Unassigned Uppercase_Letter Z Zl Zp Zs cntrl digit punct", "", "", "", "", "", ""); const scValueSets = new DataSet("Adlam Adlm Aghb Ahom Anatolian_Hieroglyphs Arab Arabic Armenian Armi Armn Avestan Avst Bali Balinese Bamu Bamum Bass Bassa_Vah Batak Batk Beng Bengali Bhaiksuki Bhks Bopo Bopomofo Brah Brahmi Brai Braille Bugi Buginese Buhd Buhid Cakm Canadian_Aboriginal Cans Cari Carian Caucasian_Albanian Chakma Cham Cher Cherokee Common Copt Coptic Cprt Cuneiform Cypriot Cyrillic Cyrl Deseret Deva Devanagari Dsrt Dupl Duployan Egyp Egyptian_Hieroglyphs Elba Elbasan Ethi Ethiopic Geor Georgian Glag Glagolitic Gonm Goth Gothic Gran Grantha Greek Grek Gujarati Gujr Gurmukhi Guru Han Hang Hangul Hani Hano Hanunoo Hatr Hatran Hebr Hebrew Hira Hiragana Hluw Hmng Hung Imperial_Aramaic Inherited Inscriptional_Pahlavi Inscriptional_Parthian Ital Java Javanese Kaithi Kali Kana Kannada Katakana Kayah_Li Khar Kharoshthi Khmer Khmr Khoj Khojki Khudawadi Knda Kthi Lana Lao Laoo Latin Latn Lepc Lepcha Limb Limbu Lina Linb Linear_A Linear_B Lisu Lyci Lycian Lydi Lydian Mahajani Mahj Malayalam Mand Mandaic Mani Manichaean Marc Marchen Masaram_Gondi Meetei_Mayek Mend Mende_Kikakui Merc Mero Meroitic_Cursive Meroitic_Hieroglyphs Miao Mlym Modi Mong Mongolian Mro Mroo Mtei Mult Multani Myanmar Mymr Nabataean Narb Nbat New_Tai_Lue Newa Nko Nkoo Nshu Nushu Ogam Ogham Ol_Chiki Olck Old_Hungarian Old_Italic Old_North_Arabian Old_Permic Old_Persian Old_South_Arabian Old_Turkic Oriya Orkh Orya Osage Osge Osma Osmanya Pahawh_Hmong Palm Palmyrene Pau_Cin_Hau Pauc Perm Phag Phags_Pa Phli Phlp Phnx Phoenician Plrd Prti Psalter_Pahlavi Qaac Qaai Rejang Rjng Runic Runr Samaritan Samr Sarb Saur Saurashtra Sgnw Sharada Shavian Shaw Shrd Sidd Siddham SignWriting Sind Sinh Sinhala Sora Sora_Sompeng Soyo Soyombo Sund Sundanese Sylo Syloti_Nagri Syrc Syriac Tagalog Tagb Tagbanwa Tai_Le Tai_Tham Tai_Viet Takr Takri Tale Talu Tamil Taml Tang Tangut Tavt Telu Telugu Tfng Tglg Thaa Thaana Thai Tibetan Tibt Tifinagh Tirh Tirhuta Ugar Ugaritic Vai Vaii Wara Warang_Citi Xpeo Xsux Yi Yiii Zanabazar_Square Zanb Zinh Zyyy", "Dogr Dogra Gong Gunjala_Gondi Hanifi_Rohingya Maka Makasar Medefaidrin Medf Old_Sogdian Rohg Sogd Sogdian Sogo", "Elym Elymaic Hmnp Nand Nandinagari Nyiakeng_Puachue_Hmong Wancho Wcho", "Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi", "Cpmn Cypro_Minoan Old_Uyghur Ougr Tangsa Tnsa Toto Vith Vithkuqi", "Hrkt Katakana_Or_Hiragana Kawi Nag_Mundari Nagm Unknown Zzzz", ""); const binPropertySets = new DataSet("AHex ASCII ASCII_Hex_Digit Alpha Alphabetic Any Assigned Bidi_C Bidi_Control Bidi_M Bidi_Mirrored CI CWCF CWCM CWKCF CWL CWT CWU Case_Ignorable Cased Changes_When_Casefolded Changes_When_Casemapped Changes_When_Lowercased Changes_When_NFKC_Casefolded Changes_When_Titlecased Changes_When_Uppercased DI Dash Default_Ignorable_Code_Point Dep Deprecated Dia Diacritic Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Ext Extender Gr_Base Gr_Ext Grapheme_Base Grapheme_Extend Hex Hex_Digit IDC IDS IDSB IDST IDS_Binary_Operator IDS_Trinary_Operator ID_Continue ID_Start Ideo Ideographic Join_C Join_Control LOE Logical_Order_Exception Lower Lowercase Math NChar Noncharacter_Code_Point Pat_Syn Pat_WS Pattern_Syntax Pattern_White_Space QMark Quotation_Mark RI Radical Regional_Indicator SD STerm Sentence_Terminal Soft_Dotted Term Terminal_Punctuation UIdeo Unified_Ideograph Upper Uppercase VS Variation_Selector White_Space XIDC XIDS XID_Continue XID_Start space", "Extended_Pictographic", "", "EBase EComp EMod EPres ExtPict", "", "", ""); +const binPropertyOfStringsSets = new DataSet("", "", "", "", "", "", "Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji RGI_Emoji_Flag_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence"); function isValidUnicodeProperty(version, name, value) { if (gcNameSet.has(name)) { return version >= 2018 && gcValueSets.es2018.has(value); @@ -136,6 +137,9 @@ function isValidLoneUnicodeProperty(version, value) { (version >= 2019 && binPropertySets.es2019.has(value)) || (version >= 2021 && binPropertySets.es2021.has(value))); } +function isValidLoneUnicodePropertyOfString(version, value) { + return version >= 2024 && binPropertyOfStringsSets.es2024.has(value); +} const BACKSPACE = 0x08; const CHARACTER_TABULATION = 0x09; @@ -360,35 +364,25 @@ class Reader { } class RegExpSyntaxError extends SyntaxError { - constructor(srcCtx, flags, index, message) { - let source = ""; - if (srcCtx.kind === "literal") { - const literal = srcCtx.source.slice(srcCtx.start, srcCtx.end); - if (literal) { - source = `: ${literal}`; - } - } - else if (srcCtx.kind === "pattern") { - const pattern = srcCtx.source.slice(srcCtx.start, srcCtx.end); - const flagsText = `${flags.unicode ? "u" : ""}${flags.unicodeSets ? "v" : ""}`; - source = `: /${pattern}/${flagsText}`; - } - super(`Invalid regular expression${source}: ${message}`); + constructor(message, index) { + super(message); this.index = index; } } - -const binPropertyOfStringSets = new Set([ - "Basic_Emoji", - "Emoji_Keycap_Sequence", - "RGI_Emoji_Modifier_Sequence", - "RGI_Emoji_Flag_Sequence", - "RGI_Emoji_Tag_Sequence", - "RGI_Emoji_ZWJ_Sequence", - "RGI_Emoji", -]); -function isValidLoneUnicodePropertyOfString(version, value) { - return version >= 2024 && binPropertyOfStringSets.has(value); +function newRegExpSyntaxError(srcCtx, flags, index, message) { + let source = ""; + if (srcCtx.kind === "literal") { + const literal = srcCtx.source.slice(srcCtx.start, srcCtx.end); + if (literal) { + source = `: ${literal}`; + } + } + else if (srcCtx.kind === "pattern") { + const pattern = srcCtx.source.slice(srcCtx.start, srcCtx.end); + const flagsText = `${flags.unicode ? "u" : ""}${flags.unicodeSets ? "v" : ""}`; + source = `: /${pattern}/${flagsText}`; + } + return new RegExpSyntaxError(`Invalid regular expression${source}: ${message}`, index); } const SYNTAX_CHARACTER = new Set([ @@ -842,7 +836,7 @@ class RegExpValidator { } raise(message, context) { var _a, _b, _c; - throw new RegExpSyntaxError(this._srcCtx, { + throw newRegExpSyntaxError(this._srcCtx, { unicode: (_a = context === null || context === void 0 ? void 0 : context.unicode) !== null && _a !== void 0 ? _a : (this._unicodeMode && !this._unicodeSetsMode), unicodeSets: (_b = context === null || context === void 0 ? void 0 : context.unicodeSets) !== null && _b !== void 0 ? _b : this._unicodeSetsMode, }, (_c = context === null || context === void 0 ? void 0 : context.index) !== null && _c !== void 0 ? _c : this.index, message); @@ -1957,7 +1951,7 @@ class RegExpParserState { constructor(options) { var _a; this._node = DUMMY_PATTERN; - this._expressionBuffer = null; + this._expressionBufferMap = new Map(); this._flags = DUMMY_FLAGS; this._backreferences = []; this._capturingGroups = []; @@ -2208,25 +2202,28 @@ class RegExpParserState { } onUnicodePropertyCharacterSet(start, end, kind, key, value, negate, strings) { const parent = this._node; - if ((parent.type !== "Alternative" && - parent.type !== "CharacterClass") || - (strings && (negate || value))) { + if (parent.type !== "Alternative" && parent.type !== "CharacterClass") { throw new Error("UnknownError"); } const base = { type: "CharacterSet", - parent, start, end, raw: this.source.slice(start, end), kind, - strings, key, }; - const node = strings - ? Object.assign(Object.assign({}, base), { value: null, negate: false, strings: true }) : Object.assign(Object.assign({}, base), { value, - negate, strings: false }); - parent.elements.push(node); + if (strings) { + if ((parent.type === "CharacterClass" && !parent.unicodeSets) || + negate || + value !== null) { + throw new Error("UnknownError"); + } + parent.elements.push(Object.assign(Object.assign({}, base), { parent, strings, value, negate })); + } + else { + parent.elements.push(Object.assign(Object.assign({}, base), { parent, strings, value, negate })); + } } onCharacter(start, end, value) { const parent = this._node; @@ -2294,19 +2291,21 @@ class RegExpParserState { const node = this._node; if (node.type !== "CharacterClass" || (node.parent.type !== "Alternative" && - node.parent.type !== "CharacterClass") || - (this._expressionBuffer && node.elements.length > 0)) { + node.parent.type !== "CharacterClass")) { throw new Error("UnknownError"); } const parent = node.parent; node.end = end; node.raw = this.source.slice(start, end); this._node = parent; - const expression = this._expressionBuffer; - this._expressionBuffer = null; + const expression = this._expressionBufferMap.get(node); if (!expression) { return; } + if (node.elements.length > 0) { + throw new Error("UnknownError"); + } + this._expressionBufferMap.delete(node); const newNode = { type: "ExpressionCharacterClass", parent, @@ -2364,7 +2363,7 @@ class RegExpParserState { throw new Error("UnknownError"); } const right = parent.elements.pop(); - const left = (_a = this._expressionBuffer) !== null && _a !== void 0 ? _a : parent.elements.pop(); + const left = (_a = this._expressionBufferMap.get(parent)) !== null && _a !== void 0 ? _a : parent.elements.pop(); if (!left || !right || left.type === "ClassSubtraction" || @@ -2383,7 +2382,7 @@ class RegExpParserState { }; left.parent = node; right.parent = node; - this._expressionBuffer = node; + this._expressionBufferMap.set(parent, node); } onClassSubtraction(start, end) { var _a; @@ -2392,7 +2391,7 @@ class RegExpParserState { throw new Error("UnknownError"); } const right = parent.elements.pop(); - const left = (_a = this._expressionBuffer) !== null && _a !== void 0 ? _a : parent.elements.pop(); + const left = (_a = this._expressionBufferMap.get(parent)) !== null && _a !== void 0 ? _a : parent.elements.pop(); if (!left || !right || left.type === "ClassIntersection" || @@ -2411,7 +2410,7 @@ class RegExpParserState { }; left.parent = node; right.parent = node; - this._expressionBuffer = node; + this._expressionBufferMap.set(parent, node); } onClassStringDisjunctionEnter(start) { const parent = this._node; @@ -2740,6 +2739,7 @@ function visitRegExpAST(node, handlers) { exports.AST = ast; exports.RegExpParser = RegExpParser; +exports.RegExpSyntaxError = RegExpSyntaxError; exports.RegExpValidator = RegExpValidator; exports.parseRegExpLiteral = parseRegExpLiteral; exports.validateRegExpLiteral = validateRegExpLiteral; diff --git a/node_modules/@eslint-community/regexpp/index.js.map b/node_modules/@eslint-community/regexpp/index.js.map index 8dc886c456..fbd0e1eec9 100644 --- a/node_modules/@eslint-community/regexpp/index.js.map +++ b/node_modules/@eslint-community/regexpp/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js.map","sources":[".temp/src/ecma-versions.ts",".temp/unicode/src/unicode/ids.ts",".temp/unicode/src/unicode/properties.ts",".temp/unicode/src/unicode/index.ts",".temp/src/reader.ts",".temp/src/regexp-syntax-error.ts",".temp/unicode/src/unicode/properties-of-strings.ts",".temp/src/validator.ts",".temp/src/parser.ts",".temp/src/visitor.ts",".temp/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;AAYO,MAAM,iBAAiB,GAAG,IAAI;;ACRrC,IAAI,kBAAkB,GAAyB,SAAS,CAAA;AACxD,IAAI,qBAAqB,GAAyB,SAAS,CAAA;AAErD,SAAU,SAAS,CAAC,EAAU,EAAA;IAChC,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,IAAI,CAAA;IAC1B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,IAAI,CAAA;AAC1B,IAAA,OAAO,cAAc,CAAC,EAAE,CAAC,CAAA;AAC7B,CAAC;AAEK,SAAU,YAAY,CAAC,EAAU,EAAA;IACnC,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,IAAI,CAAA;IAC1B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,IAAI,CAAA;IAC1B,IAAI,EAAE,KAAK,IAAI;AAAE,QAAA,OAAO,IAAI,CAAA;IAC5B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,IAAI,CAAA;IAC1B,OAAO,cAAc,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,cAAc,CAAC,EAAU,EAAA;AAC9B,IAAA,OAAO,SAAS,CACZ,EAAE,EACF,kBAAkB,aAAlB,kBAAkB,KAAA,KAAA,CAAA,GAAlB,kBAAkB,IAAK,kBAAkB,GAAG,sBAAsB,EAAE,CAAC,CACxE,CAAA;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAU,EAAA;AACjC,IAAA,OAAO,SAAS,CACZ,EAAE,EACF,qBAAqB,aAArB,qBAAqB,KAAA,KAAA,CAAA,GAArB,qBAAqB,IAChB,qBAAqB,GAAG,yBAAyB,EAAE,CAAC,CAC5D,CAAA;AACL,CAAC;AAED,SAAS,sBAAsB,GAAA;AAC3B,IAAA,OAAO,aAAa,CAChB,o0FAAo0F,CACv0F,CAAA;AACL,CAAC;AAED,SAAS,yBAAyB,GAAA;AAC9B,IAAA,OAAO,aAAa,CAChB,qmDAAqmD,CACxmD,CAAA;AACL,CAAC;AAED,SAAS,SAAS,CAAC,EAAU,EAAE,MAAgB,EAAA;IAC3C,IAAI,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAC3B,CAAC,GAAG,CAAC,EACL,GAAG,GAAG,CAAC,EACP,GAAG,GAAG,CAAC,CAAA;IACX,OAAO,CAAC,GAAG,CAAC,EAAE;AACV,QAAA,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrB,QAAA,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACnB,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACvB,IAAI,EAAE,GAAG,GAAG,EAAE;YACV,CAAC,GAAG,CAAC,CAAA;AACR,SAAA;aAAM,IAAI,EAAE,GAAG,GAAG,EAAE;AACjB,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACZ,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAA;IAC/B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACpE;;AC3EA,MAAM,OAAO,CAAA;AA6BT,IAAA,WAAA,CACI,OAAe,EACf,OAAe,EACf,OAAe,EACf,OAAe,EACf,OAAe,EACf,OAAe,EACf,OAAe,EAAA;AAEf,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;KAC1B;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AACJ,CAAA;AAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAA;AACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AACvE,MAAM,WAAW,GAAG,IAAI,OAAO,CAC3B,opBAAopB,EACppB,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,CACL,CAAA;AACD,MAAM,WAAW,GAAG,IAAI,OAAO,CAC3B,48DAA48D,EAC58D,gHAAgH,EAChH,uEAAuE,EACvE,uEAAuE,EACvE,kEAAkE,EAClE,8DAA8D,EAC9D,EAAE,CACL,CAAA;AACD,MAAM,eAAe,GAAG,IAAI,OAAO,CAC/B,69BAA69B,EAC79B,uBAAuB,EACvB,EAAE,EACF,gCAAgC,EAChC,EAAE,EACF,EAAE,EACF,EAAE,CACL,CAAA;SAEe,sBAAsB,CAClC,OAAe,EACf,IAAY,EACZ,KAAa,EAAA;AAEb,IAAA,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACrB,QAAA,OAAO,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC1D,KAAA;AACD,IAAA,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACrB,QAAA,QACI,CAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACjD,aAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClD,aAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClD,aAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClD,aAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClD,aAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EACrD;AACJ,KAAA;AACD,IAAA,OAAO,KAAK,CAAA;AAChB,CAAC;AAEe,SAAA,0BAA0B,CACtC,OAAe,EACf,KAAa,EAAA;AAEb,IAAA,QACI,CAAC,OAAO,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACrD,SAAC,OAAO,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,SAAC,OAAO,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EACzD;AACL;;ACjJO,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,eAAe,GAAG,IAAI,CAAA;AAC5B,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,eAAe,GAAG,IAAI,CAAA;AAC5B,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAC7B,MAAM,WAAW,GAAG,IAAI,CAAA;AACxB,MAAM,WAAW,GAAG,IAAI,CAAA;AACxB,MAAM,YAAY,GAAG,IAAI,CAAA;AACzB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAC9B,MAAM,QAAQ,GAAG,IAAI,CAAA;AACrB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,KAAK,GAAG,IAAI,CAAA;AAClB,MAAM,YAAY,GAAG,IAAI,CAAA;AACzB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,OAAO,GAAG,IAAI,CAAA;AACpB,MAAM,UAAU,GAAG,IAAI,CAAA;AACvB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,WAAW,GAAG,IAAI,CAAA;AACxB,MAAM,UAAU,GAAG,IAAI,CAAA;AACvB,MAAM,KAAK,GAAG,IAAI,CAAA;AAClB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,cAAc,GAAG,IAAI,CAAA;AAC3B,MAAM,WAAW,GAAG,IAAI,CAAA;AACxB,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAC9B,MAAM,aAAa,GAAG,IAAI,CAAA;AAC1B,MAAM,aAAa,GAAG,IAAI,CAAA;AAC1B,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,QAAQ,GAAG,IAAI,CAAA;AACrB,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,mBAAmB,GAAG,IAAI,CAAA;AAChC,MAAM,eAAe,GAAG,IAAI,CAAA;AAC5B,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAC9B,MAAM,YAAY,GAAG,IAAI,CAAA;AACzB,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAC/B,MAAM,aAAa,GAAG,IAAI,CAAA;AAC1B,MAAM,mBAAmB,GAAG,IAAI,CAAA;AAChC,MAAM,KAAK,GAAG,IAAI,CAAA;AAClB,MAAM,qBAAqB,GAAG,MAAM,CAAA;AACpC,MAAM,iBAAiB,GAAG,MAAM,CAAA;AAChC,MAAM,cAAc,GAAG,MAAM,CAAA;AAC7B,MAAM,mBAAmB,GAAG,MAAM,CAAA;AAElC,MAAM,cAAc,GAAG,IAAI,CAAA;AAC3B,MAAM,cAAc,GAAG,QAAQ,CAAA;AAEhC,SAAU,aAAa,CAAC,IAAY,EAAA;IACtC,QACI,CAAC,IAAI,IAAI,sBAAsB,IAAI,IAAI,IAAI,sBAAsB;SAChE,IAAI,IAAI,oBAAoB,IAAI,IAAI,IAAI,oBAAoB,CAAC,EACjE;AACL,CAAC;AAEK,SAAU,cAAc,CAAC,IAAY,EAAA;AACvC,IAAA,OAAO,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAA;AACnD,CAAC;AAEK,SAAU,YAAY,CAAC,IAAY,EAAA;AACrC,IAAA,OAAO,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,WAAW,CAAA;AACpD,CAAC;AAEK,SAAU,UAAU,CAAC,IAAY,EAAA;IACnC,QACI,CAAC,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU;AACzC,SAAC,IAAI,IAAI,sBAAsB,IAAI,IAAI,IAAI,sBAAsB,CAAC;SACjE,IAAI,IAAI,oBAAoB,IAAI,IAAI,IAAI,oBAAoB,CAAC,EACjE;AACL,CAAC;AAEK,SAAU,gBAAgB,CAAC,IAAY,EAAA;IACzC,QACI,IAAI,KAAK,SAAS;AAClB,QAAA,IAAI,KAAK,eAAe;AACxB,QAAA,IAAI,KAAK,cAAc;QACvB,IAAI,KAAK,mBAAmB,EAC/B;AACL,CAAC;AAEK,SAAU,cAAc,CAAC,IAAY,EAAA;AACvC,IAAA,OAAO,IAAI,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,CAAA;AAC3D,CAAC;AAEK,SAAU,UAAU,CAAC,IAAY,EAAA;AACnC,IAAA,IAAI,IAAI,IAAI,oBAAoB,IAAI,IAAI,IAAI,oBAAoB,EAAE;AAC9D,QAAA,OAAO,IAAI,GAAG,oBAAoB,GAAG,EAAE,CAAA;AAC1C,KAAA;AACD,IAAA,IAAI,IAAI,IAAI,sBAAsB,IAAI,IAAI,IAAI,sBAAsB,EAAE;AAClE,QAAA,OAAO,IAAI,GAAG,sBAAsB,GAAG,EAAE,CAAA;AAC5C,KAAA;IACD,OAAO,IAAI,GAAG,UAAU,CAAA;AAC5B,CAAC;AAEK,SAAU,eAAe,CAAC,IAAY,EAAA;AACxC,IAAA,OAAO,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAA;AAC3C,CAAC;AAEK,SAAU,gBAAgB,CAAC,IAAY,EAAA;AACzC,IAAA,OAAO,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAA;AAC3C,CAAC;AAEe,SAAA,oBAAoB,CAAC,IAAY,EAAE,KAAa,EAAA;AAC5D,IAAA,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,OAAO,CAAA;AAC/D;;AC5IA,MAAM,UAAU,GAAG;AACf,IAAA,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,CAAS,EAAA;AAChC,QAAA,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;KACxC;AACD,IAAA,KAAK,CAAC,CAAS,EAAA;AACX,QAAA,OAAO,CAAC,CAAA;KACX;CACJ,CAAA;AACD,MAAM,WAAW,GAAG;AAChB,IAAA,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,CAAS,EAAA;AAChC,QAAA,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAA;KAC1C;AACD,IAAA,KAAK,CAAC,CAAS,EAAA;QACX,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAA;KAC5B;CACJ,CAAA;MAEY,MAAM,CAAA;AAAnB,IAAA,WAAA,GAAA;QACY,IAAK,CAAA,KAAA,GAAG,UAAU,CAAA;QAElB,IAAE,CAAA,EAAA,GAAG,EAAE,CAAA;QAEP,IAAE,CAAA,EAAA,GAAG,CAAC,CAAA;QAEN,IAAI,CAAA,IAAA,GAAG,CAAC,CAAA;QAER,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC,CAAA;QAET,IAAG,CAAA,GAAA,GAAG,CAAC,CAAA;QAEP,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC,CAAA;QAET,IAAG,CAAA,GAAA,GAAG,CAAC,CAAA;QAEP,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC,CAAA;QAET,IAAG,CAAA,GAAA,GAAG,CAAC,CAAA;QAEP,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC,CAAA;KAkGpB;AAhGG,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,EAAE,CAAA;KACjB;AAED,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,EAAE,CAAA;KACjB;AAED,IAAA,IAAW,gBAAgB,GAAA;QACvB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;AAED,IAAA,IAAW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;AAED,IAAA,IAAW,cAAc,GAAA;QACrB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;AAED,IAAA,IAAW,cAAc,GAAA;QACrB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;AAEM,IAAA,KAAK,CACR,MAAc,EACd,KAAa,EACb,GAAW,EACX,KAAc,EAAA;AAEd,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,WAAW,GAAG,UAAU,CAAA;AAC7C,QAAA,IAAI,CAAC,EAAE,GAAG,MAAM,CAAA;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KACrB;AAEM,IAAA,MAAM,CAAC,KAAa,EAAA;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAA;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACzD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACpE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CACf,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CACzC,CAAA;KACJ;IAEM,OAAO,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,YAAA,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAA;AACnB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;AACrB,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;AACnB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CACf,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAC3C,CAAA;AACJ,SAAA;KACJ;AAEM,IAAA,GAAG,CAAC,EAAU,EAAA;AACjB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAEM,IAAI,CAAC,GAAW,EAAE,GAAW,EAAA;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;YACxC,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;AAEM,IAAA,IAAI,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;AACJ;;ACtIK,MAAO,iBAAkB,SAAQ,WAAW,CAAA;AAG9C,IAAA,WAAA,CACI,MAAoC,EACpC,KAAiD,EACjD,KAAa,EACb,OAAe,EAAA;QAEf,IAAI,MAAM,GAAG,EAAE,CAAA;AACf,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC3B,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;AAC7D,YAAA,IAAI,OAAO,EAAE;AACT,gBAAA,MAAM,GAAG,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAA;AAC1B,aAAA;AACJ,SAAA;AAAM,aAAA,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAClC,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;YAC7D,MAAM,SAAS,GAAG,CAAA,EAAG,KAAK,CAAC,OAAO,GAAG,GAAG,GAAG,EAAE,CAAA,EACzC,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,EAC9B,CAAA,CAAE,CAAA;AACF,YAAA,MAAM,GAAG,CAAM,GAAA,EAAA,OAAO,CAAI,CAAA,EAAA,SAAS,EAAE,CAAA;AACxC,SAAA;AAED,QAAA,KAAK,CAAC,CAA6B,0BAAA,EAAA,MAAM,KAAK,OAAO,CAAA,CAAE,CAAC,CAAA;AACxD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;KACrB;AACJ;;AC5BD,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACpC,aAAa;IACb,uBAAuB;IACvB,6BAA6B;IAC7B,yBAAyB;IACzB,wBAAwB;IACxB,wBAAwB;IACxB,WAAW;AACd,CAAA,CAAC,CAAA;AAEc,SAAA,kCAAkC,CAC9C,OAAe,EACf,KAAa,EAAA;IAEb,OAAO,OAAO,IAAI,IAAI,IAAI,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAChE;;ACyEA,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC7B,iBAAiB;IACjB,WAAW;IACX,eAAe;IACf,SAAS;IACT,QAAQ;IACR,SAAS;IACT,aAAa;IACb,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,aAAa;AAChB,CAAA,CAAC,CAAA;AAEF,MAAM,8CAA8C,GAAG,IAAI,GAAG,CAAC;IAC3D,SAAS;IACT,gBAAgB;IAChB,WAAW;IACX,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,KAAK;IACL,SAAS;IACT,KAAK;IACL,SAAS;IACT,cAAc;IACd,WAAW;IACX,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,YAAY;IACZ,KAAK;AACR,CAAA,CAAC,CAAA;AAEF,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IACvC,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,OAAO;IACP,YAAY;IACZ,eAAe;IACf,aAAa;AAChB,CAAA,CAAC,CAAA;AAEF,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC;IAC1C,SAAS;IACT,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,YAAY;IACZ,KAAK;IACL,KAAK;IACL,SAAS;IACT,cAAc;IACd,WAAW;IACX,iBAAiB;IACjB,aAAa;IACb,YAAY;IACZ,KAAK;AACR,CAAA,CAAC,CAAA;AAEF,SAAS,iBAAiB,CAAC,EAAU,EAAA;AAEjC,IAAA,OAAO,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACnC,CAAC;AAED,SAAS,2CAA2C,CAAC,EAAU,EAAA;AAE3D,IAAA,OAAO,8CAA8C,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,yBAAyB,CAAC,EAAU,EAAA;AAEzC,IAAA,OAAO,0BAA0B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC7C,CAAC;AAED,SAAS,4BAA4B,CAAC,EAAU,EAAA;AAE5C,IAAA,OAAO,6BAA6B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAChD,CAAC;AAUD,SAAS,qBAAqB,CAAC,EAAU,EAAA;AACrC,IAAA,OAAO,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,QAAQ,CAAA;AACjE,CAAC;AAWD,SAAS,oBAAoB,CAAC,EAAU,EAAA;AACpC,IAAA,QACI,YAAY,CAAC,EAAE,CAAC;AAChB,QAAA,EAAE,KAAK,WAAW;AAClB,QAAA,EAAE,KAAK,qBAAqB;QAC5B,EAAE,KAAK,iBAAiB,EAC3B;AACL,CAAC;AAED,SAAS,8BAA8B,CAAC,EAAU,EAAA;IAC9C,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAA;AAC/C,CAAC;AAED,SAAS,+BAA+B,CAAC,EAAU,EAAA;IAC/C,OAAO,8BAA8B,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,EAAE,CAAC,CAAA;AACnE,CAAC;MA4YY,eAAe,CAAA;AAkCxB,IAAA,WAAA,CAAmB,OAAiC,EAAA;AA/BnC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,MAAM,EAAE,CAAA;QAE/B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAA;QAEpB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAA;QAExB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAA;QAEd,IAAa,CAAA,aAAA,GAAG,CAAC,CAAA;AAEjB,QAAA,IAAA,CAAA,UAAU,GAAG;AACjB,YAAA,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,MAAM,CAAC,iBAAiB;SAChC,CAAA;QAEO,IAAa,CAAA,aAAA,GAAG,EAAE,CAAA;QAElB,IAA4B,CAAA,4BAAA,GAAG,KAAK,CAAA;QAEpC,IAAmB,CAAA,mBAAA,GAAG,CAAC,CAAA;AAEvB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;AAE/B,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAA;QAEvC,IAAO,CAAA,OAAA,GAAwC,IAAI,CAAA;QAOvD,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,OAAO,GAAK,EAA8B,CAAA;KAC7D;IAQM,eAAe,CAClB,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAAA;AAE3B,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AACtD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QAC/D,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;AAE9B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAChE,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;YAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YACnD,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;AAClD,YAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE;gBAC3D,OAAO;gBACP,WAAW;AACd,aAAA,CAAC,CAAA;AACL,SAAA;aAAM,IAAI,KAAK,IAAI,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AACtB,SAAA;AAAM,aAAA;YACH,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;AACrD,YAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA;AAC5C,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;KAClC;IAQM,aAAa,CAChB,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAAA;AAE3B,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;QACpD,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;KACjD;AAgCM,IAAA,eAAe,CAClB,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAC3B,eAMkB,SAAS,EAAA;AAE3B,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QACtD,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAA;KACjE;AAEO,IAAA,uBAAuB,CAC3B,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAC3B,eAMkB,SAAS,EAAA;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;AAE5D,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAA;AACpC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAA;QAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAA;QAErB,IACI,CAAC,IAAI,CAAC,MAAM;YACZ,IAAI,CAAC,WAAW,IAAI,IAAI;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAC3B;AACE,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AAClB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAClB,IAAI,CAAC,cAAc,EAAE,CAAA;AACxB,SAAA;KACJ;AAEO,IAAA,qBAAqB,CACzB,MAAc,EACd,KAAa,EACb,GAAW,EAAA;AAEX,QAAA,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;QACvC,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,IAAI,WAAW,GAAG,KAAK,CAAA;QACvB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;YAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AAEjC,YAAA,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACzB,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAoB,iBAAA,EAAA,MAAM,CAAC,CAAC,CAAC,CAAG,CAAA,CAAA,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;AACjE,aAAA;AACD,YAAA,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAEvB,IAAI,IAAI,KAAK,oBAAoB,EAAE;gBAC/B,MAAM,GAAG,IAAI,CAAA;AAChB,aAAA;iBAAM,IAAI,IAAI,KAAK,oBAAoB,EAAE;gBACtC,UAAU,GAAG,IAAI,CAAA;AACpB,aAAA;iBAAM,IAAI,IAAI,KAAK,oBAAoB,EAAE;gBACtC,SAAS,GAAG,IAAI,CAAA;AACnB,aAAA;iBAAM,IACH,IAAI,KAAK,oBAAoB;AAC7B,gBAAA,IAAI,CAAC,WAAW,IAAI,IAAI,EAC1B;gBACE,OAAO,GAAG,IAAI,CAAA;AACjB,aAAA;iBAAM,IACH,IAAI,KAAK,oBAAoB;AAC7B,gBAAA,IAAI,CAAC,WAAW,IAAI,IAAI,EAC1B;gBACE,MAAM,GAAG,IAAI,CAAA;AAChB,aAAA;iBAAM,IACH,IAAI,KAAK,oBAAoB;AAC7B,gBAAA,IAAI,CAAC,WAAW,IAAI,IAAI,EAC1B;gBACE,MAAM,GAAG,IAAI,CAAA;AAChB,aAAA;iBAAM,IACH,IAAI,KAAK,oBAAoB;AAC7B,gBAAA,IAAI,CAAC,WAAW,IAAI,IAAI,EAC1B;gBACE,UAAU,GAAG,IAAI,CAAA;AACpB,aAAA;iBAAM,IACH,IAAI,KAAK,oBAAoB;AAC7B,gBAAA,IAAI,CAAC,WAAW,IAAI,IAAI,EAC1B;gBACE,WAAW,GAAG,IAAI,CAAA;AACrB,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAiB,cAAA,EAAA,MAAM,CAAC,CAAC,CAAC,CAAG,CAAA,CAAA,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;AAC9D,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE;YAC3B,MAAM;YACN,UAAU;YACV,SAAS;YACT,OAAO;YACP,MAAM;YACN,MAAM;YACN,UAAU;YACV,WAAW;AACd,SAAA,CAAC,CAAA;KACL;IAEO,uBAAuB,CAC3B,YAMe,EACf,SAAiB,EAAA;QAMjB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,WAAW,GAAG,KAAK,CAAA;AACvB,QAAA,IAAI,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC1C,YAAA,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;AAClC,gBAAA,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;AACvC,gBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC1B,oBAAA,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;AAClD,iBAAA;AACJ,aAAA;AAAM,iBAAA;gBAEH,OAAO,GAAG,YAAY,CAAA;AACzB,aAAA;AACJ,SAAA;QAED,IAAI,OAAO,IAAI,WAAW,EAAE;AAGxB,YAAA,IAAI,CAAC,KAAK,CAAC,kCAAkC,EAAE;gBAC3C,KAAK,EAAE,SAAS,GAAG,CAAC;gBACpB,OAAO;gBACP,WAAW;AACd,aAAA,CAAC,CAAA;AACL,SAAA;AAED,QAAA,MAAM,WAAW,GAAG,OAAO,IAAI,WAAW,CAAA;QAC1C,MAAM,KAAK,GACP,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI;YACpC,WAAW;AAGX,YAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAA;QAC7D,MAAM,eAAe,GAAG,WAAW,CAAA;AAEnC,QAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;KACjD;AAGD,IAAA,IAAY,MAAM,GAAA;AACd,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,CAAA;KAC5D;AAED,IAAA,IAAY,WAAW,GAAA;;QACnB,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,iBAAiB,CAAA;KACxD;AAEO,IAAA,cAAc,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AACtC,SAAA;KACJ;IAEO,cAAc,CAAC,KAAa,EAAE,GAAW,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC3C,SAAA;KACJ;AAEO,IAAA,aAAa,CACjB,KAAa,EACb,GAAW,EACX,KASC,EAAA;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AACjD,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CACjB,KAAK,EACL,GAAG,EACH,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,CACnB,CAAA;AACJ,SAAA;KACJ;AAEO,IAAA,cAAc,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AACtC,SAAA;KACJ;IAEO,cAAc,CAAC,KAAa,EAAE,GAAW,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC3C,SAAA;KACJ;AAEO,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;AAC1C,SAAA;KACJ;IAEO,kBAAkB,CAAC,KAAa,EAAE,GAAW,EAAA;AACjD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC/C,SAAA;KACJ;IAEO,kBAAkB,CAAC,KAAa,EAAE,KAAa,EAAA;AACnD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACjD,SAAA;KACJ;AAEO,IAAA,kBAAkB,CACtB,KAAa,EACb,GAAW,EACX,KAAa,EAAA;AAEb,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AACtD,SAAA;KACJ;AAEO,IAAA,YAAY,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;AACpC,SAAA;KACJ;IAEO,YAAY,CAAC,KAAa,EAAE,GAAW,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACzC,SAAA;KACJ;IAEO,qBAAqB,CAAC,KAAa,EAAE,IAAmB,EAAA;AAC5D,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACnD,SAAA;KACJ;AAEO,IAAA,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,IAAmB,EAAA;AAEnB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;AACxD,SAAA;KACJ;IAEO,YAAY,CAChB,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW,EACX,MAAe,EAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AAC3D,SAAA;KACJ;AAEO,IAAA,0BAA0B,CAC9B,KAAa,EACb,IAAgC,EAChC,MAAe,EAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE;YAC1C,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAChE,SAAA;KACJ;AAEO,IAAA,0BAA0B,CAC9B,KAAa,EACb,GAAW,EACX,IAAgC,EAChC,MAAe,EAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE;AAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AACrE,SAAA;KACJ;AAEO,IAAA,eAAe,CACnB,KAAa,EACb,GAAW,EACX,IAAqB,EAAA;AAErB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;AAClD,SAAA;KACJ;AAEO,IAAA,uBAAuB,CAC3B,KAAa,EACb,GAAW,EACX,IAAY,EACZ,MAAe,EAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAClE,SAAA;KACJ;AAEO,IAAA,iBAAiB,CAAC,KAAa,EAAE,GAAW,EAAE,IAAW,EAAA;AAC7D,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;AACpD,SAAA;KACJ;AAEO,IAAA,oBAAoB,CACxB,KAAa,EACb,GAAW,EACX,IAAgC,EAChC,MAAe,EAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;AACpC,YAAA,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAC/D,SAAA;KACJ;AAEO,IAAA,6BAA6B,CACjC,KAAa,EACb,GAAW,EACX,IAAgB,EAChB,GAAW,EACX,KAAoB,EACpB,MAAe,EACf,OAAgB,EAAA;AAEhB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CACvC,KAAK,EACL,GAAG,EACH,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,EACN,OAAO,CACV,CAAA;AACJ,SAAA;KACJ;AAEO,IAAA,WAAW,CAAC,KAAa,EAAE,GAAW,EAAE,KAAa,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAC/C,SAAA;KACJ;AAEO,IAAA,eAAe,CACnB,KAAa,EACb,GAAW,EACX,GAAoB,EAAA;AAEpB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACjD,SAAA;KACJ;AAEO,IAAA,qBAAqB,CACzB,KAAa,EACb,MAAe,EACf,WAAoB,EAAA;AAEpB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;AAClE,SAAA;KACJ;AAEO,IAAA,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,MAAe,EAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AAC1D,SAAA;KACJ;AAEO,IAAA,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW,EAAA;AAEX,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;AACrC,YAAA,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAC5D,SAAA;KACJ;IAEO,mBAAmB,CAAC,KAAa,EAAE,GAAW,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE;YACnC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAChD,SAAA;KACJ;IAEO,kBAAkB,CAAC,KAAa,EAAE,GAAW,EAAA;AACjD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC/C,SAAA;KACJ;AAEO,IAAA,6BAA6B,CAAC,KAAa,EAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAA;AACrD,SAAA;KACJ;IAEO,6BAA6B,CAAC,KAAa,EAAE,GAAW,EAAA;AAC5D,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC1D,SAAA;KACJ;IAEO,wBAAwB,CAAC,KAAa,EAAE,KAAa,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACvD,SAAA;KACJ;AAEO,IAAA,wBAAwB,CAC5B,KAAa,EACb,GAAW,EACX,KAAa,EAAA;AAEb,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAC5D,SAAA;KACJ;AAMD,IAAA,IAAY,KAAK,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;KAC5B;AAED,IAAA,IAAY,gBAAgB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;KACvC;AAED,IAAA,IAAY,aAAa,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;KACpC;AAED,IAAA,IAAY,cAAc,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAA;KACrC;AAED,IAAA,IAAY,cAAc,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAA;KACrC;AAEO,IAAA,KAAK,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW,EAAA;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;KAC5D;AAEO,IAAA,MAAM,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KAC7B;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;KACzB;AAEO,IAAA,GAAG,CAAC,EAAU,EAAA;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;KAC9B;IAEO,IAAI,CAAC,GAAW,EAAE,GAAW,EAAA;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;KACrC;AAEO,IAAA,IAAI,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KAC1C;IAIO,KAAK,CACT,OAAe,EACf,OAAsE,EAAA;;AAEtE,QAAA,MAAM,IAAI,iBAAiB,CACvB,IAAI,CAAC,OAAQ,EACb;AACI,YAAA,OAAO,EACH,CAAA,EAAA,GAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,oCACf,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACjD,YAAA,WAAW,EAAE,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC,gBAAgB;AAC7D,SAAA,EACD,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC,KAAK,EAC5B,OAAO,CACV,CAAA;KACJ;IAGO,aAAa,GAAA;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,OAAO,GAAG,KAAK,CAAA;QAEnB,SAAS;AACL,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAChC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE;gBACnC,MAAM,IAAI,GAAG,OAAO,GAAG,iBAAiB,GAAG,oBAAoB,CAAA;AAC/D,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAA,CAAE,CAAC,CAAA;AACrC,aAAA;AACD,YAAA,IAAI,OAAO,EAAE;gBACT,OAAO,GAAG,KAAK,CAAA;AAClB,aAAA;iBAAM,IAAI,EAAE,KAAK,eAAe,EAAE;gBAC/B,OAAO,GAAG,IAAI,CAAA;AACjB,aAAA;iBAAM,IAAI,EAAE,KAAK,mBAAmB,EAAE;gBACnC,OAAO,GAAG,IAAI,CAAA;AACjB,aAAA;iBAAM,IAAI,EAAE,KAAK,oBAAoB,EAAE;gBACpC,OAAO,GAAG,KAAK,CAAA;AAClB,aAAA;AAAM,iBAAA,IACH,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,OAAO;iBAC1B,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,EAC3C;gBACE,MAAK;AACR,aAAA;YACD,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAA;KAC9B;IASO,cAAc,GAAA;AAClB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;AACtD,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;AACxB,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAA;AAEhC,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAA;AAEzB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAChC,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,EAAE;YAC9B,IAAI,EAAE,KAAK,iBAAiB,EAAE;AAC1B,gBAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;AAC9B,aAAA;YACD,IAAI,EAAE,KAAK,eAAe,EAAE;AACxB,gBAAA,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;AACrC,aAAA;AACD,YAAA,IAAI,EAAE,KAAK,oBAAoB,IAAI,EAAE,KAAK,mBAAmB,EAAE;AAC3D,gBAAA,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;AACzC,aAAA;YACD,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA;AAC5C,SAAA;AACD,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC7B,gBAAA,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;AACjD,aAAA;AACJ,SAAA;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KACzC;IAMO,oBAAoB,GAAA;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,EAAE,GAAG,CAAC,CAAA;QAEV,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,MAAM,CAAC,CAAC,EAAE;AACxC,YAAA,IAAI,OAAO,EAAE;gBACT,OAAO,GAAG,KAAK,CAAA;AAClB,aAAA;iBAAM,IAAI,EAAE,KAAK,eAAe,EAAE;gBAC/B,OAAO,GAAG,IAAI,CAAA;AACjB,aAAA;iBAAM,IAAI,EAAE,KAAK,mBAAmB,EAAE;gBACnC,OAAO,GAAG,IAAI,CAAA;AACjB,aAAA;iBAAM,IAAI,EAAE,KAAK,oBAAoB,EAAE;gBACpC,OAAO,GAAG,KAAK,CAAA;AAClB,aAAA;iBAAM,IACH,EAAE,KAAK,gBAAgB;AACvB,gBAAA,CAAC,OAAO;AACR,iBAAC,IAAI,CAAC,aAAa,KAAK,aAAa;AACjC,qBAAC,IAAI,CAAC,cAAc,KAAK,cAAc;wBACnC,IAAI,CAAC,cAAc,KAAK,WAAW;AACnC,wBAAA,IAAI,CAAC,cAAc,KAAK,gBAAgB,CAAC,CAAC,EACpD;gBACE,KAAK,IAAI,CAAC,CAAA;AACb,aAAA;YACD,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAClB,QAAA,OAAO,KAAK,CAAA;KACf;IAUO,kBAAkB,GAAA;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,GAAG,CAAC,CAAA;AAET,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAC9B,GAAG;AACC,YAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAA;AAC/B,SAAA,QAAQ,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAC;AAEjC,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;AACzC,SAAA;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KAC7C;AAUO,IAAA,kBAAkB,CAAC,CAAS,EAAA;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAExB,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACjC,OAAO,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AAE1D,SAAA;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;KAChD;IAmBO,WAAW,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;AAClC,YAAA,QACI,IAAI,CAAC,gBAAgB,EAAE;iBACtB,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC,EAC3D;AACJ,SAAA;AACD,QAAA,QACI,CAAC,IAAI,CAAC,gBAAgB,EAAE;aACnB,CAAC,IAAI,CAAC,4BAA4B;AAC/B,gBAAA,IAAI,CAAC,yBAAyB,EAAE,CAAC;aACxC,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC,EACnE;KACJ;IAEO,yBAAyB,GAAA;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAA;AACxB,QAAA,OAAO,IAAI,CAAA;KACd;IAyBO,gBAAgB,GAAA;AACpB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAA;AAGzC,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAChD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACvB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAC9C,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,sBAAsB,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAC7D,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAC9D,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;QAGD,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE;AAC5C,YAAA,MAAM,UAAU,GACZ,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YACxD,IAAI,MAAM,GAAG,KAAK,CAAA;AAClB,YAAA,IACI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;iBACpB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EACvC;gBACE,MAAM,IAAI,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAA;gBACpD,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;gBACpD,IAAI,CAAC,kBAAkB,EAAE,CAAA;AACzB,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;AAC9B,oBAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;AACnC,iBAAA;gBACD,IAAI,CAAC,4BAA4B,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;AAC/D,gBAAA,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAChE,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACf;IAmBO,iBAAiB,CAAC,SAAS,GAAG,KAAK,EAAA;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,MAAM,GAAG,KAAK,CAAA;AAGlB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACpB,GAAG,GAAG,CAAC,CAAA;AACP,YAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAA;AACjC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAC5B,GAAG,GAAG,CAAC,CAAA;AACP,YAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAA;AACjC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YAChC,GAAG,GAAG,CAAC,CAAA;YACP,GAAG,GAAG,CAAC,CAAA;AACV,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE;YAC3C,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAC;AACpC,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,KAAK,CAAA;AACf,SAAA;QAGD,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAEjC,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AACzD,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;AAaO,IAAA,mBAAmB,CAAC,OAAgB,EAAA;AACxC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;AAC9B,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACzB,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;gBAC9B,IAAI,GAAG,GAAG,GAAG,CAAA;AACb,gBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACjB,oBAAA,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE;0BACvB,IAAI,CAAC,aAAa;AACpB,0BAAE,MAAM,CAAC,iBAAiB,CAAA;AACjC,iBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;AAC/B,oBAAA,IAAI,CAAC,OAAO,IAAI,GAAG,GAAG,GAAG,EAAE;AACvB,wBAAA,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;AACtD,qBAAA;oBACD,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AAC9B,oBAAA,OAAO,IAAI,CAAA;AACd,iBAAA;AACJ,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;AAChD,gBAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AACtC,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAeO,WAAW,GAAA;AACf,QAAA,QACI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,+BAA+B,EAAE;AACtC,YAAA,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACrC,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,qBAAqB,EAAE,EAC/B;KACJ;IASO,UAAU,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACzD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IASO,+BAA+B,GAAA;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AAC3B,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC1B,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IASO,uBAAuB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE;AACnD,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAA;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;AACnC,aAAA;YACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;AACpC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IASO,qBAAqB,GAAA;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC5B,IAAI,IAAI,GAAkB,IAAI,CAAA;AAC9B,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC1B,gBAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAC9B,oBAAA,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;AAC5B,iBAAA;AACJ,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,aAAa,EAAE;AAChD,gBAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;AAC9B,aAAA;AAED,YAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACvC,IAAI,CAAC,kBAAkB,EAAE,CAAA;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;AACnC,aAAA;YACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAEnD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAkBO,mBAAmB,GAAA;AACvB,QAAA,QACI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,+BAA+B,EAAE;YACtC,IAAI,CAAC,gCAAgC,EAAE;AACvC,YAAA,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACrC,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,8BAA8B,EAAE;AACrC,YAAA,IAAI,CAAC,+BAA+B,EAAE,EACzC;KACJ;IASO,gCAAgC,GAAA;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IACI,IAAI,CAAC,gBAAgB,KAAK,eAAe;AACzC,YAAA,IAAI,CAAC,aAAa,KAAK,oBAAoB,EAC7C;AACE,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAC1C,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;AACpD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAaO,8BAA8B,GAAA;AAClC,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAgB,IAAI,CAAC,EAAE;AAC/C,YAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAWO,uBAAuB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE;YACrC,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACvC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAWO,+BAA+B,GAAA;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IACI,EAAE,KAAK,CAAC,CAAC;AACT,YAAA,EAAE,KAAK,iBAAiB;AACxB,YAAA,EAAE,KAAK,WAAW;AAClB,YAAA,EAAE,KAAK,eAAe;AACtB,YAAA,EAAE,KAAK,SAAS;AAChB,YAAA,EAAE,KAAK,QAAQ;AACf,YAAA,EAAE,KAAK,SAAS;AAChB,YAAA,EAAE,KAAK,aAAa;AACpB,YAAA,EAAE,KAAK,gBAAgB;AACvB,YAAA,EAAE,KAAK,iBAAiB;AACxB,YAAA,EAAE,KAAK,mBAAmB;YAC1B,EAAE,KAAK,aAAa,EACtB;YACE,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACvC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAYO,qBAAqB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;AACzB,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;oBAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACxC,oBAAA,OAAO,IAAI,CAAA;AACd,iBAAA;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;AAC7C,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;AAC9B,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAiBO,iBAAiB,GAAA;QACrB,IACI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,2BAA2B,EAAE;YAClC,IAAI,CAAC,sBAAsB,EAAE;aAC5B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAC3C;AACE,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAC/B,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAWO,oBAAoB,GAAA;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACzB,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA;AAC5B,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC/B,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AAC9C,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;AAClC,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAC/B,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAqBO,2BAA2B,GAAA;;AAC/B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAExB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;AAMhE,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;AAM/D,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;AAMhE,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;AAM/D,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAM/D,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAM9D,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;QAED,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IACI,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,WAAW,IAAI,IAAI;AACxB,aAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;iBAC1B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAClD;AACE,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,MAAM,GACN,IAAI,CAAA;AACR,YAAA,IACI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC5B,iBAAC,MAAM,GAAG,IAAI,CAAC,iCAAiC,EAAE,CAAC;AACnD,gBAAA,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAC/B;AACE,gBAAA,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AAC1B,oBAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AACtC,iBAAA;AAED,gBAAA,IAAI,CAAC,6BAA6B,CAC9B,KAAK,GAAG,CAAC,EACT,IAAI,CAAC,KAAK,EACV,UAAU,EACV,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,KAAK,EACZ,MAAM,EACN,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK,CAC1B,CAAA;AAeD,gBAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;AAC/C,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AACtC,SAAA;AAED,QAAA,OAAO,IAAI,CAAA;KACd;IAiBO,sBAAsB,GAAA;AAC1B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IACI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,8BAA8B,EAAE;aACpC,CAAC,IAAI,CAAC,MAAM;gBACT,CAAC,IAAI,CAAC,YAAY;gBAClB,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACxC,IAAI,CAAC,iBAAiB,EAAE,EAC1B;AACE,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AAC3D,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IASO,iBAAiB,GAAA;AACrB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACrB,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAA;AACpC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AACvC,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AACtD,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;AACxC,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAYO,qBAAqB,GAAA;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAC1C,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;AAChE,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;AAC1C,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AACjC,gBAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,EAAE;AAC9B,oBAAA,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;AAC7C,iBAAA;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;AACrD,aAAA;AACD,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE;AACpC,gBAAA,IAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;AAC5D,aAAA;YAED,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAQrD,YAAA,OAAO,MAAM,CAAA;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;IAmBO,oBAAoB,GAAA;QACxB,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,oBAAoB,EAAE;AAOhD,gBAAA,OAAO,EAAE,CAAA;AACZ,aAAA;AACD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAA;AAK/C,YAAA,OAAO,MAAM,CAAA;AAChB,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAA;QAC/C,SAAS;AAEL,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAA;AAC7B,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBAC1B,MAAK;AACR,aAAA;AACD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;AAG9B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;gBACzB,SAAQ;AACX,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;AAG1D,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBAC1B,MAAK;AACR,aAAA;AACD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;YAG9B,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AAC1B,gBAAA,IAAI,MAAM,EAAE;AACR,oBAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;AACxC,iBAAA;gBACD,SAAQ;AACX,aAAA;YACD,IAAI,GAAG,GAAG,GAAG,EAAE;AACX,gBAAA,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;AACtD,aAAA;AAED,YAAA,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAC/D,SAAA;AAMD,QAAA,OAAO,EAAE,CAAA;KACZ;IAiBO,gBAAgB,GAAA;AACpB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAEhC,IACI,EAAE,KAAK,CAAC,CAAC;AACT,YAAA,EAAE,KAAK,eAAe;YACtB,EAAE,KAAK,oBAAoB,EAC7B;YACE,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AACvB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AACvD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AAC3B,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC3B,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;YACD,IACI,CAAC,IAAI,CAAC,MAAM;AACZ,gBAAA,IAAI,CAAC,gBAAgB,KAAK,oBAAoB,EAChD;AACE,gBAAA,IAAI,CAAC,aAAa,GAAG,eAAe,CAAA;AACpC,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AACvD,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;AAClC,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAC/B,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACf;IAmBO,kBAAkB,GAAA;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAGxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AAC3D,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;QAGD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AAC7C,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAA;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AAC3D,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;QAGD,IAAI,EAAE,GAAG,CAAC,CAAA;QACV,IACI,CAAC,IAAI,CAAC,MAAM;YACZ,CAAC,IAAI,CAAC,YAAY;YAClB,IAAI,CAAC,gBAAgB,KAAK,oBAAoB;AAC9C,aAAC,cAAc,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,QAAQ,CAAC,EAChE;YACE,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAA;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AAC3D,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AAED,QAAA,QACI,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;AAC3C,YAAA,IAAI,CAAC,sBAAsB,EAAE,EAChC;KACJ;IAoBO,yBAAyB,GAAA;AAC7B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,iBAAiB,GAAwB,KAAK,CAAA;QAClD,IAAI,MAAM,GAAoC,IAAI,CAAA;AAClD,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;AACjC,YAAA,IAAI,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,EAAE;AAE9C,gBAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA;AAC/B,gBAAA,OAAO,EAAE,CAAA;AACZ,aAAA;YAOD,iBAAiB,GAAG,KAAK,CAAA;AAC5B,SAAA;aAAM,KAAK,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,GAAG;AACjD,YAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAA;AAC/C,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAChC,IAAI,EAAE,KAAK,eAAe,EAAE;gBAExB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAC/B,aAAA;AACD,YAAA,IACI,EAAE,KAAK,IAAI,CAAC,aAAa;gBACzB,2CAA2C,CAAC,EAAE,CAAC,EACjD;AAEE,gBAAA,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;AACzD,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;AACrD,SAAA;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;AAEjC,YAAA,OACI,IAAI,CAAC,gBAAgB,KAAK,SAAS;AACnC,iBAAC,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAC1C;gBACE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3C,gBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;oBAC3B,iBAAiB,GAAG,KAAK,CAAA;AAC5B,iBAAA;gBACD,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;oBACjC,SAAQ;AACX,iBAAA;gBAaD,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAC/B,aAAA;AAED,YAAA,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;AACrD,SAAA;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE;AAEvC,YAAA,OAAO,IAAI,CAAC,sBAAsB,EAAE,EAAE;gBAClC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE;oBACvC,SAAQ;AACX,iBAAA;gBAQD,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAC/B,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;AACrD,SAAA;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAA;KAC5D;AAWO,IAAA,sBAAsB,CAC1B,UAAoC,EAAA;AAGpC,QAAA,IAAI,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAA;QACpD,SAAS;AACL,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,YAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;AACjC,gBAAA,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAA;gBAC5C,SAAQ;AACX,aAAA;AACD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;AAC5C,YAAA,IAAI,MAAM,EAAE;gBACR,IAAI,MAAM,CAAC,iBAAiB,EAAE;oBAC1B,iBAAiB,GAAG,IAAI,CAAA;AAC3B,iBAAA;gBACD,SAAQ;AACX,aAAA;YACD,MAAK;AACR,SAAA;QAYD,OAAO,EAAE,iBAAiB,EAAE,CAAA;KAC/B;AAaO,IAAA,gCAAgC,CAAC,KAAa,EAAA;AAClD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAA;AAC/B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;AACjC,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;gBAG9B,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AAC1B,oBAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;AACxC,iBAAA;gBACD,IAAI,GAAG,GAAG,GAAG,EAAE;AACX,oBAAA,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;AACtD,iBAAA;AACD,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACvD,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AAC5B,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAaO,sBAAsB,GAAA;QAC1B,IAAI,MAAM,GAAoC,IAAI,CAAA;QAClD,KAAK,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG;AAItC,YAAA,OAAO,MAAM,CAAA;AAChB,SAAA;QACD,KAAK,MAAM,GAAG,IAAI,CAAC,6BAA6B,EAAE,GAAG;AAIjD,YAAA,OAAO,MAAM,CAAA;AAChB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;AAKjC,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;IAYO,kBAAkB,GAAA;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAC1C,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAC/C,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;AAC1C,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AACjC,gBAAA,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;AAC7C,aAAA;AACD,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE;AACpC,gBAAA,IAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;AAC5D,aAAA;YACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAQrD,YAAA,OAAO,MAAM,CAAA;AAChB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AAC3B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAA;AACjD,YAAA,IAAI,MAAM,EAAE;AAIR,gBAAA,OAAO,MAAM,CAAA;AAChB,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;IAaO,6BAA6B,GAAA;AACjC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IACI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,EACtE;AACE,YAAA,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAA;YAEzC,IAAI,CAAC,GAAG,CAAC,CAAA;YACT,IAAI,iBAAiB,GAAG,KAAK,CAAA;YAC7B,GAAG;gBACC,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE;oBAChD,iBAAiB,GAAG,IAAI,CAAA;AAC3B,iBAAA;AACJ,aAAA,QAAQ,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAC;AAEjC,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;gBAC/B,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;gBAUrD,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAC/B,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;AACtD,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;AAYO,IAAA,kBAAkB,CAAC,CAAS,EAAA;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,IAAI,KAAK,GAAG,CAAC,CAAA;AACb,QAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AACvC,QAAA,OACI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,wBAAwB,EAAE,EACjC;AACE,YAAA,KAAK,EAAE,CAAA;AACV,SAAA;QACD,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AAUnD,QAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,KAAK,CAAC,EAAE,CAAA;KAC5C;IAcO,wBAAwB,GAAA;AAC5B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAChC,QAAA,IAEI,EAAE,KAAK,IAAI,CAAC,aAAa;AACzB,YAAA,CAAC,2CAA2C,CAAC,EAAE,CAAC,EAClD;YACE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,EAAE;AAC7C,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;gBACvB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AACvD,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AAC3B,YAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;AAC/B,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,4BAA4B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAA;gBAC1C,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AACvD,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,gBAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;AAC9B,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AACvD,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAWO,YAAY,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;YAC1B,IAAI,IAAI,CAAC,uBAAuB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;AAC/D,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAC3C,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAaO,uBAAuB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAC7D,YAAA,OAAO,IAAI,CAAC,uBAAuB,EAAE,EAAE;gBACnC,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACjE,aAAA;AACD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAgBO,wBAAwB,GAAA;AAC5B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;AACjE,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,IACI,EAAE,KAAK,eAAe;AACtB,YAAA,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,EACjD;AACE,YAAA,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;AAC1B,SAAA;AAAM,aAAA,IACH,UAAU;YACV,eAAe,CAAC,EAAE,CAAC;AACnB,YAAA,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EACzC;YACE,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACpD,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AAED,QAAA,IAAI,qBAAqB,CAAC,EAAE,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AACvB,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAcO,uBAAuB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;AACjE,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,IACI,EAAE,KAAK,eAAe;AACtB,YAAA,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,EACjD;AACE,YAAA,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;AAC1B,SAAA;AAAM,aAAA,IACH,UAAU;YACV,eAAe,CAAC,EAAE,CAAC;AACnB,YAAA,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EACzC;YACE,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACpD,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AAED,QAAA,IAAI,oBAAoB,CAAC,EAAE,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AACvB,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAUO,iBAAiB,GAAA;AACrB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACzB,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAUO,OAAO,GAAA;AACX,QAAA,IACI,IAAI,CAAC,gBAAgB,KAAK,UAAU;AACpC,YAAA,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EACrC;AACE,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;YACtB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAYO,gBAAgB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;AAC9B,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;AAC9B,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,eAAe,CAAA;AACpC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAA;AACzC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,eAAe,CAAA;AACpC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAaO,gBAAgB,GAAA;AACpB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAChC,QAAA,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAA;AAC9B,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAiBO,8BAA8B,CAAC,UAAU,GAAG,KAAK,EAAA;AACrD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,KAAK,GAAG,UAAU,IAAI,IAAI,CAAC,YAAY,CAAA;AAE7C,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IACI,CAAC,KAAK,IAAI,IAAI,CAAC,mCAAmC,EAAE;AACpD,gBAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACzB,iBAAC,KAAK,IAAI,IAAI,CAAC,+BAA+B,EAAE,CAAC,EACnD;AACE,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;AACtB,gBAAA,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;AACvC,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACf;IAUO,mCAAmC,GAAA;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAExB,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;AAC3B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;YAC/B,IACI,eAAe,CAAC,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;AACzB,gBAAA,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;AAC9B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAC3B;AACE,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAA;AAChC,gBAAA,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;oBACzB,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACtD,oBAAA,OAAO,IAAI,CAAA;AACd,iBAAA;AACJ,aAAA;AAED,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACf;IAUO,+BAA+B,GAAA;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAExB,QAAA,IACI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC5B,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC7B,YAAA,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EACpC;AACE,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAClB,QAAA,OAAO,KAAK,CAAA;KACf;IAkBO,iBAAiB,GAAA;AACrB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAChC,QAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;AAEO,IAAA,qBAAqB,CAAC,EAAU,EAAA;AACpC,QAAA,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;AACX,YAAA,OAAO,KAAK,CAAA;AACf,SAAA;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,OAAO,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,CAAA;AACjD,SAAA;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;AAC3B,SAAA;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,EAAE,EAAE,KAAK,oBAAoB,IAAI,EAAE,KAAK,oBAAoB,CAAC,CAAA;AACvE,SAAA;QACD,OAAO,EAAE,KAAK,oBAAoB,CAAA;KACrC;IAYO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;AACtB,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAC9B,QAAA,IAAI,EAAE,IAAI,SAAS,IAAI,EAAE,IAAI,UAAU,EAAE;YACrC,GAAG;AACC,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,GAAG,UAAU,CAAC,CAAA;gBAChE,IAAI,CAAC,OAAO,EAAE,CAAA;aACjB,QACG,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,KAAK,UAAU;gBAC1C,EAAE,IAAI,UAAU,EACnB;AACD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAcO,iCAAiC,GAAA;AACrC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAGxB,IAAI,IAAI,CAAC,sBAAsB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACxD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;AAC9B,YAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;AAChC,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAA;gBAChC,IAAI,sBAAsB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE;oBACtD,OAAO;wBACH,GAAG;wBACH,KAAK,EAAE,KAAK,IAAI,IAAI;qBACvB,CAAA;AACJ,iBAAA;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AACtC,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAGlB,QAAA,IAAI,IAAI,CAAC,iCAAiC,EAAE,EAAE;AAC1C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAA;YACtC,IACI,sBAAsB,CAClB,IAAI,CAAC,WAAW,EAChB,kBAAkB,EAClB,WAAW,CACd,EACH;gBACE,OAAO;AACH,oBAAA,GAAG,EAAE,kBAAkB;oBACvB,KAAK,EAAE,WAAW,IAAI,IAAI;iBAC7B,CAAA;AACJ,aAAA;YACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;gBAC3D,OAAO;AACH,oBAAA,GAAG,EAAE,WAAW;AAChB,oBAAA,KAAK,EAAE,IAAI;iBACd,CAAA;AACJ,aAAA;YACD,IACI,IAAI,CAAC,gBAAgB;AACrB,gBAAA,kCAAkC,CAC9B,IAAI,CAAC,WAAW,EAChB,WAAW,CACd,EACH;gBACE,OAAO;AACH,oBAAA,GAAG,EAAE,WAAW;AAChB,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,OAAO,EAAE,IAAI;iBAChB,CAAA;AACJ,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AACtC,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;IAYO,sBAAsB,GAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AACvB,QAAA,OAAO,8BAA8B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC1D,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACjE,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,EAAE,CAAA;KACnC;IAYO,uBAAuB,GAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AACvB,QAAA,OAAO,+BAA+B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC3D,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACjE,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,EAAE,CAAA;KACnC;IAYO,iCAAiC,GAAA;AACrC,QAAA,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAA;KACxC;IAaO,oBAAoB,GAAA;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;AAC3B,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;AAClC,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAC/B,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAcO,gBAAgB,GAAA;AACpB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAExB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;AACtB,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,aAAa;gBACd,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAA;KAC9B;IAcO,YAAY,GAAA;AAChB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;AACtB,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,aAAa;gBACd,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAA;KAC9B;IAoBO,4BAA4B,GAAA;AAChC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACtB,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;AAC7B,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACtB,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACjC,oBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA;AAC7D,iBAAA;AAAM,qBAAA;oBACH,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;AACnC,iBAAA;AACJ,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AAC1B,aAAA;AACD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAWO,aAAa,GAAA;AACjB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAChC,QAAA,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,UAAU,CAAA;AACpC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;AACtB,QAAA,OAAO,KAAK,CAAA;KACf;AAYO,IAAA,iBAAiB,CAAC,MAAc,EAAA;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AAC7B,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAChC,YAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACjB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAClB,gBAAA,OAAO,KAAK,CAAA;AACf,aAAA;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,CAAA;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;AACJ;;ACnwGD,MAAM,aAAa,GAAY,EAAa,CAAA;AAC5C,MAAM,WAAW,GAAU,EAAW,CAAA;AACtC,MAAM,qBAAqB,GAAmB,EAAoB,CAAA;AAElE,SAAS,iBAAiB,CACtB,IAAsC,EAAA;AAEtC,IAAA,QACI,IAAI,CAAC,IAAI,KAAK,WAAW;QACzB,IAAI,CAAC,IAAI,KAAK,cAAc;QAC5B,IAAI,CAAC,IAAI,KAAK,gBAAgB;QAC9B,IAAI,CAAC,IAAI,KAAK,0BAA0B;AACxC,QAAA,IAAI,CAAC,IAAI,KAAK,wBAAwB,EACzC;AACL,CAAC;AAED,MAAM,iBAAiB,CAAA;AAkBnB,IAAA,WAAA,CAAmB,OAA8B,EAAA;;QAbzC,IAAK,CAAA,KAAA,GAAmB,aAAa,CAAA;QAErC,IAAiB,CAAA,iBAAA,GACrB,IAAI,CAAA;QAEA,IAAM,CAAA,MAAA,GAAU,WAAW,CAAA;QAE3B,IAAe,CAAA,eAAA,GAAoB,EAAE,CAAA;QAErC,IAAgB,CAAA,gBAAA,GAAqB,EAAE,CAAA;QAExC,IAAM,CAAA,MAAA,GAAG,EAAE,CAAA;AAGd,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,MAAM,CAAC,CAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,iBAAiB,CAAA;KAC/D;AAED,IAAA,IAAW,OAAO,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;KACpB;AAED,IAAA,IAAW,KAAK,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;KACrB;IAEM,aAAa,CAChB,KAAa,EACb,GAAW,EACX,EACI,MAAM,EACN,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,EACV,WAAW,GAUd,EAAA;QAED,IAAI,CAAC,MAAM,GAAG;AACV,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,MAAM;YACN,UAAU;YACV,SAAS;YACT,OAAO;YACP,MAAM;YACN,MAAM;YACN,UAAU;YACV,WAAW;SACd,CAAA;KACJ;AAEM,IAAA,cAAc,CAAC,KAAa,EAAA;QAC/B,IAAI,CAAC,KAAK,GAAG;AACT,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,IAAI;YACZ,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,YAAY,EAAE,EAAE;SACnB,CAAA;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAA;KACnC;IAEM,cAAc,CAAC,KAAa,EAAE,GAAW,EAAA;AAC5C,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAE9C,QAAA,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1C,YAAA,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAA;AACzB,YAAA,MAAM,KAAK,GACP,OAAO,GAAG,KAAK,QAAQ;kBACjB,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;AAChC,kBAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,CAAE,CAAA;AAC5D,YAAA,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAA;AAC1B,YAAA,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACnC,SAAA;KACJ;AAEM,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IACI,MAAM,CAAC,IAAI,KAAK,WAAW;YAC3B,MAAM,CAAC,IAAI,KAAK,gBAAgB;YAChC,MAAM,CAAC,IAAI,KAAK,OAAO;AACvB,YAAA,MAAM,CAAC,IAAI,KAAK,SAAS,EAC3B;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,IAAI,CAAC,KAAK,GAAG;AACT,YAAA,IAAI,EAAE,aAAa;YACnB,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,QAAQ,EAAE,EAAE;SACf,CAAA;QACD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACvC;IAEM,kBAAkB,CAAC,KAAa,EAAE,GAAW,EAAA;AAChD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;AAC7B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;AAEM,IAAA,YAAY,CAAC,KAAa,EAAA;AAC7B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,IAAI,CAAC,KAAK,GAAG;AACT,YAAA,IAAI,EAAE,OAAO;YACb,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,YAAY,EAAE,EAAE;SACnB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACnC;IAEM,YAAY,CAAC,KAAa,EAAE,GAAW,EAAA;AAC1C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC7D,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,qBAAqB,CAAC,KAAa,EAAE,IAAmB,EAAA;AAC3D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,IAAI,CAAC,KAAK,GAAG;AACT,YAAA,IAAI,EAAE,gBAAgB;YACtB,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;YACP,IAAI;AACJ,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,UAAU,EAAE,EAAE;SACjB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACzC;IAEM,qBAAqB,CAAC,KAAa,EAAE,GAAW,EAAA;AACnD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IACI,IAAI,CAAC,IAAI,KAAK,gBAAgB;AAC9B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EACpC;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,YAAY,CACf,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW,EACX,MAAe,EAAA;AAEf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAGD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QACrC,IACI,OAAO,IAAI,IAAI;YACf,OAAO,CAAC,IAAI,KAAK,YAAY;AAC7B,aAAC,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,EAChE;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,IAAI,GAAe;AACrB,YAAA,IAAI,EAAE,YAAY;YAClB,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG;AACH,YAAA,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;YAC1C,GAAG;YACH,GAAG;YACH,MAAM;YACN,OAAO;SACV,CAAA;AACD,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC1B,QAAA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAA;KACxB;AAEM,IAAA,0BAA0B,CAC7B,KAAa,EACb,IAAgC,EAChC,MAAe,EAAA;AAEf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,IAAI,IAAyB,IAAI,CAAC,KAAK,GAAG;AAC5C,YAAA,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;YACP,IAAI;YACJ,MAAM;AACN,YAAA,YAAY,EAAE,EAAE;AACnB,SAAA,CAAC,CAAA;AACF,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC7B;IAEM,0BAA0B,CAAC,KAAa,EAAE,GAAW,EAAA;AACxD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AACjE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;AAEM,IAAA,eAAe,CAClB,KAAa,EACb,GAAW,EACX,IAAqB,EAAA;AAErB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;AACP,SAAA,CAAC,CAAA;KACL;AAEM,IAAA,uBAAuB,CAC1B,KAAa,EACb,GAAW,EACX,IAAY,EACZ,MAAe,EAAA;AAEf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,MAAM;AACT,SAAA,CAAC,CAAA;KACL;AAEM,IAAA,iBAAiB,CAAC,KAAa,EAAE,GAAW,EAAE,IAAW,EAAA;AAC5D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,EAAE,cAAc;YACpB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;AACP,SAAA,CAAC,CAAA;KACL;AAEM,IAAA,oBAAoB,CACvB,KAAa,EACb,GAAW,EACX,IAAgC,EAChC,MAAe,EAAA;AAEf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;AACnE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAEC,QAAA,MAAM,CAAC,QAAoC,CAAC,IAAI,CAAC;AAC/C,YAAA,IAAI,EAAE,cAAc;YACpB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,MAAM;AACT,SAAA,CAAC,CAAA;KACL;AAEM,IAAA,6BAA6B,CAChC,KAAa,EACb,GAAW,EACX,IAAgB,EAChB,GAAW,EACX,KAAoB,EACpB,MAAe,EACf,OAAgB,EAAA;AAEhB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IACI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa;AAC1B,YAAA,MAAM,CAAC,IAAI,KAAK,gBAAgB;aACnC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,EAChC;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,IAAI,GAAG;AACT,YAAA,IAAI,EAAE,cAAc;YACpB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,OAAO;YACP,GAAG;SACG,CAAA;QACV,MAAM,IAAI,GAAgC,OAAO;AAC7C,8CACS,IAAI,CAAA,EAAA,EACP,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,KAAK,EACb,OAAO,EAAE,IAAI,EAAA,CAAA,GAGV,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,KACP,KAAK;AACL,YAAA,MAAM,EACN,OAAO,EAAE,KAAK,GACjB,CAAA;AACP,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC7B;AAEM,IAAA,WAAW,CAAC,KAAa,EAAE,GAAW,EAAE,KAAa,EAAA;AACxD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IACI,MAAM,CAAC,IAAI,KAAK,aAAa;YAC7B,MAAM,CAAC,IAAI,KAAK,gBAAgB;AAChC,YAAA,MAAM,CAAC,IAAI,KAAK,mBAAmB,EACrC;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,KAAK;AACR,SAAA,CAAC,CAAA;KACL;AAEM,IAAA,eAAe,CAClB,KAAa,EACb,GAAW,EACX,GAAoB,EAAA;AAEpB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,IAAI,GAAkB;AACxB,YAAA,IAAI,EAAE,eAAe;YACrB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,GAAG;AACH,YAAA,QAAQ,EAAE,qBAAqB;SAClC,CAAA;AACD,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC1B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAClC;AAEM,IAAA,qBAAqB,CACxB,KAAa,EACb,MAAe,EACf,WAAoB,EAAA;AAEpB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,MAAM,IAAI,GAAG;AACT,YAAA,IAAI,EAAE,gBAAyB;YAC/B,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;YACP,WAAW;YACX,MAAM;AACN,YAAA,QAAQ,EAAE,EAAE;SACf,CAAA;AACD,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,GACH,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CACP,EAAA,EAAA,MAAM,GACT,CAAA;AACD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;AACjB,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7B,SAAA;AAAM,aAAA,IACH,MAAM,CAAC,IAAI,KAAK,gBAAgB;AAChC,YAAA,MAAM,CAAC,WAAW;AAClB,YAAA,WAAW,EACb;AACE,YAAA,MAAM,IAAI,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACH,IAAI,CAAA,EAAA,EACP,MAAM;AACN,gBAAA,WAAW,GACd,CAAA;AACD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;AACjB,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7B,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;KACJ;IAEM,qBAAqB,CAAC,KAAa,EAAE,GAAW,EAAA;AACnD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IACI,IAAI,CAAC,IAAI,KAAK,gBAAgB;AAC9B,aAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa;AAC/B,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC;AAC1C,aAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EACtD;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;AAE1B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;AAEnB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAA;AACzC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;QAC7B,IAAI,CAAC,UAAU,EAAE;YACb,OAAM;AACT,SAAA;AAGD,QAAA,MAAM,OAAO,GAA6B;AACtC,YAAA,IAAI,EAAE,0BAA0B;YAChC,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU;SACb,CAAA;AACD,QAAA,UAAU,CAAC,MAAM,GAAG,OAAO,CAAA;QAC3B,IAAI,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE;AAChC,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KAChC;IAEM,qBAAqB,CAAC,KAAa,EAAE,GAAW,EAAA;AACnD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;AAClC,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAGD,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;AAChC,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE;AAClC,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACrB,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;AAC7B,YAAA,IACI,CAAC,MAAM;gBACP,MAAM,CAAC,IAAI,KAAK,WAAW;AAC3B,gBAAA,MAAM,CAAC,KAAK,KAAK,YAAY,EAC/B;AACE,gBAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,aAAA;AACJ,SAAA;AACD,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE;AAClC,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,IAAI,GAAwB;AAC9B,YAAA,IAAI,EAAE,qBAAqB;YAC3B,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,GAAG;YACH,GAAG;SACN,CAAA;AACD,QAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;AACjB,QAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;AACjB,QAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACtB;IAEM,mBAAmB,CAAC,KAAa,EAAE,GAAW,EAAA;;AACjD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACzD,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;AACnC,QAAA,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;AAC5D,QAAA,IACI,CAAC,IAAI;AACL,YAAA,CAAC,KAAK;YACN,IAAI,CAAC,IAAI,KAAK,kBAAkB;aAC/B,IAAI,CAAC,IAAI,KAAK,mBAAmB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC/D,YAAA,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC3B;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,MAAM,IAAI,GAAsB;AAC5B,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAEF,MAA2C;YAC/C,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,KAAK;SACR,CAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AAClB,QAAA,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;KAChC;IAEM,kBAAkB,CAAC,KAAa,EAAE,GAAW,EAAA;;AAChD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACzD,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;AACnC,QAAA,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;AAC5D,QAAA,IACI,CAAC,IAAI;AACL,YAAA,CAAC,KAAK;YACN,IAAI,CAAC,IAAI,KAAK,mBAAmB;aAChC,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC9D,YAAA,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC3B;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,MAAM,IAAI,GAAqB;AAC3B,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,MAAM,EAEF,MAA2C;YAC/C,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,KAAK;SACR,CAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AAClB,QAAA,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;KAChC;AAEM,IAAA,6BAA6B,CAAC,KAAa,EAAA;AAC9C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACzD,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,IAAI,CAAC,KAAK,GAAG;AACT,YAAA,IAAI,EAAE,wBAAwB;YAC9B,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,YAAY,EAAE,EAAE;SACnB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACnC;IAEM,6BAA6B,CAAC,KAAa,EAAE,GAAW,EAAA;AAC3D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IACI,IAAI,CAAC,IAAI,KAAK,wBAAwB;AACtC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,EACvC;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;AAEM,IAAA,wBAAwB,CAAC,KAAa,EAAA;AACzC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,wBAAwB,EAAE;AAC1C,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,IAAI,CAAC,KAAK,GAAG;AACT,YAAA,IAAI,EAAE,mBAAmB;YACzB,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,QAAQ,EAAE,EAAE;SACf,CAAA;QACD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACvC;IAEM,wBAAwB,CAAC,KAAa,EAAE,GAAW,EAAA;AACtD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE;AACnC,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;AACJ,CAAA;MA0BY,YAAY,CAAA;AASrB,IAAA,WAAA,CAAmB,OAA8B,EAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACrD;IASM,YAAY,CACf,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAAA;AAE3B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;AACnD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;AAC/B,QAAA,MAAM,OAAO,GAAkB;AAC3B,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,GAAG;AACH,YAAA,GAAG,EAAE,MAAM;YACX,OAAO;YACP,KAAK;SACR,CAAA;AACD,QAAA,OAAO,CAAC,MAAM,GAAG,OAAO,CAAA;AACxB,QAAA,KAAK,CAAC,MAAM,GAAG,OAAO,CAAA;AACtB,QAAA,OAAO,OAAO,CAAA;KACjB;IASM,UAAU,CACb,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAAA;AAE3B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;AACjD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;KAC3B;AAmCM,IAAA,YAAY,CACf,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAC3B,eAMkB,SAAS,EAAA;AAE3B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAC3B,MAAM,EACN,KAAK,EACL,GAAG,EACH,YAAqB,CACxB,CAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;KAC7B;AACJ;;MCp1BY,aAAa,CAAA;AAOtB,IAAA,WAAA,CAAmB,QAAgC,EAAA;AAC/C,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;KAC5B;AAOM,IAAA,KAAK,CAAC,IAAU,EAAA;QACnB,QAAQ,IAAI,CAAC,IAAI;AACb,YAAA,KAAK,aAAa;AACd,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBAC3B,MAAK;AACT,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBACzB,MAAK;AACT,YAAA,KAAK,eAAe;AAChB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;gBAC7B,MAAK;AACT,YAAA,KAAK,gBAAgB;AACjB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;gBAC9B,MAAK;AACT,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBACzB,MAAK;AACT,YAAA,KAAK,gBAAgB;AACjB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;gBAC9B,MAAK;AACT,YAAA,KAAK,qBAAqB;AACtB,gBAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;gBACnC,MAAK;AACT,YAAA,KAAK,cAAc;AACf,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;gBAC5B,MAAK;AACT,YAAA,KAAK,mBAAmB;AACpB,gBAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;gBACjC,MAAK;AACT,YAAA,KAAK,wBAAwB;AACzB,gBAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAA;gBACtC,MAAK;AACT,YAAA,KAAK,kBAAkB;AACnB,gBAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;gBAChC,MAAK;AACT,YAAA,KAAK,0BAA0B;AAC3B,gBAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;gBACxC,MAAK;AACT,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;gBACrB,MAAK;AACT,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;gBACrB,MAAK;AACT,YAAA,KAAK,SAAS;AACV,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBACvB,MAAK;AACT,YAAA,KAAK,YAAY;AACb,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;gBAC1B,MAAK;AACT,YAAA,KAAK,eAAe;AAChB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;gBAC7B,MAAK;AACT,YAAA,KAAK,mBAAmB;AACpB,gBAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;gBACjC,MAAK;AACT,YAAA;gBACI,MAAM,IAAI,KAAK,CACX,CAAA,cAAA,EAAkB,IAA2B,CAAC,IAAI,CAAE,CAAA,CACvD,CAAA;AACR,SAAA;KACJ;AAEO,IAAA,gBAAgB,CAAC,IAAiB,EAAA;AACtC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;AACnC,YAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAC1C,SAAA;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACvC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;AACnC,YAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAC1C,SAAA;KACJ;AAEO,IAAA,cAAc,CAAC,IAAe,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACxC,SAAA;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;YACzD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC9C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACxC,SAAA;KACJ;AAEO,IAAA,kBAAkB,CAAC,IAAmB,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC5C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC5C,SAAA;KACJ;AAEO,IAAA,mBAAmB,CAAC,IAAoB,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAC7C,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAC7C,SAAA;KACJ;AAEO,IAAA,cAAc,CAAC,IAAe,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACxC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACxC,SAAA;KACJ;AAEO,IAAA,mBAAmB,CAAC,IAAoB,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAC7C,SAAA;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACvC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAC7C,SAAA;KACJ;AAEO,IAAA,wBAAwB,CAAC,IAAyB,EAAA;AACtD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE;AAC3C,YAAA,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;AAClD,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE;AAC3C,YAAA,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;AAClD,SAAA;KACJ;AAEO,IAAA,iBAAiB,CAAC,IAAkB,EAAA;AACxC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;AACpC,YAAA,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAC3C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;AACpC,YAAA,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAC3C,SAAA;KACJ;AAEO,IAAA,sBAAsB,CAAC,IAAuB,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChD,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACtB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChD,SAAA;KACJ;AAEO,IAAA,2BAA2B,CAAC,IAA4B,EAAA;AAC5D,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,6BAA6B,EAAE;AAC9C,YAAA,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;AACrD,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,6BAA6B,EAAE;AAC9C,YAAA,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;AACrD,SAAA;KACJ;AAEO,IAAA,qBAAqB,CAAC,IAAsB,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE;AACxC,YAAA,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;AAC/C,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACtB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE;AACxC,YAAA,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;AAC/C,SAAA;KACJ;AAEO,IAAA,6BAA6B,CACjC,IAA8B,EAAA;AAE9B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,+BAA+B,EAAE;AAChD,YAAA,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAA;AACvD,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,+BAA+B,EAAE;AAChD,YAAA,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAA;AACvD,SAAA;KACJ;AAEO,IAAA,UAAU,CAAC,IAAW,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;AACpC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;AACpC,SAAA;KACJ;AAEO,IAAA,UAAU,CAAC,IAAW,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;AACpC,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;AACpC,SAAA;KACJ;AAEO,IAAA,YAAY,CAAC,IAAa,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;AACtC,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;AACtC,SAAA;KACJ;AAEO,IAAA,eAAe,CAAC,IAAgB,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;AACzC,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;AACzC,SAAA;KACJ;AAEO,IAAA,kBAAkB,CAAC,IAAmB,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC5C,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC5C,SAAA;KACJ;AAEO,IAAA,sBAAsB,CAAC,IAAuB,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChD,SAAA;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACvC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChD,SAAA;KACJ;AACJ;;AClRe,SAAA,kBAAkB,CAC9B,MAAuB,EACvB,OAA8B,EAAA;AAE9B,IAAA,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AACjE,CAAC;AAOe,SAAA,qBAAqB,CACjC,MAAc,EACd,OAAiC,EAAA;IAEjC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;AACxD,CAAC;AAEe,SAAA,cAAc,CAC1B,IAAc,EACd,QAAgC,EAAA;IAEhC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC3C;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"index.js.map","sources":[".temp/src/ecma-versions.ts",".temp/unicode/src/unicode/ids.ts",".temp/unicode/src/unicode/properties.ts",".temp/unicode/src/unicode/index.ts",".temp/src/reader.ts",".temp/src/regexp-syntax-error.ts",".temp/src/validator.ts",".temp/src/parser.ts",".temp/src/visitor.ts",".temp/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@eslint-community/regexpp/index.mjs b/node_modules/@eslint-community/regexpp/index.mjs index 69cbc02609..75510d89ab 100644 --- a/node_modules/@eslint-community/regexpp/index.mjs +++ b/node_modules/@eslint-community/regexpp/index.mjs @@ -41,10 +41,10 @@ function isLargeIdContinue(cp) { return isInRange(cp, largeIdContinueRanges !== null && largeIdContinueRanges !== void 0 ? largeIdContinueRanges : (largeIdContinueRanges = initLargeIdContinueRanges())); } function initLargeIdStartRanges() { - return restoreRanges("4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 2 0 7 0 2 2 2 0 2 j 2 2a 2 3u 9 4l 2 11 3 0 7 14 20 q 5 3 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 8 a 6 n 2 5 i 15 1n 1h 4 0 j 0 8 9 g f 5 7 3 1 3 l 2 6 2 0 4 3 4 0 h 0 e 1 2 2 f 1 b 0 9 5 5 1 3 l 2 6 2 1 2 1 2 1 w 3 2 0 k 2 h 8 2 2 2 l 2 6 2 1 2 4 4 0 j 0 g 1 o 0 c 7 3 1 3 l 2 6 2 1 2 4 4 0 v 1 2 2 g 0 i 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 b n 0 1h 7 2 2 2 m 2 f 4 0 r 2 3 0 3 1 v 0 5 7 2 2 2 m 2 9 2 4 4 0 w 1 2 1 g 1 i 8 2 2 2 14 3 0 h 0 6 2 9 2 p 5 6 h 4 n 2 8 2 0 3 6 1n 1b 2 1 d 6 1n 1 2 0 2 4 2 n 2 0 2 9 2 1 a 0 3 4 2 0 m 3 x 0 1s 7 2 z s 4 38 16 l 0 h 5 5 3 4 0 4 1 8 2 5 c d 0 i 11 2 0 6 0 3 16 2 98 2 3 3 6 2 0 2 3 3 14 2 3 3 w 2 3 3 6 2 0 2 3 3 e 2 1k 2 3 3 1u 12 f h 2d 3 5 4 h7 3 g 2 p 6 22 4 a 8 h e i f h f c 2 2 g 1f 10 0 5 0 1w 2g 8 14 2 0 6 1x b u 1e t 3 4 c 17 5 p 1j m a 1g 2b 0 2m 1a i 7 1j t e 1 b 17 r z 16 2 b z 3 8 8 16 3 2 16 3 2 5 2 1 4 0 6 5b 1t 7p 3 5 3 11 3 5 3 7 2 0 2 0 2 0 2 u 3 1g 2 6 2 0 4 2 2 6 4 3 3 5 5 c 6 2 2 6 39 0 e 0 h c 2u 0 5 0 3 9 2 0 3 5 7 0 2 0 2 0 2 f 3 3 6 4 5 0 i 14 22g 6c 7 3 4 1 d 11 2 0 6 0 3 1j 8 0 h m a 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 fb 2 q 8 8 4 3 4 5 2d 5 4 2 2h 2 3 6 16 2 2l i v 1d f e9 533 1t h3g 1w 19 3 7g 4 f b 1 l 1a h u 3 27 14 8 3 2u 3 1r 6 1 2 0 2 4 p f 2 2 2 3 2 m u 1f f 1d 1r 5 4 0 2 1 c r b m q s 8 1a t 0 h 4 2 9 b 4 2 14 o 2 2 7 l m 4 0 4 1d 2 0 4 1 3 4 3 0 2 0 p 2 3 a 8 2 d 5 3 5 3 5 a 6 2 6 2 16 2 d 7 36 u 8mb d m 5 1c 6it a5 3 2x 13 6 d 4 6 0 2 9 2 c 2 4 2 0 2 1 2 1 2 2z y a2 j 1r 3 1h 15 b 39 4 2 3q 11 p 7 p c 2g 4 5 3 5 3 5 3 2 10 b 2 p 2 i 2 1 2 e 3 d z 3e 1y 1g 7g s 4 1c 1c v e t 6 11 b t 3 z 5 7 2 4 17 4d j z 5 z 5 13 9 1f d a 2 e 2 6 2 1 2 a 2 e 2 6 2 1 1w 8m a l b 7 p 5 2 15 2 8 1y 5 3 0 2 17 2 1 4 0 3 m b m a u 1u i 2 1 b l b p 1z 1j 7 1 1t 0 g 3 2 2 2 s 17 s 4 s 10 7 2 r s 1h b l b i e h 33 20 1k 1e e 1e e z 9p 15 7 1 27 s b 0 9 l 17 h 1b k s m d 1g 1m 1 3 0 e 18 x o r z u 0 3 0 9 y 4 0 d 1b f 3 m 0 2 0 10 h 2 o k 1 1s 6 2 0 2 3 2 e 2 9 8 1a 13 7 3 1 3 l 2 6 2 1 2 4 4 0 j 0 d 4 4f 1g j 3 l 2 v 1b l 1 2 0 55 1a 16 3 11 1b l 0 1o 16 e 0 20 q 12 6 56 17 39 1r w 7 3 0 3 7 2 1 2 n g 0 2 0 2n 7 3 12 h 0 2 0 t 0 b 13 8 0 m 0 c 19 k 0 j 20 7c 8 2 10 i 0 1e t 35 6 2 1 2 11 m 0 q 5 2 1 2 v f 0 94 i g 0 2 c 2 x 3h 0 28 pl 2v 32 i 5f 219 2o g tr i 5 33u g6 6nu fs 8 u i 26 i t j 1b h 3 w k 6 i j5 1r 3l 22 6 0 1v c 1t 1 2 0 t 4qf 9 yd 17 8 6w8 3 2 6 2 1 2 82 g 0 u 2 3 0 f 3 9 az 1s5 2y 6 c 4 8 8 9 4mf 2c 2 1y 2 1 3 0 3 1 3 3 2 b 2 0 2 6 2 1s 2 3 3 7 2 6 2 r 2 3 2 4 2 0 4 6 2 9f 3 o 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 7 1f9 u 7 5 7a 1p 43 18 b 6 h 0 8y t j 17 dh r l1 6 2 3 2 1 2 e 2 5g 1o 1v 8 0 xh 3 2 q 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 g 6 2 2 4 2 g 3et wyn x 37d 7 65 3 4g1 f 5rk 2e8 f1 15v 3t6 6 38f"); + return restoreRanges("4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 2 0 7 0 2 2 2 0 2 j 2 2a 2 3u 9 4l 2 11 3 0 7 14 20 q 5 3 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 8 a 6 n 2 5 i 15 1n 1h 4 0 j 0 8 9 g f 5 7 3 1 3 l 2 6 2 0 4 3 4 0 h 0 e 1 2 2 f 1 b 0 9 5 5 1 3 l 2 6 2 1 2 1 2 1 w 3 2 0 k 2 h 8 2 2 2 l 2 6 2 1 2 4 4 0 j 0 g 1 o 0 c 7 3 1 3 l 2 6 2 1 2 4 4 0 v 1 2 2 g 0 i 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 b n 0 1h 7 2 2 2 m 2 f 4 0 r 2 3 0 3 1 v 0 5 7 2 2 2 m 2 9 2 4 4 0 w 1 2 1 g 1 i 8 2 2 2 14 3 0 h 0 6 2 9 2 p 5 6 h 4 n 2 8 2 0 3 6 1n 1b 2 1 d 6 1n 1 2 0 2 4 2 n 2 0 2 9 2 1 a 0 3 4 2 0 m 3 x 0 1s 7 2 z s 4 38 16 l 0 h 5 5 3 4 0 4 1 8 2 5 c d 0 i 11 2 0 6 0 3 16 2 98 2 3 3 6 2 0 2 3 3 14 2 3 3 w 2 3 3 6 2 0 2 3 3 e 2 1k 2 3 3 1u 12 f h 2d 3 5 4 h7 3 g 2 p 6 22 4 a 8 h e i f h f c 2 2 g 1f 10 0 5 0 1w 2g 8 14 2 0 6 1x b u 1e t 3 4 c 17 5 p 1j m a 1g 2b 0 2m 1a i 7 1j t e 1 b 17 r z 16 2 b z 3 8 8 16 3 2 16 3 2 5 2 1 4 0 6 5b 1t 7p 3 5 3 11 3 5 3 7 2 0 2 0 2 0 2 u 3 1g 2 6 2 0 4 2 2 6 4 3 3 5 5 c 6 2 2 6 39 0 e 0 h c 2u 0 5 0 3 9 2 0 3 5 7 0 2 0 2 0 2 f 3 3 6 4 5 0 i 14 22g 6c 7 3 4 1 d 11 2 0 6 0 3 1j 8 0 h m a 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 fb 2 q 8 8 4 3 4 5 2d 5 4 2 2h 2 3 6 16 2 2l i v 1d f e9 533 1t h3g 1w 19 3 7g 4 f b 1 l 1a h u 3 27 14 8 3 2u 3 1r 6 1 2 0 2 4 p f 2 2 2 3 2 m u 1f f 1d 1r 5 4 0 2 1 c r b m q s 8 1a t 0 h 4 2 9 b 4 2 14 o 2 2 7 l m 4 0 4 1d 2 0 4 1 3 4 3 0 2 0 p 2 3 a 8 2 d 5 3 5 3 5 a 6 2 6 2 16 2 d 7 36 u 8mb d m 5 1c 6it a5 3 2x 13 6 d 4 6 0 2 9 2 c 2 4 2 0 2 1 2 1 2 2z y a2 j 1r 3 1h 15 b 39 4 2 3q 11 p 7 p c 2g 4 5 3 5 3 5 3 2 10 b 2 p 2 i 2 1 2 e 3 d z 3e 1y 1g 7g s 4 1c 1c v e t 6 11 b t 3 z 5 7 2 4 17 4d j z 5 z 5 13 9 1f d a 2 e 2 6 2 1 2 a 2 e 2 6 2 1 1w 8m a l b 7 p 5 2 15 2 8 1y 5 3 0 2 17 2 1 4 0 3 m b m a u 1u i 2 1 b l b p 1z 1j 7 1 1t 0 g 3 2 2 2 s 17 s 4 s 10 7 2 r s 1h b l b i e h 33 20 1k 1e e 1e e z 9p 15 7 1 27 s b 0 9 l 17 h 1b k s m d 1g 1m 1 3 0 e 18 x o r z u 0 3 0 9 y 4 0 d 1b f 3 m 0 2 0 10 h 2 o k 1 1s 6 2 0 2 3 2 e 2 9 8 1a 13 7 3 1 3 l 2 6 2 1 2 4 4 0 j 0 d 4 4f 1g j 3 l 2 v 1b l 1 2 0 55 1a 16 3 11 1b l 0 1o 16 e 0 20 q 12 6 56 17 39 1r w 7 3 0 3 7 2 1 2 n g 0 2 0 2n 7 3 12 h 0 2 0 t 0 b 13 8 0 m 0 c 19 k 0 j 20 7c 8 2 10 i 0 1e t 35 6 2 1 2 11 m 0 q 5 2 1 2 v f 0 94 i g 0 2 c 2 x 3h 0 28 pl 2v 32 i 5f 219 2o g tr i 5 33u g6 6nu fs 8 u i 26 i t j 1b h 3 w k 6 i j5 1r 3l 22 6 0 1v c 1t 1 2 0 t 4qf 9 yd 17 8 6w8 3 2 6 2 1 2 82 g 0 u 2 3 0 f 3 9 az 1s5 2y 6 c 4 8 8 9 4mf 2c 2 1y 2 1 3 0 3 1 3 3 2 b 2 0 2 6 2 1s 2 3 3 7 2 6 2 r 2 3 2 4 2 0 4 6 2 9f 3 o 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 7 1f9 u 7 5 7a 1p 43 18 b 6 h 0 8y t j 17 dh r l1 6 2 3 2 1 2 e 2 5g 1o 1v 8 0 xh 3 2 q 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 g 6 2 2 4 2 g 3et wyn x 37d 7 65 3 4g1 f 5rk g h9 1wj f1 15v 3t6 6 38f"); } function initLargeIdContinueRanges() { - return restoreRanges("53 0 g9 33 o 0 70 4 7e 18 2 0 2 1 2 1 2 0 21 a 1d u 7 0 2u 6 3 5 3 1 2 3 3 9 o 0 v q 2k a g 9 y 8 a 0 p 3 2 8 2 2 2 4 18 2 1p 7 17 n 2 w 1j 2 2 h 2 6 b 1 3 9 i 2 1l 0 2 6 3 1 3 2 a 0 b 1 3 9 f 0 3 2 1l 0 2 4 5 1 3 2 4 0 l b 4 0 c 2 1l 0 2 7 2 2 2 2 l 1 3 9 b 5 2 2 1l 0 2 6 3 1 3 2 8 2 b 1 3 9 j 0 1o 4 4 2 2 3 a 0 f 9 h 4 1k 0 2 6 2 2 2 3 8 1 c 1 3 9 i 2 1l 0 2 6 2 2 2 3 8 1 c 1 3 9 4 0 d 3 1k 1 2 6 2 2 2 3 a 0 b 1 3 9 i 2 1z 0 5 5 2 0 2 7 7 9 3 1 1q 0 3 6 d 7 2 9 2g 0 3 8 c 6 2 9 1r 1 7 9 c 0 2 0 2 0 5 1 1e j 2 1 6 a 2 z a 0 2t j 2 9 d 3 5 2 2 2 3 6 4 3 e b 2 e jk 2 a 8 pt 3 t 2 u 1 v 1 1t v a 0 3 9 y 2 2 a 40 0 3b b 5 b b 9 3l a 1p 4 1m 9 2 s 3 a 7 9 n d 2 f 1e 4 1c g c 9 i 8 d 2 v c 3 9 19 d 1d j 9 9 7 9 3b 2 2 k 5 0 7 0 3 2 5j 1r g0 1 k 0 3g c 5 0 4 b 2db 2 3y 0 2p v ff 5 2y 1 n7q 9 1y 0 5 9 x 1 29 1 7l 0 4 0 5 0 o 4 5 0 2c 1 1f h b 9 7 h e a t 7 q c 19 3 1c d g 9 c 0 b 9 1c d d 0 9 1 3 9 y 2 1f 0 2 2 3 1 6 1 2 0 16 4 6 1 6l 7 2 1 3 9 fmt 0 ki f h f 4 1 p 2 5d 9 12 0 ji 0 6b 0 46 4 86 9 120 2 2 1 6 3 15 2 5 0 4m 1 fy 3 9 9 aa 1 29 2 1z a 1e 3 3f 2 1i e w a 3 1 b 3 1a a 8 0 1a 9 7 2 11 d 2 9 6 1 19 0 d 2 1d d 9 3 2 b 2b b 7 0 3 0 4e b 6 9 7 3 1k 1 2 6 3 1 3 2 a 0 b 1 3 6 4 4 5d h a 9 5 0 2a j d 9 5y 6 3 8 s 1 2b g g 9 2a c 9 9 2c e 5 9 6r e 4m 9 1z 5 2 1 3 3 2 0 2 1 d 9 3c 6 3 6 4 0 t 9 15 6 2 3 9 0 a a 1b f ba 7 2 7 h 9 1l l 2 d 3f 5 4 0 2 1 2 6 2 0 9 9 1d 4 2 1 2 4 9 9 96 3 a 1 2 0 1d 6 4 4 e 9 44n 0 7 e aob 9 2f 9 13 4 1o 6 q 9 s6 0 2 1i 8 3 2a 0 c 1 f58 1 3mq 19 3 m f3 4 4 5 9 7 3 6 v 3 45 2 13e 1d e9 1i 5 1d 9 0 f 0 n 4 2 e 11t 6 2 g 3 6 2 1 2 4 2t 0 4h 6 a 9 9x 0 1q d dv d rb 6 32 6 6 9 3o7 9 gvt3 6n"); + return restoreRanges("53 0 g9 33 o 0 70 4 7e 18 2 0 2 1 2 1 2 0 21 a 1d u 7 0 2u 6 3 5 3 1 2 3 3 9 o 0 v q 2k a g 9 y 8 a 0 p 3 2 8 2 2 2 4 18 2 1p 7 17 n 2 w 1j 2 2 h 2 6 b 1 3 9 i 2 1l 0 2 6 3 1 3 2 a 0 b 1 3 9 f 0 3 2 1l 0 2 4 5 1 3 2 4 0 l b 4 0 c 2 1l 0 2 7 2 2 2 2 l 1 3 9 b 5 2 2 1l 0 2 6 3 1 3 2 8 2 b 1 3 9 j 0 1o 4 4 2 2 3 a 0 f 9 h 4 1k 0 2 6 2 2 2 3 8 1 c 1 3 9 i 2 1l 0 2 6 2 2 2 3 8 1 c 1 3 9 4 0 d 3 1k 1 2 6 2 2 2 3 a 0 b 1 3 9 i 2 1z 0 5 5 2 0 2 7 7 9 3 1 1q 0 3 6 d 7 2 9 2g 0 3 8 c 6 2 9 1r 1 7 9 c 0 2 0 2 0 5 1 1e j 2 1 6 a 2 z a 0 2t j 2 9 d 3 5 2 2 2 3 6 4 3 e b 2 e jk 2 a 8 pt 3 t 2 u 1 v 1 1t v a 0 3 9 y 2 2 a 40 0 3b b 5 b b 9 3l a 1p 4 1m 9 2 s 3 a 7 9 n d 2 f 1e 4 1c g c 9 i 8 d 2 v c 3 9 19 d 1d j 9 9 7 9 3b 2 2 k 5 0 7 0 3 2 5j 1r el 1 1e 1 k 0 3g c 5 0 4 b 2db 2 3y 0 2p v ff 5 2y 1 2p 0 n51 9 1y 0 5 9 x 1 29 1 7l 0 4 0 5 0 o 4 5 0 2c 1 1f h b 9 7 h e a t 7 q c 19 3 1c d g 9 c 0 b 9 1c d d 0 9 1 3 9 y 2 1f 0 2 2 3 1 6 1 2 0 16 4 6 1 6l 7 2 1 3 9 fmt 0 ki f h f 4 1 p 2 5d 9 12 0 12 0 ig 0 6b 0 46 4 86 9 120 2 2 1 6 3 15 2 5 0 4m 1 fy 3 9 9 aa 1 29 2 1z a 1e 3 3f 2 1i e w a 3 1 b 3 1a a 8 0 1a 9 7 2 11 d 2 9 6 1 19 0 d 2 1d d 9 3 2 b 2b b 7 0 3 0 4e b 6 9 7 3 1k 1 2 6 3 1 3 2 a 0 b 1 3 6 4 4 5d h a 9 5 0 2a j d 9 5y 6 3 8 s 1 2b g g 9 2a c 9 9 2c e 5 9 6r e 4m 9 1z 5 2 1 3 3 2 0 2 1 d 9 3c 6 3 6 4 0 t 9 15 6 2 3 9 0 a a 1b f ba 7 2 7 h 9 1l l 2 d 3f 5 4 0 2 1 2 6 2 0 9 9 1d 4 2 1 2 4 9 9 96 3 a 1 2 0 1d 6 4 4 e 9 44n 0 7 e aob 9 2f 9 13 4 1o 6 q 9 s6 0 2 1i 8 3 2a 0 c 1 f58 1 3mq 19 3 m f3 4 4 5 9 7 3 6 v 3 45 2 13e 1d e9 1i 5 1d 9 0 f 0 n 4 2 e 11t 6 2 g 3 6 2 1 2 4 2t 0 4h 6 a 9 9x 0 1q d dv d rb 6 32 6 6 9 3o7 9 gvt3 6n"); } function isInRange(cp, ranges) { let l = 0, r = (ranges.length / 2) | 0, i = 0, min = 0, max = 0; @@ -113,6 +113,7 @@ const scNameSet = new Set(["Script", "Script_Extensions", "sc", "scx"]); const gcValueSets = new DataSet("C Cased_Letter Cc Cf Close_Punctuation Cn Co Combining_Mark Connector_Punctuation Control Cs Currency_Symbol Dash_Punctuation Decimal_Number Enclosing_Mark Final_Punctuation Format Initial_Punctuation L LC Letter Letter_Number Line_Separator Ll Lm Lo Lowercase_Letter Lt Lu M Mark Math_Symbol Mc Me Mn Modifier_Letter Modifier_Symbol N Nd Nl No Nonspacing_Mark Number Open_Punctuation Other Other_Letter Other_Number Other_Punctuation Other_Symbol P Paragraph_Separator Pc Pd Pe Pf Pi Po Private_Use Ps Punctuation S Sc Separator Sk Sm So Space_Separator Spacing_Mark Surrogate Symbol Titlecase_Letter Unassigned Uppercase_Letter Z Zl Zp Zs cntrl digit punct", "", "", "", "", "", ""); const scValueSets = new DataSet("Adlam Adlm Aghb Ahom Anatolian_Hieroglyphs Arab Arabic Armenian Armi Armn Avestan Avst Bali Balinese Bamu Bamum Bass Bassa_Vah Batak Batk Beng Bengali Bhaiksuki Bhks Bopo Bopomofo Brah Brahmi Brai Braille Bugi Buginese Buhd Buhid Cakm Canadian_Aboriginal Cans Cari Carian Caucasian_Albanian Chakma Cham Cher Cherokee Common Copt Coptic Cprt Cuneiform Cypriot Cyrillic Cyrl Deseret Deva Devanagari Dsrt Dupl Duployan Egyp Egyptian_Hieroglyphs Elba Elbasan Ethi Ethiopic Geor Georgian Glag Glagolitic Gonm Goth Gothic Gran Grantha Greek Grek Gujarati Gujr Gurmukhi Guru Han Hang Hangul Hani Hano Hanunoo Hatr Hatran Hebr Hebrew Hira Hiragana Hluw Hmng Hung Imperial_Aramaic Inherited Inscriptional_Pahlavi Inscriptional_Parthian Ital Java Javanese Kaithi Kali Kana Kannada Katakana Kayah_Li Khar Kharoshthi Khmer Khmr Khoj Khojki Khudawadi Knda Kthi Lana Lao Laoo Latin Latn Lepc Lepcha Limb Limbu Lina Linb Linear_A Linear_B Lisu Lyci Lycian Lydi Lydian Mahajani Mahj Malayalam Mand Mandaic Mani Manichaean Marc Marchen Masaram_Gondi Meetei_Mayek Mend Mende_Kikakui Merc Mero Meroitic_Cursive Meroitic_Hieroglyphs Miao Mlym Modi Mong Mongolian Mro Mroo Mtei Mult Multani Myanmar Mymr Nabataean Narb Nbat New_Tai_Lue Newa Nko Nkoo Nshu Nushu Ogam Ogham Ol_Chiki Olck Old_Hungarian Old_Italic Old_North_Arabian Old_Permic Old_Persian Old_South_Arabian Old_Turkic Oriya Orkh Orya Osage Osge Osma Osmanya Pahawh_Hmong Palm Palmyrene Pau_Cin_Hau Pauc Perm Phag Phags_Pa Phli Phlp Phnx Phoenician Plrd Prti Psalter_Pahlavi Qaac Qaai Rejang Rjng Runic Runr Samaritan Samr Sarb Saur Saurashtra Sgnw Sharada Shavian Shaw Shrd Sidd Siddham SignWriting Sind Sinh Sinhala Sora Sora_Sompeng Soyo Soyombo Sund Sundanese Sylo Syloti_Nagri Syrc Syriac Tagalog Tagb Tagbanwa Tai_Le Tai_Tham Tai_Viet Takr Takri Tale Talu Tamil Taml Tang Tangut Tavt Telu Telugu Tfng Tglg Thaa Thaana Thai Tibetan Tibt Tifinagh Tirh Tirhuta Ugar Ugaritic Vai Vaii Wara Warang_Citi Xpeo Xsux Yi Yiii Zanabazar_Square Zanb Zinh Zyyy", "Dogr Dogra Gong Gunjala_Gondi Hanifi_Rohingya Maka Makasar Medefaidrin Medf Old_Sogdian Rohg Sogd Sogdian Sogo", "Elym Elymaic Hmnp Nand Nandinagari Nyiakeng_Puachue_Hmong Wancho Wcho", "Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi", "Cpmn Cypro_Minoan Old_Uyghur Ougr Tangsa Tnsa Toto Vith Vithkuqi", "Hrkt Katakana_Or_Hiragana Kawi Nag_Mundari Nagm Unknown Zzzz", ""); const binPropertySets = new DataSet("AHex ASCII ASCII_Hex_Digit Alpha Alphabetic Any Assigned Bidi_C Bidi_Control Bidi_M Bidi_Mirrored CI CWCF CWCM CWKCF CWL CWT CWU Case_Ignorable Cased Changes_When_Casefolded Changes_When_Casemapped Changes_When_Lowercased Changes_When_NFKC_Casefolded Changes_When_Titlecased Changes_When_Uppercased DI Dash Default_Ignorable_Code_Point Dep Deprecated Dia Diacritic Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Ext Extender Gr_Base Gr_Ext Grapheme_Base Grapheme_Extend Hex Hex_Digit IDC IDS IDSB IDST IDS_Binary_Operator IDS_Trinary_Operator ID_Continue ID_Start Ideo Ideographic Join_C Join_Control LOE Logical_Order_Exception Lower Lowercase Math NChar Noncharacter_Code_Point Pat_Syn Pat_WS Pattern_Syntax Pattern_White_Space QMark Quotation_Mark RI Radical Regional_Indicator SD STerm Sentence_Terminal Soft_Dotted Term Terminal_Punctuation UIdeo Unified_Ideograph Upper Uppercase VS Variation_Selector White_Space XIDC XIDS XID_Continue XID_Start space", "Extended_Pictographic", "", "EBase EComp EMod EPres ExtPict", "", "", ""); +const binPropertyOfStringsSets = new DataSet("", "", "", "", "", "", "Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji RGI_Emoji_Flag_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence"); function isValidUnicodeProperty(version, name, value) { if (gcNameSet.has(name)) { return version >= 2018 && gcValueSets.es2018.has(value); @@ -132,6 +133,9 @@ function isValidLoneUnicodeProperty(version, value) { (version >= 2019 && binPropertySets.es2019.has(value)) || (version >= 2021 && binPropertySets.es2021.has(value))); } +function isValidLoneUnicodePropertyOfString(version, value) { + return version >= 2024 && binPropertyOfStringsSets.es2024.has(value); +} const BACKSPACE = 0x08; const CHARACTER_TABULATION = 0x09; @@ -356,35 +360,25 @@ class Reader { } class RegExpSyntaxError extends SyntaxError { - constructor(srcCtx, flags, index, message) { - let source = ""; - if (srcCtx.kind === "literal") { - const literal = srcCtx.source.slice(srcCtx.start, srcCtx.end); - if (literal) { - source = `: ${literal}`; - } - } - else if (srcCtx.kind === "pattern") { - const pattern = srcCtx.source.slice(srcCtx.start, srcCtx.end); - const flagsText = `${flags.unicode ? "u" : ""}${flags.unicodeSets ? "v" : ""}`; - source = `: /${pattern}/${flagsText}`; - } - super(`Invalid regular expression${source}: ${message}`); + constructor(message, index) { + super(message); this.index = index; } } - -const binPropertyOfStringSets = new Set([ - "Basic_Emoji", - "Emoji_Keycap_Sequence", - "RGI_Emoji_Modifier_Sequence", - "RGI_Emoji_Flag_Sequence", - "RGI_Emoji_Tag_Sequence", - "RGI_Emoji_ZWJ_Sequence", - "RGI_Emoji", -]); -function isValidLoneUnicodePropertyOfString(version, value) { - return version >= 2024 && binPropertyOfStringSets.has(value); +function newRegExpSyntaxError(srcCtx, flags, index, message) { + let source = ""; + if (srcCtx.kind === "literal") { + const literal = srcCtx.source.slice(srcCtx.start, srcCtx.end); + if (literal) { + source = `: ${literal}`; + } + } + else if (srcCtx.kind === "pattern") { + const pattern = srcCtx.source.slice(srcCtx.start, srcCtx.end); + const flagsText = `${flags.unicode ? "u" : ""}${flags.unicodeSets ? "v" : ""}`; + source = `: /${pattern}/${flagsText}`; + } + return new RegExpSyntaxError(`Invalid regular expression${source}: ${message}`, index); } const SYNTAX_CHARACTER = new Set([ @@ -838,7 +832,7 @@ class RegExpValidator { } raise(message, context) { var _a, _b, _c; - throw new RegExpSyntaxError(this._srcCtx, { + throw newRegExpSyntaxError(this._srcCtx, { unicode: (_a = context === null || context === void 0 ? void 0 : context.unicode) !== null && _a !== void 0 ? _a : (this._unicodeMode && !this._unicodeSetsMode), unicodeSets: (_b = context === null || context === void 0 ? void 0 : context.unicodeSets) !== null && _b !== void 0 ? _b : this._unicodeSetsMode, }, (_c = context === null || context === void 0 ? void 0 : context.index) !== null && _c !== void 0 ? _c : this.index, message); @@ -1953,7 +1947,7 @@ class RegExpParserState { constructor(options) { var _a; this._node = DUMMY_PATTERN; - this._expressionBuffer = null; + this._expressionBufferMap = new Map(); this._flags = DUMMY_FLAGS; this._backreferences = []; this._capturingGroups = []; @@ -2204,25 +2198,28 @@ class RegExpParserState { } onUnicodePropertyCharacterSet(start, end, kind, key, value, negate, strings) { const parent = this._node; - if ((parent.type !== "Alternative" && - parent.type !== "CharacterClass") || - (strings && (negate || value))) { + if (parent.type !== "Alternative" && parent.type !== "CharacterClass") { throw new Error("UnknownError"); } const base = { type: "CharacterSet", - parent, start, end, raw: this.source.slice(start, end), kind, - strings, key, }; - const node = strings - ? Object.assign(Object.assign({}, base), { value: null, negate: false, strings: true }) : Object.assign(Object.assign({}, base), { value, - negate, strings: false }); - parent.elements.push(node); + if (strings) { + if ((parent.type === "CharacterClass" && !parent.unicodeSets) || + negate || + value !== null) { + throw new Error("UnknownError"); + } + parent.elements.push(Object.assign(Object.assign({}, base), { parent, strings, value, negate })); + } + else { + parent.elements.push(Object.assign(Object.assign({}, base), { parent, strings, value, negate })); + } } onCharacter(start, end, value) { const parent = this._node; @@ -2290,19 +2287,21 @@ class RegExpParserState { const node = this._node; if (node.type !== "CharacterClass" || (node.parent.type !== "Alternative" && - node.parent.type !== "CharacterClass") || - (this._expressionBuffer && node.elements.length > 0)) { + node.parent.type !== "CharacterClass")) { throw new Error("UnknownError"); } const parent = node.parent; node.end = end; node.raw = this.source.slice(start, end); this._node = parent; - const expression = this._expressionBuffer; - this._expressionBuffer = null; + const expression = this._expressionBufferMap.get(node); if (!expression) { return; } + if (node.elements.length > 0) { + throw new Error("UnknownError"); + } + this._expressionBufferMap.delete(node); const newNode = { type: "ExpressionCharacterClass", parent, @@ -2360,7 +2359,7 @@ class RegExpParserState { throw new Error("UnknownError"); } const right = parent.elements.pop(); - const left = (_a = this._expressionBuffer) !== null && _a !== void 0 ? _a : parent.elements.pop(); + const left = (_a = this._expressionBufferMap.get(parent)) !== null && _a !== void 0 ? _a : parent.elements.pop(); if (!left || !right || left.type === "ClassSubtraction" || @@ -2379,7 +2378,7 @@ class RegExpParserState { }; left.parent = node; right.parent = node; - this._expressionBuffer = node; + this._expressionBufferMap.set(parent, node); } onClassSubtraction(start, end) { var _a; @@ -2388,7 +2387,7 @@ class RegExpParserState { throw new Error("UnknownError"); } const right = parent.elements.pop(); - const left = (_a = this._expressionBuffer) !== null && _a !== void 0 ? _a : parent.elements.pop(); + const left = (_a = this._expressionBufferMap.get(parent)) !== null && _a !== void 0 ? _a : parent.elements.pop(); if (!left || !right || left.type === "ClassIntersection" || @@ -2407,7 +2406,7 @@ class RegExpParserState { }; left.parent = node; right.parent = node; - this._expressionBuffer = node; + this._expressionBufferMap.set(parent, node); } onClassStringDisjunctionEnter(start) { const parent = this._node; @@ -2734,5 +2733,5 @@ function visitRegExpAST(node, handlers) { new RegExpVisitor(handlers).visit(node); } -export { ast as AST, RegExpParser, RegExpValidator, parseRegExpLiteral, validateRegExpLiteral, visitRegExpAST }; +export { ast as AST, RegExpParser, RegExpSyntaxError, RegExpValidator, parseRegExpLiteral, validateRegExpLiteral, visitRegExpAST }; //# sourceMappingURL=index.mjs.map diff --git a/node_modules/@eslint-community/regexpp/index.mjs.map b/node_modules/@eslint-community/regexpp/index.mjs.map index 7e84ddf0dc..70b5c379dc 100644 --- a/node_modules/@eslint-community/regexpp/index.mjs.map +++ b/node_modules/@eslint-community/regexpp/index.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index.mjs.map","sources":[".temp/src/ecma-versions.ts",".temp/unicode/src/unicode/ids.ts",".temp/unicode/src/unicode/properties.ts",".temp/unicode/src/unicode/index.ts",".temp/src/reader.ts",".temp/src/regexp-syntax-error.ts",".temp/unicode/src/unicode/properties-of-strings.ts",".temp/src/validator.ts",".temp/src/parser.ts",".temp/src/visitor.ts",".temp/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;AAYO,MAAM,iBAAiB,GAAG,IAAI;;ACRrC,IAAI,kBAAkB,GAAyB,SAAS,CAAA;AACxD,IAAI,qBAAqB,GAAyB,SAAS,CAAA;AAErD,SAAU,SAAS,CAAC,EAAU,EAAA;IAChC,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,IAAI,CAAA;IAC1B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,IAAI,CAAA;AAC1B,IAAA,OAAO,cAAc,CAAC,EAAE,CAAC,CAAA;AAC7B,CAAC;AAEK,SAAU,YAAY,CAAC,EAAU,EAAA;IACnC,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,IAAI,CAAA;IAC1B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,IAAI,CAAA;IAC1B,IAAI,EAAE,KAAK,IAAI;AAAE,QAAA,OAAO,IAAI,CAAA;IAC5B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,KAAK,CAAA;IAC3B,IAAI,EAAE,GAAG,IAAI;AAAE,QAAA,OAAO,IAAI,CAAA;IAC1B,OAAO,cAAc,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,cAAc,CAAC,EAAU,EAAA;AAC9B,IAAA,OAAO,SAAS,CACZ,EAAE,EACF,kBAAkB,aAAlB,kBAAkB,KAAA,KAAA,CAAA,GAAlB,kBAAkB,IAAK,kBAAkB,GAAG,sBAAsB,EAAE,CAAC,CACxE,CAAA;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAU,EAAA;AACjC,IAAA,OAAO,SAAS,CACZ,EAAE,EACF,qBAAqB,aAArB,qBAAqB,KAAA,KAAA,CAAA,GAArB,qBAAqB,IAChB,qBAAqB,GAAG,yBAAyB,EAAE,CAAC,CAC5D,CAAA;AACL,CAAC;AAED,SAAS,sBAAsB,GAAA;AAC3B,IAAA,OAAO,aAAa,CAChB,o0FAAo0F,CACv0F,CAAA;AACL,CAAC;AAED,SAAS,yBAAyB,GAAA;AAC9B,IAAA,OAAO,aAAa,CAChB,qmDAAqmD,CACxmD,CAAA;AACL,CAAC;AAED,SAAS,SAAS,CAAC,EAAU,EAAE,MAAgB,EAAA;IAC3C,IAAI,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAC3B,CAAC,GAAG,CAAC,EACL,GAAG,GAAG,CAAC,EACP,GAAG,GAAG,CAAC,CAAA;IACX,OAAO,CAAC,GAAG,CAAC,EAAE;AACV,QAAA,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrB,QAAA,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACnB,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACvB,IAAI,EAAE,GAAG,GAAG,EAAE;YACV,CAAC,GAAG,CAAC,CAAA;AACR,SAAA;aAAM,IAAI,EAAE,GAAG,GAAG,EAAE;AACjB,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACZ,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAA;IAC/B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACpE;;AC3EA,MAAM,OAAO,CAAA;AA6BT,IAAA,WAAA,CACI,OAAe,EACf,OAAe,EACf,OAAe,EACf,OAAe,EACf,OAAe,EACf,OAAe,EACf,OAAe,EAAA;AAEf,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;KAC1B;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AAED,IAAA,IAAW,MAAM,GAAA;;QACb,QACI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,oCAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACvE;KACJ;AACJ,CAAA;AAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAA;AACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AACvE,MAAM,WAAW,GAAG,IAAI,OAAO,CAC3B,opBAAopB,EACppB,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,CACL,CAAA;AACD,MAAM,WAAW,GAAG,IAAI,OAAO,CAC3B,48DAA48D,EAC58D,gHAAgH,EAChH,uEAAuE,EACvE,uEAAuE,EACvE,kEAAkE,EAClE,8DAA8D,EAC9D,EAAE,CACL,CAAA;AACD,MAAM,eAAe,GAAG,IAAI,OAAO,CAC/B,69BAA69B,EAC79B,uBAAuB,EACvB,EAAE,EACF,gCAAgC,EAChC,EAAE,EACF,EAAE,EACF,EAAE,CACL,CAAA;SAEe,sBAAsB,CAClC,OAAe,EACf,IAAY,EACZ,KAAa,EAAA;AAEb,IAAA,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACrB,QAAA,OAAO,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC1D,KAAA;AACD,IAAA,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACrB,QAAA,QACI,CAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACjD,aAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClD,aAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClD,aAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClD,aAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClD,aAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EACrD;AACJ,KAAA;AACD,IAAA,OAAO,KAAK,CAAA;AAChB,CAAC;AAEe,SAAA,0BAA0B,CACtC,OAAe,EACf,KAAa,EAAA;AAEb,IAAA,QACI,CAAC,OAAO,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACrD,SAAC,OAAO,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,SAAC,OAAO,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EACzD;AACL;;ACjJO,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,eAAe,GAAG,IAAI,CAAA;AAC5B,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,eAAe,GAAG,IAAI,CAAA;AAC5B,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAC7B,MAAM,WAAW,GAAG,IAAI,CAAA;AACxB,MAAM,WAAW,GAAG,IAAI,CAAA;AACxB,MAAM,YAAY,GAAG,IAAI,CAAA;AACzB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAC9B,MAAM,QAAQ,GAAG,IAAI,CAAA;AACrB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,KAAK,GAAG,IAAI,CAAA;AAClB,MAAM,YAAY,GAAG,IAAI,CAAA;AACzB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,OAAO,GAAG,IAAI,CAAA;AACpB,MAAM,UAAU,GAAG,IAAI,CAAA;AACvB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,WAAW,GAAG,IAAI,CAAA;AACxB,MAAM,UAAU,GAAG,IAAI,CAAA;AACvB,MAAM,KAAK,GAAG,IAAI,CAAA;AAClB,MAAM,SAAS,GAAG,IAAI,CAAA;AACtB,MAAM,cAAc,GAAG,IAAI,CAAA;AAC3B,MAAM,WAAW,GAAG,IAAI,CAAA;AACxB,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAC9B,MAAM,aAAa,GAAG,IAAI,CAAA;AAC1B,MAAM,aAAa,GAAG,IAAI,CAAA;AAC1B,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AACnC,MAAM,QAAQ,GAAG,IAAI,CAAA;AACrB,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,mBAAmB,GAAG,IAAI,CAAA;AAChC,MAAM,eAAe,GAAG,IAAI,CAAA;AAC5B,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAC9B,MAAM,YAAY,GAAG,IAAI,CAAA;AACzB,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAC/B,MAAM,aAAa,GAAG,IAAI,CAAA;AAC1B,MAAM,mBAAmB,GAAG,IAAI,CAAA;AAChC,MAAM,KAAK,GAAG,IAAI,CAAA;AAClB,MAAM,qBAAqB,GAAG,MAAM,CAAA;AACpC,MAAM,iBAAiB,GAAG,MAAM,CAAA;AAChC,MAAM,cAAc,GAAG,MAAM,CAAA;AAC7B,MAAM,mBAAmB,GAAG,MAAM,CAAA;AAElC,MAAM,cAAc,GAAG,IAAI,CAAA;AAC3B,MAAM,cAAc,GAAG,QAAQ,CAAA;AAEhC,SAAU,aAAa,CAAC,IAAY,EAAA;IACtC,QACI,CAAC,IAAI,IAAI,sBAAsB,IAAI,IAAI,IAAI,sBAAsB;SAChE,IAAI,IAAI,oBAAoB,IAAI,IAAI,IAAI,oBAAoB,CAAC,EACjE;AACL,CAAC;AAEK,SAAU,cAAc,CAAC,IAAY,EAAA;AACvC,IAAA,OAAO,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAA;AACnD,CAAC;AAEK,SAAU,YAAY,CAAC,IAAY,EAAA;AACrC,IAAA,OAAO,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,WAAW,CAAA;AACpD,CAAC;AAEK,SAAU,UAAU,CAAC,IAAY,EAAA;IACnC,QACI,CAAC,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU;AACzC,SAAC,IAAI,IAAI,sBAAsB,IAAI,IAAI,IAAI,sBAAsB,CAAC;SACjE,IAAI,IAAI,oBAAoB,IAAI,IAAI,IAAI,oBAAoB,CAAC,EACjE;AACL,CAAC;AAEK,SAAU,gBAAgB,CAAC,IAAY,EAAA;IACzC,QACI,IAAI,KAAK,SAAS;AAClB,QAAA,IAAI,KAAK,eAAe;AACxB,QAAA,IAAI,KAAK,cAAc;QACvB,IAAI,KAAK,mBAAmB,EAC/B;AACL,CAAC;AAEK,SAAU,cAAc,CAAC,IAAY,EAAA;AACvC,IAAA,OAAO,IAAI,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,CAAA;AAC3D,CAAC;AAEK,SAAU,UAAU,CAAC,IAAY,EAAA;AACnC,IAAA,IAAI,IAAI,IAAI,oBAAoB,IAAI,IAAI,IAAI,oBAAoB,EAAE;AAC9D,QAAA,OAAO,IAAI,GAAG,oBAAoB,GAAG,EAAE,CAAA;AAC1C,KAAA;AACD,IAAA,IAAI,IAAI,IAAI,sBAAsB,IAAI,IAAI,IAAI,sBAAsB,EAAE;AAClE,QAAA,OAAO,IAAI,GAAG,sBAAsB,GAAG,EAAE,CAAA;AAC5C,KAAA;IACD,OAAO,IAAI,GAAG,UAAU,CAAA;AAC5B,CAAC;AAEK,SAAU,eAAe,CAAC,IAAY,EAAA;AACxC,IAAA,OAAO,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAA;AAC3C,CAAC;AAEK,SAAU,gBAAgB,CAAC,IAAY,EAAA;AACzC,IAAA,OAAO,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAA;AAC3C,CAAC;AAEe,SAAA,oBAAoB,CAAC,IAAY,EAAE,KAAa,EAAA;AAC5D,IAAA,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,OAAO,CAAA;AAC/D;;AC5IA,MAAM,UAAU,GAAG;AACf,IAAA,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,CAAS,EAAA;AAChC,QAAA,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;KACxC;AACD,IAAA,KAAK,CAAC,CAAS,EAAA;AACX,QAAA,OAAO,CAAC,CAAA;KACX;CACJ,CAAA;AACD,MAAM,WAAW,GAAG;AAChB,IAAA,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,CAAS,EAAA;AAChC,QAAA,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAA;KAC1C;AACD,IAAA,KAAK,CAAC,CAAS,EAAA;QACX,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAA;KAC5B;CACJ,CAAA;MAEY,MAAM,CAAA;AAAnB,IAAA,WAAA,GAAA;QACY,IAAK,CAAA,KAAA,GAAG,UAAU,CAAA;QAElB,IAAE,CAAA,EAAA,GAAG,EAAE,CAAA;QAEP,IAAE,CAAA,EAAA,GAAG,CAAC,CAAA;QAEN,IAAI,CAAA,IAAA,GAAG,CAAC,CAAA;QAER,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC,CAAA;QAET,IAAG,CAAA,GAAA,GAAG,CAAC,CAAA;QAEP,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC,CAAA;QAET,IAAG,CAAA,GAAA,GAAG,CAAC,CAAA;QAEP,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC,CAAA;QAET,IAAG,CAAA,GAAA,GAAG,CAAC,CAAA;QAEP,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC,CAAA;KAkGpB;AAhGG,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,EAAE,CAAA;KACjB;AAED,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,EAAE,CAAA;KACjB;AAED,IAAA,IAAW,gBAAgB,GAAA;QACvB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;AAED,IAAA,IAAW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;AAED,IAAA,IAAW,cAAc,GAAA;QACrB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;AAED,IAAA,IAAW,cAAc,GAAA;QACrB,OAAO,IAAI,CAAC,IAAI,CAAA;KACnB;AAEM,IAAA,KAAK,CACR,MAAc,EACd,KAAa,EACb,GAAW,EACX,KAAc,EAAA;AAEd,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,WAAW,GAAG,UAAU,CAAA;AAC7C,QAAA,IAAI,CAAC,EAAE,GAAG,MAAM,CAAA;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KACrB;AAEM,IAAA,MAAM,CAAC,KAAa,EAAA;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAA;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACzD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACpE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CACf,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CACzC,CAAA;KACJ;IAEM,OAAO,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,YAAA,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAA;AACnB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;AACrB,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;AACnB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CACf,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAC3C,CAAA;AACJ,SAAA;KACJ;AAEM,IAAA,GAAG,CAAC,EAAU,EAAA;AACjB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAEM,IAAI,CAAC,GAAW,EAAE,GAAW,EAAA;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;YACxC,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;AAEM,IAAA,IAAI,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;AACJ;;ACtIK,MAAO,iBAAkB,SAAQ,WAAW,CAAA;AAG9C,IAAA,WAAA,CACI,MAAoC,EACpC,KAAiD,EACjD,KAAa,EACb,OAAe,EAAA;QAEf,IAAI,MAAM,GAAG,EAAE,CAAA;AACf,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC3B,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;AAC7D,YAAA,IAAI,OAAO,EAAE;AACT,gBAAA,MAAM,GAAG,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAA;AAC1B,aAAA;AACJ,SAAA;AAAM,aAAA,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAClC,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;YAC7D,MAAM,SAAS,GAAG,CAAA,EAAG,KAAK,CAAC,OAAO,GAAG,GAAG,GAAG,EAAE,CAAA,EACzC,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,EAC9B,CAAA,CAAE,CAAA;AACF,YAAA,MAAM,GAAG,CAAM,GAAA,EAAA,OAAO,CAAI,CAAA,EAAA,SAAS,EAAE,CAAA;AACxC,SAAA;AAED,QAAA,KAAK,CAAC,CAA6B,0BAAA,EAAA,MAAM,KAAK,OAAO,CAAA,CAAE,CAAC,CAAA;AACxD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;KACrB;AACJ;;AC5BD,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACpC,aAAa;IACb,uBAAuB;IACvB,6BAA6B;IAC7B,yBAAyB;IACzB,wBAAwB;IACxB,wBAAwB;IACxB,WAAW;AACd,CAAA,CAAC,CAAA;AAEc,SAAA,kCAAkC,CAC9C,OAAe,EACf,KAAa,EAAA;IAEb,OAAO,OAAO,IAAI,IAAI,IAAI,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAChE;;ACyEA,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC7B,iBAAiB;IACjB,WAAW;IACX,eAAe;IACf,SAAS;IACT,QAAQ;IACR,SAAS;IACT,aAAa;IACb,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,aAAa;AAChB,CAAA,CAAC,CAAA;AAEF,MAAM,8CAA8C,GAAG,IAAI,GAAG,CAAC;IAC3D,SAAS;IACT,gBAAgB;IAChB,WAAW;IACX,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,KAAK;IACL,SAAS;IACT,KAAK;IACL,SAAS;IACT,cAAc;IACd,WAAW;IACX,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,YAAY;IACZ,KAAK;AACR,CAAA,CAAC,CAAA;AAEF,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAC;IACvC,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,OAAO;IACP,YAAY;IACZ,eAAe;IACf,aAAa;AAChB,CAAA,CAAC,CAAA;AAEF,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC;IAC1C,SAAS;IACT,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,YAAY;IACZ,KAAK;IACL,KAAK;IACL,SAAS;IACT,cAAc;IACd,WAAW;IACX,iBAAiB;IACjB,aAAa;IACb,YAAY;IACZ,KAAK;AACR,CAAA,CAAC,CAAA;AAEF,SAAS,iBAAiB,CAAC,EAAU,EAAA;AAEjC,IAAA,OAAO,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACnC,CAAC;AAED,SAAS,2CAA2C,CAAC,EAAU,EAAA;AAE3D,IAAA,OAAO,8CAA8C,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,yBAAyB,CAAC,EAAU,EAAA;AAEzC,IAAA,OAAO,0BAA0B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC7C,CAAC;AAED,SAAS,4BAA4B,CAAC,EAAU,EAAA;AAE5C,IAAA,OAAO,6BAA6B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAChD,CAAC;AAUD,SAAS,qBAAqB,CAAC,EAAU,EAAA;AACrC,IAAA,OAAO,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,QAAQ,CAAA;AACjE,CAAC;AAWD,SAAS,oBAAoB,CAAC,EAAU,EAAA;AACpC,IAAA,QACI,YAAY,CAAC,EAAE,CAAC;AAChB,QAAA,EAAE,KAAK,WAAW;AAClB,QAAA,EAAE,KAAK,qBAAqB;QAC5B,EAAE,KAAK,iBAAiB,EAC3B;AACL,CAAC;AAED,SAAS,8BAA8B,CAAC,EAAU,EAAA;IAC9C,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAA;AAC/C,CAAC;AAED,SAAS,+BAA+B,CAAC,EAAU,EAAA;IAC/C,OAAO,8BAA8B,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,EAAE,CAAC,CAAA;AACnE,CAAC;MA4YY,eAAe,CAAA;AAkCxB,IAAA,WAAA,CAAmB,OAAiC,EAAA;AA/BnC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,MAAM,EAAE,CAAA;QAE/B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAA;QAEpB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAA;QAExB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAA;QAEd,IAAa,CAAA,aAAA,GAAG,CAAC,CAAA;AAEjB,QAAA,IAAA,CAAA,UAAU,GAAG;AACjB,YAAA,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,MAAM,CAAC,iBAAiB;SAChC,CAAA;QAEO,IAAa,CAAA,aAAA,GAAG,EAAE,CAAA;QAElB,IAA4B,CAAA,4BAAA,GAAG,KAAK,CAAA;QAEpC,IAAmB,CAAA,mBAAA,GAAG,CAAC,CAAA;AAEvB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;AAE/B,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAA;QAEvC,IAAO,CAAA,OAAA,GAAwC,IAAI,CAAA;QAOvD,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,OAAO,GAAK,EAA8B,CAAA;KAC7D;IAQM,eAAe,CAClB,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAAA;AAE3B,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AACtD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QAC/D,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;AAE9B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAChE,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;YAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YACnD,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;AAClD,YAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE;gBAC3D,OAAO;gBACP,WAAW;AACd,aAAA,CAAC,CAAA;AACL,SAAA;aAAM,IAAI,KAAK,IAAI,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AACtB,SAAA;AAAM,aAAA;YACH,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;AACrD,YAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA;AAC5C,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;KAClC;IAQM,aAAa,CAChB,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAAA;AAE3B,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;QACpD,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;KACjD;AAgCM,IAAA,eAAe,CAClB,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAC3B,eAMkB,SAAS,EAAA;AAE3B,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QACtD,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAA;KACjE;AAEO,IAAA,uBAAuB,CAC3B,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAC3B,eAMkB,SAAS,EAAA;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;AAE5D,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAA;AACpC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAA;QAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAA;QAErB,IACI,CAAC,IAAI,CAAC,MAAM;YACZ,IAAI,CAAC,WAAW,IAAI,IAAI;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAC3B;AACE,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AAClB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAClB,IAAI,CAAC,cAAc,EAAE,CAAA;AACxB,SAAA;KACJ;AAEO,IAAA,qBAAqB,CACzB,MAAc,EACd,KAAa,EACb,GAAW,EAAA;AAEX,QAAA,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;QACvC,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,UAAU,GAAG,KAAK,CAAA;QACtB,IAAI,WAAW,GAAG,KAAK,CAAA;QACvB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;YAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AAEjC,YAAA,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACzB,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAoB,iBAAA,EAAA,MAAM,CAAC,CAAC,CAAC,CAAG,CAAA,CAAA,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;AACjE,aAAA;AACD,YAAA,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAEvB,IAAI,IAAI,KAAK,oBAAoB,EAAE;gBAC/B,MAAM,GAAG,IAAI,CAAA;AAChB,aAAA;iBAAM,IAAI,IAAI,KAAK,oBAAoB,EAAE;gBACtC,UAAU,GAAG,IAAI,CAAA;AACpB,aAAA;iBAAM,IAAI,IAAI,KAAK,oBAAoB,EAAE;gBACtC,SAAS,GAAG,IAAI,CAAA;AACnB,aAAA;iBAAM,IACH,IAAI,KAAK,oBAAoB;AAC7B,gBAAA,IAAI,CAAC,WAAW,IAAI,IAAI,EAC1B;gBACE,OAAO,GAAG,IAAI,CAAA;AACjB,aAAA;iBAAM,IACH,IAAI,KAAK,oBAAoB;AAC7B,gBAAA,IAAI,CAAC,WAAW,IAAI,IAAI,EAC1B;gBACE,MAAM,GAAG,IAAI,CAAA;AAChB,aAAA;iBAAM,IACH,IAAI,KAAK,oBAAoB;AAC7B,gBAAA,IAAI,CAAC,WAAW,IAAI,IAAI,EAC1B;gBACE,MAAM,GAAG,IAAI,CAAA;AAChB,aAAA;iBAAM,IACH,IAAI,KAAK,oBAAoB;AAC7B,gBAAA,IAAI,CAAC,WAAW,IAAI,IAAI,EAC1B;gBACE,UAAU,GAAG,IAAI,CAAA;AACpB,aAAA;iBAAM,IACH,IAAI,KAAK,oBAAoB;AAC7B,gBAAA,IAAI,CAAC,WAAW,IAAI,IAAI,EAC1B;gBACE,WAAW,GAAG,IAAI,CAAA;AACrB,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAiB,cAAA,EAAA,MAAM,CAAC,CAAC,CAAC,CAAG,CAAA,CAAA,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;AAC9D,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE;YAC3B,MAAM;YACN,UAAU;YACV,SAAS;YACT,OAAO;YACP,MAAM;YACN,MAAM;YACN,UAAU;YACV,WAAW;AACd,SAAA,CAAC,CAAA;KACL;IAEO,uBAAuB,CAC3B,YAMe,EACf,SAAiB,EAAA;QAMjB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,WAAW,GAAG,KAAK,CAAA;AACvB,QAAA,IAAI,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC1C,YAAA,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;AAClC,gBAAA,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;AACvC,gBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC1B,oBAAA,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;AAClD,iBAAA;AACJ,aAAA;AAAM,iBAAA;gBAEH,OAAO,GAAG,YAAY,CAAA;AACzB,aAAA;AACJ,SAAA;QAED,IAAI,OAAO,IAAI,WAAW,EAAE;AAGxB,YAAA,IAAI,CAAC,KAAK,CAAC,kCAAkC,EAAE;gBAC3C,KAAK,EAAE,SAAS,GAAG,CAAC;gBACpB,OAAO;gBACP,WAAW;AACd,aAAA,CAAC,CAAA;AACL,SAAA;AAED,QAAA,MAAM,WAAW,GAAG,OAAO,IAAI,WAAW,CAAA;QAC1C,MAAM,KAAK,GACP,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI;YACpC,WAAW;AAGX,YAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAA;QAC7D,MAAM,eAAe,GAAG,WAAW,CAAA;AAEnC,QAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;KACjD;AAGD,IAAA,IAAY,MAAM,GAAA;AACd,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,CAAA;KAC5D;AAED,IAAA,IAAY,WAAW,GAAA;;QACnB,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,iBAAiB,CAAA;KACxD;AAEO,IAAA,cAAc,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AACtC,SAAA;KACJ;IAEO,cAAc,CAAC,KAAa,EAAE,GAAW,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC3C,SAAA;KACJ;AAEO,IAAA,aAAa,CACjB,KAAa,EACb,GAAW,EACX,KASC,EAAA;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AACjD,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CACjB,KAAK,EACL,GAAG,EACH,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,CACnB,CAAA;AACJ,SAAA;KACJ;AAEO,IAAA,cAAc,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;AAC9B,YAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AACtC,SAAA;KACJ;IAEO,cAAc,CAAC,KAAa,EAAE,GAAW,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC3C,SAAA;KACJ;AAEO,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;AAC1C,SAAA;KACJ;IAEO,kBAAkB,CAAC,KAAa,EAAE,GAAW,EAAA;AACjD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC/C,SAAA;KACJ;IAEO,kBAAkB,CAAC,KAAa,EAAE,KAAa,EAAA;AACnD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACjD,SAAA;KACJ;AAEO,IAAA,kBAAkB,CACtB,KAAa,EACb,GAAW,EACX,KAAa,EAAA;AAEb,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AACtD,SAAA;KACJ;AAEO,IAAA,YAAY,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;AACpC,SAAA;KACJ;IAEO,YAAY,CAAC,KAAa,EAAE,GAAW,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACzC,SAAA;KACJ;IAEO,qBAAqB,CAAC,KAAa,EAAE,IAAmB,EAAA;AAC5D,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACnD,SAAA;KACJ;AAEO,IAAA,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,IAAmB,EAAA;AAEnB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;AACxD,SAAA;KACJ;IAEO,YAAY,CAChB,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW,EACX,MAAe,EAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AAC3D,SAAA;KACJ;AAEO,IAAA,0BAA0B,CAC9B,KAAa,EACb,IAAgC,EAChC,MAAe,EAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE;YAC1C,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAChE,SAAA;KACJ;AAEO,IAAA,0BAA0B,CAC9B,KAAa,EACb,GAAW,EACX,IAAgC,EAChC,MAAe,EAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE;AAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AACrE,SAAA;KACJ;AAEO,IAAA,eAAe,CACnB,KAAa,EACb,GAAW,EACX,IAAqB,EAAA;AAErB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;AAClD,SAAA;KACJ;AAEO,IAAA,uBAAuB,CAC3B,KAAa,EACb,GAAW,EACX,IAAY,EACZ,MAAe,EAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAClE,SAAA;KACJ;AAEO,IAAA,iBAAiB,CAAC,KAAa,EAAE,GAAW,EAAE,IAAW,EAAA;AAC7D,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;AACpD,SAAA;KACJ;AAEO,IAAA,oBAAoB,CACxB,KAAa,EACb,GAAW,EACX,IAAgC,EAChC,MAAe,EAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;AACpC,YAAA,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAC/D,SAAA;KACJ;AAEO,IAAA,6BAA6B,CACjC,KAAa,EACb,GAAW,EACX,IAAgB,EAChB,GAAW,EACX,KAAoB,EACpB,MAAe,EACf,OAAgB,EAAA;AAEhB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CACvC,KAAK,EACL,GAAG,EACH,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,EACN,OAAO,CACV,CAAA;AACJ,SAAA;KACJ;AAEO,IAAA,WAAW,CAAC,KAAa,EAAE,GAAW,EAAE,KAAa,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAC/C,SAAA;KACJ;AAEO,IAAA,eAAe,CACnB,KAAa,EACb,GAAW,EACX,GAAoB,EAAA;AAEpB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACjD,SAAA;KACJ;AAEO,IAAA,qBAAqB,CACzB,KAAa,EACb,MAAe,EACf,WAAoB,EAAA;AAEpB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;AAClE,SAAA;KACJ;AAEO,IAAA,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,MAAe,EAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AAC1D,SAAA;KACJ;AAEO,IAAA,qBAAqB,CACzB,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW,EAAA;AAEX,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;AACrC,YAAA,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAC5D,SAAA;KACJ;IAEO,mBAAmB,CAAC,KAAa,EAAE,GAAW,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE;YACnC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAChD,SAAA;KACJ;IAEO,kBAAkB,CAAC,KAAa,EAAE,GAAW,EAAA;AACjD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC/C,SAAA;KACJ;AAEO,IAAA,6BAA6B,CAAC,KAAa,EAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAA;AACrD,SAAA;KACJ;IAEO,6BAA6B,CAAC,KAAa,EAAE,GAAW,EAAA;AAC5D,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC1D,SAAA;KACJ;IAEO,wBAAwB,CAAC,KAAa,EAAE,KAAa,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACvD,SAAA;KACJ;AAEO,IAAA,wBAAwB,CAC5B,KAAa,EACb,GAAW,EACX,KAAa,EAAA;AAEb,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAC5D,SAAA;KACJ;AAMD,IAAA,IAAY,KAAK,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;KAC5B;AAED,IAAA,IAAY,gBAAgB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;KACvC;AAED,IAAA,IAAY,aAAa,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;KACpC;AAED,IAAA,IAAY,cAAc,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAA;KACrC;AAED,IAAA,IAAY,cAAc,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAA;KACrC;AAEO,IAAA,KAAK,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW,EAAA;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;KAC5D;AAEO,IAAA,MAAM,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KAC7B;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;KACzB;AAEO,IAAA,GAAG,CAAC,EAAU,EAAA;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;KAC9B;IAEO,IAAI,CAAC,GAAW,EAAE,GAAW,EAAA;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;KACrC;AAEO,IAAA,IAAI,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KAC1C;IAIO,KAAK,CACT,OAAe,EACf,OAAsE,EAAA;;AAEtE,QAAA,MAAM,IAAI,iBAAiB,CACvB,IAAI,CAAC,OAAQ,EACb;AACI,YAAA,OAAO,EACH,CAAA,EAAA,GAAA,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,oCACf,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACjD,YAAA,WAAW,EAAE,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC,gBAAgB;AAC7D,SAAA,EACD,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC,KAAK,EAC5B,OAAO,CACV,CAAA;KACJ;IAGO,aAAa,GAAA;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,OAAO,GAAG,KAAK,CAAA;QAEnB,SAAS;AACL,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAChC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE;gBACnC,MAAM,IAAI,GAAG,OAAO,GAAG,iBAAiB,GAAG,oBAAoB,CAAA;AAC/D,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAA,CAAE,CAAC,CAAA;AACrC,aAAA;AACD,YAAA,IAAI,OAAO,EAAE;gBACT,OAAO,GAAG,KAAK,CAAA;AAClB,aAAA;iBAAM,IAAI,EAAE,KAAK,eAAe,EAAE;gBAC/B,OAAO,GAAG,IAAI,CAAA;AACjB,aAAA;iBAAM,IAAI,EAAE,KAAK,mBAAmB,EAAE;gBACnC,OAAO,GAAG,IAAI,CAAA;AACjB,aAAA;iBAAM,IAAI,EAAE,KAAK,oBAAoB,EAAE;gBACpC,OAAO,GAAG,KAAK,CAAA;AAClB,aAAA;AAAM,iBAAA,IACH,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,OAAO;iBAC1B,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,EAC3C;gBACE,MAAK;AACR,aAAA;YACD,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAA;KAC9B;IASO,cAAc,GAAA;AAClB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;AACtD,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;AACxB,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAA;AAEhC,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAA;AAEzB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAChC,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,EAAE;YAC9B,IAAI,EAAE,KAAK,iBAAiB,EAAE;AAC1B,gBAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;AAC9B,aAAA;YACD,IAAI,EAAE,KAAK,eAAe,EAAE;AACxB,gBAAA,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;AACrC,aAAA;AACD,YAAA,IAAI,EAAE,KAAK,oBAAoB,IAAI,EAAE,KAAK,mBAAmB,EAAE;AAC3D,gBAAA,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;AACzC,aAAA;YACD,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA;AAC5C,SAAA;AACD,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC7B,gBAAA,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;AACjD,aAAA;AACJ,SAAA;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KACzC;IAMO,oBAAoB,GAAA;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,EAAE,GAAG,CAAC,CAAA;QAEV,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,MAAM,CAAC,CAAC,EAAE;AACxC,YAAA,IAAI,OAAO,EAAE;gBACT,OAAO,GAAG,KAAK,CAAA;AAClB,aAAA;iBAAM,IAAI,EAAE,KAAK,eAAe,EAAE;gBAC/B,OAAO,GAAG,IAAI,CAAA;AACjB,aAAA;iBAAM,IAAI,EAAE,KAAK,mBAAmB,EAAE;gBACnC,OAAO,GAAG,IAAI,CAAA;AACjB,aAAA;iBAAM,IAAI,EAAE,KAAK,oBAAoB,EAAE;gBACpC,OAAO,GAAG,KAAK,CAAA;AAClB,aAAA;iBAAM,IACH,EAAE,KAAK,gBAAgB;AACvB,gBAAA,CAAC,OAAO;AACR,iBAAC,IAAI,CAAC,aAAa,KAAK,aAAa;AACjC,qBAAC,IAAI,CAAC,cAAc,KAAK,cAAc;wBACnC,IAAI,CAAC,cAAc,KAAK,WAAW;AACnC,wBAAA,IAAI,CAAC,cAAc,KAAK,gBAAgB,CAAC,CAAC,EACpD;gBACE,KAAK,IAAI,CAAC,CAAA;AACb,aAAA;YACD,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAClB,QAAA,OAAO,KAAK,CAAA;KACf;IAUO,kBAAkB,GAAA;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,CAAC,GAAG,CAAC,CAAA;AAET,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAC9B,GAAG;AACC,YAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAA;AAC/B,SAAA,QAAQ,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAC;AAEjC,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;AACzC,SAAA;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KAC7C;AAUO,IAAA,kBAAkB,CAAC,CAAS,EAAA;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAExB,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACjC,OAAO,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AAE1D,SAAA;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;KAChD;IAmBO,WAAW,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;AAClC,YAAA,QACI,IAAI,CAAC,gBAAgB,EAAE;iBACtB,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC,EAC3D;AACJ,SAAA;AACD,QAAA,QACI,CAAC,IAAI,CAAC,gBAAgB,EAAE;aACnB,CAAC,IAAI,CAAC,4BAA4B;AAC/B,gBAAA,IAAI,CAAC,yBAAyB,EAAE,CAAC;aACxC,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC,EACnE;KACJ;IAEO,yBAAyB,GAAA;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAA;AACxB,QAAA,OAAO,IAAI,CAAA;KACd;IAyBO,gBAAgB,GAAA;AACpB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAA;AAGzC,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC7B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAChD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACvB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAC9C,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,sBAAsB,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAC7D,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,oBAAoB,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAC9D,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;QAGD,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE;AAC5C,YAAA,MAAM,UAAU,GACZ,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YACxD,IAAI,MAAM,GAAG,KAAK,CAAA;AAClB,YAAA,IACI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;iBACpB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EACvC;gBACE,MAAM,IAAI,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAA;gBACpD,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;gBACpD,IAAI,CAAC,kBAAkB,EAAE,CAAA;AACzB,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;AAC9B,oBAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;AACnC,iBAAA;gBACD,IAAI,CAAC,4BAA4B,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;AAC/D,gBAAA,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAChE,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACf;IAmBO,iBAAiB,CAAC,SAAS,GAAG,KAAK,EAAA;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,MAAM,GAAG,KAAK,CAAA;AAGlB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACpB,GAAG,GAAG,CAAC,CAAA;AACP,YAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAA;AACjC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAC5B,GAAG,GAAG,CAAC,CAAA;AACP,YAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAA;AACjC,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YAChC,GAAG,GAAG,CAAC,CAAA;YACP,GAAG,GAAG,CAAC,CAAA;AACV,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE;YAC3C,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAC;AACpC,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,KAAK,CAAA;AACf,SAAA;QAGD,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAEjC,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AACzD,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;AAaO,IAAA,mBAAmB,CAAC,OAAgB,EAAA;AACxC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;AAC9B,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACzB,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;gBAC9B,IAAI,GAAG,GAAG,GAAG,CAAA;AACb,gBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACjB,oBAAA,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE;0BACvB,IAAI,CAAC,aAAa;AACpB,0BAAE,MAAM,CAAC,iBAAiB,CAAA;AACjC,iBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;AAC/B,oBAAA,IAAI,CAAC,OAAO,IAAI,GAAG,GAAG,GAAG,EAAE;AACvB,wBAAA,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;AACtD,qBAAA;oBACD,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AAC9B,oBAAA,OAAO,IAAI,CAAA;AACd,iBAAA;AACJ,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;AAChD,gBAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AACtC,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAeO,WAAW,GAAA;AACf,QAAA,QACI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,+BAA+B,EAAE;AACtC,YAAA,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACrC,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,qBAAqB,EAAE,EAC/B;KACJ;IASO,UAAU,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACzD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IASO,+BAA+B,GAAA;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AAC3B,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC1B,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IASO,uBAAuB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE;AACnD,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAA;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;AACnC,aAAA;YACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;AACpC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IASO,qBAAqB,GAAA;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC5B,IAAI,IAAI,GAAkB,IAAI,CAAA;AAC9B,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;AAC1B,gBAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAC9B,oBAAA,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;AAC5B,iBAAA;AACJ,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,aAAa,EAAE;AAChD,gBAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;AAC9B,aAAA;AAED,YAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACvC,IAAI,CAAC,kBAAkB,EAAE,CAAA;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;AACnC,aAAA;YACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAEnD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAkBO,mBAAmB,GAAA;AACvB,QAAA,QACI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,+BAA+B,EAAE;YACtC,IAAI,CAAC,gCAAgC,EAAE;AACvC,YAAA,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACrC,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,EAAE;YAC5B,IAAI,CAAC,8BAA8B,EAAE;AACrC,YAAA,IAAI,CAAC,+BAA+B,EAAE,EACzC;KACJ;IASO,gCAAgC,GAAA;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IACI,IAAI,CAAC,gBAAgB,KAAK,eAAe;AACzC,YAAA,IAAI,CAAC,aAAa,KAAK,oBAAoB,EAC7C;AACE,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAC1C,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;AACpD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAaO,8BAA8B,GAAA;AAClC,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAgB,IAAI,CAAC,EAAE;AAC/C,YAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAWO,uBAAuB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE;YACrC,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACvC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAWO,+BAA+B,GAAA;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAChC,IACI,EAAE,KAAK,CAAC,CAAC;AACT,YAAA,EAAE,KAAK,iBAAiB;AACxB,YAAA,EAAE,KAAK,WAAW;AAClB,YAAA,EAAE,KAAK,eAAe;AACtB,YAAA,EAAE,KAAK,SAAS;AAChB,YAAA,EAAE,KAAK,QAAQ;AACf,YAAA,EAAE,KAAK,SAAS;AAChB,YAAA,EAAE,KAAK,aAAa;AACpB,YAAA,EAAE,KAAK,gBAAgB;AACvB,YAAA,EAAE,KAAK,iBAAiB;AACxB,YAAA,EAAE,KAAK,mBAAmB;YAC1B,EAAE,KAAK,aAAa,EACtB;YACE,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACvC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAYO,qBAAqB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;AACzB,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;oBAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACxC,oBAAA,OAAO,IAAI,CAAA;AACd,iBAAA;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;AAC7C,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;AAC9B,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAiBO,iBAAiB,GAAA;QACrB,IACI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,2BAA2B,EAAE;YAClC,IAAI,CAAC,sBAAsB,EAAE;aAC5B,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAC3C;AACE,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAC/B,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAWO,oBAAoB,GAAA;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACzB,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA;AAC5B,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC/B,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AAC9C,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;AAClC,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAC/B,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAqBO,2BAA2B,GAAA;;AAC/B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAExB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;AAMhE,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;AAM/D,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;AAMhE,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;AAM/D,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAM/D,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAM9D,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;QAED,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IACI,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,WAAW,IAAI,IAAI;AACxB,aAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;iBAC1B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAClD;AACE,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;YACvB,IAAI,MAAM,GACN,IAAI,CAAA;AACR,YAAA,IACI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC5B,iBAAC,MAAM,GAAG,IAAI,CAAC,iCAAiC,EAAE,CAAC;AACnD,gBAAA,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAC/B;AACE,gBAAA,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AAC1B,oBAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AACtC,iBAAA;AAED,gBAAA,IAAI,CAAC,6BAA6B,CAC9B,KAAK,GAAG,CAAC,EACT,IAAI,CAAC,KAAK,EACV,UAAU,EACV,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,KAAK,EACZ,MAAM,EACN,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK,CAC1B,CAAA;AAeD,gBAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;AAC/C,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AACtC,SAAA;AAED,QAAA,OAAO,IAAI,CAAA;KACd;IAiBO,sBAAsB,GAAA;AAC1B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IACI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,8BAA8B,EAAE;aACpC,CAAC,IAAI,CAAC,MAAM;gBACT,CAAC,IAAI,CAAC,YAAY;gBAClB,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACxC,IAAI,CAAC,iBAAiB,EAAE,EAC1B;AACE,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AAC3D,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IASO,iBAAiB,GAAA;AACrB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACrB,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAA;AACpC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AACvC,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AACtD,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;AACxC,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAYO,qBAAqB,GAAA;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAC1C,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;AAChE,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;AAC1C,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AACjC,gBAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC,EAAE;AAC9B,oBAAA,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;AAC7C,iBAAA;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;AACrD,aAAA;AACD,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE;AACpC,gBAAA,IAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;AAC5D,aAAA;YAED,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAQrD,YAAA,OAAO,MAAM,CAAA;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;IAmBO,oBAAoB,GAAA;QACxB,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,oBAAoB,EAAE;AAOhD,gBAAA,OAAO,EAAE,CAAA;AACZ,aAAA;AACD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAA;AAK/C,YAAA,OAAO,MAAM,CAAA;AAChB,SAAA;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAA;QAC/C,SAAS;AAEL,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAA;AAC7B,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBAC1B,MAAK;AACR,aAAA;AACD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;AAG9B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;gBACzB,SAAQ;AACX,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;AAG1D,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBAC1B,MAAK;AACR,aAAA;AACD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;YAG9B,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AAC1B,gBAAA,IAAI,MAAM,EAAE;AACR,oBAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;AACxC,iBAAA;gBACD,SAAQ;AACX,aAAA;YACD,IAAI,GAAG,GAAG,GAAG,EAAE;AACX,gBAAA,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;AACtD,aAAA;AAED,YAAA,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAC/D,SAAA;AAMD,QAAA,OAAO,EAAE,CAAA;KACZ;IAiBO,gBAAgB,GAAA;AACpB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAEhC,IACI,EAAE,KAAK,CAAC,CAAC;AACT,YAAA,EAAE,KAAK,eAAe;YACtB,EAAE,KAAK,oBAAoB,EAC7B;YACE,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AACvB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AACvD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AAC3B,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC3B,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;YACD,IACI,CAAC,IAAI,CAAC,MAAM;AACZ,gBAAA,IAAI,CAAC,gBAAgB,KAAK,oBAAoB,EAChD;AACE,gBAAA,IAAI,CAAC,aAAa,GAAG,eAAe,CAAA;AACpC,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AACvD,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;AAClC,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAC/B,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACf;IAmBO,kBAAkB,GAAA;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAGxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AAC3D,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;QAGD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AAC7C,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAA;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AAC3D,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;QAGD,IAAI,EAAE,GAAG,CAAC,CAAA;QACV,IACI,CAAC,IAAI,CAAC,MAAM;YACZ,CAAC,IAAI,CAAC,YAAY;YAClB,IAAI,CAAC,gBAAgB,KAAK,oBAAoB;AAC9C,aAAC,cAAc,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,QAAQ,CAAC,EAChE;YACE,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAA;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AAC3D,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AAED,QAAA,QACI,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;AAC3C,YAAA,IAAI,CAAC,sBAAsB,EAAE,EAChC;KACJ;IAoBO,yBAAyB,GAAA;AAC7B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IAAI,iBAAiB,GAAwB,KAAK,CAAA;QAClD,IAAI,MAAM,GAAoC,IAAI,CAAA;AAClD,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;AACjC,YAAA,IAAI,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,EAAE;AAE9C,gBAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA;AAC/B,gBAAA,OAAO,EAAE,CAAA;AACZ,aAAA;YAOD,iBAAiB,GAAG,KAAK,CAAA;AAC5B,SAAA;aAAM,KAAK,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,GAAG;AACjD,YAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAA;AAC/C,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAChC,IAAI,EAAE,KAAK,eAAe,EAAE;gBAExB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAC/B,aAAA;AACD,YAAA,IACI,EAAE,KAAK,IAAI,CAAC,aAAa;gBACzB,2CAA2C,CAAC,EAAE,CAAC,EACjD;AAEE,gBAAA,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;AACzD,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;AACrD,SAAA;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;AAEjC,YAAA,OACI,IAAI,CAAC,gBAAgB,KAAK,SAAS;AACnC,iBAAC,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAC1C;gBACE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3C,gBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;oBAC3B,iBAAiB,GAAG,KAAK,CAAA;AAC5B,iBAAA;gBACD,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;oBACjC,SAAQ;AACX,iBAAA;gBAaD,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAC/B,aAAA;AAED,YAAA,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;AACrD,SAAA;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE;AAEvC,YAAA,OAAO,IAAI,CAAC,sBAAsB,EAAE,EAAE;gBAClC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE;oBACvC,SAAQ;AACX,iBAAA;gBAQD,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAC/B,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;AACrD,SAAA;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAA;KAC5D;AAWO,IAAA,sBAAsB,CAC1B,UAAoC,EAAA;AAGpC,QAAA,IAAI,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAA;QACpD,SAAS;AACL,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,YAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;AACjC,gBAAA,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,CAAA;gBAC5C,SAAQ;AACX,aAAA;AACD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;AAC5C,YAAA,IAAI,MAAM,EAAE;gBACR,IAAI,MAAM,CAAC,iBAAiB,EAAE;oBAC1B,iBAAiB,GAAG,IAAI,CAAA;AAC3B,iBAAA;gBACD,SAAQ;AACX,aAAA;YACD,MAAK;AACR,SAAA;QAYD,OAAO,EAAE,iBAAiB,EAAE,CAAA;KAC/B;AAaO,IAAA,gCAAgC,CAAC,KAAa,EAAA;AAClD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAA;AAC/B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;AACjC,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;gBAG9B,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AAC1B,oBAAA,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;AACxC,iBAAA;gBACD,IAAI,GAAG,GAAG,GAAG,EAAE;AACX,oBAAA,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;AACtD,iBAAA;AACD,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACvD,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AAC5B,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAaO,sBAAsB,GAAA;QAC1B,IAAI,MAAM,GAAoC,IAAI,CAAA;QAClD,KAAK,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG;AAItC,YAAA,OAAO,MAAM,CAAA;AAChB,SAAA;QACD,KAAK,MAAM,GAAG,IAAI,CAAC,6BAA6B,EAAE,GAAG;AAIjD,YAAA,OAAO,MAAM,CAAA;AAChB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;AAKjC,YAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;IAYO,kBAAkB,GAAA;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAC1C,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAC/C,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;AAC1C,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AACjC,gBAAA,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;AAC7C,aAAA;AACD,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE;AACpC,gBAAA,IAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;AAC5D,aAAA;YACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAQrD,YAAA,OAAO,MAAM,CAAA;AAChB,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AAC3B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAA;AACjD,YAAA,IAAI,MAAM,EAAE;AAIR,gBAAA,OAAO,MAAM,CAAA;AAChB,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;IAaO,6BAA6B,GAAA;AACjC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,IACI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,EACtE;AACE,YAAA,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAA;YAEzC,IAAI,CAAC,GAAG,CAAC,CAAA;YACT,IAAI,iBAAiB,GAAG,KAAK,CAAA;YAC7B,GAAG;gBACC,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE;oBAChD,iBAAiB,GAAG,IAAI,CAAA;AAC3B,iBAAA;AACJ,aAAA,QAAQ,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAC;AAEjC,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;gBAC/B,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;gBAUrD,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAC/B,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;AACtD,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;AAYO,IAAA,kBAAkB,CAAC,CAAS,EAAA;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAExB,IAAI,KAAK,GAAG,CAAC,CAAA;AACb,QAAA,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AACvC,QAAA,OACI,IAAI,CAAC,gBAAgB,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,wBAAwB,EAAE,EACjC;AACE,YAAA,KAAK,EAAE,CAAA;AACV,SAAA;QACD,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AAUnD,QAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,KAAK,CAAC,EAAE,CAAA;KAC5C;IAcO,wBAAwB,GAAA;AAC5B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAChC,QAAA,IAEI,EAAE,KAAK,IAAI,CAAC,aAAa;AACzB,YAAA,CAAC,2CAA2C,CAAC,EAAE,CAAC,EAClD;YACE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,EAAE;AAC7C,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;gBACvB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AACvD,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AAC3B,YAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;AAC/B,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,4BAA4B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AACrD,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAA;gBAC1C,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AACvD,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,gBAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;AAC9B,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AACvD,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAWO,YAAY,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;YAC1B,IAAI,IAAI,CAAC,uBAAuB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;AAC/D,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAC3C,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAaO,uBAAuB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAC7D,YAAA,OAAO,IAAI,CAAC,uBAAuB,EAAE,EAAE;gBACnC,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACjE,aAAA;AACD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAgBO,wBAAwB,GAAA;AAC5B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;AACjE,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,IACI,EAAE,KAAK,eAAe;AACtB,YAAA,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,EACjD;AACE,YAAA,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;AAC1B,SAAA;AAAM,aAAA,IACH,UAAU;YACV,eAAe,CAAC,EAAE,CAAC;AACnB,YAAA,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EACzC;YACE,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACpD,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AAED,QAAA,IAAI,qBAAqB,CAAC,EAAE,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AACvB,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAcO,uBAAuB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAA;AACjE,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,IACI,EAAE,KAAK,eAAe;AACtB,YAAA,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,EACjD;AACE,YAAA,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;AAC1B,SAAA;AAAM,aAAA,IACH,UAAU;YACV,eAAe,CAAC,EAAE,CAAC;AACnB,YAAA,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EACzC;YACE,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACpD,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AAED,QAAA,IAAI,oBAAoB,CAAC,EAAE,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AACvB,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAUO,iBAAiB,GAAA;AACrB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACzB,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAUO,OAAO,GAAA;AACX,QAAA,IACI,IAAI,CAAC,gBAAgB,KAAK,UAAU;AACpC,YAAA,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EACrC;AACE,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;YACtB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAYO,gBAAgB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;AAC9B,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;AAC9B,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,eAAe,CAAA;AACpC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAA;AACzC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,eAAe,CAAA;AACpC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAaO,gBAAgB,GAAA;AACpB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAChC,QAAA,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAA;AAC9B,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAiBO,8BAA8B,CAAC,UAAU,GAAG,KAAK,EAAA;AACrD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,MAAM,KAAK,GAAG,UAAU,IAAI,IAAI,CAAC,YAAY,CAAA;AAE7C,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IACI,CAAC,KAAK,IAAI,IAAI,CAAC,mCAAmC,EAAE;AACpD,gBAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACzB,iBAAC,KAAK,IAAI,IAAI,CAAC,+BAA+B,EAAE,CAAC,EACnD;AACE,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;AACtB,gBAAA,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;AACvC,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACf;IAUO,mCAAmC,GAAA;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAExB,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;AAC3B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAA;YAC/B,IACI,eAAe,CAAC,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;AACzB,gBAAA,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;AAC9B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAC3B;AACE,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAA;AAChC,gBAAA,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;oBACzB,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACtD,oBAAA,OAAO,IAAI,CAAA;AACd,iBAAA;AACJ,aAAA;AAED,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACf;IAUO,+BAA+B,GAAA;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAExB,QAAA,IACI,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC5B,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC7B,YAAA,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EACpC;AACE,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAClB,QAAA,OAAO,KAAK,CAAA;KACf;IAkBO,iBAAiB,GAAA;AACrB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAChC,QAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;AAEO,IAAA,qBAAqB,CAAC,EAAU,EAAA;AACpC,QAAA,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;AACX,YAAA,OAAO,KAAK,CAAA;AACf,SAAA;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,OAAO,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,CAAA;AACjD,SAAA;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;AAC3B,SAAA;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO,EAAE,EAAE,KAAK,oBAAoB,IAAI,EAAE,KAAK,oBAAoB,CAAC,CAAA;AACvE,SAAA;QACD,OAAO,EAAE,KAAK,oBAAoB,CAAA;KACrC;IAYO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;AACtB,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAC9B,QAAA,IAAI,EAAE,IAAI,SAAS,IAAI,EAAE,IAAI,UAAU,EAAE;YACrC,GAAG;AACC,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,GAAG,UAAU,CAAC,CAAA;gBAChE,IAAI,CAAC,OAAO,EAAE,CAAA;aACjB,QACG,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,KAAK,UAAU;gBAC1C,EAAE,IAAI,UAAU,EACnB;AACD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAcO,iCAAiC,GAAA;AACrC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAGxB,IAAI,IAAI,CAAC,sBAAsB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACxD,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;AAC9B,YAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;AAChC,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAA;gBAChC,IAAI,sBAAsB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE;oBACtD,OAAO;wBACH,GAAG;wBACH,KAAK,EAAE,KAAK,IAAI,IAAI;qBACvB,CAAA;AACJ,iBAAA;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AACtC,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAGlB,QAAA,IAAI,IAAI,CAAC,iCAAiC,EAAE,EAAE;AAC1C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAA;YACtC,IACI,sBAAsB,CAClB,IAAI,CAAC,WAAW,EAChB,kBAAkB,EAClB,WAAW,CACd,EACH;gBACE,OAAO;AACH,oBAAA,GAAG,EAAE,kBAAkB;oBACvB,KAAK,EAAE,WAAW,IAAI,IAAI;iBAC7B,CAAA;AACJ,aAAA;YACD,IAAI,0BAA0B,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;gBAC3D,OAAO;AACH,oBAAA,GAAG,EAAE,WAAW;AAChB,oBAAA,KAAK,EAAE,IAAI;iBACd,CAAA;AACJ,aAAA;YACD,IACI,IAAI,CAAC,gBAAgB;AACrB,gBAAA,kCAAkC,CAC9B,IAAI,CAAC,WAAW,EAChB,WAAW,CACd,EACH;gBACE,OAAO;AACH,oBAAA,GAAG,EAAE,WAAW;AAChB,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,OAAO,EAAE,IAAI;iBAChB,CAAA;AACJ,aAAA;AACD,YAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AACtC,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;IAYO,sBAAsB,GAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AACvB,QAAA,OAAO,8BAA8B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC1D,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACjE,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,EAAE,CAAA;KACnC;IAYO,uBAAuB,GAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AACvB,QAAA,OAAO,+BAA+B,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC3D,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACjE,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,EAAE,CAAA;KACnC;IAYO,iCAAiC,GAAA;AACrC,QAAA,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAA;KACxC;IAaO,oBAAoB,GAAA;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;AAChC,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;AAC3B,gBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE;AAClC,gBAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAC/B,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAcO,gBAAgB,GAAA;AACpB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AAExB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;AACtB,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,aAAa;gBACd,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAA;KAC9B;IAcO,YAAY,GAAA;AAChB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;AACtB,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,aAAa;gBACd,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAA;KAC9B;IAoBO,4BAA4B,GAAA;AAChC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACtB,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;AAC7B,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACtB,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACjC,oBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA;AAC7D,iBAAA;AAAM,qBAAA;oBACH,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;AACnC,iBAAA;AACJ,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;AAC1B,aAAA;AACD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,OAAO,KAAK,CAAA;KACf;IAWO,aAAa,GAAA;AACjB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAChC,QAAA,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,CAAA;AACd,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,UAAU,CAAA;AACpC,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;AACtB,QAAA,OAAO,KAAK,CAAA;KACf;AAYO,IAAA,iBAAiB,CAAC,MAAc,EAAA;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AAC7B,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;AAChC,YAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACjB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAClB,gBAAA,OAAO,KAAK,CAAA;AACf,aAAA;AACD,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,CAAA;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAA;AACjB,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;AACJ;;ACnwGD,MAAM,aAAa,GAAY,EAAa,CAAA;AAC5C,MAAM,WAAW,GAAU,EAAW,CAAA;AACtC,MAAM,qBAAqB,GAAmB,EAAoB,CAAA;AAElE,SAAS,iBAAiB,CACtB,IAAsC,EAAA;AAEtC,IAAA,QACI,IAAI,CAAC,IAAI,KAAK,WAAW;QACzB,IAAI,CAAC,IAAI,KAAK,cAAc;QAC5B,IAAI,CAAC,IAAI,KAAK,gBAAgB;QAC9B,IAAI,CAAC,IAAI,KAAK,0BAA0B;AACxC,QAAA,IAAI,CAAC,IAAI,KAAK,wBAAwB,EACzC;AACL,CAAC;AAED,MAAM,iBAAiB,CAAA;AAkBnB,IAAA,WAAA,CAAmB,OAA8B,EAAA;;QAbzC,IAAK,CAAA,KAAA,GAAmB,aAAa,CAAA;QAErC,IAAiB,CAAA,iBAAA,GACrB,IAAI,CAAA;QAEA,IAAM,CAAA,MAAA,GAAU,WAAW,CAAA;QAE3B,IAAe,CAAA,eAAA,GAAoB,EAAE,CAAA;QAErC,IAAgB,CAAA,gBAAA,GAAqB,EAAE,CAAA;QAExC,IAAM,CAAA,MAAA,GAAG,EAAE,CAAA;AAGd,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,MAAM,CAAC,CAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,iBAAiB,CAAA;KAC/D;AAED,IAAA,IAAW,OAAO,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;KACpB;AAED,IAAA,IAAW,KAAK,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;KACrB;IAEM,aAAa,CAChB,KAAa,EACb,GAAW,EACX,EACI,MAAM,EACN,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,EACV,WAAW,GAUd,EAAA;QAED,IAAI,CAAC,MAAM,GAAG;AACV,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,MAAM;YACN,UAAU;YACV,SAAS;YACT,OAAO;YACP,MAAM;YACN,MAAM;YACN,UAAU;YACV,WAAW;SACd,CAAA;KACJ;AAEM,IAAA,cAAc,CAAC,KAAa,EAAA;QAC/B,IAAI,CAAC,KAAK,GAAG;AACT,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,IAAI;YACZ,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,YAAY,EAAE,EAAE;SACnB,CAAA;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAA;KACnC;IAEM,cAAc,CAAC,KAAa,EAAE,GAAW,EAAA;AAC5C,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAE9C,QAAA,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1C,YAAA,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAA;AACzB,YAAA,MAAM,KAAK,GACP,OAAO,GAAG,KAAK,QAAQ;kBACjB,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;AAChC,kBAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,CAAE,CAAA;AAC5D,YAAA,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAA;AAC1B,YAAA,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACnC,SAAA;KACJ;AAEM,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IACI,MAAM,CAAC,IAAI,KAAK,WAAW;YAC3B,MAAM,CAAC,IAAI,KAAK,gBAAgB;YAChC,MAAM,CAAC,IAAI,KAAK,OAAO;AACvB,YAAA,MAAM,CAAC,IAAI,KAAK,SAAS,EAC3B;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,IAAI,CAAC,KAAK,GAAG;AACT,YAAA,IAAI,EAAE,aAAa;YACnB,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,QAAQ,EAAE,EAAE;SACf,CAAA;QACD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACvC;IAEM,kBAAkB,CAAC,KAAa,EAAE,GAAW,EAAA;AAChD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;AAC7B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;AAEM,IAAA,YAAY,CAAC,KAAa,EAAA;AAC7B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,IAAI,CAAC,KAAK,GAAG;AACT,YAAA,IAAI,EAAE,OAAO;YACb,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,YAAY,EAAE,EAAE;SACnB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACnC;IAEM,YAAY,CAAC,KAAa,EAAE,GAAW,EAAA;AAC1C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC7D,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,qBAAqB,CAAC,KAAa,EAAE,IAAmB,EAAA;AAC3D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,IAAI,CAAC,KAAK,GAAG;AACT,YAAA,IAAI,EAAE,gBAAgB;YACtB,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;YACP,IAAI;AACJ,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,UAAU,EAAE,EAAE;SACjB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACzC;IAEM,qBAAqB,CAAC,KAAa,EAAE,GAAW,EAAA;AACnD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IACI,IAAI,CAAC,IAAI,KAAK,gBAAgB;AAC9B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EACpC;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;IAEM,YAAY,CACf,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW,EACX,MAAe,EAAA;AAEf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAGD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;QACrC,IACI,OAAO,IAAI,IAAI;YACf,OAAO,CAAC,IAAI,KAAK,YAAY;AAC7B,aAAC,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,EAChE;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,IAAI,GAAe;AACrB,YAAA,IAAI,EAAE,YAAY;YAClB,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG;AACH,YAAA,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;YAC1C,GAAG;YACH,GAAG;YACH,MAAM;YACN,OAAO;SACV,CAAA;AACD,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC1B,QAAA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAA;KACxB;AAEM,IAAA,0BAA0B,CAC7B,KAAa,EACb,IAAgC,EAChC,MAAe,EAAA;AAEf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,IAAI,IAAyB,IAAI,CAAC,KAAK,GAAG;AAC5C,YAAA,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;YACP,IAAI;YACJ,MAAM;AACN,YAAA,YAAY,EAAE,EAAE;AACnB,SAAA,CAAC,CAAA;AACF,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC7B;IAEM,0BAA0B,CAAC,KAAa,EAAE,GAAW,EAAA;AACxD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AACjE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;AAEM,IAAA,eAAe,CAClB,KAAa,EACb,GAAW,EACX,IAAqB,EAAA;AAErB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;AACP,SAAA,CAAC,CAAA;KACL;AAEM,IAAA,uBAAuB,CAC1B,KAAa,EACb,GAAW,EACX,IAAY,EACZ,MAAe,EAAA;AAEf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,MAAM;AACT,SAAA,CAAC,CAAA;KACL;AAEM,IAAA,iBAAiB,CAAC,KAAa,EAAE,GAAW,EAAE,IAAW,EAAA;AAC5D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,EAAE,cAAc;YACpB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;AACP,SAAA,CAAC,CAAA;KACL;AAEM,IAAA,oBAAoB,CACvB,KAAa,EACb,GAAW,EACX,IAAgC,EAChC,MAAe,EAAA;AAEf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;AACnE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAEC,QAAA,MAAM,CAAC,QAAoC,CAAC,IAAI,CAAC;AAC/C,YAAA,IAAI,EAAE,cAAc;YACpB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,MAAM;AACT,SAAA,CAAC,CAAA;KACL;AAEM,IAAA,6BAA6B,CAChC,KAAa,EACb,GAAW,EACX,IAAgB,EAChB,GAAW,EACX,KAAoB,EACpB,MAAe,EACf,OAAgB,EAAA;AAEhB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IACI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa;AAC1B,YAAA,MAAM,CAAC,IAAI,KAAK,gBAAgB;aACnC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,EAChC;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,IAAI,GAAG;AACT,YAAA,IAAI,EAAE,cAAc;YACpB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,OAAO;YACP,GAAG;SACG,CAAA;QACV,MAAM,IAAI,GAAgC,OAAO;AAC7C,8CACS,IAAI,CAAA,EAAA,EACP,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,KAAK,EACb,OAAO,EAAE,IAAI,EAAA,CAAA,GAGV,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,KACP,KAAK;AACL,YAAA,MAAM,EACN,OAAO,EAAE,KAAK,GACjB,CAAA;AACP,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC7B;AAEM,IAAA,WAAW,CAAC,KAAa,EAAE,GAAW,EAAE,KAAa,EAAA;AACxD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IACI,MAAM,CAAC,IAAI,KAAK,aAAa;YAC7B,MAAM,CAAC,IAAI,KAAK,gBAAgB;AAChC,YAAA,MAAM,CAAC,IAAI,KAAK,mBAAmB,EACrC;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,KAAK;AACR,SAAA,CAAC,CAAA;KACL;AAEM,IAAA,eAAe,CAClB,KAAa,EACb,GAAW,EACX,GAAoB,EAAA;AAEpB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,IAAI,GAAkB;AACxB,YAAA,IAAI,EAAE,eAAe;YACrB,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,GAAG;AACH,YAAA,QAAQ,EAAE,qBAAqB;SAClC,CAAA;AACD,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC1B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAClC;AAEM,IAAA,qBAAqB,CACxB,KAAa,EACb,MAAe,EACf,WAAoB,EAAA;AAEpB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,MAAM,IAAI,GAAG;AACT,YAAA,IAAI,EAAE,gBAAyB;YAC/B,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;YACP,WAAW;YACX,MAAM;AACN,YAAA,QAAQ,EAAE,EAAE;SACf,CAAA;AACD,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,YAAA,MAAM,IAAI,GACH,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CACP,EAAA,EAAA,MAAM,GACT,CAAA;AACD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;AACjB,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7B,SAAA;AAAM,aAAA,IACH,MAAM,CAAC,IAAI,KAAK,gBAAgB;AAChC,YAAA,MAAM,CAAC,WAAW;AAClB,YAAA,WAAW,EACb;AACE,YAAA,MAAM,IAAI,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACH,IAAI,CAAA,EAAA,EACP,MAAM;AACN,gBAAA,WAAW,GACd,CAAA;AACD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;AACjB,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7B,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;KACJ;IAEM,qBAAqB,CAAC,KAAa,EAAE,GAAW,EAAA;AACnD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IACI,IAAI,CAAC,IAAI,KAAK,gBAAgB;AAC9B,aAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa;AAC/B,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC;AAC1C,aAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EACtD;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;AAE1B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;AAEnB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAA;AACzC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;QAC7B,IAAI,CAAC,UAAU,EAAE;YACb,OAAM;AACT,SAAA;AAGD,QAAA,MAAM,OAAO,GAA6B;AACtC,YAAA,IAAI,EAAE,0BAA0B;YAChC,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU;SACb,CAAA;AACD,QAAA,UAAU,CAAC,MAAM,GAAG,OAAO,CAAA;QAC3B,IAAI,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE;AAChC,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KAChC;IAEM,qBAAqB,CAAC,KAAa,EAAE,GAAW,EAAA;AACnD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE;AAClC,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAGD,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;AAChC,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE;AAClC,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACrB,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;AAC7B,YAAA,IACI,CAAC,MAAM;gBACP,MAAM,CAAC,IAAI,KAAK,WAAW;AAC3B,gBAAA,MAAM,CAAC,KAAK,KAAK,YAAY,EAC/B;AACE,gBAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,aAAA;AACJ,SAAA;AACD,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE;AAClC,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,MAAM,IAAI,GAAwB;AAC9B,YAAA,IAAI,EAAE,qBAAqB;YAC3B,MAAM;YACN,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,GAAG;YACH,GAAG;SACN,CAAA;AACD,QAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;AACjB,QAAA,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;AACjB,QAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACtB;IAEM,mBAAmB,CAAC,KAAa,EAAE,GAAW,EAAA;;AACjD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACzD,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;AACnC,QAAA,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;AAC5D,QAAA,IACI,CAAC,IAAI;AACL,YAAA,CAAC,KAAK;YACN,IAAI,CAAC,IAAI,KAAK,kBAAkB;aAC/B,IAAI,CAAC,IAAI,KAAK,mBAAmB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC/D,YAAA,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC3B;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,MAAM,IAAI,GAAsB;AAC5B,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAEF,MAA2C;YAC/C,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,KAAK;SACR,CAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AAClB,QAAA,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;KAChC;IAEM,kBAAkB,CAAC,KAAa,EAAE,GAAW,EAAA;;AAChD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACzD,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;AACnC,QAAA,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;AAC5D,QAAA,IACI,CAAC,IAAI;AACL,YAAA,CAAC,KAAK;YACN,IAAI,CAAC,IAAI,KAAK,mBAAmB;aAChC,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC9D,YAAA,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAC3B;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,MAAM,IAAI,GAAqB;AAC3B,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,MAAM,EAEF,MAA2C;YAC/C,KAAK;YACL,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;YAClC,IAAI;YACJ,KAAK;SACR,CAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AAClB,QAAA,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;KAChC;AAEM,IAAA,6BAA6B,CAAC,KAAa,EAAA;AAC9C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACzD,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,IAAI,CAAC,KAAK,GAAG;AACT,YAAA,IAAI,EAAE,wBAAwB;YAC9B,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,YAAY,EAAE,EAAE;SACnB,CAAA;QACD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACnC;IAEM,6BAA6B,CAAC,KAAa,EAAE,GAAW,EAAA;AAC3D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IACI,IAAI,CAAC,IAAI,KAAK,wBAAwB;AACtC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,EACvC;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;AAEM,IAAA,wBAAwB,CAAC,KAAa,EAAA;AACzC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;AACzB,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,wBAAwB,EAAE;AAC1C,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;QAED,IAAI,CAAC,KAAK,GAAG;AACT,YAAA,IAAI,EAAE,mBAAmB;YACzB,MAAM;YACN,KAAK;AACL,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,QAAQ,EAAE,EAAE;SACf,CAAA;QACD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACvC;IAEM,wBAAwB,CAAC,KAAa,EAAE,GAAW,EAAA;AACtD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE;AACnC,YAAA,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;AAClC,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;KAC3B;AACJ,CAAA;MA0BY,YAAY,CAAA;AASrB,IAAA,WAAA,CAAmB,OAA8B,EAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACrD;IASM,YAAY,CACf,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAAA;AAE3B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;AACnD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;AAC/B,QAAA,MAAM,OAAO,GAAkB;AAC3B,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,GAAG;AACH,YAAA,GAAG,EAAE,MAAM;YACX,OAAO;YACP,KAAK;SACR,CAAA;AACD,QAAA,OAAO,CAAC,MAAM,GAAG,OAAO,CAAA;AACxB,QAAA,KAAK,CAAC,MAAM,GAAG,OAAO,CAAA;AACtB,QAAA,OAAO,OAAO,CAAA;KACjB;IASM,UAAU,CACb,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAAA;AAE3B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;AACjD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;KAC3B;AAmCM,IAAA,YAAY,CACf,MAAc,EACd,KAAK,GAAG,CAAC,EACT,GAAA,GAAc,MAAM,CAAC,MAAM,EAC3B,eAMkB,SAAS,EAAA;AAE3B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAC3B,MAAM,EACN,KAAK,EACL,GAAG,EACH,YAAqB,CACxB,CAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;KAC7B;AACJ;;MCp1BY,aAAa,CAAA;AAOtB,IAAA,WAAA,CAAmB,QAAgC,EAAA;AAC/C,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;KAC5B;AAOM,IAAA,KAAK,CAAC,IAAU,EAAA;QACnB,QAAQ,IAAI,CAAC,IAAI;AACb,YAAA,KAAK,aAAa;AACd,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBAC3B,MAAK;AACT,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBACzB,MAAK;AACT,YAAA,KAAK,eAAe;AAChB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;gBAC7B,MAAK;AACT,YAAA,KAAK,gBAAgB;AACjB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;gBAC9B,MAAK;AACT,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;gBACzB,MAAK;AACT,YAAA,KAAK,gBAAgB;AACjB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;gBAC9B,MAAK;AACT,YAAA,KAAK,qBAAqB;AACtB,gBAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;gBACnC,MAAK;AACT,YAAA,KAAK,cAAc;AACf,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;gBAC5B,MAAK;AACT,YAAA,KAAK,mBAAmB;AACpB,gBAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;gBACjC,MAAK;AACT,YAAA,KAAK,wBAAwB;AACzB,gBAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAA;gBACtC,MAAK;AACT,YAAA,KAAK,kBAAkB;AACnB,gBAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;gBAChC,MAAK;AACT,YAAA,KAAK,0BAA0B;AAC3B,gBAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;gBACxC,MAAK;AACT,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;gBACrB,MAAK;AACT,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;gBACrB,MAAK;AACT,YAAA,KAAK,SAAS;AACV,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBACvB,MAAK;AACT,YAAA,KAAK,YAAY;AACb,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;gBAC1B,MAAK;AACT,YAAA,KAAK,eAAe;AAChB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;gBAC7B,MAAK;AACT,YAAA,KAAK,mBAAmB;AACpB,gBAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;gBACjC,MAAK;AACT,YAAA;gBACI,MAAM,IAAI,KAAK,CACX,CAAA,cAAA,EAAkB,IAA2B,CAAC,IAAI,CAAE,CAAA,CACvD,CAAA;AACR,SAAA;KACJ;AAEO,IAAA,gBAAgB,CAAC,IAAiB,EAAA;AACtC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;AACnC,YAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAC1C,SAAA;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACvC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;AACnC,YAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAC1C,SAAA;KACJ;AAEO,IAAA,cAAc,CAAC,IAAe,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACxC,SAAA;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;YACzD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC9C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACxC,SAAA;KACJ;AAEO,IAAA,kBAAkB,CAAC,IAAmB,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC5C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC5C,SAAA;KACJ;AAEO,IAAA,mBAAmB,CAAC,IAAoB,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAC7C,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAC7C,SAAA;KACJ;AAEO,IAAA,cAAc,CAAC,IAAe,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACxC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACxC,SAAA;KACJ;AAEO,IAAA,mBAAmB,CAAC,IAAoB,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAC7C,SAAA;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACvC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;AAC7C,SAAA;KACJ;AAEO,IAAA,wBAAwB,CAAC,IAAyB,EAAA;AACtD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE;AAC3C,YAAA,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;AAClD,SAAA;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,0BAA0B,EAAE;AAC3C,YAAA,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;AAClD,SAAA;KACJ;AAEO,IAAA,iBAAiB,CAAC,IAAkB,EAAA;AACxC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;AACpC,YAAA,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAC3C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;AACpC,YAAA,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAC3C,SAAA;KACJ;AAEO,IAAA,sBAAsB,CAAC,IAAuB,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChD,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACtB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChD,SAAA;KACJ;AAEO,IAAA,2BAA2B,CAAC,IAA4B,EAAA;AAC5D,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,6BAA6B,EAAE;AAC9C,YAAA,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;AACrD,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,6BAA6B,EAAE;AAC9C,YAAA,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;AACrD,SAAA;KACJ;AAEO,IAAA,qBAAqB,CAAC,IAAsB,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE;AACxC,YAAA,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;AAC/C,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACtB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE;AACxC,YAAA,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;AAC/C,SAAA;KACJ;AAEO,IAAA,6BAA6B,CACjC,IAA8B,EAAA;AAE9B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,+BAA+B,EAAE;AAChD,YAAA,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAA;AACvD,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,+BAA+B,EAAE;AAChD,YAAA,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAA;AACvD,SAAA;KACJ;AAEO,IAAA,UAAU,CAAC,IAAW,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;AACpC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;AACpC,SAAA;KACJ;AAEO,IAAA,UAAU,CAAC,IAAW,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;AACpC,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;AACpC,SAAA;KACJ;AAEO,IAAA,YAAY,CAAC,IAAa,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;AACtC,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;AACtC,SAAA;KACJ;AAEO,IAAA,eAAe,CAAC,IAAgB,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;AACzC,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACxB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;AACzC,SAAA;KACJ;AAEO,IAAA,kBAAkB,CAAC,IAAmB,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC5C,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC5C,SAAA;KACJ;AAEO,IAAA,sBAAsB,CAAC,IAAuB,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChD,SAAA;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACvC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;AACzC,YAAA,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChD,SAAA;KACJ;AACJ;;AClRe,SAAA,kBAAkB,CAC9B,MAAuB,EACvB,OAA8B,EAAA;AAE9B,IAAA,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AACjE,CAAC;AAOe,SAAA,qBAAqB,CACjC,MAAc,EACd,OAAiC,EAAA;IAEjC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;AACxD,CAAC;AAEe,SAAA,cAAc,CAC1B,IAAc,EACd,QAAgC,EAAA;IAEhC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC3C;;;;"} \ No newline at end of file +{"version":3,"file":"index.mjs.map","sources":[".temp/src/ecma-versions.ts",".temp/unicode/src/unicode/ids.ts",".temp/unicode/src/unicode/properties.ts",".temp/unicode/src/unicode/index.ts",".temp/src/reader.ts",".temp/src/regexp-syntax-error.ts",".temp/src/validator.ts",".temp/src/parser.ts",".temp/src/visitor.ts",".temp/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@eslint-community/regexpp/package.json b/node_modules/@eslint-community/regexpp/package.json index 0531759b23..4544508aa8 100644 --- a/node_modules/@eslint-community/regexpp/package.json +++ b/node_modules/@eslint-community/regexpp/package.json @@ -1,6 +1,6 @@ { "name": "@eslint-community/regexpp", - "version": "4.6.2", + "version": "4.10.0", "description": "Regular expression parser for ECMAScript.", "keywords": [ "regexp", @@ -66,15 +66,15 @@ }, "dependencies": {}, "devDependencies": { - "@eslint-community/eslint-plugin-mysticatea": "^15.3.0", + "@eslint-community/eslint-plugin-mysticatea": "^15.5.1", "@rollup/plugin-node-resolve": "^14.1.0", - "@types/eslint": "^8.4.10", + "@types/eslint": "^8.44.3", "@types/jsdom": "^16.2.15", "@types/mocha": "^9.1.1", "@types/node": "^12.20.55", "dts-bundle": "^0.7.3", - "eslint": "^8.31.0", - "js-tokens": "^8.0.1", + "eslint": "^8.50.0", + "js-tokens": "^8.0.2", "jsdom": "^19.0.0", "mocha": "^9.2.2", "npm-run-all": "^4.1.5", diff --git a/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts b/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts index 0e4d269a27..be1a6bb544 100644 --- a/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts +++ b/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts @@ -16,5 +16,6 @@ export type RequestRequestOptions = { * If set to `false`, the response body will not be parsed and will be returned as a stream. */ parseSuccessResponseBody?: boolean; + redirect?: "follow" | "error" | "manual"; [option: string]: any; }; diff --git a/node_modules/@octokit/types/dist-types/VERSION.d.ts b/node_modules/@octokit/types/dist-types/VERSION.d.ts index b4e7006a92..71435ff1ae 100644 --- a/node_modules/@octokit/types/dist-types/VERSION.d.ts +++ b/node_modules/@octokit/types/dist-types/VERSION.d.ts @@ -1 +1 @@ -export declare const VERSION = "13.1.0"; +export declare const VERSION = "13.4.0"; diff --git a/node_modules/@octokit/types/node_modules/@octokit/openapi-types/package.json b/node_modules/@octokit/types/node_modules/@octokit/openapi-types/package.json index 78b8eefd56..9ce08ee679 100644 --- a/node_modules/@octokit/types/node_modules/@octokit/openapi-types/package.json +++ b/node_modules/@octokit/types/node_modules/@octokit/openapi-types/package.json @@ -10,12 +10,12 @@ "access": "public", "provenance": true }, - "version": "21.2.0", + "version": "22.0.1", "main": "", "types": "types.d.ts", "author": "Gregor Martynus (https://twitter.com/gr2m)", "license": "MIT", "octokit": { - "openapi-version": "15.0.0" + "openapi-version": "16.1.0" } } diff --git a/node_modules/@octokit/types/node_modules/@octokit/openapi-types/types.d.ts b/node_modules/@octokit/types/node_modules/@octokit/openapi-types/types.d.ts index 006bc7299e..b967dbdce5 100644 --- a/node_modules/@octokit/types/node_modules/@octokit/openapi-types/types.d.ts +++ b/node_modules/@octokit/types/node_modules/@octokit/openapi-types/types.d.ts @@ -678,6 +678,17 @@ export interface paths { * * To see the full details about an organization, the authenticated user must be an organization owner. * + * The values returned by this endpoint are set by the "Update an organization" endpoint. If your organization set a default security configuration (beta), the following values retrieved from the "Update an organization" endpoint have been overwritten by that configuration: + * + * - advanced_security_enabled_for_new_repositories + * - dependabot_alerts_enabled_for_new_repositories + * - dependabot_security_updates_enabled_for_new_repositories + * - dependency_graph_enabled_for_new_repositories + * - secret_scanning_enabled_for_new_repositories + * - secret_scanning_push_protection_enabled_for_new_repositories + * + * For more information on security configurations, see "[Enabling security features at scale](https://docs.github.com/code-security/securing-your-organization/introduction-to-securing-your-organization-at-scale/about-enabling-security-features-at-scale)." + * * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to see the full details about an organization. * * To see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission. @@ -700,6 +711,17 @@ export interface paths { * * Updates the organization's profile and member privileges. * + * With security configurations (beta), your organization can choose a default security configuration which will automatically apply a set of security enablement settings to new repositories in your organization based on their visibility. For targeted repositories, the following attributes will be overridden by the default security configuration: + * + * - advanced_security_enabled_for_new_repositories + * - dependabot_alerts_enabled_for_new_repositories + * - dependabot_security_updates_enabled_for_new_repositories + * - dependency_graph_enabled_for_new_repositories + * - secret_scanning_enabled_for_new_repositories + * - secret_scanning_push_protection_enabled_for_new_repositories + * + * For more information on setting a default security configuration, see "[Enabling security features at scale](https://docs.github.com/code-security/securing-your-organization/introduction-to-securing-your-organization-at-scale/about-enabling-security-features-at-scale)." + * * The authenticated user must be an organization owner to use this endpoint. * * OAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint. @@ -14802,7 +14824,7 @@ export interface components { /** @description Whether the property is required. */ required?: boolean; /** @description Default value of the property */ - default_value?: string | null; + default_value?: string | string[] | null; /** @description Short description of the property */ description?: string | null; /** @@ -15873,20 +15895,20 @@ export interface components { }; }; /** - * CodeScanningThreshold - * @description A tool and its thresholds. + * CodeScanningTool + * @description A tool that must provide code scanning results for this rule to pass. */ - "repository-rule-params-code-scanning-threshold": { + "repository-rule-params-code-scanning-tool": { /** - * @description Code scanning alert threshold + * @description The severity level at which code scanning results that raise alerts block a reference update. For more information on alert severity levels, see "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels)." * @enum {string} */ - alerts: "none" | "errors" | "errors_and_warnings" | "all"; + alerts_threshold: "none" | "errors" | "errors_and_warnings" | "all"; /** - * @description Code scanning security alert threshold. + * @description The severity level at which code scanning results that raise security alerts block a reference update. For more information on security severity levels, see "[About code scanning alerts](https://docs.github.com/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels)." * @enum {string} */ - security_alerts: + security_alerts_threshold: | "none" | "critical" | "high_or_higher" @@ -90729,6 +90751,17 @@ export interface operations { * * To see the full details about an organization, the authenticated user must be an organization owner. * + * The values returned by this endpoint are set by the "Update an organization" endpoint. If your organization set a default security configuration (beta), the following values retrieved from the "Update an organization" endpoint have been overwritten by that configuration: + * + * - advanced_security_enabled_for_new_repositories + * - dependabot_alerts_enabled_for_new_repositories + * - dependabot_security_updates_enabled_for_new_repositories + * - dependency_graph_enabled_for_new_repositories + * - secret_scanning_enabled_for_new_repositories + * - secret_scanning_push_protection_enabled_for_new_repositories + * + * For more information on security configurations, see "[Enabling security features at scale](https://docs.github.com/code-security/securing-your-organization/introduction-to-securing-your-organization-at-scale/about-enabling-security-features-at-scale)." + * * OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to see the full details about an organization. * * To see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission. @@ -90777,6 +90810,17 @@ export interface operations { * * Updates the organization's profile and member privileges. * + * With security configurations (beta), your organization can choose a default security configuration which will automatically apply a set of security enablement settings to new repositories in your organization based on their visibility. For targeted repositories, the following attributes will be overridden by the default security configuration: + * + * - advanced_security_enabled_for_new_repositories + * - dependabot_alerts_enabled_for_new_repositories + * - dependabot_security_updates_enabled_for_new_repositories + * - dependency_graph_enabled_for_new_repositories + * - secret_scanning_enabled_for_new_repositories + * - secret_scanning_push_protection_enabled_for_new_repositories + * + * For more information on setting a default security configuration, see "[Enabling security features at scale](https://docs.github.com/code-security/securing-your-organization/introduction-to-securing-your-organization-at-scale/about-enabling-security-features-at-scale)." + * * The authenticated user must be an organization owner to use this endpoint. * * OAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint. @@ -90802,7 +90846,7 @@ export interface operations { location?: string; /** @description The shorthand name of the company. */ name?: string; - /** @description The description of the company. */ + /** @description The description of the company. The maximum size is 160 characters. */ description?: string; /** @description Whether an organization can use organization projects. */ has_organization_projects?: boolean; @@ -95870,7 +95914,7 @@ export interface operations { /** @description Whether the property is required. */ required?: boolean; /** @description Default value of the property */ - default_value?: string | null; + default_value?: string | string[] | null; /** @description Short description of the property */ description?: string | null; /** diff --git a/node_modules/@octokit/types/package.json b/node_modules/@octokit/types/package.json index a2785b68ed..f02aa705be 100644 --- a/node_modules/@octokit/types/package.json +++ b/node_modules/@octokit/types/package.json @@ -1,13 +1,13 @@ { "name": "@octokit/types", - "version": "13.1.0", + "version": "13.4.0", "publishConfig": { "access": "public", "provenance": true }, "description": "Shared TypeScript definitions for Octokit projects", "dependencies": { - "@octokit/openapi-types": "^21.0.0" + "@octokit/openapi-types": "^22.0.1" }, "repository": "github:octokit/types.ts", "keywords": [ @@ -37,7 +37,7 @@ "typescript": "^5.0.0" }, "octokit": { - "openapi-version": "14.1.0" + "openapi-version": "16.1.0" }, "files": [ "dist-types/**" diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended-raw.js b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended-raw.js index 6aed847a56..1ba75e3b71 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended-raw.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended-raw.js @@ -23,7 +23,9 @@ exports.default = (style) => ({ 'no-dupe-keys': 'off', // ts(1117) 'no-func-assign': 'off', // ts(2630) 'no-import-assign': 'off', // ts(2632) & ts(2540) + // TODO - remove this once we no longer support ESLint v8 'no-new-symbol': 'off', // ts(7009) + 'no-new-native-nonconstructor': 'off', // ts(7009) 'no-obj-calls': 'off', // ts(2349) 'no-redeclare': 'off', // ts(2451) 'no-setter-return': 'off', // ts(2408) diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended-raw.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended-raw.js.map index 25339070a5..dbd8af6f4d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended-raw.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended-raw.js.map @@ -1 +1 @@ -{"version":3,"file":"eslint-recommended-raw.js","sourceRoot":"","sources":["../../src/configs/eslint-recommended-raw.ts"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,qEAAqE;AACrE,uEAAuE;;AAEvE;;;;GAIG;AACH,kBAAe,CACb,KAA2B,EAI3B,EAAE,CAAC,CAAC;IACJ,KAAK,EACH,KAAK,KAAK,MAAM;QACd,CAAC,CAAC,kCAAkC;YAClC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;QACrC,CAAC,CAAC,oCAAoC;YACpC,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;IACrD,KAAK,EAAE;QACL,mBAAmB,EAAE,KAAK,EAAE,sBAAsB;QAClD,eAAe,EAAE,KAAK,EAAE,WAAW;QACnC,iBAAiB,EAAE,KAAK,EAAE,WAAW;QACrC,cAAc,EAAE,KAAK,EAAE,WAAW;QAClC,uBAAuB,EAAE,KAAK,EAAE,sBAAsB;QACtD,cAAc,EAAE,KAAK,EAAE,WAAW;QAClC,gBAAgB,EAAE,KAAK,EAAE,WAAW;QACpC,kBAAkB,EAAE,KAAK,EAAE,sBAAsB;QACjD,eAAe,EAAE,KAAK,EAAE,WAAW;QACnC,cAAc,EAAE,KAAK,EAAE,WAAW;QAClC,cAAc,EAAE,KAAK,EAAE,WAAW;QAClC,kBAAkB,EAAE,KAAK,EAAE,WAAW;QACtC,sBAAsB,EAAE,KAAK,EAAE,uBAAuB;QACtD,UAAU,EAAE,KAAK,EAAE,sBAAsB;QACzC,gBAAgB,EAAE,KAAK,EAAE,WAAW;QACpC,oBAAoB,EAAE,KAAK,EAAE,iCAAiC;QAC9D,QAAQ,EAAE,OAAO,EAAE,+DAA+D;QAClF,cAAc,EAAE,OAAO,EAAE,sCAAsC;QAC/D,oBAAoB,EAAE,OAAO,EAAE,yDAAyD;QACxF,eAAe,EAAE,OAAO,EAAE,6DAA6D;KACxF;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"eslint-recommended-raw.js","sourceRoot":"","sources":["../../src/configs/eslint-recommended-raw.ts"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,qEAAqE;AACrE,uEAAuE;;AAEvE;;;;GAIG;AACH,kBAAe,CACb,KAA2B,EAI3B,EAAE,CAAC,CAAC;IACJ,KAAK,EACH,KAAK,KAAK,MAAM;QACd,CAAC,CAAC,kCAAkC;YAClC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;QACrC,CAAC,CAAC,oCAAoC;YACpC,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;IACrD,KAAK,EAAE;QACL,mBAAmB,EAAE,KAAK,EAAE,sBAAsB;QAClD,eAAe,EAAE,KAAK,EAAE,WAAW;QACnC,iBAAiB,EAAE,KAAK,EAAE,WAAW;QACrC,cAAc,EAAE,KAAK,EAAE,WAAW;QAClC,uBAAuB,EAAE,KAAK,EAAE,sBAAsB;QACtD,cAAc,EAAE,KAAK,EAAE,WAAW;QAClC,gBAAgB,EAAE,KAAK,EAAE,WAAW;QACpC,kBAAkB,EAAE,KAAK,EAAE,sBAAsB;QACjD,yDAAyD;QACzD,eAAe,EAAE,KAAK,EAAE,WAAW;QACnC,8BAA8B,EAAE,KAAK,EAAE,WAAW;QAClD,cAAc,EAAE,KAAK,EAAE,WAAW;QAClC,cAAc,EAAE,KAAK,EAAE,WAAW;QAClC,kBAAkB,EAAE,KAAK,EAAE,WAAW;QACtC,sBAAsB,EAAE,KAAK,EAAE,uBAAuB;QACtD,UAAU,EAAE,KAAK,EAAE,sBAAsB;QACzC,gBAAgB,EAAE,KAAK,EAAE,WAAW;QACpC,oBAAoB,EAAE,KAAK,EAAE,iCAAiC;QAC9D,QAAQ,EAAE,OAAO,EAAE,+DAA+D;QAClF,cAAc,EAAE,OAAO,EAAE,sCAAsC;QAC/D,oBAAoB,EAAE,OAAO,EAAE,yDAAyD;QACxF,eAAe,EAAE,OAAO,EAAE,6DAA6D;KACxF;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.mdx index 91d9a9051b..ca36964e28 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.mdx @@ -41,9 +41,7 @@ if (false) { console.log('hello'); } if (false) { - /* - @ts-ignore: Unreachable code error - */ + /* @ts-ignore: Unreachable code error */ console.log('hello'); } ``` @@ -90,9 +88,7 @@ if (false) { console.log('hello'); } if (false) { - /* - @ts-expect-error: Unreachable code error - */ + /* @ts-expect-error: Unreachable code error */ console.log('hello'); } ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/class-methods-use-this.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/class-methods-use-this.mdx index 3b4cb7cf13..8e580a8b24 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/class-methods-use-this.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/class-methods-use-this.mdx @@ -70,7 +70,7 @@ Example of incorrect code when `ignoreClassesThatImplementAnInterface` is set to -```ts +```ts option='{ "ignoreClassesThatImplementAnInterface": "public-fields" }' class X implements Y { method() {} property = () => {}; @@ -86,7 +86,7 @@ class X implements Y { -```ts +```ts option='{ "ignoreClassesThatImplementAnInterface": "public-fields" }' class X implements Y { method() {} property = () => {}; diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-return.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-return.mdx index 73eb72515c..0f56bddba6 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-return.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-return.mdx @@ -12,6 +12,10 @@ import TabItem from '@theme/TabItem'; This rule extends the base [`eslint/consistent-return`](https://eslint.org/docs/rules/consistent-return) rule. This version adds support for functions that return `void` or `Promise`. +:::danger warning +If possible, it is recommended to use tsconfig's `noImplicitReturns` option rather than this rule. `noImplicitReturns` is powered by TS's type information and control-flow analysis so it has better coverage than this rule. +::: + diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-exports.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-exports.mdx index be1ab45c2b..7c699d1096 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-exports.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-exports.mdx @@ -85,24 +85,6 @@ export type { T }; export { x }; ``` - - - -```ts option='{ "fixMixedExportsWithInlineTypeSpecifier": true }' -export { Button } from 'some-library'; -export type { ButtonProps } from 'some-library'; -``` - - - - -```ts option='{ "fixMixedExportsWithInlineTypeSpecifier": true }' -export { Button, type ButtonProps } from 'some-library'; -``` - - - - ## When Not To Use It If you use `--isolatedModules` the compiler would error if a type is not re-exported using `export type`. diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/default-param-last.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/default-param-last.mdx index bc50cad621..38527abf76 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/default-param-last.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/default-param-last.mdx @@ -16,8 +16,6 @@ It adds support for optional parameters. ```ts -/* eslint @typescript-eslint/default-param-last: "error" */ - function f(a = 0, b: number) {} function f(a: number, b = 0, c: number) {} function f(a: number, b?: number, c: number) {} @@ -39,8 +37,6 @@ class Foo { ```ts -/* eslint @typescript-eslint/default-param-last: "error" */ - function f(a = 0) {} function f(a: number, b = 0) {} function f(a: number, b?: number) {} diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.mdx index e73e12c97d..7a19ab87c7 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.mdx @@ -97,20 +97,20 @@ If you are working on a codebase within which you lint non-TypeScript code (i.e. ### `allowArgumentsExplicitlyTypedAsAny` -Examples of code for this rule with `{ allowArgumentsExplicitlyTypedAsAny: false }`: +When this option is `true`, the rule ignores arguments that are explicitly typed as any. - + ```ts option='{ "allowArgumentsExplicitlyTypedAsAny": false }' export const func = (value: any): number => value + 1; ``` - + -```ts option='{ "allowArgumentsExplicitlyTypedAsAny": false }' -export const func = (value: number): number => value + 1; +```ts option='{ "allowArgumentsExplicitlyTypedAsAny": true }' +export const func = (value: any): number => value + 1; ``` @@ -118,12 +118,12 @@ export const func = (value: number): number => value + 1; ### `allowDirectConstAssertionInArrowFunctions` -Examples of code for this rule with `{ allowDirectConstAssertionInArrowFunctions: false }`: +When this option is `true`, the rule ignores return type annotations on body-less arrow functions that return an `as const` type assertion. - + -```ts option='{ "allowArgumentsExplicitlyTypedAsAny": false }' +```ts option='{ "allowDirectConstAssertionInArrowFunctions": false }' export const func = (value: number) => ({ type: 'X', value }); export const foo = () => ({ bar: true, @@ -132,9 +132,9 @@ export const bar = () => 1; ``` - + -```ts option='{ "allowArgumentsExplicitlyTypedAsAny": false }' +```ts option='{ "allowDirectConstAssertionInArrowFunctions": true }' export const func = (value: number) => ({ type: 'X', value }) as const; export const foo = () => ({ @@ -163,10 +163,10 @@ You may pass function/method names you would like this rule to ignore, like so: ### `allowHigherOrderFunctions` -Examples of code for this rule with `{ allowHigherOrderFunctions: false }`: +When this option is `true`, the rule ignores return type annotations on function, which is immediately returning another function expression. - + ```ts option='{ "allowHigherOrderFunctions": false }' export const arrowFn = () => () => {}; @@ -181,9 +181,9 @@ export function foo(outer: string) { ``` - + -```ts option='{ "allowHigherOrderFunctions": false }' +```ts option='{ "allowHigherOrderFunctions": true }' export const arrowFn = () => (): void => {}; export function fn() { @@ -200,10 +200,10 @@ export function foo(outer: string) { ### `allowTypedFunctionExpressions` -Examples of code for this rule with `{ allowTypedFunctionExpressions: false }`: +When this option is `true`, the rule ignores type annotations on the variable of a function expression. - + ```ts option='{ "allowTypedFunctionExpressions": false }' export let arrowFn = () => 'test'; @@ -220,9 +220,9 @@ export const foo = bar => {}; ``` - + -```ts option='{ "allowTypedFunctionExpressions": false }' +```ts option='{ "allowTypedFunctionExpressions": true }' type FuncType = () => string; export let arrowFn: FuncType = () => 'test'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-ordering.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-ordering.mdx index 58d3bb0ff3..82f8f84f90 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-ordering.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-ordering.mdx @@ -12,6 +12,15 @@ import TabItem from '@theme/TabItem'; This rule aims to standardize the way classes, interfaces, and type literals are structured and ordered. A consistent ordering of fields, methods and constructors can make code easier to read, navigate, and edit. +:::note +This rule is _feature frozen_: it will no longer receive new features such as new options. +It still will accept bug and documentation fixes for its existing area of features. + +Stylistic rules that enforce naming and/or sorting conventions tend to grow incomprehensibly complex as increasingly obscure features are requested. +This rule has reached the limit of what is reasonable for the typescript-eslint project to maintain. +See [eslint-plugin: Feature freeze naming and sorting stylistic rules](https://github.com/typescript-eslint/typescript-eslint/issues/8792) for more information. +::: + ## Options ```ts @@ -1002,9 +1011,9 @@ interface Foo { b(): void; a: boolean; - [a: string]: number; // Order doesn't matter (no sortable identifier) - new (): Bar; // Order doesn't matter (no sortable identifier) - (): Baz; // Order doesn't matter (no sortable identifier) + [a: string]: number; + new (): Bar; + (): Baz; } ``` @@ -1013,12 +1022,12 @@ interface Foo { ```ts option='{ "default": { "memberTypes": "never", "order": "alphabetically" } }' interface Foo { + [a: string]: number; a: boolean; b(): void; - [a: string]: number; // Order doesn't matter (no sortable identifier) - new (): Bar; // Order doesn't matter (no sortable identifier) - (): Baz; // Order doesn't matter (no sortable identifier) + (): Baz; + new (): Bar; } ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.mdx index 35d750e5da..2af87f4f73 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.mdx @@ -12,6 +12,15 @@ import TabItem from '@theme/TabItem'; Enforcing naming conventions helps keep the codebase consistent, and reduces overhead when thinking about how to name a variable. Additionally, a well-designed style guide can help communicate intent, such as by enforcing all private properties begin with an `_`, and all global-level constants are written in `UPPER_CASE`. +:::note +This rule is _feature frozen_: it will no longer receive new features such as new options. +It still will accept bug and documentation fixes for its existing area of features and to support new TypeScript versions. + +Stylistic rules that enforce naming and/or sorting conventions tend to grow incomprehensibly complex as increasingly obscure features are requested. +This rule has reached the limit of what is reasonable for the typescript-eslint project to maintain. +See [eslint-plugin: Feature freeze naming and sorting stylistic rules](https://github.com/typescript-eslint/typescript-eslint/issues/8792) for more information. +::: + ## Examples This rule allows you to enforce conventions for any identifier, using granular selectors to create a fine-grained style guide. diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extraneous-class.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extraneous-class.mdx index a457ccf962..f368d5420e 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extraneous-class.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extraneous-class.mdx @@ -293,7 +293,7 @@ class NotEmptyClass { ### `allowWithDecorator` -The `allowWithDecorator` option adds an exemption for classes that contain a member decorated with a `@` decorator. +The `allowWithDecorator` option adds an exemption for classes decorated with a `@` decorator. @@ -308,8 +308,8 @@ class Constants { ```ts option='{ "allowWithDecorator": true }' +@logOnRead() class Constants { - @logOnRead() static readonly version = 42; } ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.mdx index 939eccae62..6b42594dae 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.mdx @@ -104,7 +104,7 @@ This allows you to skip checking of async IIFEs (Immediately Invoked function Ex Examples of **correct** code for this rule with `{ ignoreIIFE: true }`: - +{/* prettier-ignore */} ```ts option='{ "ignoreIIFE": true }' showPlaygroundButton await (async function () { await res(1); diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.mdx index 8e7050d200..5019008cb5 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.mdx @@ -36,8 +36,6 @@ This rule aims to eliminate implied `eval()` through the use of `new Function()` ```ts -/* eslint @typescript-eslint/no-implied-eval: "error" */ - setTimeout('alert(`Hi!`);', 100); setInterval('alert(`Hi!`);', 100); @@ -65,8 +63,6 @@ const fn = new Function('a', 'b', 'return a + b'); ```ts -/* eslint @typescript-eslint/no-implied-eval: "error" */ - setTimeout(function () { alert('Hi!'); }, 100); diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-meaningless-void-operator.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-meaningless-void-operator.mdx index 9df265bc98..905c706187 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-meaningless-void-operator.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-meaningless-void-operator.mdx @@ -44,7 +44,7 @@ function bar(x: number) { void x; // discarding a number return 2; } -void bar(); // discarding a number +void bar(1); // discarding a number ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-require-imports.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-require-imports.mdx index b5cc06dbd4..5af39f233c 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-require-imports.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-require-imports.mdx @@ -45,14 +45,14 @@ With `{allow: ['/package\\.json$']}`: -```ts +```ts option='{ "allow": ["/package.json$"] }' console.log(require('../data.json').version); ``` -```ts +```ts option='{ "allow": ["/package.json$"] }' console.log(require('../package.json').version); ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-assertion.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-assertion.mdx index 3182474d9b..4c34f32cae 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-assertion.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-assertion.mdx @@ -24,17 +24,17 @@ const bar = foo!; ``` ```ts -const foo = <3>3; +const foo = (3 + 5); ``` ```ts -type Foo = 3; -const foo = 3; +type Foo = number; +const foo = (3 + 5); ``` ```ts -type Foo = 3; -const foo = 3 as Foo; +type Foo = number; +const foo = (3 + 5) as Foo; ``` ```ts diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-var-requires.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-var-requires.mdx index 725cb0f7a8..e71c2e17c7 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-var-requires.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-var-requires.mdx @@ -45,14 +45,14 @@ With `{allow: ['/package\\.json$']}`: -```ts +```ts option='{ "allow": ["/package.json$"] }' const foo = require('../data.json'); ``` -```ts +```ts option='{ "allow": ["/package.json$"] }' const foo = require('../package.json'); ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/non-nullable-type-assertion-style.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/non-nullable-type-assertion-style.mdx index 05185e6928..cbb1dc0fa1 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/non-nullable-type-assertion-style.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/non-nullable-type-assertion-style.mdx @@ -23,7 +23,7 @@ This rule reports when an `as` cast is doing the same job as a `!` would, and su ```ts -const maybe = Math.random() > 0.5 ? '' : undefined; +const maybe: string | undefined = Math.random() > 0.5 ? '' : undefined; const definitely = maybe as string; const alsoDefinitely = maybe; @@ -33,7 +33,7 @@ const alsoDefinitely = maybe; ```ts -const maybe = Math.random() > 0.5 ? '' : undefined; +const maybe: string | undefined = Math.random() > 0.5 ? '' : undefined; const definitely = maybe!; const alsoDefinitely = maybe!; diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/only-throw-error.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/only-throw-error.mdx index fd9d8f2c4d..cd27f8cc43 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/only-throw-error.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/only-throw-error.mdx @@ -39,10 +39,10 @@ throw `${err}`; const err = ''; throw err; -function err() { +function getError() { return ''; } -throw err(); +throw getError(); const foo = { bar: '', @@ -70,10 +70,10 @@ try { const err = new Error(); throw err; -function err() { +function getError() { return new Error(); } -throw err(); +throw getError(); const foo = { bar: new Error(), diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-destructuring.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-destructuring.mdx index 9e3d43b222..411e376b72 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-destructuring.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-destructuring.mdx @@ -87,14 +87,14 @@ Examples with `{ enforceForDeclarationWithTypeAnnotation: true }`: -```ts +```ts option='{ "object": true }, { "enforceForDeclarationWithTypeAnnotation": true }' const x: string = obj.x; ``` -```ts +```ts option='{ "object": true }, { "enforceForDeclarationWithTypeAnnotation": true }' const { x }: { x: string } = obj; ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-optional-chain.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-optional-chain.mdx index c9a63b6dc8..47fcec6d59 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-optional-chain.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-optional-chain.mdx @@ -102,8 +102,7 @@ thing && thing.toString(); ``` - - for `checkAny: false` + ```ts option='{ "checkAny": false }' declare const thing: any; @@ -129,8 +128,7 @@ thing && thing.toString(); ``` - - for `checkUnknown: false` + ```ts option='{ "checkUnknown": false }' declare const thing: unknown; @@ -156,8 +154,7 @@ thing && thing.toString(); ``` - - for `checkString: false` + ```ts option='{ "checkString": false }' declare const thing: string; @@ -183,8 +180,7 @@ thing && thing.toString(); ``` - - for `checkNumber: false` + ```ts option='{ "checkNumber": false }' declare const thing: number; @@ -199,22 +195,35 @@ thing && thing.toString(); When this option is `true` the rule will check operands that are typed as `boolean` when inspecting "loose boolean" operands. +:::note + +This rule intentionally ignores the following case: + +```ts +declare const x: false | { a: string }; +x && x.a; +!x || x.a; +``` + +The boolean expression narrows out the non-nullish falsy cases - so converting the chain to `x?.a` would introduce a type error. + +::: + ```ts option='{ "checkBoolean": true }' -declare const thing: boolean; +declare const thing: true; thing && thing.toString(); ``` - - for `checkBoolean: false` + ```ts option='{ "checkBoolean": false }' -declare const thing: boolean; +declare const thing: true; thing && thing.toString(); ``` @@ -237,8 +246,7 @@ thing && thing.toString(); ``` - - for `checkBigInt: false` + ```ts option='{ "checkBigInt": false }' declare const thing: bigint; @@ -257,14 +265,13 @@ When this option is `true` the rule will skip operands that are not typed with ` -```ts option='{ "requireNullish": true }' +```ts option='{ "requireNullish": true }' skipValidation declare const thing1: string | null; thing1 && thing1.toString(); ``` - - for `requireNullish: true` + ```ts option='{ "requireNullish": true }' declare const thing1: string | null; diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.mdx index 322fb804b3..196b63ba9d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.mdx @@ -303,7 +303,7 @@ Examples of code for this rule with `{ignoreInferredTypes: true}`: -```ts option='{ "ignoreInferredTypes": true }' +```ts option='{ "ignoreInferredTypes": true }' skipValidation import { acceptsCallback, CallbackOptions } from 'external-dependency'; acceptsCallback((options: CallbackOptions) => {}); @@ -336,7 +336,7 @@ acceptsCallback(options => {});
external-dependency.d.ts -```ts option='{ "ignoreInferredTypes": true }' +```ts option='{ "ignoreInferredTypes": true }' skipValidation export interface CallbackOptions { prop: string; } diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/promise-function-async.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/promise-function-async.mdx index 7a2a39559e..bb506ad08b 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/promise-function-async.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/promise-function-async.mdx @@ -101,7 +101,7 @@ Examples of code with `{ "allowedPromiseNames": ["Bluebird"] }`: ```ts option='{ "allowedPromiseNames": ["Bluebird"] }' -import { Bluebird } from 'bluebird'; +class Bluebird {} const returnsBluebird = () => new Bluebird(() => {}); ``` @@ -110,7 +110,7 @@ const returnsBluebird = () => new Bluebird(() => {}); ```ts option='{ "allowedPromiseNames": ["Bluebird"] }' -import { Bluebird } from 'bluebird'; +class Bluebird {} const returnsBluebird = async () => new Bluebird(() => {}); ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-plus-operands.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-plus-operands.mdx index 228ac77850..c96c8aa12e 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-plus-operands.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-plus-operands.mdx @@ -196,23 +196,23 @@ Examples of code for this rule with `{ skipCompoundAssignments: false }`: -```ts option='{ "skipCompoundAssignments": true }' -let foo: string | undefined; -foo += 'some data'; +```ts option='{ "skipCompoundAssignments": false }' +let foo: bigint = 0n; +foo += 1; -let bar: string = ''; -bar += 0; +let bar: number[] = [1]; +bar += 1; ``` -```ts option='{ "skipCompoundAssignments": true }' -let foo: number = 0; -foo += 1; +```ts option='{ "skipCompoundAssignments": false }' +let foo: bigint = 0n; +foo += 1n; -let bar = ''; -bar += 'test'; +let bar: number = 1; +bar += 1; ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/sort-type-constituents.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/sort-type-constituents.mdx index 011fcf6d6a..1f83c0e77e 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/sort-type-constituents.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/sort-type-constituents.mdx @@ -19,6 +19,15 @@ This rule reports on any types that aren't sorted alphabetically. > Types are sorted case-insensitively and treating numbers like a human would, falling back to character code sorting in case of ties. +:::note +This rule is _feature frozen_: it will no longer receive new features such as new options. +It still will accept bug and documentation fixes for its existing area of features. + +Stylistic rules that enforce naming and/or sorting conventions tend to grow incomprehensibly complex as increasingly obscure features are requested. +This rule has reached the limit of what is reasonable for the typescript-eslint project to maintain. +See [eslint-plugin: Feature freeze naming and sorting stylistic rules](https://github.com/typescript-eslint/typescript-eslint/issues/8792) for more information. +::: + ## Examples diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-before-blocks.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-before-blocks.mdx index ef48550d16..84f6cf93e3 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-before-blocks.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-before-blocks.mdx @@ -15,7 +15,7 @@ It adds support for interfaces and enums. - +{/* prettier-ignore */} ```ts enum Breakpoint{ Large, diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.mdx index 7b7afb2793..ab7653a5c0 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.mdx @@ -61,12 +61,6 @@ while (obj) { ```tsx -// Using logical operator short-circuiting is allowed -const Component = () => { - const entry = map.get('foo') || {}; - return entry &&

Name: {entry.name}

; -}; - // nullable values should be checked explicitly against null or undefined let num: number | undefined = 0; if (num != null) { diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/type-annotation-spacing.mdx b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/type-annotation-spacing.mdx index f2d884b837..423dc90da8 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/type-annotation-spacing.mdx +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/type-annotation-spacing.mdx @@ -257,7 +257,7 @@ class Foo { } type Foo = { - name: (name : string)=>string; + name : (name : string)=>string; } type Foo = ()=>{}; diff --git a/node_modules/@typescript-eslint/eslint-plugin/package.json b/node_modules/@typescript-eslint/eslint-plugin/package.json index c189fdad62..17281aa134 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/package.json +++ b/node_modules/@typescript-eslint/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/eslint-plugin", - "version": "7.5.0", + "version": "7.7.0", "description": "TypeScript plugin for ESLint", "files": [ "dist", @@ -61,24 +61,25 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.5.0", - "@typescript-eslint/type-utils": "7.5.0", - "@typescript-eslint/utils": "7.5.0", - "@typescript-eslint/visitor-keys": "7.5.0", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/type-utils": "7.7.0", + "@typescript-eslint/utils": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "devDependencies": { "@types/debug": "*", "@types/marked": "*", + "@types/mdast": "^4.0.3", "@types/natural-compare": "*", - "@typescript-eslint/rule-schema-to-typescript-types": "7.5.0", - "@typescript-eslint/rule-tester": "7.5.0", + "@typescript-eslint/rule-schema-to-typescript-types": "7.7.0", + "@typescript-eslint/rule-tester": "7.7.0", "ajv": "^6.12.6", "chalk": "^5.3.0", "cross-env": "^7.0.3", @@ -89,12 +90,16 @@ "jest-specific-snapshot": "^8.0.0", "json-schema": "*", "markdown-table": "^3.0.3", - "marked": "^5.1.1", - "prettier": "^3.0.3", + "marked": "^5.1.2", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0", + "prettier": "^3.2.5", "rimraf": "*", "title-case": "^3.0.3", "tsx": "*", - "typescript": "*" + "typescript": "*", + "unist-util-visit": "^5.0.0" }, "peerDependencies": { "@typescript-eslint/parser": "^7.0.0", diff --git a/node_modules/@typescript-eslint/parser/package.json b/node_modules/@typescript-eslint/parser/package.json index e46034e217..813f05ae73 100644 --- a/node_modules/@typescript-eslint/parser/package.json +++ b/node_modules/@typescript-eslint/parser/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/parser", - "version": "7.5.0", + "version": "7.7.0", "description": "An ESLint custom parser which leverages TypeScript ESTree", "files": [ "dist", @@ -52,10 +52,10 @@ "eslint": "^8.56.0" }, "dependencies": { - "@typescript-eslint/scope-manager": "7.5.0", - "@typescript-eslint/types": "7.5.0", - "@typescript-eslint/typescript-estree": "7.5.0", - "@typescript-eslint/visitor-keys": "7.5.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4" }, "devDependencies": { @@ -63,7 +63,7 @@ "downlevel-dts": "*", "glob": "*", "jest": "29.7.0", - "prettier": "^3.0.3", + "prettier": "^3.2.5", "rimraf": "*", "typescript": "*" }, diff --git a/node_modules/@typescript-eslint/scope-manager/package.json b/node_modules/@typescript-eslint/scope-manager/package.json index 498fc73f2f..5c10b9aed0 100644 --- a/node_modules/@typescript-eslint/scope-manager/package.json +++ b/node_modules/@typescript-eslint/scope-manager/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/scope-manager", - "version": "7.5.0", + "version": "7.7.0", "description": "TypeScript scope analyser for ESLint", "files": [ "dist", @@ -46,12 +46,12 @@ "typecheck": "npx nx typecheck" }, "dependencies": { - "@typescript-eslint/types": "7.5.0", - "@typescript-eslint/visitor-keys": "7.5.0" + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" }, "devDependencies": { "@types/glob": "*", - "@typescript-eslint/typescript-estree": "7.5.0", + "@typescript-eslint/typescript-estree": "7.7.0", "glob": "*", "jest-specific-snapshot": "*", "make-dir": "*", diff --git a/node_modules/@typescript-eslint/type-utils/package.json b/node_modules/@typescript-eslint/type-utils/package.json index 088c145fe8..ec1b094c09 100644 --- a/node_modules/@typescript-eslint/type-utils/package.json +++ b/node_modules/@typescript-eslint/type-utils/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/type-utils", - "version": "7.5.0", + "version": "7.7.0", "description": "Type utilities for working with TypeScript + ESLint together", "files": [ "dist", @@ -46,17 +46,17 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/typescript-estree": "7.5.0", - "@typescript-eslint/utils": "7.5.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/utils": "7.7.0", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "devDependencies": { - "@typescript-eslint/parser": "7.5.0", - "ajv": "^6.10.0", + "@typescript-eslint/parser": "7.7.0", + "ajv": "^6.12.6", "downlevel-dts": "*", "jest": "29.7.0", - "prettier": "^3.0.3", + "prettier": "^3.2.5", "rimraf": "*", "typescript": "*" }, diff --git a/node_modules/@typescript-eslint/types/dist/parser-options.d.ts b/node_modules/@typescript-eslint/types/dist/parser-options.d.ts index 8905e2a969..1de84577cb 100644 --- a/node_modules/@typescript-eslint/types/dist/parser-options.d.ts +++ b/node_modules/@typescript-eslint/types/dist/parser-options.d.ts @@ -2,16 +2,16 @@ import type { Program } from 'typescript'; import type { Lib } from './lib'; type DebugLevel = ('eslint' | 'typescript-eslint' | 'typescript')[] | boolean; type CacheDurationSeconds = number | 'Infinity'; -type EcmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 'latest'; +type EcmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 'latest' | undefined; type SourceTypeClassic = 'module' | 'script'; type SourceType = SourceTypeClassic | 'commonjs'; type JSDocParsingMode = 'all' | 'none' | 'type-info'; interface ParserOptions { ecmaFeatures?: { - globalReturn?: boolean; - jsx?: boolean; + globalReturn?: boolean | undefined; + jsx?: boolean | undefined; [key: string]: unknown; - }; + } | undefined; ecmaVersion?: EcmaVersion; jsxPragma?: string | null; jsxFragmentName?: string | null; @@ -32,7 +32,7 @@ interface ParserOptions { project?: string[] | string | boolean | null; projectFolderIgnoreList?: (RegExp | string)[]; range?: boolean; - sourceType?: SourceType; + sourceType?: SourceType | undefined; tokens?: boolean; tsconfigRootDir?: string; warnOnUnsupportedTypeScriptVersion?: boolean; diff --git a/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map b/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map index 93e4ac8a35..715673839e 100644 --- a/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map +++ b/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC,KAAK,UAAU,GAAG,CAAC,QAAQ,GAAG,mBAAmB,GAAG,YAAY,CAAC,EAAE,GAAG,OAAO,CAAC;AAC9E,KAAK,oBAAoB,GAAG,MAAM,GAAG,UAAU,CAAC;AAEhD,KAAK,WAAW,GACZ,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,QAAQ,CAAC;AAEb,KAAK,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC7C,KAAK,UAAU,GAAG,iBAAiB,GAAG,UAAU,CAAC;AAEjD,KAAK,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;AAGrD,UAAU,aAAa;IACrB,YAAY,CAAC,EAAE;QACb,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,WAAW,CAAC,EAAE,WAAW,CAAC;IAG1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;IAGZ,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAGjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2CAA2C,CAAC,EAAE,OAAO,CAAC;IACtD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,gDAAgD,CAAC,EAAE,OAAO,CAAC;IAC3D,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC7C,uBAAuB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,aAAa,CAAC,EAAE;QACd,IAAI,CAAC,EAAE,oBAAoB,CAAC;KAC7B,CAAC;IAEF,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC;CACzC;AAED,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,UAAU,GACX,CAAC"} \ No newline at end of file +{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC,KAAK,UAAU,GAAG,CAAC,QAAQ,GAAG,mBAAmB,GAAG,YAAY,CAAC,EAAE,GAAG,OAAO,CAAC;AAC9E,KAAK,oBAAoB,GAAG,MAAM,GAAG,UAAU,CAAC;AAEhD,KAAK,WAAW,GACZ,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,EAAE,GACF,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,QAAQ,GACR,SAAS,CAAC;AAEd,KAAK,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC7C,KAAK,UAAU,GAAG,iBAAiB,GAAG,UAAU,CAAC;AAEjD,KAAK,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;AAGrD,UAAU,aAAa;IACrB,YAAY,CAAC,EACT;QACE,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QACnC,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GACD,SAAS,CAAC;IACd,WAAW,CAAC,EAAE,WAAW,CAAC;IAG1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;IAGZ,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAGjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2CAA2C,CAAC,EAAE,OAAO,CAAC;IACtD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,gDAAgD,CAAC,EAAE,OAAO,CAAC;IAC3D,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC7C,uBAAuB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,aAAa,CAAC,EAAE;QACd,IAAI,CAAC,EAAE,oBAAoB,CAAC;KAC7B,CAAC;IAEF,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC;CACzC;AAED,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,UAAU,GACX,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/package.json b/node_modules/@typescript-eslint/types/package.json index 23b2dfca12..253a38370b 100644 --- a/node_modules/@typescript-eslint/types/package.json +++ b/node_modules/@typescript-eslint/types/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/types", - "version": "7.5.0", + "version": "7.7.0", "description": "Types for the TypeScript-ESTree AST spec", "files": [ "dist", @@ -68,7 +68,7 @@ }, "devDependencies": { "downlevel-dts": "*", - "prettier": "^3.0.3", + "prettier": "^3.2.5", "rimraf": "*", "tsx": "*", "typescript": "*" diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectService.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectService.d.ts.map index a2b4206158..61af4a6771 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectService.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectService.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"createProjectService.d.ts","sourceRoot":"","sources":["../../src/create-program/createProjectService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAQ/D,MAAM,MAAM,wBAAwB,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC,2BAA2B,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD,OAAO,EAAE,wBAAwB,CAAC;CACnC;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,EACpD,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,GAAG,SAAS,GAChD,sBAAsB,CA8CxB"} \ No newline at end of file +{"version":3,"file":"createProjectService.d.ts","sourceRoot":"","sources":["../../src/create-program/createProjectService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAQ/D,MAAM,MAAM,wBAAwB,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC;AAEhE,MAAM,WAAW,sBAAsB;IACrC,2BAA2B,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD,OAAO,EAAE,wBAAwB,CAAC;CACnC;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,EACpD,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,GAAG,SAAS,GAChD,sBAAsB,CAkFxB"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectService.js b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectService.js index 3cb7af2428..43778d2213 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectService.js +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectService.js @@ -1,6 +1,11 @@ "use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.createProjectService = void 0; +/* eslint-disable @typescript-eslint/no-empty-function -- for TypeScript APIs*/ +const node_os_1 = __importDefault(require("node:os")); const doNothing = () => { }; const createStubFileWatcher = () => ({ close: doNothing, @@ -41,6 +46,23 @@ function createProjectService(options, jsDocParsingMode) { session: undefined, jsDocParsingMode, }); + if (typeof options === 'object' && options.defaultProject) { + let configRead; + try { + configRead = tsserver.readConfigFile(options.defaultProject, system.readFile); + } + catch (error) { + throw new Error(`Could not parse default project '${options.defaultProject}': ${error.message}`); + } + if (configRead.error) { + throw new Error(`Could not read default project '${options.defaultProject}': ${tsserver.formatDiagnostic(configRead.error, { + getCurrentDirectory: system.getCurrentDirectory, + getCanonicalFileName: fileName => fileName, + getNewLine: () => node_os_1.default.EOL, + })}`); + } + service.setCompilerOptionsForInferredProjects(configRead.config.compilerOptions); + } return { allowDefaultProjectForFiles: typeof options === 'object' ? options.allowDefaultProjectForFiles diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectService.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectService.js.map index da9ab15c7a..440f561d68 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectService.js.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectService.js.map @@ -1 +1 @@ -{"version":3,"file":"createProjectService.js","sourceRoot":"","sources":["../../src/create-program/createProjectService.ts"],"names":[],"mappings":";;;AAKA,MAAM,SAAS,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;AAEjC,MAAM,qBAAqB,GAAG,GAAmB,EAAE,CAAC,CAAC;IACnD,KAAK,EAAE,SAAS;CACjB,CAAC,CAAC;AASH,SAAgB,oBAAoB,CAClC,OAAoD,EACpD,gBAAiD;IAEjD,8EAA8E;IAC9E,iFAAiF;IACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,gCAAgC,CAAc,CAAC;IAExE,wCAAwC;IACxC,uEAAuE;IACvE,8GAA8G;IAC9G,sCAAsC;IACtC,MAAM,MAAM,GAAyB;QACnC,GAAG,QAAQ,CAAC,GAAG;QACf,cAAc;QACd,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,cAAc,EAAE,qBAAqB;QACrC,SAAS,EAAE,qBAAqB;KACjC,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;QACjD,IAAI,EAAE,MAAM;QACZ,iBAAiB,EAAE,EAAE,uBAAuB,EAAE,GAAY,EAAE,CAAC,KAAK,EAAE;QACpE,wBAAwB,EAAE,KAAK;QAC/B,gCAAgC,EAAE,KAAK;QACvC,MAAM,EAAE;YACN,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,SAAS;YACnB,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;YAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;YACrB,IAAI,EAAE,SAAS;YACf,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK;YAC3B,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;SACtB;QACD,OAAO,EAAE,SAAS;QAClB,gBAAgB;KACjB,CAAC,CAAC;IAEH,OAAO;QACL,2BAA2B,EACzB,OAAO,OAAO,KAAK,QAAQ;YACzB,CAAC,CAAC,OAAO,CAAC,2BAA2B;YACrC,CAAC,CAAC,SAAS;QACf,OAAO;KACR,CAAC;AACJ,CAAC;AAjDD,oDAiDC"} \ No newline at end of file +{"version":3,"file":"createProjectService.js","sourceRoot":"","sources":["../../src/create-program/createProjectService.ts"],"names":[],"mappings":";;;;;;AAAA,+EAA+E;AAC/E,sDAAyB;AAMzB,MAAM,SAAS,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;AAEjC,MAAM,qBAAqB,GAAG,GAAmB,EAAE,CAAC,CAAC;IACnD,KAAK,EAAE,SAAS;CACjB,CAAC,CAAC;AASH,SAAgB,oBAAoB,CAClC,OAAoD,EACpD,gBAAiD;IAEjD,8EAA8E;IAC9E,iFAAiF;IACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,gCAAgC,CAAc,CAAC;IAExE,wCAAwC;IACxC,uEAAuE;IACvE,8GAA8G;IAC9G,sCAAsC;IACtC,MAAM,MAAM,GAAyB;QACnC,GAAG,QAAQ,CAAC,GAAG;QACf,cAAc;QACd,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,cAAc,EAAE,qBAAqB;QACrC,SAAS,EAAE,qBAAqB;KACjC,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;QACjD,IAAI,EAAE,MAAM;QACZ,iBAAiB,EAAE,EAAE,uBAAuB,EAAE,GAAY,EAAE,CAAC,KAAK,EAAE;QACpE,wBAAwB,EAAE,KAAK;QAC/B,gCAAgC,EAAE,KAAK;QACvC,MAAM,EAAE;YACN,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,SAAS;YACnB,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;YAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;YACrB,IAAI,EAAE,SAAS;YACf,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK;YAC3B,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,SAAS;SACtB;QACD,OAAO,EAAE,SAAS;QAClB,gBAAgB;KACjB,CAAC,CAAC;IAEH,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC1D,IAAI,UAAU,CAAC;QAEf,IAAI,CAAC;YACH,UAAU,GAAG,QAAQ,CAAC,cAAc,CAClC,OAAO,CAAC,cAAc,EACtB,MAAM,CAAC,QAAQ,CAChB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,oCAAoC,OAAO,CAAC,cAAc,MAAO,KAAe,CAAC,OAAO,EAAE,CAC3F,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,mCAAmC,OAAO,CAAC,cAAc,MAAM,QAAQ,CAAC,gBAAgB,CACtF,UAAU,CAAC,KAAK,EAChB;gBACE,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;gBAC/C,oBAAoB,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ;gBAC1C,UAAU,EAAE,GAAG,EAAE,CAAC,iBAAE,CAAC,GAAG;aACzB,CACF,EAAE,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,qCAAqC,CAEzC,UAAU,CAAC,MAGZ,CAAC,eAAe,CAClB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,2BAA2B,EACzB,OAAO,OAAO,KAAK,QAAQ;YACzB,CAAC,CAAC,OAAO,CAAC,2BAA2B;YACrC,CAAC,CAAC,SAAS;QACf,OAAO;KACR,CAAC;AACJ,CAAC;AArFD,oDAqFC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts index d876df9e3d..7dd2651592 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts +++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts @@ -79,9 +79,13 @@ interface ParseOptions { */ export interface ProjectServiceOptions { /** - * Globs of files to allow running with the default inferred project settings. + * Globs of files to allow running with the default project compiler options. */ allowDefaultProjectForFiles?: string[]; + /** + * Path to a TSConfig to use instead of TypeScript's default project configuration. + */ + defaultProject?: string; } interface ParseAndGenerateServicesOptions extends ParseOptions { /** @@ -170,6 +174,9 @@ interface ParseAndGenerateServicesOptions extends ParseOptions { * * When allowAutomaticSingleRunInference is enabled, we will use common heuristics to infer * whether or not ESLint is being used as part of a single run. + * + * This setting's default value can be specified by setting a `TSESTREE_SINGLE_RUN` + * environment variable to `"false"` or `"true"`. */ allowAutomaticSingleRunInference?: boolean; /** diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map index b500e938d8..aff39fa670 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM/E,UAAU,YAAY;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;;;;;;OAQG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAOd,QAAQ,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IAE/C;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC;CACxC;AAED,UAAU,+BAAgC,SAAQ,YAAY;IAC5D;;OAEG;IACH,2CAA2C,CAAC,EAAE,OAAO,CAAC;IAEtD;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;IAEjE;;;;;;;;;OASG;IACH,gDAAgD,CAAC,EAAE,OAAO,CAAC;IAE3D;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAE7C;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IAE/B;;;OAGG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAE3C;;;;;;;;;;;OAWG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAE3C;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE;QACd;;WAEG;QACH,IAAI,CAAC,EAAE,oBAAoB,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GAAG,+BAA+B,CAAC;AAI9D,MAAM,WAAW,aAAa,CAAC,GAAG,EAAE,SAAS;IAC3C,GAAG,CAAC,KAAK,SAAS,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC;IAC9C,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,2BAA2B,CAC1C,GAAG,SAAS,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI;IAEzC,GAAG,CAAC,OAAO,SAAS,GAAG,EAAE,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClE,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3C,sBAAsB,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7C;AACD,MAAM,WAAW,sBAAsB;IACrC,qBAAqB,EAAE,2BAA2B,CAAC;IACnD,qBAAqB,EAAE,aAAa,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CACvE;AACD,MAAM,WAAW,iCACf,SAAQ,sBAAsB,EAC5B,kBAAkB;IACpB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IACpB,mBAAmB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC;IACpE,iBAAiB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC;CACrD;AACD,MAAM,WAAW,oCACf,SAAQ,sBAAsB,EAC5B,kBAAkB;IACpB,OAAO,EAAE,IAAI,CAAC;CACf;AACD,MAAM,MAAM,cAAc,GACtB,oCAAoC,GACpC,iCAAiC,CAAC"} \ No newline at end of file +{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM/E,UAAU,YAAY;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;;;;;;OAQG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAOd,QAAQ,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IAE/C;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,+BAAgC,SAAQ,YAAY;IAC5D;;OAEG;IACH,2CAA2C,CAAC,EAAE,OAAO,CAAC;IAEtD;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;IAEjE;;;;;;;;;OASG;IACH,gDAAgD,CAAC,EAAE,OAAO,CAAC;IAE3D;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAE7C;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IAE/B;;;OAGG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAE3C;;;;;;;;;;;;;;OAcG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAE3C;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE;QACd;;WAEG;QACH,IAAI,CAAC,EAAE,oBAAoB,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GAAG,+BAA+B,CAAC;AAI9D,MAAM,WAAW,aAAa,CAAC,GAAG,EAAE,SAAS;IAC3C,GAAG,CAAC,KAAK,SAAS,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC;IAC9C,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,2BAA2B,CAC1C,GAAG,SAAS,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI;IAEzC,GAAG,CAAC,OAAO,SAAS,GAAG,EAAE,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClE,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3C,sBAAsB,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7C;AACD,MAAM,WAAW,sBAAsB;IACrC,qBAAqB,EAAE,2BAA2B,CAAC;IACnD,qBAAqB,EAAE,aAAa,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CACvE;AACD,MAAM,WAAW,iCACf,SAAQ,sBAAsB,EAC5B,kBAAkB;IACpB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IACpB,mBAAmB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC;IACpE,iBAAiB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC;CACrD;AACD,MAAM,WAAW,oCACf,SAAQ,sBAAsB,EAC5B,kBAAkB;IACpB,OAAO,EAAE,IAAI,CAAC;CACf;AACD,MAAM,MAAM,cAAc,GACtB,oCAAoC,GACpC,iCAAiC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/ast.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/ast.js.map deleted file mode 100644 index 89b84ac9fc..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/ast.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"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","sourcesContent":["// parse a single path portion\n\nimport { parseClass } from './brace-expressions.js'\nimport { MinimatchOptions, MMRegExp } from './index.js'\nimport { unescape } from './unescape.js'\n\n// classes [] are handled by the parseClass method\n// for positive extglobs, we sub-parse the contents, and combine,\n// with the appropriate regexp close.\n// for negative extglobs, we sub-parse the contents, but then\n// have to include the rest of the pattern, then the parent, etc.,\n// as the thing that cannot be because RegExp negative lookaheads\n// are different from globs.\n//\n// So for example:\n// a@(i|w!(x|y)z|j)b => ^a(i|w((!?(x|y)zb).*)z|j)b$\n// 1 2 3 4 5 6 1 2 3 46 5 6\n//\n// Assembling the extglob requires not just the negated patterns themselves,\n// but also anything following the negative patterns up to the boundary\n// of the current pattern, plus anything following in the parent pattern.\n//\n//\n// So, first, we parse the string into an AST of extglobs, without turning\n// anything into regexps yet.\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y']}, 'z'], ['j']]}, 'b']\n//\n// Then, for all the negative extglobs, we append whatever comes after in\n// each parent as their tail\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y'], 'z', 'b'}, 'z'], ['j']]}, 'b']\n//\n// Lastly, we turn each of these pieces into a regexp, and join\n//\n// v----- .* because there's more following,\n// v v otherwise, .+ because it must be\n// v v *something* there.\n// ['^a', {@ ['i', 'w(?:(!?(?:x|y).*zb$).*)z', 'j' ]}, 'b$']\n// copy what follows into here--^^^^^\n// ['^a', '(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)', 'b$']\n// ['^a(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)b$']\n\nexport type ExtglobType = '!' | '?' | '+' | '*' | '@'\nconst types = new Set(['!', '?', '+', '*', '@'])\nconst isExtglobType = (c: string): c is ExtglobType =>\n types.has(c as ExtglobType)\n\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))'\nconst startNoDot = '(?!\\\\.)'\n\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.'])\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.'])\nconst reSpecials = new Set('().*{}+?[]^$\\\\!')\nconst regExpEscape = (s: string) =>\n s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// any single thing other than /\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?'\n\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\n\nexport class AST {\n type: ExtglobType | null\n readonly #root: AST\n\n #hasMagic?: boolean\n #uflag: boolean = false\n #parts: (string | AST)[] = []\n readonly #parent?: AST\n readonly #parentIndex: number\n #negs: AST[]\n #filledNegs: boolean = false\n #options: MinimatchOptions\n #toString?: string\n // set to true if it's an extglob with no children\n // (which really means one child of '')\n #emptyExt: boolean = false\n\n constructor(\n type: ExtglobType | null,\n parent?: AST,\n options: MinimatchOptions = {}\n ) {\n this.type = type\n // extglobs are inherently magical\n if (type) this.#hasMagic = true\n this.#parent = parent\n this.#root = this.#parent ? this.#parent.#root : this\n this.#options = this.#root === this ? options : this.#root.#options\n this.#negs = this.#root === this ? [] : this.#root.#negs\n if (type === '!' && !this.#root.#filledNegs) this.#negs.push(this)\n this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0\n }\n\n get hasMagic(): boolean | undefined {\n /* c8 ignore start */\n if (this.#hasMagic !== undefined) return this.#hasMagic\n /* c8 ignore stop */\n for (const p of this.#parts) {\n if (typeof p === 'string') continue\n if (p.type || p.hasMagic) return (this.#hasMagic = true)\n }\n // note: will be undefined until we generate the regexp src and find out\n return this.#hasMagic\n }\n\n // reconstructs the pattern\n toString(): string {\n if (this.#toString !== undefined) return this.#toString\n if (!this.type) {\n return (this.#toString = this.#parts.map(p => String(p)).join(''))\n } else {\n return (this.#toString =\n this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')')\n }\n }\n\n #fillNegs() {\n /* c8 ignore start */\n if (this !== this.#root) throw new Error('should only call on root')\n if (this.#filledNegs) return this\n /* c8 ignore stop */\n\n // call toString() once to fill this out\n this.toString()\n this.#filledNegs = true\n let n: AST | undefined\n while ((n = this.#negs.pop())) {\n if (n.type !== '!') continue\n // walk up the tree, appending everthing that comes AFTER parentIndex\n let p: AST | undefined = n\n let pp = p.#parent\n while (pp) {\n for (\n let i = p.#parentIndex + 1;\n !pp.type && i < pp.#parts.length;\n i++\n ) {\n for (const part of n.#parts) {\n /* c8 ignore start */\n if (typeof part === 'string') {\n throw new Error('string part in extglob AST??')\n }\n /* c8 ignore stop */\n part.copyIn(pp.#parts[i])\n }\n }\n p = pp\n pp = p.#parent\n }\n }\n return this\n }\n\n push(...parts: (string | AST)[]) {\n for (const p of parts) {\n if (p === '') continue\n /* c8 ignore start */\n if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n throw new Error('invalid part: ' + p)\n }\n /* c8 ignore stop */\n this.#parts.push(p)\n }\n }\n\n toJSON() {\n const ret: any[] =\n this.type === null\n ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n : [this.type, ...this.#parts.map(p => (p as AST).toJSON())]\n if (this.isStart() && !this.type) ret.unshift([])\n if (\n this.isEnd() &&\n (this === this.#root ||\n (this.#root.#filledNegs && this.#parent?.type === '!'))\n ) {\n ret.push({})\n }\n return ret\n }\n\n isStart(): boolean {\n if (this.#root === this) return true\n // if (this.type) return !!this.#parent?.isStart()\n if (!this.#parent?.isStart()) return false\n if (this.#parentIndex === 0) return true\n // if everything AHEAD of this is a negation, then it's still the \"start\"\n const p = this.#parent\n for (let i = 0; i < this.#parentIndex; i++) {\n const pp = p.#parts[i]\n if (!(pp instanceof AST && pp.type === '!')) {\n return false\n }\n }\n return true\n }\n\n isEnd(): boolean {\n if (this.#root === this) return true\n if (this.#parent?.type === '!') return true\n if (!this.#parent?.isEnd()) return false\n if (!this.type) return this.#parent?.isEnd()\n // if not root, it'll always have a parent\n /* c8 ignore start */\n const pl = this.#parent ? this.#parent.#parts.length : 0\n /* c8 ignore stop */\n return this.#parentIndex === pl - 1\n }\n\n copyIn(part: AST | string) {\n if (typeof part === 'string') this.push(part)\n else this.push(part.clone(this))\n }\n\n clone(parent: AST) {\n const c = new AST(this.type, parent)\n for (const p of this.#parts) {\n c.copyIn(p)\n }\n return c\n }\n\n static #parseAST(\n str: string,\n ast: AST,\n pos: number,\n opt: MinimatchOptions\n ): number {\n let escaping = false\n let inBrace = false\n let braceStart = -1\n let braceNeg = false\n if (ast.type === null) {\n // outside of a extglob, append until we find a start\n let i = pos\n let acc = ''\n while (i < str.length) {\n const c = str.charAt(i++)\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping\n acc += c\n continue\n }\n\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true\n }\n } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false\n }\n acc += c\n continue\n } else if (c === '[') {\n inBrace = true\n braceStart = i\n braceNeg = false\n acc += c\n continue\n }\n\n if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n ast.push(acc)\n acc = ''\n const ext = new AST(c, ast)\n i = AST.#parseAST(str, ext, i, opt)\n ast.push(ext)\n continue\n }\n acc += c\n }\n ast.push(acc)\n return i\n }\n\n // some kind of extglob, pos is at the (\n // find the next | or )\n let i = pos + 1\n let part = new AST(null, ast)\n const parts: AST[] = []\n let acc = ''\n while (i < str.length) {\n const c = str.charAt(i++)\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping\n acc += c\n continue\n }\n\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true\n }\n } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false\n }\n acc += c\n continue\n } else if (c === '[') {\n inBrace = true\n braceStart = i\n braceNeg = false\n acc += c\n continue\n }\n\n if (isExtglobType(c) && str.charAt(i) === '(') {\n part.push(acc)\n acc = ''\n const ext = new AST(c, part)\n part.push(ext)\n i = AST.#parseAST(str, ext, i, opt)\n continue\n }\n if (c === '|') {\n part.push(acc)\n acc = ''\n parts.push(part)\n part = new AST(null, ast)\n continue\n }\n if (c === ')') {\n if (acc === '' && ast.#parts.length === 0) {\n ast.#emptyExt = true\n }\n part.push(acc)\n acc = ''\n ast.push(...parts, part)\n return i\n }\n acc += c\n }\n\n // unfinished extglob\n // if we got here, it was a malformed extglob! not an extglob, but\n // maybe something else in there.\n ast.type = null\n ast.#hasMagic = undefined\n ast.#parts = [str.substring(pos - 1)]\n return i\n }\n\n static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n const ast = new AST(null, undefined, options)\n AST.#parseAST(pattern, ast, 0, options)\n return ast\n }\n\n // returns the regular expression if there's magic, or the unescaped\n // string if not.\n toMMPattern(): MMRegExp | string {\n // should only be called on root\n /* c8 ignore start */\n if (this !== this.#root) return this.#root.toMMPattern()\n /* c8 ignore stop */\n const glob = this.toString()\n const [re, body, hasMagic, uflag] = this.toRegExpSource()\n // if we're in nocase mode, and not nocaseMagicOnly, then we do\n // still need a regular expression if we have to case-insensitively\n // match capital/lowercase characters.\n const anyMagic =\n hasMagic ||\n this.#hasMagic ||\n (this.#options.nocase &&\n !this.#options.nocaseMagicOnly &&\n glob.toUpperCase() !== glob.toLowerCase())\n if (!anyMagic) {\n return body\n }\n\n const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '')\n return Object.assign(new RegExp(`^${re}$`, flags), {\n _src: re,\n _glob: glob,\n })\n }\n\n // returns the string match, the regexp source, whether there's magic\n // in the regexp (so a regular expression is required) and whether or\n // not the uflag is needed for the regular expression (for posix classes)\n // TODO: instead of injecting the start/end at this point, just return\n // the BODY of the regexp, along with the start/end portions suitable\n // for binding the start/end in either a joined full-path makeRe context\n // (where we bind to (^|/), or a standalone matchPart context (where\n // we bind to ^, and not /). Otherwise slashes get duped!\n //\n // In part-matching mode, the start is:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n // - if dots allowed or not possible: ^\n // - if dots possible and not allowed: ^(?!\\.)\n // end is:\n // - if not isEnd(): nothing\n // - else: $\n //\n // In full-path matching mode, we put the slash at the START of the\n // pattern, so start is:\n // - if first pattern: same as part-matching mode\n // - if not isStart(): nothing\n // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n // - if dots allowed or not possible: /\n // - if dots possible and not allowed: /(?!\\.)\n // end is:\n // - if last pattern, same as part-matching mode\n // - else nothing\n //\n // Always put the (?:$|/) on negated tails, though, because that has to be\n // there to bind the end of the negated pattern portion, and it's easier to\n // just stick it in now rather than try to inject it later in the middle of\n // the pattern.\n //\n // We can just always return the same end, and leave it up to the caller\n // to know whether it's going to be used joined or in parts.\n // And, if the start is adjusted slightly, can do the same there:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n // - if dots allowed or not possible: (?:/|^)\n // - if dots possible and not allowed: (?:/|^)(?!\\.)\n //\n // But it's better to have a simpler binding without a conditional, for\n // performance, so probably better to return both start options.\n //\n // Then the caller just ignores the end if it's not the first pattern,\n // and the start always gets applied.\n //\n // But that's always going to be $ if it's the ending pattern, or nothing,\n // so the caller can just attach $ at the end of the pattern when building.\n //\n // So the todo is:\n // - better detect what kind of start is needed\n // - return both flavors of starting pattern\n // - attach $ at the end of the pattern when creating the actual RegExp\n //\n // Ah, but wait, no, that all only applies to the root when the first pattern\n // is not an extglob. If the first pattern IS an extglob, then we need all\n // that dot prevention biz to live in the extglob portions, because eg\n // +(*|.x*) can match .xy but not .yx.\n //\n // So, return the two flavors if it's #root and the first child is not an\n // AST, otherwise leave it to the child AST to handle it, and there,\n // use the (?:^|/) style of start binding.\n //\n // Even simplified further:\n // - Since the start for a join is eg /(?!\\.) and the start for a part\n // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n // or start or whatever) and prepend ^ or / at the Regexp construction.\n toRegExpSource(\n allowDot?: boolean\n ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n const dot = allowDot ?? !!this.#options.dot\n if (this.#root === this) this.#fillNegs()\n if (!this.type) {\n const noEmpty = this.isStart() && this.isEnd()\n const src = this.#parts\n .map(p => {\n const [re, _, hasMagic, uflag] =\n typeof p === 'string'\n ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n : p.toRegExpSource(allowDot)\n this.#hasMagic = this.#hasMagic || hasMagic\n this.#uflag = this.#uflag || uflag\n return re\n })\n .join('')\n\n let start = ''\n if (this.isStart()) {\n if (typeof this.#parts[0] === 'string') {\n // this is the string that will match the start of the pattern,\n // so we need to protect against dots and such.\n\n // '.' and '..' cannot match unless the pattern is that exactly,\n // even if it starts with . or dot:true is set.\n const dotTravAllowed =\n this.#parts.length === 1 && justDots.has(this.#parts[0])\n if (!dotTravAllowed) {\n const aps = addPatternStart\n // check if we have a possibility of matching . or ..,\n // and prevent that.\n const needNoTrav =\n // dots are allowed, and the pattern starts with [ or .\n (dot && aps.has(src.charAt(0))) ||\n // the pattern starts with \\., and then [ or .\n (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n // the pattern starts with \\.\\., and then [ or .\n (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)))\n // no need to prevent dots if it can't match a dot, or if a\n // sub-pattern will be preventing it anyway.\n const needNoDot = !dot && !allowDot && aps.has(src.charAt(0))\n\n start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ''\n }\n }\n }\n\n // append the \"end of path portion\" pattern to negation tails\n let end = ''\n if (\n this.isEnd() &&\n this.#root.#filledNegs &&\n this.#parent?.type === '!'\n ) {\n end = '(?:$|\\\\/)'\n }\n const final = start + src + end\n return [\n final,\n unescape(src),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ]\n }\n\n // We need to calculate the body *twice* if it's a repeat pattern\n // at the start, once in nodot mode, then again in dot mode, so a\n // pattern like *(?) can match 'x.y'\n\n const repeated = this.type === '*' || this.type === '+'\n // some kind of extglob\n const start = this.type === '!' ? '(?:(?!(?:' : '(?:'\n let body = this.#partsToRegExp(dot)\n\n if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n // invalid extglob, has to at least be *something* present, if it's\n // the entire path portion.\n const s = this.toString()\n this.#parts = [s]\n this.type = null\n this.#hasMagic = undefined\n return [s, unescape(this.toString()), false, false]\n }\n\n // XXX abstract out this map method\n let bodyDotAllowed =\n !repeated || allowDot || dot || !startNoDot\n ? ''\n : this.#partsToRegExp(true)\n if (bodyDotAllowed === body) {\n bodyDotAllowed = ''\n }\n if (bodyDotAllowed) {\n body = `(?:${body})(?:${bodyDotAllowed})*?`\n }\n\n // an empty !() is exactly equivalent to a starNoEmpty\n let final = ''\n if (this.type === '!' && this.#emptyExt) {\n final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty\n } else {\n const close =\n this.type === '!'\n ? // !() must match something,but !(x) can match ''\n '))' +\n (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n star +\n ')'\n : this.type === '@'\n ? ')'\n : this.type === '?'\n ? ')?'\n : this.type === '+' && bodyDotAllowed\n ? ')'\n : this.type === '*' && bodyDotAllowed\n ? `)?`\n : `)${this.type}`\n final = start + body + close\n }\n return [\n final,\n unescape(body),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ]\n }\n\n #partsToRegExp(dot: boolean) {\n return this.#parts\n .map(p => {\n // extglob ASTs should only contain parent ASTs\n /* c8 ignore start */\n if (typeof p === 'string') {\n throw new Error('string type in extglob ast??')\n }\n /* c8 ignore stop */\n // can ignore hasMagic, because extglobs are already always magic\n const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot)\n this.#uflag = this.#uflag || uflag\n return re\n })\n .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n .join('|')\n }\n\n static #parseGlob(\n glob: string,\n hasMagic: boolean | undefined,\n noEmpty: boolean = false\n ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n let escaping = false\n let re = ''\n let uflag = false\n for (let i = 0; i < glob.length; i++) {\n const c = glob.charAt(i)\n if (escaping) {\n escaping = false\n re += (reSpecials.has(c) ? '\\\\' : '') + c\n continue\n }\n if (c === '\\\\') {\n if (i === glob.length - 1) {\n re += '\\\\\\\\'\n } else {\n escaping = true\n }\n continue\n }\n if (c === '[') {\n const [src, needUflag, consumed, magic] = parseClass(glob, i)\n if (consumed) {\n re += src\n uflag = uflag || needUflag\n i += consumed - 1\n hasMagic = hasMagic || magic\n continue\n }\n }\n if (c === '*') {\n if (noEmpty && glob === '*') re += starNoEmpty\n else re += star\n hasMagic = true\n continue\n }\n if (c === '?') {\n re += qmark\n hasMagic = true\n continue\n }\n re += regExpEscape(c)\n }\n return [re, unescape(glob), !!hasMagic, uflag]\n }\n}\n"]} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/index.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/index.js.map deleted file mode 100644 index 50574a2751..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import expand from 'brace-expansion'\nimport { assertValidPattern } from './assert-valid-pattern.js'\nimport { AST, ExtglobType } from './ast.js'\nimport { escape } from './escape.js'\nimport { unescape } from './unescape.js'\n\ntype Platform =\n | 'aix'\n | 'android'\n | 'darwin'\n | 'freebsd'\n | 'haiku'\n | 'linux'\n | 'openbsd'\n | 'sunos'\n | 'win32'\n | 'cygwin'\n | 'netbsd'\n\nexport interface MinimatchOptions {\n nobrace?: boolean\n nocomment?: boolean\n nonegate?: boolean\n debug?: boolean\n noglobstar?: boolean\n noext?: boolean\n nonull?: boolean\n windowsPathsNoEscape?: boolean\n allowWindowsEscape?: boolean\n partial?: boolean\n dot?: boolean\n nocase?: boolean\n nocaseMagicOnly?: boolean\n magicalBraces?: boolean\n matchBase?: boolean\n flipNegate?: boolean\n preserveMultipleSlashes?: boolean\n optimizationLevel?: number\n platform?: Platform\n windowsNoMagicRoot?: boolean\n}\n\nexport const minimatch = (\n p: string,\n pattern: string,\n options: MinimatchOptions = {}\n) => {\n assertValidPattern(pattern)\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n return new Minimatch(pattern, options).match(p)\n}\n\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/\nconst starDotExtTest = (ext: string) => (f: string) =>\n !f.startsWith('.') && f.endsWith(ext)\nconst starDotExtTestDot = (ext: string) => (f: string) => f.endsWith(ext)\nconst starDotExtTestNocase = (ext: string) => {\n ext = ext.toLowerCase()\n return (f: string) => !f.startsWith('.') && f.toLowerCase().endsWith(ext)\n}\nconst starDotExtTestNocaseDot = (ext: string) => {\n ext = ext.toLowerCase()\n return (f: string) => f.toLowerCase().endsWith(ext)\n}\nconst starDotStarRE = /^\\*+\\.\\*+$/\nconst starDotStarTest = (f: string) => !f.startsWith('.') && f.includes('.')\nconst starDotStarTestDot = (f: string) =>\n f !== '.' && f !== '..' && f.includes('.')\nconst dotStarRE = /^\\.\\*+$/\nconst dotStarTest = (f: string) => f !== '.' && f !== '..' && f.startsWith('.')\nconst starRE = /^\\*+$/\nconst starTest = (f: string) => f.length !== 0 && !f.startsWith('.')\nconst starTestDot = (f: string) => f.length !== 0 && f !== '.' && f !== '..'\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/\nconst qmarksTestNocase = ([$0, ext = '']: RegExpMatchArray) => {\n const noext = qmarksTestNoExt([$0])\n if (!ext) return noext\n ext = ext.toLowerCase()\n return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestNocaseDot = ([$0, ext = '']: RegExpMatchArray) => {\n const noext = qmarksTestNoExtDot([$0])\n if (!ext) return noext\n ext = ext.toLowerCase()\n return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestDot = ([$0, ext = '']: RegExpMatchArray) => {\n const noext = qmarksTestNoExtDot([$0])\n return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTest = ([$0, ext = '']: RegExpMatchArray) => {\n const noext = qmarksTestNoExt([$0])\n return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTestNoExt = ([$0]: RegExpMatchArray) => {\n const len = $0.length\n return (f: string) => f.length === len && !f.startsWith('.')\n}\nconst qmarksTestNoExtDot = ([$0]: RegExpMatchArray) => {\n const len = $0.length\n return (f: string) => f.length === len && f !== '.' && f !== '..'\n}\n\n/* c8 ignore start */\nconst defaultPlatform: Platform = (\n typeof process === 'object' && process\n ? (typeof process.env === 'object' &&\n process.env &&\n process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n process.platform\n : 'posix'\n) as Platform\ntype Sep = '\\\\' | '/'\nconst path: { [k: string]: { sep: Sep } } = {\n win32: { sep: '\\\\' },\n posix: { sep: '/' },\n}\n/* c8 ignore stop */\n\nexport const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep\nminimatch.sep = sep\n\nexport const GLOBSTAR = Symbol('globstar **')\nminimatch.GLOBSTAR = GLOBSTAR\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?'\n\nexport const filter =\n (pattern: string, options: MinimatchOptions = {}) =>\n (p: string) =>\n minimatch(p, pattern, options)\nminimatch.filter = filter\n\nconst ext = (a: MinimatchOptions, b: MinimatchOptions = {}) =>\n Object.assign({}, a, b)\n\nexport const defaults = (def: MinimatchOptions): typeof minimatch => {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return minimatch\n }\n\n const orig = minimatch\n\n const m = (p: string, pattern: string, options: MinimatchOptions = {}) =>\n orig(p, pattern, ext(def, options))\n\n return Object.assign(m, {\n Minimatch: class Minimatch extends orig.Minimatch {\n constructor(pattern: string, options: MinimatchOptions = {}) {\n super(pattern, ext(def, options))\n }\n static defaults(options: MinimatchOptions) {\n return orig.defaults(ext(def, options)).Minimatch\n }\n },\n\n AST: class AST extends orig.AST {\n /* c8 ignore start */\n constructor(\n type: ExtglobType | null,\n parent?: AST,\n options: MinimatchOptions = {}\n ) {\n super(type, parent, ext(def, options))\n }\n /* c8 ignore stop */\n\n static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n return orig.AST.fromGlob(pattern, ext(def, options))\n }\n },\n\n unescape: (\n s: string,\n options: Pick = {}\n ) => orig.unescape(s, ext(def, options)),\n\n escape: (\n s: string,\n options: Pick = {}\n ) => orig.escape(s, ext(def, options)),\n\n filter: (pattern: string, options: MinimatchOptions = {}) =>\n orig.filter(pattern, ext(def, options)),\n\n defaults: (options: MinimatchOptions) => orig.defaults(ext(def, options)),\n\n makeRe: (pattern: string, options: MinimatchOptions = {}) =>\n orig.makeRe(pattern, ext(def, options)),\n\n braceExpand: (pattern: string, options: MinimatchOptions = {}) =>\n orig.braceExpand(pattern, ext(def, options)),\n\n match: (list: string[], pattern: string, options: MinimatchOptions = {}) =>\n orig.match(list, pattern, ext(def, options)),\n\n sep: orig.sep,\n GLOBSTAR: GLOBSTAR as typeof GLOBSTAR,\n })\n}\nminimatch.defaults = defaults\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (\n pattern: string,\n options: MinimatchOptions = {}\n) => {\n assertValidPattern(pattern)\n\n // Thanks to Yeting Li for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern)\n}\nminimatch.braceExpand = braceExpand\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\n\nexport const makeRe = (pattern: string, options: MinimatchOptions = {}) =>\n new Minimatch(pattern, options).makeRe()\nminimatch.makeRe = makeRe\n\nexport const match = (\n list: string[],\n pattern: string,\n options: MinimatchOptions = {}\n) => {\n const mm = new Minimatch(pattern, options)\n list = list.filter(f => mm.match(f))\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\nminimatch.match = match\n\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/\nconst regExpEscape = (s: string) =>\n s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\nexport type MMRegExp = RegExp & {\n _src?: string\n _glob?: string\n}\n\nexport type ParseReturnFiltered = string | MMRegExp | typeof GLOBSTAR\nexport type ParseReturn = ParseReturnFiltered | false\n\nexport class Minimatch {\n options: MinimatchOptions\n set: ParseReturnFiltered[][]\n pattern: string\n\n windowsPathsNoEscape: boolean\n nonegate: boolean\n negate: boolean\n comment: boolean\n empty: boolean\n preserveMultipleSlashes: boolean\n partial: boolean\n globSet: string[]\n globParts: string[][]\n nocase: boolean\n\n isWindows: boolean\n platform: Platform\n windowsNoMagicRoot: boolean\n\n regexp: false | null | MMRegExp\n constructor(pattern: string, options: MinimatchOptions = {}) {\n assertValidPattern(pattern)\n\n options = options || {}\n this.options = options\n this.pattern = pattern\n this.platform = options.platform || defaultPlatform\n this.isWindows = this.platform === 'win32'\n this.windowsPathsNoEscape =\n !!options.windowsPathsNoEscape || options.allowWindowsEscape === false\n if (this.windowsPathsNoEscape) {\n this.pattern = this.pattern.replace(/\\\\/g, '/')\n }\n this.preserveMultipleSlashes = !!options.preserveMultipleSlashes\n this.regexp = null\n this.negate = false\n this.nonegate = !!options.nonegate\n this.comment = false\n this.empty = false\n this.partial = !!options.partial\n this.nocase = !!this.options.nocase\n this.windowsNoMagicRoot =\n options.windowsNoMagicRoot !== undefined\n ? options.windowsNoMagicRoot\n : !!(this.isWindows && this.nocase)\n\n this.globSet = []\n this.globParts = []\n this.set = []\n\n // make the set of regexps etc.\n this.make()\n }\n\n hasMagic(): boolean {\n if (this.options.magicalBraces && this.set.length > 1) {\n return true\n }\n for (const pattern of this.set) {\n for (const part of pattern) {\n if (typeof part !== 'string') return true\n }\n }\n return false\n }\n\n debug(..._: any[]) {}\n\n make() {\n const pattern = this.pattern\n const options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n this.globSet = [...new Set(this.braceExpand())]\n\n if (options.debug) {\n this.debug = (...args: any[]) => console.error(...args)\n }\n\n this.debug(this.pattern, this.globSet)\n\n // step 3: now we have a set, so turn each one into a series of\n // path-portion matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n //\n // First, we preprocess to make the glob pattern sets a bit simpler\n // and deduped. There are some perf-killing patterns that can cause\n // problems with a glob walk, but we can simplify them down a bit.\n const rawGlobParts = this.globSet.map(s => this.slashSplit(s))\n this.globParts = this.preprocess(rawGlobParts)\n this.debug(this.pattern, this.globParts)\n\n // glob --> regexps\n let set = this.globParts.map((s, _, __) => {\n if (this.isWindows && this.windowsNoMagicRoot) {\n // check if it's a drive or unc path.\n const isUNC =\n s[0] === '' &&\n s[1] === '' &&\n (s[2] === '?' || !globMagic.test(s[2])) &&\n !globMagic.test(s[3])\n const isDrive = /^[a-z]:/i.test(s[0])\n if (isUNC) {\n return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))]\n } else if (isDrive) {\n return [s[0], ...s.slice(1).map(ss => this.parse(ss))]\n }\n }\n return s.map(ss => this.parse(ss))\n })\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n this.set = set.filter(\n s => s.indexOf(false) === -1\n ) as ParseReturnFiltered[][]\n\n // do not treat the ? in UNC paths as magic\n if (this.isWindows) {\n for (let i = 0; i < this.set.length; i++) {\n const p = this.set[i]\n if (\n p[0] === '' &&\n p[1] === '' &&\n this.globParts[i][2] === '?' &&\n typeof p[3] === 'string' &&\n /^[a-z]:$/i.test(p[3])\n ) {\n p[2] = '?'\n }\n }\n }\n\n this.debug(this.pattern, this.set)\n }\n\n // various transforms to equivalent pattern sets that are\n // faster to process in a filesystem walk. The goal is to\n // eliminate what we can, and push all ** patterns as far\n // to the right as possible, even if it increases the number\n // of patterns that we have to process.\n preprocess(globParts: string[][]) {\n // if we're not in globstar mode, then turn all ** into *\n if (this.options.noglobstar) {\n for (let i = 0; i < globParts.length; i++) {\n for (let j = 0; j < globParts[i].length; j++) {\n if (globParts[i][j] === '**') {\n globParts[i][j] = '*'\n }\n }\n }\n }\n\n const { optimizationLevel = 1 } = this.options\n\n if (optimizationLevel >= 2) {\n // aggressive optimization for the purpose of fs walking\n globParts = this.firstPhasePreProcess(globParts)\n globParts = this.secondPhasePreProcess(globParts)\n } else if (optimizationLevel >= 1) {\n // just basic optimizations to remove some .. parts\n globParts = this.levelOneOptimize(globParts)\n } else {\n globParts = this.adjascentGlobstarOptimize(globParts)\n }\n\n return globParts\n }\n\n // just get rid of adjascent ** portions\n adjascentGlobstarOptimize(globParts: string[][]) {\n return globParts.map(parts => {\n let gs: number = -1\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let i = gs\n while (parts[i + 1] === '**') {\n i++\n }\n if (i !== gs) {\n parts.splice(gs, i - gs)\n }\n }\n return parts\n })\n }\n\n // get rid of adjascent ** and resolve .. portions\n levelOneOptimize(globParts: string[][]) {\n return globParts.map(parts => {\n parts = parts.reduce((set: string[], part) => {\n const prev = set[set.length - 1]\n if (part === '**' && prev === '**') {\n return set\n }\n if (part === '..') {\n if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n set.pop()\n return set\n }\n }\n set.push(part)\n return set\n }, [])\n return parts.length === 0 ? [''] : parts\n })\n }\n\n levelTwoFileOptimize(parts: string | string[]) {\n if (!Array.isArray(parts)) {\n parts = this.slashSplit(parts)\n }\n let didSomething: boolean = false\n do {\n didSomething = false\n //
// -> 
/\n      if (!this.preserveMultipleSlashes) {\n        for (let i = 1; i < parts.length - 1; i++) {\n          const p = parts[i]\n          // don't squeeze out UNC patterns\n          if (i === 1 && p === '' && parts[0] === '') continue\n          if (p === '.' || p === '') {\n            didSomething = true\n            parts.splice(i, 1)\n            i--\n          }\n        }\n        if (\n          parts[0] === '.' &&\n          parts.length === 2 &&\n          (parts[1] === '.' || parts[1] === '')\n        ) {\n          didSomething = true\n          parts.pop()\n        }\n      }\n\n      // 
/

/../ ->

/\n      let dd: number = 0\n      while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n        const p = parts[dd - 1]\n        if (p && p !== '.' && p !== '..' && p !== '**') {\n          didSomething = true\n          parts.splice(dd - 1, 2)\n          dd -= 2\n        }\n      }\n    } while (didSomething)\n    return parts.length === 0 ? [''] : parts\n  }\n\n  // First phase: single-pattern processing\n  // 
 is 1 or more portions\n  //  is 1 or more portions\n  // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n  // 
/

/../ ->

/\n  // **/**/ -> **/\n  //\n  // **/*/ -> */**/ <== not valid because ** doesn't follow\n  // this WOULD be allowed if ** did follow symlinks, or * didn't\n  firstPhasePreProcess(globParts: string[][]) {\n    let didSomething = false\n    do {\n      didSomething = false\n      // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs: number = -1\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss: number = gs\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n            gss++\n          }\n          // eg, if gs is 2 and gss is 4, that means we have 3 **\n          // parts, and can remove 2 of them.\n          if (gss > gs) {\n            parts.splice(gs + 1, gss - gs)\n          }\n\n          let next = parts[gs + 1]\n          const p = parts[gs + 2]\n          const p2 = parts[gs + 3]\n          if (next !== '..') continue\n          if (\n            !p ||\n            p === '.' ||\n            p === '..' ||\n            !p2 ||\n            p2 === '.' ||\n            p2 === '..'\n          ) {\n            continue\n          }\n          didSomething = true\n          // edit parts in place, and push the new one\n          parts.splice(gs, 1)\n          const other = parts.slice(0)\n          other[gs] = '**'\n          globParts.push(other)\n          gs--\n        }\n\n        // 
// -> 
/\n        if (!this.preserveMultipleSlashes) {\n          for (let i = 1; i < parts.length - 1; i++) {\n            const p = parts[i]\n            // don't squeeze out UNC patterns\n            if (i === 1 && p === '' && parts[0] === '') continue\n            if (p === '.' || p === '') {\n              didSomething = true\n              parts.splice(i, 1)\n              i--\n            }\n          }\n          if (\n            parts[0] === '.' &&\n            parts.length === 2 &&\n            (parts[1] === '.' || parts[1] === '')\n          ) {\n            didSomething = true\n            parts.pop()\n          }\n        }\n\n        // 
/

/../ ->

/\n        let dd: number = 0\n        while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n          const p = parts[dd - 1]\n          if (p && p !== '.' && p !== '..' && p !== '**') {\n            didSomething = true\n            const needDot = dd === 1 && parts[dd + 1] === '**'\n            const splin = needDot ? ['.'] : []\n            parts.splice(dd - 1, 2, ...splin)\n            if (parts.length === 0) parts.push('')\n            dd -= 2\n          }\n        }\n      }\n    } while (didSomething)\n\n    return globParts\n  }\n\n  // second phase: multi-pattern dedupes\n  // {
/*/,
/

/} ->

/*/\n  // {
/,
/} -> 
/\n  // {
/**/,
/} -> 
/**/\n  //\n  // {
/**/,
/**/

/} ->

/**/\n  // ^-- not valid because ** doens't follow symlinks\n  secondPhasePreProcess(globParts: string[][]): string[][] {\n    for (let i = 0; i < globParts.length - 1; i++) {\n      for (let j = i + 1; j < globParts.length; j++) {\n        const matched = this.partsMatch(\n          globParts[i],\n          globParts[j],\n          !this.preserveMultipleSlashes\n        )\n        if (!matched) continue\n        globParts[i] = matched\n        globParts[j] = []\n      }\n    }\n    return globParts.filter(gs => gs.length)\n  }\n\n  partsMatch(\n    a: string[],\n    b: string[],\n    emptyGSMatch: boolean = false\n  ): false | string[] {\n    let ai = 0\n    let bi = 0\n    let result: string[] = []\n    let which: string = ''\n    while (ai < a.length && bi < b.length) {\n      if (a[ai] === b[bi]) {\n        result.push(which === 'b' ? b[bi] : a[ai])\n        ai++\n        bi++\n      } else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n        result.push(a[ai])\n        ai++\n      } else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n        result.push(b[bi])\n        bi++\n      } else if (\n        a[ai] === '*' &&\n        b[bi] &&\n        (this.options.dot || !b[bi].startsWith('.')) &&\n        b[bi] !== '**'\n      ) {\n        if (which === 'b') return false\n        which = 'a'\n        result.push(a[ai])\n        ai++\n        bi++\n      } else if (\n        b[bi] === '*' &&\n        a[ai] &&\n        (this.options.dot || !a[ai].startsWith('.')) &&\n        a[ai] !== '**'\n      ) {\n        if (which === 'a') return false\n        which = 'b'\n        result.push(b[bi])\n        ai++\n        bi++\n      } else {\n        return false\n      }\n    }\n    // if we fall out of the loop, it means they two are identical\n    // as long as their lengths match\n    return a.length === b.length && result\n  }\n\n  parseNegate() {\n    if (this.nonegate) return\n\n    const pattern = this.pattern\n    let negate = false\n    let negateOffset = 0\n\n    for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n      negate = !negate\n      negateOffset++\n    }\n\n    if (negateOffset) this.pattern = pattern.slice(negateOffset)\n    this.negate = negate\n  }\n\n  // set partial to true to test if, for example,\n  // \"/a/b\" matches the start of \"/*/b/*/d\"\n  // Partial means, if you run out of file before you run\n  // out of pattern, then that's fine, as long as all\n  // the parts match.\n  matchOne(file: string[], pattern: ParseReturn[], partial: boolean = false) {\n    const options = this.options\n\n    // UNC paths like //?/X:/... can match X:/... and vice versa\n    // Drive letters in absolute drive or unc paths are always compared\n    // case-insensitively.\n    if (this.isWindows) {\n      const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0])\n      const fileUNC =\n        !fileDrive &&\n        file[0] === '' &&\n        file[1] === '' &&\n        file[2] === '?' &&\n        /^[a-z]:$/i.test(file[3])\n\n      const patternDrive =\n        typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0])\n      const patternUNC =\n        !patternDrive &&\n        pattern[0] === '' &&\n        pattern[1] === '' &&\n        pattern[2] === '?' &&\n        typeof pattern[3] === 'string' &&\n        /^[a-z]:$/i.test(pattern[3])\n\n      const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined\n      const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined\n      if (typeof fdi === 'number' && typeof pdi === 'number') {\n        const [fd, pd]: [string, string] = [file[fdi], pattern[pdi] as string]\n        if (fd.toLowerCase() === pd.toLowerCase()) {\n          pattern[pdi] = fd\n          if (pdi > fdi) {\n            pattern = pattern.slice( pdi)\n          } else if (fdi > pdi) {\n            file = file.slice(fdi)\n          }\n        }\n      }\n    }\n\n    // resolve and reduce . and .. portions in the file as well.\n    // dont' need to do the second phase, because it's only one string[]\n    const { optimizationLevel = 1 } = this.options\n    if (optimizationLevel >= 2) {\n      file = this.levelTwoFileOptimize(file)\n    }\n\n    this.debug('matchOne', this, { file, pattern })\n    this.debug('matchOne', file.length, pattern.length)\n\n    for (\n      var fi = 0, pi = 0, fl = file.length, pl = pattern.length;\n      fi < fl && pi < pl;\n      fi++, pi++\n    ) {\n      this.debug('matchOne loop')\n      var p = pattern[pi]\n      var f = file[fi]\n\n      this.debug(pattern, p, f)\n\n      // should be impossible.\n      // some invalid regexp stuff in the set.\n      /* c8 ignore start */\n      if (p === false) {\n        return false\n      }\n      /* c8 ignore stop */\n\n      if (p === GLOBSTAR) {\n        this.debug('GLOBSTAR', [pattern, p, f])\n\n        // \"**\"\n        // a/**/b/**/c would match the following:\n        // a/b/x/y/z/c\n        // a/x/y/z/b/c\n        // a/b/x/b/x/c\n        // a/b/c\n        // To do this, take the rest of the pattern after\n        // the **, and see if it would match the file remainder.\n        // If so, return success.\n        // If not, the ** \"swallows\" a segment, and try again.\n        // This is recursively awful.\n        //\n        // a/**/b/**/c matching a/b/x/y/z/c\n        // - a matches a\n        // - doublestar\n        //   - matchOne(b/x/y/z/c, b/**/c)\n        //     - b matches b\n        //     - doublestar\n        //       - matchOne(x/y/z/c, c) -> no\n        //       - matchOne(y/z/c, c) -> no\n        //       - matchOne(z/c, c) -> no\n        //       - matchOne(c, c) yes, hit\n        var fr = fi\n        var pr = pi + 1\n        if (pr === pl) {\n          this.debug('** at the end')\n          // a ** at the end will just swallow the rest.\n          // We have found a match.\n          // however, it will not swallow /.x, unless\n          // options.dot is set.\n          // . and .. are *never* matched by **, for explosively\n          // exponential reasons.\n          for (; fi < fl; fi++) {\n            if (\n              file[fi] === '.' ||\n              file[fi] === '..' ||\n              (!options.dot && file[fi].charAt(0) === '.')\n            )\n              return false\n          }\n          return true\n        }\n\n        // ok, let's see if we can swallow whatever we can.\n        while (fr < fl) {\n          var swallowee = file[fr]\n\n          this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n          // XXX remove this slice.  Just pass the start index.\n          if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n            this.debug('globstar found match!', fr, fl, swallowee)\n            // found a match.\n            return true\n          } else {\n            // can't swallow \".\" or \"..\" ever.\n            // can only swallow \".foo\" when explicitly asked.\n            if (\n              swallowee === '.' ||\n              swallowee === '..' ||\n              (!options.dot && swallowee.charAt(0) === '.')\n            ) {\n              this.debug('dot detected!', file, fr, pattern, pr)\n              break\n            }\n\n            // ** swallows a segment, and continue.\n            this.debug('globstar swallow a segment, and continue')\n            fr++\n          }\n        }\n\n        // no match was found.\n        // However, in partial mode, we can't say this is necessarily over.\n        /* c8 ignore start */\n        if (partial) {\n          // ran out of file\n          this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n          if (fr === fl) {\n            return true\n          }\n        }\n        /* c8 ignore stop */\n        return false\n      }\n\n      // something other than **\n      // non-magic patterns just have to match exactly\n      // patterns with magic have been turned into regexps.\n      let hit: boolean\n      if (typeof p === 'string') {\n        hit = f === p\n        this.debug('string match', p, f, hit)\n      } else {\n        hit = p.test(f)\n        this.debug('pattern match', p, f, hit)\n      }\n\n      if (!hit) return false\n    }\n\n    // Note: ending in / means that we'll get a final \"\"\n    // at the end of the pattern.  This can only match a\n    // corresponding \"\" at the end of the file.\n    // If the file ends in /, then it can only match a\n    // a pattern that ends in /, unless the pattern just\n    // doesn't have any more for it. But, a/b/ should *not*\n    // match \"a/b/*\", even though \"\" matches against the\n    // [^/]*? pattern, except in partial mode, where it might\n    // simply not be reached yet.\n    // However, a/b/ should still satisfy a/*\n\n    // now either we fell off the end of the pattern, or we're done.\n    if (fi === fl && pi === pl) {\n      // ran out of pattern and filename at the same time.\n      // an exact hit!\n      return true\n    } else if (fi === fl) {\n      // ran out of file, but still had pattern left.\n      // this is ok if we're doing the match as part of\n      // a glob fs traversal.\n      return partial\n    } else if (pi === pl) {\n      // ran out of pattern, still have file left.\n      // this is only acceptable if we're on the very last\n      // empty segment of a file with a trailing slash.\n      // a/* should match a/b/\n      return fi === fl - 1 && file[fi] === ''\n\n      /* c8 ignore start */\n    } else {\n      // should be unreachable.\n      throw new Error('wtf?')\n    }\n    /* c8 ignore stop */\n  }\n\n  braceExpand() {\n    return braceExpand(this.pattern, this.options)\n  }\n\n  parse(pattern: string): ParseReturn {\n    assertValidPattern(pattern)\n\n    const options = this.options\n\n    // shortcuts\n    if (pattern === '**') return GLOBSTAR\n    if (pattern === '') return ''\n\n    // far and away, the most common glob pattern parts are\n    // *, *.*, and *.  Add a fast check method for those.\n    let m: RegExpMatchArray | null\n    let fastTest: null | ((f: string) => boolean) = null\n    if ((m = pattern.match(starRE))) {\n      fastTest = options.dot ? starTestDot : starTest\n    } else if ((m = pattern.match(starDotExtRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? starDotExtTestNocaseDot\n            : starDotExtTestNocase\n          : options.dot\n          ? starDotExtTestDot\n          : starDotExtTest\n      )(m[1])\n    } else if ((m = pattern.match(qmarksRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? qmarksTestNocaseDot\n            : qmarksTestNocase\n          : options.dot\n          ? qmarksTestDot\n          : qmarksTest\n      )(m)\n    } else if ((m = pattern.match(starDotStarRE))) {\n      fastTest = options.dot ? starDotStarTestDot : starDotStarTest\n    } else if ((m = pattern.match(dotStarRE))) {\n      fastTest = dotStarTest\n    }\n\n    const re = AST.fromGlob(pattern, this.options).toMMPattern()\n    return fastTest ? Object.assign(re, { test: fastTest }) : re\n  }\n\n  makeRe() {\n    if (this.regexp || this.regexp === false) return this.regexp\n\n    // at this point, this.set is a 2d array of partial\n    // pattern strings, or \"**\".\n    //\n    // It's better to use .match().  This function shouldn't\n    // be used, really, but it's pretty convenient sometimes,\n    // when you just want to work with a regex.\n    const set = this.set\n\n    if (!set.length) {\n      this.regexp = false\n      return this.regexp\n    }\n    const options = this.options\n\n    const twoStar = options.noglobstar\n      ? star\n      : options.dot\n      ? twoStarDot\n      : twoStarNoDot\n    const flags = new Set(options.nocase ? ['i'] : [])\n\n    // regexpify non-globstar patterns\n    // if ** is only item, then we just do one twoStar\n    // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n    // if ** is last, append (\\/twoStar|) to previous\n    // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n    // then filter out GLOBSTAR symbols\n    let re = set\n      .map(pattern => {\n        const pp: (string | typeof GLOBSTAR)[] = pattern.map(p => {\n          if (p instanceof RegExp) {\n            for (const f of p.flags.split('')) flags.add(f)\n          }\n          return typeof p === 'string'\n            ? regExpEscape(p)\n            : p === GLOBSTAR\n            ? GLOBSTAR\n            : p._src\n        }) as (string | typeof GLOBSTAR)[]\n        pp.forEach((p, i) => {\n          const next = pp[i + 1]\n          const prev = pp[i - 1]\n          if (p !== GLOBSTAR || prev === GLOBSTAR) {\n            return\n          }\n          if (prev === undefined) {\n            if (next !== undefined && next !== GLOBSTAR) {\n              pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next\n            } else {\n              pp[i] = twoStar\n            }\n          } else if (next === undefined) {\n            pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?'\n          } else if (next !== GLOBSTAR) {\n            pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next\n            pp[i + 1] = GLOBSTAR\n          }\n        })\n        return pp.filter(p => p !== GLOBSTAR).join('/')\n      })\n      .join('|')\n\n    // need to wrap in parens if we had more than one thing with |,\n    // otherwise only the first will be anchored to ^ and the last to $\n    const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', '']\n    // must match entire pattern\n    // ending in a * or ** will make it less strict.\n    re = '^' + open + re + close + '$'\n\n    // can match anything, as long as it's not this.\n    if (this.negate) re = '^(?!' + re + ').+$'\n\n    try {\n      this.regexp = new RegExp(re, [...flags].join(''))\n      /* c8 ignore start */\n    } catch (ex) {\n      // should be impossible\n      this.regexp = false\n    }\n    /* c8 ignore stop */\n    return this.regexp\n  }\n\n  slashSplit(p: string) {\n    // if p starts with // on windows, we preserve that\n    // so that UNC paths aren't broken.  Otherwise, any number of\n    // / characters are coalesced into one, unless\n    // preserveMultipleSlashes is set to true.\n    if (this.preserveMultipleSlashes) {\n      return p.split('/')\n    } else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n      // add an extra '' for the one we lose\n      return ['', ...p.split(/\\/+/)]\n    } else {\n      return p.split(/\\/+/)\n    }\n  }\n\n  match(f: string, partial = this.partial) {\n    this.debug('match', f, this.pattern)\n    // short-circuit in the case of busted things.\n    // comments, etc.\n    if (this.comment) {\n      return false\n    }\n    if (this.empty) {\n      return f === ''\n    }\n\n    if (f === '/' && partial) {\n      return true\n    }\n\n    const options = this.options\n\n    // windows: need to use /, not \\\n    if (this.isWindows) {\n      f = f.split('\\\\').join('/')\n    }\n\n    // treat the test path as a set of pathparts.\n    const ff = this.slashSplit(f)\n    this.debug(this.pattern, 'split', ff)\n\n    // just ONE of the pattern sets in this.set needs to match\n    // in order for it to be valid.  If negating, then just one\n    // match means that we have failed.\n    // Either way, return on the first hit.\n\n    const set = this.set\n    this.debug(this.pattern, 'set', set)\n\n    // Find the basename of the path by looking for the last non-empty segment\n    let filename: string = ff[ff.length - 1]\n    if (!filename) {\n      for (let i = ff.length - 2; !filename && i >= 0; i--) {\n        filename = ff[i]\n      }\n    }\n\n    for (let i = 0; i < set.length; i++) {\n      const pattern = set[i]\n      let file = ff\n      if (options.matchBase && pattern.length === 1) {\n        file = [filename]\n      }\n      const hit = this.matchOne(file, pattern, partial)\n      if (hit) {\n        if (options.flipNegate) {\n          return true\n        }\n        return !this.negate\n      }\n    }\n\n    // didn't get any hits.  this is success if it's a negative\n    // pattern, failure otherwise.\n    if (options.flipNegate) {\n      return false\n    }\n    return this.negate\n  }\n\n  static defaults(def: MinimatchOptions) {\n    return minimatch.defaults(def).Minimatch\n  }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js'\nexport { escape } from './escape.js'\nexport { unescape } from './unescape.js'\n/* c8 ignore stop */\nminimatch.AST = AST\nminimatch.Minimatch = Minimatch\nminimatch.escape = escape\nminimatch.unescape = unescape\n"]}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/assert-valid-pattern.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/assert-valid-pattern.js
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/assert-valid-pattern.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/assert-valid-pattern.js.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/ast.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.d.ts
similarity index 91%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/ast.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.d.ts
index e08641b5b8..b8c1e5448e 100644
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/ast.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.d.ts
@@ -14,6 +14,7 @@ export declare class AST {
     clone(parent: AST): AST;
     static fromGlob(pattern: string, options?: MinimatchOptions): AST;
     toMMPattern(): MMRegExp | string;
+    get options(): MinimatchOptions;
     toRegExpSource(allowDot?: boolean): [re: string, body: string, hasMagic: boolean, uflag: boolean];
 }
 //# sourceMappingURL=ast.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/ast.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.d.ts.map
similarity index 81%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/ast.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.d.ts.map
index 5486a6893d..9e7bfb9a8b 100644
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/ast.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAwCvD,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAkCrD,qBAAa,GAAG;;IACd,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;gBAiBtB,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,GAAE,gBAAqB;IAahC,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,CAUlC;IAGD,QAAQ,IAAI,MAAM;IA+ClB,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;IAY/B,MAAM;IAgBN,OAAO,IAAI,OAAO;IAgBlB,KAAK,IAAI,OAAO;IAYhB,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAKzB,KAAK,CAAC,MAAM,EAAE,GAAG;IAsIjB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAQ/D,WAAW,IAAI,QAAQ,GAAG,MAAM;IAgGhC,cAAc,CACZ,QAAQ,CAAC,EAAE,OAAO,GACjB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;CAiMjE"}
\ No newline at end of file
+{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAwCvD,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAkCrD,qBAAa,GAAG;;IACd,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;gBAiBtB,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,GAAE,gBAAqB;IAahC,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,CAUlC;IAGD,QAAQ,IAAI,MAAM;IA+ClB,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;IAY/B,MAAM;IAgBN,OAAO,IAAI,OAAO;IAgBlB,KAAK,IAAI,OAAO;IAYhB,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAKzB,KAAK,CAAC,MAAM,EAAE,GAAG;IAsIjB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAQ/D,WAAW,IAAI,QAAQ,GAAG,MAAM;IA2BhC,IAAI,OAAO,qBAEV;IAuED,cAAc,CACZ,QAAQ,CAAC,EAAE,OAAO,GACjB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;CAiMjE"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/ast.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.js
similarity index 99%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/ast.js
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.js
index a98ae79b50..7b2109625e 100644
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/ast.js
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.js
@@ -338,6 +338,9 @@ class AST {
             _glob: glob,
         });
     }
+    get options() {
+        return this.#options;
+    }
     // returns the string match, the regexp source, whether there's magic
     // in the regexp (so a regular expression is required) and whether or
     // not the uflag is needed for the regular expression (for posix classes)
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.js.map
new file mode 100644
index 0000000000..8383e433bb
--- /dev/null
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/ast.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"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","sourcesContent":["// parse a single path portion\n\nimport { parseClass } from './brace-expressions.js'\nimport { MinimatchOptions, MMRegExp } from './index.js'\nimport { unescape } from './unescape.js'\n\n// classes [] are handled by the parseClass method\n// for positive extglobs, we sub-parse the contents, and combine,\n// with the appropriate regexp close.\n// for negative extglobs, we sub-parse the contents, but then\n// have to include the rest of the pattern, then the parent, etc.,\n// as the thing that cannot be because RegExp negative lookaheads\n// are different from globs.\n//\n// So for example:\n// a@(i|w!(x|y)z|j)b => ^a(i|w((!?(x|y)zb).*)z|j)b$\n//   1   2 3   4 5 6      1   2    3   46      5 6\n//\n// Assembling the extglob requires not just the negated patterns themselves,\n// but also anything following the negative patterns up to the boundary\n// of the current pattern, plus anything following in the parent pattern.\n//\n//\n// So, first, we parse the string into an AST of extglobs, without turning\n// anything into regexps yet.\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y']}, 'z'], ['j']]}, 'b']\n//\n// Then, for all the negative extglobs, we append whatever comes after in\n// each parent as their tail\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y'], 'z', 'b'}, 'z'], ['j']]}, 'b']\n//\n// Lastly, we turn each of these pieces into a regexp, and join\n//\n//                                 v----- .* because there's more following,\n//                                 v    v  otherwise, .+ because it must be\n//                                 v    v  *something* there.\n// ['^a', {@ ['i', 'w(?:(!?(?:x|y).*zb$).*)z', 'j' ]}, 'b$']\n//   copy what follows into here--^^^^^\n// ['^a', '(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)', 'b$']\n// ['^a(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)b$']\n\nexport type ExtglobType = '!' | '?' | '+' | '*' | '@'\nconst types = new Set(['!', '?', '+', '*', '@'])\nconst isExtglobType = (c: string): c is ExtglobType =>\n  types.has(c as ExtglobType)\n\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))'\nconst startNoDot = '(?!\\\\.)'\n\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.'])\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.'])\nconst reSpecials = new Set('().*{}+?[]^$\\\\!')\nconst regExpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// any single thing other than /\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?'\n\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\n\nexport class AST {\n  type: ExtglobType | null\n  readonly #root: AST\n\n  #hasMagic?: boolean\n  #uflag: boolean = false\n  #parts: (string | AST)[] = []\n  readonly #parent?: AST\n  readonly #parentIndex: number\n  #negs: AST[]\n  #filledNegs: boolean = false\n  #options: MinimatchOptions\n  #toString?: string\n  // set to true if it's an extglob with no children\n  // (which really means one child of '')\n  #emptyExt: boolean = false\n\n  constructor(\n    type: ExtglobType | null,\n    parent?: AST,\n    options: MinimatchOptions = {}\n  ) {\n    this.type = type\n    // extglobs are inherently magical\n    if (type) this.#hasMagic = true\n    this.#parent = parent\n    this.#root = this.#parent ? this.#parent.#root : this\n    this.#options = this.#root === this ? options : this.#root.#options\n    this.#negs = this.#root === this ? [] : this.#root.#negs\n    if (type === '!' && !this.#root.#filledNegs) this.#negs.push(this)\n    this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0\n  }\n\n  get hasMagic(): boolean | undefined {\n    /* c8 ignore start */\n    if (this.#hasMagic !== undefined) return this.#hasMagic\n    /* c8 ignore stop */\n    for (const p of this.#parts) {\n      if (typeof p === 'string') continue\n      if (p.type || p.hasMagic) return (this.#hasMagic = true)\n    }\n    // note: will be undefined until we generate the regexp src and find out\n    return this.#hasMagic\n  }\n\n  // reconstructs the pattern\n  toString(): string {\n    if (this.#toString !== undefined) return this.#toString\n    if (!this.type) {\n      return (this.#toString = this.#parts.map(p => String(p)).join(''))\n    } else {\n      return (this.#toString =\n        this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')')\n    }\n  }\n\n  #fillNegs() {\n    /* c8 ignore start */\n    if (this !== this.#root) throw new Error('should only call on root')\n    if (this.#filledNegs) return this\n    /* c8 ignore stop */\n\n    // call toString() once to fill this out\n    this.toString()\n    this.#filledNegs = true\n    let n: AST | undefined\n    while ((n = this.#negs.pop())) {\n      if (n.type !== '!') continue\n      // walk up the tree, appending everthing that comes AFTER parentIndex\n      let p: AST | undefined = n\n      let pp = p.#parent\n      while (pp) {\n        for (\n          let i = p.#parentIndex + 1;\n          !pp.type && i < pp.#parts.length;\n          i++\n        ) {\n          for (const part of n.#parts) {\n            /* c8 ignore start */\n            if (typeof part === 'string') {\n              throw new Error('string part in extglob AST??')\n            }\n            /* c8 ignore stop */\n            part.copyIn(pp.#parts[i])\n          }\n        }\n        p = pp\n        pp = p.#parent\n      }\n    }\n    return this\n  }\n\n  push(...parts: (string | AST)[]) {\n    for (const p of parts) {\n      if (p === '') continue\n      /* c8 ignore start */\n      if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n        throw new Error('invalid part: ' + p)\n      }\n      /* c8 ignore stop */\n      this.#parts.push(p)\n    }\n  }\n\n  toJSON() {\n    const ret: any[] =\n      this.type === null\n        ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n        : [this.type, ...this.#parts.map(p => (p as AST).toJSON())]\n    if (this.isStart() && !this.type) ret.unshift([])\n    if (\n      this.isEnd() &&\n      (this === this.#root ||\n        (this.#root.#filledNegs && this.#parent?.type === '!'))\n    ) {\n      ret.push({})\n    }\n    return ret\n  }\n\n  isStart(): boolean {\n    if (this.#root === this) return true\n    // if (this.type) return !!this.#parent?.isStart()\n    if (!this.#parent?.isStart()) return false\n    if (this.#parentIndex === 0) return true\n    // if everything AHEAD of this is a negation, then it's still the \"start\"\n    const p = this.#parent\n    for (let i = 0; i < this.#parentIndex; i++) {\n      const pp = p.#parts[i]\n      if (!(pp instanceof AST && pp.type === '!')) {\n        return false\n      }\n    }\n    return true\n  }\n\n  isEnd(): boolean {\n    if (this.#root === this) return true\n    if (this.#parent?.type === '!') return true\n    if (!this.#parent?.isEnd()) return false\n    if (!this.type) return this.#parent?.isEnd()\n    // if not root, it'll always have a parent\n    /* c8 ignore start */\n    const pl = this.#parent ? this.#parent.#parts.length : 0\n    /* c8 ignore stop */\n    return this.#parentIndex === pl - 1\n  }\n\n  copyIn(part: AST | string) {\n    if (typeof part === 'string') this.push(part)\n    else this.push(part.clone(this))\n  }\n\n  clone(parent: AST) {\n    const c = new AST(this.type, parent)\n    for (const p of this.#parts) {\n      c.copyIn(p)\n    }\n    return c\n  }\n\n  static #parseAST(\n    str: string,\n    ast: AST,\n    pos: number,\n    opt: MinimatchOptions\n  ): number {\n    let escaping = false\n    let inBrace = false\n    let braceStart = -1\n    let braceNeg = false\n    if (ast.type === null) {\n      // outside of a extglob, append until we find a start\n      let i = pos\n      let acc = ''\n      while (i < str.length) {\n        const c = str.charAt(i++)\n        // still accumulate escapes at this point, but we do ignore\n        // starts that are escaped\n        if (escaping || c === '\\\\') {\n          escaping = !escaping\n          acc += c\n          continue\n        }\n\n        if (inBrace) {\n          if (i === braceStart + 1) {\n            if (c === '^' || c === '!') {\n              braceNeg = true\n            }\n          } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n            inBrace = false\n          }\n          acc += c\n          continue\n        } else if (c === '[') {\n          inBrace = true\n          braceStart = i\n          braceNeg = false\n          acc += c\n          continue\n        }\n\n        if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n          ast.push(acc)\n          acc = ''\n          const ext = new AST(c, ast)\n          i = AST.#parseAST(str, ext, i, opt)\n          ast.push(ext)\n          continue\n        }\n        acc += c\n      }\n      ast.push(acc)\n      return i\n    }\n\n    // some kind of extglob, pos is at the (\n    // find the next | or )\n    let i = pos + 1\n    let part = new AST(null, ast)\n    const parts: AST[] = []\n    let acc = ''\n    while (i < str.length) {\n      const c = str.charAt(i++)\n      // still accumulate escapes at this point, but we do ignore\n      // starts that are escaped\n      if (escaping || c === '\\\\') {\n        escaping = !escaping\n        acc += c\n        continue\n      }\n\n      if (inBrace) {\n        if (i === braceStart + 1) {\n          if (c === '^' || c === '!') {\n            braceNeg = true\n          }\n        } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n          inBrace = false\n        }\n        acc += c\n        continue\n      } else if (c === '[') {\n        inBrace = true\n        braceStart = i\n        braceNeg = false\n        acc += c\n        continue\n      }\n\n      if (isExtglobType(c) && str.charAt(i) === '(') {\n        part.push(acc)\n        acc = ''\n        const ext = new AST(c, part)\n        part.push(ext)\n        i = AST.#parseAST(str, ext, i, opt)\n        continue\n      }\n      if (c === '|') {\n        part.push(acc)\n        acc = ''\n        parts.push(part)\n        part = new AST(null, ast)\n        continue\n      }\n      if (c === ')') {\n        if (acc === '' && ast.#parts.length === 0) {\n          ast.#emptyExt = true\n        }\n        part.push(acc)\n        acc = ''\n        ast.push(...parts, part)\n        return i\n      }\n      acc += c\n    }\n\n    // unfinished extglob\n    // if we got here, it was a malformed extglob! not an extglob, but\n    // maybe something else in there.\n    ast.type = null\n    ast.#hasMagic = undefined\n    ast.#parts = [str.substring(pos - 1)]\n    return i\n  }\n\n  static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n    const ast = new AST(null, undefined, options)\n    AST.#parseAST(pattern, ast, 0, options)\n    return ast\n  }\n\n  // returns the regular expression if there's magic, or the unescaped\n  // string if not.\n  toMMPattern(): MMRegExp | string {\n    // should only be called on root\n    /* c8 ignore start */\n    if (this !== this.#root) return this.#root.toMMPattern()\n    /* c8 ignore stop */\n    const glob = this.toString()\n    const [re, body, hasMagic, uflag] = this.toRegExpSource()\n    // if we're in nocase mode, and not nocaseMagicOnly, then we do\n    // still need a regular expression if we have to case-insensitively\n    // match capital/lowercase characters.\n    const anyMagic =\n      hasMagic ||\n      this.#hasMagic ||\n      (this.#options.nocase &&\n        !this.#options.nocaseMagicOnly &&\n        glob.toUpperCase() !== glob.toLowerCase())\n    if (!anyMagic) {\n      return body\n    }\n\n    const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '')\n    return Object.assign(new RegExp(`^${re}$`, flags), {\n      _src: re,\n      _glob: glob,\n    })\n  }\n\n  get options() {\n    return this.#options\n  }\n\n  // returns the string match, the regexp source, whether there's magic\n  // in the regexp (so a regular expression is required) and whether or\n  // not the uflag is needed for the regular expression (for posix classes)\n  // TODO: instead of injecting the start/end at this point, just return\n  // the BODY of the regexp, along with the start/end portions suitable\n  // for binding the start/end in either a joined full-path makeRe context\n  // (where we bind to (^|/), or a standalone matchPart context (where\n  // we bind to ^, and not /).  Otherwise slashes get duped!\n  //\n  // In part-matching mode, the start is:\n  // - if not isStart: nothing\n  // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n  // - if dots allowed or not possible: ^\n  // - if dots possible and not allowed: ^(?!\\.)\n  // end is:\n  // - if not isEnd(): nothing\n  // - else: $\n  //\n  // In full-path matching mode, we put the slash at the START of the\n  // pattern, so start is:\n  // - if first pattern: same as part-matching mode\n  // - if not isStart(): nothing\n  // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n  // - if dots allowed or not possible: /\n  // - if dots possible and not allowed: /(?!\\.)\n  // end is:\n  // - if last pattern, same as part-matching mode\n  // - else nothing\n  //\n  // Always put the (?:$|/) on negated tails, though, because that has to be\n  // there to bind the end of the negated pattern portion, and it's easier to\n  // just stick it in now rather than try to inject it later in the middle of\n  // the pattern.\n  //\n  // We can just always return the same end, and leave it up to the caller\n  // to know whether it's going to be used joined or in parts.\n  // And, if the start is adjusted slightly, can do the same there:\n  // - if not isStart: nothing\n  // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n  // - if dots allowed or not possible: (?:/|^)\n  // - if dots possible and not allowed: (?:/|^)(?!\\.)\n  //\n  // But it's better to have a simpler binding without a conditional, for\n  // performance, so probably better to return both start options.\n  //\n  // Then the caller just ignores the end if it's not the first pattern,\n  // and the start always gets applied.\n  //\n  // But that's always going to be $ if it's the ending pattern, or nothing,\n  // so the caller can just attach $ at the end of the pattern when building.\n  //\n  // So the todo is:\n  // - better detect what kind of start is needed\n  // - return both flavors of starting pattern\n  // - attach $ at the end of the pattern when creating the actual RegExp\n  //\n  // Ah, but wait, no, that all only applies to the root when the first pattern\n  // is not an extglob. If the first pattern IS an extglob, then we need all\n  // that dot prevention biz to live in the extglob portions, because eg\n  // +(*|.x*) can match .xy but not .yx.\n  //\n  // So, return the two flavors if it's #root and the first child is not an\n  // AST, otherwise leave it to the child AST to handle it, and there,\n  // use the (?:^|/) style of start binding.\n  //\n  // Even simplified further:\n  // - Since the start for a join is eg /(?!\\.) and the start for a part\n  // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n  // or start or whatever) and prepend ^ or / at the Regexp construction.\n  toRegExpSource(\n    allowDot?: boolean\n  ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n    const dot = allowDot ?? !!this.#options.dot\n    if (this.#root === this) this.#fillNegs()\n    if (!this.type) {\n      const noEmpty = this.isStart() && this.isEnd()\n      const src = this.#parts\n        .map(p => {\n          const [re, _, hasMagic, uflag] =\n            typeof p === 'string'\n              ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n              : p.toRegExpSource(allowDot)\n          this.#hasMagic = this.#hasMagic || hasMagic\n          this.#uflag = this.#uflag || uflag\n          return re\n        })\n        .join('')\n\n      let start = ''\n      if (this.isStart()) {\n        if (typeof this.#parts[0] === 'string') {\n          // this is the string that will match the start of the pattern,\n          // so we need to protect against dots and such.\n\n          // '.' and '..' cannot match unless the pattern is that exactly,\n          // even if it starts with . or dot:true is set.\n          const dotTravAllowed =\n            this.#parts.length === 1 && justDots.has(this.#parts[0])\n          if (!dotTravAllowed) {\n            const aps = addPatternStart\n            // check if we have a possibility of matching . or ..,\n            // and prevent that.\n            const needNoTrav =\n              // dots are allowed, and the pattern starts with [ or .\n              (dot && aps.has(src.charAt(0))) ||\n              // the pattern starts with \\., and then [ or .\n              (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n              // the pattern starts with \\.\\., and then [ or .\n              (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)))\n            // no need to prevent dots if it can't match a dot, or if a\n            // sub-pattern will be preventing it anyway.\n            const needNoDot = !dot && !allowDot && aps.has(src.charAt(0))\n\n            start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ''\n          }\n        }\n      }\n\n      // append the \"end of path portion\" pattern to negation tails\n      let end = ''\n      if (\n        this.isEnd() &&\n        this.#root.#filledNegs &&\n        this.#parent?.type === '!'\n      ) {\n        end = '(?:$|\\\\/)'\n      }\n      const final = start + src + end\n      return [\n        final,\n        unescape(src),\n        (this.#hasMagic = !!this.#hasMagic),\n        this.#uflag,\n      ]\n    }\n\n    // We need to calculate the body *twice* if it's a repeat pattern\n    // at the start, once in nodot mode, then again in dot mode, so a\n    // pattern like *(?) can match 'x.y'\n\n    const repeated = this.type === '*' || this.type === '+'\n    // some kind of extglob\n    const start = this.type === '!' ? '(?:(?!(?:' : '(?:'\n    let body = this.#partsToRegExp(dot)\n\n    if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n      // invalid extglob, has to at least be *something* present, if it's\n      // the entire path portion.\n      const s = this.toString()\n      this.#parts = [s]\n      this.type = null\n      this.#hasMagic = undefined\n      return [s, unescape(this.toString()), false, false]\n    }\n\n    // XXX abstract out this map method\n    let bodyDotAllowed =\n      !repeated || allowDot || dot || !startNoDot\n        ? ''\n        : this.#partsToRegExp(true)\n    if (bodyDotAllowed === body) {\n      bodyDotAllowed = ''\n    }\n    if (bodyDotAllowed) {\n      body = `(?:${body})(?:${bodyDotAllowed})*?`\n    }\n\n    // an empty !() is exactly equivalent to a starNoEmpty\n    let final = ''\n    if (this.type === '!' && this.#emptyExt) {\n      final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty\n    } else {\n      const close =\n        this.type === '!'\n          ? // !() must match something,but !(x) can match ''\n            '))' +\n            (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n            star +\n            ')'\n          : this.type === '@'\n          ? ')'\n          : this.type === '?'\n          ? ')?'\n          : this.type === '+' && bodyDotAllowed\n          ? ')'\n          : this.type === '*' && bodyDotAllowed\n          ? `)?`\n          : `)${this.type}`\n      final = start + body + close\n    }\n    return [\n      final,\n      unescape(body),\n      (this.#hasMagic = !!this.#hasMagic),\n      this.#uflag,\n    ]\n  }\n\n  #partsToRegExp(dot: boolean) {\n    return this.#parts\n      .map(p => {\n        // extglob ASTs should only contain parent ASTs\n        /* c8 ignore start */\n        if (typeof p === 'string') {\n          throw new Error('string type in extglob ast??')\n        }\n        /* c8 ignore stop */\n        // can ignore hasMagic, because extglobs are already always magic\n        const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot)\n        this.#uflag = this.#uflag || uflag\n        return re\n      })\n      .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n      .join('|')\n  }\n\n  static #parseGlob(\n    glob: string,\n    hasMagic: boolean | undefined,\n    noEmpty: boolean = false\n  ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n    let escaping = false\n    let re = ''\n    let uflag = false\n    for (let i = 0; i < glob.length; i++) {\n      const c = glob.charAt(i)\n      if (escaping) {\n        escaping = false\n        re += (reSpecials.has(c) ? '\\\\' : '') + c\n        continue\n      }\n      if (c === '\\\\') {\n        if (i === glob.length - 1) {\n          re += '\\\\\\\\'\n        } else {\n          escaping = true\n        }\n        continue\n      }\n      if (c === '[') {\n        const [src, needUflag, consumed, magic] = parseClass(glob, i)\n        if (consumed) {\n          re += src\n          uflag = uflag || needUflag\n          i += consumed - 1\n          hasMagic = hasMagic || magic\n          continue\n        }\n      }\n      if (c === '*') {\n        if (noEmpty && glob === '*') re += starNoEmpty\n        else re += star\n        hasMagic = true\n        continue\n      }\n      if (c === '?') {\n        re += qmark\n        hasMagic = true\n        continue\n      }\n      re += regExpEscape(c)\n    }\n    return [re, unescape(glob), !!hasMagic, uflag]\n  }\n}\n"]}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/brace-expressions.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/brace-expressions.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/brace-expressions.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/brace-expressions.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/brace-expressions.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/brace-expressions.js
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/brace-expressions.js
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/brace-expressions.js
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/brace-expressions.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/brace-expressions.js.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/brace-expressions.js.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/brace-expressions.js.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/escape.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/escape.d.ts
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/escape.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/escape.d.ts
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/escape.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/escape.d.ts.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/escape.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/escape.d.ts.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/escape.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/escape.js
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/escape.js
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/escape.js
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/escape.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/escape.js.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/escape.js.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/escape.js.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.d.ts
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/index.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.d.ts
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/index.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.d.ts.map
similarity index 94%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/index.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.d.ts.map
index 7a14a445ca..21f9cdc90b 100644
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/index.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.js
similarity index 99%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/index.js
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.js
index d70e681fef..d05f8b47f1 100644
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/index.js
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.js
@@ -344,6 +344,7 @@ class Minimatch {
             globParts = this.levelOneOptimize(globParts);
         }
         else {
+            // just collapse multiple ** portions into one
             globParts = this.adjascentGlobstarOptimize(globParts);
         }
         return globParts;
@@ -833,7 +834,11 @@ class Minimatch {
             fastTest = dotStarTest;
         }
         const re = ast_js_1.AST.fromGlob(pattern, this.options).toMMPattern();
-        return fastTest ? Object.assign(re, { test: fastTest }) : re;
+        if (fastTest && typeof re === 'object') {
+            // Avoids overriding in frozen environments
+            Reflect.defineProperty(re, 'test', { value: fastTest });
+        }
+        return re;
     }
     makeRe() {
         if (this.regexp || this.regexp === false)
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.js.map
new file mode 100644
index 0000000000..bae99b22b6
--- /dev/null
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import expand from 'brace-expansion'\nimport { assertValidPattern } from './assert-valid-pattern.js'\nimport { AST, ExtglobType } from './ast.js'\nimport { escape } from './escape.js'\nimport { unescape } from './unescape.js'\n\ntype Platform =\n  | 'aix'\n  | 'android'\n  | 'darwin'\n  | 'freebsd'\n  | 'haiku'\n  | 'linux'\n  | 'openbsd'\n  | 'sunos'\n  | 'win32'\n  | 'cygwin'\n  | 'netbsd'\n\nexport interface MinimatchOptions {\n  nobrace?: boolean\n  nocomment?: boolean\n  nonegate?: boolean\n  debug?: boolean\n  noglobstar?: boolean\n  noext?: boolean\n  nonull?: boolean\n  windowsPathsNoEscape?: boolean\n  allowWindowsEscape?: boolean\n  partial?: boolean\n  dot?: boolean\n  nocase?: boolean\n  nocaseMagicOnly?: boolean\n  magicalBraces?: boolean\n  matchBase?: boolean\n  flipNegate?: boolean\n  preserveMultipleSlashes?: boolean\n  optimizationLevel?: number\n  platform?: Platform\n  windowsNoMagicRoot?: boolean\n}\n\nexport const minimatch = (\n  p: string,\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  assertValidPattern(pattern)\n\n  // shortcut: comments match nothing.\n  if (!options.nocomment && pattern.charAt(0) === '#') {\n    return false\n  }\n\n  return new Minimatch(pattern, options).match(p)\n}\n\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/\nconst starDotExtTest = (ext: string) => (f: string) =>\n  !f.startsWith('.') && f.endsWith(ext)\nconst starDotExtTestDot = (ext: string) => (f: string) => f.endsWith(ext)\nconst starDotExtTestNocase = (ext: string) => {\n  ext = ext.toLowerCase()\n  return (f: string) => !f.startsWith('.') && f.toLowerCase().endsWith(ext)\n}\nconst starDotExtTestNocaseDot = (ext: string) => {\n  ext = ext.toLowerCase()\n  return (f: string) => f.toLowerCase().endsWith(ext)\n}\nconst starDotStarRE = /^\\*+\\.\\*+$/\nconst starDotStarTest = (f: string) => !f.startsWith('.') && f.includes('.')\nconst starDotStarTestDot = (f: string) =>\n  f !== '.' && f !== '..' && f.includes('.')\nconst dotStarRE = /^\\.\\*+$/\nconst dotStarTest = (f: string) => f !== '.' && f !== '..' && f.startsWith('.')\nconst starRE = /^\\*+$/\nconst starTest = (f: string) => f.length !== 0 && !f.startsWith('.')\nconst starTestDot = (f: string) => f.length !== 0 && f !== '.' && f !== '..'\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/\nconst qmarksTestNocase = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExt([$0])\n  if (!ext) return noext\n  ext = ext.toLowerCase()\n  return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestNocaseDot = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExtDot([$0])\n  if (!ext) return noext\n  ext = ext.toLowerCase()\n  return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestDot = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExtDot([$0])\n  return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTest = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExt([$0])\n  return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTestNoExt = ([$0]: RegExpMatchArray) => {\n  const len = $0.length\n  return (f: string) => f.length === len && !f.startsWith('.')\n}\nconst qmarksTestNoExtDot = ([$0]: RegExpMatchArray) => {\n  const len = $0.length\n  return (f: string) => f.length === len && f !== '.' && f !== '..'\n}\n\n/* c8 ignore start */\nconst defaultPlatform: Platform = (\n  typeof process === 'object' && process\n    ? (typeof process.env === 'object' &&\n        process.env &&\n        process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n      process.platform\n    : 'posix'\n) as Platform\ntype Sep = '\\\\' | '/'\nconst path: { [k: string]: { sep: Sep } } = {\n  win32: { sep: '\\\\' },\n  posix: { sep: '/' },\n}\n/* c8 ignore stop */\n\nexport const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep\nminimatch.sep = sep\n\nexport const GLOBSTAR = Symbol('globstar **')\nminimatch.GLOBSTAR = GLOBSTAR\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n\n// ** when dots are allowed.  Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?'\n\nexport const filter =\n  (pattern: string, options: MinimatchOptions = {}) =>\n  (p: string) =>\n    minimatch(p, pattern, options)\nminimatch.filter = filter\n\nconst ext = (a: MinimatchOptions, b: MinimatchOptions = {}) =>\n  Object.assign({}, a, b)\n\nexport const defaults = (def: MinimatchOptions): typeof minimatch => {\n  if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n    return minimatch\n  }\n\n  const orig = minimatch\n\n  const m = (p: string, pattern: string, options: MinimatchOptions = {}) =>\n    orig(p, pattern, ext(def, options))\n\n  return Object.assign(m, {\n    Minimatch: class Minimatch extends orig.Minimatch {\n      constructor(pattern: string, options: MinimatchOptions = {}) {\n        super(pattern, ext(def, options))\n      }\n      static defaults(options: MinimatchOptions) {\n        return orig.defaults(ext(def, options)).Minimatch\n      }\n    },\n\n    AST: class AST extends orig.AST {\n      /* c8 ignore start */\n      constructor(\n        type: ExtglobType | null,\n        parent?: AST,\n        options: MinimatchOptions = {}\n      ) {\n        super(type, parent, ext(def, options))\n      }\n      /* c8 ignore stop */\n\n      static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n        return orig.AST.fromGlob(pattern, ext(def, options))\n      }\n    },\n\n    unescape: (\n      s: string,\n      options: Pick = {}\n    ) => orig.unescape(s, ext(def, options)),\n\n    escape: (\n      s: string,\n      options: Pick = {}\n    ) => orig.escape(s, ext(def, options)),\n\n    filter: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.filter(pattern, ext(def, options)),\n\n    defaults: (options: MinimatchOptions) => orig.defaults(ext(def, options)),\n\n    makeRe: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.makeRe(pattern, ext(def, options)),\n\n    braceExpand: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.braceExpand(pattern, ext(def, options)),\n\n    match: (list: string[], pattern: string, options: MinimatchOptions = {}) =>\n      orig.match(list, pattern, ext(def, options)),\n\n    sep: orig.sep,\n    GLOBSTAR: GLOBSTAR as typeof GLOBSTAR,\n  })\n}\nminimatch.defaults = defaults\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  assertValidPattern(pattern)\n\n  // Thanks to Yeting Li  for\n  // improving this regexp to avoid a ReDOS vulnerability.\n  if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n    // shortcut. no need to expand.\n    return [pattern]\n  }\n\n  return expand(pattern)\n}\nminimatch.braceExpand = braceExpand\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion.  Otherwise, any series\n// of * is equivalent to a single *.  Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\n\nexport const makeRe = (pattern: string, options: MinimatchOptions = {}) =>\n  new Minimatch(pattern, options).makeRe()\nminimatch.makeRe = makeRe\n\nexport const match = (\n  list: string[],\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  const mm = new Minimatch(pattern, options)\n  list = list.filter(f => mm.match(f))\n  if (mm.options.nonull && !list.length) {\n    list.push(pattern)\n  }\n  return list\n}\nminimatch.match = match\n\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/\nconst regExpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\nexport type MMRegExp = RegExp & {\n  _src?: string\n  _glob?: string\n}\n\nexport type ParseReturnFiltered = string | MMRegExp | typeof GLOBSTAR\nexport type ParseReturn = ParseReturnFiltered | false\n\nexport class Minimatch {\n  options: MinimatchOptions\n  set: ParseReturnFiltered[][]\n  pattern: string\n\n  windowsPathsNoEscape: boolean\n  nonegate: boolean\n  negate: boolean\n  comment: boolean\n  empty: boolean\n  preserveMultipleSlashes: boolean\n  partial: boolean\n  globSet: string[]\n  globParts: string[][]\n  nocase: boolean\n\n  isWindows: boolean\n  platform: Platform\n  windowsNoMagicRoot: boolean\n\n  regexp: false | null | MMRegExp\n  constructor(pattern: string, options: MinimatchOptions = {}) {\n    assertValidPattern(pattern)\n\n    options = options || {}\n    this.options = options\n    this.pattern = pattern\n    this.platform = options.platform || defaultPlatform\n    this.isWindows = this.platform === 'win32'\n    this.windowsPathsNoEscape =\n      !!options.windowsPathsNoEscape || options.allowWindowsEscape === false\n    if (this.windowsPathsNoEscape) {\n      this.pattern = this.pattern.replace(/\\\\/g, '/')\n    }\n    this.preserveMultipleSlashes = !!options.preserveMultipleSlashes\n    this.regexp = null\n    this.negate = false\n    this.nonegate = !!options.nonegate\n    this.comment = false\n    this.empty = false\n    this.partial = !!options.partial\n    this.nocase = !!this.options.nocase\n    this.windowsNoMagicRoot =\n      options.windowsNoMagicRoot !== undefined\n        ? options.windowsNoMagicRoot\n        : !!(this.isWindows && this.nocase)\n\n    this.globSet = []\n    this.globParts = []\n    this.set = []\n\n    // make the set of regexps etc.\n    this.make()\n  }\n\n  hasMagic(): boolean {\n    if (this.options.magicalBraces && this.set.length > 1) {\n      return true\n    }\n    for (const pattern of this.set) {\n      for (const part of pattern) {\n        if (typeof part !== 'string') return true\n      }\n    }\n    return false\n  }\n\n  debug(..._: any[]) {}\n\n  make() {\n    const pattern = this.pattern\n    const options = this.options\n\n    // empty patterns and comments match nothing.\n    if (!options.nocomment && pattern.charAt(0) === '#') {\n      this.comment = true\n      return\n    }\n\n    if (!pattern) {\n      this.empty = true\n      return\n    }\n\n    // step 1: figure out negation, etc.\n    this.parseNegate()\n\n    // step 2: expand braces\n    this.globSet = [...new Set(this.braceExpand())]\n\n    if (options.debug) {\n      this.debug = (...args: any[]) => console.error(...args)\n    }\n\n    this.debug(this.pattern, this.globSet)\n\n    // step 3: now we have a set, so turn each one into a series of\n    // path-portion matching patterns.\n    // These will be regexps, except in the case of \"**\", which is\n    // set to the GLOBSTAR object for globstar behavior,\n    // and will not contain any / characters\n    //\n    // First, we preprocess to make the glob pattern sets a bit simpler\n    // and deduped.  There are some perf-killing patterns that can cause\n    // problems with a glob walk, but we can simplify them down a bit.\n    const rawGlobParts = this.globSet.map(s => this.slashSplit(s))\n    this.globParts = this.preprocess(rawGlobParts)\n    this.debug(this.pattern, this.globParts)\n\n    // glob --> regexps\n    let set = this.globParts.map((s, _, __) => {\n      if (this.isWindows && this.windowsNoMagicRoot) {\n        // check if it's a drive or unc path.\n        const isUNC =\n          s[0] === '' &&\n          s[1] === '' &&\n          (s[2] === '?' || !globMagic.test(s[2])) &&\n          !globMagic.test(s[3])\n        const isDrive = /^[a-z]:/i.test(s[0])\n        if (isUNC) {\n          return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))]\n        } else if (isDrive) {\n          return [s[0], ...s.slice(1).map(ss => this.parse(ss))]\n        }\n      }\n      return s.map(ss => this.parse(ss))\n    })\n\n    this.debug(this.pattern, set)\n\n    // filter out everything that didn't compile properly.\n    this.set = set.filter(\n      s => s.indexOf(false) === -1\n    ) as ParseReturnFiltered[][]\n\n    // do not treat the ? in UNC paths as magic\n    if (this.isWindows) {\n      for (let i = 0; i < this.set.length; i++) {\n        const p = this.set[i]\n        if (\n          p[0] === '' &&\n          p[1] === '' &&\n          this.globParts[i][2] === '?' &&\n          typeof p[3] === 'string' &&\n          /^[a-z]:$/i.test(p[3])\n        ) {\n          p[2] = '?'\n        }\n      }\n    }\n\n    this.debug(this.pattern, this.set)\n  }\n\n  // various transforms to equivalent pattern sets that are\n  // faster to process in a filesystem walk.  The goal is to\n  // eliminate what we can, and push all ** patterns as far\n  // to the right as possible, even if it increases the number\n  // of patterns that we have to process.\n  preprocess(globParts: string[][]) {\n    // if we're not in globstar mode, then turn all ** into *\n    if (this.options.noglobstar) {\n      for (let i = 0; i < globParts.length; i++) {\n        for (let j = 0; j < globParts[i].length; j++) {\n          if (globParts[i][j] === '**') {\n            globParts[i][j] = '*'\n          }\n        }\n      }\n    }\n\n    const { optimizationLevel = 1 } = this.options\n\n    if (optimizationLevel >= 2) {\n      // aggressive optimization for the purpose of fs walking\n      globParts = this.firstPhasePreProcess(globParts)\n      globParts = this.secondPhasePreProcess(globParts)\n    } else if (optimizationLevel >= 1) {\n      // just basic optimizations to remove some .. parts\n      globParts = this.levelOneOptimize(globParts)\n    } else {\n      // just collapse multiple ** portions into one\n      globParts = this.adjascentGlobstarOptimize(globParts)\n    }\n\n    return globParts\n  }\n\n  // just get rid of adjascent ** portions\n  adjascentGlobstarOptimize(globParts: string[][]) {\n    return globParts.map(parts => {\n      let gs: number = -1\n      while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n        let i = gs\n        while (parts[i + 1] === '**') {\n          i++\n        }\n        if (i !== gs) {\n          parts.splice(gs, i - gs)\n        }\n      }\n      return parts\n    })\n  }\n\n  // get rid of adjascent ** and resolve .. portions\n  levelOneOptimize(globParts: string[][]) {\n    return globParts.map(parts => {\n      parts = parts.reduce((set: string[], part) => {\n        const prev = set[set.length - 1]\n        if (part === '**' && prev === '**') {\n          return set\n        }\n        if (part === '..') {\n          if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n            set.pop()\n            return set\n          }\n        }\n        set.push(part)\n        return set\n      }, [])\n      return parts.length === 0 ? [''] : parts\n    })\n  }\n\n  levelTwoFileOptimize(parts: string | string[]) {\n    if (!Array.isArray(parts)) {\n      parts = this.slashSplit(parts)\n    }\n    let didSomething: boolean = false\n    do {\n      didSomething = false\n      // 
// -> 
/\n      if (!this.preserveMultipleSlashes) {\n        for (let i = 1; i < parts.length - 1; i++) {\n          const p = parts[i]\n          // don't squeeze out UNC patterns\n          if (i === 1 && p === '' && parts[0] === '') continue\n          if (p === '.' || p === '') {\n            didSomething = true\n            parts.splice(i, 1)\n            i--\n          }\n        }\n        if (\n          parts[0] === '.' &&\n          parts.length === 2 &&\n          (parts[1] === '.' || parts[1] === '')\n        ) {\n          didSomething = true\n          parts.pop()\n        }\n      }\n\n      // 
/

/../ ->

/\n      let dd: number = 0\n      while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n        const p = parts[dd - 1]\n        if (p && p !== '.' && p !== '..' && p !== '**') {\n          didSomething = true\n          parts.splice(dd - 1, 2)\n          dd -= 2\n        }\n      }\n    } while (didSomething)\n    return parts.length === 0 ? [''] : parts\n  }\n\n  // First phase: single-pattern processing\n  // 
 is 1 or more portions\n  //  is 1 or more portions\n  // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n  // 
/

/../ ->

/\n  // **/**/ -> **/\n  //\n  // **/*/ -> */**/ <== not valid because ** doesn't follow\n  // this WOULD be allowed if ** did follow symlinks, or * didn't\n  firstPhasePreProcess(globParts: string[][]) {\n    let didSomething = false\n    do {\n      didSomething = false\n      // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs: number = -1\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss: number = gs\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n            gss++\n          }\n          // eg, if gs is 2 and gss is 4, that means we have 3 **\n          // parts, and can remove 2 of them.\n          if (gss > gs) {\n            parts.splice(gs + 1, gss - gs)\n          }\n\n          let next = parts[gs + 1]\n          const p = parts[gs + 2]\n          const p2 = parts[gs + 3]\n          if (next !== '..') continue\n          if (\n            !p ||\n            p === '.' ||\n            p === '..' ||\n            !p2 ||\n            p2 === '.' ||\n            p2 === '..'\n          ) {\n            continue\n          }\n          didSomething = true\n          // edit parts in place, and push the new one\n          parts.splice(gs, 1)\n          const other = parts.slice(0)\n          other[gs] = '**'\n          globParts.push(other)\n          gs--\n        }\n\n        // 
// -> 
/\n        if (!this.preserveMultipleSlashes) {\n          for (let i = 1; i < parts.length - 1; i++) {\n            const p = parts[i]\n            // don't squeeze out UNC patterns\n            if (i === 1 && p === '' && parts[0] === '') continue\n            if (p === '.' || p === '') {\n              didSomething = true\n              parts.splice(i, 1)\n              i--\n            }\n          }\n          if (\n            parts[0] === '.' &&\n            parts.length === 2 &&\n            (parts[1] === '.' || parts[1] === '')\n          ) {\n            didSomething = true\n            parts.pop()\n          }\n        }\n\n        // 
/

/../ ->

/\n        let dd: number = 0\n        while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n          const p = parts[dd - 1]\n          if (p && p !== '.' && p !== '..' && p !== '**') {\n            didSomething = true\n            const needDot = dd === 1 && parts[dd + 1] === '**'\n            const splin = needDot ? ['.'] : []\n            parts.splice(dd - 1, 2, ...splin)\n            if (parts.length === 0) parts.push('')\n            dd -= 2\n          }\n        }\n      }\n    } while (didSomething)\n\n    return globParts\n  }\n\n  // second phase: multi-pattern dedupes\n  // {
/*/,
/

/} ->

/*/\n  // {
/,
/} -> 
/\n  // {
/**/,
/} -> 
/**/\n  //\n  // {
/**/,
/**/

/} ->

/**/\n  // ^-- not valid because ** doens't follow symlinks\n  secondPhasePreProcess(globParts: string[][]): string[][] {\n    for (let i = 0; i < globParts.length - 1; i++) {\n      for (let j = i + 1; j < globParts.length; j++) {\n        const matched = this.partsMatch(\n          globParts[i],\n          globParts[j],\n          !this.preserveMultipleSlashes\n        )\n        if (!matched) continue\n        globParts[i] = matched\n        globParts[j] = []\n      }\n    }\n    return globParts.filter(gs => gs.length)\n  }\n\n  partsMatch(\n    a: string[],\n    b: string[],\n    emptyGSMatch: boolean = false\n  ): false | string[] {\n    let ai = 0\n    let bi = 0\n    let result: string[] = []\n    let which: string = ''\n    while (ai < a.length && bi < b.length) {\n      if (a[ai] === b[bi]) {\n        result.push(which === 'b' ? b[bi] : a[ai])\n        ai++\n        bi++\n      } else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n        result.push(a[ai])\n        ai++\n      } else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n        result.push(b[bi])\n        bi++\n      } else if (\n        a[ai] === '*' &&\n        b[bi] &&\n        (this.options.dot || !b[bi].startsWith('.')) &&\n        b[bi] !== '**'\n      ) {\n        if (which === 'b') return false\n        which = 'a'\n        result.push(a[ai])\n        ai++\n        bi++\n      } else if (\n        b[bi] === '*' &&\n        a[ai] &&\n        (this.options.dot || !a[ai].startsWith('.')) &&\n        a[ai] !== '**'\n      ) {\n        if (which === 'a') return false\n        which = 'b'\n        result.push(b[bi])\n        ai++\n        bi++\n      } else {\n        return false\n      }\n    }\n    // if we fall out of the loop, it means they two are identical\n    // as long as their lengths match\n    return a.length === b.length && result\n  }\n\n  parseNegate() {\n    if (this.nonegate) return\n\n    const pattern = this.pattern\n    let negate = false\n    let negateOffset = 0\n\n    for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n      negate = !negate\n      negateOffset++\n    }\n\n    if (negateOffset) this.pattern = pattern.slice(negateOffset)\n    this.negate = negate\n  }\n\n  // set partial to true to test if, for example,\n  // \"/a/b\" matches the start of \"/*/b/*/d\"\n  // Partial means, if you run out of file before you run\n  // out of pattern, then that's fine, as long as all\n  // the parts match.\n  matchOne(file: string[], pattern: ParseReturn[], partial: boolean = false) {\n    const options = this.options\n\n    // UNC paths like //?/X:/... can match X:/... and vice versa\n    // Drive letters in absolute drive or unc paths are always compared\n    // case-insensitively.\n    if (this.isWindows) {\n      const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0])\n      const fileUNC =\n        !fileDrive &&\n        file[0] === '' &&\n        file[1] === '' &&\n        file[2] === '?' &&\n        /^[a-z]:$/i.test(file[3])\n\n      const patternDrive =\n        typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0])\n      const patternUNC =\n        !patternDrive &&\n        pattern[0] === '' &&\n        pattern[1] === '' &&\n        pattern[2] === '?' &&\n        typeof pattern[3] === 'string' &&\n        /^[a-z]:$/i.test(pattern[3])\n\n      const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined\n      const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined\n      if (typeof fdi === 'number' && typeof pdi === 'number') {\n        const [fd, pd]: [string, string] = [file[fdi], pattern[pdi] as string]\n        if (fd.toLowerCase() === pd.toLowerCase()) {\n          pattern[pdi] = fd\n          if (pdi > fdi) {\n            pattern = pattern.slice( pdi)\n          } else if (fdi > pdi) {\n            file = file.slice(fdi)\n          }\n        }\n      }\n    }\n\n    // resolve and reduce . and .. portions in the file as well.\n    // dont' need to do the second phase, because it's only one string[]\n    const { optimizationLevel = 1 } = this.options\n    if (optimizationLevel >= 2) {\n      file = this.levelTwoFileOptimize(file)\n    }\n\n    this.debug('matchOne', this, { file, pattern })\n    this.debug('matchOne', file.length, pattern.length)\n\n    for (\n      var fi = 0, pi = 0, fl = file.length, pl = pattern.length;\n      fi < fl && pi < pl;\n      fi++, pi++\n    ) {\n      this.debug('matchOne loop')\n      var p = pattern[pi]\n      var f = file[fi]\n\n      this.debug(pattern, p, f)\n\n      // should be impossible.\n      // some invalid regexp stuff in the set.\n      /* c8 ignore start */\n      if (p === false) {\n        return false\n      }\n      /* c8 ignore stop */\n\n      if (p === GLOBSTAR) {\n        this.debug('GLOBSTAR', [pattern, p, f])\n\n        // \"**\"\n        // a/**/b/**/c would match the following:\n        // a/b/x/y/z/c\n        // a/x/y/z/b/c\n        // a/b/x/b/x/c\n        // a/b/c\n        // To do this, take the rest of the pattern after\n        // the **, and see if it would match the file remainder.\n        // If so, return success.\n        // If not, the ** \"swallows\" a segment, and try again.\n        // This is recursively awful.\n        //\n        // a/**/b/**/c matching a/b/x/y/z/c\n        // - a matches a\n        // - doublestar\n        //   - matchOne(b/x/y/z/c, b/**/c)\n        //     - b matches b\n        //     - doublestar\n        //       - matchOne(x/y/z/c, c) -> no\n        //       - matchOne(y/z/c, c) -> no\n        //       - matchOne(z/c, c) -> no\n        //       - matchOne(c, c) yes, hit\n        var fr = fi\n        var pr = pi + 1\n        if (pr === pl) {\n          this.debug('** at the end')\n          // a ** at the end will just swallow the rest.\n          // We have found a match.\n          // however, it will not swallow /.x, unless\n          // options.dot is set.\n          // . and .. are *never* matched by **, for explosively\n          // exponential reasons.\n          for (; fi < fl; fi++) {\n            if (\n              file[fi] === '.' ||\n              file[fi] === '..' ||\n              (!options.dot && file[fi].charAt(0) === '.')\n            )\n              return false\n          }\n          return true\n        }\n\n        // ok, let's see if we can swallow whatever we can.\n        while (fr < fl) {\n          var swallowee = file[fr]\n\n          this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n          // XXX remove this slice.  Just pass the start index.\n          if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n            this.debug('globstar found match!', fr, fl, swallowee)\n            // found a match.\n            return true\n          } else {\n            // can't swallow \".\" or \"..\" ever.\n            // can only swallow \".foo\" when explicitly asked.\n            if (\n              swallowee === '.' ||\n              swallowee === '..' ||\n              (!options.dot && swallowee.charAt(0) === '.')\n            ) {\n              this.debug('dot detected!', file, fr, pattern, pr)\n              break\n            }\n\n            // ** swallows a segment, and continue.\n            this.debug('globstar swallow a segment, and continue')\n            fr++\n          }\n        }\n\n        // no match was found.\n        // However, in partial mode, we can't say this is necessarily over.\n        /* c8 ignore start */\n        if (partial) {\n          // ran out of file\n          this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n          if (fr === fl) {\n            return true\n          }\n        }\n        /* c8 ignore stop */\n        return false\n      }\n\n      // something other than **\n      // non-magic patterns just have to match exactly\n      // patterns with magic have been turned into regexps.\n      let hit: boolean\n      if (typeof p === 'string') {\n        hit = f === p\n        this.debug('string match', p, f, hit)\n      } else {\n        hit = p.test(f)\n        this.debug('pattern match', p, f, hit)\n      }\n\n      if (!hit) return false\n    }\n\n    // Note: ending in / means that we'll get a final \"\"\n    // at the end of the pattern.  This can only match a\n    // corresponding \"\" at the end of the file.\n    // If the file ends in /, then it can only match a\n    // a pattern that ends in /, unless the pattern just\n    // doesn't have any more for it. But, a/b/ should *not*\n    // match \"a/b/*\", even though \"\" matches against the\n    // [^/]*? pattern, except in partial mode, where it might\n    // simply not be reached yet.\n    // However, a/b/ should still satisfy a/*\n\n    // now either we fell off the end of the pattern, or we're done.\n    if (fi === fl && pi === pl) {\n      // ran out of pattern and filename at the same time.\n      // an exact hit!\n      return true\n    } else if (fi === fl) {\n      // ran out of file, but still had pattern left.\n      // this is ok if we're doing the match as part of\n      // a glob fs traversal.\n      return partial\n    } else if (pi === pl) {\n      // ran out of pattern, still have file left.\n      // this is only acceptable if we're on the very last\n      // empty segment of a file with a trailing slash.\n      // a/* should match a/b/\n      return fi === fl - 1 && file[fi] === ''\n\n      /* c8 ignore start */\n    } else {\n      // should be unreachable.\n      throw new Error('wtf?')\n    }\n    /* c8 ignore stop */\n  }\n\n  braceExpand() {\n    return braceExpand(this.pattern, this.options)\n  }\n\n  parse(pattern: string): ParseReturn {\n    assertValidPattern(pattern)\n\n    const options = this.options\n\n    // shortcuts\n    if (pattern === '**') return GLOBSTAR\n    if (pattern === '') return ''\n\n    // far and away, the most common glob pattern parts are\n    // *, *.*, and *.  Add a fast check method for those.\n    let m: RegExpMatchArray | null\n    let fastTest: null | ((f: string) => boolean) = null\n    if ((m = pattern.match(starRE))) {\n      fastTest = options.dot ? starTestDot : starTest\n    } else if ((m = pattern.match(starDotExtRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? starDotExtTestNocaseDot\n            : starDotExtTestNocase\n          : options.dot\n          ? starDotExtTestDot\n          : starDotExtTest\n      )(m[1])\n    } else if ((m = pattern.match(qmarksRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? qmarksTestNocaseDot\n            : qmarksTestNocase\n          : options.dot\n          ? qmarksTestDot\n          : qmarksTest\n      )(m)\n    } else if ((m = pattern.match(starDotStarRE))) {\n      fastTest = options.dot ? starDotStarTestDot : starDotStarTest\n    } else if ((m = pattern.match(dotStarRE))) {\n      fastTest = dotStarTest\n    }\n\n    const re = AST.fromGlob(pattern, this.options).toMMPattern()\n    if (fastTest && typeof re === 'object') {\n      // Avoids overriding in frozen environments\n      Reflect.defineProperty(re, 'test', { value: fastTest })\n    }\n    return re\n  }\n\n  makeRe() {\n    if (this.regexp || this.regexp === false) return this.regexp\n\n    // at this point, this.set is a 2d array of partial\n    // pattern strings, or \"**\".\n    //\n    // It's better to use .match().  This function shouldn't\n    // be used, really, but it's pretty convenient sometimes,\n    // when you just want to work with a regex.\n    const set = this.set\n\n    if (!set.length) {\n      this.regexp = false\n      return this.regexp\n    }\n    const options = this.options\n\n    const twoStar = options.noglobstar\n      ? star\n      : options.dot\n      ? twoStarDot\n      : twoStarNoDot\n    const flags = new Set(options.nocase ? ['i'] : [])\n\n    // regexpify non-globstar patterns\n    // if ** is only item, then we just do one twoStar\n    // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n    // if ** is last, append (\\/twoStar|) to previous\n    // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n    // then filter out GLOBSTAR symbols\n    let re = set\n      .map(pattern => {\n        const pp: (string | typeof GLOBSTAR)[] = pattern.map(p => {\n          if (p instanceof RegExp) {\n            for (const f of p.flags.split('')) flags.add(f)\n          }\n          return typeof p === 'string'\n            ? regExpEscape(p)\n            : p === GLOBSTAR\n            ? GLOBSTAR\n            : p._src\n        }) as (string | typeof GLOBSTAR)[]\n        pp.forEach((p, i) => {\n          const next = pp[i + 1]\n          const prev = pp[i - 1]\n          if (p !== GLOBSTAR || prev === GLOBSTAR) {\n            return\n          }\n          if (prev === undefined) {\n            if (next !== undefined && next !== GLOBSTAR) {\n              pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next\n            } else {\n              pp[i] = twoStar\n            }\n          } else if (next === undefined) {\n            pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?'\n          } else if (next !== GLOBSTAR) {\n            pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next\n            pp[i + 1] = GLOBSTAR\n          }\n        })\n        return pp.filter(p => p !== GLOBSTAR).join('/')\n      })\n      .join('|')\n\n    // need to wrap in parens if we had more than one thing with |,\n    // otherwise only the first will be anchored to ^ and the last to $\n    const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', '']\n    // must match entire pattern\n    // ending in a * or ** will make it less strict.\n    re = '^' + open + re + close + '$'\n\n    // can match anything, as long as it's not this.\n    if (this.negate) re = '^(?!' + re + ').+$'\n\n    try {\n      this.regexp = new RegExp(re, [...flags].join(''))\n      /* c8 ignore start */\n    } catch (ex) {\n      // should be impossible\n      this.regexp = false\n    }\n    /* c8 ignore stop */\n    return this.regexp\n  }\n\n  slashSplit(p: string) {\n    // if p starts with // on windows, we preserve that\n    // so that UNC paths aren't broken.  Otherwise, any number of\n    // / characters are coalesced into one, unless\n    // preserveMultipleSlashes is set to true.\n    if (this.preserveMultipleSlashes) {\n      return p.split('/')\n    } else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n      // add an extra '' for the one we lose\n      return ['', ...p.split(/\\/+/)]\n    } else {\n      return p.split(/\\/+/)\n    }\n  }\n\n  match(f: string, partial = this.partial) {\n    this.debug('match', f, this.pattern)\n    // short-circuit in the case of busted things.\n    // comments, etc.\n    if (this.comment) {\n      return false\n    }\n    if (this.empty) {\n      return f === ''\n    }\n\n    if (f === '/' && partial) {\n      return true\n    }\n\n    const options = this.options\n\n    // windows: need to use /, not \\\n    if (this.isWindows) {\n      f = f.split('\\\\').join('/')\n    }\n\n    // treat the test path as a set of pathparts.\n    const ff = this.slashSplit(f)\n    this.debug(this.pattern, 'split', ff)\n\n    // just ONE of the pattern sets in this.set needs to match\n    // in order for it to be valid.  If negating, then just one\n    // match means that we have failed.\n    // Either way, return on the first hit.\n\n    const set = this.set\n    this.debug(this.pattern, 'set', set)\n\n    // Find the basename of the path by looking for the last non-empty segment\n    let filename: string = ff[ff.length - 1]\n    if (!filename) {\n      for (let i = ff.length - 2; !filename && i >= 0; i--) {\n        filename = ff[i]\n      }\n    }\n\n    for (let i = 0; i < set.length; i++) {\n      const pattern = set[i]\n      let file = ff\n      if (options.matchBase && pattern.length === 1) {\n        file = [filename]\n      }\n      const hit = this.matchOne(file, pattern, partial)\n      if (hit) {\n        if (options.flipNegate) {\n          return true\n        }\n        return !this.negate\n      }\n    }\n\n    // didn't get any hits.  this is success if it's a negative\n    // pattern, failure otherwise.\n    if (options.flipNegate) {\n      return false\n    }\n    return this.negate\n  }\n\n  static defaults(def: MinimatchOptions) {\n    return minimatch.defaults(def).Minimatch\n  }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js'\nexport { escape } from './escape.js'\nexport { unescape } from './unescape.js'\n/* c8 ignore stop */\nminimatch.AST = AST\nminimatch.Minimatch = Minimatch\nminimatch.escape = escape\nminimatch.unescape = unescape\n"]}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/package.json b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/package.json
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/package.json
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/package.json
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/unescape.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/unescape.d.ts
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/unescape.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/unescape.d.ts
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/unescape.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/unescape.d.ts.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/unescape.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/unescape.d.ts.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/unescape.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/unescape.js
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/unescape.js
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/unescape.js
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/unescape.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/unescape.js.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/unescape.js.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/commonjs/unescape.js.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/assert-valid-pattern.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/assert-valid-pattern.js
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/assert-valid-pattern.js
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/assert-valid-pattern.js
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/assert-valid-pattern.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/assert-valid-pattern.js.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/ast.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/ast.d.ts
similarity index 91%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/ast.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/ast.d.ts
index e08641b5b8..b8c1e5448e 100644
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/ast.d.ts
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/ast.d.ts
@@ -14,6 +14,7 @@ export declare class AST {
     clone(parent: AST): AST;
     static fromGlob(pattern: string, options?: MinimatchOptions): AST;
     toMMPattern(): MMRegExp | string;
+    get options(): MinimatchOptions;
     toRegExpSource(allowDot?: boolean): [re: string, body: string, hasMagic: boolean, uflag: boolean];
 }
 //# sourceMappingURL=ast.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/ast.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/ast.d.ts.map
similarity index 81%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/ast.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/ast.d.ts.map
index 5486a6893d..9e7bfb9a8b 100644
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/cjs/ast.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/ast.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAwCvD,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAkCrD,qBAAa,GAAG;;IACd,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;gBAiBtB,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,GAAE,gBAAqB;IAahC,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,CAUlC;IAGD,QAAQ,IAAI,MAAM;IA+ClB,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;IAY/B,MAAM;IAgBN,OAAO,IAAI,OAAO;IAgBlB,KAAK,IAAI,OAAO;IAYhB,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAKzB,KAAK,CAAC,MAAM,EAAE,GAAG;IAsIjB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAQ/D,WAAW,IAAI,QAAQ,GAAG,MAAM;IAgGhC,cAAc,CACZ,QAAQ,CAAC,EAAE,OAAO,GACjB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;CAiMjE"}
\ No newline at end of file
+{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAwCvD,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAkCrD,qBAAa,GAAG;;IACd,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;gBAiBtB,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,GAAE,gBAAqB;IAahC,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,CAUlC;IAGD,QAAQ,IAAI,MAAM;IA+ClB,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;IAY/B,MAAM;IAgBN,OAAO,IAAI,OAAO;IAgBlB,KAAK,IAAI,OAAO;IAYhB,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAKzB,KAAK,CAAC,MAAM,EAAE,GAAG;IAsIjB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAQ/D,WAAW,IAAI,QAAQ,GAAG,MAAM;IA2BhC,IAAI,OAAO,qBAEV;IAuED,cAAc,CACZ,QAAQ,CAAC,EAAE,OAAO,GACjB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;CAiMjE"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/ast.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/ast.js
similarity index 99%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/ast.js
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/ast.js
index 9f9835e06a..2d2bced653 100644
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/ast.js
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/ast.js
@@ -335,6 +335,9 @@ export class AST {
             _glob: glob,
         });
     }
+    get options() {
+        return this.#options;
+    }
     // returns the string match, the regexp source, whether there's magic
     // in the regexp (so a regular expression is required) and whether or
     // not the uflag is needed for the regular expression (for posix classes)
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/ast.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/ast.js.map
new file mode 100644
index 0000000000..f1f8b34cbe
--- /dev/null
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/ast.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"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","sourcesContent":["// parse a single path portion\n\nimport { parseClass } from './brace-expressions.js'\nimport { MinimatchOptions, MMRegExp } from './index.js'\nimport { unescape } from './unescape.js'\n\n// classes [] are handled by the parseClass method\n// for positive extglobs, we sub-parse the contents, and combine,\n// with the appropriate regexp close.\n// for negative extglobs, we sub-parse the contents, but then\n// have to include the rest of the pattern, then the parent, etc.,\n// as the thing that cannot be because RegExp negative lookaheads\n// are different from globs.\n//\n// So for example:\n// a@(i|w!(x|y)z|j)b => ^a(i|w((!?(x|y)zb).*)z|j)b$\n//   1   2 3   4 5 6      1   2    3   46      5 6\n//\n// Assembling the extglob requires not just the negated patterns themselves,\n// but also anything following the negative patterns up to the boundary\n// of the current pattern, plus anything following in the parent pattern.\n//\n//\n// So, first, we parse the string into an AST of extglobs, without turning\n// anything into regexps yet.\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y']}, 'z'], ['j']]}, 'b']\n//\n// Then, for all the negative extglobs, we append whatever comes after in\n// each parent as their tail\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y'], 'z', 'b'}, 'z'], ['j']]}, 'b']\n//\n// Lastly, we turn each of these pieces into a regexp, and join\n//\n//                                 v----- .* because there's more following,\n//                                 v    v  otherwise, .+ because it must be\n//                                 v    v  *something* there.\n// ['^a', {@ ['i', 'w(?:(!?(?:x|y).*zb$).*)z', 'j' ]}, 'b$']\n//   copy what follows into here--^^^^^\n// ['^a', '(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)', 'b$']\n// ['^a(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)b$']\n\nexport type ExtglobType = '!' | '?' | '+' | '*' | '@'\nconst types = new Set(['!', '?', '+', '*', '@'])\nconst isExtglobType = (c: string): c is ExtglobType =>\n  types.has(c as ExtglobType)\n\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))'\nconst startNoDot = '(?!\\\\.)'\n\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.'])\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.'])\nconst reSpecials = new Set('().*{}+?[]^$\\\\!')\nconst regExpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// any single thing other than /\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?'\n\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\n\nexport class AST {\n  type: ExtglobType | null\n  readonly #root: AST\n\n  #hasMagic?: boolean\n  #uflag: boolean = false\n  #parts: (string | AST)[] = []\n  readonly #parent?: AST\n  readonly #parentIndex: number\n  #negs: AST[]\n  #filledNegs: boolean = false\n  #options: MinimatchOptions\n  #toString?: string\n  // set to true if it's an extglob with no children\n  // (which really means one child of '')\n  #emptyExt: boolean = false\n\n  constructor(\n    type: ExtglobType | null,\n    parent?: AST,\n    options: MinimatchOptions = {}\n  ) {\n    this.type = type\n    // extglobs are inherently magical\n    if (type) this.#hasMagic = true\n    this.#parent = parent\n    this.#root = this.#parent ? this.#parent.#root : this\n    this.#options = this.#root === this ? options : this.#root.#options\n    this.#negs = this.#root === this ? [] : this.#root.#negs\n    if (type === '!' && !this.#root.#filledNegs) this.#negs.push(this)\n    this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0\n  }\n\n  get hasMagic(): boolean | undefined {\n    /* c8 ignore start */\n    if (this.#hasMagic !== undefined) return this.#hasMagic\n    /* c8 ignore stop */\n    for (const p of this.#parts) {\n      if (typeof p === 'string') continue\n      if (p.type || p.hasMagic) return (this.#hasMagic = true)\n    }\n    // note: will be undefined until we generate the regexp src and find out\n    return this.#hasMagic\n  }\n\n  // reconstructs the pattern\n  toString(): string {\n    if (this.#toString !== undefined) return this.#toString\n    if (!this.type) {\n      return (this.#toString = this.#parts.map(p => String(p)).join(''))\n    } else {\n      return (this.#toString =\n        this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')')\n    }\n  }\n\n  #fillNegs() {\n    /* c8 ignore start */\n    if (this !== this.#root) throw new Error('should only call on root')\n    if (this.#filledNegs) return this\n    /* c8 ignore stop */\n\n    // call toString() once to fill this out\n    this.toString()\n    this.#filledNegs = true\n    let n: AST | undefined\n    while ((n = this.#negs.pop())) {\n      if (n.type !== '!') continue\n      // walk up the tree, appending everthing that comes AFTER parentIndex\n      let p: AST | undefined = n\n      let pp = p.#parent\n      while (pp) {\n        for (\n          let i = p.#parentIndex + 1;\n          !pp.type && i < pp.#parts.length;\n          i++\n        ) {\n          for (const part of n.#parts) {\n            /* c8 ignore start */\n            if (typeof part === 'string') {\n              throw new Error('string part in extglob AST??')\n            }\n            /* c8 ignore stop */\n            part.copyIn(pp.#parts[i])\n          }\n        }\n        p = pp\n        pp = p.#parent\n      }\n    }\n    return this\n  }\n\n  push(...parts: (string | AST)[]) {\n    for (const p of parts) {\n      if (p === '') continue\n      /* c8 ignore start */\n      if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n        throw new Error('invalid part: ' + p)\n      }\n      /* c8 ignore stop */\n      this.#parts.push(p)\n    }\n  }\n\n  toJSON() {\n    const ret: any[] =\n      this.type === null\n        ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n        : [this.type, ...this.#parts.map(p => (p as AST).toJSON())]\n    if (this.isStart() && !this.type) ret.unshift([])\n    if (\n      this.isEnd() &&\n      (this === this.#root ||\n        (this.#root.#filledNegs && this.#parent?.type === '!'))\n    ) {\n      ret.push({})\n    }\n    return ret\n  }\n\n  isStart(): boolean {\n    if (this.#root === this) return true\n    // if (this.type) return !!this.#parent?.isStart()\n    if (!this.#parent?.isStart()) return false\n    if (this.#parentIndex === 0) return true\n    // if everything AHEAD of this is a negation, then it's still the \"start\"\n    const p = this.#parent\n    for (let i = 0; i < this.#parentIndex; i++) {\n      const pp = p.#parts[i]\n      if (!(pp instanceof AST && pp.type === '!')) {\n        return false\n      }\n    }\n    return true\n  }\n\n  isEnd(): boolean {\n    if (this.#root === this) return true\n    if (this.#parent?.type === '!') return true\n    if (!this.#parent?.isEnd()) return false\n    if (!this.type) return this.#parent?.isEnd()\n    // if not root, it'll always have a parent\n    /* c8 ignore start */\n    const pl = this.#parent ? this.#parent.#parts.length : 0\n    /* c8 ignore stop */\n    return this.#parentIndex === pl - 1\n  }\n\n  copyIn(part: AST | string) {\n    if (typeof part === 'string') this.push(part)\n    else this.push(part.clone(this))\n  }\n\n  clone(parent: AST) {\n    const c = new AST(this.type, parent)\n    for (const p of this.#parts) {\n      c.copyIn(p)\n    }\n    return c\n  }\n\n  static #parseAST(\n    str: string,\n    ast: AST,\n    pos: number,\n    opt: MinimatchOptions\n  ): number {\n    let escaping = false\n    let inBrace = false\n    let braceStart = -1\n    let braceNeg = false\n    if (ast.type === null) {\n      // outside of a extglob, append until we find a start\n      let i = pos\n      let acc = ''\n      while (i < str.length) {\n        const c = str.charAt(i++)\n        // still accumulate escapes at this point, but we do ignore\n        // starts that are escaped\n        if (escaping || c === '\\\\') {\n          escaping = !escaping\n          acc += c\n          continue\n        }\n\n        if (inBrace) {\n          if (i === braceStart + 1) {\n            if (c === '^' || c === '!') {\n              braceNeg = true\n            }\n          } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n            inBrace = false\n          }\n          acc += c\n          continue\n        } else if (c === '[') {\n          inBrace = true\n          braceStart = i\n          braceNeg = false\n          acc += c\n          continue\n        }\n\n        if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n          ast.push(acc)\n          acc = ''\n          const ext = new AST(c, ast)\n          i = AST.#parseAST(str, ext, i, opt)\n          ast.push(ext)\n          continue\n        }\n        acc += c\n      }\n      ast.push(acc)\n      return i\n    }\n\n    // some kind of extglob, pos is at the (\n    // find the next | or )\n    let i = pos + 1\n    let part = new AST(null, ast)\n    const parts: AST[] = []\n    let acc = ''\n    while (i < str.length) {\n      const c = str.charAt(i++)\n      // still accumulate escapes at this point, but we do ignore\n      // starts that are escaped\n      if (escaping || c === '\\\\') {\n        escaping = !escaping\n        acc += c\n        continue\n      }\n\n      if (inBrace) {\n        if (i === braceStart + 1) {\n          if (c === '^' || c === '!') {\n            braceNeg = true\n          }\n        } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n          inBrace = false\n        }\n        acc += c\n        continue\n      } else if (c === '[') {\n        inBrace = true\n        braceStart = i\n        braceNeg = false\n        acc += c\n        continue\n      }\n\n      if (isExtglobType(c) && str.charAt(i) === '(') {\n        part.push(acc)\n        acc = ''\n        const ext = new AST(c, part)\n        part.push(ext)\n        i = AST.#parseAST(str, ext, i, opt)\n        continue\n      }\n      if (c === '|') {\n        part.push(acc)\n        acc = ''\n        parts.push(part)\n        part = new AST(null, ast)\n        continue\n      }\n      if (c === ')') {\n        if (acc === '' && ast.#parts.length === 0) {\n          ast.#emptyExt = true\n        }\n        part.push(acc)\n        acc = ''\n        ast.push(...parts, part)\n        return i\n      }\n      acc += c\n    }\n\n    // unfinished extglob\n    // if we got here, it was a malformed extglob! not an extglob, but\n    // maybe something else in there.\n    ast.type = null\n    ast.#hasMagic = undefined\n    ast.#parts = [str.substring(pos - 1)]\n    return i\n  }\n\n  static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n    const ast = new AST(null, undefined, options)\n    AST.#parseAST(pattern, ast, 0, options)\n    return ast\n  }\n\n  // returns the regular expression if there's magic, or the unescaped\n  // string if not.\n  toMMPattern(): MMRegExp | string {\n    // should only be called on root\n    /* c8 ignore start */\n    if (this !== this.#root) return this.#root.toMMPattern()\n    /* c8 ignore stop */\n    const glob = this.toString()\n    const [re, body, hasMagic, uflag] = this.toRegExpSource()\n    // if we're in nocase mode, and not nocaseMagicOnly, then we do\n    // still need a regular expression if we have to case-insensitively\n    // match capital/lowercase characters.\n    const anyMagic =\n      hasMagic ||\n      this.#hasMagic ||\n      (this.#options.nocase &&\n        !this.#options.nocaseMagicOnly &&\n        glob.toUpperCase() !== glob.toLowerCase())\n    if (!anyMagic) {\n      return body\n    }\n\n    const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '')\n    return Object.assign(new RegExp(`^${re}$`, flags), {\n      _src: re,\n      _glob: glob,\n    })\n  }\n\n  get options() {\n    return this.#options\n  }\n\n  // returns the string match, the regexp source, whether there's magic\n  // in the regexp (so a regular expression is required) and whether or\n  // not the uflag is needed for the regular expression (for posix classes)\n  // TODO: instead of injecting the start/end at this point, just return\n  // the BODY of the regexp, along with the start/end portions suitable\n  // for binding the start/end in either a joined full-path makeRe context\n  // (where we bind to (^|/), or a standalone matchPart context (where\n  // we bind to ^, and not /).  Otherwise slashes get duped!\n  //\n  // In part-matching mode, the start is:\n  // - if not isStart: nothing\n  // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n  // - if dots allowed or not possible: ^\n  // - if dots possible and not allowed: ^(?!\\.)\n  // end is:\n  // - if not isEnd(): nothing\n  // - else: $\n  //\n  // In full-path matching mode, we put the slash at the START of the\n  // pattern, so start is:\n  // - if first pattern: same as part-matching mode\n  // - if not isStart(): nothing\n  // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n  // - if dots allowed or not possible: /\n  // - if dots possible and not allowed: /(?!\\.)\n  // end is:\n  // - if last pattern, same as part-matching mode\n  // - else nothing\n  //\n  // Always put the (?:$|/) on negated tails, though, because that has to be\n  // there to bind the end of the negated pattern portion, and it's easier to\n  // just stick it in now rather than try to inject it later in the middle of\n  // the pattern.\n  //\n  // We can just always return the same end, and leave it up to the caller\n  // to know whether it's going to be used joined or in parts.\n  // And, if the start is adjusted slightly, can do the same there:\n  // - if not isStart: nothing\n  // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n  // - if dots allowed or not possible: (?:/|^)\n  // - if dots possible and not allowed: (?:/|^)(?!\\.)\n  //\n  // But it's better to have a simpler binding without a conditional, for\n  // performance, so probably better to return both start options.\n  //\n  // Then the caller just ignores the end if it's not the first pattern,\n  // and the start always gets applied.\n  //\n  // But that's always going to be $ if it's the ending pattern, or nothing,\n  // so the caller can just attach $ at the end of the pattern when building.\n  //\n  // So the todo is:\n  // - better detect what kind of start is needed\n  // - return both flavors of starting pattern\n  // - attach $ at the end of the pattern when creating the actual RegExp\n  //\n  // Ah, but wait, no, that all only applies to the root when the first pattern\n  // is not an extglob. If the first pattern IS an extglob, then we need all\n  // that dot prevention biz to live in the extglob portions, because eg\n  // +(*|.x*) can match .xy but not .yx.\n  //\n  // So, return the two flavors if it's #root and the first child is not an\n  // AST, otherwise leave it to the child AST to handle it, and there,\n  // use the (?:^|/) style of start binding.\n  //\n  // Even simplified further:\n  // - Since the start for a join is eg /(?!\\.) and the start for a part\n  // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n  // or start or whatever) and prepend ^ or / at the Regexp construction.\n  toRegExpSource(\n    allowDot?: boolean\n  ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n    const dot = allowDot ?? !!this.#options.dot\n    if (this.#root === this) this.#fillNegs()\n    if (!this.type) {\n      const noEmpty = this.isStart() && this.isEnd()\n      const src = this.#parts\n        .map(p => {\n          const [re, _, hasMagic, uflag] =\n            typeof p === 'string'\n              ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n              : p.toRegExpSource(allowDot)\n          this.#hasMagic = this.#hasMagic || hasMagic\n          this.#uflag = this.#uflag || uflag\n          return re\n        })\n        .join('')\n\n      let start = ''\n      if (this.isStart()) {\n        if (typeof this.#parts[0] === 'string') {\n          // this is the string that will match the start of the pattern,\n          // so we need to protect against dots and such.\n\n          // '.' and '..' cannot match unless the pattern is that exactly,\n          // even if it starts with . or dot:true is set.\n          const dotTravAllowed =\n            this.#parts.length === 1 && justDots.has(this.#parts[0])\n          if (!dotTravAllowed) {\n            const aps = addPatternStart\n            // check if we have a possibility of matching . or ..,\n            // and prevent that.\n            const needNoTrav =\n              // dots are allowed, and the pattern starts with [ or .\n              (dot && aps.has(src.charAt(0))) ||\n              // the pattern starts with \\., and then [ or .\n              (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n              // the pattern starts with \\.\\., and then [ or .\n              (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)))\n            // no need to prevent dots if it can't match a dot, or if a\n            // sub-pattern will be preventing it anyway.\n            const needNoDot = !dot && !allowDot && aps.has(src.charAt(0))\n\n            start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ''\n          }\n        }\n      }\n\n      // append the \"end of path portion\" pattern to negation tails\n      let end = ''\n      if (\n        this.isEnd() &&\n        this.#root.#filledNegs &&\n        this.#parent?.type === '!'\n      ) {\n        end = '(?:$|\\\\/)'\n      }\n      const final = start + src + end\n      return [\n        final,\n        unescape(src),\n        (this.#hasMagic = !!this.#hasMagic),\n        this.#uflag,\n      ]\n    }\n\n    // We need to calculate the body *twice* if it's a repeat pattern\n    // at the start, once in nodot mode, then again in dot mode, so a\n    // pattern like *(?) can match 'x.y'\n\n    const repeated = this.type === '*' || this.type === '+'\n    // some kind of extglob\n    const start = this.type === '!' ? '(?:(?!(?:' : '(?:'\n    let body = this.#partsToRegExp(dot)\n\n    if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n      // invalid extglob, has to at least be *something* present, if it's\n      // the entire path portion.\n      const s = this.toString()\n      this.#parts = [s]\n      this.type = null\n      this.#hasMagic = undefined\n      return [s, unescape(this.toString()), false, false]\n    }\n\n    // XXX abstract out this map method\n    let bodyDotAllowed =\n      !repeated || allowDot || dot || !startNoDot\n        ? ''\n        : this.#partsToRegExp(true)\n    if (bodyDotAllowed === body) {\n      bodyDotAllowed = ''\n    }\n    if (bodyDotAllowed) {\n      body = `(?:${body})(?:${bodyDotAllowed})*?`\n    }\n\n    // an empty !() is exactly equivalent to a starNoEmpty\n    let final = ''\n    if (this.type === '!' && this.#emptyExt) {\n      final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty\n    } else {\n      const close =\n        this.type === '!'\n          ? // !() must match something,but !(x) can match ''\n            '))' +\n            (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n            star +\n            ')'\n          : this.type === '@'\n          ? ')'\n          : this.type === '?'\n          ? ')?'\n          : this.type === '+' && bodyDotAllowed\n          ? ')'\n          : this.type === '*' && bodyDotAllowed\n          ? `)?`\n          : `)${this.type}`\n      final = start + body + close\n    }\n    return [\n      final,\n      unescape(body),\n      (this.#hasMagic = !!this.#hasMagic),\n      this.#uflag,\n    ]\n  }\n\n  #partsToRegExp(dot: boolean) {\n    return this.#parts\n      .map(p => {\n        // extglob ASTs should only contain parent ASTs\n        /* c8 ignore start */\n        if (typeof p === 'string') {\n          throw new Error('string type in extglob ast??')\n        }\n        /* c8 ignore stop */\n        // can ignore hasMagic, because extglobs are already always magic\n        const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot)\n        this.#uflag = this.#uflag || uflag\n        return re\n      })\n      .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n      .join('|')\n  }\n\n  static #parseGlob(\n    glob: string,\n    hasMagic: boolean | undefined,\n    noEmpty: boolean = false\n  ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n    let escaping = false\n    let re = ''\n    let uflag = false\n    for (let i = 0; i < glob.length; i++) {\n      const c = glob.charAt(i)\n      if (escaping) {\n        escaping = false\n        re += (reSpecials.has(c) ? '\\\\' : '') + c\n        continue\n      }\n      if (c === '\\\\') {\n        if (i === glob.length - 1) {\n          re += '\\\\\\\\'\n        } else {\n          escaping = true\n        }\n        continue\n      }\n      if (c === '[') {\n        const [src, needUflag, consumed, magic] = parseClass(glob, i)\n        if (consumed) {\n          re += src\n          uflag = uflag || needUflag\n          i += consumed - 1\n          hasMagic = hasMagic || magic\n          continue\n        }\n      }\n      if (c === '*') {\n        if (noEmpty && glob === '*') re += starNoEmpty\n        else re += star\n        hasMagic = true\n        continue\n      }\n      if (c === '?') {\n        re += qmark\n        hasMagic = true\n        continue\n      }\n      re += regExpEscape(c)\n    }\n    return [re, unescape(glob), !!hasMagic, uflag]\n  }\n}\n"]}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/brace-expressions.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/brace-expressions.d.ts
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/brace-expressions.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/brace-expressions.d.ts
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/brace-expressions.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/brace-expressions.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/brace-expressions.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/brace-expressions.js
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/brace-expressions.js
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/brace-expressions.js
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/brace-expressions.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/brace-expressions.js.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/brace-expressions.js.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/brace-expressions.js.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/escape.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/escape.d.ts
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/escape.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/escape.d.ts
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/escape.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/escape.d.ts.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/escape.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/escape.d.ts.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/escape.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/escape.js
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/escape.js
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/escape.js
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/escape.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/escape.js.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/escape.js.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/escape.js.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/index.d.ts
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/index.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/index.d.ts
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/index.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/index.d.ts.map
similarity index 94%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/index.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/index.d.ts.map
index 7a14a445ca..21f9cdc90b 100644
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/index.d.ts.map
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/index.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/index.js
similarity index 99%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/index.js
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/index.js
index 831b6a67f6..ff6319369c 100644
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/index.js
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/index.js
@@ -332,6 +332,7 @@ export class Minimatch {
             globParts = this.levelOneOptimize(globParts);
         }
         else {
+            // just collapse multiple ** portions into one
             globParts = this.adjascentGlobstarOptimize(globParts);
         }
         return globParts;
@@ -821,7 +822,11 @@ export class Minimatch {
             fastTest = dotStarTest;
         }
         const re = AST.fromGlob(pattern, this.options).toMMPattern();
-        return fastTest ? Object.assign(re, { test: fastTest }) : re;
+        if (fastTest && typeof re === 'object') {
+            // Avoids overriding in frozen environments
+            Reflect.defineProperty(re, 'test', { value: fastTest });
+        }
+        return re;
     }
     makeRe() {
         if (this.regexp || this.regexp === false)
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/index.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/index.js.map
new file mode 100644
index 0000000000..933299155e
--- /dev/null
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import expand from 'brace-expansion'\nimport { assertValidPattern } from './assert-valid-pattern.js'\nimport { AST, ExtglobType } from './ast.js'\nimport { escape } from './escape.js'\nimport { unescape } from './unescape.js'\n\ntype Platform =\n  | 'aix'\n  | 'android'\n  | 'darwin'\n  | 'freebsd'\n  | 'haiku'\n  | 'linux'\n  | 'openbsd'\n  | 'sunos'\n  | 'win32'\n  | 'cygwin'\n  | 'netbsd'\n\nexport interface MinimatchOptions {\n  nobrace?: boolean\n  nocomment?: boolean\n  nonegate?: boolean\n  debug?: boolean\n  noglobstar?: boolean\n  noext?: boolean\n  nonull?: boolean\n  windowsPathsNoEscape?: boolean\n  allowWindowsEscape?: boolean\n  partial?: boolean\n  dot?: boolean\n  nocase?: boolean\n  nocaseMagicOnly?: boolean\n  magicalBraces?: boolean\n  matchBase?: boolean\n  flipNegate?: boolean\n  preserveMultipleSlashes?: boolean\n  optimizationLevel?: number\n  platform?: Platform\n  windowsNoMagicRoot?: boolean\n}\n\nexport const minimatch = (\n  p: string,\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  assertValidPattern(pattern)\n\n  // shortcut: comments match nothing.\n  if (!options.nocomment && pattern.charAt(0) === '#') {\n    return false\n  }\n\n  return new Minimatch(pattern, options).match(p)\n}\n\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/\nconst starDotExtTest = (ext: string) => (f: string) =>\n  !f.startsWith('.') && f.endsWith(ext)\nconst starDotExtTestDot = (ext: string) => (f: string) => f.endsWith(ext)\nconst starDotExtTestNocase = (ext: string) => {\n  ext = ext.toLowerCase()\n  return (f: string) => !f.startsWith('.') && f.toLowerCase().endsWith(ext)\n}\nconst starDotExtTestNocaseDot = (ext: string) => {\n  ext = ext.toLowerCase()\n  return (f: string) => f.toLowerCase().endsWith(ext)\n}\nconst starDotStarRE = /^\\*+\\.\\*+$/\nconst starDotStarTest = (f: string) => !f.startsWith('.') && f.includes('.')\nconst starDotStarTestDot = (f: string) =>\n  f !== '.' && f !== '..' && f.includes('.')\nconst dotStarRE = /^\\.\\*+$/\nconst dotStarTest = (f: string) => f !== '.' && f !== '..' && f.startsWith('.')\nconst starRE = /^\\*+$/\nconst starTest = (f: string) => f.length !== 0 && !f.startsWith('.')\nconst starTestDot = (f: string) => f.length !== 0 && f !== '.' && f !== '..'\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/\nconst qmarksTestNocase = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExt([$0])\n  if (!ext) return noext\n  ext = ext.toLowerCase()\n  return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestNocaseDot = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExtDot([$0])\n  if (!ext) return noext\n  ext = ext.toLowerCase()\n  return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestDot = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExtDot([$0])\n  return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTest = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExt([$0])\n  return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTestNoExt = ([$0]: RegExpMatchArray) => {\n  const len = $0.length\n  return (f: string) => f.length === len && !f.startsWith('.')\n}\nconst qmarksTestNoExtDot = ([$0]: RegExpMatchArray) => {\n  const len = $0.length\n  return (f: string) => f.length === len && f !== '.' && f !== '..'\n}\n\n/* c8 ignore start */\nconst defaultPlatform: Platform = (\n  typeof process === 'object' && process\n    ? (typeof process.env === 'object' &&\n        process.env &&\n        process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n      process.platform\n    : 'posix'\n) as Platform\ntype Sep = '\\\\' | '/'\nconst path: { [k: string]: { sep: Sep } } = {\n  win32: { sep: '\\\\' },\n  posix: { sep: '/' },\n}\n/* c8 ignore stop */\n\nexport const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep\nminimatch.sep = sep\n\nexport const GLOBSTAR = Symbol('globstar **')\nminimatch.GLOBSTAR = GLOBSTAR\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n\n// ** when dots are allowed.  Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?'\n\nexport const filter =\n  (pattern: string, options: MinimatchOptions = {}) =>\n  (p: string) =>\n    minimatch(p, pattern, options)\nminimatch.filter = filter\n\nconst ext = (a: MinimatchOptions, b: MinimatchOptions = {}) =>\n  Object.assign({}, a, b)\n\nexport const defaults = (def: MinimatchOptions): typeof minimatch => {\n  if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n    return minimatch\n  }\n\n  const orig = minimatch\n\n  const m = (p: string, pattern: string, options: MinimatchOptions = {}) =>\n    orig(p, pattern, ext(def, options))\n\n  return Object.assign(m, {\n    Minimatch: class Minimatch extends orig.Minimatch {\n      constructor(pattern: string, options: MinimatchOptions = {}) {\n        super(pattern, ext(def, options))\n      }\n      static defaults(options: MinimatchOptions) {\n        return orig.defaults(ext(def, options)).Minimatch\n      }\n    },\n\n    AST: class AST extends orig.AST {\n      /* c8 ignore start */\n      constructor(\n        type: ExtglobType | null,\n        parent?: AST,\n        options: MinimatchOptions = {}\n      ) {\n        super(type, parent, ext(def, options))\n      }\n      /* c8 ignore stop */\n\n      static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n        return orig.AST.fromGlob(pattern, ext(def, options))\n      }\n    },\n\n    unescape: (\n      s: string,\n      options: Pick = {}\n    ) => orig.unescape(s, ext(def, options)),\n\n    escape: (\n      s: string,\n      options: Pick = {}\n    ) => orig.escape(s, ext(def, options)),\n\n    filter: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.filter(pattern, ext(def, options)),\n\n    defaults: (options: MinimatchOptions) => orig.defaults(ext(def, options)),\n\n    makeRe: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.makeRe(pattern, ext(def, options)),\n\n    braceExpand: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.braceExpand(pattern, ext(def, options)),\n\n    match: (list: string[], pattern: string, options: MinimatchOptions = {}) =>\n      orig.match(list, pattern, ext(def, options)),\n\n    sep: orig.sep,\n    GLOBSTAR: GLOBSTAR as typeof GLOBSTAR,\n  })\n}\nminimatch.defaults = defaults\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  assertValidPattern(pattern)\n\n  // Thanks to Yeting Li  for\n  // improving this regexp to avoid a ReDOS vulnerability.\n  if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n    // shortcut. no need to expand.\n    return [pattern]\n  }\n\n  return expand(pattern)\n}\nminimatch.braceExpand = braceExpand\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion.  Otherwise, any series\n// of * is equivalent to a single *.  Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\n\nexport const makeRe = (pattern: string, options: MinimatchOptions = {}) =>\n  new Minimatch(pattern, options).makeRe()\nminimatch.makeRe = makeRe\n\nexport const match = (\n  list: string[],\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  const mm = new Minimatch(pattern, options)\n  list = list.filter(f => mm.match(f))\n  if (mm.options.nonull && !list.length) {\n    list.push(pattern)\n  }\n  return list\n}\nminimatch.match = match\n\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/\nconst regExpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\nexport type MMRegExp = RegExp & {\n  _src?: string\n  _glob?: string\n}\n\nexport type ParseReturnFiltered = string | MMRegExp | typeof GLOBSTAR\nexport type ParseReturn = ParseReturnFiltered | false\n\nexport class Minimatch {\n  options: MinimatchOptions\n  set: ParseReturnFiltered[][]\n  pattern: string\n\n  windowsPathsNoEscape: boolean\n  nonegate: boolean\n  negate: boolean\n  comment: boolean\n  empty: boolean\n  preserveMultipleSlashes: boolean\n  partial: boolean\n  globSet: string[]\n  globParts: string[][]\n  nocase: boolean\n\n  isWindows: boolean\n  platform: Platform\n  windowsNoMagicRoot: boolean\n\n  regexp: false | null | MMRegExp\n  constructor(pattern: string, options: MinimatchOptions = {}) {\n    assertValidPattern(pattern)\n\n    options = options || {}\n    this.options = options\n    this.pattern = pattern\n    this.platform = options.platform || defaultPlatform\n    this.isWindows = this.platform === 'win32'\n    this.windowsPathsNoEscape =\n      !!options.windowsPathsNoEscape || options.allowWindowsEscape === false\n    if (this.windowsPathsNoEscape) {\n      this.pattern = this.pattern.replace(/\\\\/g, '/')\n    }\n    this.preserveMultipleSlashes = !!options.preserveMultipleSlashes\n    this.regexp = null\n    this.negate = false\n    this.nonegate = !!options.nonegate\n    this.comment = false\n    this.empty = false\n    this.partial = !!options.partial\n    this.nocase = !!this.options.nocase\n    this.windowsNoMagicRoot =\n      options.windowsNoMagicRoot !== undefined\n        ? options.windowsNoMagicRoot\n        : !!(this.isWindows && this.nocase)\n\n    this.globSet = []\n    this.globParts = []\n    this.set = []\n\n    // make the set of regexps etc.\n    this.make()\n  }\n\n  hasMagic(): boolean {\n    if (this.options.magicalBraces && this.set.length > 1) {\n      return true\n    }\n    for (const pattern of this.set) {\n      for (const part of pattern) {\n        if (typeof part !== 'string') return true\n      }\n    }\n    return false\n  }\n\n  debug(..._: any[]) {}\n\n  make() {\n    const pattern = this.pattern\n    const options = this.options\n\n    // empty patterns and comments match nothing.\n    if (!options.nocomment && pattern.charAt(0) === '#') {\n      this.comment = true\n      return\n    }\n\n    if (!pattern) {\n      this.empty = true\n      return\n    }\n\n    // step 1: figure out negation, etc.\n    this.parseNegate()\n\n    // step 2: expand braces\n    this.globSet = [...new Set(this.braceExpand())]\n\n    if (options.debug) {\n      this.debug = (...args: any[]) => console.error(...args)\n    }\n\n    this.debug(this.pattern, this.globSet)\n\n    // step 3: now we have a set, so turn each one into a series of\n    // path-portion matching patterns.\n    // These will be regexps, except in the case of \"**\", which is\n    // set to the GLOBSTAR object for globstar behavior,\n    // and will not contain any / characters\n    //\n    // First, we preprocess to make the glob pattern sets a bit simpler\n    // and deduped.  There are some perf-killing patterns that can cause\n    // problems with a glob walk, but we can simplify them down a bit.\n    const rawGlobParts = this.globSet.map(s => this.slashSplit(s))\n    this.globParts = this.preprocess(rawGlobParts)\n    this.debug(this.pattern, this.globParts)\n\n    // glob --> regexps\n    let set = this.globParts.map((s, _, __) => {\n      if (this.isWindows && this.windowsNoMagicRoot) {\n        // check if it's a drive or unc path.\n        const isUNC =\n          s[0] === '' &&\n          s[1] === '' &&\n          (s[2] === '?' || !globMagic.test(s[2])) &&\n          !globMagic.test(s[3])\n        const isDrive = /^[a-z]:/i.test(s[0])\n        if (isUNC) {\n          return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))]\n        } else if (isDrive) {\n          return [s[0], ...s.slice(1).map(ss => this.parse(ss))]\n        }\n      }\n      return s.map(ss => this.parse(ss))\n    })\n\n    this.debug(this.pattern, set)\n\n    // filter out everything that didn't compile properly.\n    this.set = set.filter(\n      s => s.indexOf(false) === -1\n    ) as ParseReturnFiltered[][]\n\n    // do not treat the ? in UNC paths as magic\n    if (this.isWindows) {\n      for (let i = 0; i < this.set.length; i++) {\n        const p = this.set[i]\n        if (\n          p[0] === '' &&\n          p[1] === '' &&\n          this.globParts[i][2] === '?' &&\n          typeof p[3] === 'string' &&\n          /^[a-z]:$/i.test(p[3])\n        ) {\n          p[2] = '?'\n        }\n      }\n    }\n\n    this.debug(this.pattern, this.set)\n  }\n\n  // various transforms to equivalent pattern sets that are\n  // faster to process in a filesystem walk.  The goal is to\n  // eliminate what we can, and push all ** patterns as far\n  // to the right as possible, even if it increases the number\n  // of patterns that we have to process.\n  preprocess(globParts: string[][]) {\n    // if we're not in globstar mode, then turn all ** into *\n    if (this.options.noglobstar) {\n      for (let i = 0; i < globParts.length; i++) {\n        for (let j = 0; j < globParts[i].length; j++) {\n          if (globParts[i][j] === '**') {\n            globParts[i][j] = '*'\n          }\n        }\n      }\n    }\n\n    const { optimizationLevel = 1 } = this.options\n\n    if (optimizationLevel >= 2) {\n      // aggressive optimization for the purpose of fs walking\n      globParts = this.firstPhasePreProcess(globParts)\n      globParts = this.secondPhasePreProcess(globParts)\n    } else if (optimizationLevel >= 1) {\n      // just basic optimizations to remove some .. parts\n      globParts = this.levelOneOptimize(globParts)\n    } else {\n      // just collapse multiple ** portions into one\n      globParts = this.adjascentGlobstarOptimize(globParts)\n    }\n\n    return globParts\n  }\n\n  // just get rid of adjascent ** portions\n  adjascentGlobstarOptimize(globParts: string[][]) {\n    return globParts.map(parts => {\n      let gs: number = -1\n      while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n        let i = gs\n        while (parts[i + 1] === '**') {\n          i++\n        }\n        if (i !== gs) {\n          parts.splice(gs, i - gs)\n        }\n      }\n      return parts\n    })\n  }\n\n  // get rid of adjascent ** and resolve .. portions\n  levelOneOptimize(globParts: string[][]) {\n    return globParts.map(parts => {\n      parts = parts.reduce((set: string[], part) => {\n        const prev = set[set.length - 1]\n        if (part === '**' && prev === '**') {\n          return set\n        }\n        if (part === '..') {\n          if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n            set.pop()\n            return set\n          }\n        }\n        set.push(part)\n        return set\n      }, [])\n      return parts.length === 0 ? [''] : parts\n    })\n  }\n\n  levelTwoFileOptimize(parts: string | string[]) {\n    if (!Array.isArray(parts)) {\n      parts = this.slashSplit(parts)\n    }\n    let didSomething: boolean = false\n    do {\n      didSomething = false\n      // 
// -> 
/\n      if (!this.preserveMultipleSlashes) {\n        for (let i = 1; i < parts.length - 1; i++) {\n          const p = parts[i]\n          // don't squeeze out UNC patterns\n          if (i === 1 && p === '' && parts[0] === '') continue\n          if (p === '.' || p === '') {\n            didSomething = true\n            parts.splice(i, 1)\n            i--\n          }\n        }\n        if (\n          parts[0] === '.' &&\n          parts.length === 2 &&\n          (parts[1] === '.' || parts[1] === '')\n        ) {\n          didSomething = true\n          parts.pop()\n        }\n      }\n\n      // 
/

/../ ->

/\n      let dd: number = 0\n      while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n        const p = parts[dd - 1]\n        if (p && p !== '.' && p !== '..' && p !== '**') {\n          didSomething = true\n          parts.splice(dd - 1, 2)\n          dd -= 2\n        }\n      }\n    } while (didSomething)\n    return parts.length === 0 ? [''] : parts\n  }\n\n  // First phase: single-pattern processing\n  // 
 is 1 or more portions\n  //  is 1 or more portions\n  // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n  // 
/

/../ ->

/\n  // **/**/ -> **/\n  //\n  // **/*/ -> */**/ <== not valid because ** doesn't follow\n  // this WOULD be allowed if ** did follow symlinks, or * didn't\n  firstPhasePreProcess(globParts: string[][]) {\n    let didSomething = false\n    do {\n      didSomething = false\n      // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs: number = -1\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss: number = gs\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n            gss++\n          }\n          // eg, if gs is 2 and gss is 4, that means we have 3 **\n          // parts, and can remove 2 of them.\n          if (gss > gs) {\n            parts.splice(gs + 1, gss - gs)\n          }\n\n          let next = parts[gs + 1]\n          const p = parts[gs + 2]\n          const p2 = parts[gs + 3]\n          if (next !== '..') continue\n          if (\n            !p ||\n            p === '.' ||\n            p === '..' ||\n            !p2 ||\n            p2 === '.' ||\n            p2 === '..'\n          ) {\n            continue\n          }\n          didSomething = true\n          // edit parts in place, and push the new one\n          parts.splice(gs, 1)\n          const other = parts.slice(0)\n          other[gs] = '**'\n          globParts.push(other)\n          gs--\n        }\n\n        // 
// -> 
/\n        if (!this.preserveMultipleSlashes) {\n          for (let i = 1; i < parts.length - 1; i++) {\n            const p = parts[i]\n            // don't squeeze out UNC patterns\n            if (i === 1 && p === '' && parts[0] === '') continue\n            if (p === '.' || p === '') {\n              didSomething = true\n              parts.splice(i, 1)\n              i--\n            }\n          }\n          if (\n            parts[0] === '.' &&\n            parts.length === 2 &&\n            (parts[1] === '.' || parts[1] === '')\n          ) {\n            didSomething = true\n            parts.pop()\n          }\n        }\n\n        // 
/

/../ ->

/\n        let dd: number = 0\n        while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n          const p = parts[dd - 1]\n          if (p && p !== '.' && p !== '..' && p !== '**') {\n            didSomething = true\n            const needDot = dd === 1 && parts[dd + 1] === '**'\n            const splin = needDot ? ['.'] : []\n            parts.splice(dd - 1, 2, ...splin)\n            if (parts.length === 0) parts.push('')\n            dd -= 2\n          }\n        }\n      }\n    } while (didSomething)\n\n    return globParts\n  }\n\n  // second phase: multi-pattern dedupes\n  // {
/*/,
/

/} ->

/*/\n  // {
/,
/} -> 
/\n  // {
/**/,
/} -> 
/**/\n  //\n  // {
/**/,
/**/

/} ->

/**/\n  // ^-- not valid because ** doens't follow symlinks\n  secondPhasePreProcess(globParts: string[][]): string[][] {\n    for (let i = 0; i < globParts.length - 1; i++) {\n      for (let j = i + 1; j < globParts.length; j++) {\n        const matched = this.partsMatch(\n          globParts[i],\n          globParts[j],\n          !this.preserveMultipleSlashes\n        )\n        if (!matched) continue\n        globParts[i] = matched\n        globParts[j] = []\n      }\n    }\n    return globParts.filter(gs => gs.length)\n  }\n\n  partsMatch(\n    a: string[],\n    b: string[],\n    emptyGSMatch: boolean = false\n  ): false | string[] {\n    let ai = 0\n    let bi = 0\n    let result: string[] = []\n    let which: string = ''\n    while (ai < a.length && bi < b.length) {\n      if (a[ai] === b[bi]) {\n        result.push(which === 'b' ? b[bi] : a[ai])\n        ai++\n        bi++\n      } else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n        result.push(a[ai])\n        ai++\n      } else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n        result.push(b[bi])\n        bi++\n      } else if (\n        a[ai] === '*' &&\n        b[bi] &&\n        (this.options.dot || !b[bi].startsWith('.')) &&\n        b[bi] !== '**'\n      ) {\n        if (which === 'b') return false\n        which = 'a'\n        result.push(a[ai])\n        ai++\n        bi++\n      } else if (\n        b[bi] === '*' &&\n        a[ai] &&\n        (this.options.dot || !a[ai].startsWith('.')) &&\n        a[ai] !== '**'\n      ) {\n        if (which === 'a') return false\n        which = 'b'\n        result.push(b[bi])\n        ai++\n        bi++\n      } else {\n        return false\n      }\n    }\n    // if we fall out of the loop, it means they two are identical\n    // as long as their lengths match\n    return a.length === b.length && result\n  }\n\n  parseNegate() {\n    if (this.nonegate) return\n\n    const pattern = this.pattern\n    let negate = false\n    let negateOffset = 0\n\n    for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n      negate = !negate\n      negateOffset++\n    }\n\n    if (negateOffset) this.pattern = pattern.slice(negateOffset)\n    this.negate = negate\n  }\n\n  // set partial to true to test if, for example,\n  // \"/a/b\" matches the start of \"/*/b/*/d\"\n  // Partial means, if you run out of file before you run\n  // out of pattern, then that's fine, as long as all\n  // the parts match.\n  matchOne(file: string[], pattern: ParseReturn[], partial: boolean = false) {\n    const options = this.options\n\n    // UNC paths like //?/X:/... can match X:/... and vice versa\n    // Drive letters in absolute drive or unc paths are always compared\n    // case-insensitively.\n    if (this.isWindows) {\n      const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0])\n      const fileUNC =\n        !fileDrive &&\n        file[0] === '' &&\n        file[1] === '' &&\n        file[2] === '?' &&\n        /^[a-z]:$/i.test(file[3])\n\n      const patternDrive =\n        typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0])\n      const patternUNC =\n        !patternDrive &&\n        pattern[0] === '' &&\n        pattern[1] === '' &&\n        pattern[2] === '?' &&\n        typeof pattern[3] === 'string' &&\n        /^[a-z]:$/i.test(pattern[3])\n\n      const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined\n      const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined\n      if (typeof fdi === 'number' && typeof pdi === 'number') {\n        const [fd, pd]: [string, string] = [file[fdi], pattern[pdi] as string]\n        if (fd.toLowerCase() === pd.toLowerCase()) {\n          pattern[pdi] = fd\n          if (pdi > fdi) {\n            pattern = pattern.slice( pdi)\n          } else if (fdi > pdi) {\n            file = file.slice(fdi)\n          }\n        }\n      }\n    }\n\n    // resolve and reduce . and .. portions in the file as well.\n    // dont' need to do the second phase, because it's only one string[]\n    const { optimizationLevel = 1 } = this.options\n    if (optimizationLevel >= 2) {\n      file = this.levelTwoFileOptimize(file)\n    }\n\n    this.debug('matchOne', this, { file, pattern })\n    this.debug('matchOne', file.length, pattern.length)\n\n    for (\n      var fi = 0, pi = 0, fl = file.length, pl = pattern.length;\n      fi < fl && pi < pl;\n      fi++, pi++\n    ) {\n      this.debug('matchOne loop')\n      var p = pattern[pi]\n      var f = file[fi]\n\n      this.debug(pattern, p, f)\n\n      // should be impossible.\n      // some invalid regexp stuff in the set.\n      /* c8 ignore start */\n      if (p === false) {\n        return false\n      }\n      /* c8 ignore stop */\n\n      if (p === GLOBSTAR) {\n        this.debug('GLOBSTAR', [pattern, p, f])\n\n        // \"**\"\n        // a/**/b/**/c would match the following:\n        // a/b/x/y/z/c\n        // a/x/y/z/b/c\n        // a/b/x/b/x/c\n        // a/b/c\n        // To do this, take the rest of the pattern after\n        // the **, and see if it would match the file remainder.\n        // If so, return success.\n        // If not, the ** \"swallows\" a segment, and try again.\n        // This is recursively awful.\n        //\n        // a/**/b/**/c matching a/b/x/y/z/c\n        // - a matches a\n        // - doublestar\n        //   - matchOne(b/x/y/z/c, b/**/c)\n        //     - b matches b\n        //     - doublestar\n        //       - matchOne(x/y/z/c, c) -> no\n        //       - matchOne(y/z/c, c) -> no\n        //       - matchOne(z/c, c) -> no\n        //       - matchOne(c, c) yes, hit\n        var fr = fi\n        var pr = pi + 1\n        if (pr === pl) {\n          this.debug('** at the end')\n          // a ** at the end will just swallow the rest.\n          // We have found a match.\n          // however, it will not swallow /.x, unless\n          // options.dot is set.\n          // . and .. are *never* matched by **, for explosively\n          // exponential reasons.\n          for (; fi < fl; fi++) {\n            if (\n              file[fi] === '.' ||\n              file[fi] === '..' ||\n              (!options.dot && file[fi].charAt(0) === '.')\n            )\n              return false\n          }\n          return true\n        }\n\n        // ok, let's see if we can swallow whatever we can.\n        while (fr < fl) {\n          var swallowee = file[fr]\n\n          this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n          // XXX remove this slice.  Just pass the start index.\n          if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n            this.debug('globstar found match!', fr, fl, swallowee)\n            // found a match.\n            return true\n          } else {\n            // can't swallow \".\" or \"..\" ever.\n            // can only swallow \".foo\" when explicitly asked.\n            if (\n              swallowee === '.' ||\n              swallowee === '..' ||\n              (!options.dot && swallowee.charAt(0) === '.')\n            ) {\n              this.debug('dot detected!', file, fr, pattern, pr)\n              break\n            }\n\n            // ** swallows a segment, and continue.\n            this.debug('globstar swallow a segment, and continue')\n            fr++\n          }\n        }\n\n        // no match was found.\n        // However, in partial mode, we can't say this is necessarily over.\n        /* c8 ignore start */\n        if (partial) {\n          // ran out of file\n          this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n          if (fr === fl) {\n            return true\n          }\n        }\n        /* c8 ignore stop */\n        return false\n      }\n\n      // something other than **\n      // non-magic patterns just have to match exactly\n      // patterns with magic have been turned into regexps.\n      let hit: boolean\n      if (typeof p === 'string') {\n        hit = f === p\n        this.debug('string match', p, f, hit)\n      } else {\n        hit = p.test(f)\n        this.debug('pattern match', p, f, hit)\n      }\n\n      if (!hit) return false\n    }\n\n    // Note: ending in / means that we'll get a final \"\"\n    // at the end of the pattern.  This can only match a\n    // corresponding \"\" at the end of the file.\n    // If the file ends in /, then it can only match a\n    // a pattern that ends in /, unless the pattern just\n    // doesn't have any more for it. But, a/b/ should *not*\n    // match \"a/b/*\", even though \"\" matches against the\n    // [^/]*? pattern, except in partial mode, where it might\n    // simply not be reached yet.\n    // However, a/b/ should still satisfy a/*\n\n    // now either we fell off the end of the pattern, or we're done.\n    if (fi === fl && pi === pl) {\n      // ran out of pattern and filename at the same time.\n      // an exact hit!\n      return true\n    } else if (fi === fl) {\n      // ran out of file, but still had pattern left.\n      // this is ok if we're doing the match as part of\n      // a glob fs traversal.\n      return partial\n    } else if (pi === pl) {\n      // ran out of pattern, still have file left.\n      // this is only acceptable if we're on the very last\n      // empty segment of a file with a trailing slash.\n      // a/* should match a/b/\n      return fi === fl - 1 && file[fi] === ''\n\n      /* c8 ignore start */\n    } else {\n      // should be unreachable.\n      throw new Error('wtf?')\n    }\n    /* c8 ignore stop */\n  }\n\n  braceExpand() {\n    return braceExpand(this.pattern, this.options)\n  }\n\n  parse(pattern: string): ParseReturn {\n    assertValidPattern(pattern)\n\n    const options = this.options\n\n    // shortcuts\n    if (pattern === '**') return GLOBSTAR\n    if (pattern === '') return ''\n\n    // far and away, the most common glob pattern parts are\n    // *, *.*, and *.  Add a fast check method for those.\n    let m: RegExpMatchArray | null\n    let fastTest: null | ((f: string) => boolean) = null\n    if ((m = pattern.match(starRE))) {\n      fastTest = options.dot ? starTestDot : starTest\n    } else if ((m = pattern.match(starDotExtRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? starDotExtTestNocaseDot\n            : starDotExtTestNocase\n          : options.dot\n          ? starDotExtTestDot\n          : starDotExtTest\n      )(m[1])\n    } else if ((m = pattern.match(qmarksRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? qmarksTestNocaseDot\n            : qmarksTestNocase\n          : options.dot\n          ? qmarksTestDot\n          : qmarksTest\n      )(m)\n    } else if ((m = pattern.match(starDotStarRE))) {\n      fastTest = options.dot ? starDotStarTestDot : starDotStarTest\n    } else if ((m = pattern.match(dotStarRE))) {\n      fastTest = dotStarTest\n    }\n\n    const re = AST.fromGlob(pattern, this.options).toMMPattern()\n    if (fastTest && typeof re === 'object') {\n      // Avoids overriding in frozen environments\n      Reflect.defineProperty(re, 'test', { value: fastTest })\n    }\n    return re\n  }\n\n  makeRe() {\n    if (this.regexp || this.regexp === false) return this.regexp\n\n    // at this point, this.set is a 2d array of partial\n    // pattern strings, or \"**\".\n    //\n    // It's better to use .match().  This function shouldn't\n    // be used, really, but it's pretty convenient sometimes,\n    // when you just want to work with a regex.\n    const set = this.set\n\n    if (!set.length) {\n      this.regexp = false\n      return this.regexp\n    }\n    const options = this.options\n\n    const twoStar = options.noglobstar\n      ? star\n      : options.dot\n      ? twoStarDot\n      : twoStarNoDot\n    const flags = new Set(options.nocase ? ['i'] : [])\n\n    // regexpify non-globstar patterns\n    // if ** is only item, then we just do one twoStar\n    // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n    // if ** is last, append (\\/twoStar|) to previous\n    // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n    // then filter out GLOBSTAR symbols\n    let re = set\n      .map(pattern => {\n        const pp: (string | typeof GLOBSTAR)[] = pattern.map(p => {\n          if (p instanceof RegExp) {\n            for (const f of p.flags.split('')) flags.add(f)\n          }\n          return typeof p === 'string'\n            ? regExpEscape(p)\n            : p === GLOBSTAR\n            ? GLOBSTAR\n            : p._src\n        }) as (string | typeof GLOBSTAR)[]\n        pp.forEach((p, i) => {\n          const next = pp[i + 1]\n          const prev = pp[i - 1]\n          if (p !== GLOBSTAR || prev === GLOBSTAR) {\n            return\n          }\n          if (prev === undefined) {\n            if (next !== undefined && next !== GLOBSTAR) {\n              pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next\n            } else {\n              pp[i] = twoStar\n            }\n          } else if (next === undefined) {\n            pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?'\n          } else if (next !== GLOBSTAR) {\n            pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next\n            pp[i + 1] = GLOBSTAR\n          }\n        })\n        return pp.filter(p => p !== GLOBSTAR).join('/')\n      })\n      .join('|')\n\n    // need to wrap in parens if we had more than one thing with |,\n    // otherwise only the first will be anchored to ^ and the last to $\n    const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', '']\n    // must match entire pattern\n    // ending in a * or ** will make it less strict.\n    re = '^' + open + re + close + '$'\n\n    // can match anything, as long as it's not this.\n    if (this.negate) re = '^(?!' + re + ').+$'\n\n    try {\n      this.regexp = new RegExp(re, [...flags].join(''))\n      /* c8 ignore start */\n    } catch (ex) {\n      // should be impossible\n      this.regexp = false\n    }\n    /* c8 ignore stop */\n    return this.regexp\n  }\n\n  slashSplit(p: string) {\n    // if p starts with // on windows, we preserve that\n    // so that UNC paths aren't broken.  Otherwise, any number of\n    // / characters are coalesced into one, unless\n    // preserveMultipleSlashes is set to true.\n    if (this.preserveMultipleSlashes) {\n      return p.split('/')\n    } else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n      // add an extra '' for the one we lose\n      return ['', ...p.split(/\\/+/)]\n    } else {\n      return p.split(/\\/+/)\n    }\n  }\n\n  match(f: string, partial = this.partial) {\n    this.debug('match', f, this.pattern)\n    // short-circuit in the case of busted things.\n    // comments, etc.\n    if (this.comment) {\n      return false\n    }\n    if (this.empty) {\n      return f === ''\n    }\n\n    if (f === '/' && partial) {\n      return true\n    }\n\n    const options = this.options\n\n    // windows: need to use /, not \\\n    if (this.isWindows) {\n      f = f.split('\\\\').join('/')\n    }\n\n    // treat the test path as a set of pathparts.\n    const ff = this.slashSplit(f)\n    this.debug(this.pattern, 'split', ff)\n\n    // just ONE of the pattern sets in this.set needs to match\n    // in order for it to be valid.  If negating, then just one\n    // match means that we have failed.\n    // Either way, return on the first hit.\n\n    const set = this.set\n    this.debug(this.pattern, 'set', set)\n\n    // Find the basename of the path by looking for the last non-empty segment\n    let filename: string = ff[ff.length - 1]\n    if (!filename) {\n      for (let i = ff.length - 2; !filename && i >= 0; i--) {\n        filename = ff[i]\n      }\n    }\n\n    for (let i = 0; i < set.length; i++) {\n      const pattern = set[i]\n      let file = ff\n      if (options.matchBase && pattern.length === 1) {\n        file = [filename]\n      }\n      const hit = this.matchOne(file, pattern, partial)\n      if (hit) {\n        if (options.flipNegate) {\n          return true\n        }\n        return !this.negate\n      }\n    }\n\n    // didn't get any hits.  this is success if it's a negative\n    // pattern, failure otherwise.\n    if (options.flipNegate) {\n      return false\n    }\n    return this.negate\n  }\n\n  static defaults(def: MinimatchOptions) {\n    return minimatch.defaults(def).Minimatch\n  }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js'\nexport { escape } from './escape.js'\nexport { unescape } from './unescape.js'\n/* c8 ignore stop */\nminimatch.AST = AST\nminimatch.Minimatch = Minimatch\nminimatch.escape = escape\nminimatch.unescape = unescape\n"]}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/package.json b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/package.json
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/package.json
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/package.json
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/unescape.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/unescape.d.ts
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/unescape.d.ts
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/unescape.d.ts
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/unescape.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/unescape.d.ts.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/unescape.d.ts.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/unescape.d.ts.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/unescape.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/unescape.js
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/unescape.js
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/unescape.js
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/unescape.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/unescape.js.map
similarity index 100%
rename from node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/unescape.js.map
rename to node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/esm/unescape.js.map
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/ast.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/ast.js.map
deleted file mode 100644
index 5ddff36db6..0000000000
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/ast.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"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","sourcesContent":["// parse a single path portion\n\nimport { parseClass } from './brace-expressions.js'\nimport { MinimatchOptions, MMRegExp } from './index.js'\nimport { unescape } from './unescape.js'\n\n// classes [] are handled by the parseClass method\n// for positive extglobs, we sub-parse the contents, and combine,\n// with the appropriate regexp close.\n// for negative extglobs, we sub-parse the contents, but then\n// have to include the rest of the pattern, then the parent, etc.,\n// as the thing that cannot be because RegExp negative lookaheads\n// are different from globs.\n//\n// So for example:\n// a@(i|w!(x|y)z|j)b => ^a(i|w((!?(x|y)zb).*)z|j)b$\n//   1   2 3   4 5 6      1   2    3   46      5 6\n//\n// Assembling the extglob requires not just the negated patterns themselves,\n// but also anything following the negative patterns up to the boundary\n// of the current pattern, plus anything following in the parent pattern.\n//\n//\n// So, first, we parse the string into an AST of extglobs, without turning\n// anything into regexps yet.\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y']}, 'z'], ['j']]}, 'b']\n//\n// Then, for all the negative extglobs, we append whatever comes after in\n// each parent as their tail\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y'], 'z', 'b'}, 'z'], ['j']]}, 'b']\n//\n// Lastly, we turn each of these pieces into a regexp, and join\n//\n//                                 v----- .* because there's more following,\n//                                 v    v  otherwise, .+ because it must be\n//                                 v    v  *something* there.\n// ['^a', {@ ['i', 'w(?:(!?(?:x|y).*zb$).*)z', 'j' ]}, 'b$']\n//   copy what follows into here--^^^^^\n// ['^a', '(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)', 'b$']\n// ['^a(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)b$']\n\nexport type ExtglobType = '!' | '?' | '+' | '*' | '@'\nconst types = new Set(['!', '?', '+', '*', '@'])\nconst isExtglobType = (c: string): c is ExtglobType =>\n  types.has(c as ExtglobType)\n\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))'\nconst startNoDot = '(?!\\\\.)'\n\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.'])\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.'])\nconst reSpecials = new Set('().*{}+?[]^$\\\\!')\nconst regExpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// any single thing other than /\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?'\n\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\n\nexport class AST {\n  type: ExtglobType | null\n  readonly #root: AST\n\n  #hasMagic?: boolean\n  #uflag: boolean = false\n  #parts: (string | AST)[] = []\n  readonly #parent?: AST\n  readonly #parentIndex: number\n  #negs: AST[]\n  #filledNegs: boolean = false\n  #options: MinimatchOptions\n  #toString?: string\n  // set to true if it's an extglob with no children\n  // (which really means one child of '')\n  #emptyExt: boolean = false\n\n  constructor(\n    type: ExtglobType | null,\n    parent?: AST,\n    options: MinimatchOptions = {}\n  ) {\n    this.type = type\n    // extglobs are inherently magical\n    if (type) this.#hasMagic = true\n    this.#parent = parent\n    this.#root = this.#parent ? this.#parent.#root : this\n    this.#options = this.#root === this ? options : this.#root.#options\n    this.#negs = this.#root === this ? [] : this.#root.#negs\n    if (type === '!' && !this.#root.#filledNegs) this.#negs.push(this)\n    this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0\n  }\n\n  get hasMagic(): boolean | undefined {\n    /* c8 ignore start */\n    if (this.#hasMagic !== undefined) return this.#hasMagic\n    /* c8 ignore stop */\n    for (const p of this.#parts) {\n      if (typeof p === 'string') continue\n      if (p.type || p.hasMagic) return (this.#hasMagic = true)\n    }\n    // note: will be undefined until we generate the regexp src and find out\n    return this.#hasMagic\n  }\n\n  // reconstructs the pattern\n  toString(): string {\n    if (this.#toString !== undefined) return this.#toString\n    if (!this.type) {\n      return (this.#toString = this.#parts.map(p => String(p)).join(''))\n    } else {\n      return (this.#toString =\n        this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')')\n    }\n  }\n\n  #fillNegs() {\n    /* c8 ignore start */\n    if (this !== this.#root) throw new Error('should only call on root')\n    if (this.#filledNegs) return this\n    /* c8 ignore stop */\n\n    // call toString() once to fill this out\n    this.toString()\n    this.#filledNegs = true\n    let n: AST | undefined\n    while ((n = this.#negs.pop())) {\n      if (n.type !== '!') continue\n      // walk up the tree, appending everthing that comes AFTER parentIndex\n      let p: AST | undefined = n\n      let pp = p.#parent\n      while (pp) {\n        for (\n          let i = p.#parentIndex + 1;\n          !pp.type && i < pp.#parts.length;\n          i++\n        ) {\n          for (const part of n.#parts) {\n            /* c8 ignore start */\n            if (typeof part === 'string') {\n              throw new Error('string part in extglob AST??')\n            }\n            /* c8 ignore stop */\n            part.copyIn(pp.#parts[i])\n          }\n        }\n        p = pp\n        pp = p.#parent\n      }\n    }\n    return this\n  }\n\n  push(...parts: (string | AST)[]) {\n    for (const p of parts) {\n      if (p === '') continue\n      /* c8 ignore start */\n      if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n        throw new Error('invalid part: ' + p)\n      }\n      /* c8 ignore stop */\n      this.#parts.push(p)\n    }\n  }\n\n  toJSON() {\n    const ret: any[] =\n      this.type === null\n        ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n        : [this.type, ...this.#parts.map(p => (p as AST).toJSON())]\n    if (this.isStart() && !this.type) ret.unshift([])\n    if (\n      this.isEnd() &&\n      (this === this.#root ||\n        (this.#root.#filledNegs && this.#parent?.type === '!'))\n    ) {\n      ret.push({})\n    }\n    return ret\n  }\n\n  isStart(): boolean {\n    if (this.#root === this) return true\n    // if (this.type) return !!this.#parent?.isStart()\n    if (!this.#parent?.isStart()) return false\n    if (this.#parentIndex === 0) return true\n    // if everything AHEAD of this is a negation, then it's still the \"start\"\n    const p = this.#parent\n    for (let i = 0; i < this.#parentIndex; i++) {\n      const pp = p.#parts[i]\n      if (!(pp instanceof AST && pp.type === '!')) {\n        return false\n      }\n    }\n    return true\n  }\n\n  isEnd(): boolean {\n    if (this.#root === this) return true\n    if (this.#parent?.type === '!') return true\n    if (!this.#parent?.isEnd()) return false\n    if (!this.type) return this.#parent?.isEnd()\n    // if not root, it'll always have a parent\n    /* c8 ignore start */\n    const pl = this.#parent ? this.#parent.#parts.length : 0\n    /* c8 ignore stop */\n    return this.#parentIndex === pl - 1\n  }\n\n  copyIn(part: AST | string) {\n    if (typeof part === 'string') this.push(part)\n    else this.push(part.clone(this))\n  }\n\n  clone(parent: AST) {\n    const c = new AST(this.type, parent)\n    for (const p of this.#parts) {\n      c.copyIn(p)\n    }\n    return c\n  }\n\n  static #parseAST(\n    str: string,\n    ast: AST,\n    pos: number,\n    opt: MinimatchOptions\n  ): number {\n    let escaping = false\n    let inBrace = false\n    let braceStart = -1\n    let braceNeg = false\n    if (ast.type === null) {\n      // outside of a extglob, append until we find a start\n      let i = pos\n      let acc = ''\n      while (i < str.length) {\n        const c = str.charAt(i++)\n        // still accumulate escapes at this point, but we do ignore\n        // starts that are escaped\n        if (escaping || c === '\\\\') {\n          escaping = !escaping\n          acc += c\n          continue\n        }\n\n        if (inBrace) {\n          if (i === braceStart + 1) {\n            if (c === '^' || c === '!') {\n              braceNeg = true\n            }\n          } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n            inBrace = false\n          }\n          acc += c\n          continue\n        } else if (c === '[') {\n          inBrace = true\n          braceStart = i\n          braceNeg = false\n          acc += c\n          continue\n        }\n\n        if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n          ast.push(acc)\n          acc = ''\n          const ext = new AST(c, ast)\n          i = AST.#parseAST(str, ext, i, opt)\n          ast.push(ext)\n          continue\n        }\n        acc += c\n      }\n      ast.push(acc)\n      return i\n    }\n\n    // some kind of extglob, pos is at the (\n    // find the next | or )\n    let i = pos + 1\n    let part = new AST(null, ast)\n    const parts: AST[] = []\n    let acc = ''\n    while (i < str.length) {\n      const c = str.charAt(i++)\n      // still accumulate escapes at this point, but we do ignore\n      // starts that are escaped\n      if (escaping || c === '\\\\') {\n        escaping = !escaping\n        acc += c\n        continue\n      }\n\n      if (inBrace) {\n        if (i === braceStart + 1) {\n          if (c === '^' || c === '!') {\n            braceNeg = true\n          }\n        } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n          inBrace = false\n        }\n        acc += c\n        continue\n      } else if (c === '[') {\n        inBrace = true\n        braceStart = i\n        braceNeg = false\n        acc += c\n        continue\n      }\n\n      if (isExtglobType(c) && str.charAt(i) === '(') {\n        part.push(acc)\n        acc = ''\n        const ext = new AST(c, part)\n        part.push(ext)\n        i = AST.#parseAST(str, ext, i, opt)\n        continue\n      }\n      if (c === '|') {\n        part.push(acc)\n        acc = ''\n        parts.push(part)\n        part = new AST(null, ast)\n        continue\n      }\n      if (c === ')') {\n        if (acc === '' && ast.#parts.length === 0) {\n          ast.#emptyExt = true\n        }\n        part.push(acc)\n        acc = ''\n        ast.push(...parts, part)\n        return i\n      }\n      acc += c\n    }\n\n    // unfinished extglob\n    // if we got here, it was a malformed extglob! not an extglob, but\n    // maybe something else in there.\n    ast.type = null\n    ast.#hasMagic = undefined\n    ast.#parts = [str.substring(pos - 1)]\n    return i\n  }\n\n  static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n    const ast = new AST(null, undefined, options)\n    AST.#parseAST(pattern, ast, 0, options)\n    return ast\n  }\n\n  // returns the regular expression if there's magic, or the unescaped\n  // string if not.\n  toMMPattern(): MMRegExp | string {\n    // should only be called on root\n    /* c8 ignore start */\n    if (this !== this.#root) return this.#root.toMMPattern()\n    /* c8 ignore stop */\n    const glob = this.toString()\n    const [re, body, hasMagic, uflag] = this.toRegExpSource()\n    // if we're in nocase mode, and not nocaseMagicOnly, then we do\n    // still need a regular expression if we have to case-insensitively\n    // match capital/lowercase characters.\n    const anyMagic =\n      hasMagic ||\n      this.#hasMagic ||\n      (this.#options.nocase &&\n        !this.#options.nocaseMagicOnly &&\n        glob.toUpperCase() !== glob.toLowerCase())\n    if (!anyMagic) {\n      return body\n    }\n\n    const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '')\n    return Object.assign(new RegExp(`^${re}$`, flags), {\n      _src: re,\n      _glob: glob,\n    })\n  }\n\n  // returns the string match, the regexp source, whether there's magic\n  // in the regexp (so a regular expression is required) and whether or\n  // not the uflag is needed for the regular expression (for posix classes)\n  // TODO: instead of injecting the start/end at this point, just return\n  // the BODY of the regexp, along with the start/end portions suitable\n  // for binding the start/end in either a joined full-path makeRe context\n  // (where we bind to (^|/), or a standalone matchPart context (where\n  // we bind to ^, and not /).  Otherwise slashes get duped!\n  //\n  // In part-matching mode, the start is:\n  // - if not isStart: nothing\n  // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n  // - if dots allowed or not possible: ^\n  // - if dots possible and not allowed: ^(?!\\.)\n  // end is:\n  // - if not isEnd(): nothing\n  // - else: $\n  //\n  // In full-path matching mode, we put the slash at the START of the\n  // pattern, so start is:\n  // - if first pattern: same as part-matching mode\n  // - if not isStart(): nothing\n  // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n  // - if dots allowed or not possible: /\n  // - if dots possible and not allowed: /(?!\\.)\n  // end is:\n  // - if last pattern, same as part-matching mode\n  // - else nothing\n  //\n  // Always put the (?:$|/) on negated tails, though, because that has to be\n  // there to bind the end of the negated pattern portion, and it's easier to\n  // just stick it in now rather than try to inject it later in the middle of\n  // the pattern.\n  //\n  // We can just always return the same end, and leave it up to the caller\n  // to know whether it's going to be used joined or in parts.\n  // And, if the start is adjusted slightly, can do the same there:\n  // - if not isStart: nothing\n  // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n  // - if dots allowed or not possible: (?:/|^)\n  // - if dots possible and not allowed: (?:/|^)(?!\\.)\n  //\n  // But it's better to have a simpler binding without a conditional, for\n  // performance, so probably better to return both start options.\n  //\n  // Then the caller just ignores the end if it's not the first pattern,\n  // and the start always gets applied.\n  //\n  // But that's always going to be $ if it's the ending pattern, or nothing,\n  // so the caller can just attach $ at the end of the pattern when building.\n  //\n  // So the todo is:\n  // - better detect what kind of start is needed\n  // - return both flavors of starting pattern\n  // - attach $ at the end of the pattern when creating the actual RegExp\n  //\n  // Ah, but wait, no, that all only applies to the root when the first pattern\n  // is not an extglob. If the first pattern IS an extglob, then we need all\n  // that dot prevention biz to live in the extglob portions, because eg\n  // +(*|.x*) can match .xy but not .yx.\n  //\n  // So, return the two flavors if it's #root and the first child is not an\n  // AST, otherwise leave it to the child AST to handle it, and there,\n  // use the (?:^|/) style of start binding.\n  //\n  // Even simplified further:\n  // - Since the start for a join is eg /(?!\\.) and the start for a part\n  // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n  // or start or whatever) and prepend ^ or / at the Regexp construction.\n  toRegExpSource(\n    allowDot?: boolean\n  ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n    const dot = allowDot ?? !!this.#options.dot\n    if (this.#root === this) this.#fillNegs()\n    if (!this.type) {\n      const noEmpty = this.isStart() && this.isEnd()\n      const src = this.#parts\n        .map(p => {\n          const [re, _, hasMagic, uflag] =\n            typeof p === 'string'\n              ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n              : p.toRegExpSource(allowDot)\n          this.#hasMagic = this.#hasMagic || hasMagic\n          this.#uflag = this.#uflag || uflag\n          return re\n        })\n        .join('')\n\n      let start = ''\n      if (this.isStart()) {\n        if (typeof this.#parts[0] === 'string') {\n          // this is the string that will match the start of the pattern,\n          // so we need to protect against dots and such.\n\n          // '.' and '..' cannot match unless the pattern is that exactly,\n          // even if it starts with . or dot:true is set.\n          const dotTravAllowed =\n            this.#parts.length === 1 && justDots.has(this.#parts[0])\n          if (!dotTravAllowed) {\n            const aps = addPatternStart\n            // check if we have a possibility of matching . or ..,\n            // and prevent that.\n            const needNoTrav =\n              // dots are allowed, and the pattern starts with [ or .\n              (dot && aps.has(src.charAt(0))) ||\n              // the pattern starts with \\., and then [ or .\n              (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n              // the pattern starts with \\.\\., and then [ or .\n              (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)))\n            // no need to prevent dots if it can't match a dot, or if a\n            // sub-pattern will be preventing it anyway.\n            const needNoDot = !dot && !allowDot && aps.has(src.charAt(0))\n\n            start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ''\n          }\n        }\n      }\n\n      // append the \"end of path portion\" pattern to negation tails\n      let end = ''\n      if (\n        this.isEnd() &&\n        this.#root.#filledNegs &&\n        this.#parent?.type === '!'\n      ) {\n        end = '(?:$|\\\\/)'\n      }\n      const final = start + src + end\n      return [\n        final,\n        unescape(src),\n        (this.#hasMagic = !!this.#hasMagic),\n        this.#uflag,\n      ]\n    }\n\n    // We need to calculate the body *twice* if it's a repeat pattern\n    // at the start, once in nodot mode, then again in dot mode, so a\n    // pattern like *(?) can match 'x.y'\n\n    const repeated = this.type === '*' || this.type === '+'\n    // some kind of extglob\n    const start = this.type === '!' ? '(?:(?!(?:' : '(?:'\n    let body = this.#partsToRegExp(dot)\n\n    if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n      // invalid extglob, has to at least be *something* present, if it's\n      // the entire path portion.\n      const s = this.toString()\n      this.#parts = [s]\n      this.type = null\n      this.#hasMagic = undefined\n      return [s, unescape(this.toString()), false, false]\n    }\n\n    // XXX abstract out this map method\n    let bodyDotAllowed =\n      !repeated || allowDot || dot || !startNoDot\n        ? ''\n        : this.#partsToRegExp(true)\n    if (bodyDotAllowed === body) {\n      bodyDotAllowed = ''\n    }\n    if (bodyDotAllowed) {\n      body = `(?:${body})(?:${bodyDotAllowed})*?`\n    }\n\n    // an empty !() is exactly equivalent to a starNoEmpty\n    let final = ''\n    if (this.type === '!' && this.#emptyExt) {\n      final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty\n    } else {\n      const close =\n        this.type === '!'\n          ? // !() must match something,but !(x) can match ''\n            '))' +\n            (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n            star +\n            ')'\n          : this.type === '@'\n          ? ')'\n          : this.type === '?'\n          ? ')?'\n          : this.type === '+' && bodyDotAllowed\n          ? ')'\n          : this.type === '*' && bodyDotAllowed\n          ? `)?`\n          : `)${this.type}`\n      final = start + body + close\n    }\n    return [\n      final,\n      unescape(body),\n      (this.#hasMagic = !!this.#hasMagic),\n      this.#uflag,\n    ]\n  }\n\n  #partsToRegExp(dot: boolean) {\n    return this.#parts\n      .map(p => {\n        // extglob ASTs should only contain parent ASTs\n        /* c8 ignore start */\n        if (typeof p === 'string') {\n          throw new Error('string type in extglob ast??')\n        }\n        /* c8 ignore stop */\n        // can ignore hasMagic, because extglobs are already always magic\n        const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot)\n        this.#uflag = this.#uflag || uflag\n        return re\n      })\n      .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n      .join('|')\n  }\n\n  static #parseGlob(\n    glob: string,\n    hasMagic: boolean | undefined,\n    noEmpty: boolean = false\n  ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n    let escaping = false\n    let re = ''\n    let uflag = false\n    for (let i = 0; i < glob.length; i++) {\n      const c = glob.charAt(i)\n      if (escaping) {\n        escaping = false\n        re += (reSpecials.has(c) ? '\\\\' : '') + c\n        continue\n      }\n      if (c === '\\\\') {\n        if (i === glob.length - 1) {\n          re += '\\\\\\\\'\n        } else {\n          escaping = true\n        }\n        continue\n      }\n      if (c === '[') {\n        const [src, needUflag, consumed, magic] = parseClass(glob, i)\n        if (consumed) {\n          re += src\n          uflag = uflag || needUflag\n          i += consumed - 1\n          hasMagic = hasMagic || magic\n          continue\n        }\n      }\n      if (c === '*') {\n        if (noEmpty && glob === '*') re += starNoEmpty\n        else re += star\n        hasMagic = true\n        continue\n      }\n      if (c === '?') {\n        re += qmark\n        hasMagic = true\n        continue\n      }\n      re += regExpEscape(c)\n    }\n    return [re, unescape(glob), !!hasMagic, uflag]\n  }\n}\n"]}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/index.js.map b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/index.js.map
deleted file mode 100644
index 9a11ea7086..0000000000
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/dist/mjs/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import expand from 'brace-expansion'\nimport { assertValidPattern } from './assert-valid-pattern.js'\nimport { AST, ExtglobType } from './ast.js'\nimport { escape } from './escape.js'\nimport { unescape } from './unescape.js'\n\ntype Platform =\n  | 'aix'\n  | 'android'\n  | 'darwin'\n  | 'freebsd'\n  | 'haiku'\n  | 'linux'\n  | 'openbsd'\n  | 'sunos'\n  | 'win32'\n  | 'cygwin'\n  | 'netbsd'\n\nexport interface MinimatchOptions {\n  nobrace?: boolean\n  nocomment?: boolean\n  nonegate?: boolean\n  debug?: boolean\n  noglobstar?: boolean\n  noext?: boolean\n  nonull?: boolean\n  windowsPathsNoEscape?: boolean\n  allowWindowsEscape?: boolean\n  partial?: boolean\n  dot?: boolean\n  nocase?: boolean\n  nocaseMagicOnly?: boolean\n  magicalBraces?: boolean\n  matchBase?: boolean\n  flipNegate?: boolean\n  preserveMultipleSlashes?: boolean\n  optimizationLevel?: number\n  platform?: Platform\n  windowsNoMagicRoot?: boolean\n}\n\nexport const minimatch = (\n  p: string,\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  assertValidPattern(pattern)\n\n  // shortcut: comments match nothing.\n  if (!options.nocomment && pattern.charAt(0) === '#') {\n    return false\n  }\n\n  return new Minimatch(pattern, options).match(p)\n}\n\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/\nconst starDotExtTest = (ext: string) => (f: string) =>\n  !f.startsWith('.') && f.endsWith(ext)\nconst starDotExtTestDot = (ext: string) => (f: string) => f.endsWith(ext)\nconst starDotExtTestNocase = (ext: string) => {\n  ext = ext.toLowerCase()\n  return (f: string) => !f.startsWith('.') && f.toLowerCase().endsWith(ext)\n}\nconst starDotExtTestNocaseDot = (ext: string) => {\n  ext = ext.toLowerCase()\n  return (f: string) => f.toLowerCase().endsWith(ext)\n}\nconst starDotStarRE = /^\\*+\\.\\*+$/\nconst starDotStarTest = (f: string) => !f.startsWith('.') && f.includes('.')\nconst starDotStarTestDot = (f: string) =>\n  f !== '.' && f !== '..' && f.includes('.')\nconst dotStarRE = /^\\.\\*+$/\nconst dotStarTest = (f: string) => f !== '.' && f !== '..' && f.startsWith('.')\nconst starRE = /^\\*+$/\nconst starTest = (f: string) => f.length !== 0 && !f.startsWith('.')\nconst starTestDot = (f: string) => f.length !== 0 && f !== '.' && f !== '..'\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/\nconst qmarksTestNocase = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExt([$0])\n  if (!ext) return noext\n  ext = ext.toLowerCase()\n  return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestNocaseDot = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExtDot([$0])\n  if (!ext) return noext\n  ext = ext.toLowerCase()\n  return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestDot = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExtDot([$0])\n  return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTest = ([$0, ext = '']: RegExpMatchArray) => {\n  const noext = qmarksTestNoExt([$0])\n  return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTestNoExt = ([$0]: RegExpMatchArray) => {\n  const len = $0.length\n  return (f: string) => f.length === len && !f.startsWith('.')\n}\nconst qmarksTestNoExtDot = ([$0]: RegExpMatchArray) => {\n  const len = $0.length\n  return (f: string) => f.length === len && f !== '.' && f !== '..'\n}\n\n/* c8 ignore start */\nconst defaultPlatform: Platform = (\n  typeof process === 'object' && process\n    ? (typeof process.env === 'object' &&\n        process.env &&\n        process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n      process.platform\n    : 'posix'\n) as Platform\ntype Sep = '\\\\' | '/'\nconst path: { [k: string]: { sep: Sep } } = {\n  win32: { sep: '\\\\' },\n  posix: { sep: '/' },\n}\n/* c8 ignore stop */\n\nexport const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep\nminimatch.sep = sep\n\nexport const GLOBSTAR = Symbol('globstar **')\nminimatch.GLOBSTAR = GLOBSTAR\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n\n// ** when dots are allowed.  Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?'\n\nexport const filter =\n  (pattern: string, options: MinimatchOptions = {}) =>\n  (p: string) =>\n    minimatch(p, pattern, options)\nminimatch.filter = filter\n\nconst ext = (a: MinimatchOptions, b: MinimatchOptions = {}) =>\n  Object.assign({}, a, b)\n\nexport const defaults = (def: MinimatchOptions): typeof minimatch => {\n  if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n    return minimatch\n  }\n\n  const orig = minimatch\n\n  const m = (p: string, pattern: string, options: MinimatchOptions = {}) =>\n    orig(p, pattern, ext(def, options))\n\n  return Object.assign(m, {\n    Minimatch: class Minimatch extends orig.Minimatch {\n      constructor(pattern: string, options: MinimatchOptions = {}) {\n        super(pattern, ext(def, options))\n      }\n      static defaults(options: MinimatchOptions) {\n        return orig.defaults(ext(def, options)).Minimatch\n      }\n    },\n\n    AST: class AST extends orig.AST {\n      /* c8 ignore start */\n      constructor(\n        type: ExtglobType | null,\n        parent?: AST,\n        options: MinimatchOptions = {}\n      ) {\n        super(type, parent, ext(def, options))\n      }\n      /* c8 ignore stop */\n\n      static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n        return orig.AST.fromGlob(pattern, ext(def, options))\n      }\n    },\n\n    unescape: (\n      s: string,\n      options: Pick = {}\n    ) => orig.unescape(s, ext(def, options)),\n\n    escape: (\n      s: string,\n      options: Pick = {}\n    ) => orig.escape(s, ext(def, options)),\n\n    filter: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.filter(pattern, ext(def, options)),\n\n    defaults: (options: MinimatchOptions) => orig.defaults(ext(def, options)),\n\n    makeRe: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.makeRe(pattern, ext(def, options)),\n\n    braceExpand: (pattern: string, options: MinimatchOptions = {}) =>\n      orig.braceExpand(pattern, ext(def, options)),\n\n    match: (list: string[], pattern: string, options: MinimatchOptions = {}) =>\n      orig.match(list, pattern, ext(def, options)),\n\n    sep: orig.sep,\n    GLOBSTAR: GLOBSTAR as typeof GLOBSTAR,\n  })\n}\nminimatch.defaults = defaults\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  assertValidPattern(pattern)\n\n  // Thanks to Yeting Li  for\n  // improving this regexp to avoid a ReDOS vulnerability.\n  if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n    // shortcut. no need to expand.\n    return [pattern]\n  }\n\n  return expand(pattern)\n}\nminimatch.braceExpand = braceExpand\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion.  Otherwise, any series\n// of * is equivalent to a single *.  Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\n\nexport const makeRe = (pattern: string, options: MinimatchOptions = {}) =>\n  new Minimatch(pattern, options).makeRe()\nminimatch.makeRe = makeRe\n\nexport const match = (\n  list: string[],\n  pattern: string,\n  options: MinimatchOptions = {}\n) => {\n  const mm = new Minimatch(pattern, options)\n  list = list.filter(f => mm.match(f))\n  if (mm.options.nonull && !list.length) {\n    list.push(pattern)\n  }\n  return list\n}\nminimatch.match = match\n\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/\nconst regExpEscape = (s: string) =>\n  s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\nexport type MMRegExp = RegExp & {\n  _src?: string\n  _glob?: string\n}\n\nexport type ParseReturnFiltered = string | MMRegExp | typeof GLOBSTAR\nexport type ParseReturn = ParseReturnFiltered | false\n\nexport class Minimatch {\n  options: MinimatchOptions\n  set: ParseReturnFiltered[][]\n  pattern: string\n\n  windowsPathsNoEscape: boolean\n  nonegate: boolean\n  negate: boolean\n  comment: boolean\n  empty: boolean\n  preserveMultipleSlashes: boolean\n  partial: boolean\n  globSet: string[]\n  globParts: string[][]\n  nocase: boolean\n\n  isWindows: boolean\n  platform: Platform\n  windowsNoMagicRoot: boolean\n\n  regexp: false | null | MMRegExp\n  constructor(pattern: string, options: MinimatchOptions = {}) {\n    assertValidPattern(pattern)\n\n    options = options || {}\n    this.options = options\n    this.pattern = pattern\n    this.platform = options.platform || defaultPlatform\n    this.isWindows = this.platform === 'win32'\n    this.windowsPathsNoEscape =\n      !!options.windowsPathsNoEscape || options.allowWindowsEscape === false\n    if (this.windowsPathsNoEscape) {\n      this.pattern = this.pattern.replace(/\\\\/g, '/')\n    }\n    this.preserveMultipleSlashes = !!options.preserveMultipleSlashes\n    this.regexp = null\n    this.negate = false\n    this.nonegate = !!options.nonegate\n    this.comment = false\n    this.empty = false\n    this.partial = !!options.partial\n    this.nocase = !!this.options.nocase\n    this.windowsNoMagicRoot =\n      options.windowsNoMagicRoot !== undefined\n        ? options.windowsNoMagicRoot\n        : !!(this.isWindows && this.nocase)\n\n    this.globSet = []\n    this.globParts = []\n    this.set = []\n\n    // make the set of regexps etc.\n    this.make()\n  }\n\n  hasMagic(): boolean {\n    if (this.options.magicalBraces && this.set.length > 1) {\n      return true\n    }\n    for (const pattern of this.set) {\n      for (const part of pattern) {\n        if (typeof part !== 'string') return true\n      }\n    }\n    return false\n  }\n\n  debug(..._: any[]) {}\n\n  make() {\n    const pattern = this.pattern\n    const options = this.options\n\n    // empty patterns and comments match nothing.\n    if (!options.nocomment && pattern.charAt(0) === '#') {\n      this.comment = true\n      return\n    }\n\n    if (!pattern) {\n      this.empty = true\n      return\n    }\n\n    // step 1: figure out negation, etc.\n    this.parseNegate()\n\n    // step 2: expand braces\n    this.globSet = [...new Set(this.braceExpand())]\n\n    if (options.debug) {\n      this.debug = (...args: any[]) => console.error(...args)\n    }\n\n    this.debug(this.pattern, this.globSet)\n\n    // step 3: now we have a set, so turn each one into a series of\n    // path-portion matching patterns.\n    // These will be regexps, except in the case of \"**\", which is\n    // set to the GLOBSTAR object for globstar behavior,\n    // and will not contain any / characters\n    //\n    // First, we preprocess to make the glob pattern sets a bit simpler\n    // and deduped.  There are some perf-killing patterns that can cause\n    // problems with a glob walk, but we can simplify them down a bit.\n    const rawGlobParts = this.globSet.map(s => this.slashSplit(s))\n    this.globParts = this.preprocess(rawGlobParts)\n    this.debug(this.pattern, this.globParts)\n\n    // glob --> regexps\n    let set = this.globParts.map((s, _, __) => {\n      if (this.isWindows && this.windowsNoMagicRoot) {\n        // check if it's a drive or unc path.\n        const isUNC =\n          s[0] === '' &&\n          s[1] === '' &&\n          (s[2] === '?' || !globMagic.test(s[2])) &&\n          !globMagic.test(s[3])\n        const isDrive = /^[a-z]:/i.test(s[0])\n        if (isUNC) {\n          return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))]\n        } else if (isDrive) {\n          return [s[0], ...s.slice(1).map(ss => this.parse(ss))]\n        }\n      }\n      return s.map(ss => this.parse(ss))\n    })\n\n    this.debug(this.pattern, set)\n\n    // filter out everything that didn't compile properly.\n    this.set = set.filter(\n      s => s.indexOf(false) === -1\n    ) as ParseReturnFiltered[][]\n\n    // do not treat the ? in UNC paths as magic\n    if (this.isWindows) {\n      for (let i = 0; i < this.set.length; i++) {\n        const p = this.set[i]\n        if (\n          p[0] === '' &&\n          p[1] === '' &&\n          this.globParts[i][2] === '?' &&\n          typeof p[3] === 'string' &&\n          /^[a-z]:$/i.test(p[3])\n        ) {\n          p[2] = '?'\n        }\n      }\n    }\n\n    this.debug(this.pattern, this.set)\n  }\n\n  // various transforms to equivalent pattern sets that are\n  // faster to process in a filesystem walk.  The goal is to\n  // eliminate what we can, and push all ** patterns as far\n  // to the right as possible, even if it increases the number\n  // of patterns that we have to process.\n  preprocess(globParts: string[][]) {\n    // if we're not in globstar mode, then turn all ** into *\n    if (this.options.noglobstar) {\n      for (let i = 0; i < globParts.length; i++) {\n        for (let j = 0; j < globParts[i].length; j++) {\n          if (globParts[i][j] === '**') {\n            globParts[i][j] = '*'\n          }\n        }\n      }\n    }\n\n    const { optimizationLevel = 1 } = this.options\n\n    if (optimizationLevel >= 2) {\n      // aggressive optimization for the purpose of fs walking\n      globParts = this.firstPhasePreProcess(globParts)\n      globParts = this.secondPhasePreProcess(globParts)\n    } else if (optimizationLevel >= 1) {\n      // just basic optimizations to remove some .. parts\n      globParts = this.levelOneOptimize(globParts)\n    } else {\n      globParts = this.adjascentGlobstarOptimize(globParts)\n    }\n\n    return globParts\n  }\n\n  // just get rid of adjascent ** portions\n  adjascentGlobstarOptimize(globParts: string[][]) {\n    return globParts.map(parts => {\n      let gs: number = -1\n      while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n        let i = gs\n        while (parts[i + 1] === '**') {\n          i++\n        }\n        if (i !== gs) {\n          parts.splice(gs, i - gs)\n        }\n      }\n      return parts\n    })\n  }\n\n  // get rid of adjascent ** and resolve .. portions\n  levelOneOptimize(globParts: string[][]) {\n    return globParts.map(parts => {\n      parts = parts.reduce((set: string[], part) => {\n        const prev = set[set.length - 1]\n        if (part === '**' && prev === '**') {\n          return set\n        }\n        if (part === '..') {\n          if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n            set.pop()\n            return set\n          }\n        }\n        set.push(part)\n        return set\n      }, [])\n      return parts.length === 0 ? [''] : parts\n    })\n  }\n\n  levelTwoFileOptimize(parts: string | string[]) {\n    if (!Array.isArray(parts)) {\n      parts = this.slashSplit(parts)\n    }\n    let didSomething: boolean = false\n    do {\n      didSomething = false\n      // 
// -> 
/\n      if (!this.preserveMultipleSlashes) {\n        for (let i = 1; i < parts.length - 1; i++) {\n          const p = parts[i]\n          // don't squeeze out UNC patterns\n          if (i === 1 && p === '' && parts[0] === '') continue\n          if (p === '.' || p === '') {\n            didSomething = true\n            parts.splice(i, 1)\n            i--\n          }\n        }\n        if (\n          parts[0] === '.' &&\n          parts.length === 2 &&\n          (parts[1] === '.' || parts[1] === '')\n        ) {\n          didSomething = true\n          parts.pop()\n        }\n      }\n\n      // 
/

/../ ->

/\n      let dd: number = 0\n      while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n        const p = parts[dd - 1]\n        if (p && p !== '.' && p !== '..' && p !== '**') {\n          didSomething = true\n          parts.splice(dd - 1, 2)\n          dd -= 2\n        }\n      }\n    } while (didSomething)\n    return parts.length === 0 ? [''] : parts\n  }\n\n  // First phase: single-pattern processing\n  // 
 is 1 or more portions\n  //  is 1 or more portions\n  // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n  // 
/

/../ ->

/\n  // **/**/ -> **/\n  //\n  // **/*/ -> */**/ <== not valid because ** doesn't follow\n  // this WOULD be allowed if ** did follow symlinks, or * didn't\n  firstPhasePreProcess(globParts: string[][]) {\n    let didSomething = false\n    do {\n      didSomething = false\n      // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs: number = -1\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss: number = gs\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n            gss++\n          }\n          // eg, if gs is 2 and gss is 4, that means we have 3 **\n          // parts, and can remove 2 of them.\n          if (gss > gs) {\n            parts.splice(gs + 1, gss - gs)\n          }\n\n          let next = parts[gs + 1]\n          const p = parts[gs + 2]\n          const p2 = parts[gs + 3]\n          if (next !== '..') continue\n          if (\n            !p ||\n            p === '.' ||\n            p === '..' ||\n            !p2 ||\n            p2 === '.' ||\n            p2 === '..'\n          ) {\n            continue\n          }\n          didSomething = true\n          // edit parts in place, and push the new one\n          parts.splice(gs, 1)\n          const other = parts.slice(0)\n          other[gs] = '**'\n          globParts.push(other)\n          gs--\n        }\n\n        // 
// -> 
/\n        if (!this.preserveMultipleSlashes) {\n          for (let i = 1; i < parts.length - 1; i++) {\n            const p = parts[i]\n            // don't squeeze out UNC patterns\n            if (i === 1 && p === '' && parts[0] === '') continue\n            if (p === '.' || p === '') {\n              didSomething = true\n              parts.splice(i, 1)\n              i--\n            }\n          }\n          if (\n            parts[0] === '.' &&\n            parts.length === 2 &&\n            (parts[1] === '.' || parts[1] === '')\n          ) {\n            didSomething = true\n            parts.pop()\n          }\n        }\n\n        // 
/

/../ ->

/\n        let dd: number = 0\n        while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n          const p = parts[dd - 1]\n          if (p && p !== '.' && p !== '..' && p !== '**') {\n            didSomething = true\n            const needDot = dd === 1 && parts[dd + 1] === '**'\n            const splin = needDot ? ['.'] : []\n            parts.splice(dd - 1, 2, ...splin)\n            if (parts.length === 0) parts.push('')\n            dd -= 2\n          }\n        }\n      }\n    } while (didSomething)\n\n    return globParts\n  }\n\n  // second phase: multi-pattern dedupes\n  // {
/*/,
/

/} ->

/*/\n  // {
/,
/} -> 
/\n  // {
/**/,
/} -> 
/**/\n  //\n  // {
/**/,
/**/

/} ->

/**/\n  // ^-- not valid because ** doens't follow symlinks\n  secondPhasePreProcess(globParts: string[][]): string[][] {\n    for (let i = 0; i < globParts.length - 1; i++) {\n      for (let j = i + 1; j < globParts.length; j++) {\n        const matched = this.partsMatch(\n          globParts[i],\n          globParts[j],\n          !this.preserveMultipleSlashes\n        )\n        if (!matched) continue\n        globParts[i] = matched\n        globParts[j] = []\n      }\n    }\n    return globParts.filter(gs => gs.length)\n  }\n\n  partsMatch(\n    a: string[],\n    b: string[],\n    emptyGSMatch: boolean = false\n  ): false | string[] {\n    let ai = 0\n    let bi = 0\n    let result: string[] = []\n    let which: string = ''\n    while (ai < a.length && bi < b.length) {\n      if (a[ai] === b[bi]) {\n        result.push(which === 'b' ? b[bi] : a[ai])\n        ai++\n        bi++\n      } else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n        result.push(a[ai])\n        ai++\n      } else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n        result.push(b[bi])\n        bi++\n      } else if (\n        a[ai] === '*' &&\n        b[bi] &&\n        (this.options.dot || !b[bi].startsWith('.')) &&\n        b[bi] !== '**'\n      ) {\n        if (which === 'b') return false\n        which = 'a'\n        result.push(a[ai])\n        ai++\n        bi++\n      } else if (\n        b[bi] === '*' &&\n        a[ai] &&\n        (this.options.dot || !a[ai].startsWith('.')) &&\n        a[ai] !== '**'\n      ) {\n        if (which === 'a') return false\n        which = 'b'\n        result.push(b[bi])\n        ai++\n        bi++\n      } else {\n        return false\n      }\n    }\n    // if we fall out of the loop, it means they two are identical\n    // as long as their lengths match\n    return a.length === b.length && result\n  }\n\n  parseNegate() {\n    if (this.nonegate) return\n\n    const pattern = this.pattern\n    let negate = false\n    let negateOffset = 0\n\n    for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n      negate = !negate\n      negateOffset++\n    }\n\n    if (negateOffset) this.pattern = pattern.slice(negateOffset)\n    this.negate = negate\n  }\n\n  // set partial to true to test if, for example,\n  // \"/a/b\" matches the start of \"/*/b/*/d\"\n  // Partial means, if you run out of file before you run\n  // out of pattern, then that's fine, as long as all\n  // the parts match.\n  matchOne(file: string[], pattern: ParseReturn[], partial: boolean = false) {\n    const options = this.options\n\n    // UNC paths like //?/X:/... can match X:/... and vice versa\n    // Drive letters in absolute drive or unc paths are always compared\n    // case-insensitively.\n    if (this.isWindows) {\n      const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0])\n      const fileUNC =\n        !fileDrive &&\n        file[0] === '' &&\n        file[1] === '' &&\n        file[2] === '?' &&\n        /^[a-z]:$/i.test(file[3])\n\n      const patternDrive =\n        typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0])\n      const patternUNC =\n        !patternDrive &&\n        pattern[0] === '' &&\n        pattern[1] === '' &&\n        pattern[2] === '?' &&\n        typeof pattern[3] === 'string' &&\n        /^[a-z]:$/i.test(pattern[3])\n\n      const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined\n      const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined\n      if (typeof fdi === 'number' && typeof pdi === 'number') {\n        const [fd, pd]: [string, string] = [file[fdi], pattern[pdi] as string]\n        if (fd.toLowerCase() === pd.toLowerCase()) {\n          pattern[pdi] = fd\n          if (pdi > fdi) {\n            pattern = pattern.slice( pdi)\n          } else if (fdi > pdi) {\n            file = file.slice(fdi)\n          }\n        }\n      }\n    }\n\n    // resolve and reduce . and .. portions in the file as well.\n    // dont' need to do the second phase, because it's only one string[]\n    const { optimizationLevel = 1 } = this.options\n    if (optimizationLevel >= 2) {\n      file = this.levelTwoFileOptimize(file)\n    }\n\n    this.debug('matchOne', this, { file, pattern })\n    this.debug('matchOne', file.length, pattern.length)\n\n    for (\n      var fi = 0, pi = 0, fl = file.length, pl = pattern.length;\n      fi < fl && pi < pl;\n      fi++, pi++\n    ) {\n      this.debug('matchOne loop')\n      var p = pattern[pi]\n      var f = file[fi]\n\n      this.debug(pattern, p, f)\n\n      // should be impossible.\n      // some invalid regexp stuff in the set.\n      /* c8 ignore start */\n      if (p === false) {\n        return false\n      }\n      /* c8 ignore stop */\n\n      if (p === GLOBSTAR) {\n        this.debug('GLOBSTAR', [pattern, p, f])\n\n        // \"**\"\n        // a/**/b/**/c would match the following:\n        // a/b/x/y/z/c\n        // a/x/y/z/b/c\n        // a/b/x/b/x/c\n        // a/b/c\n        // To do this, take the rest of the pattern after\n        // the **, and see if it would match the file remainder.\n        // If so, return success.\n        // If not, the ** \"swallows\" a segment, and try again.\n        // This is recursively awful.\n        //\n        // a/**/b/**/c matching a/b/x/y/z/c\n        // - a matches a\n        // - doublestar\n        //   - matchOne(b/x/y/z/c, b/**/c)\n        //     - b matches b\n        //     - doublestar\n        //       - matchOne(x/y/z/c, c) -> no\n        //       - matchOne(y/z/c, c) -> no\n        //       - matchOne(z/c, c) -> no\n        //       - matchOne(c, c) yes, hit\n        var fr = fi\n        var pr = pi + 1\n        if (pr === pl) {\n          this.debug('** at the end')\n          // a ** at the end will just swallow the rest.\n          // We have found a match.\n          // however, it will not swallow /.x, unless\n          // options.dot is set.\n          // . and .. are *never* matched by **, for explosively\n          // exponential reasons.\n          for (; fi < fl; fi++) {\n            if (\n              file[fi] === '.' ||\n              file[fi] === '..' ||\n              (!options.dot && file[fi].charAt(0) === '.')\n            )\n              return false\n          }\n          return true\n        }\n\n        // ok, let's see if we can swallow whatever we can.\n        while (fr < fl) {\n          var swallowee = file[fr]\n\n          this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n          // XXX remove this slice.  Just pass the start index.\n          if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n            this.debug('globstar found match!', fr, fl, swallowee)\n            // found a match.\n            return true\n          } else {\n            // can't swallow \".\" or \"..\" ever.\n            // can only swallow \".foo\" when explicitly asked.\n            if (\n              swallowee === '.' ||\n              swallowee === '..' ||\n              (!options.dot && swallowee.charAt(0) === '.')\n            ) {\n              this.debug('dot detected!', file, fr, pattern, pr)\n              break\n            }\n\n            // ** swallows a segment, and continue.\n            this.debug('globstar swallow a segment, and continue')\n            fr++\n          }\n        }\n\n        // no match was found.\n        // However, in partial mode, we can't say this is necessarily over.\n        /* c8 ignore start */\n        if (partial) {\n          // ran out of file\n          this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n          if (fr === fl) {\n            return true\n          }\n        }\n        /* c8 ignore stop */\n        return false\n      }\n\n      // something other than **\n      // non-magic patterns just have to match exactly\n      // patterns with magic have been turned into regexps.\n      let hit: boolean\n      if (typeof p === 'string') {\n        hit = f === p\n        this.debug('string match', p, f, hit)\n      } else {\n        hit = p.test(f)\n        this.debug('pattern match', p, f, hit)\n      }\n\n      if (!hit) return false\n    }\n\n    // Note: ending in / means that we'll get a final \"\"\n    // at the end of the pattern.  This can only match a\n    // corresponding \"\" at the end of the file.\n    // If the file ends in /, then it can only match a\n    // a pattern that ends in /, unless the pattern just\n    // doesn't have any more for it. But, a/b/ should *not*\n    // match \"a/b/*\", even though \"\" matches against the\n    // [^/]*? pattern, except in partial mode, where it might\n    // simply not be reached yet.\n    // However, a/b/ should still satisfy a/*\n\n    // now either we fell off the end of the pattern, or we're done.\n    if (fi === fl && pi === pl) {\n      // ran out of pattern and filename at the same time.\n      // an exact hit!\n      return true\n    } else if (fi === fl) {\n      // ran out of file, but still had pattern left.\n      // this is ok if we're doing the match as part of\n      // a glob fs traversal.\n      return partial\n    } else if (pi === pl) {\n      // ran out of pattern, still have file left.\n      // this is only acceptable if we're on the very last\n      // empty segment of a file with a trailing slash.\n      // a/* should match a/b/\n      return fi === fl - 1 && file[fi] === ''\n\n      /* c8 ignore start */\n    } else {\n      // should be unreachable.\n      throw new Error('wtf?')\n    }\n    /* c8 ignore stop */\n  }\n\n  braceExpand() {\n    return braceExpand(this.pattern, this.options)\n  }\n\n  parse(pattern: string): ParseReturn {\n    assertValidPattern(pattern)\n\n    const options = this.options\n\n    // shortcuts\n    if (pattern === '**') return GLOBSTAR\n    if (pattern === '') return ''\n\n    // far and away, the most common glob pattern parts are\n    // *, *.*, and *.  Add a fast check method for those.\n    let m: RegExpMatchArray | null\n    let fastTest: null | ((f: string) => boolean) = null\n    if ((m = pattern.match(starRE))) {\n      fastTest = options.dot ? starTestDot : starTest\n    } else if ((m = pattern.match(starDotExtRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? starDotExtTestNocaseDot\n            : starDotExtTestNocase\n          : options.dot\n          ? starDotExtTestDot\n          : starDotExtTest\n      )(m[1])\n    } else if ((m = pattern.match(qmarksRE))) {\n      fastTest = (\n        options.nocase\n          ? options.dot\n            ? qmarksTestNocaseDot\n            : qmarksTestNocase\n          : options.dot\n          ? qmarksTestDot\n          : qmarksTest\n      )(m)\n    } else if ((m = pattern.match(starDotStarRE))) {\n      fastTest = options.dot ? starDotStarTestDot : starDotStarTest\n    } else if ((m = pattern.match(dotStarRE))) {\n      fastTest = dotStarTest\n    }\n\n    const re = AST.fromGlob(pattern, this.options).toMMPattern()\n    return fastTest ? Object.assign(re, { test: fastTest }) : re\n  }\n\n  makeRe() {\n    if (this.regexp || this.regexp === false) return this.regexp\n\n    // at this point, this.set is a 2d array of partial\n    // pattern strings, or \"**\".\n    //\n    // It's better to use .match().  This function shouldn't\n    // be used, really, but it's pretty convenient sometimes,\n    // when you just want to work with a regex.\n    const set = this.set\n\n    if (!set.length) {\n      this.regexp = false\n      return this.regexp\n    }\n    const options = this.options\n\n    const twoStar = options.noglobstar\n      ? star\n      : options.dot\n      ? twoStarDot\n      : twoStarNoDot\n    const flags = new Set(options.nocase ? ['i'] : [])\n\n    // regexpify non-globstar patterns\n    // if ** is only item, then we just do one twoStar\n    // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n    // if ** is last, append (\\/twoStar|) to previous\n    // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n    // then filter out GLOBSTAR symbols\n    let re = set\n      .map(pattern => {\n        const pp: (string | typeof GLOBSTAR)[] = pattern.map(p => {\n          if (p instanceof RegExp) {\n            for (const f of p.flags.split('')) flags.add(f)\n          }\n          return typeof p === 'string'\n            ? regExpEscape(p)\n            : p === GLOBSTAR\n            ? GLOBSTAR\n            : p._src\n        }) as (string | typeof GLOBSTAR)[]\n        pp.forEach((p, i) => {\n          const next = pp[i + 1]\n          const prev = pp[i - 1]\n          if (p !== GLOBSTAR || prev === GLOBSTAR) {\n            return\n          }\n          if (prev === undefined) {\n            if (next !== undefined && next !== GLOBSTAR) {\n              pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next\n            } else {\n              pp[i] = twoStar\n            }\n          } else if (next === undefined) {\n            pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?'\n          } else if (next !== GLOBSTAR) {\n            pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next\n            pp[i + 1] = GLOBSTAR\n          }\n        })\n        return pp.filter(p => p !== GLOBSTAR).join('/')\n      })\n      .join('|')\n\n    // need to wrap in parens if we had more than one thing with |,\n    // otherwise only the first will be anchored to ^ and the last to $\n    const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', '']\n    // must match entire pattern\n    // ending in a * or ** will make it less strict.\n    re = '^' + open + re + close + '$'\n\n    // can match anything, as long as it's not this.\n    if (this.negate) re = '^(?!' + re + ').+$'\n\n    try {\n      this.regexp = new RegExp(re, [...flags].join(''))\n      /* c8 ignore start */\n    } catch (ex) {\n      // should be impossible\n      this.regexp = false\n    }\n    /* c8 ignore stop */\n    return this.regexp\n  }\n\n  slashSplit(p: string) {\n    // if p starts with // on windows, we preserve that\n    // so that UNC paths aren't broken.  Otherwise, any number of\n    // / characters are coalesced into one, unless\n    // preserveMultipleSlashes is set to true.\n    if (this.preserveMultipleSlashes) {\n      return p.split('/')\n    } else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n      // add an extra '' for the one we lose\n      return ['', ...p.split(/\\/+/)]\n    } else {\n      return p.split(/\\/+/)\n    }\n  }\n\n  match(f: string, partial = this.partial) {\n    this.debug('match', f, this.pattern)\n    // short-circuit in the case of busted things.\n    // comments, etc.\n    if (this.comment) {\n      return false\n    }\n    if (this.empty) {\n      return f === ''\n    }\n\n    if (f === '/' && partial) {\n      return true\n    }\n\n    const options = this.options\n\n    // windows: need to use /, not \\\n    if (this.isWindows) {\n      f = f.split('\\\\').join('/')\n    }\n\n    // treat the test path as a set of pathparts.\n    const ff = this.slashSplit(f)\n    this.debug(this.pattern, 'split', ff)\n\n    // just ONE of the pattern sets in this.set needs to match\n    // in order for it to be valid.  If negating, then just one\n    // match means that we have failed.\n    // Either way, return on the first hit.\n\n    const set = this.set\n    this.debug(this.pattern, 'set', set)\n\n    // Find the basename of the path by looking for the last non-empty segment\n    let filename: string = ff[ff.length - 1]\n    if (!filename) {\n      for (let i = ff.length - 2; !filename && i >= 0; i--) {\n        filename = ff[i]\n      }\n    }\n\n    for (let i = 0; i < set.length; i++) {\n      const pattern = set[i]\n      let file = ff\n      if (options.matchBase && pattern.length === 1) {\n        file = [filename]\n      }\n      const hit = this.matchOne(file, pattern, partial)\n      if (hit) {\n        if (options.flipNegate) {\n          return true\n        }\n        return !this.negate\n      }\n    }\n\n    // didn't get any hits.  this is success if it's a negative\n    // pattern, failure otherwise.\n    if (options.flipNegate) {\n      return false\n    }\n    return this.negate\n  }\n\n  static defaults(def: MinimatchOptions) {\n    return minimatch.defaults(def).Minimatch\n  }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js'\nexport { escape } from './escape.js'\nexport { unescape } from './unescape.js'\n/* c8 ignore stop */\nminimatch.AST = AST\nminimatch.Minimatch = Minimatch\nminimatch.escape = escape\nminimatch.unescape = unescape\n"]}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/package.json b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/package.json
index 061c3b9f34..2c82c03981 100644
--- a/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/package.json
+++ b/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/package.json
@@ -2,23 +2,23 @@
   "author": "Isaac Z. Schlueter  (http://blog.izs.me)",
   "name": "minimatch",
   "description": "a glob matcher in javascript",
-  "version": "9.0.3",
+  "version": "9.0.4",
   "repository": {
     "type": "git",
     "url": "git://github.com/isaacs/minimatch.git"
   },
-  "main": "./dist/cjs/index.js",
-  "module": "./dist/mjs/index.js",
-  "types": "./dist/cjs/index.d.ts",
+  "main": "./dist/commonjs/index.js",
+  "types": "./dist/commonjs/index.d.ts",
   "exports": {
+    "./package.json": "./package.json",
     ".": {
       "import": {
-        "types": "./dist/mjs/index.d.ts",
-        "default": "./dist/mjs/index.js"
+        "types": "./dist/esm/index.d.ts",
+        "default": "./dist/esm/index.js"
       },
       "require": {
-        "types": "./dist/cjs/index.d.ts",
-        "default": "./dist/cjs/index.js"
+        "types": "./dist/commonjs/index.d.ts",
+        "default": "./dist/commonjs/index.js"
       }
     }
   },
@@ -29,13 +29,11 @@
     "preversion": "npm test",
     "postversion": "npm publish",
     "prepublishOnly": "git push origin --follow-tags",
-    "preprepare": "rm -rf dist",
-    "prepare": "tsc -p tsconfig.json && tsc -p tsconfig-esm.json",
-    "postprepare": "bash fixup.sh",
+    "prepare": "tshy",
     "pretest": "npm run prepare",
     "presnap": "npm run prepare",
-    "test": "c8 tap",
-    "snap": "c8 tap",
+    "test": "tap",
+    "snap": "tap",
     "format": "prettier --write . --loglevel warn",
     "benchmark": "node benchmark/index.js",
     "typedoc": "typedoc --tsconfig tsconfig-esm.json ./src/*.ts"
@@ -61,26 +59,24 @@
     "@types/brace-expansion": "^1.1.0",
     "@types/node": "^18.15.11",
     "@types/tap": "^15.0.8",
-    "c8": "^7.12.0",
     "eslint-config-prettier": "^8.6.0",
     "mkdirp": "1",
     "prettier": "^2.8.2",
-    "tap": "^16.3.7",
+    "tap": "^18.7.2",
     "ts-node": "^10.9.1",
+    "tshy": "^1.12.0",
     "typedoc": "^0.23.21",
     "typescript": "^4.9.3"
   },
-  "tap": {
-    "coverage": false,
-    "node-arg": [
-      "--no-warnings",
-      "--loader",
-      "ts-node/esm"
-    ],
-    "ts": false
-  },
   "funding": {
     "url": "https://github.com/sponsors/isaacs"
   },
-  "license": "ISC"
+  "license": "ISC",
+  "tshy": {
+    "exports": {
+      "./package.json": "./package.json",
+      ".": "./src/index.ts"
+    }
+  },
+  "type": "module"
 }
diff --git a/node_modules/@typescript-eslint/typescript-estree/package.json b/node_modules/@typescript-eslint/typescript-estree/package.json
index d45033d2e7..119e8ed421 100644
--- a/node_modules/@typescript-eslint/typescript-estree/package.json
+++ b/node_modules/@typescript-eslint/typescript-estree/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@typescript-eslint/typescript-estree",
-  "version": "7.5.0",
+  "version": "7.7.0",
   "description": "A parser that converts TypeScript source code into an ESTree compatible form",
   "files": [
     "dist",
@@ -54,14 +54,14 @@
     "typecheck": "tsc -p tsconfig.json --noEmit"
   },
   "dependencies": {
-    "@typescript-eslint/types": "7.5.0",
-    "@typescript-eslint/visitor-keys": "7.5.0",
+    "@typescript-eslint/types": "7.7.0",
+    "@typescript-eslint/visitor-keys": "7.7.0",
     "debug": "^4.3.4",
     "globby": "^11.1.0",
     "is-glob": "^4.0.3",
-    "minimatch": "9.0.3",
-    "semver": "^7.5.4",
-    "ts-api-utils": "^1.0.1"
+    "minimatch": "^9.0.4",
+    "semver": "^7.6.0",
+    "ts-api-utils": "^1.3.0"
   },
   "devDependencies": {
     "@babel/code-frame": "*",
@@ -70,7 +70,7 @@
     "jest": "29.7.0",
     "jest-specific-snapshot": "^8.0.0",
     "make-dir": "*",
-    "prettier": "^3.0.3",
+    "prettier": "^3.2.5",
     "rimraf": "*",
     "tmp": "*",
     "typescript": "*"
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Config.d.ts b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Config.d.ts
index 610a05c591..2d4c91ab68 100644
--- a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Config.d.ts
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Config.d.ts
@@ -136,19 +136,21 @@ export declare namespace FlatConfig {
         /**
          * Metadata about your plugin for easier debugging and more effective caching of plugins.
          */
-        meta?: Partial;
+        meta?: {
+            [K in keyof PluginMeta]?: PluginMeta[K] | undefined;
+        };
         /**
          * The definition of plugin processors.
          * Users can stringly reference the processor using the key in their config (i.e., `"pluginName/processorName"`).
          */
-        processors?: Record;
+        processors?: Partial> | undefined;
         /**
          * The definition of plugin rules.
          * The key must be the name of the rule that users will use
          * Users can stringly reference the rule using the key they registered the plugin under combined with the rule name.
          * i.e. for the user config `plugins: { foo: pluginReference }` - the reference would be `"foo/ruleName"`.
          */
-        rules?: Record;
+        rules?: Record | undefined;
     }
     interface Plugins {
         /**
@@ -183,7 +185,7 @@ export declare namespace FlatConfig {
         /**
          * An object specifying additional objects that should be added to the global scope during linting.
          */
-        globals?: GlobalsConfig;
+        globals?: GlobalsConfig | undefined;
         /**
          * An object containing a `parse()` method or a `parseForESLint()` method.
          * @default
@@ -197,7 +199,7 @@ export declare namespace FlatConfig {
          * An object specifying additional options that are passed directly to the parser.
          * The available options are parser-dependent.
          */
-        parserOptions?: ParserOptions;
+        parserOptions?: ParserOptions | undefined;
         /**
          * The type of JavaScript source code.
          * Possible values are `"script"` for traditional script files, `"module"` for ECMAScript modules (ESM), and `"commonjs"` for CommonJS files.
@@ -213,6 +215,10 @@ export declare namespace FlatConfig {
     }
     type FileSpec = string | ((filePath: string) => boolean);
     interface Config {
+        /**
+         * An string to identify the configuration object. Used in error messages and inspection tools.
+         */
+        name?: string;
         /**
          * An array of glob patterns indicating the files that the configuration object should apply to.
          * If not specified, the configuration object applies to all files matched by any other configuration object.
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Config.d.ts.map b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Config.d.ts.map
index 405905980a..efcd376240 100644
--- a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Config.d.ts.map
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Config.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Config.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Config.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.d.ts b/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.d.ts
index a9b603bf70..39b97ba9ca 100644
--- a/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.d.ts
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.d.ts
@@ -1,367 +1,8 @@
-import type { ClassicConfig } from './Config';
-import type { Linter } from './Linter';
-declare class ESLintBase {
-    /**
-     * Creates a new instance of the main ESLint API.
-     * @param options The options for this instance.
-     */
-    constructor(options?: ESLint.ESLintOptions);
-    /**
-     * This method calculates the configuration for a given file, which can be useful for debugging purposes.
-     * - It resolves and merges extends and overrides settings into the top level configuration.
-     * - It resolves the parser setting to absolute paths.
-     * - It normalizes the plugins setting to align short names. (e.g., eslint-plugin-foo → foo)
-     * - It adds the processor setting if a legacy file extension processor is matched.
-     * - It doesn't interpret the env setting to the globals and parserOptions settings, so the result object contains
-     *   the env setting as is.
-     * @param filePath The path to the file whose configuration you would like to calculate. Directory paths are forbidden
-     *                 because ESLint cannot handle the overrides setting.
-     * @returns The promise that will be fulfilled with a configuration object.
-     */
-    calculateConfigForFile(filePath: string): Promise;
-    /**
-     * This method checks if a given file is ignored by your configuration.
-     * @param filePath The path to the file you want to check.
-     * @returns The promise that will be fulfilled with whether the file is ignored or not. If the file is ignored, then
-     *          it will return true.
-     */
-    isPathIgnored(filePath: string): Promise;
-    /**
-     * This method lints the files that match the glob patterns and then returns the results.
-     * @param patterns The lint target files. This can contain any of file paths, directory paths, and glob patterns.
-     * @returns The promise that will be fulfilled with an array of LintResult objects.
-     */
-    lintFiles(patterns: string[] | string): Promise;
-    /**
-     * This method lints the given source code text and then returns the results.
-     *
-     * By default, this method uses the configuration that applies to files in the current working directory (the cwd
-     * constructor option). If you want to use a different configuration, pass options.filePath, and ESLint will load the
-     * same configuration that eslint.lintFiles() would use for a file at options.filePath.
-     *
-     * If the options.filePath value is configured to be ignored, this method returns an empty array. If the
-     * options.warnIgnored option is set along with the options.filePath option, this method returns a LintResult object.
-     * In that case, the result may contain a warning that indicates the file was ignored.
-     * @param code The source code text to check.
-     * @returns The promise that will be fulfilled with an array of LintResult objects. This is an array (despite there
-     *          being only one lint result) in order to keep the interfaces between this and the eslint.lintFiles()
-     *          method similar.
-     */
-    lintText(code: string, options?: ESLint.LintTextOptions): Promise;
-    /**
-     * This method loads a formatter. Formatters convert lint results to a human- or machine-readable string.
-     * @param name TThe path to the file you want to check.
-     * The following values are allowed:
-     * - undefined. In this case, loads the "stylish" built-in formatter.
-     * - A name of built-in formatters.
-     * - A name of third-party formatters. For examples:
-     * -- `foo` will load eslint-formatter-foo.
-     * -- `@foo` will load `@foo/eslint-formatter`.
-     * -- `@foo/bar` will load `@foo/eslint-formatter-bar`.
-     * - A path to the file that defines a formatter. The path must contain one or more path separators (/) in order to distinguish if it's a path or not. For example, start with ./.
-     * @returns The promise that will be fulfilled with a Formatter object.
-     */
-    loadFormatter(name?: string): Promise;
-    /**
-     * This method copies the given results and removes warnings. The returned value contains only errors.
-     * @param results The LintResult objects to filter.
-     * @returns The filtered LintResult objects.
-     */
-    static getErrorResults(results: ESLint.LintResult): ESLint.LintResult;
-    /**
-     * This method writes code modified by ESLint's autofix feature into its respective file. If any of the modified
-     * files don't exist, this method does nothing.
-     * @param results The LintResult objects to write.
-     * @returns The promise that will be fulfilled after all files are written.
-     */
-    static outputFixes(results: ESLint.LintResult[]): Promise;
-    /**
-     * The version text.
-     */
-    static readonly version: string;
-}
-declare namespace ESLint {
-    interface ESLintOptions {
-        /**
-         * If false is present, ESLint suppresses directive comments in source code.
-         * If this option is false, it overrides the noInlineConfig setting in your configurations.
-         */
-        allowInlineConfig?: boolean;
-        /**
-         * Configuration object, extended by all configurations used with this instance.
-         * You can use this option to define the default settings that will be used if your configuration files don't
-         * configure it.
-         */
-        baseConfig?: Linter.ConfigType | null;
-        /**
-         * If true is present, the eslint.lintFiles() method caches lint results and uses it if each target file is not
-         * changed. Please mind that ESLint doesn't clear the cache when you upgrade ESLint plugins. In that case, you have
-         * to remove the cache file manually. The eslint.lintText() method doesn't use caches even if you pass the
-         * options.filePath to the method.
-         */
-        cache?: boolean;
-        /**
-         * The eslint.lintFiles() method writes caches into this file.
-         */
-        cacheLocation?: string;
-        /**
-         * The working directory. This must be an absolute path.
-         */
-        cwd?: string;
-        /**
-         * Unless set to false, the eslint.lintFiles() method will throw an error when no target files are found.
-         */
-        errorOnUnmatchedPattern?: boolean;
-        /**
-         * If you pass directory paths to the eslint.lintFiles() method, ESLint checks the files in those directories that
-         * have the given extensions. For example, when passing the src/ directory and extensions is [".js", ".ts"], ESLint
-         * will lint *.js and *.ts files in src/. If extensions is null, ESLint checks *.js files and files that match
-         * overrides[].files patterns in your configuration.
-         * Note: This option only applies when you pass directory paths to the eslint.lintFiles() method.
-         * If you pass glob patterns, ESLint will lint all files matching the glob pattern regardless of extension.
-         */
-        extensions?: string[] | null;
-        /**
-         * If true is present, the eslint.lintFiles() and eslint.lintText() methods work in autofix mode.
-         * If a predicate function is present, the methods pass each lint message to the function, then use only the
-         * lint messages for which the function returned true.
-         */
-        fix?: boolean | ((message: ESLint.LintMessage) => boolean);
-        /**
-         * The types of the rules that the eslint.lintFiles() and eslint.lintText() methods use for autofix.
-         */
-        fixTypes?: ('directive' | 'layout' | 'problem' | 'suggestion')[] | null;
-        /**
-         * If false is present, the eslint.lintFiles() method doesn't interpret glob patterns.
-         */
-        globInputPaths?: boolean;
-        /**
-         * If false is present, the eslint.lintFiles() method doesn't respect `.eslintignore` files or ignorePatterns in
-         * your configuration.
-         */
-        ignore?: boolean;
-        /**
-         * The path to a file ESLint uses instead of `$CWD/.eslintignore`.
-         * If a path is present and the file doesn't exist, this constructor will throw an error.
-         */
-        ignorePath?: string;
-        /**
-         * Configuration object, overrides all configurations used with this instance.
-         * You can use this option to define the settings that will be used even if your configuration files configure it.
-         */
-        overrideConfig?: ClassicConfig.ConfigOverride | null;
-        /**
-         * The path to a configuration file, overrides all configurations used with this instance.
-         * The options.overrideConfig option is applied after this option is applied.
-         */
-        overrideConfigFile?: string | null;
-        /**
-         * The plugin implementations that ESLint uses for the plugins setting of your configuration.
-         * This is a map-like object. Those keys are plugin IDs and each value is implementation.
-         */
-        plugins?: Record | null;
-        /**
-         * The severity to report unused eslint-disable directives.
-         * If this option is a severity, it overrides the reportUnusedDisableDirectives setting in your configurations.
-         */
-        reportUnusedDisableDirectives?: Linter.SeverityString | null;
-        /**
-         * The path to a directory where plugins should be resolved from.
-         * If null is present, ESLint loads plugins from the location of the configuration file that contains the plugin
-         * setting.
-         * If a path is present, ESLint loads all plugins from there.
-         */
-        resolvePluginsRelativeTo?: string | null;
-        /**
-         * An array of paths to directories to load custom rules from.
-         */
-        rulePaths?: string[];
-        /**
-         * If false is present, ESLint doesn't load configuration files (.eslintrc.* files).
-         * Only the configuration of the constructor options is valid.
-         */
-        useEslintrc?: boolean;
-    }
-    interface DeprecatedRuleInfo {
-        /**
-         *  The rule ID.
-         */
-        ruleId: string;
-        /**
-         *  The rule IDs that replace this deprecated rule.
-         */
-        replacedBy: string[];
-    }
-    /**
-     * The LintResult value is the information of the linting result of each file.
-     */
-    interface LintResult {
-        /**
-         * The number of errors. This includes fixable errors.
-         */
-        errorCount: number;
-        /**
-         * The number of fatal errors.
-         */
-        fatalErrorCount: number;
-        /**
-         * The absolute path to the file of this result. This is the string "" if the file path is unknown (when you
-         * didn't pass the options.filePath option to the eslint.lintText() method).
-         */
-        filePath: string;
-        /**
-         * The number of errors that can be fixed automatically by the fix constructor option.
-         */
-        fixableErrorCount: number;
-        /**
-         * The number of warnings that can be fixed automatically by the fix constructor option.
-         */
-        fixableWarningCount: number;
-        /**
-         * The array of LintMessage objects.
-         */
-        messages: ESLint.LintMessage[];
-        /**
-         * The source code of the file that was linted, with as many fixes applied as possible.
-         */
-        output?: string;
-        /**
-         * The original source code text. This property is undefined if any messages didn't exist or the output
-         * property exists.
-         */
-        source?: string;
-        /**
-         * The array of SuppressedLintMessage objects.
-         */
-        suppressedMessages: SuppressedLintMessage[];
-        /**
-         * The information about the deprecated rules that were used to check this file.
-         */
-        usedDeprecatedRules: DeprecatedRuleInfo[];
-        /**
-         * The number of warnings. This includes fixable warnings.
-         */
-        warningCount: number;
-    }
-    interface LintTextOptions {
-        /**
-         * The path to the file of the source code text. If omitted, the result.filePath becomes the string "".
-         */
-        filePath?: string;
-        /**
-         * If true is present and the options.filePath is a file ESLint should ignore, this method returns a lint result
-         * contains a warning message.
-         */
-        warnIgnored?: boolean;
-    }
-    /**
-     * The LintMessage value is the information of each linting error.
-     */
-    interface LintMessage {
-        /**
-         * The 1-based column number of the begin point of this message.
-         */
-        column: number | undefined;
-        /**
-         * The 1-based column number of the end point of this message. This property is undefined if this message
-         * is not a range.
-         */
-        endColumn: number | undefined;
-        /**
-         * The 1-based line number of the end point of this message. This property is undefined if this
-         * message is not a range.
-         */
-        endLine: number | undefined;
-        /**
-         * `true` if this is a fatal error unrelated to a rule, like a parsing error.
-         */
-        fatal?: boolean | undefined;
-        /**
-         * The EditInfo object of autofix. This property is undefined if this message is not fixable.
-         */
-        fix: EditInfo | undefined;
-        /**
-         * The 1-based line number of the begin point of this message.
-         */
-        line: number | undefined;
-        /**
-         * The error message
-         */
-        message: string;
-        /**
-         * The rule name that generates this lint message. If this message is generated by the ESLint core rather than
-         * rules, this is null.
-         */
-        ruleId: string | null;
-        /**
-         * The severity of this message. 1 means warning and 2 means error.
-         */
-        severity: 1 | 2;
-        /**
-         * The list of suggestions. Each suggestion is the pair of a description and an EditInfo object to fix code. API
-         * users such as editor integrations can choose one of them to fix the problem of this message. This property is
-         * undefined if this message doesn't have any suggestions.
-         */
-        suggestions: {
-            desc: string;
-            fix: EditInfo;
-        }[] | undefined;
-    }
-    /**
-     * The SuppressedLintMessage value is the information of each suppressed linting error.
-     */
-    interface SuppressedLintMessage extends ESLint.LintMessage {
-        /**
-         * The list of suppressions.
-         */
-        suppressions?: {
-            /**
-             * Right now, this is always `directive`
-             */
-            kind: string;
-            /**
-             * The free text description added after the `--` in the comment
-             */
-            justification: string;
-        }[];
-    }
-    /**
-     * The EditInfo value is information to edit text.
-     *
-     * This edit information means replacing the range of the range property by the text property value. It's like
-     * sourceCodeText.slice(0, edit.range[0]) + edit.text + sourceCodeText.slice(edit.range[1]). Therefore, it's an add
-     * if the range[0] and range[1] property values are the same value, and it's removal if the text property value is
-     * empty string.
-     */
-    interface EditInfo {
-        /**
-         * The pair of 0-based indices in source code text to remove.
-         */
-        range: [number, number];
-        /**
-         * The text to add.
-         */
-        text: string;
-    }
-    /**
-     * The Formatter value is the object to convert the LintResult objects to text.
-     */
-    interface Formatter {
-        /**
-         * The method to convert the LintResult objects to text.
-         * Promise return supported since 8.4.0
-         */
-        format(results: LintResult[]): Promise | string;
-    }
-}
-declare const ESLint_base: typeof ESLintBase;
+export { 
 /**
- * The ESLint class is the primary class to use in Node.js applications.
- * This class depends on the Node.js fs module and the file system, so you cannot use it in browsers.
- *
- * If you want to lint code on browsers, use the Linter class instead.
+ * @deprecated - use FlatESLint or LegacyESLint instead
  */
-declare class ESLint extends ESLint_base {
-}
-export { ESLint };
+LegacyESLint as ESLint, } from './eslint/LegacyESLint';
+export { FlatESLint } from './eslint/FlatESLint';
+export { LegacyESLint } from './eslint/LegacyESLint';
 //# sourceMappingURL=ESLint.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.d.ts.map b/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.d.ts.map
index c1883ac913..b82dbda520 100644
--- a/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.d.ts.map
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"ESLint.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/ESLint.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,OAAO,UAAU;IACtB;;;OAGG;gBACS,OAAO,CAAC,EAAE,MAAM,CAAC,aAAa;IAE1C;;;;;;;;;;;OAWG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;IACpE;;;;;OAKG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IACjD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACpE;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,eAAe,GAC/B,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAMvD;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;IACrE;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/D;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACjC;AAED,kBAAU,MAAM,CAAC;IACf,UAAiB,aAAa;QAC5B;;;WAGG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B;;;;WAIG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QACtC;;;;;WAKG;QACH,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB;;WAEG;QACH,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,CAAC;QACb;;WAEG;QACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC;;;;;;;WAOG;QACH,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC7B;;;;WAIG;QACH,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC;QAC3D;;WAEG;QACH,QAAQ,CAAC,EAAE,CAAC,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC;QACxE;;WAEG;QACH,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB;;;WAGG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;;;WAGG;QACH,cAAc,CAAC,EAAE,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC;QACrD;;;WAGG;QACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC;;;WAGG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC/C;;;WAGG;QACH,6BAA6B,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7D;;;;;WAKG;QACH,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzC;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB;;;WAGG;QACH,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB;IAED,UAAiB,kBAAkB;QACjC;;WAEG;QACH,MAAM,EAAE,MAAM,CAAC;QACf;;WAEG;QACH,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB;IAED;;OAEG;IACH,UAAiB,UAAU;QACzB;;WAEG;QACH,UAAU,EAAE,MAAM,CAAC;QACnB;;WAEG;QACH,eAAe,EAAE,MAAM,CAAC;QACxB;;;WAGG;QACH,QAAQ,EAAE,MAAM,CAAC;QACjB;;WAEG;QACH,iBAAiB,EAAE,MAAM,CAAC;QAC1B;;WAEG;QACH,mBAAmB,EAAE,MAAM,CAAC;QAC5B;;WAEG;QACH,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/B;;WAEG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;WAEG;QACH,kBAAkB,EAAE,qBAAqB,EAAE,CAAC;QAC5C;;WAEG;QACH,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;QAC1C;;WAEG;QACH,YAAY,EAAE,MAAM,CAAC;KACtB;IAED,UAAiB,eAAe;QAC9B;;WAEG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;;WAGG;QACH,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB;IAED;;OAEG;IACH,UAAiB,WAAW;QAC1B;;WAEG;QACH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B;;;WAGG;QACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B;;;WAGG;QACH,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;QAC5B;;WAEG;QACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC5B;;WAEG;QACH,GAAG,EAAE,QAAQ,GAAG,SAAS,CAAC;QAC1B;;WAEG;QACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB;;WAEG;QACH,OAAO,EAAE,MAAM,CAAC;QAChB;;;WAGG;QACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB;;WAEG;QACH,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB;;;;WAIG;QACH,WAAW,EACP;YACE,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,QAAQ,CAAC;SACf,EAAE,GACH,SAAS,CAAC;KACf;IAED;;OAEG;IACH,UAAiB,qBAAsB,SAAQ,MAAM,CAAC,WAAW;QAC/D;;WAEG;QACH,YAAY,CAAC,EAAE;YACb;;eAEG;YACH,IAAI,EAAE,MAAM,CAAC;YACb;;eAEG;YACH,aAAa,EAAE,MAAM,CAAC;SACvB,EAAE,CAAC;KACL;IAED;;;;;;;OAOG;IACH,UAAiB,QAAQ;QACvB;;WAEG;QACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;KACd;IAED;;OAEG;IACH,UAAiB,SAAS;QACxB;;;WAGG;QACH,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;KACzD;CACF;;AAED;;;;;GAKG;AACH,cAAM,MAAO,SAAQ,WAAmC;CAAG;AAE3D,OAAO,EAAE,MAAM,EAAE,CAAC"}
\ No newline at end of file
+{"version":3,"file":"ESLint.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/ESLint.ts"],"names":[],"mappings":"AAEA,OAAO;AAEL;;GAEG;AACH,YAAY,IAAI,MAAM,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.js b/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.js
index b04d4094c7..cc0bea3e03 100644
--- a/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.js
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.js
@@ -1,15 +1,15 @@
 "use strict";
 /* eslint-disable @typescript-eslint/no-namespace */
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.ESLint = void 0;
-const eslint_1 = require("eslint");
+exports.LegacyESLint = exports.FlatESLint = exports.ESLint = void 0;
+var LegacyESLint_1 = require("./eslint/LegacyESLint");
+// TODO - remove this in the next major
 /**
- * The ESLint class is the primary class to use in Node.js applications.
- * This class depends on the Node.js fs module and the file system, so you cannot use it in browsers.
- *
- * If you want to lint code on browsers, use the Linter class instead.
+ * @deprecated - use FlatESLint or LegacyESLint instead
  */
-class ESLint extends eslint_1.ESLint {
-}
-exports.ESLint = ESLint;
+Object.defineProperty(exports, "ESLint", { enumerable: true, get: function () { return LegacyESLint_1.LegacyESLint; } });
+var FlatESLint_1 = require("./eslint/FlatESLint");
+Object.defineProperty(exports, "FlatESLint", { enumerable: true, get: function () { return FlatESLint_1.FlatESLint; } });
+var LegacyESLint_2 = require("./eslint/LegacyESLint");
+Object.defineProperty(exports, "LegacyESLint", { enumerable: true, get: function () { return LegacyESLint_2.LegacyESLint; } });
 //# sourceMappingURL=ESLint.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.js.map b/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.js.map
index 18d686d475..92473709b8 100644
--- a/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.js.map
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/ESLint.js.map
@@ -1 +1 @@
-{"version":3,"file":"ESLint.js","sourceRoot":"","sources":["../../src/ts-eslint/ESLint.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,mCAAgD;AA2XhD;;;;;GAKG;AACH,MAAM,MAAO,SAAS,eAAkC;CAAG;AAElD,wBAAM"}
\ No newline at end of file
+{"version":3,"file":"ESLint.js","sourceRoot":"","sources":["../../src/ts-eslint/ESLint.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,sDAM+B;AAL7B,uCAAuC;AACvC;;GAEG;AACH,sGAAA,YAAY,OAAU;AAExB,kDAAiD;AAAxC,wGAAA,UAAU,OAAA;AACnB,sDAAqD;AAA5C,4GAAA,YAAY,OAAA"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Parser.d.ts b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Parser.d.ts
index 64db2b6ca0..45c82bb56d 100644
--- a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Parser.d.ts
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Parser.d.ts
@@ -23,7 +23,9 @@ export declare namespace Parser {
         /**
          * Information about the parser to uniquely identify it when serializing.
          */
-        meta?: Partial;
+        meta?: {
+            [K in keyof ParserMeta]?: ParserMeta[K] | undefined;
+        };
         /**
          * Parses the given text into an ESTree AST
          */
@@ -32,7 +34,9 @@ export declare namespace Parser {
         /**
          * Information about the parser to uniquely identify it when serializing.
          */
-        meta?: Partial;
+        meta?: {
+            [K in keyof ParserMeta]?: ParserMeta[K] | undefined;
+        };
         /**
          * Parses the given text into an AST
          */
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Parser.d.ts.map b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Parser.d.ts.map
index 947bb2869c..35b02bce09 100644
--- a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Parser.d.ts.map
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Parser.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,yBAAiB,MAAM,CAAC;IACtB,UAAiB,UAAU;QACzB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QACb;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;IAED;;;;;;OAMG;IACH,KAAY,iBAAiB,GACzB;QACE;;WAEG;QACH,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3B;;WAEG;QACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;KACjD,GACD;QACE;;WAEG;QACH,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3B;;WAEG;QACH,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,GAChB;aAEA,CAAC,IAAI,MAAM,WAAW,GAAG,OAAO;SAClC,CAAC;KACH,CAAC;IAEN,KAAY,YAAY,GACpB;QACE;;WAEG;QACH,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB;;WAEG;QACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;KAChE,GACD;QACE;;WAEG;QACH,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB;;WAEG;QACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,WAAW,CAAC;KACpE,CAAC;IAEN,UAAiB,WAAW;QAC1B;;WAEG;QACH,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC;QACtB;;;;WAIG;QACH,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B;;;;WAIG;QACH,YAAY,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;QAClC;;;;;WAKG;QACH,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B;IAGD,UAAiB,WAAW;QAC1B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;KACvC;CACF"}
\ No newline at end of file
+{"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,yBAAiB,MAAM,CAAC;IACtB,UAAiB,UAAU;QACzB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QACb;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;IAED;;;;;;OAMG;IACH,KAAY,iBAAiB,GACzB;QACE;;WAEG;QACH,IAAI,CAAC,EAAE;aAAG,CAAC,IAAI,MAAM,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;SAAE,CAAC;QAC/D;;WAEG;QACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;KACjD,GACD;QACE;;WAEG;QACH,IAAI,CAAC,EAAE;aAAG,CAAC,IAAI,MAAM,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;SAAE,CAAC;QAC/D;;WAEG;QACH,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,GAChB;aAEA,CAAC,IAAI,MAAM,WAAW,GAAG,OAAO;SAClC,CAAC;KACH,CAAC;IAEN,KAAY,YAAY,GACpB;QACE;;WAEG;QACH,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB;;WAEG;QACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC;KAChE,GACD;QACE;;WAEG;QACH,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB;;WAEG;QACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,WAAW,CAAC;KACpE,CAAC;IAEN,UAAiB,WAAW;QAC1B;;WAEG;QACH,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC;QACtB;;;;WAIG;QACH,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B;;;;WAIG;QACH,YAAY,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;QAClC;;;;;WAKG;QACH,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B;IAGD,UAAiB,WAAW;QAC1B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;KACvC;CACF"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Processor.d.ts b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Processor.d.ts
index da9a60afb6..845f52b4bc 100644
--- a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Processor.d.ts
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Processor.d.ts
@@ -44,7 +44,9 @@ export declare namespace Processor {
         /**
          * Information about the processor to uniquely identify it when serializing.
          */
-        meta?: Partial;
+        meta?: {
+            [K in keyof ProcessorMeta]?: ProcessorMeta[K] | undefined;
+        };
         /**
          * The function to extract code blocks.
          */
@@ -56,7 +58,7 @@ export declare namespace Processor {
         /**
          * If `true` then it means the processor supports autofix.
          */
-        supportsAutofix?: boolean;
+        supportsAutofix?: boolean | undefined;
     }
 }
 //# sourceMappingURL=Processor.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Processor.d.ts.map b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Processor.d.ts.map
index 95fe069943..b3747e2209 100644
--- a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Processor.d.ts.map
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Processor.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Processor.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Processor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,yBAAiB,SAAS,CAAC;IACzB,UAAiB,aAAa;QAC5B;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QACb;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;IAED,KAAY,UAAU,GAAG,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,KACb,CAAC,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IAErD,KAAY,WAAW,GAAG,CACxB,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,EACpC,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,WAAW,EAAE,CAAC;IAE1B,UAAiB,eAAe;QAC9B;;WAEG;QACH,IAAI,CAAC,EAAE,aAAa,CAAC;QAErB;;WAEG;QACH,UAAU,CAAC,EAAE,UAAU,CAAC;QAExB;;WAEG;QACH,WAAW,CAAC,EAAE,WAAW,CAAC;QAE1B;;WAEG;QACH,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B;IAED;;;;;;OAMG;IACH,UAAiB,oBAAoB;QACnC;;WAEG;QACH,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAE9B;;WAEG;QAMH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC;QAErD;;WAEG;QAMH,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC;QAE3D;;WAEG;QACH,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B;CACF"}
\ No newline at end of file
+{"version":3,"file":"Processor.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Processor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,yBAAiB,SAAS,CAAC;IACzB,UAAiB,aAAa;QAC5B;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QACb;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;IAED,KAAY,UAAU,GAAG,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,KACb,CAAC,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IAErD,KAAY,WAAW,GAAG,CACxB,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,EACpC,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,WAAW,EAAE,CAAC;IAE1B,UAAiB,eAAe;QAC9B;;WAEG;QACH,IAAI,CAAC,EAAE,aAAa,CAAC;QAErB;;WAEG;QACH,UAAU,CAAC,EAAE,UAAU,CAAC;QAExB;;WAEG;QACH,WAAW,CAAC,EAAE,WAAW,CAAC;QAE1B;;WAEG;QACH,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B;IAED;;;;;;OAMG;IACH,UAAiB,oBAAoB;QACnC;;WAEG;QACH,IAAI,CAAC,EAAE;aAAG,CAAC,IAAI,MAAM,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS;SAAE,CAAC;QAErE;;WAEG;QAMH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC;QAErD;;WAEG;QAMH,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC;QAE3D;;WAEG;QACH,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KACvC;CACF"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Rule.d.ts b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Rule.d.ts
index 5ae728822c..7e3e2dbf4c 100644
--- a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Rule.d.ts
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Rule.d.ts
@@ -520,7 +520,7 @@ export type AnyRuleModule = RuleModule;
  * @see {@link LooseParserModule}, {@link LooseProcessorModule}
  */
 export type LooseRuleDefinition = LooseRuleCreateFunction | {
-    meta?: object;
+    meta?: object | undefined;
     create: LooseRuleCreateFunction;
 };
 export type LooseRuleCreateFunction = (context: any) => Record;
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Rule.d.ts.map b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Rule.d.ts.map
index 4d6299e19b..ddab9dd075 100644
--- a/node_modules/@typescript-eslint/utils/dist/ts-eslint/Rule.d.ts.map
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/Rule.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"Rule.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Rule.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"Rule.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,QAAQ,GAAG,WAAW,CAAC;AAExE,MAAM,WAAW,+BAA+B,CAC9C,OAAO,SAAS,SAAS,OAAO,EAAE;IAElC,WAAW,EAAE,IAAI,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,SAAS,OAAO,EAAE;IAClE;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,kBAAkB,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAC5E;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,YAAY,CAC3B,UAAU,SAAS,MAAM,EACzB,OAAO,SAAS,SAAS,OAAO,EAAE;IAElC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAChC;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACrC;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;IAC1C;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B;;OAEG;IACH,MAAM,EAAE,WAAW,GAAG,SAAS,WAAW,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,eAAe,CACb,WAAW,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,EAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAEX,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAExE,gBAAgB,CACd,WAAW,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,EAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAEX,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC;IAE7D,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IAEjD,WAAW,CACT,WAAW,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,EAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAEX,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACrE;AAED,MAAM,WAAW,0BAA0B,CAAC,UAAU,SAAS,MAAM,CACnE,SAAQ,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IACrD,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC9B,KAAK,EAAE,SAAS,KACb,gBAAgB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;AAErE,MAAM,MAAM,qBAAqB,CAAC,UAAU,SAAS,MAAM,IACzD,0BAA0B,CAAC,UAAU,CAAC,EAAE,CAAC;AAE3C,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE5E,UAAU,oBAAoB,CAAC,UAAU,SAAS,MAAM;IACtD;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IAC5C;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;CAIhC;AACD,UAAU,8BAA8B,CAAC,UAAU,SAAS,MAAM,CAChE,SAAQ,oBAAoB,CAAC,UAAU,CAAC;IACxC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC;CACvE;AAED,UAAU,+BAA+B;IACvC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC9C;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,EACT,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAC3B,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;CACvC;AACD,UAAU,uBAAuB;IAC/B;;OAEG;IACH,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;CACtE;AAED,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,MAAM,IACpD,8BAA8B,CAAC,UAAU,CAAC,GACxC,CAAC,uBAAuB,GAAG,+BAA+B,CAAC,CAAC;AAEhE;;;GAGG;AAEH,MAAM,WAAW,2BAA2B;IAC1C,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW,CAC1B,UAAU,SAAS,MAAM,EACzB,OAAO,SAAS,SAAS,OAAO,EAAE;IAElC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,eAAe,EAAE,UAAU,CAAC,eAAe,CAAC;IAC5C;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;IACpC;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,QAAQ,EAAE,2BAA2B,CAAC;IAEtC;;;;;;OAMG;IACH,YAAY,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,KAAK,CAAC,QAAQ,EAAE,CAAC;IAErE;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC;IAEjB;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;OAIG;IACH,WAAW,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,mBAAmB,IAAI,MAAM,CAAC;IAE9B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;IAExB;;;;;OAKG;IACH,aAAa,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEtC;;;OAGG;IACH,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEjC;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1C;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;CACxD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX,cAAc,EAAE,eAAe,CAAC;IAEhC,kEAAkE;IAClE,aAAa,EAAE,eAAe,EAAE,CAAC;IAEjC,uDAAuD;IACvD,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAEpC,qDAAqD;IACrD,cAAc,EAAE,eAAe,EAAE,CAAC;IAElC;;;;OAIG;IACH,eAAe,EAAE,eAAe,EAAE,CAAC;IAEnC,wDAAwD;IACxD,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEvB,uDAAuD;IACvD,cAAc,EAAE,QAAQ,EAAE,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,YAAY,EAAE,eAAe,EAAE,CAAC;IAEhC;;;OAGG;IACH,YAAY,EAAE,eAAe,EAAE,CAAC;IAEhC;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GACxB,CAAC,CACC,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,QAAQ,CAAC,IAAI,KAChB,IAAI,CAAC,GACV,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,GACnD,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAI9D,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,QAAQ,CAAC,eAAe,GAAG,KAAK,IAAI,CACrE,IAAI,EAAE,CAAC,KACJ,IAAI,CAAC;AAEV,UAAU,yBAAyB;IACjC,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,uBAAuB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IACzE,oBAAoB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACnE,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,SAAS,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,qBAAqB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACrE,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,SAAS,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,oBAAoB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACnE,wBAAwB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAC3E,sBAAsB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACvE,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,sBAAsB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACvE,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,wBAAwB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAC3E,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/C,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,sBAAsB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACvE,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3C,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,KAAK,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/C,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,wBAAwB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAC3E,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,0BAA0B,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAC/E,4BAA4B,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,0BAA0B,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAC/E,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,+BAA+B,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;IACzF,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,6BAA6B,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;IACrF,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,yBAAyB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IAC7E,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,yBAAyB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IAC7E,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,sBAAsB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACvE,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,4BAA4B,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;IACnF,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/C,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,sBAAsB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACvE,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,0BAA0B,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAC/E,4BAA4B,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;IACnF,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;CAC1D;AACD,KAAK,yBAAyB,GAAG;KAC9B,CAAC,IAAI,MAAM,yBAAyB,IAAI,GAAG,CAAC,OAAO,GAAG,yBAAyB,CAAC,CAAC,CAAC;CACpF,CAAC;AACF,KAAK,4BAA4B,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAG7E,MAAM,WAAW,qBAAqB;CAuCrC;AAED,MAAM,MAAM,YAAY,GAAG,yBAAyB,GAClD,4BAA4B,GAC5B,yBAAyB,CAAC;AAE5B,MAAM,WAAW,UAAU,CACzB,UAAU,SAAS,MAAM,EACzB,OAAO,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,EAEvC,oBAAoB,SAAS,YAAY,GAAG,YAAY;IAExD;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAExC;;;OAGG;IACH,MAAM,CACJ,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,GAClD,oBAAoB,CAAC;CACzB;AACD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC;AAEnE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mBAAmB,GAE3B,uBAAuB,GACvB;IACE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,uBAAuB,CAAC;CACjC,CAAC;AAMN,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,MAAM,CAC5D,MAAM,EAON,QAAQ,GAAG,SAAS,CACrB,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAC5B,UAAU,SAAS,MAAM,GAAG,KAAK,EACjC,OAAO,SAAS,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,IAC5C,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,KAAK,YAAY,CAAC;AAC1E,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CACpD,MAAM,EACN,SAAS,OAAO,EAAE,CACnB,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.d.ts b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.d.ts
new file mode 100644
index 0000000000..cb31d085fa
--- /dev/null
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.d.ts
@@ -0,0 +1,382 @@
+import type { Linter } from '../Linter';
+import type { RuleMetaData } from '../Rule';
+export declare class ESLintBase> {
+    /**
+     * Creates a new instance of the main ESLint API.
+     * @param options The options for this instance.
+     */
+    constructor(options?: Options);
+    /**
+     * This method calculates the configuration for a given file, which can be useful for debugging purposes.
+     * - It resolves and merges extends and overrides settings into the top level configuration.
+     * - It resolves the parser setting to absolute paths.
+     * - It normalizes the plugins setting to align short names. (e.g., eslint-plugin-foo → foo)
+     * - It adds the processor setting if a legacy file extension processor is matched.
+     * - It doesn't interpret the env setting to the globals and parserOptions settings, so the result object contains
+     *   the env setting as is.
+     * @param filePath The path to the file whose configuration you would like to calculate. Directory paths are forbidden
+     *                 because ESLint cannot handle the overrides setting.
+     * @returns The promise that will be fulfilled with a configuration object.
+     */
+    calculateConfigForFile(filePath: string): Promise;
+    getRulesMetaForResults(results: LintResult[]): Record>;
+    /**
+     * This method checks if a given file is ignored by your configuration.
+     * @param filePath The path to the file you want to check.
+     * @returns The promise that will be fulfilled with whether the file is ignored or not. If the file is ignored, then
+     *          it will return true.
+     */
+    isPathIgnored(filePath: string): Promise;
+    /**
+     * This method lints the files that match the glob patterns and then returns the results.
+     * @param patterns The lint target files. This can contain any of file paths, directory paths, and glob patterns.
+     * @returns The promise that will be fulfilled with an array of LintResult objects.
+     */
+    lintFiles(patterns: string[] | string): Promise;
+    /**
+     * This method lints the given source code text and then returns the results.
+     *
+     * By default, this method uses the configuration that applies to files in the current working directory (the cwd
+     * constructor option). If you want to use a different configuration, pass options.filePath, and ESLint will load the
+     * same configuration that eslint.lintFiles() would use for a file at options.filePath.
+     *
+     * If the options.filePath value is configured to be ignored, this method returns an empty array. If the
+     * options.warnIgnored option is set along with the options.filePath option, this method returns a LintResult object.
+     * In that case, the result may contain a warning that indicates the file was ignored.
+     * @param code The source code text to check.
+     * @returns The promise that will be fulfilled with an array of LintResult objects. This is an array (despite there
+     *          being only one lint result) in order to keep the interfaces between this and the eslint.lintFiles()
+     *          method similar.
+     */
+    lintText(code: string, options?: LintTextOptions): Promise;
+    /**
+     * This method loads a formatter. Formatters convert lint results to a human- or machine-readable string.
+     * @param name TThe path to the file you want to check.
+     * The following values are allowed:
+     * - undefined. In this case, loads the "stylish" built-in formatter.
+     * - A name of built-in formatters.
+     * - A name of third-party formatters. For examples:
+     * -- `foo` will load eslint-formatter-foo.
+     * -- `@foo` will load `@foo/eslint-formatter`.
+     * -- `@foo/bar` will load `@foo/eslint-formatter-bar`.
+     * - A path to the file that defines a formatter. The path must contain one or more path separators (/) in order to distinguish if it's a path or not. For example, start with ./.
+     * @returns The promise that will be fulfilled with a Formatter object.
+     */
+    loadFormatter(name?: string): Promise;
+    /**
+     * This method copies the given results and removes warnings. The returned value contains only errors.
+     * @param results The LintResult objects to filter.
+     * @returns The filtered LintResult objects.
+     */
+    static getErrorResults(results: LintResult): LintResult;
+    /**
+     * This method writes code modified by ESLint's autofix feature into its respective file. If any of the modified
+     * files don't exist, this method does nothing.
+     * @param results The LintResult objects to write.
+     * @returns The promise that will be fulfilled after all files are written.
+     */
+    static outputFixes(results: LintResult[]): Promise;
+    /**
+     * The version text.
+     */
+    static readonly version: string;
+    /**
+     * The type of configuration used by this class.
+     */
+    static readonly configType: 'eslintrc' | 'flat';
+}
+export interface ESLintOptions {
+    /**
+     * If false is present, ESLint suppresses directive comments in source code.
+     * If this option is false, it overrides the noInlineConfig setting in your configurations.
+     * @default true
+     */
+    allowInlineConfig?: boolean;
+    /**
+     * Configuration object, extended by all configurations used with this instance.
+     * You can use this option to define the default settings that will be used if your configuration files don't
+     * configure it.
+     * @default null
+     */
+    baseConfig?: Config | null;
+    /**
+     * If `true` is present, the `eslint.lintFiles()` method caches lint results and uses it if each target file is not
+     * changed. Please mind that ESLint doesn't clear the cache when you upgrade ESLint plugins. In that case, you have
+     * to remove the cache file manually. The `eslint.lintText()` method doesn't use caches even if you pass the
+     * options.filePath to the method.
+     * @default false
+     */
+    cache?: boolean;
+    /**
+     * The eslint.lintFiles() method writes caches into this file.
+     * @default '.eslintcache'
+     */
+    cacheLocation?: string;
+    /**
+     * Strategy for the cache to use for detecting changed files.
+     * @default 'metadata'
+     */
+    cacheStrategy?: 'metadata' | 'content';
+    /**
+     * The working directory. This must be an absolute path.
+     * @default process.cwd()
+     */
+    cwd?: string;
+    /**
+     * Unless set to false, the `eslint.lintFiles()` method will throw an error when no target files are found.
+     * @default true
+     */
+    errorOnUnmatchedPattern?: boolean;
+    /**
+     * If `true` is present, the `eslint.lintFiles()` and `eslint.lintText()` methods work in autofix mode.
+     * If a predicate function is present, the methods pass each lint message to the function, then use only the
+     * lint messages for which the function returned true.
+     * @default false
+     */
+    fix?: boolean | ((message: LintMessage) => boolean);
+    /**
+     * The types of the rules that the `eslint.lintFiles()` and `eslint.lintText()` methods use for autofix.
+     * @default null
+     */
+    fixTypes?: ('directive' | 'layout' | 'problem' | 'suggestion')[] | null;
+    /**
+     * If false is present, the `eslint.lintFiles()` method doesn't interpret glob patterns.
+     * @default true
+     */
+    globInputPaths?: boolean;
+    /**
+     * Configuration object, overrides all configurations used with this instance.
+     * You can use this option to define the settings that will be used even if your configuration files configure it.
+     * @default null
+     */
+    overrideConfig?: Config | null;
+    /**
+     * When set to true, missing patterns cause the linting operation to short circuit and not report any failures.
+     * @default false
+     */
+    passOnNoPatterns?: boolean;
+    /**
+     * The plugin implementations that ESLint uses for the plugins setting of your configuration.
+     * This is a map-like object. Those keys are plugin IDs and each value is implementation.
+     * @default null
+     */
+    plugins?: Record | null;
+}
+export interface DeprecatedRuleInfo {
+    /**
+     *  The rule ID.
+     */
+    ruleId: string;
+    /**
+     *  The rule IDs that replace this deprecated rule.
+     */
+    replacedBy: string[];
+}
+/**
+ * The LintResult value is the information of the linting result of each file.
+ */
+export interface LintResult {
+    /**
+     * The number of errors. This includes fixable errors.
+     */
+    errorCount: number;
+    /**
+     * The number of fatal errors.
+     */
+    fatalErrorCount: number;
+    /**
+     * The absolute path to the file of this result. This is the string "" if the file path is unknown (when you
+     * didn't pass the options.filePath option to the eslint.lintText() method).
+     */
+    filePath: string;
+    /**
+     * The number of errors that can be fixed automatically by the fix constructor option.
+     */
+    fixableErrorCount: number;
+    /**
+     * The number of warnings that can be fixed automatically by the fix constructor option.
+     */
+    fixableWarningCount: number;
+    /**
+     * The array of LintMessage objects.
+     */
+    messages: LintMessage[];
+    /**
+     * The source code of the file that was linted, with as many fixes applied as possible.
+     */
+    output?: string;
+    /**
+     * The original source code text. This property is undefined if any messages didn't exist or the output
+     * property exists.
+     */
+    source?: string;
+    /**
+     * The array of SuppressedLintMessage objects.
+     */
+    suppressedMessages: SuppressedLintMessage[];
+    /**
+     * The information about the deprecated rules that were used to check this file.
+     */
+    usedDeprecatedRules: DeprecatedRuleInfo[];
+    /**
+     * The number of warnings. This includes fixable warnings.
+     */
+    warningCount: number;
+    /**
+     * Timing information of the lint run.
+     * This exists if and only if the `--stats` CLI flag was added or the `stats: true`
+     * option was passed to the ESLint class
+     * @since 9.0.0
+     */
+    stats?: LintStats;
+}
+export interface LintStats {
+    /**
+     * The number of times ESLint has applied at least one fix after linting.
+     */
+    fixPasses: number;
+    /**
+     * The times spent on (parsing, fixing, linting) a file, where the linting refers to the timing information for each rule.
+     */
+    times: {
+        passes: LintStatsTimePass[];
+    };
+}
+export interface LintStatsTimePass {
+    /**
+     * The total time that is spent when parsing a file.
+     */
+    parse: LintStatsParseTime;
+    /**
+     * The total time that is spent on a rule.
+     */
+    rules?: Record;
+    /**
+     * The total time that is spent on applying fixes to the code.
+     */
+    fix: LintStatsFixTime;
+    /**
+     * The cumulative total
+     */
+    total: number;
+}
+export interface LintStatsParseTime {
+    total: number;
+}
+export interface LintStatsRuleTime {
+    total: number;
+}
+export interface LintStatsFixTime {
+    total: number;
+}
+export interface LintTextOptions {
+    /**
+     * The path to the file of the source code text. If omitted, the result.filePath becomes the string "".
+     */
+    filePath?: string;
+    /**
+     * If true is present and the options.filePath is a file ESLint should ignore, this method returns a lint result
+     * contains a warning message.
+     */
+    warnIgnored?: boolean;
+}
+/**
+ * The LintMessage value is the information of each linting error.
+ */
+export interface LintMessage {
+    /**
+     * The 1-based column number of the begin point of this message.
+     */
+    column: number | undefined;
+    /**
+     * The 1-based column number of the end point of this message. This property is undefined if this message
+     * is not a range.
+     */
+    endColumn: number | undefined;
+    /**
+     * The 1-based line number of the end point of this message. This property is undefined if this
+     * message is not a range.
+     */
+    endLine: number | undefined;
+    /**
+     * `true` if this is a fatal error unrelated to a rule, like a parsing error.
+     */
+    fatal?: boolean | undefined;
+    /**
+     * The EditInfo object of autofix. This property is undefined if this message is not fixable.
+     */
+    fix: EditInfo | undefined;
+    /**
+     * The 1-based line number of the begin point of this message.
+     */
+    line: number | undefined;
+    /**
+     * The error message
+     */
+    message: string;
+    /**
+     * The rule name that generates this lint message. If this message is generated by the ESLint core rather than
+     * rules, this is null.
+     */
+    ruleId: string | null;
+    /**
+     * The severity of this message. 1 means warning and 2 means error.
+     */
+    severity: 1 | 2;
+    /**
+     * The list of suggestions. Each suggestion is the pair of a description and an EditInfo object to fix code. API
+     * users such as editor integrations can choose one of them to fix the problem of this message. This property is
+     * undefined if this message doesn't have any suggestions.
+     */
+    suggestions: {
+        desc: string;
+        fix: EditInfo;
+    }[] | undefined;
+}
+/**
+ * The SuppressedLintMessage value is the information of each suppressed linting error.
+ */
+export interface SuppressedLintMessage extends LintMessage {
+    /**
+     * The list of suppressions.
+     */
+    suppressions?: {
+        /**
+         * Right now, this is always `directive`
+         */
+        kind: string;
+        /**
+         * The free text description added after the `--` in the comment
+         */
+        justification: string;
+    }[];
+}
+/**
+ * The EditInfo value is information to edit text.
+ *
+ * This edit information means replacing the range of the range property by the text property value. It's like
+ * sourceCodeText.slice(0, edit.range[0]) + edit.text + sourceCodeText.slice(edit.range[1]). Therefore, it's an add
+ * if the range[0] and range[1] property values are the same value, and it's removal if the text property value is
+ * empty string.
+ */
+export interface EditInfo {
+    /**
+     * The pair of 0-based indices in source code text to remove.
+     */
+    range: [number, number];
+    /**
+     * The text to add.
+     */
+    text: string;
+}
+/**
+ * The Formatter value is the object to convert the LintResult objects to text.
+ */
+export interface Formatter {
+    /**
+     * The method to convert the LintResult objects to text.
+     * Promise return supported since 8.4.0
+     */
+    format(results: LintResult[]): Promise | string;
+}
+//# sourceMappingURL=ESLintShared.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.d.ts.map b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.d.ts.map
new file mode 100644
index 0000000000..abdebed28a
--- /dev/null
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"ESLintShared.d.ts","sourceRoot":"","sources":["../../../src/ts-eslint/eslint/ESLintShared.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.js b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.js
new file mode 100644
index 0000000000..09d9a3118a
--- /dev/null
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=ESLintShared.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.js.map b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.js.map
new file mode 100644
index 0000000000..02869193cb
--- /dev/null
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/ESLintShared.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ESLintShared.js","sourceRoot":"","sources":["../../../src/ts-eslint/eslint/ESLintShared.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.d.ts b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.d.ts
new file mode 100644
index 0000000000..8059e63873
--- /dev/null
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.d.ts
@@ -0,0 +1,84 @@
+import type { FlatConfig } from '../Config';
+import type * as Shared from './ESLintShared';
+declare class FlatESLintBase extends Shared.ESLintBase {
+    static readonly configType: 'flat';
+    /**
+     * Returns a configuration object for the given file based on the CLI options.
+     * This is the same logic used by the ESLint CLI executable to determine
+     * configuration for each file it processes.
+     * @param filePath The path of the file to retrieve a config object for.
+     * @returns A configuration object for the file or `undefined` if there is no configuration data for the object.
+     */
+    calculateConfigForFile(filePath: string): Promise;
+    /**
+     * Finds the config file being used by this instance based on the options
+     * passed to the constructor.
+     * @returns The path to the config file being used or `undefined` if no config file is being used.
+     */
+    findConfigFile(): Promise;
+}
+declare const FlatESLint_base: typeof FlatESLintBase;
+/**
+ * The ESLint class is the primary class to use in Node.js applications.
+ * This class depends on the Node.js fs module and the file system, so you cannot use it in browsers.
+ *
+ * If you want to lint code on browsers, use the Linter class instead.
+ */
+export declare class FlatESLint extends FlatESLint_base {
+}
+export declare namespace FlatESLint {
+    interface ESLintOptions extends Shared.ESLintOptions {
+        /**
+         * If false is present, the eslint.lintFiles() method doesn't respect `ignorePatterns` ignorePatterns in your configuration.
+         * @default true
+         */
+        ignore?: boolean;
+        /**
+         * Ignore file patterns to use in addition to config ignores. These patterns are relative to cwd.
+         * @default null
+         */
+        ignorePatterns?: string[] | null;
+        /**
+         * The path to a configuration file, overrides all configurations used with this instance.
+         * The options.overrideConfig option is applied after this option is applied.
+         * Searches for default config file when falsy; doesn't do any config file lookup when `true`; considered to be a config filename when a string.
+         * @default false
+         */
+        overrideConfigFile?: string | boolean;
+        /**
+         * A predicate function that filters rules to be run.
+         * This function is called with an object containing `ruleId` and `severity`, and returns `true` if the rule should be run.
+         * @default () => true
+         */
+        ruleFilter?: RuleFilter;
+        /**
+         * When set to true, additional statistics are added to the lint results.
+         * @see {@link https://eslint.org/docs/latest/extend/stats}
+         * @default false
+         */
+        stats?: boolean;
+        /**
+         * Show warnings when the file list includes ignored files.
+         * @default true
+         */
+        warnIgnored?: boolean;
+    }
+    type DeprecatedRuleInfo = Shared.DeprecatedRuleInfo;
+    type EditInfo = Shared.EditInfo;
+    type Formatter = Shared.Formatter;
+    type LintMessage = Shared.LintMessage;
+    type LintResult = Shared.LintResult;
+    type LintStats = Shared.LintStats;
+    type LintStatsFixTime = Shared.LintStatsFixTime;
+    type LintStatsParseTime = Shared.LintStatsParseTime;
+    type LintStatsRuleTime = Shared.LintStatsRuleTime;
+    type LintStatsTimePass = Shared.LintStatsTimePass;
+    type LintTextOptions = Shared.LintTextOptions;
+    type SuppressedLintMessage = Shared.SuppressedLintMessage;
+    type RuleFilter = (rule: {
+        ruleId: string;
+        severity: number;
+    }) => boolean;
+}
+export {};
+//# sourceMappingURL=FlatESLint.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.d.ts.map b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.d.ts.map
new file mode 100644
index 0000000000..c41795faf8
--- /dev/null
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"FlatESLint.d.ts","sourceRoot":"","sources":["../../../src/ts-eslint/eslint/FlatESLint.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAE9C,OAAO,OAAO,cAAe,SAAQ,MAAM,CAAC,UAAU,CACpD,UAAU,CAAC,WAAW,EACtB,UAAU,CAAC,aAAa,CACzB;IACC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAEnC;;;;;;OAMG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;IAEzE;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAC9C;;AAED;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,eAA2C;CAAG;AAC9E,yBAAiB,UAAU,CAAC;IAC1B,UAAiB,aACf,SAAQ,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC;QACpD;;;WAGG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;;WAGG;QACH,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACjC;;;;;WAKG;QACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACtC;;;;WAIG;QACH,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB;;;;WAIG;QACH,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB;;;WAGG;QACH,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB;IACD,KAAY,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAC3D,KAAY,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACvC,KAAY,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACzC,KAAY,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAC7C,KAAY,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAC3C,KAAY,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACzC,KAAY,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACvD,KAAY,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAC3D,KAAY,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACzD,KAAY,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACzD,KAAY,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IACrD,KAAY,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;IACjE,KAAY,UAAU,GAAG,CAAC,IAAI,EAAE;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,KAAK,OAAO,CAAC;CACf"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.js b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.js
new file mode 100644
index 0000000000..1add2c6773
--- /dev/null
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.js
@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.FlatESLint = void 0;
+/* eslint-disable @typescript-eslint/no-namespace */
+const use_at_your_own_risk_1 = require("eslint/use-at-your-own-risk");
+/**
+ * The ESLint class is the primary class to use in Node.js applications.
+ * This class depends on the Node.js fs module and the file system, so you cannot use it in browsers.
+ *
+ * If you want to lint code on browsers, use the Linter class instead.
+ */
+class FlatESLint extends use_at_your_own_risk_1.FlatESLint {
+}
+exports.FlatESLint = FlatESLint;
+//# sourceMappingURL=FlatESLint.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.js.map b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.js.map
new file mode 100644
index 0000000000..016c43f31f
--- /dev/null
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/FlatESLint.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"FlatESLint.js","sourceRoot":"","sources":["../../../src/ts-eslint/eslint/FlatESLint.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AACpD,sEAA6E;AA4B7E;;;;;GAKG;AACH,MAAa,UAAW,SAAS,iCAA0C;CAAG;AAA9E,gCAA8E"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.d.ts b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.d.ts
new file mode 100644
index 0000000000..698c0120cd
--- /dev/null
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.d.ts
@@ -0,0 +1,73 @@
+import type { ClassicConfig } from '../Config';
+import type { Linter } from '../Linter';
+import type * as Shared from './ESLintShared';
+declare class LegacyESLintBase extends Shared.ESLintBase {
+    static readonly configType: 'eslintrc';
+}
+declare const LegacyESLint_base: typeof LegacyESLintBase;
+/**
+ * The ESLint class is the primary class to use in Node.js applications.
+ * This class depends on the Node.js fs module and the file system, so you cannot use it in browsers.
+ *
+ * If you want to lint code on browsers, use the Linter class instead.
+ */
+export declare class LegacyESLint extends LegacyESLint_base {
+}
+export declare namespace LegacyESLint {
+    interface ESLintOptions extends Shared.ESLintOptions {
+        /**
+         * If you pass directory paths to the eslint.lintFiles() method, ESLint checks the files in those directories that
+         * have the given extensions. For example, when passing the src/ directory and extensions is [".js", ".ts"], ESLint
+         * will lint *.js and *.ts files in src/. If extensions is null, ESLint checks *.js files and files that match
+         * overrides[].files patterns in your configuration.
+         * Note: This option only applies when you pass directory paths to the eslint.lintFiles() method.
+         * If you pass glob patterns, ESLint will lint all files matching the glob pattern regardless of extension.
+         */
+        extensions?: string[] | null;
+        /**
+         * If false is present, the eslint.lintFiles() method doesn't respect `.eslintignore` files in your configuration.
+         * @default true
+         */
+        ignore?: boolean;
+        /**
+         * The path to a file ESLint uses instead of `$CWD/.eslintignore`.
+         * If a path is present and the file doesn't exist, this constructor will throw an error.
+         */
+        ignorePath?: string;
+        /**
+         * The path to a configuration file, overrides all configurations used with this instance.
+         * The options.overrideConfig option is applied after this option is applied.
+         */
+        overrideConfigFile?: string | null;
+        /**
+         * The severity to report unused eslint-disable directives.
+         * If this option is a severity, it overrides the reportUnusedDisableDirectives setting in your configurations.
+         */
+        reportUnusedDisableDirectives?: Linter.SeverityString | null;
+        /**
+         * The path to a directory where plugins should be resolved from.
+         * If null is present, ESLint loads plugins from the location of the configuration file that contains the plugin
+         * setting.
+         * If a path is present, ESLint loads all plugins from there.
+         */
+        resolvePluginsRelativeTo?: string | null;
+        /**
+         * An array of paths to directories to load custom rules from.
+         */
+        rulePaths?: string[];
+        /**
+         * If false is present, ESLint doesn't load configuration files (.eslintrc.* files).
+         * Only the configuration of the constructor options is valid.
+         */
+        useEslintrc?: boolean;
+    }
+    type DeprecatedRuleInfo = Shared.DeprecatedRuleInfo;
+    type EditInfo = Shared.EditInfo;
+    type Formatter = Shared.Formatter;
+    type LintMessage = Shared.LintMessage;
+    type LintResult = Omit;
+    type LintTextOptions = Shared.LintTextOptions;
+    type SuppressedLintMessage = Shared.SuppressedLintMessage;
+}
+export {};
+//# sourceMappingURL=LegacyESLint.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.d.ts.map b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.d.ts.map
new file mode 100644
index 0000000000..0f024b85aa
--- /dev/null
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"LegacyESLint.d.ts","sourceRoot":"","sources":["../../../src/ts-eslint/eslint/LegacyESLint.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAE9C,OAAO,OAAO,gBAAiB,SAAQ,MAAM,CAAC,UAAU,CACtD,aAAa,CAAC,MAAM,EACpB,YAAY,CAAC,aAAa,CAC3B;IACC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACxC;;AAED;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,iBAA+C;CAAG;AACpF,yBAAiB,YAAY,CAAC;IAC5B,UAAiB,aACf,SAAQ,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC;QAClD;;;;;;;WAOG;QACH,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC7B;;;WAGG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;;;WAGG;QACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC;;;WAGG;QACH,6BAA6B,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7D;;;;;WAKG;QACH,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzC;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB;;;WAGG;QACH,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB;IACD,KAAY,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;IAC3D,KAAY,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACvC,KAAY,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACzC,KAAY,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAC7C,KAAY,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1D,KAAY,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IACrD,KAAY,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;CAClE"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.js b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.js
new file mode 100644
index 0000000000..88f281e123
--- /dev/null
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.js
@@ -0,0 +1,15 @@
+"use strict";
+/* eslint-disable @typescript-eslint/no-namespace */
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.LegacyESLint = void 0;
+const use_at_your_own_risk_1 = require("eslint/use-at-your-own-risk");
+/**
+ * The ESLint class is the primary class to use in Node.js applications.
+ * This class depends on the Node.js fs module and the file system, so you cannot use it in browsers.
+ *
+ * If you want to lint code on browsers, use the Linter class instead.
+ */
+class LegacyESLint extends use_at_your_own_risk_1.LegacyESLint {
+}
+exports.LegacyESLint = LegacyESLint;
+//# sourceMappingURL=LegacyESLint.js.map
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.js.map b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.js.map
new file mode 100644
index 0000000000..76c53e18e9
--- /dev/null
+++ b/node_modules/@typescript-eslint/utils/dist/ts-eslint/eslint/LegacyESLint.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"LegacyESLint.js","sourceRoot":"","sources":["../../../src/ts-eslint/eslint/LegacyESLint.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,sEAAiF;AAajF;;;;;GAKG;AACH,MAAa,YAAa,SAAS,mCAA8C;CAAG;AAApF,oCAAoF"}
\ No newline at end of file
diff --git a/node_modules/@typescript-eslint/utils/package.json b/node_modules/@typescript-eslint/utils/package.json
index 4c81bf3bb7..298a85d807 100644
--- a/node_modules/@typescript-eslint/utils/package.json
+++ b/node_modules/@typescript-eslint/utils/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@typescript-eslint/utils",
-  "version": "7.5.0",
+  "version": "7.7.0",
   "description": "Utilities for working with TypeScript + ESLint together",
   "files": [
     "dist",
@@ -68,21 +68,21 @@
   },
   "dependencies": {
     "@eslint-community/eslint-utils": "^4.4.0",
-    "@types/json-schema": "^7.0.12",
-    "@types/semver": "^7.5.0",
-    "@typescript-eslint/scope-manager": "7.5.0",
-    "@typescript-eslint/types": "7.5.0",
-    "@typescript-eslint/typescript-estree": "7.5.0",
-    "semver": "^7.5.4"
+    "@types/json-schema": "^7.0.15",
+    "@types/semver": "^7.5.8",
+    "@typescript-eslint/scope-manager": "7.7.0",
+    "@typescript-eslint/types": "7.7.0",
+    "@typescript-eslint/typescript-estree": "7.7.0",
+    "semver": "^7.6.0"
   },
   "peerDependencies": {
     "eslint": "^8.56.0"
   },
   "devDependencies": {
-    "@typescript-eslint/parser": "7.5.0",
+    "@typescript-eslint/parser": "7.7.0",
     "downlevel-dts": "*",
     "jest": "29.7.0",
-    "prettier": "^3.0.3",
+    "prettier": "^3.2.5",
     "rimraf": "*",
     "typescript": "*"
   },
diff --git a/node_modules/@typescript-eslint/visitor-keys/package.json b/node_modules/@typescript-eslint/visitor-keys/package.json
index b247998baa..a7e66a3d5e 100644
--- a/node_modules/@typescript-eslint/visitor-keys/package.json
+++ b/node_modules/@typescript-eslint/visitor-keys/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@typescript-eslint/visitor-keys",
-  "version": "7.5.0",
+  "version": "7.7.0",
   "description": "Visitor keys used to help traverse the TypeScript-ESTree AST",
   "files": [
     "dist",
@@ -47,14 +47,14 @@
     "typecheck": "tsc -p tsconfig.json --noEmit"
   },
   "dependencies": {
-    "@typescript-eslint/types": "7.5.0",
-    "eslint-visitor-keys": "^3.4.1"
+    "@typescript-eslint/types": "7.7.0",
+    "eslint-visitor-keys": "^3.4.3"
   },
   "devDependencies": {
     "@types/eslint-visitor-keys": "*",
     "downlevel-dts": "*",
     "jest": "29.7.0",
-    "prettier": "^3.0.3",
+    "prettier": "^3.2.5",
     "rimraf": "*",
     "typescript": "*"
   },
diff --git a/node_modules/ignore/index.d.ts b/node_modules/ignore/index.d.ts
index 520eafa77e..970631e266 100644
--- a/node_modules/ignore/index.d.ts
+++ b/node_modules/ignore/index.d.ts
@@ -42,7 +42,7 @@ export interface Ignore {
   test(pathname: Pathname): TestResult
 }
 
-interface Options {
+export interface Options {
   ignorecase?: boolean
   // For compatibility
   ignoreCase?: boolean
diff --git a/node_modules/ignore/index.js b/node_modules/ignore/index.js
index a25577f7f5..c559806457 100644
--- a/node_modules/ignore/index.js
+++ b/node_modules/ignore/index.js
@@ -67,6 +67,14 @@ const cleanRangeBackSlash = slashes => {
 // '`foo/`' should not continue with the '`..`'
 const REPLACERS = [
 
+  [
+    // remove BOM
+    // TODO:
+    // Other similar zero-width characters?
+    /^\uFEFF/,
+    () => EMPTY
+  ],
+
   // > Trailing spaces are ignored unless they are quoted with backslash ("\")
   [
     // (a\ ) -> (a )
diff --git a/node_modules/ignore/legacy.js b/node_modules/ignore/legacy.js
index 8518b7c512..e97047187c 100644
--- a/node_modules/ignore/legacy.js
+++ b/node_modules/ignore/legacy.js
@@ -71,7 +71,13 @@ var cleanRangeBackSlash = function cleanRangeBackSlash(slashes) {
 //      you could use option `mark: true` with `glob`
 
 // '`foo/`' should not continue with the '`..`'
-var REPLACERS = [
+var REPLACERS = [[
+// remove BOM
+// TODO:
+// Other similar zero-width characters?
+/^\uFEFF/, function () {
+  return EMPTY;
+}],
 // > Trailing spaces are ignored unless they are quoted with backslash ("\")
 [
 // (a\ ) -> (a )
diff --git a/node_modules/ignore/package.json b/node_modules/ignore/package.json
index fe5498df00..edc78d3c69 100644
--- a/node_modules/ignore/package.json
+++ b/node_modules/ignore/package.json
@@ -1,6 +1,6 @@
 {
   "name": "ignore",
-  "version": "5.2.4",
+  "version": "5.3.1",
   "description": "Ignore is a manager and filter for .gitignore rules, the one used by eslint, gitbook and many others.",
   "files": [
     "legacy.js",
@@ -51,21 +51,21 @@
     "url": "https://github.com/kaelzhang/node-ignore/issues"
   },
   "devDependencies": {
-    "@babel/cli": "^7.19.3",
-    "@babel/core": "^7.20.5",
-    "@babel/preset-env": "^7.20.2",
+    "@babel/cli": "^7.22.9",
+    "@babel/core": "^7.22.9",
+    "@babel/preset-env": "^7.22.9",
     "codecov": "^3.8.2",
     "debug": "^4.3.4",
-    "eslint": "^8.30.0",
+    "eslint": "^8.46.0",
     "eslint-config-ostai": "^3.0.0",
-    "eslint-plugin-import": "^2.26.0",
-    "mkdirp": "^1.0.4",
+    "eslint-plugin-import": "^2.28.0",
+    "mkdirp": "^3.0.1",
     "pre-suf": "^1.1.1",
-    "rimraf": "^3.0.2",
+    "rimraf": "^5.0.1",
     "spawn-sync": "^2.0.0",
-    "tap": "^16.3.2",
+    "tap": "^16.3.9",
     "tmp": "0.2.1",
-    "typescript": "^4.9.4"
+    "typescript": "^5.1.6"
   },
   "engines": {
     "node": ">= 4"
diff --git a/node_modules/ts-api-utils/README.md b/node_modules/ts-api-utils/README.md
index 58b9c22f7e..04753e2294 100644
--- a/node_modules/ts-api-utils/README.md
+++ b/node_modules/ts-api-utils/README.md
@@ -2,34 +2,32 @@
 
 

Utility functions for working with TypeScript's API. - Successor to the wonderful tsutils. + Successor to the wonderful tsutils. 🛠️️

-All Contributors: 4 +All Contributors: 6 👪 - Codecov Test Coverage - - - Documentation Coverage + Codecov Test Coverage Contributor Covenant - License: MIT - + License: MIT + - Sponsor: On GitHub - + Sponsor: On GitHub + Style: Prettier - TypeScript: Strict + TypeScript: Strict + npm package version

## Usage @@ -40,6 +38,8 @@ npm i ts-api-utils ```ts import * as tsutils from "ts-api-utils"; + +tsutils.forEachToken(/* ... */); ``` ### API @@ -67,10 +67,12 @@ Many thanks to [@ajafff](https://github.com/ajafff) for creating the original [` - - + + + + - +
Josh Goldberg
Josh Goldberg

🐛 💻 📖 📆 ⚠️ 🔧
Rebecca Stevens
Rebecca Stevens

🐛 💻 📖 📆 ⚠️ 🔧
Dan Vanderkam
Dan Vanderkam

🐛
Johannes Chorzempa
Johannes Chorzempa

📖 💻
Josh Goldberg
Josh Goldberg

🐛 💻 📖 📆 ⚠️ 🔧 🚧 🚇 🤔
Kirill Cherkashin
Kirill Cherkashin

💻
Klaus Meinhardt
Klaus Meinhardt

💻 ⚠️
Johannes Chorzempa
Johannes Chorzempa

📖
Rebecca Stevens
Rebecca Stevens

🐛 💻 📖 📆 ⚠️ 🔧 🚇 🚧 🤔
@@ -83,6 +85,6 @@ Many thanks to [@ajafff](https://github.com/ajafff) for creating the original [` -> 💙 This package is templated from [@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg)'s [template-typescript-node-package](https://github.com/JoshuaKGoldberg/template-typescript-node-package). +> 💙 This package is based on [@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg)'s [create-typescript-app](https://github.com/JoshuaKGoldberg/create-typescript-app). > _"My tools! I have to have my tools!" - Dennis Reynolds_ diff --git a/node_modules/ts-api-utils/lib/index.cjs b/node_modules/ts-api-utils/lib/index.cjs index 92e32e5cb7..2ed64ec385 100644 --- a/node_modules/ts-api-utils/lib/index.cjs +++ b/node_modules/ts-api-utils/lib/index.cjs @@ -26,12 +26,39 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __accessCheck = (obj, member, msg) => { + if (!member.has(obj)) + throw TypeError("Cannot " + msg); +}; +var __privateGet = (obj, member, getter) => { + __accessCheck(obj, member, "read from private field"); + return getter ? getter.call(obj) : member.get(obj); +}; +var __privateAdd = (obj, member, value) => { + if (member.has(obj)) + throw TypeError("Cannot add the same private member more than once"); + member instanceof WeakSet ? member.add(obj) : member.set(obj, value); +}; +var __privateSet = (obj, member, value, setter) => { + __accessCheck(obj, member, "write to private field"); + setter ? setter.call(obj, value) : member.set(obj, value); + return value; +}; +var __privateMethod = (obj, member, method) => { + __accessCheck(obj, member, "access private method"); + return method; +}; // src/index.ts var src_exports = {}; __export(src_exports, { + AccessKind: () => AccessKind, + DeclarationDomain: () => DeclarationDomain, + UsageDomain: () => UsageDomain, + collectVariableUsage: () => collectVariableUsage, forEachComment: () => forEachComment, forEachToken: () => forEachToken, + getAccessKind: () => getAccessKind, getCallSignaturesOfType: () => getCallSignaturesOfType, getPropertyOfType: () => getPropertyOfType, getWellKnownSymbolPropertyOfType: () => getWellKnownSymbolPropertyOfType, @@ -217,6 +244,7 @@ __export(src_exports, { isVariableLikeDeclaration: () => isVariableLikeDeclaration, isVoidKeyword: () => isVoidKeyword, symbolHasReadonlyDeclaration: () => symbolHasReadonlyDeclaration, + typeParts: () => typeParts, unionTypeParts: () => unionTypeParts }); module.exports = __toCommonJS(src_exports); @@ -240,11 +268,13 @@ function forEachToken(node, callback, sourceFile = node.getSourceFile()) { node = children[0]; continue; } - for (let i = children.length - 1; i >= 0; --i) + for (let i = children.length - 1; i >= 0; --i) { queue.push(children[i]); + } } - if (queue.length === 0) + if (queue.length === 0) { break; + } node = queue.pop(); } } @@ -279,26 +309,29 @@ function forEachComment(node, callback, sourceFile = node.getSourceFile()) { return forEachToken( node, (token) => { - if (token.pos === token.end) + if (token.pos === token.end) { return; - if (token.kind !== import_typescript2.default.SyntaxKind.JsxText) + } + if (token.kind !== import_typescript2.default.SyntaxKind.JsxText) { import_typescript2.default.forEachLeadingCommentRange( fullText, // skip shebang at position 0 token.pos === 0 ? (import_typescript2.default.getShebang(fullText) ?? "").length : token.pos, commentCallback ); - if (notJsx || canHaveTrailingTrivia(token)) + } + if (notJsx || canHaveTrailingTrivia(token)) { return import_typescript2.default.forEachTrailingCommentRange( fullText, token.end, commentCallback ); + } }, sourceFile ); function commentCallback(pos, end, kind) { - callback(fullText, { pos, end, kind }); + callback(fullText, { end, kind, pos }); } } @@ -311,17 +344,11 @@ function isCompilerOptionEnabled(options, option) { case "emitDeclarationOnly": return options[option] === true && isCompilerOptionEnabled(options, "declaration"); case "declaration": - return ( - // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing - options.declaration || isCompilerOptionEnabled(options, "composite") - ); + return options.declaration || isCompilerOptionEnabled(options, "composite"); case "incremental": return options.incremental === void 0 ? isCompilerOptionEnabled(options, "composite") : options.incremental; case "skipDefaultLibCheck": - return ( - // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing - options.skipDefaultLibCheck || isCompilerOptionEnabled(options, "skipLibCheck") - ); + return options.skipDefaultLibCheck || isCompilerOptionEnabled(options, "skipLibCheck"); case "suppressImplicitAnyIndexErrors": return options.suppressImplicitAnyIndexErrors === true && isCompilerOptionEnabled(options, "noImplicitAny"); case "allowSyntheticDefaultImports": @@ -368,615 +395,750 @@ var isTypeFlagSet = isFlagSetOnObject; // src/modifiers.ts function includesModifier(modifiers, ...kinds) { - if (modifiers === void 0) + if (modifiers === void 0) { return false; - for (const modifier of modifiers) - if (kinds.includes(modifier.kind)) + } + for (const modifier of modifiers) { + if (kinds.includes(modifier.kind)) { return true; + } + } return false; } +// src/nodes/access.ts +var import_typescript6 = __toESM(require("typescript"), 1); + +// src/syntax.ts +var import_typescript5 = __toESM(require("typescript"), 1); +function isAssignmentKind(kind) { + return kind >= import_typescript5.default.SyntaxKind.FirstAssignment && kind <= import_typescript5.default.SyntaxKind.LastAssignment; +} +function isNumericPropertyName(name) { + return String(+name) === name; +} +function charSize(ch) { + return ch >= 65536 ? 2 : 1; +} +function isValidPropertyAccess(text, languageVersion = import_typescript5.default.ScriptTarget.Latest) { + if (text.length === 0) { + return false; + } + let ch = text.codePointAt(0); + if (!import_typescript5.default.isIdentifierStart(ch, languageVersion)) { + return false; + } + for (let i = charSize(ch); i < text.length; i += charSize(ch)) { + ch = text.codePointAt(i); + if (!import_typescript5.default.isIdentifierPart(ch, languageVersion)) { + return false; + } + } + return true; +} + +// src/nodes/access.ts +var AccessKind = /* @__PURE__ */ ((AccessKind2) => { + AccessKind2[AccessKind2["None"] = 0] = "None"; + AccessKind2[AccessKind2["Read"] = 1] = "Read"; + AccessKind2[AccessKind2["Write"] = 2] = "Write"; + AccessKind2[AccessKind2["Delete"] = 4] = "Delete"; + AccessKind2[AccessKind2["ReadWrite"] = 3] = "ReadWrite"; + return AccessKind2; +})(AccessKind || {}); +function getAccessKind(node) { + const parent = node.parent; + switch (parent.kind) { + case import_typescript6.default.SyntaxKind.DeleteExpression: + return 4 /* Delete */; + case import_typescript6.default.SyntaxKind.PostfixUnaryExpression: + return 3 /* ReadWrite */; + case import_typescript6.default.SyntaxKind.PrefixUnaryExpression: + return parent.operator === import_typescript6.default.SyntaxKind.PlusPlusToken || parent.operator === import_typescript6.default.SyntaxKind.MinusMinusToken ? 3 /* ReadWrite */ : 1 /* Read */; + case import_typescript6.default.SyntaxKind.BinaryExpression: + return parent.right === node ? 1 /* Read */ : !isAssignmentKind(parent.operatorToken.kind) ? 1 /* Read */ : parent.operatorToken.kind === import_typescript6.default.SyntaxKind.EqualsToken ? 2 /* Write */ : 3 /* ReadWrite */; + case import_typescript6.default.SyntaxKind.ShorthandPropertyAssignment: + return parent.objectAssignmentInitializer === node ? 1 /* Read */ : isInDestructuringAssignment(parent) ? 2 /* Write */ : 1 /* Read */; + case import_typescript6.default.SyntaxKind.PropertyAssignment: + return parent.name === node ? 0 /* None */ : isInDestructuringAssignment(parent) ? 2 /* Write */ : 1 /* Read */; + case import_typescript6.default.SyntaxKind.ArrayLiteralExpression: + case import_typescript6.default.SyntaxKind.SpreadElement: + case import_typescript6.default.SyntaxKind.SpreadAssignment: + return isInDestructuringAssignment( + parent + ) ? 2 /* Write */ : 1 /* Read */; + case import_typescript6.default.SyntaxKind.ParenthesizedExpression: + case import_typescript6.default.SyntaxKind.NonNullExpression: + case import_typescript6.default.SyntaxKind.TypeAssertionExpression: + case import_typescript6.default.SyntaxKind.AsExpression: + return getAccessKind(parent); + case import_typescript6.default.SyntaxKind.ForOfStatement: + case import_typescript6.default.SyntaxKind.ForInStatement: + return parent.initializer === node ? 2 /* Write */ : 1 /* Read */; + case import_typescript6.default.SyntaxKind.ExpressionWithTypeArguments: + return parent.parent.token === import_typescript6.default.SyntaxKind.ExtendsKeyword && parent.parent.parent.kind !== import_typescript6.default.SyntaxKind.InterfaceDeclaration ? 1 /* Read */ : 0 /* None */; + case import_typescript6.default.SyntaxKind.ComputedPropertyName: + case import_typescript6.default.SyntaxKind.ExpressionStatement: + case import_typescript6.default.SyntaxKind.TypeOfExpression: + case import_typescript6.default.SyntaxKind.ElementAccessExpression: + case import_typescript6.default.SyntaxKind.ForStatement: + case import_typescript6.default.SyntaxKind.IfStatement: + case import_typescript6.default.SyntaxKind.DoStatement: + case import_typescript6.default.SyntaxKind.WhileStatement: + case import_typescript6.default.SyntaxKind.SwitchStatement: + case import_typescript6.default.SyntaxKind.WithStatement: + case import_typescript6.default.SyntaxKind.ThrowStatement: + case import_typescript6.default.SyntaxKind.CallExpression: + case import_typescript6.default.SyntaxKind.NewExpression: + case import_typescript6.default.SyntaxKind.TaggedTemplateExpression: + case import_typescript6.default.SyntaxKind.JsxExpression: + case import_typescript6.default.SyntaxKind.Decorator: + case import_typescript6.default.SyntaxKind.TemplateSpan: + case import_typescript6.default.SyntaxKind.JsxOpeningElement: + case import_typescript6.default.SyntaxKind.JsxSelfClosingElement: + case import_typescript6.default.SyntaxKind.JsxSpreadAttribute: + case import_typescript6.default.SyntaxKind.VoidExpression: + case import_typescript6.default.SyntaxKind.ReturnStatement: + case import_typescript6.default.SyntaxKind.AwaitExpression: + case import_typescript6.default.SyntaxKind.YieldExpression: + case import_typescript6.default.SyntaxKind.ConditionalExpression: + case import_typescript6.default.SyntaxKind.CaseClause: + case import_typescript6.default.SyntaxKind.JsxElement: + return 1 /* Read */; + case import_typescript6.default.SyntaxKind.ArrowFunction: + return parent.body === node ? 1 /* Read */ : 2 /* Write */; + case import_typescript6.default.SyntaxKind.PropertyDeclaration: + case import_typescript6.default.SyntaxKind.VariableDeclaration: + case import_typescript6.default.SyntaxKind.Parameter: + case import_typescript6.default.SyntaxKind.EnumMember: + case import_typescript6.default.SyntaxKind.BindingElement: + case import_typescript6.default.SyntaxKind.JsxAttribute: + return parent.initializer === node ? 1 /* Read */ : 0 /* None */; + case import_typescript6.default.SyntaxKind.PropertyAccessExpression: + return parent.expression === node ? 1 /* Read */ : 0 /* None */; + case import_typescript6.default.SyntaxKind.ExportAssignment: + return parent.isExportEquals ? 1 /* Read */ : 0 /* None */; + } + return 0 /* None */; +} +function isInDestructuringAssignment(node) { + switch (node.kind) { + case import_typescript6.default.SyntaxKind.ShorthandPropertyAssignment: + if (node.objectAssignmentInitializer !== void 0) { + return true; + } + case import_typescript6.default.SyntaxKind.PropertyAssignment: + case import_typescript6.default.SyntaxKind.SpreadAssignment: + node = node.parent; + break; + case import_typescript6.default.SyntaxKind.SpreadElement: + if (node.parent.kind !== import_typescript6.default.SyntaxKind.ArrayLiteralExpression) { + return false; + } + node = node.parent; + } + while (true) { + switch (node.parent.kind) { + case import_typescript6.default.SyntaxKind.BinaryExpression: + return node.parent.left === node && node.parent.operatorToken.kind === import_typescript6.default.SyntaxKind.EqualsToken; + case import_typescript6.default.SyntaxKind.ForOfStatement: + return node.parent.initializer === node; + case import_typescript6.default.SyntaxKind.ArrayLiteralExpression: + case import_typescript6.default.SyntaxKind.ObjectLiteralExpression: + node = node.parent; + break; + case import_typescript6.default.SyntaxKind.SpreadAssignment: + case import_typescript6.default.SyntaxKind.PropertyAssignment: + node = node.parent.parent; + break; + case import_typescript6.default.SyntaxKind.SpreadElement: + if (node.parent.parent.kind !== import_typescript6.default.SyntaxKind.ArrayLiteralExpression) { + return false; + } + node = node.parent.parent; + break; + default: + return false; + } + } +} + // src/nodes/typeGuards/compound.ts -var import_typescript8 = __toESM(require("typescript"), 1); +var import_typescript10 = __toESM(require("typescript"), 1); // src/nodes/typeGuards/single.ts -var import_typescript5 = __toESM(require("typescript"), 1); +var import_typescript7 = __toESM(require("typescript"), 1); function isAbstractKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.AbstractKeyword; + return node.kind === import_typescript7.default.SyntaxKind.AbstractKeyword; } function isAccessorKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.AccessorKeyword; + return node.kind === import_typescript7.default.SyntaxKind.AccessorKeyword; } function isAnyKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.AnyKeyword; + return node.kind === import_typescript7.default.SyntaxKind.AnyKeyword; } function isAssertKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.AssertKeyword; + return node.kind === import_typescript7.default.SyntaxKind.AssertKeyword; } function isAssertsKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.AssertsKeyword; + return node.kind === import_typescript7.default.SyntaxKind.AssertsKeyword; } function isAsyncKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.AsyncKeyword; + return node.kind === import_typescript7.default.SyntaxKind.AsyncKeyword; } function isAwaitKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.AwaitKeyword; + return node.kind === import_typescript7.default.SyntaxKind.AwaitKeyword; } function isBigIntKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.BigIntKeyword; + return node.kind === import_typescript7.default.SyntaxKind.BigIntKeyword; } function isBooleanKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.BooleanKeyword; + return node.kind === import_typescript7.default.SyntaxKind.BooleanKeyword; } function isColonToken(node) { - return node.kind === import_typescript5.default.SyntaxKind.ColonToken; + return node.kind === import_typescript7.default.SyntaxKind.ColonToken; } function isConstKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.ConstKeyword; + return node.kind === import_typescript7.default.SyntaxKind.ConstKeyword; } function isDeclareKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.DeclareKeyword; + return node.kind === import_typescript7.default.SyntaxKind.DeclareKeyword; } function isDefaultKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.DefaultKeyword; + return node.kind === import_typescript7.default.SyntaxKind.DefaultKeyword; } function isDotToken(node) { - return node.kind === import_typescript5.default.SyntaxKind.DotToken; + return node.kind === import_typescript7.default.SyntaxKind.DotToken; } function isEndOfFileToken(node) { - return node.kind === import_typescript5.default.SyntaxKind.EndOfFileToken; + return node.kind === import_typescript7.default.SyntaxKind.EndOfFileToken; } function isEqualsGreaterThanToken(node) { - return node.kind === import_typescript5.default.SyntaxKind.EqualsGreaterThanToken; + return node.kind === import_typescript7.default.SyntaxKind.EqualsGreaterThanToken; } function isEqualsToken(node) { - return node.kind === import_typescript5.default.SyntaxKind.EqualsToken; + return node.kind === import_typescript7.default.SyntaxKind.EqualsToken; } function isExclamationToken(node) { - return node.kind === import_typescript5.default.SyntaxKind.ExclamationToken; + return node.kind === import_typescript7.default.SyntaxKind.ExclamationToken; } function isExportKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.ExportKeyword; + return node.kind === import_typescript7.default.SyntaxKind.ExportKeyword; } function isFalseKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.FalseKeyword; + return node.kind === import_typescript7.default.SyntaxKind.FalseKeyword; } function isFalseLiteral(node) { - return node.kind === import_typescript5.default.SyntaxKind.FalseKeyword; + return node.kind === import_typescript7.default.SyntaxKind.FalseKeyword; } function isImportExpression(node) { - return node.kind === import_typescript5.default.SyntaxKind.ImportKeyword; + return node.kind === import_typescript7.default.SyntaxKind.ImportKeyword; } function isImportKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.ImportKeyword; + return node.kind === import_typescript7.default.SyntaxKind.ImportKeyword; } function isInKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.InKeyword; + return node.kind === import_typescript7.default.SyntaxKind.InKeyword; } function isInputFiles(node) { - return node.kind === import_typescript5.default.SyntaxKind.InputFiles; + return node.kind === import_typescript7.default.SyntaxKind.InputFiles; } function isJSDocText(node) { - return node.kind === import_typescript5.default.SyntaxKind.JSDocText; + return node.kind === import_typescript7.default.SyntaxKind.JSDocText; } function isJsonMinusNumericLiteral(node) { - return node.kind === import_typescript5.default.SyntaxKind.PrefixUnaryExpression; + return node.kind === import_typescript7.default.SyntaxKind.PrefixUnaryExpression; } function isNeverKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.NeverKeyword; + return node.kind === import_typescript7.default.SyntaxKind.NeverKeyword; } function isNullKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.NullKeyword; + return node.kind === import_typescript7.default.SyntaxKind.NullKeyword; } function isNullLiteral(node) { - return node.kind === import_typescript5.default.SyntaxKind.NullKeyword; + return node.kind === import_typescript7.default.SyntaxKind.NullKeyword; } function isNumberKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.NumberKeyword; + return node.kind === import_typescript7.default.SyntaxKind.NumberKeyword; } function isObjectKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.ObjectKeyword; + return node.kind === import_typescript7.default.SyntaxKind.ObjectKeyword; } function isOutKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.OutKeyword; + return node.kind === import_typescript7.default.SyntaxKind.OutKeyword; } function isOverrideKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.OverrideKeyword; + return node.kind === import_typescript7.default.SyntaxKind.OverrideKeyword; } function isPrivateKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.PrivateKeyword; + return node.kind === import_typescript7.default.SyntaxKind.PrivateKeyword; } function isProtectedKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.ProtectedKeyword; + return node.kind === import_typescript7.default.SyntaxKind.ProtectedKeyword; } function isPublicKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.PublicKeyword; + return node.kind === import_typescript7.default.SyntaxKind.PublicKeyword; } function isQuestionDotToken(node) { - return node.kind === import_typescript5.default.SyntaxKind.QuestionDotToken; + return node.kind === import_typescript7.default.SyntaxKind.QuestionDotToken; } function isQuestionToken(node) { - return node.kind === import_typescript5.default.SyntaxKind.QuestionToken; + return node.kind === import_typescript7.default.SyntaxKind.QuestionToken; } function isReadonlyKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.ReadonlyKeyword; + return node.kind === import_typescript7.default.SyntaxKind.ReadonlyKeyword; } function isStaticKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.StaticKeyword; + return node.kind === import_typescript7.default.SyntaxKind.StaticKeyword; } function isStringKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.StringKeyword; + return node.kind === import_typescript7.default.SyntaxKind.StringKeyword; } function isSuperExpression(node) { - return node.kind === import_typescript5.default.SyntaxKind.SuperKeyword; + return node.kind === import_typescript7.default.SyntaxKind.SuperKeyword; } function isSuperKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.SuperKeyword; + return node.kind === import_typescript7.default.SyntaxKind.SuperKeyword; } function isSymbolKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.SymbolKeyword; + return node.kind === import_typescript7.default.SyntaxKind.SymbolKeyword; } function isSyntaxList(node) { - return node.kind === import_typescript5.default.SyntaxKind.SyntaxList; + return node.kind === import_typescript7.default.SyntaxKind.SyntaxList; } function isThisExpression(node) { - return node.kind === import_typescript5.default.SyntaxKind.ThisKeyword; + return node.kind === import_typescript7.default.SyntaxKind.ThisKeyword; } function isThisKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.ThisKeyword; + return node.kind === import_typescript7.default.SyntaxKind.ThisKeyword; } function isTrueKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.TrueKeyword; + return node.kind === import_typescript7.default.SyntaxKind.TrueKeyword; } function isTrueLiteral(node) { - return node.kind === import_typescript5.default.SyntaxKind.TrueKeyword; + return node.kind === import_typescript7.default.SyntaxKind.TrueKeyword; } function isUndefinedKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.UndefinedKeyword; + return node.kind === import_typescript7.default.SyntaxKind.UndefinedKeyword; } function isUnknownKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.UnknownKeyword; + return node.kind === import_typescript7.default.SyntaxKind.UnknownKeyword; } function isUnparsedPrologue(node) { - return node.kind === import_typescript5.default.SyntaxKind.UnparsedPrologue; + return node.kind === import_typescript7.default.SyntaxKind.UnparsedPrologue; } function isUnparsedSyntheticReference(node) { - return node.kind === import_typescript5.default.SyntaxKind.UnparsedSyntheticReference; + return node.kind === import_typescript7.default.SyntaxKind.UnparsedSyntheticReference; } function isVoidKeyword(node) { - return node.kind === import_typescript5.default.SyntaxKind.VoidKeyword; + return node.kind === import_typescript7.default.SyntaxKind.VoidKeyword; } // src/nodes/typeGuards/union.ts -var import_typescript7 = __toESM(require("typescript"), 1); +var import_typescript9 = __toESM(require("typescript"), 1); // src/utils.ts -var import_typescript6 = __toESM(require("typescript"), 1); -var [tsMajor, tsMinor] = import_typescript6.default.versionMajorMinor.split(".").map((raw) => Number.parseInt(raw, 10)); +var import_typescript8 = __toESM(require("typescript"), 1); +var [tsMajor, tsMinor] = import_typescript8.default.versionMajorMinor.split(".").map((raw) => Number.parseInt(raw, 10)); function isTsVersionAtLeast(major, minor = 0) { return tsMajor > major || tsMajor === major && tsMinor >= minor; } // src/nodes/typeGuards/union.ts function isAccessExpression(node) { - return import_typescript7.default.isPropertyAccessExpression(node) || import_typescript7.default.isElementAccessExpression(node); + return import_typescript9.default.isPropertyAccessExpression(node) || import_typescript9.default.isElementAccessExpression(node); } function isAccessibilityModifier(node) { return isPublicKeyword(node) || isPrivateKeyword(node) || isProtectedKeyword(node); } function isAccessorDeclaration(node) { - return import_typescript7.default.isGetAccessorDeclaration(node) || import_typescript7.default.isSetAccessorDeclaration(node); + return import_typescript9.default.isGetAccessorDeclaration(node) || import_typescript9.default.isSetAccessorDeclaration(node); } function isArrayBindingElement(node) { - return import_typescript7.default.isBindingElement(node) || import_typescript7.default.isOmittedExpression(node); + return import_typescript9.default.isBindingElement(node) || import_typescript9.default.isOmittedExpression(node); } function isArrayBindingOrAssignmentPattern(node) { - return import_typescript7.default.isArrayBindingPattern(node) || import_typescript7.default.isArrayLiteralExpression(node); + return import_typescript9.default.isArrayBindingPattern(node) || import_typescript9.default.isArrayLiteralExpression(node); } function isAssignmentPattern(node) { - return import_typescript7.default.isObjectLiteralExpression(node) || import_typescript7.default.isArrayLiteralExpression(node); + return import_typescript9.default.isObjectLiteralExpression(node) || import_typescript9.default.isArrayLiteralExpression(node); } function isBindingOrAssignmentElementRestIndicator(node) { - if (import_typescript7.default.isSpreadElement(node) || import_typescript7.default.isSpreadAssignment(node)) { + if (import_typescript9.default.isSpreadElement(node) || import_typescript9.default.isSpreadAssignment(node)) { return true; } if (isTsVersionAtLeast(4, 4)) { - return import_typescript7.default.isDotDotDotToken(node); + return import_typescript9.default.isDotDotDotToken(node); } return false; } function isBindingOrAssignmentElementTarget(node) { - return isBindingOrAssignmentPattern(node) || import_typescript7.default.isIdentifier(node) || import_typescript7.default.isPropertyAccessExpression(node) || import_typescript7.default.isElementAccessExpression(node) || import_typescript7.default.isOmittedExpression(node); + return isBindingOrAssignmentPattern(node) || import_typescript9.default.isIdentifier(node) || import_typescript9.default.isPropertyAccessExpression(node) || import_typescript9.default.isElementAccessExpression(node) || import_typescript9.default.isOmittedExpression(node); } function isBindingOrAssignmentPattern(node) { return isObjectBindingOrAssignmentPattern(node) || isArrayBindingOrAssignmentPattern(node); } function isBindingPattern(node) { - return import_typescript7.default.isObjectBindingPattern(node) || import_typescript7.default.isArrayBindingPattern(node); + return import_typescript9.default.isObjectBindingPattern(node) || import_typescript9.default.isArrayBindingPattern(node); } function isBlockLike(node) { - return import_typescript7.default.isSourceFile(node) || import_typescript7.default.isBlock(node) || import_typescript7.default.isModuleBlock(node) || import_typescript7.default.isCaseOrDefaultClause(node); + return import_typescript9.default.isSourceFile(node) || import_typescript9.default.isBlock(node) || import_typescript9.default.isModuleBlock(node) || import_typescript9.default.isCaseOrDefaultClause(node); } function isBooleanLiteral(node) { return isTrueLiteral(node) || isFalseLiteral(node); } function isClassLikeDeclaration(node) { - return import_typescript7.default.isClassDeclaration(node) || import_typescript7.default.isClassExpression(node); + return import_typescript9.default.isClassDeclaration(node) || import_typescript9.default.isClassExpression(node); } function isClassMemberModifier(node) { return isAccessibilityModifier(node) || isReadonlyKeyword(node) || isStaticKeyword(node) || isAccessorKeyword(node); } function isDeclarationName(node) { - return import_typescript7.default.isIdentifier(node) || import_typescript7.default.isPrivateIdentifier(node) || import_typescript7.default.isStringLiteralLike(node) || import_typescript7.default.isNumericLiteral(node) || import_typescript7.default.isComputedPropertyName(node) || import_typescript7.default.isElementAccessExpression(node) || isBindingPattern(node) || isEntityNameExpression(node); + return import_typescript9.default.isIdentifier(node) || import_typescript9.default.isPrivateIdentifier(node) || import_typescript9.default.isStringLiteralLike(node) || import_typescript9.default.isNumericLiteral(node) || import_typescript9.default.isComputedPropertyName(node) || import_typescript9.default.isElementAccessExpression(node) || isBindingPattern(node) || isEntityNameExpression(node); } function isDeclarationWithTypeParameterChildren(node) { return isSignatureDeclaration(node) || // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 - isClassLikeDeclaration(node) || import_typescript7.default.isInterfaceDeclaration(node) || import_typescript7.default.isTypeAliasDeclaration(node) || import_typescript7.default.isJSDocTemplateTag(node); + isClassLikeDeclaration(node) || import_typescript9.default.isInterfaceDeclaration(node) || import_typescript9.default.isTypeAliasDeclaration(node) || import_typescript9.default.isJSDocTemplateTag(node); } function isDeclarationWithTypeParameters(node) { - return isDeclarationWithTypeParameterChildren(node) || import_typescript7.default.isJSDocTypedefTag(node) || import_typescript7.default.isJSDocCallbackTag(node) || import_typescript7.default.isJSDocSignature(node); + return isDeclarationWithTypeParameterChildren(node) || import_typescript9.default.isJSDocTypedefTag(node) || import_typescript9.default.isJSDocCallbackTag(node) || import_typescript9.default.isJSDocSignature(node); } function isDestructuringPattern(node) { - return isBindingPattern(node) || import_typescript7.default.isObjectLiteralExpression(node) || import_typescript7.default.isArrayLiteralExpression(node); + return isBindingPattern(node) || import_typescript9.default.isObjectLiteralExpression(node) || import_typescript9.default.isArrayLiteralExpression(node); } function isEntityNameExpression(node) { - return import_typescript7.default.isIdentifier(node) || isPropertyAccessEntityNameExpression(node); + return import_typescript9.default.isIdentifier(node) || isPropertyAccessEntityNameExpression(node); } function isEntityNameOrEntityNameExpression(node) { - return import_typescript7.default.isEntityName(node) || isEntityNameExpression(node); + return import_typescript9.default.isEntityName(node) || isEntityNameExpression(node); } function isForInOrOfStatement(node) { - return import_typescript7.default.isForInStatement(node) || import_typescript7.default.isForOfStatement(node); + return import_typescript9.default.isForInStatement(node) || import_typescript9.default.isForOfStatement(node); } function isFunctionLikeDeclaration(node) { - return import_typescript7.default.isFunctionDeclaration(node) || import_typescript7.default.isMethodDeclaration(node) || import_typescript7.default.isGetAccessorDeclaration(node) || import_typescript7.default.isSetAccessorDeclaration(node) || import_typescript7.default.isConstructorDeclaration(node) || import_typescript7.default.isFunctionExpression(node) || import_typescript7.default.isArrowFunction(node); + return import_typescript9.default.isFunctionDeclaration(node) || import_typescript9.default.isMethodDeclaration(node) || import_typescript9.default.isGetAccessorDeclaration(node) || import_typescript9.default.isSetAccessorDeclaration(node) || import_typescript9.default.isConstructorDeclaration(node) || import_typescript9.default.isFunctionExpression(node) || import_typescript9.default.isArrowFunction(node); } function hasDecorators(node) { - return import_typescript7.default.isParameter(node) || import_typescript7.default.isPropertyDeclaration(node) || import_typescript7.default.isMethodDeclaration(node) || import_typescript7.default.isGetAccessorDeclaration(node) || import_typescript7.default.isSetAccessorDeclaration(node) || import_typescript7.default.isClassExpression(node) || import_typescript7.default.isClassDeclaration(node); + return import_typescript9.default.isParameter(node) || import_typescript9.default.isPropertyDeclaration(node) || import_typescript9.default.isMethodDeclaration(node) || import_typescript9.default.isGetAccessorDeclaration(node) || import_typescript9.default.isSetAccessorDeclaration(node) || import_typescript9.default.isClassExpression(node) || import_typescript9.default.isClassDeclaration(node); } function hasExpressionInitializer(node) { - return import_typescript7.default.isVariableDeclaration(node) || import_typescript7.default.isParameter(node) || import_typescript7.default.isBindingElement(node) || import_typescript7.default.isPropertyDeclaration(node) || import_typescript7.default.isPropertyAssignment(node) || import_typescript7.default.isEnumMember(node); + return import_typescript9.default.isVariableDeclaration(node) || import_typescript9.default.isParameter(node) || import_typescript9.default.isBindingElement(node) || import_typescript9.default.isPropertyDeclaration(node) || import_typescript9.default.isPropertyAssignment(node) || import_typescript9.default.isEnumMember(node); } function hasInitializer(node) { - return hasExpressionInitializer(node) || import_typescript7.default.isForStatement(node) || import_typescript7.default.isForInStatement(node) || import_typescript7.default.isForOfStatement(node) || import_typescript7.default.isJsxAttribute(node); + return hasExpressionInitializer(node) || import_typescript9.default.isForStatement(node) || import_typescript9.default.isForInStatement(node) || import_typescript9.default.isForOfStatement(node) || import_typescript9.default.isJsxAttribute(node); } function hasJSDoc(node) { if ( // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 - isAccessorDeclaration(node) || import_typescript7.default.isArrowFunction(node) || import_typescript7.default.isBlock(node) || import_typescript7.default.isBreakStatement(node) || import_typescript7.default.isCallSignatureDeclaration(node) || import_typescript7.default.isCaseClause(node) || // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 - isClassLikeDeclaration(node) || import_typescript7.default.isConstructorDeclaration(node) || import_typescript7.default.isConstructorTypeNode(node) || import_typescript7.default.isConstructSignatureDeclaration(node) || import_typescript7.default.isContinueStatement(node) || import_typescript7.default.isDebuggerStatement(node) || import_typescript7.default.isDoStatement(node) || import_typescript7.default.isEmptyStatement(node) || isEndOfFileToken(node) || import_typescript7.default.isEnumDeclaration(node) || import_typescript7.default.isEnumMember(node) || import_typescript7.default.isExportAssignment(node) || import_typescript7.default.isExportDeclaration(node) || import_typescript7.default.isExportSpecifier(node) || import_typescript7.default.isExpressionStatement(node) || import_typescript7.default.isForInStatement(node) || import_typescript7.default.isForOfStatement(node) || import_typescript7.default.isForStatement(node) || import_typescript7.default.isFunctionDeclaration(node) || import_typescript7.default.isFunctionExpression(node) || import_typescript7.default.isFunctionTypeNode(node) || import_typescript7.default.isIfStatement(node) || import_typescript7.default.isImportDeclaration(node) || import_typescript7.default.isImportEqualsDeclaration(node) || import_typescript7.default.isIndexSignatureDeclaration(node) || import_typescript7.default.isInterfaceDeclaration(node) || import_typescript7.default.isJSDocFunctionType(node) || import_typescript7.default.isLabeledStatement(node) || import_typescript7.default.isMethodDeclaration(node) || import_typescript7.default.isMethodSignature(node) || import_typescript7.default.isModuleDeclaration(node) || import_typescript7.default.isNamedTupleMember(node) || import_typescript7.default.isNamespaceExportDeclaration(node) || import_typescript7.default.isParameter(node) || import_typescript7.default.isParenthesizedExpression(node) || import_typescript7.default.isPropertyAssignment(node) || import_typescript7.default.isPropertyDeclaration(node) || import_typescript7.default.isPropertySignature(node) || import_typescript7.default.isReturnStatement(node) || import_typescript7.default.isShorthandPropertyAssignment(node) || import_typescript7.default.isSpreadAssignment(node) || import_typescript7.default.isSwitchStatement(node) || import_typescript7.default.isThrowStatement(node) || import_typescript7.default.isTryStatement(node) || import_typescript7.default.isTypeAliasDeclaration(node) || import_typescript7.default.isVariableDeclaration(node) || import_typescript7.default.isVariableStatement(node) || import_typescript7.default.isWhileStatement(node) || import_typescript7.default.isWithStatement(node) + isAccessorDeclaration(node) || import_typescript9.default.isArrowFunction(node) || import_typescript9.default.isBlock(node) || import_typescript9.default.isBreakStatement(node) || import_typescript9.default.isCallSignatureDeclaration(node) || import_typescript9.default.isCaseClause(node) || // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 + isClassLikeDeclaration(node) || import_typescript9.default.isConstructorDeclaration(node) || import_typescript9.default.isConstructorTypeNode(node) || import_typescript9.default.isConstructSignatureDeclaration(node) || import_typescript9.default.isContinueStatement(node) || import_typescript9.default.isDebuggerStatement(node) || import_typescript9.default.isDoStatement(node) || import_typescript9.default.isEmptyStatement(node) || isEndOfFileToken(node) || import_typescript9.default.isEnumDeclaration(node) || import_typescript9.default.isEnumMember(node) || import_typescript9.default.isExportAssignment(node) || import_typescript9.default.isExportDeclaration(node) || import_typescript9.default.isExportSpecifier(node) || import_typescript9.default.isExpressionStatement(node) || import_typescript9.default.isForInStatement(node) || import_typescript9.default.isForOfStatement(node) || import_typescript9.default.isForStatement(node) || import_typescript9.default.isFunctionDeclaration(node) || import_typescript9.default.isFunctionExpression(node) || import_typescript9.default.isFunctionTypeNode(node) || import_typescript9.default.isIfStatement(node) || import_typescript9.default.isImportDeclaration(node) || import_typescript9.default.isImportEqualsDeclaration(node) || import_typescript9.default.isIndexSignatureDeclaration(node) || import_typescript9.default.isInterfaceDeclaration(node) || import_typescript9.default.isJSDocFunctionType(node) || import_typescript9.default.isLabeledStatement(node) || import_typescript9.default.isMethodDeclaration(node) || import_typescript9.default.isMethodSignature(node) || import_typescript9.default.isModuleDeclaration(node) || import_typescript9.default.isNamedTupleMember(node) || import_typescript9.default.isNamespaceExportDeclaration(node) || import_typescript9.default.isParameter(node) || import_typescript9.default.isParenthesizedExpression(node) || import_typescript9.default.isPropertyAssignment(node) || import_typescript9.default.isPropertyDeclaration(node) || import_typescript9.default.isPropertySignature(node) || import_typescript9.default.isReturnStatement(node) || import_typescript9.default.isShorthandPropertyAssignment(node) || import_typescript9.default.isSpreadAssignment(node) || import_typescript9.default.isSwitchStatement(node) || import_typescript9.default.isThrowStatement(node) || import_typescript9.default.isTryStatement(node) || import_typescript9.default.isTypeAliasDeclaration(node) || import_typescript9.default.isVariableDeclaration(node) || import_typescript9.default.isVariableStatement(node) || import_typescript9.default.isWhileStatement(node) || import_typescript9.default.isWithStatement(node) ) { return true; } - if (isTsVersionAtLeast(4, 4) && import_typescript7.default.isClassStaticBlockDeclaration(node)) { + if (isTsVersionAtLeast(4, 4) && import_typescript9.default.isClassStaticBlockDeclaration(node)) { return true; } - if (isTsVersionAtLeast(5, 0) && (import_typescript7.default.isBinaryExpression(node) || import_typescript7.default.isElementAccessExpression(node) || import_typescript7.default.isIdentifier(node) || import_typescript7.default.isJSDocSignature(node) || import_typescript7.default.isObjectLiteralExpression(node) || import_typescript7.default.isPropertyAccessExpression(node) || import_typescript7.default.isTypeParameterDeclaration(node))) { + if (isTsVersionAtLeast(5, 0) && (import_typescript9.default.isBinaryExpression(node) || import_typescript9.default.isElementAccessExpression(node) || import_typescript9.default.isIdentifier(node) || import_typescript9.default.isJSDocSignature(node) || import_typescript9.default.isObjectLiteralExpression(node) || import_typescript9.default.isPropertyAccessExpression(node) || import_typescript9.default.isTypeParameterDeclaration(node))) { return true; } return false; } function hasModifiers(node) { - return import_typescript7.default.isTypeParameterDeclaration(node) || import_typescript7.default.isParameter(node) || import_typescript7.default.isConstructorTypeNode(node) || import_typescript7.default.isPropertySignature(node) || import_typescript7.default.isPropertyDeclaration(node) || import_typescript7.default.isMethodSignature(node) || import_typescript7.default.isMethodDeclaration(node) || import_typescript7.default.isConstructorDeclaration(node) || import_typescript7.default.isGetAccessorDeclaration(node) || import_typescript7.default.isSetAccessorDeclaration(node) || import_typescript7.default.isIndexSignatureDeclaration(node) || import_typescript7.default.isFunctionExpression(node) || import_typescript7.default.isArrowFunction(node) || import_typescript7.default.isClassExpression(node) || import_typescript7.default.isVariableStatement(node) || import_typescript7.default.isFunctionDeclaration(node) || import_typescript7.default.isClassDeclaration(node) || import_typescript7.default.isInterfaceDeclaration(node) || import_typescript7.default.isTypeAliasDeclaration(node) || import_typescript7.default.isEnumDeclaration(node) || import_typescript7.default.isModuleDeclaration(node) || import_typescript7.default.isImportEqualsDeclaration(node) || import_typescript7.default.isImportDeclaration(node) || import_typescript7.default.isExportAssignment(node) || import_typescript7.default.isExportDeclaration(node); + return import_typescript9.default.isTypeParameterDeclaration(node) || import_typescript9.default.isParameter(node) || import_typescript9.default.isConstructorTypeNode(node) || import_typescript9.default.isPropertySignature(node) || import_typescript9.default.isPropertyDeclaration(node) || import_typescript9.default.isMethodSignature(node) || import_typescript9.default.isMethodDeclaration(node) || import_typescript9.default.isConstructorDeclaration(node) || import_typescript9.default.isGetAccessorDeclaration(node) || import_typescript9.default.isSetAccessorDeclaration(node) || import_typescript9.default.isIndexSignatureDeclaration(node) || import_typescript9.default.isFunctionExpression(node) || import_typescript9.default.isArrowFunction(node) || import_typescript9.default.isClassExpression(node) || import_typescript9.default.isVariableStatement(node) || import_typescript9.default.isFunctionDeclaration(node) || import_typescript9.default.isClassDeclaration(node) || import_typescript9.default.isInterfaceDeclaration(node) || import_typescript9.default.isTypeAliasDeclaration(node) || import_typescript9.default.isEnumDeclaration(node) || import_typescript9.default.isModuleDeclaration(node) || import_typescript9.default.isImportEqualsDeclaration(node) || import_typescript9.default.isImportDeclaration(node) || import_typescript9.default.isExportAssignment(node) || import_typescript9.default.isExportDeclaration(node); } function hasType(node) { - return isSignatureDeclaration(node) || import_typescript7.default.isVariableDeclaration(node) || import_typescript7.default.isParameter(node) || import_typescript7.default.isPropertySignature(node) || import_typescript7.default.isPropertyDeclaration(node) || import_typescript7.default.isTypePredicateNode(node) || import_typescript7.default.isParenthesizedTypeNode(node) || import_typescript7.default.isTypeOperatorNode(node) || import_typescript7.default.isMappedTypeNode(node) || import_typescript7.default.isAssertionExpression(node) || import_typescript7.default.isTypeAliasDeclaration(node) || import_typescript7.default.isJSDocTypeExpression(node) || import_typescript7.default.isJSDocNonNullableType(node) || import_typescript7.default.isJSDocNullableType(node) || import_typescript7.default.isJSDocOptionalType(node) || import_typescript7.default.isJSDocVariadicType(node); + return isSignatureDeclaration(node) || import_typescript9.default.isVariableDeclaration(node) || import_typescript9.default.isParameter(node) || import_typescript9.default.isPropertySignature(node) || import_typescript9.default.isPropertyDeclaration(node) || import_typescript9.default.isTypePredicateNode(node) || import_typescript9.default.isParenthesizedTypeNode(node) || import_typescript9.default.isTypeOperatorNode(node) || import_typescript9.default.isMappedTypeNode(node) || import_typescript9.default.isAssertionExpression(node) || import_typescript9.default.isTypeAliasDeclaration(node) || import_typescript9.default.isJSDocTypeExpression(node) || import_typescript9.default.isJSDocNonNullableType(node) || import_typescript9.default.isJSDocNullableType(node) || import_typescript9.default.isJSDocOptionalType(node) || import_typescript9.default.isJSDocVariadicType(node); } function hasTypeArguments(node) { - return import_typescript7.default.isCallExpression(node) || import_typescript7.default.isNewExpression(node) || import_typescript7.default.isTaggedTemplateExpression(node) || import_typescript7.default.isJsxOpeningElement(node) || import_typescript7.default.isJsxSelfClosingElement(node); + return import_typescript9.default.isCallExpression(node) || import_typescript9.default.isNewExpression(node) || import_typescript9.default.isTaggedTemplateExpression(node) || import_typescript9.default.isJsxOpeningElement(node) || import_typescript9.default.isJsxSelfClosingElement(node); } function isJSDocComment(node) { if (isJSDocText(node)) { return true; } if (isTsVersionAtLeast(4, 4)) { - return import_typescript7.default.isJSDocLink(node) || import_typescript7.default.isJSDocLinkCode(node) || import_typescript7.default.isJSDocLinkPlain(node); + return import_typescript9.default.isJSDocLink(node) || import_typescript9.default.isJSDocLinkCode(node) || import_typescript9.default.isJSDocLinkPlain(node); } return false; } function isJSDocNamespaceBody(node) { - return import_typescript7.default.isIdentifier(node) || isJSDocNamespaceDeclaration(node); + return import_typescript9.default.isIdentifier(node) || isJSDocNamespaceDeclaration(node); } function isJSDocTypeReferencingNode(node) { - return import_typescript7.default.isJSDocVariadicType(node) || import_typescript7.default.isJSDocOptionalType(node) || import_typescript7.default.isJSDocNullableType(node) || import_typescript7.default.isJSDocNonNullableType(node); + return import_typescript9.default.isJSDocVariadicType(node) || import_typescript9.default.isJSDocOptionalType(node) || import_typescript9.default.isJSDocNullableType(node) || import_typescript9.default.isJSDocNonNullableType(node); } function isJsonObjectExpression(node) { - return import_typescript7.default.isObjectLiteralExpression(node) || import_typescript7.default.isArrayLiteralExpression(node) || isJsonMinusNumericLiteral(node) || import_typescript7.default.isNumericLiteral(node) || import_typescript7.default.isStringLiteral(node) || isBooleanLiteral(node) || isNullLiteral(node); + return import_typescript9.default.isObjectLiteralExpression(node) || import_typescript9.default.isArrayLiteralExpression(node) || isJsonMinusNumericLiteral(node) || import_typescript9.default.isNumericLiteral(node) || import_typescript9.default.isStringLiteral(node) || isBooleanLiteral(node) || isNullLiteral(node); } function isJsxAttributeLike(node) { - return import_typescript7.default.isJsxAttribute(node) || import_typescript7.default.isJsxSpreadAttribute(node); + return import_typescript9.default.isJsxAttribute(node) || import_typescript9.default.isJsxSpreadAttribute(node); } function isJsxAttributeValue(node) { - return import_typescript7.default.isStringLiteral(node) || import_typescript7.default.isJsxExpression(node) || import_typescript7.default.isJsxElement(node) || import_typescript7.default.isJsxSelfClosingElement(node) || import_typescript7.default.isJsxFragment(node); + return import_typescript9.default.isStringLiteral(node) || import_typescript9.default.isJsxExpression(node) || import_typescript9.default.isJsxElement(node) || import_typescript9.default.isJsxSelfClosingElement(node) || import_typescript9.default.isJsxFragment(node); } function isJsxChild(node) { - return import_typescript7.default.isJsxText(node) || import_typescript7.default.isJsxExpression(node) || import_typescript7.default.isJsxElement(node) || import_typescript7.default.isJsxSelfClosingElement(node) || import_typescript7.default.isJsxFragment(node); + return import_typescript9.default.isJsxText(node) || import_typescript9.default.isJsxExpression(node) || import_typescript9.default.isJsxElement(node) || import_typescript9.default.isJsxSelfClosingElement(node) || import_typescript9.default.isJsxFragment(node); } function isJsxTagNameExpression(node) { - return import_typescript7.default.isIdentifier(node) || isThisExpression(node) || isJsxTagNamePropertyAccess(node); + return import_typescript9.default.isIdentifier(node) || isThisExpression(node) || isJsxTagNamePropertyAccess(node); } function isLiteralToken(node) { - return import_typescript7.default.isNumericLiteral(node) || import_typescript7.default.isBigIntLiteral(node) || import_typescript7.default.isStringLiteral(node) || import_typescript7.default.isJsxText(node) || import_typescript7.default.isRegularExpressionLiteral(node) || import_typescript7.default.isNoSubstitutionTemplateLiteral(node); + return import_typescript9.default.isNumericLiteral(node) || import_typescript9.default.isBigIntLiteral(node) || import_typescript9.default.isStringLiteral(node) || import_typescript9.default.isJsxText(node) || import_typescript9.default.isRegularExpressionLiteral(node) || import_typescript9.default.isNoSubstitutionTemplateLiteral(node); } function isModuleBody(node) { return isNamespaceBody(node) || isJSDocNamespaceBody(node); } function isModuleName(node) { - return import_typescript7.default.isIdentifier(node) || import_typescript7.default.isStringLiteral(node); + return import_typescript9.default.isIdentifier(node) || import_typescript9.default.isStringLiteral(node); } function isModuleReference(node) { - return import_typescript7.default.isEntityName(node) || import_typescript7.default.isExternalModuleReference(node); + return import_typescript9.default.isEntityName(node) || import_typescript9.default.isExternalModuleReference(node); } function isNamedImportBindings(node) { - return import_typescript7.default.isNamespaceImport(node) || import_typescript7.default.isNamedImports(node); + return import_typescript9.default.isNamespaceImport(node) || import_typescript9.default.isNamedImports(node); } function isNamedImportsOrExports(node) { - return import_typescript7.default.isNamedImports(node) || import_typescript7.default.isNamedExports(node); + return import_typescript9.default.isNamedImports(node) || import_typescript9.default.isNamedExports(node); } function isNamespaceBody(node) { - return import_typescript7.default.isModuleBlock(node) || isNamespaceDeclaration(node); + return import_typescript9.default.isModuleBlock(node) || isNamespaceDeclaration(node); } function isObjectBindingOrAssignmentElement(node) { - return import_typescript7.default.isBindingElement(node) || import_typescript7.default.isPropertyAssignment(node) || import_typescript7.default.isShorthandPropertyAssignment(node) || import_typescript7.default.isSpreadAssignment(node); + return import_typescript9.default.isBindingElement(node) || import_typescript9.default.isPropertyAssignment(node) || import_typescript9.default.isShorthandPropertyAssignment(node) || import_typescript9.default.isSpreadAssignment(node); } function isObjectBindingOrAssignmentPattern(node) { - return import_typescript7.default.isObjectBindingPattern(node) || import_typescript7.default.isObjectLiteralExpression(node); + return import_typescript9.default.isObjectBindingPattern(node) || import_typescript9.default.isObjectLiteralExpression(node); } function isObjectTypeDeclaration(node) { return ( // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 - isClassLikeDeclaration(node) || import_typescript7.default.isInterfaceDeclaration(node) || import_typescript7.default.isTypeLiteralNode(node) + isClassLikeDeclaration(node) || import_typescript9.default.isInterfaceDeclaration(node) || import_typescript9.default.isTypeLiteralNode(node) ); } function isParameterPropertyModifier(node) { return isAccessibilityModifier(node) || isReadonlyKeyword(node); } function isPropertyNameLiteral(node) { - return import_typescript7.default.isIdentifier(node) || import_typescript7.default.isStringLiteralLike(node) || import_typescript7.default.isNumericLiteral(node); + return import_typescript9.default.isIdentifier(node) || import_typescript9.default.isStringLiteralLike(node) || import_typescript9.default.isNumericLiteral(node); } function isPseudoLiteralToken(node) { - return import_typescript7.default.isTemplateHead(node) || import_typescript7.default.isTemplateMiddle(node) || import_typescript7.default.isTemplateTail(node); + return import_typescript9.default.isTemplateHead(node) || import_typescript9.default.isTemplateMiddle(node) || import_typescript9.default.isTemplateTail(node); } function isSignatureDeclaration(node) { - return import_typescript7.default.isCallSignatureDeclaration(node) || import_typescript7.default.isConstructSignatureDeclaration(node) || import_typescript7.default.isMethodSignature(node) || import_typescript7.default.isIndexSignatureDeclaration(node) || import_typescript7.default.isFunctionTypeNode(node) || import_typescript7.default.isConstructorTypeNode(node) || import_typescript7.default.isJSDocFunctionType(node) || import_typescript7.default.isFunctionDeclaration(node) || import_typescript7.default.isMethodDeclaration(node) || import_typescript7.default.isConstructorDeclaration(node) || // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 - isAccessorDeclaration(node) || import_typescript7.default.isFunctionExpression(node) || import_typescript7.default.isArrowFunction(node); + return import_typescript9.default.isCallSignatureDeclaration(node) || import_typescript9.default.isConstructSignatureDeclaration(node) || import_typescript9.default.isMethodSignature(node) || import_typescript9.default.isIndexSignatureDeclaration(node) || import_typescript9.default.isFunctionTypeNode(node) || import_typescript9.default.isConstructorTypeNode(node) || import_typescript9.default.isJSDocFunctionType(node) || import_typescript9.default.isFunctionDeclaration(node) || import_typescript9.default.isMethodDeclaration(node) || import_typescript9.default.isConstructorDeclaration(node) || // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 + isAccessorDeclaration(node) || import_typescript9.default.isFunctionExpression(node) || import_typescript9.default.isArrowFunction(node); } function isSuperProperty(node) { return isSuperPropertyAccessExpression(node) || isSuperElementAccessExpression(node); } function isTypeOnlyCompatibleAliasDeclaration(node) { - if (import_typescript7.default.isImportClause(node) || import_typescript7.default.isImportEqualsDeclaration(node) || import_typescript7.default.isNamespaceImport(node) || import_typescript7.default.isImportOrExportSpecifier(node)) { + if (import_typescript9.default.isImportClause(node) || import_typescript9.default.isImportEqualsDeclaration(node) || import_typescript9.default.isNamespaceImport(node) || import_typescript9.default.isImportOrExportSpecifier(node)) { return true; } - if (isTsVersionAtLeast(5, 0) && (import_typescript7.default.isExportDeclaration(node) || import_typescript7.default.isNamespaceExport(node))) { + if (isTsVersionAtLeast(5, 0) && (import_typescript9.default.isExportDeclaration(node) || import_typescript9.default.isNamespaceExport(node))) { return true; } return false; } function isTypeReferenceType(node) { - return import_typescript7.default.isTypeReferenceNode(node) || import_typescript7.default.isExpressionWithTypeArguments(node); + return import_typescript9.default.isTypeReferenceNode(node) || import_typescript9.default.isExpressionWithTypeArguments(node); } function isUnionOrIntersectionTypeNode(node) { - return import_typescript7.default.isUnionTypeNode(node) || import_typescript7.default.isIntersectionTypeNode(node); + return import_typescript9.default.isUnionTypeNode(node) || import_typescript9.default.isIntersectionTypeNode(node); } function isUnparsedSourceText(node) { - return import_typescript7.default.isUnparsedPrepend(node) || import_typescript7.default.isUnparsedTextLike(node); + return import_typescript9.default.isUnparsedPrepend(node) || import_typescript9.default.isUnparsedTextLike(node); } function isVariableLikeDeclaration(node) { - return import_typescript7.default.isVariableDeclaration(node) || import_typescript7.default.isParameter(node) || import_typescript7.default.isBindingElement(node) || import_typescript7.default.isPropertyDeclaration(node) || import_typescript7.default.isPropertyAssignment(node) || import_typescript7.default.isPropertySignature(node) || import_typescript7.default.isJsxAttribute(node) || import_typescript7.default.isShorthandPropertyAssignment(node) || import_typescript7.default.isEnumMember(node) || import_typescript7.default.isJSDocPropertyTag(node) || import_typescript7.default.isJSDocParameterTag(node); + return import_typescript9.default.isVariableDeclaration(node) || import_typescript9.default.isParameter(node) || import_typescript9.default.isBindingElement(node) || import_typescript9.default.isPropertyDeclaration(node) || import_typescript9.default.isPropertyAssignment(node) || import_typescript9.default.isPropertySignature(node) || import_typescript9.default.isJsxAttribute(node) || import_typescript9.default.isShorthandPropertyAssignment(node) || import_typescript9.default.isEnumMember(node) || import_typescript9.default.isJSDocPropertyTag(node) || import_typescript9.default.isJSDocParameterTag(node); } // src/nodes/typeGuards/compound.ts function isConstAssertionExpression(node) { - return import_typescript8.default.isTypeReferenceNode(node.type) && import_typescript8.default.isIdentifier(node.type.typeName) && node.type.typeName.escapedText === "const"; + return import_typescript10.default.isTypeReferenceNode(node.type) && import_typescript10.default.isIdentifier(node.type.typeName) && node.type.typeName.escapedText === "const"; } function isIterationStatement(node) { switch (node.kind) { - case import_typescript8.default.SyntaxKind.DoStatement: - case import_typescript8.default.SyntaxKind.ForInStatement: - case import_typescript8.default.SyntaxKind.ForOfStatement: - case import_typescript8.default.SyntaxKind.ForStatement: - case import_typescript8.default.SyntaxKind.WhileStatement: + case import_typescript10.default.SyntaxKind.DoStatement: + case import_typescript10.default.SyntaxKind.ForInStatement: + case import_typescript10.default.SyntaxKind.ForOfStatement: + case import_typescript10.default.SyntaxKind.ForStatement: + case import_typescript10.default.SyntaxKind.WhileStatement: return true; default: return false; } } function isJSDocNamespaceDeclaration(node) { - return import_typescript8.default.isModuleDeclaration(node) && import_typescript8.default.isIdentifier(node.name) && (node.body === void 0 || isJSDocNamespaceBody(node.body)); + return import_typescript10.default.isModuleDeclaration(node) && import_typescript10.default.isIdentifier(node.name) && (node.body === void 0 || isJSDocNamespaceBody(node.body)); } function isJsxTagNamePropertyAccess(node) { - return import_typescript8.default.isPropertyAccessExpression(node) && // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts < 5 + return import_typescript10.default.isPropertyAccessExpression(node) && // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts < 5 isJsxTagNameExpression(node.expression); } function isNamedDeclarationWithName(node) { return "name" in node && node.name !== void 0 && node.name !== null && isDeclarationName(node.name); } function isNamespaceDeclaration(node) { - return import_typescript8.default.isModuleDeclaration(node) && import_typescript8.default.isIdentifier(node.name) && node.body !== void 0 && isNamespaceBody(node.body); + return import_typescript10.default.isModuleDeclaration(node) && import_typescript10.default.isIdentifier(node.name) && node.body !== void 0 && isNamespaceBody(node.body); } function isNumericOrStringLikeLiteral(node) { switch (node.kind) { - case import_typescript8.default.SyntaxKind.StringLiteral: - case import_typescript8.default.SyntaxKind.NumericLiteral: - case import_typescript8.default.SyntaxKind.NoSubstitutionTemplateLiteral: + case import_typescript10.default.SyntaxKind.StringLiteral: + case import_typescript10.default.SyntaxKind.NumericLiteral: + case import_typescript10.default.SyntaxKind.NoSubstitutionTemplateLiteral: return true; default: return false; } } function isPropertyAccessEntityNameExpression(node) { - return import_typescript8.default.isPropertyAccessExpression(node) && import_typescript8.default.isIdentifier(node.name) && isEntityNameExpression(node.expression); + return import_typescript10.default.isPropertyAccessExpression(node) && import_typescript10.default.isIdentifier(node.name) && isEntityNameExpression(node.expression); } function isSuperElementAccessExpression(node) { - return import_typescript8.default.isElementAccessExpression(node) && isSuperExpression(node.expression); + return import_typescript10.default.isElementAccessExpression(node) && isSuperExpression(node.expression); } function isSuperPropertyAccessExpression(node) { - return import_typescript8.default.isPropertyAccessExpression(node) && isSuperExpression(node.expression); + return import_typescript10.default.isPropertyAccessExpression(node) && isSuperExpression(node.expression); } // src/scopes.ts -var import_typescript9 = __toESM(require("typescript"), 1); +var import_typescript11 = __toESM(require("typescript"), 1); function isFunctionScopeBoundary(node) { switch (node.kind) { - case import_typescript9.default.SyntaxKind.FunctionExpression: - case import_typescript9.default.SyntaxKind.ArrowFunction: - case import_typescript9.default.SyntaxKind.Constructor: - case import_typescript9.default.SyntaxKind.ModuleDeclaration: - case import_typescript9.default.SyntaxKind.ClassDeclaration: - case import_typescript9.default.SyntaxKind.ClassExpression: - case import_typescript9.default.SyntaxKind.EnumDeclaration: - case import_typescript9.default.SyntaxKind.MethodDeclaration: - case import_typescript9.default.SyntaxKind.FunctionDeclaration: - case import_typescript9.default.SyntaxKind.GetAccessor: - case import_typescript9.default.SyntaxKind.SetAccessor: - case import_typescript9.default.SyntaxKind.MethodSignature: - case import_typescript9.default.SyntaxKind.CallSignature: - case import_typescript9.default.SyntaxKind.ConstructSignature: - case import_typescript9.default.SyntaxKind.ConstructorType: - case import_typescript9.default.SyntaxKind.FunctionType: + case import_typescript11.default.SyntaxKind.FunctionExpression: + case import_typescript11.default.SyntaxKind.ArrowFunction: + case import_typescript11.default.SyntaxKind.Constructor: + case import_typescript11.default.SyntaxKind.ModuleDeclaration: + case import_typescript11.default.SyntaxKind.ClassDeclaration: + case import_typescript11.default.SyntaxKind.ClassExpression: + case import_typescript11.default.SyntaxKind.EnumDeclaration: + case import_typescript11.default.SyntaxKind.MethodDeclaration: + case import_typescript11.default.SyntaxKind.FunctionDeclaration: + case import_typescript11.default.SyntaxKind.GetAccessor: + case import_typescript11.default.SyntaxKind.SetAccessor: + case import_typescript11.default.SyntaxKind.MethodSignature: + case import_typescript11.default.SyntaxKind.CallSignature: + case import_typescript11.default.SyntaxKind.ConstructSignature: + case import_typescript11.default.SyntaxKind.ConstructorType: + case import_typescript11.default.SyntaxKind.FunctionType: return true; - case import_typescript9.default.SyntaxKind.SourceFile: - return import_typescript9.default.isExternalModule(node); + case import_typescript11.default.SyntaxKind.SourceFile: + return import_typescript11.default.isExternalModule(node); default: return false; } } -// src/syntax.ts -var import_typescript10 = __toESM(require("typescript"), 1); -function isAssignmentKind(kind) { - return kind >= import_typescript10.default.SyntaxKind.FirstAssignment && kind <= import_typescript10.default.SyntaxKind.LastAssignment; -} -function isNumericPropertyName(name) { - return String(+name) === name; -} -function charSize(ch) { - return ch >= 65536 ? 2 : 1; -} -function isValidPropertyAccess(text, languageVersion = import_typescript10.default.ScriptTarget.Latest) { - if (text.length === 0) - return false; - let ch = text.codePointAt(0); - if (!import_typescript10.default.isIdentifierStart(ch, languageVersion)) - return false; - for (let i = charSize(ch); i < text.length; i += charSize(ch)) { - ch = text.codePointAt(i); - if (!import_typescript10.default.isIdentifierPart(ch, languageVersion)) - return false; - } - return true; -} - // src/types/getters.ts -var import_typescript15 = __toESM(require("typescript"), 1); +var import_typescript16 = __toESM(require("typescript"), 1); // src/types/typeGuards/intrinsic.ts -var import_typescript11 = __toESM(require("typescript"), 1); +var import_typescript12 = __toESM(require("typescript"), 1); function isIntrinsicAnyType(type) { - return isTypeFlagSet(type, import_typescript11.default.TypeFlags.Any); + return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Any); } function isIntrinsicBooleanType(type) { - return isTypeFlagSet(type, import_typescript11.default.TypeFlags.Boolean); + return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Boolean); } function isIntrinsicBigIntType(type) { - return isTypeFlagSet(type, import_typescript11.default.TypeFlags.BigInt); + return isTypeFlagSet(type, import_typescript12.default.TypeFlags.BigInt); } function isIntrinsicErrorType(type) { return isIntrinsicType(type) && type.intrinsicName === "error"; } function isIntrinsicESSymbolType(type) { - return isTypeFlagSet(type, import_typescript11.default.TypeFlags.ESSymbol); + return isTypeFlagSet(type, import_typescript12.default.TypeFlags.ESSymbol); } -var IntrinsicTypeFlags = import_typescript11.default.TypeFlags.Intrinsic ?? import_typescript11.default.TypeFlags.Any | import_typescript11.default.TypeFlags.Unknown | import_typescript11.default.TypeFlags.String | import_typescript11.default.TypeFlags.Number | import_typescript11.default.TypeFlags.BigInt | import_typescript11.default.TypeFlags.Boolean | import_typescript11.default.TypeFlags.BooleanLiteral | import_typescript11.default.TypeFlags.ESSymbol | import_typescript11.default.TypeFlags.Void | import_typescript11.default.TypeFlags.Undefined | import_typescript11.default.TypeFlags.Null | import_typescript11.default.TypeFlags.Never | import_typescript11.default.TypeFlags.NonPrimitive; +var IntrinsicTypeFlags = import_typescript12.default.TypeFlags.Intrinsic ?? import_typescript12.default.TypeFlags.Any | import_typescript12.default.TypeFlags.Unknown | import_typescript12.default.TypeFlags.String | import_typescript12.default.TypeFlags.Number | import_typescript12.default.TypeFlags.BigInt | import_typescript12.default.TypeFlags.Boolean | import_typescript12.default.TypeFlags.BooleanLiteral | import_typescript12.default.TypeFlags.ESSymbol | import_typescript12.default.TypeFlags.Void | import_typescript12.default.TypeFlags.Undefined | import_typescript12.default.TypeFlags.Null | import_typescript12.default.TypeFlags.Never | import_typescript12.default.TypeFlags.NonPrimitive; function isIntrinsicType(type) { return isTypeFlagSet(type, IntrinsicTypeFlags); } function isIntrinsicNeverType(type) { - return isTypeFlagSet(type, import_typescript11.default.TypeFlags.Never); + return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Never); } function isIntrinsicNonPrimitiveType(type) { - return isTypeFlagSet(type, import_typescript11.default.TypeFlags.NonPrimitive); + return isTypeFlagSet(type, import_typescript12.default.TypeFlags.NonPrimitive); } function isIntrinsicNullType(type) { - return isTypeFlagSet(type, import_typescript11.default.TypeFlags.Null); + return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Null); } function isIntrinsicNumberType(type) { - return isTypeFlagSet(type, import_typescript11.default.TypeFlags.Number); + return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Number); } function isIntrinsicStringType(type) { - return isTypeFlagSet(type, import_typescript11.default.TypeFlags.String); + return isTypeFlagSet(type, import_typescript12.default.TypeFlags.String); } function isIntrinsicUndefinedType(type) { - return isTypeFlagSet(type, import_typescript11.default.TypeFlags.Undefined); + return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Undefined); } function isIntrinsicUnknownType(type) { - return isTypeFlagSet(type, import_typescript11.default.TypeFlags.Unknown); + return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Unknown); } function isIntrinsicVoidType(type) { - return isTypeFlagSet(type, import_typescript11.default.TypeFlags.Void); + return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Void); } // src/types/typeGuards/objects.ts -var import_typescript13 = __toESM(require("typescript"), 1); +var import_typescript14 = __toESM(require("typescript"), 1); // src/types/typeGuards/single.ts -var import_typescript12 = __toESM(require("typescript"), 1); +var import_typescript13 = __toESM(require("typescript"), 1); function isConditionalType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Conditional); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.Conditional); } function isEnumType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Enum); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.Enum); } function isFreshableType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Freshable); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.Freshable); } function isIndexType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Index); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.Index); } function isIndexedAccessType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.IndexedAccess); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.IndexedAccess); } function isInstantiableType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Instantiable); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.Instantiable); } function isIntersectionType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Intersection); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.Intersection); } function isObjectType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Object); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.Object); } function isStringMappingType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.StringMapping); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.StringMapping); } function isSubstitutionType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Substitution); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.Substitution); } function isTypeParameter(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.TypeParameter); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.TypeParameter); } function isTypeVariable(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.TypeVariable); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.TypeVariable); } function isUnionType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.Union); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.Union); } function isUnionOrIntersectionType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.UnionOrIntersection); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.UnionOrIntersection); } function isUniqueESSymbolType(type) { - return isTypeFlagSet(type, import_typescript12.default.TypeFlags.UniqueESSymbol); + return isTypeFlagSet(type, import_typescript13.default.TypeFlags.UniqueESSymbol); } // src/types/typeGuards/objects.ts function isEvolvingArrayType(type) { - return isObjectType(type) && isObjectFlagSet(type, import_typescript13.default.ObjectFlags.EvolvingArray); + return isObjectType(type) && isObjectFlagSet(type, import_typescript14.default.ObjectFlags.EvolvingArray); } function isTupleType(type) { - return isObjectType(type) && isObjectFlagSet(type, import_typescript13.default.ObjectFlags.Tuple); + return isObjectType(type) && isObjectFlagSet(type, import_typescript14.default.ObjectFlags.Tuple); } function isTypeReference(type) { - return isObjectType(type) && isObjectFlagSet(type, import_typescript13.default.ObjectFlags.Reference); + return isObjectType(type) && isObjectFlagSet(type, import_typescript14.default.ObjectFlags.Reference); } // src/types/typeGuards/compound.ts @@ -988,33 +1150,33 @@ function isTupleTypeReference(type) { } // src/types/typeGuards/literal.ts -var import_typescript14 = __toESM(require("typescript"), 1); +var import_typescript15 = __toESM(require("typescript"), 1); function isBooleanLiteralType(type) { - return isTypeFlagSet(type, import_typescript14.default.TypeFlags.BooleanLiteral); + return isTypeFlagSet(type, import_typescript15.default.TypeFlags.BooleanLiteral); } function isBigIntLiteralType(type) { - return isTypeFlagSet(type, import_typescript14.default.TypeFlags.BigIntLiteral); + return isTypeFlagSet(type, import_typescript15.default.TypeFlags.BigIntLiteral); } function isFalseLiteralType(type) { return isBooleanLiteralType(type) && type.intrinsicName === "false"; } function isLiteralType(type) { - return isTypeFlagSet(type, import_typescript14.default.TypeFlags.Literal); + return isTypeFlagSet(type, import_typescript15.default.TypeFlags.Literal); } function isNumberLiteralType(type) { - return isTypeFlagSet(type, import_typescript14.default.TypeFlags.NumberLiteral); + return isTypeFlagSet(type, import_typescript15.default.TypeFlags.NumberLiteral); } function isStringLiteralType(type) { - return isTypeFlagSet(type, import_typescript14.default.TypeFlags.StringLiteral); + return isTypeFlagSet(type, import_typescript15.default.TypeFlags.StringLiteral); } function isTemplateLiteralType(type) { - return isTypeFlagSet(type, import_typescript14.default.TypeFlags.TemplateLiteral); + return isTypeFlagSet(type, import_typescript15.default.TypeFlags.TemplateLiteral); } function isTrueLiteralType(type) { return isBooleanLiteralType(type) && type.intrinsicName === "true"; } function isUnknownLiteralType(type) { - return isTypeFlagSet(type, import_typescript14.default.TypeFlags.Literal); + return isTypeFlagSet(type, import_typescript15.default.TypeFlags.Literal); } // src/types/getters.ts @@ -1031,8 +1193,9 @@ function getCallSignaturesOfType(type) { for (const subType of type.types) { const sig = getCallSignaturesOfType(subType); if (sig.length !== 0) { - if (signatures !== void 0) + if (signatures !== void 0) { return []; + } signatures = sig; } } @@ -1041,8 +1204,9 @@ function getCallSignaturesOfType(type) { return type.getCallSignatures(); } function getPropertyOfType(type, name) { - if (!name.startsWith("__")) + if (!name.startsWith("__")) { return type.getProperty(name); + } return type.getProperties().find((s) => s.escapedName === name); } function getWellKnownSymbolPropertyOfType(type, wellKnownSymbolName, typeChecker) { @@ -1052,7 +1216,7 @@ function getWellKnownSymbolPropertyOfType(type, wellKnownSymbolName, typeChecker continue; } const declaration = prop.valueDeclaration ?? prop.getDeclarations()[0]; - if (!isNamedDeclarationWithName(declaration) || declaration.name === void 0 || !import_typescript15.default.isComputedPropertyName(declaration.name)) { + if (!isNamedDeclarationWithName(declaration) || declaration.name === void 0 || !import_typescript16.default.isComputedPropertyName(declaration.name)) { continue; } const globalSymbol = typeChecker.getApparentType( @@ -1079,18 +1243,19 @@ function getPropertyNameOfWellKnownSymbol(typeChecker, symbolConstructor, symbol // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access knownSymbol.valueDeclaration ); - if (knownSymbolType && isUniqueESSymbolType(knownSymbolType)) + if (knownSymbolType && isUniqueESSymbolType(knownSymbolType)) { return knownSymbolType.escapedName; + } return "__@" + symbolName; } // src/types/utilities.ts -var import_typescript17 = __toESM(require("typescript"), 1); +var import_typescript18 = __toESM(require("typescript"), 1); // src/nodes/utilities.ts -var import_typescript16 = __toESM(require("typescript"), 1); +var import_typescript17 = __toESM(require("typescript"), 1); function isBindableObjectDefinePropertyCall(node) { - return node.arguments.length === 3 && isEntityNameExpression(node.arguments[0]) && isNumericOrStringLikeLiteral(node.arguments[1]) && import_typescript16.default.isPropertyAccessExpression(node.expression) && node.expression.name.escapedText === "defineProperty" && import_typescript16.default.isIdentifier(node.expression.expression) && node.expression.expression.escapedText === "Object"; + return node.arguments.length === 3 && isEntityNameExpression(node.arguments[0]) && isNumericOrStringLikeLiteral(node.arguments[1]) && import_typescript17.default.isPropertyAccessExpression(node.expression) && node.expression.name.escapedText === "defineProperty" && import_typescript17.default.isIdentifier(node.expression.expression) && node.expression.expression.escapedText === "Object"; } function isInConstContext(node) { let current = node; @@ -1098,32 +1263,34 @@ function isInConstContext(node) { const parent = current.parent; outer: switch (parent.kind) { - case import_typescript16.default.SyntaxKind.TypeAssertionExpression: - case import_typescript16.default.SyntaxKind.AsExpression: + case import_typescript17.default.SyntaxKind.TypeAssertionExpression: + case import_typescript17.default.SyntaxKind.AsExpression: return isConstAssertionExpression(parent); - case import_typescript16.default.SyntaxKind.PrefixUnaryExpression: - if (current.kind !== import_typescript16.default.SyntaxKind.NumericLiteral) + case import_typescript17.default.SyntaxKind.PrefixUnaryExpression: + if (current.kind !== import_typescript17.default.SyntaxKind.NumericLiteral) { return false; + } switch (parent.operator) { - case import_typescript16.default.SyntaxKind.PlusToken: - case import_typescript16.default.SyntaxKind.MinusToken: + case import_typescript17.default.SyntaxKind.PlusToken: + case import_typescript17.default.SyntaxKind.MinusToken: current = parent; break outer; default: return false; } - case import_typescript16.default.SyntaxKind.PropertyAssignment: - if (parent.initializer !== current) + case import_typescript17.default.SyntaxKind.PropertyAssignment: + if (parent.initializer !== current) { return false; + } current = parent.parent; break; - case import_typescript16.default.SyntaxKind.ShorthandPropertyAssignment: + case import_typescript17.default.SyntaxKind.ShorthandPropertyAssignment: current = parent.parent; break; - case import_typescript16.default.SyntaxKind.ParenthesizedExpression: - case import_typescript16.default.SyntaxKind.ArrayLiteralExpression: - case import_typescript16.default.SyntaxKind.ObjectLiteralExpression: - case import_typescript16.default.SyntaxKind.TemplateExpression: + case import_typescript17.default.SyntaxKind.ParenthesizedExpression: + case import_typescript17.default.SyntaxKind.ArrayLiteralExpression: + case import_typescript17.default.SyntaxKind.ObjectLiteralExpression: + case import_typescript17.default.SyntaxKind.TemplateExpression: current = parent; break; default: @@ -1136,25 +1303,32 @@ function isInConstContext(node) { function isFalsyType(type) { if (isTypeFlagSet( type, - import_typescript17.default.TypeFlags.Undefined | import_typescript17.default.TypeFlags.Null | import_typescript17.default.TypeFlags.Void - )) + import_typescript18.default.TypeFlags.Undefined | import_typescript18.default.TypeFlags.Null | import_typescript18.default.TypeFlags.Void + )) { return true; - if (type.isLiteral()) + } + if (type.isLiteral()) { return !type.value; + } return isFalseLiteralType(type); } function intersectionTypeParts(type) { return isIntersectionType(type) ? type.types : [type]; } +function typeParts(type) { + return isIntersectionType(type) || isUnionType(type) ? type.types : [type]; +} function isReadonlyPropertyIntersection(type, name, typeChecker) { - const typeParts = isIntersectionType(type) ? type.types : [type]; - return typeParts.some((subType) => { + const typeParts2 = isIntersectionType(type) ? type.types : [type]; + return typeParts2.some((subType) => { const prop = getPropertyOfType(subType, name); - if (prop === void 0) + if (prop === void 0) { return false; - if (prop.flags & import_typescript17.default.SymbolFlags.Transient) { - if (/^(?:[1-9]\d*|0)$/.test(name) && isTupleTypeReference(subType)) + } + if (prop.flags & import_typescript18.default.SymbolFlags.Transient) { + if (/^(?:[1-9]\d*|0)$/.test(name) && isTupleTypeReference(subType)) { return subType.target.readonly; + } switch (isReadonlyPropertyFromMappedType(subType, name, typeChecker)) { case true: return true; @@ -1164,16 +1338,18 @@ function isReadonlyPropertyIntersection(type, name, typeChecker) { } } return !!// members of namespace import - (isSymbolFlagSet(prop, import_typescript17.default.SymbolFlags.ValueModule) || // we unwrapped every mapped type, now we can check the actual declarations + (isSymbolFlagSet(prop, import_typescript18.default.SymbolFlags.ValueModule) || // we unwrapped every mapped type, now we can check the actual declarations symbolHasReadonlyDeclaration(prop, typeChecker)); }); } function isReadonlyPropertyFromMappedType(type, name, typeChecker) { - if (!isObjectType(type) || !isObjectFlagSet(type, import_typescript17.default.ObjectFlags.Mapped)) + if (!isObjectType(type) || !isObjectFlagSet(type, import_typescript18.default.ObjectFlags.Mapped)) { return; + } const declaration = type.symbol.declarations[0]; - if (declaration.readonlyToken !== void 0 && !/^__@[^@]+$/.test(name)) - return declaration.readonlyToken.kind !== import_typescript17.default.SyntaxKind.MinusToken; + if (declaration.readonlyToken !== void 0 && !/^__@[^@]+$/.test(name)) { + return declaration.readonlyToken.kind !== import_typescript18.default.SyntaxKind.MinusToken; + } const { modifiersType } = type; return modifiersType && isPropertyReadonlyInType(modifiersType, name, typeChecker); } @@ -1183,12 +1359,14 @@ function isCallback(typeChecker, param, node) { ); if (param.valueDeclaration.dotDotDotToken) { type = type.getNumberIndexType(); - if (type === void 0) + if (type === void 0) { return false; + } } for (const subType of unionTypeParts(type)) { - if (subType.getCallSignatures().length !== 0) + if (subType.getCallSignatures().length !== 0) { return true; + } } return false; } @@ -1197,10 +1375,11 @@ function isPropertyReadonlyInType(type, name, typeChecker) { let seenReadonlySignature = false; for (const subType of unionTypeParts(type)) { if (getPropertyOfType(subType, name) === void 0) { - const index = (isNumericPropertyName(name) ? typeChecker.getIndexInfoOfType(subType, import_typescript17.default.IndexKind.Number) : void 0) ?? typeChecker.getIndexInfoOfType(subType, import_typescript17.default.IndexKind.String); + const index = (isNumericPropertyName(name) ? typeChecker.getIndexInfoOfType(subType, import_typescript18.default.IndexKind.Number) : void 0) ?? typeChecker.getIndexInfoOfType(subType, import_typescript18.default.IndexKind.String); if (index?.isReadonly) { - if (seenProperty) + if (seenProperty) { return true; + } seenReadonlySignature = true; } } else if (seenReadonlySignature || isReadonlyPropertyIntersection(subType, name, typeChecker)) { @@ -1212,42 +1391,989 @@ function isPropertyReadonlyInType(type, name, typeChecker) { return false; } function isReadonlyAssignmentDeclaration(node, typeChecker) { - if (!isBindableObjectDefinePropertyCall(node)) + if (!isBindableObjectDefinePropertyCall(node)) { return false; + } const descriptorType = typeChecker.getTypeAtLocation(node.arguments[2]); - if (descriptorType.getProperty("value") === void 0) + if (descriptorType.getProperty("value") === void 0) { return descriptorType.getProperty("set") === void 0; + } const writableProp = descriptorType.getProperty("writable"); - if (writableProp === void 0) + if (writableProp === void 0) { return false; - const writableType = writableProp.valueDeclaration !== void 0 && import_typescript17.default.isPropertyAssignment(writableProp.valueDeclaration) ? typeChecker.getTypeAtLocation(writableProp.valueDeclaration.initializer) : typeChecker.getTypeOfSymbolAtLocation(writableProp, node.arguments[2]); + } + const writableType = writableProp.valueDeclaration !== void 0 && import_typescript18.default.isPropertyAssignment(writableProp.valueDeclaration) ? typeChecker.getTypeAtLocation(writableProp.valueDeclaration.initializer) : typeChecker.getTypeOfSymbolAtLocation(writableProp, node.arguments[2]); return isFalseLiteralType(writableType); } function isThenableType(typeChecker, node, type = typeChecker.getTypeAtLocation(node)) { for (const typePart of unionTypeParts(typeChecker.getApparentType(type))) { const then = typePart.getProperty("then"); - if (then === void 0) + if (then === void 0) { continue; + } const thenType = typeChecker.getTypeOfSymbolAtLocation(then, node); - for (const subTypePart of unionTypeParts(thenType)) - for (const signature of subTypePart.getCallSignatures()) - if (signature.parameters.length !== 0 && isCallback(typeChecker, signature.parameters[0], node)) + for (const subTypePart of unionTypeParts(thenType)) { + for (const signature of subTypePart.getCallSignatures()) { + if (signature.parameters.length !== 0 && isCallback(typeChecker, signature.parameters[0], node)) { return true; + } + } + } } return false; } function symbolHasReadonlyDeclaration(symbol, typeChecker) { - return !!((symbol.flags & import_typescript17.default.SymbolFlags.Accessor) === import_typescript17.default.SymbolFlags.GetAccessor || symbol.declarations?.some( - (node) => isModifierFlagSet(node, import_typescript17.default.ModifierFlags.Readonly) || import_typescript17.default.isVariableDeclaration(node) && isNodeFlagSet(node.parent, import_typescript17.default.NodeFlags.Const) || import_typescript17.default.isCallExpression(node) && isReadonlyAssignmentDeclaration(node, typeChecker) || import_typescript17.default.isEnumMember(node) || (import_typescript17.default.isPropertyAssignment(node) || import_typescript17.default.isShorthandPropertyAssignment(node)) && isInConstContext(node.parent) + return !!((symbol.flags & import_typescript18.default.SymbolFlags.Accessor) === import_typescript18.default.SymbolFlags.GetAccessor || symbol.declarations?.some( + (node) => isModifierFlagSet(node, import_typescript18.default.ModifierFlags.Readonly) || import_typescript18.default.isVariableDeclaration(node) && isNodeFlagSet(node.parent, import_typescript18.default.NodeFlags.Const) || import_typescript18.default.isCallExpression(node) && isReadonlyAssignmentDeclaration(node, typeChecker) || import_typescript18.default.isEnumMember(node) || (import_typescript18.default.isPropertyAssignment(node) || import_typescript18.default.isShorthandPropertyAssignment(node)) && isInConstContext(node.parent) )); } function unionTypeParts(type) { return isUnionType(type) ? type.types : [type]; } + +// src/usage/UsageWalker.ts +var import_typescript24 = __toESM(require("typescript"), 1); + +// src/usage/Scope.ts +var import_typescript19 = __toESM(require("typescript"), 1); +function isBlockScopeBoundary(node) { + switch (node.kind) { + case import_typescript19.default.SyntaxKind.Block: { + const parent = node.parent; + return parent.kind !== import_typescript19.default.SyntaxKind.CatchClause && // blocks inside SourceFile are block scope boundaries + (parent.kind === import_typescript19.default.SyntaxKind.SourceFile || // blocks that are direct children of a function scope boundary are no scope boundary + // for example the FunctionBlock is part of the function scope of the containing function + !isFunctionScopeBoundary(parent)) ? 2 /* Block */ : 0 /* None */; + } + case import_typescript19.default.SyntaxKind.ForStatement: + case import_typescript19.default.SyntaxKind.ForInStatement: + case import_typescript19.default.SyntaxKind.ForOfStatement: + case import_typescript19.default.SyntaxKind.CaseBlock: + case import_typescript19.default.SyntaxKind.CatchClause: + case import_typescript19.default.SyntaxKind.WithStatement: + return 2 /* Block */; + default: + return 0 /* None */; + } +} + +// src/usage/declarations.ts +var import_typescript21 = __toESM(require("typescript"), 1); + +// src/usage/utils.ts +var import_typescript20 = __toESM(require("typescript"), 1); +function identifierToKeywordKind(node) { + return "identifierToKeywordKind" in import_typescript20.default ? import_typescript20.default.identifierToKeywordKind(node) : ( + // eslint-disable-next-line deprecation/deprecation + node.originalKeywordKind + ); +} +function canHaveDecorators(node) { + return "canHaveDecorators" in import_typescript20.default ? import_typescript20.default.canHaveDecorators(node) : "decorators" in node; +} +function getDecorators(node) { + return "getDecorators" in import_typescript20.default ? import_typescript20.default.getDecorators(node) : node.decorators; +} + +// src/usage/declarations.ts +var DeclarationDomain = /* @__PURE__ */ ((DeclarationDomain2) => { + DeclarationDomain2[DeclarationDomain2["Import"] = 8] = "Import"; + DeclarationDomain2[DeclarationDomain2["Namespace"] = 1] = "Namespace"; + DeclarationDomain2[DeclarationDomain2["Type"] = 2] = "Type"; + DeclarationDomain2[DeclarationDomain2["Value"] = 4] = "Value"; + DeclarationDomain2[DeclarationDomain2["Any"] = 7] = "Any"; + return DeclarationDomain2; +})(DeclarationDomain || {}); +function getDeclarationDomain(node) { + switch (node.parent.kind) { + case import_typescript21.default.SyntaxKind.TypeParameter: + case import_typescript21.default.SyntaxKind.InterfaceDeclaration: + case import_typescript21.default.SyntaxKind.TypeAliasDeclaration: + return 2 /* Type */; + case import_typescript21.default.SyntaxKind.ClassDeclaration: + case import_typescript21.default.SyntaxKind.ClassExpression: + return 2 /* Type */ | 4 /* Value */; + case import_typescript21.default.SyntaxKind.EnumDeclaration: + return 7 /* Any */; + case import_typescript21.default.SyntaxKind.NamespaceImport: + case import_typescript21.default.SyntaxKind.ImportClause: + return 7 /* Any */ | 8 /* Import */; + case import_typescript21.default.SyntaxKind.ImportEqualsDeclaration: + case import_typescript21.default.SyntaxKind.ImportSpecifier: + return node.parent.name === node ? 7 /* Any */ | 8 /* Import */ : void 0; + case import_typescript21.default.SyntaxKind.ModuleDeclaration: + return 1 /* Namespace */; + case import_typescript21.default.SyntaxKind.Parameter: + if (node.parent.parent.kind === import_typescript21.default.SyntaxKind.IndexSignature || identifierToKeywordKind(node) === import_typescript21.default.SyntaxKind.ThisKeyword) { + return; + } + case import_typescript21.default.SyntaxKind.BindingElement: + case import_typescript21.default.SyntaxKind.VariableDeclaration: + return node.parent.name === node ? 4 /* Value */ : void 0; + case import_typescript21.default.SyntaxKind.FunctionDeclaration: + case import_typescript21.default.SyntaxKind.FunctionExpression: + return 4 /* Value */; + } +} + +// src/usage/getPropertyName.ts +var import_typescript22 = __toESM(require("typescript"), 1); +function unwrapParentheses(node) { + while (node.kind === import_typescript22.default.SyntaxKind.ParenthesizedExpression) { + node = node.expression; + } + return node; +} +function getPropertyName(propertyName) { + if (propertyName.kind === import_typescript22.default.SyntaxKind.ComputedPropertyName) { + const expression = unwrapParentheses(propertyName.expression); + if (import_typescript22.default.isPrefixUnaryExpression(expression)) { + let negate = false; + switch (expression.operator) { + case import_typescript22.default.SyntaxKind.MinusToken: + negate = true; + case import_typescript22.default.SyntaxKind.PlusToken: + return import_typescript22.default.isNumericLiteral(expression.operand) ? `${negate ? "-" : ""}${expression.operand.text}` : import_typescript22.default.isBigIntLiteral(expression.operand) ? `${negate ? "-" : ""}${expression.operand.text.slice(0, -1)}` : void 0; + default: + return; + } + } + if (import_typescript22.default.isBigIntLiteral(expression)) { + return expression.text.slice(0, -1); + } + if (isNumericOrStringLikeLiteral(expression)) { + return expression.text; + } + return; + } + return propertyName.kind === import_typescript22.default.SyntaxKind.PrivateIdentifier ? void 0 : propertyName.text; +} + +// src/usage/getUsageDomain.ts +var import_typescript23 = __toESM(require("typescript"), 1); +var UsageDomain = /* @__PURE__ */ ((UsageDomain2) => { + UsageDomain2[UsageDomain2["Namespace"] = 1] = "Namespace"; + UsageDomain2[UsageDomain2["Type"] = 2] = "Type"; + UsageDomain2[UsageDomain2["TypeQuery"] = 8] = "TypeQuery"; + UsageDomain2[UsageDomain2["Value"] = 4] = "Value"; + UsageDomain2[UsageDomain2["ValueOrNamespace"] = 5] = "ValueOrNamespace"; + UsageDomain2[UsageDomain2["Any"] = 7] = "Any"; + return UsageDomain2; +})(UsageDomain || {}); +function getUsageDomain(node) { + const parent = node.parent; + switch (parent.kind) { + case import_typescript23.default.SyntaxKind.TypeReference: + return identifierToKeywordKind(node) !== import_typescript23.default.SyntaxKind.ConstKeyword ? 2 /* Type */ : void 0; + case import_typescript23.default.SyntaxKind.ExpressionWithTypeArguments: + return parent.parent.token === import_typescript23.default.SyntaxKind.ImplementsKeyword || parent.parent.parent.kind === import_typescript23.default.SyntaxKind.InterfaceDeclaration ? 2 /* Type */ : 4 /* Value */; + case import_typescript23.default.SyntaxKind.TypeQuery: + return 5 /* ValueOrNamespace */ | 8 /* TypeQuery */; + case import_typescript23.default.SyntaxKind.QualifiedName: + if (parent.left === node) { + if (getEntityNameParent(parent).kind === import_typescript23.default.SyntaxKind.TypeQuery) { + return 1 /* Namespace */ | 8 /* TypeQuery */; + } + return 1 /* Namespace */; + } + break; + case import_typescript23.default.SyntaxKind.ExportSpecifier: + if (parent.propertyName === void 0 || parent.propertyName === node) { + return 7 /* Any */; + } + break; + case import_typescript23.default.SyntaxKind.ExportAssignment: + return 7 /* Any */; + case import_typescript23.default.SyntaxKind.BindingElement: + if (parent.initializer === node) { + return 5 /* ValueOrNamespace */; + } + break; + case import_typescript23.default.SyntaxKind.Parameter: + case import_typescript23.default.SyntaxKind.EnumMember: + case import_typescript23.default.SyntaxKind.PropertyDeclaration: + case import_typescript23.default.SyntaxKind.VariableDeclaration: + case import_typescript23.default.SyntaxKind.PropertyAssignment: + case import_typescript23.default.SyntaxKind.PropertyAccessExpression: + case import_typescript23.default.SyntaxKind.ImportEqualsDeclaration: + if (parent.name !== node) { + return 5 /* ValueOrNamespace */; + } + break; + case import_typescript23.default.SyntaxKind.JsxAttribute: + case import_typescript23.default.SyntaxKind.FunctionDeclaration: + case import_typescript23.default.SyntaxKind.FunctionExpression: + case import_typescript23.default.SyntaxKind.NamespaceImport: + case import_typescript23.default.SyntaxKind.ClassDeclaration: + case import_typescript23.default.SyntaxKind.ClassExpression: + case import_typescript23.default.SyntaxKind.ModuleDeclaration: + case import_typescript23.default.SyntaxKind.MethodDeclaration: + case import_typescript23.default.SyntaxKind.EnumDeclaration: + case import_typescript23.default.SyntaxKind.GetAccessor: + case import_typescript23.default.SyntaxKind.SetAccessor: + case import_typescript23.default.SyntaxKind.LabeledStatement: + case import_typescript23.default.SyntaxKind.BreakStatement: + case import_typescript23.default.SyntaxKind.ContinueStatement: + case import_typescript23.default.SyntaxKind.ImportClause: + case import_typescript23.default.SyntaxKind.ImportSpecifier: + case import_typescript23.default.SyntaxKind.TypePredicate: + case import_typescript23.default.SyntaxKind.MethodSignature: + case import_typescript23.default.SyntaxKind.PropertySignature: + case import_typescript23.default.SyntaxKind.NamespaceExportDeclaration: + case import_typescript23.default.SyntaxKind.NamespaceExport: + case import_typescript23.default.SyntaxKind.InterfaceDeclaration: + case import_typescript23.default.SyntaxKind.TypeAliasDeclaration: + case import_typescript23.default.SyntaxKind.TypeParameter: + case import_typescript23.default.SyntaxKind.NamedTupleMember: + break; + default: + return 5 /* ValueOrNamespace */; + } +} +function getEntityNameParent(name) { + let parent = name.parent; + while (parent.kind === import_typescript23.default.SyntaxKind.QualifiedName) { + parent = parent.parent; + } + return parent; +} + +// src/usage/scopes.ts +var _enumScopes; +var AbstractScope = class { + constructor(global) { + this.global = global; + __privateAdd(this, _enumScopes, void 0); + this.namespaceScopes = void 0; + this.uses = []; + this.variables = /* @__PURE__ */ new Map(); + } + addUse(use) { + this.uses.push(use); + } + // eslint-disable-next-line @typescript-eslint/no-empty-function + addUseToParent(_use) { + } + addVariable(identifier, name, selector, exported, domain) { + const variables = this.getDestinationScope(selector).getVariables(); + const declaration = { + declaration: name, + domain, + exported + }; + const variable = variables.get(identifier); + if (variable === void 0) { + variables.set(identifier, { + declarations: [declaration], + domain, + uses: [] + }); + } else { + variable.domain |= domain; + variable.declarations.push(declaration); + } + } + applyUse(use, variables = this.variables) { + const variable = variables.get(use.location.text); + if (variable === void 0 || (variable.domain & use.domain) === 0) { + return false; + } + variable.uses.push(use); + return true; + } + applyUses() { + for (const use of this.uses) { + if (!this.applyUse(use)) { + this.addUseToParent(use); + } + } + this.uses = []; + } + createOrReuseEnumScope(name, _exported) { + let scope; + if (__privateGet(this, _enumScopes) === void 0) { + __privateSet(this, _enumScopes, /* @__PURE__ */ new Map()); + } else { + scope = __privateGet(this, _enumScopes).get(name); + } + if (scope === void 0) { + scope = new EnumScope(this); + __privateGet(this, _enumScopes).set(name, scope); + } + return scope; + } + // only relevant for the root scope + createOrReuseNamespaceScope(name, _exported, ambient, hasExportStatement) { + let scope; + if (this.namespaceScopes === void 0) { + this.namespaceScopes = /* @__PURE__ */ new Map(); + } else { + scope = this.namespaceScopes.get(name); + } + if (scope === void 0) { + scope = new NamespaceScope(ambient, hasExportStatement, this); + this.namespaceScopes.set(name, scope); + } else { + scope.refresh(ambient, hasExportStatement); + } + return scope; + } + end(cb) { + if (this.namespaceScopes !== void 0) { + this.namespaceScopes.forEach((value) => value.finish(cb)); + } + this.namespaceScopes = __privateSet(this, _enumScopes, void 0); + this.applyUses(); + this.variables.forEach((variable) => { + for (const declaration of variable.declarations) { + const result = { + declarations: [], + domain: declaration.domain, + exported: declaration.exported, + inGlobalScope: this.global, + uses: [] + }; + for (const other of variable.declarations) { + if (other.domain & declaration.domain) { + result.declarations.push(other.declaration); + } + } + for (const use of variable.uses) { + if (use.domain & declaration.domain) { + result.uses.push(use); + } + } + cb(result, declaration.declaration, this); + } + }); + } + getFunctionScope() { + return this; + } + getVariables() { + return this.variables; + } + // eslint-disable-next-line @typescript-eslint/no-empty-function + markExported(_name2) { + } +}; +_enumScopes = new WeakMap(); +var NonRootScope = class extends AbstractScope { + constructor(parent, boundary) { + super(false); + this.parent = parent; + this.boundary = boundary; + } + addUseToParent(use) { + return this.parent.addUse(use, this); + } + getDestinationScope(selector) { + return this.boundary & selector ? this : this.parent.getDestinationScope(selector); + } +}; +var EnumScope = class extends NonRootScope { + constructor(parent) { + super(parent, 1 /* Function */); + } + end() { + this.applyUses(); + } +}; +var _exportAll, _exports, _innerScope; +var RootScope = class extends AbstractScope { + constructor(exportAll, global) { + super(global); + __privateAdd(this, _exportAll, void 0); + __privateAdd(this, _exports, void 0); + __privateAdd(this, _innerScope, new NonRootScope(this, 1 /* Function */)); + __privateSet(this, _exportAll, exportAll); + } + addUse(use, origin) { + if (origin === __privateGet(this, _innerScope)) { + return super.addUse(use); + } + return __privateGet(this, _innerScope).addUse(use); + } + addVariable(identifier, name, selector, exported, domain) { + if (domain & 8 /* Import */) { + return super.addVariable(identifier, name, selector, exported, domain); + } + return __privateGet(this, _innerScope).addVariable( + identifier, + name, + selector, + exported, + domain + ); + } + end(cb) { + __privateGet(this, _innerScope).end((value, key) => { + value.exported ||= __privateGet(this, _exportAll) || __privateGet(this, _exports) !== void 0 && __privateGet(this, _exports).includes(key.text); + value.inGlobalScope = this.global; + return cb(value, key, this); + }); + return super.end((value, key, scope) => { + value.exported ||= scope === this && __privateGet(this, _exports) !== void 0 && __privateGet(this, _exports).includes(key.text); + return cb(value, key, scope); + }); + } + getDestinationScope() { + return this; + } + markExported(id) { + if (__privateGet(this, _exports) === void 0) { + __privateSet(this, _exports, [id.text]); + } else { + __privateGet(this, _exports).push(id.text); + } + } +}; +_exportAll = new WeakMap(); +_exports = new WeakMap(); +_innerScope = new WeakMap(); +var _ambient, _exports2, _hasExport, _innerScope2; +var NamespaceScope = class extends NonRootScope { + constructor(ambient, hasExport, parent) { + super(parent, 1 /* Function */); + __privateAdd(this, _ambient, void 0); + __privateAdd(this, _exports2, void 0); + __privateAdd(this, _hasExport, void 0); + __privateAdd(this, _innerScope2, new NonRootScope(this, 1 /* Function */)); + __privateSet(this, _ambient, ambient); + __privateSet(this, _hasExport, hasExport); + } + addUse(use, source) { + if (source !== __privateGet(this, _innerScope2)) { + return __privateGet(this, _innerScope2).addUse(use); + } + this.uses.push(use); + } + createOrReuseEnumScope(name, exported) { + if (!exported && (!__privateGet(this, _ambient) || __privateGet(this, _hasExport))) { + return __privateGet(this, _innerScope2).createOrReuseEnumScope(name, exported); + } + return super.createOrReuseEnumScope(name, exported); + } + createOrReuseNamespaceScope(name, exported, ambient, hasExportStatement) { + if (!exported && (!__privateGet(this, _ambient) || __privateGet(this, _hasExport))) { + return __privateGet(this, _innerScope2).createOrReuseNamespaceScope( + name, + exported, + ambient || __privateGet(this, _ambient), + hasExportStatement + ); + } + return super.createOrReuseNamespaceScope( + name, + exported, + ambient || __privateGet(this, _ambient), + hasExportStatement + ); + } + end(cb) { + __privateGet(this, _innerScope2).end((variable, key, scope) => { + if (scope !== __privateGet(this, _innerScope2) || !variable.exported && (!__privateGet(this, _ambient) || __privateGet(this, _exports2) !== void 0 && !__privateGet(this, _exports2).has(key.text))) { + return cb(variable, key, scope); + } + const namespaceVar = this.variables.get(key.text); + if (namespaceVar === void 0) { + this.variables.set(key.text, { + declarations: variable.declarations.map(mapDeclaration), + domain: variable.domain, + uses: [...variable.uses] + }); + } else { + outer: + for (const declaration of variable.declarations) { + for (const existing of namespaceVar.declarations) { + if (existing.declaration === declaration) { + continue outer; + } + namespaceVar.declarations.push(mapDeclaration(declaration)); + } + } + namespaceVar.domain |= variable.domain; + for (const use of variable.uses) { + if (namespaceVar.uses.includes(use)) { + continue; + } + namespaceVar.uses.push(use); + } + } + }); + this.applyUses(); + __privateSet(this, _innerScope2, new NonRootScope(this, 1 /* Function */)); + } + finish(cb) { + return super.end(cb); + } + getDestinationScope() { + return __privateGet(this, _innerScope2); + } + markExported(name) { + if (__privateGet(this, _exports2) === void 0) { + __privateSet(this, _exports2, /* @__PURE__ */ new Set()); + } + __privateGet(this, _exports2).add(name.text); + } + refresh(ambient, hasExport) { + __privateSet(this, _ambient, ambient); + __privateSet(this, _hasExport, hasExport); + } +}; +_ambient = new WeakMap(); +_exports2 = new WeakMap(); +_hasExport = new WeakMap(); +_innerScope2 = new WeakMap(); +function mapDeclaration(declaration) { + return { + declaration, + domain: getDeclarationDomain(declaration), + exported: true + }; +} +var FunctionScope = class extends NonRootScope { + constructor(parent) { + super(parent, 1 /* Function */); + } + beginBody() { + this.applyUses(); + } +}; +var _domain, _name; +var AbstractNamedExpressionScope = class extends NonRootScope { + constructor(name, domain, parent) { + super(parent, 1 /* Function */); + __privateAdd(this, _domain, void 0); + __privateAdd(this, _name, void 0); + __privateSet(this, _name, name); + __privateSet(this, _domain, domain); + } + addUse(use, source) { + if (source !== this.innerScope) { + return this.innerScope.addUse(use); + } + if (use.domain & __privateGet(this, _domain) && use.location.text === __privateGet(this, _name).text) { + this.uses.push(use); + } else { + return this.parent.addUse(use, this); + } + } + end(cb) { + this.innerScope.end(cb); + return cb( + { + declarations: [__privateGet(this, _name)], + domain: __privateGet(this, _domain), + exported: false, + inGlobalScope: false, + uses: this.uses + }, + __privateGet(this, _name), + this + ); + } + getDestinationScope() { + return this.innerScope; + } + getFunctionScope() { + return this.innerScope; + } +}; +_domain = new WeakMap(); +_name = new WeakMap(); +var FunctionExpressionScope = class extends AbstractNamedExpressionScope { + constructor(name, parent) { + super(name, 4 /* Value */, parent); + this.innerScope = new FunctionScope(this); + } + beginBody() { + return this.innerScope.beginBody(); + } +}; +var _functionScope; +var BlockScope = class extends NonRootScope { + constructor(functionScope, parent) { + super(parent, 2 /* Block */); + __privateAdd(this, _functionScope, void 0); + __privateSet(this, _functionScope, functionScope); + } + getFunctionScope() { + return __privateGet(this, _functionScope); + } +}; +_functionScope = new WeakMap(); +var ClassExpressionScope = class extends AbstractNamedExpressionScope { + constructor(name, parent) { + super(name, 4 /* Value */ | 2 /* Type */, parent); + this.innerScope = new NonRootScope(this, 1 /* Function */); + } +}; +var _state; +var ConditionalTypeScope = class extends NonRootScope { + constructor(parent) { + super(parent, 8 /* ConditionalType */); + __privateAdd(this, _state, 0 /* Initial */); + } + addUse(use) { + if (__privateGet(this, _state) === 2 /* TrueType */) { + return void this.uses.push(use); + } + return this.parent.addUse(use, this); + } + updateState(newState) { + __privateSet(this, _state, newState); + } +}; +_state = new WeakMap(); + +// src/usage/UsageWalker.ts +var _result, _scope, _handleBindingName, handleBindingName_fn, _handleConditionalType, handleConditionalType_fn, _handleDeclaration, handleDeclaration_fn, _handleFunctionLikeDeclaration, handleFunctionLikeDeclaration_fn, _handleModule, handleModule_fn, _handleVariableDeclaration, handleVariableDeclaration_fn; +var UsageWalker = class { + constructor() { + __privateAdd(this, _handleBindingName); + __privateAdd(this, _handleConditionalType); + __privateAdd(this, _handleDeclaration); + __privateAdd(this, _handleFunctionLikeDeclaration); + __privateAdd(this, _handleModule); + __privateAdd(this, _handleVariableDeclaration); + __privateAdd(this, _result, /* @__PURE__ */ new Map()); + __privateAdd(this, _scope, void 0); + } + getUsage(sourceFile) { + const variableCallback = (variable, key) => { + __privateGet(this, _result).set(key, variable); + }; + const isModule = import_typescript24.default.isExternalModule(sourceFile); + __privateSet(this, _scope, new RootScope( + sourceFile.isDeclarationFile && isModule && !containsExportStatement(sourceFile), + !isModule + )); + const cb = (node) => { + if (isBlockScopeBoundary(node)) { + return continueWithScope( + node, + new BlockScope(__privateGet(this, _scope).getFunctionScope(), __privateGet(this, _scope)), + handleBlockScope + ); + } + switch (node.kind) { + case import_typescript24.default.SyntaxKind.ClassExpression: + return continueWithScope( + node, + node.name !== void 0 ? new ClassExpressionScope( + node.name, + __privateGet(this, _scope) + ) : new NonRootScope(__privateGet(this, _scope), 1 /* Function */) + ); + case import_typescript24.default.SyntaxKind.ClassDeclaration: + __privateMethod(this, _handleDeclaration, handleDeclaration_fn).call(this, node, true, 4 /* Value */ | 2 /* Type */); + return continueWithScope( + node, + new NonRootScope(__privateGet(this, _scope), 1 /* Function */) + ); + case import_typescript24.default.SyntaxKind.InterfaceDeclaration: + case import_typescript24.default.SyntaxKind.TypeAliasDeclaration: + __privateMethod(this, _handleDeclaration, handleDeclaration_fn).call(this, node, true, 2 /* Type */); + return continueWithScope( + node, + new NonRootScope(__privateGet(this, _scope), 4 /* Type */) + ); + case import_typescript24.default.SyntaxKind.EnumDeclaration: + __privateMethod(this, _handleDeclaration, handleDeclaration_fn).call(this, node, true, 7 /* Any */); + return continueWithScope( + node, + __privateGet(this, _scope).createOrReuseEnumScope( + node.name.text, + includesModifier( + node.modifiers, + import_typescript24.default.SyntaxKind.ExportKeyword + ) + ) + ); + case import_typescript24.default.SyntaxKind.ModuleDeclaration: + return __privateMethod(this, _handleModule, handleModule_fn).call(this, node, continueWithScope); + case import_typescript24.default.SyntaxKind.MappedType: + return continueWithScope( + node, + new NonRootScope(__privateGet(this, _scope), 4 /* Type */) + ); + case import_typescript24.default.SyntaxKind.FunctionExpression: + case import_typescript24.default.SyntaxKind.ArrowFunction: + case import_typescript24.default.SyntaxKind.Constructor: + case import_typescript24.default.SyntaxKind.MethodDeclaration: + case import_typescript24.default.SyntaxKind.FunctionDeclaration: + case import_typescript24.default.SyntaxKind.GetAccessor: + case import_typescript24.default.SyntaxKind.SetAccessor: + case import_typescript24.default.SyntaxKind.MethodSignature: + case import_typescript24.default.SyntaxKind.CallSignature: + case import_typescript24.default.SyntaxKind.ConstructSignature: + case import_typescript24.default.SyntaxKind.ConstructorType: + case import_typescript24.default.SyntaxKind.FunctionType: + return __privateMethod(this, _handleFunctionLikeDeclaration, handleFunctionLikeDeclaration_fn).call(this, node, cb, variableCallback); + case import_typescript24.default.SyntaxKind.ConditionalType: + return __privateMethod(this, _handleConditionalType, handleConditionalType_fn).call(this, node, cb, variableCallback); + case import_typescript24.default.SyntaxKind.VariableDeclarationList: + __privateMethod(this, _handleVariableDeclaration, handleVariableDeclaration_fn).call(this, node); + break; + case import_typescript24.default.SyntaxKind.Parameter: + if (node.parent.kind !== import_typescript24.default.SyntaxKind.IndexSignature && (node.name.kind !== import_typescript24.default.SyntaxKind.Identifier || identifierToKeywordKind( + node.name + ) !== import_typescript24.default.SyntaxKind.ThisKeyword)) { + __privateMethod(this, _handleBindingName, handleBindingName_fn).call(this, node.name, false, false); + } + break; + case import_typescript24.default.SyntaxKind.EnumMember: + __privateGet(this, _scope).addVariable( + getPropertyName(node.name), + node.name, + 1 /* Function */, + true, + 4 /* Value */ + ); + break; + case import_typescript24.default.SyntaxKind.ImportClause: + case import_typescript24.default.SyntaxKind.ImportSpecifier: + case import_typescript24.default.SyntaxKind.NamespaceImport: + case import_typescript24.default.SyntaxKind.ImportEqualsDeclaration: + __privateMethod(this, _handleDeclaration, handleDeclaration_fn).call(this, node, false, 7 /* Any */ | 8 /* Import */); + break; + case import_typescript24.default.SyntaxKind.TypeParameter: + __privateGet(this, _scope).addVariable( + node.name.text, + node.name, + node.parent.kind === import_typescript24.default.SyntaxKind.InferType ? 8 /* InferType */ : 7 /* Type */, + false, + 2 /* Type */ + ); + break; + case import_typescript24.default.SyntaxKind.ExportSpecifier: + if (node.propertyName !== void 0) { + return __privateGet(this, _scope).markExported( + node.propertyName, + node.name + ); + } + return __privateGet(this, _scope).markExported(node.name); + case import_typescript24.default.SyntaxKind.ExportAssignment: + if (node.expression.kind === import_typescript24.default.SyntaxKind.Identifier) { + return __privateGet(this, _scope).markExported( + node.expression + ); + } + break; + case import_typescript24.default.SyntaxKind.Identifier: { + const domain = getUsageDomain(node); + if (domain !== void 0) { + __privateGet(this, _scope).addUse({ domain, location: node }); + } + return; + } + } + return import_typescript24.default.forEachChild(node, cb); + }; + const continueWithScope = (node, scope, next = forEachChild) => { + const savedScope = __privateGet(this, _scope); + __privateSet(this, _scope, scope); + next(node); + __privateGet(this, _scope).end(variableCallback); + __privateSet(this, _scope, savedScope); + }; + const handleBlockScope = (node) => { + if (node.kind === import_typescript24.default.SyntaxKind.CatchClause && node.variableDeclaration !== void 0) { + __privateMethod(this, _handleBindingName, handleBindingName_fn).call(this, node.variableDeclaration.name, true, false); + } + return import_typescript24.default.forEachChild(node, cb); + }; + import_typescript24.default.forEachChild(sourceFile, cb); + __privateGet(this, _scope).end(variableCallback); + return __privateGet(this, _result); + function forEachChild(node) { + return import_typescript24.default.forEachChild(node, cb); + } + } +}; +_result = new WeakMap(); +_scope = new WeakMap(); +_handleBindingName = new WeakSet(); +handleBindingName_fn = function(name, blockScoped, exported) { + if (name.kind === import_typescript24.default.SyntaxKind.Identifier) { + return __privateGet(this, _scope).addVariable( + name.text, + name, + blockScoped ? 3 /* Block */ : 1 /* Function */, + exported, + 4 /* Value */ + ); + } + forEachDestructuringIdentifier(name, (declaration) => { + __privateGet(this, _scope).addVariable( + declaration.name.text, + declaration.name, + blockScoped ? 3 /* Block */ : 1 /* Function */, + exported, + 4 /* Value */ + ); + }); +}; +_handleConditionalType = new WeakSet(); +handleConditionalType_fn = function(node, cb, varCb) { + const savedScope = __privateGet(this, _scope); + const scope = __privateSet(this, _scope, new ConditionalTypeScope(savedScope)); + cb(node.checkType); + scope.updateState(1 /* Extends */); + cb(node.extendsType); + scope.updateState(2 /* TrueType */); + cb(node.trueType); + scope.updateState(3 /* FalseType */); + cb(node.falseType); + scope.end(varCb); + __privateSet(this, _scope, savedScope); +}; +_handleDeclaration = new WeakSet(); +handleDeclaration_fn = function(node, blockScoped, domain) { + if (node.name !== void 0) { + __privateGet(this, _scope).addVariable( + node.name.text, + node.name, + blockScoped ? 3 /* Block */ : 1 /* Function */, + includesModifier( + node.modifiers, + import_typescript24.default.SyntaxKind.ExportKeyword + ), + domain + ); + } +}; +_handleFunctionLikeDeclaration = new WeakSet(); +handleFunctionLikeDeclaration_fn = function(node, cb, varCb) { + if (canHaveDecorators(node)) { + getDecorators(node)?.forEach(cb); + } + const savedScope = __privateGet(this, _scope); + if (node.kind === import_typescript24.default.SyntaxKind.FunctionDeclaration) { + __privateMethod(this, _handleDeclaration, handleDeclaration_fn).call(this, node, false, 4 /* Value */); + } + const scope = __privateSet(this, _scope, node.kind === import_typescript24.default.SyntaxKind.FunctionExpression && node.name !== void 0 ? new FunctionExpressionScope(node.name, savedScope) : new FunctionScope(savedScope)); + if (node.name !== void 0) { + cb(node.name); + } + if (node.typeParameters !== void 0) { + node.typeParameters.forEach(cb); + } + node.parameters.forEach(cb); + if (node.type !== void 0) { + cb(node.type); + } + if (node.body !== void 0) { + scope.beginBody(); + cb(node.body); + } + scope.end(varCb); + __privateSet(this, _scope, savedScope); +}; +_handleModule = new WeakSet(); +handleModule_fn = function(node, next) { + if (node.flags & import_typescript24.default.NodeFlags.GlobalAugmentation) { + return next( + node, + __privateGet(this, _scope).createOrReuseNamespaceScope("-global", false, true, false) + ); + } + if (node.name.kind === import_typescript24.default.SyntaxKind.Identifier) { + const exported = isNamespaceExported(node); + __privateGet(this, _scope).addVariable( + node.name.text, + node.name, + 1 /* Function */, + exported, + 1 /* Namespace */ | 4 /* Value */ + ); + const ambient = includesModifier( + node.modifiers, + import_typescript24.default.SyntaxKind.DeclareKeyword + ); + return next( + node, + __privateGet(this, _scope).createOrReuseNamespaceScope( + node.name.text, + exported, + ambient, + ambient && namespaceHasExportStatement(node) + ) + ); + } + return next( + node, + __privateGet(this, _scope).createOrReuseNamespaceScope( + `"${node.name.text}"`, + false, + true, + namespaceHasExportStatement(node) + ) + ); +}; +_handleVariableDeclaration = new WeakSet(); +handleVariableDeclaration_fn = function(declarationList) { + const blockScoped = isBlockScopedVariableDeclarationList(declarationList); + const exported = declarationList.parent.kind === import_typescript24.default.SyntaxKind.VariableStatement && includesModifier( + declarationList.parent.modifiers, + import_typescript24.default.SyntaxKind.ExportKeyword + ); + for (const declaration of declarationList.declarations) { + __privateMethod(this, _handleBindingName, handleBindingName_fn).call(this, declaration.name, blockScoped, exported); + } +}; +function isNamespaceExported(node) { + return node.parent.kind === import_typescript24.default.SyntaxKind.ModuleDeclaration || includesModifier(node.modifiers, import_typescript24.default.SyntaxKind.ExportKeyword); +} +function namespaceHasExportStatement(ns) { + if (ns.body === void 0 || ns.body.kind !== import_typescript24.default.SyntaxKind.ModuleBlock) { + return false; + } + return containsExportStatement(ns.body); +} +function containsExportStatement(block) { + for (const statement of block.statements) { + if (statement.kind === import_typescript24.default.SyntaxKind.ExportDeclaration || statement.kind === import_typescript24.default.SyntaxKind.ExportAssignment) { + return true; + } + } + return false; +} +function isBlockScopedVariableDeclarationList(declarationList) { + return (declarationList.flags & import_typescript24.default.NodeFlags.BlockScoped) !== 0; +} +function forEachDestructuringIdentifier(pattern, fn) { + for (const element of pattern.elements) { + if (element.kind !== import_typescript24.default.SyntaxKind.BindingElement) { + continue; + } + let result; + if (element.name.kind === import_typescript24.default.SyntaxKind.Identifier) { + result = fn(element); + } else { + result = forEachDestructuringIdentifier(element.name, fn); + } + if (result) { + return result; + } + } +} + +// src/usage/collectVariableUsage.ts +function collectVariableUsage(sourceFile) { + return new UsageWalker().getUsage(sourceFile); +} // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { + AccessKind, + DeclarationDomain, + UsageDomain, + collectVariableUsage, forEachComment, forEachToken, + getAccessKind, getCallSignaturesOfType, getPropertyOfType, getWellKnownSymbolPropertyOfType, @@ -1433,5 +2559,7 @@ function unionTypeParts(type) { isVariableLikeDeclaration, isVoidKeyword, symbolHasReadonlyDeclaration, + typeParts, unionTypeParts }); +//# sourceMappingURL=index.cjs.map \ No newline at end of file diff --git a/node_modules/ts-api-utils/lib/index.cjs.map b/node_modules/ts-api-utils/lib/index.cjs.map new file mode 100644 index 0000000000..646ad5a7bb --- /dev/null +++ b/node_modules/ts-api-utils/lib/index.cjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/index.ts","../src/comments.ts","../src/tokens.ts","../src/compilerOptions.ts","../src/flags.ts","../src/modifiers.ts","../src/nodes/access.ts","../src/syntax.ts","../src/nodes/typeGuards/compound.ts","../src/nodes/typeGuards/single.ts","../src/nodes/typeGuards/union.ts","../src/utils.ts","../src/scopes.ts","../src/types/getters.ts","../src/types/typeGuards/intrinsic.ts","../src/types/typeGuards/objects.ts","../src/types/typeGuards/single.ts","../src/types/typeGuards/compound.ts","../src/types/typeGuards/literal.ts","../src/types/utilities.ts","../src/nodes/utilities.ts","../src/usage/UsageWalker.ts","../src/usage/Scope.ts","../src/usage/declarations.ts","../src/usage/utils.ts","../src/usage/getPropertyName.ts","../src/usage/getUsageDomain.ts","../src/usage/scopes.ts","../src/usage/collectVariableUsage.ts"],"sourcesContent":["export * from \"./comments\";\nexport * from \"./compilerOptions\";\nexport * from \"./flags\";\nexport * from \"./modifiers\";\nexport * from \"./nodes\";\nexport * from \"./scopes\";\nexport * from \"./syntax\";\nexport * from \"./tokens\";\nexport * from \"./types\";\nexport * from \"./usage\";\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { forEachToken } from \"./tokens\";\n\n/**\n * Exclude trailing positions that would lead to scanning for trivia inside `JsxText`.\n * @internal\n */\nfunction canHaveTrailingTrivia(token: ts.Node): boolean {\n\tswitch (token.kind) {\n\t\tcase ts.SyntaxKind.CloseBraceToken:\n\t\t\t// after a JsxExpression inside a JsxElement's body can only be other JsxChild, but no trivia\n\t\t\treturn (\n\t\t\t\ttoken.parent.kind !== ts.SyntaxKind.JsxExpression ||\n\t\t\t\t!isJsxElementOrFragment(token.parent.parent)\n\t\t\t);\n\t\tcase ts.SyntaxKind.GreaterThanToken:\n\t\t\tswitch (token.parent.kind) {\n\t\t\t\tcase ts.SyntaxKind.JsxOpeningElement:\n\t\t\t\t\t// if end is not equal, this is part of the type arguments list. in all other cases it would be inside the element body\n\t\t\t\t\treturn token.end !== token.parent.end;\n\t\t\t\tcase ts.SyntaxKind.JsxOpeningFragment:\n\t\t\t\t\treturn false; // would be inside the fragment\n\t\t\t\tcase ts.SyntaxKind.JsxSelfClosingElement:\n\t\t\t\t\treturn (\n\t\t\t\t\t\ttoken.end !== token.parent.end || // if end is not equal, this is part of the type arguments list\n\t\t\t\t\t\t!isJsxElementOrFragment(token.parent.parent)\n\t\t\t\t\t); // there's only trailing trivia if it's the end of the top element\n\t\t\t\tcase ts.SyntaxKind.JsxClosingElement:\n\t\t\t\tcase ts.SyntaxKind.JsxClosingFragment:\n\t\t\t\t\t// there's only trailing trivia if it's the end of the top element\n\t\t\t\t\treturn !isJsxElementOrFragment(token.parent.parent.parent);\n\t\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Test if a node is a `JsxElement` or `JsxFragment`.\n * @internal\n */\nfunction isJsxElementOrFragment(\n\tnode: ts.Node,\n): node is ts.JsxElement | ts.JsxFragment {\n\treturn (\n\t\tnode.kind === ts.SyntaxKind.JsxElement ||\n\t\tnode.kind === ts.SyntaxKind.JsxFragment\n\t);\n}\n\n/**\n * Callback type used for {@link forEachComment}.\n * @category Callbacks\n */\nexport type ForEachCommentCallback = (\n\tfullText: string,\n\tcomment: ts.CommentRange,\n) => void;\n\n/**\n * Iterates over all comments owned by `node` or its children.\n * @category Nodes - Other Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * forEachComment(node, (fullText, comment) => {\n * console.log(`Found comment at position ${comment.pos}: '${fullText}'.`);\n * });\n * ```\n */\nexport function forEachComment(\n\tnode: ts.Node,\n\tcallback: ForEachCommentCallback,\n\tsourceFile: ts.SourceFile = node.getSourceFile(),\n): void {\n\t/* Visit all tokens and skip trivia.\n Comment ranges between tokens are parsed without the need of a scanner.\n forEachTokenWithWhitespace does intentionally not pay attention to the correct comment ownership of nodes as it always\n scans all trivia before each token, which could include trailing comments of the previous token.\n Comment ownership is done right in this function*/\n\tconst fullText = sourceFile.text;\n\tconst notJsx = sourceFile.languageVariant !== ts.LanguageVariant.JSX;\n\treturn forEachToken(\n\t\tnode,\n\t\t(token) => {\n\t\t\tif (token.pos === token.end) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (token.kind !== ts.SyntaxKind.JsxText) {\n\t\t\t\tts.forEachLeadingCommentRange(\n\t\t\t\t\tfullText,\n\t\t\t\t\t// skip shebang at position 0\n\t\t\t\t\ttoken.pos === 0 ? (ts.getShebang(fullText) ?? \"\").length : token.pos,\n\t\t\t\t\tcommentCallback,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (notJsx || canHaveTrailingTrivia(token)) {\n\t\t\t\treturn ts.forEachTrailingCommentRange(\n\t\t\t\t\tfullText,\n\t\t\t\t\ttoken.end,\n\t\t\t\t\tcommentCallback,\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tsourceFile,\n\t);\n\tfunction commentCallback(pos: number, end: number, kind: ts.CommentKind) {\n\t\tcallback(fullText, { end, kind, pos });\n\t}\n}\n","// Code largely based on ajafff/tsutils:\n// https://github.com/ajafff/tsutils/blob/03b4df15d14702f9c7a128ac3fae77171778d613/util/util.ts\n// Original license MIT:\n// https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\n/**\n * Callback type used for {@link forEachToken}.\n * @category Callbacks\n */\nexport type ForEachTokenCallback = (token: ts.Node) => void;\n\n/**\n * Iterates over all tokens of `node`\n * @category Nodes - Other Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * forEachToken(node, (token) => {\n * \tconsole.log(\"Found token:\", token.getText());\n * });\n * ```\n * @param node - The node whose tokens should be visited\n * @param callback - Is called for every token contained in `node`\n */\nexport function forEachToken(\n\tnode: ts.Node,\n\tcallback: ForEachTokenCallback,\n\tsourceFile: ts.SourceFile = node.getSourceFile(),\n): void {\n\tconst queue = [];\n\twhile (true) {\n\t\tif (ts.isTokenKind(node.kind)) {\n\t\t\tcallback(node);\n\t\t} else if (\n\t\t\t// eslint-disable-next-line deprecation/deprecation -- need for support of TS < 4.7\n\t\t\tnode.kind !== ts.SyntaxKind.JSDocComment\n\t\t) {\n\t\t\tconst children = node.getChildren(sourceFile);\n\t\t\tif (children.length === 1) {\n\t\t\t\tnode = children[0];\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// add children in reverse order, when we pop the next element from the queue, it's the first child\n\t\t\tfor (let i = children.length - 1; i >= 0; --i) {\n\t\t\t\tqueue.push(children[i]);\n\t\t\t}\n\t\t}\n\n\t\tif (queue.length === 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tnode = queue.pop()!;\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\n/**\n * An option that can be tested with {@link isCompilerOptionEnabled}.\n * @category Compiler Options\n */\nexport type BooleanCompilerOptions = keyof {\n\t[K in keyof ts.CompilerOptions as NonNullable<\n\t\tts.CompilerOptions[K]\n\t> extends boolean\n\t\t? K\n\t\t: never]: unknown;\n};\n\n/**\n * Checks if a given compiler option is enabled.\n * It handles dependencies of options, e.g. `declaration` is implicitly enabled by `composite` or `strictNullChecks` is enabled by `strict`.\n * However, it does not check dependencies that are already checked and reported as errors, e.g. `checkJs` without `allowJs`.\n * This function only handles boolean flags.\n * @category Compiler Options\n * @example\n * ```ts\n * const options = {\n * \tallowJs: true,\n * };\n *\n * isCompilerOptionEnabled(options, \"allowJs\"); // true\n * isCompilerOptionEnabled(options, \"allowSyntheticDefaultImports\"); // false\n * ```\n */\nexport function isCompilerOptionEnabled(\n\toptions: ts.CompilerOptions,\n\toption: BooleanCompilerOptions,\n): boolean {\n\tswitch (option) {\n\t\tcase \"stripInternal\":\n\t\tcase \"declarationMap\":\n\t\tcase \"emitDeclarationOnly\":\n\t\t\treturn (\n\t\t\t\toptions[option] === true &&\n\t\t\t\tisCompilerOptionEnabled(options, \"declaration\")\n\t\t\t);\n\t\tcase \"declaration\":\n\t\t\treturn (\n\t\t\t\toptions.declaration || isCompilerOptionEnabled(options, \"composite\")\n\t\t\t);\n\t\tcase \"incremental\":\n\t\t\treturn options.incremental === undefined\n\t\t\t\t? isCompilerOptionEnabled(options, \"composite\")\n\t\t\t\t: options.incremental;\n\t\tcase \"skipDefaultLibCheck\":\n\t\t\treturn (\n\t\t\t\toptions.skipDefaultLibCheck ||\n\t\t\t\tisCompilerOptionEnabled(options, \"skipLibCheck\")\n\t\t\t);\n\t\tcase \"suppressImplicitAnyIndexErrors\":\n\t\t\treturn (\n\t\t\t\toptions.suppressImplicitAnyIndexErrors === true &&\n\t\t\t\tisCompilerOptionEnabled(options, \"noImplicitAny\")\n\t\t\t);\n\t\tcase \"allowSyntheticDefaultImports\":\n\t\t\treturn options.allowSyntheticDefaultImports !== undefined\n\t\t\t\t? options.allowSyntheticDefaultImports\n\t\t\t\t: isCompilerOptionEnabled(options, \"esModuleInterop\") ||\n\t\t\t\t\t\toptions.module === ts.ModuleKind.System;\n\t\tcase \"noUncheckedIndexedAccess\":\n\t\t\treturn (\n\t\t\t\toptions.noUncheckedIndexedAccess === true &&\n\t\t\t\tisCompilerOptionEnabled(options, \"strictNullChecks\")\n\t\t\t);\n\t\tcase \"allowJs\":\n\t\t\treturn options.allowJs === undefined\n\t\t\t\t? isCompilerOptionEnabled(options, \"checkJs\")\n\t\t\t\t: options.allowJs;\n\t\tcase \"noImplicitAny\":\n\t\tcase \"noImplicitThis\":\n\t\tcase \"strictNullChecks\":\n\t\tcase \"strictFunctionTypes\":\n\t\tcase \"strictPropertyInitialization\":\n\t\tcase \"alwaysStrict\":\n\t\tcase \"strictBindCallApply\":\n\t\t\ttype AssertEqual = U; // make sure all strict options are handled here\n\t\t\treturn isStrictCompilerOptionEnabled(\n\t\t\t\toptions,\n\t\t\t\toption as AssertEqual,\n\t\t\t);\n\t}\n\n\treturn options[option] === true;\n}\n\n/**\n * An option that can be tested with {@link isStrictCompilerOptionEnabled}.\n * @category Compiler Options\n */\nexport type StrictCompilerOption =\n\t| \"alwaysStrict\"\n\t| \"noImplicitAny\"\n\t| \"noImplicitThis\"\n\t| \"strictBindCallApply\"\n\t| \"strictFunctionTypes\"\n\t| \"strictNullChecks\"\n\t| \"strictPropertyInitialization\";\n\n/**\n * Checks if a given compiler option is enabled, accounting for whether all flags\n * (except `strictPropertyInitialization`) have been enabled by `strict: true`.\n * @category Compiler Options\n * @example\n * ```ts\n * const optionsLenient = {\n * \tnoImplicitAny: true,\n * };\n *\n * isStrictCompilerOptionEnabled(optionsLenient, \"noImplicitAny\"); // true\n * isStrictCompilerOptionEnabled(optionsLenient, \"noImplicitThis\"); // false\n * ```\n * @example\n * ```ts\n * const optionsStrict = {\n * \tnoImplicitThis: false,\n * \tstrict: true,\n * };\n *\n * isStrictCompilerOptionEnabled(optionsStrict, \"noImplicitAny\"); // true\n * isStrictCompilerOptionEnabled(optionsStrict, \"noImplicitThis\"); // false\n * ```\n */\nexport function isStrictCompilerOptionEnabled(\n\toptions: ts.CompilerOptions,\n\toption: StrictCompilerOption,\n): boolean {\n\treturn (\n\t\t(options.strict ? options[option] !== false : options[option] === true) &&\n\t\t(option !== \"strictPropertyInitialization\" ||\n\t\t\tisStrictCompilerOptionEnabled(options, \"strictNullChecks\"))\n\t);\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\n/**\n * Test if the given flag is set on the combined flags.\n * @internal\n */\nfunction isFlagSet(allFlags: number, flag: number): boolean {\n\treturn (allFlags & flag) !== 0;\n}\n\n/**\n * Test if the given flag is set on the given object.\n * @internal\n */\nfunction isFlagSetOnObject(obj: { flags: number }, flag: number): boolean {\n\treturn isFlagSet(obj.flags, flag);\n}\n\n/**\n * Test if the given node has the given `ModifierFlags` set.\n * @category Nodes - Flag Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isModifierFlagSet(node, ts.ModifierFlags.Abstract)) {\n * // ...\n * }\n * ```\n */\nexport function isModifierFlagSet(\n\tnode: ts.Declaration,\n\tflag: ts.ModifierFlags,\n): boolean {\n\treturn isFlagSet(ts.getCombinedModifierFlags(node), flag);\n}\n\n/**\n * Test if the given node has the given `NodeFlags` set.\n * @category Nodes - Flag Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNodeFlagSet(node, ts.NodeFlags.AwaitContext)) {\n * // ...\n * }\n * ```\n */\nexport const isNodeFlagSet: (node: ts.Node, flag: ts.NodeFlags) => boolean =\n\tisFlagSetOnObject;\n\n/**\n * Test if the given node has the given `ObjectFlags` set.\n * @category Nodes - Flag Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isObjectFlagSet(node, ts.ObjectFlags.Anonymous)) {\n * // ...\n * }\n * ```\n */\nexport function isObjectFlagSet(\n\tobjectType: ts.ObjectType,\n\tflag: ts.ObjectFlags,\n): boolean {\n\treturn isFlagSet(objectType.objectFlags, flag);\n}\n\n/**\n * Test if the given node has the given `SymbolFlags` set.\n * @category Nodes - Flag Utilities\n * @example\n * ```ts\n * declare const symbol: ts.Symbol;\n *\n * if (isSymbolFlagSet(symbol, ts.SymbolFlags.Accessor)) {\n * // ...\n * }\n * ```\n */\nexport const isSymbolFlagSet: (\n\tsymbol: ts.Symbol,\n\tflag: ts.SymbolFlags,\n) => boolean = isFlagSetOnObject;\n\n/**\n * Test if the given node has the given `TypeFlags` set.\n * @category Nodes - Flag Utilities\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTypeFlagSet(type, ts.TypeFlags.Any)) {\n * // ...\n * }\n * ```\n */\nexport const isTypeFlagSet: (type: ts.Type, flag: ts.TypeFlags) => boolean =\n\tisFlagSetOnObject;\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\n/**\n * Test if the given iterable includes a modifier of any of the given kinds.\n * @category Modifier Utilities\n * @example\n * ```ts\n * declare const modifiers: ts.Modifier[];\n *\n * includesModifier(modifiers, ts.SyntaxKind.AbstractKeyword);\n * ```\n */\nexport function includesModifier(\n\tmodifiers: Iterable | undefined,\n\t...kinds: ts.ModifierSyntaxKind[]\n): boolean {\n\tif (modifiers === undefined) {\n\t\treturn false;\n\t}\n\n\tfor (const modifier of modifiers) {\n\t\tif (kinds.includes(modifier.kind as ts.ModifierSyntaxKind)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { isAssignmentKind } from \"../syntax\";\n\n/* eslint-disable perfectionist/sort-enums */\n/**\n * What operations(s), if any, an expression applies.\n */\nexport enum AccessKind {\n\tNone = 0,\n\tRead = 1 << 0,\n\tWrite = 1 << 1,\n\tDelete = 1 << 2,\n\tReadWrite = Read | Write,\n\t/* eslint-enable perfectionist/sort-enums */\n}\n\n/**\n * Determines which operation(s), if any, an expression applies.\n * @example\n * ```ts\n * declare const node: ts.Expression;\n *\n * if (getAccessKind(node).Write & AccessKind.Write) !== 0) {\n * // this is a reassignment (write)\n * }\n * ```\n */\nexport function getAccessKind(node: ts.Expression): AccessKind {\n\tconst parent = node.parent;\n\tswitch (parent.kind) {\n\t\tcase ts.SyntaxKind.DeleteExpression:\n\t\t\treturn AccessKind.Delete;\n\t\tcase ts.SyntaxKind.PostfixUnaryExpression:\n\t\t\treturn AccessKind.ReadWrite;\n\t\tcase ts.SyntaxKind.PrefixUnaryExpression:\n\t\t\treturn (parent as ts.PrefixUnaryExpression).operator ===\n\t\t\t\tts.SyntaxKind.PlusPlusToken ||\n\t\t\t\t(parent as ts.PrefixUnaryExpression).operator ===\n\t\t\t\t\tts.SyntaxKind.MinusMinusToken\n\t\t\t\t? AccessKind.ReadWrite\n\t\t\t\t: AccessKind.Read;\n\t\tcase ts.SyntaxKind.BinaryExpression:\n\t\t\treturn (parent as ts.BinaryExpression).right === node\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: !isAssignmentKind((parent as ts.BinaryExpression).operatorToken.kind)\n\t\t\t\t\t? AccessKind.Read\n\t\t\t\t\t: (parent as ts.BinaryExpression).operatorToken.kind ===\n\t\t\t\t\t\t ts.SyntaxKind.EqualsToken\n\t\t\t\t\t\t? AccessKind.Write\n\t\t\t\t\t\t: AccessKind.ReadWrite;\n\t\tcase ts.SyntaxKind.ShorthandPropertyAssignment:\n\t\t\treturn (parent as ts.ShorthandPropertyAssignment)\n\t\t\t\t.objectAssignmentInitializer === node\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: isInDestructuringAssignment(parent as ts.ShorthandPropertyAssignment)\n\t\t\t\t\t? AccessKind.Write\n\t\t\t\t\t: AccessKind.Read;\n\t\tcase ts.SyntaxKind.PropertyAssignment:\n\t\t\treturn (parent as ts.PropertyAssignment).name === node\n\t\t\t\t? AccessKind.None\n\t\t\t\t: isInDestructuringAssignment(parent as ts.PropertyAssignment)\n\t\t\t\t\t? AccessKind.Write\n\t\t\t\t\t: AccessKind.Read;\n\t\tcase ts.SyntaxKind.ArrayLiteralExpression:\n\t\tcase ts.SyntaxKind.SpreadElement:\n\t\tcase ts.SyntaxKind.SpreadAssignment:\n\t\t\treturn isInDestructuringAssignment(\n\t\t\t\tparent as\n\t\t\t\t\t| ts.ArrayLiteralExpression\n\t\t\t\t\t| ts.SpreadAssignment\n\t\t\t\t\t| ts.SpreadElement,\n\t\t\t)\n\t\t\t\t? AccessKind.Write\n\t\t\t\t: AccessKind.Read;\n\t\tcase ts.SyntaxKind.ParenthesizedExpression:\n\t\tcase ts.SyntaxKind.NonNullExpression:\n\t\tcase ts.SyntaxKind.TypeAssertionExpression:\n\t\tcase ts.SyntaxKind.AsExpression:\n\t\t\t// (foo! as {})++\n\t\t\treturn getAccessKind(parent as ts.Expression);\n\t\tcase ts.SyntaxKind.ForOfStatement:\n\t\tcase ts.SyntaxKind.ForInStatement:\n\t\t\treturn (parent as ts.ForInOrOfStatement).initializer === node\n\t\t\t\t? AccessKind.Write\n\t\t\t\t: AccessKind.Read;\n\t\tcase ts.SyntaxKind.ExpressionWithTypeArguments:\n\t\t\treturn (\n\t\t\t\t(parent as ts.ExpressionWithTypeArguments).parent as ts.HeritageClause\n\t\t\t).token === ts.SyntaxKind.ExtendsKeyword &&\n\t\t\t\tparent.parent.parent.kind !== ts.SyntaxKind.InterfaceDeclaration\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: AccessKind.None;\n\t\tcase ts.SyntaxKind.ComputedPropertyName:\n\t\tcase ts.SyntaxKind.ExpressionStatement:\n\t\tcase ts.SyntaxKind.TypeOfExpression:\n\t\tcase ts.SyntaxKind.ElementAccessExpression:\n\t\tcase ts.SyntaxKind.ForStatement:\n\t\tcase ts.SyntaxKind.IfStatement:\n\t\tcase ts.SyntaxKind.DoStatement:\n\t\tcase ts.SyntaxKind.WhileStatement:\n\t\tcase ts.SyntaxKind.SwitchStatement:\n\t\tcase ts.SyntaxKind.WithStatement:\n\t\tcase ts.SyntaxKind.ThrowStatement:\n\t\tcase ts.SyntaxKind.CallExpression:\n\t\tcase ts.SyntaxKind.NewExpression:\n\t\tcase ts.SyntaxKind.TaggedTemplateExpression:\n\t\tcase ts.SyntaxKind.JsxExpression:\n\t\tcase ts.SyntaxKind.Decorator:\n\t\tcase ts.SyntaxKind.TemplateSpan:\n\t\tcase ts.SyntaxKind.JsxOpeningElement:\n\t\tcase ts.SyntaxKind.JsxSelfClosingElement:\n\t\tcase ts.SyntaxKind.JsxSpreadAttribute:\n\t\tcase ts.SyntaxKind.VoidExpression:\n\t\tcase ts.SyntaxKind.ReturnStatement:\n\t\tcase ts.SyntaxKind.AwaitExpression:\n\t\tcase ts.SyntaxKind.YieldExpression:\n\t\tcase ts.SyntaxKind.ConditionalExpression:\n\t\tcase ts.SyntaxKind.CaseClause:\n\t\tcase ts.SyntaxKind.JsxElement:\n\t\t\treturn AccessKind.Read;\n\t\tcase ts.SyntaxKind.ArrowFunction:\n\t\t\treturn (parent as ts.ArrowFunction).body === node\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: AccessKind.Write;\n\t\tcase ts.SyntaxKind.PropertyDeclaration:\n\t\tcase ts.SyntaxKind.VariableDeclaration:\n\t\tcase ts.SyntaxKind.Parameter:\n\t\tcase ts.SyntaxKind.EnumMember:\n\t\tcase ts.SyntaxKind.BindingElement:\n\t\tcase ts.SyntaxKind.JsxAttribute:\n\t\t\treturn (parent as ts.JsxAttribute).initializer === node\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: AccessKind.None;\n\t\tcase ts.SyntaxKind.PropertyAccessExpression:\n\t\t\treturn (parent as ts.PropertyAccessExpression).expression === node\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: AccessKind.None;\n\t\tcase ts.SyntaxKind.ExportAssignment:\n\t\t\treturn (parent as ts.ExportAssignment).isExportEquals\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: AccessKind.None;\n\t}\n\n\treturn AccessKind.None;\n}\n\nfunction isInDestructuringAssignment(\n\tnode:\n\t\t| ts.ArrayLiteralExpression\n\t\t| ts.ObjectLiteralExpression\n\t\t| ts.PropertyAssignment\n\t\t| ts.ShorthandPropertyAssignment\n\t\t| ts.SpreadAssignment\n\t\t| ts.SpreadElement,\n): boolean {\n\tswitch (node.kind) {\n\t\tcase ts.SyntaxKind.ShorthandPropertyAssignment:\n\t\t\tif (node.objectAssignmentInitializer !== undefined) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t// falls through\n\t\tcase ts.SyntaxKind.PropertyAssignment:\n\t\tcase ts.SyntaxKind.SpreadAssignment:\n\t\t\tnode = node.parent as\n\t\t\t\t| ts.ArrayLiteralExpression\n\t\t\t\t| ts.ObjectLiteralExpression;\n\t\t\tbreak;\n\t\tcase ts.SyntaxKind.SpreadElement:\n\t\t\tif (node.parent.kind !== ts.SyntaxKind.ArrayLiteralExpression) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tnode = node.parent;\n\t}\n\n\twhile (true) {\n\t\tswitch (node.parent.kind) {\n\t\t\tcase ts.SyntaxKind.BinaryExpression:\n\t\t\t\treturn (\n\t\t\t\t\t(node.parent as ts.BinaryExpression).left === node &&\n\t\t\t\t\t(node.parent as ts.BinaryExpression).operatorToken.kind ===\n\t\t\t\t\t\tts.SyntaxKind.EqualsToken\n\t\t\t\t);\n\t\t\tcase ts.SyntaxKind.ForOfStatement:\n\t\t\t\treturn (node.parent as ts.ForOfStatement).initializer === node;\n\t\t\tcase ts.SyntaxKind.ArrayLiteralExpression:\n\t\t\tcase ts.SyntaxKind.ObjectLiteralExpression:\n\t\t\t\tnode = node.parent as\n\t\t\t\t\t| ts.ArrayLiteralExpression\n\t\t\t\t\t| ts.ObjectLiteralExpression;\n\t\t\t\tbreak;\n\t\t\tcase ts.SyntaxKind.SpreadAssignment:\n\t\t\tcase ts.SyntaxKind.PropertyAssignment:\n\t\t\t\tnode = node.parent.parent as ts.ObjectLiteralExpression;\n\t\t\t\tbreak;\n\t\t\tcase ts.SyntaxKind.SpreadElement:\n\t\t\t\tif (node.parent.parent.kind !== ts.SyntaxKind.ArrayLiteralExpression) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tnode = node.parent.parent as ts.ArrayLiteralExpression;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\n/**\n * Test of the kind given is for assignment.\n * @category Syntax Utilities\n * @example\n * ```ts\n * declare const kind: ts.SyntaxKind;\n *\n * isAssignmentKind(kind);\n * ```\n */\nexport function isAssignmentKind(kind: ts.SyntaxKind): boolean {\n\treturn (\n\t\tkind >= ts.SyntaxKind.FirstAssignment &&\n\t\tkind <= ts.SyntaxKind.LastAssignment\n\t);\n}\n\n/**\n * Test if a string is numeric.\n * @category Syntax Utilities\n * @example\n * ```ts\n * isNumericPropertyName(\"abc\"); // false\n * isNumericPropertyName(\"123\"); // true\n * ```\n */\nexport function isNumericPropertyName(name: string | ts.__String): boolean {\n\treturn String(+name) === name;\n}\n\nfunction charSize(ch: number) {\n\treturn ch >= 0x10000 ? 2 : 1;\n}\n\n/**\n * Determines whether the given text can be used to access a property with a `PropertyAccessExpression` while preserving the property's name.\n * @category Syntax Utilities\n * @example\n * ```ts\n * isValidPropertyAccess(\"abc\"); // true\n * isValidPropertyAccess(\"123\"); // false\n * ```\n */\nexport function isValidPropertyAccess(\n\ttext: string,\n\tlanguageVersion = ts.ScriptTarget.Latest,\n): boolean {\n\tif (text.length === 0) {\n\t\treturn false;\n\t}\n\n\tlet ch = text.codePointAt(0)!;\n\tif (!ts.isIdentifierStart(ch, languageVersion)) {\n\t\treturn false;\n\t}\n\n\tfor (let i = charSize(ch); i < text.length; i += charSize(ch)) {\n\t\tch = text.codePointAt(i)!;\n\t\tif (!ts.isIdentifierPart(ch, languageVersion)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n","import ts from \"typescript\";\n\nimport { isSuperExpression } from \"./single\";\nimport {\n\tisDeclarationName,\n\tisEntityNameExpression,\n\tisJSDocNamespaceBody,\n\tisJsxTagNameExpression,\n\tisNamespaceBody,\n} from \"./union\";\n\n/**\n * An `AssertionExpression` that is declared as const.\n * @category Node Types\n */\nexport type ConstAssertionExpression = ts.AssertionExpression & {\n\ttype: ts.TypeReferenceNode;\n\ttypeName: ConstAssertionIdentifier;\n};\n\n/**\n * An `Identifier` with an `escapedText` value of `\"const\"`.\n * @category Node Types\n */\nexport type ConstAssertionIdentifier = ts.Identifier & {\n\tescapedText: ts.__String & \"const\";\n};\n\n/**\n * Test if a node is a {@link ConstAssertionExpression}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isConstAssertionExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link ConstAssertionExpression}.\n */\nexport function isConstAssertionExpression(\n\tnode: ts.AssertionExpression,\n): node is ConstAssertionExpression {\n\treturn (\n\t\tts.isTypeReferenceNode(node.type) &&\n\t\tts.isIdentifier(node.type.typeName) &&\n\t\tnode.type.typeName.escapedText === \"const\"\n\t);\n}\n\n/**\n * Test if a node is an `IterationStatement`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isIterationStatement(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `IterationStatement`.\n */\nexport function isIterationStatement(\n\tnode: ts.Node,\n): node is ts.IterationStatement {\n\tswitch (node.kind) {\n\t\tcase ts.SyntaxKind.DoStatement:\n\t\tcase ts.SyntaxKind.ForInStatement:\n\t\tcase ts.SyntaxKind.ForOfStatement:\n\t\tcase ts.SyntaxKind.ForStatement:\n\t\tcase ts.SyntaxKind.WhileStatement:\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\n/**\n * Test if a node is a `JSDocNamespaceDeclaration`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJSDocNamespaceDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JSDocNamespaceDeclaration`.\n */\nexport function isJSDocNamespaceDeclaration(\n\tnode: ts.Node,\n): node is ts.JSDocNamespaceDeclaration {\n\treturn (\n\t\tts.isModuleDeclaration(node) &&\n\t\tts.isIdentifier(node.name) &&\n\t\t(node.body === undefined || isJSDocNamespaceBody(node.body))\n\t);\n}\n\n/**\n * Test if a node is a `JsxTagNamePropertyAccess`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsxTagNamePropertyAccess(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsxTagNamePropertyAccess`.\n */\nexport function isJsxTagNamePropertyAccess(\n\tnode: ts.Node,\n): node is ts.JsxTagNamePropertyAccess {\n\treturn (\n\t\tts.isPropertyAccessExpression(node) &&\n\t\t// eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts < 5\n\t\tisJsxTagNameExpression(node.expression)\n\t);\n}\n\n/**\n * a `NamedDeclaration` that definitely has a name.\n * @category Node Types\n */\nexport interface NamedDeclarationWithName extends ts.NamedDeclaration {\n\tname: ts.DeclarationName;\n}\n\n/**\n * Test if a node is a {@link NamedDeclarationWithName}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNamedDeclarationWithName(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link NamedDeclarationWithName}.\n */\nexport function isNamedDeclarationWithName(\n\tnode: ts.Declaration,\n): node is NamedDeclarationWithName {\n\treturn (\n\t\t\"name\" in node &&\n\t\tnode.name !== undefined &&\n\t\tnode.name !== null &&\n\t\tisDeclarationName(node.name as ts.Node)\n\t);\n}\n\n/**\n * Test if a node is a `NamespaceDeclaration`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNamespaceDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `NamespaceDeclaration`.\n */\nexport function isNamespaceDeclaration(\n\tnode: ts.Node,\n): node is ts.NamespaceDeclaration {\n\treturn (\n\t\tts.isModuleDeclaration(node) &&\n\t\tts.isIdentifier(node.name) &&\n\t\tnode.body !== undefined &&\n\t\tisNamespaceBody(node.body)\n\t);\n}\n\n/**\n * A number or string-like literal.\n * @category Node Types\n */\nexport type NumericOrStringLikeLiteral =\n\t| ts.NumericLiteral\n\t| ts.StringLiteralLike;\n\n/**\n * Test if a node is a {@link NumericOrStringLikeLiteral}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNumericOrStringLikeLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link NumericOrStringLikeLiteral}.\n */\nexport function isNumericOrStringLikeLiteral(\n\tnode: ts.Node,\n): node is NumericOrStringLikeLiteral {\n\tswitch (node.kind) {\n\t\tcase ts.SyntaxKind.StringLiteral:\n\t\tcase ts.SyntaxKind.NumericLiteral:\n\t\tcase ts.SyntaxKind.NoSubstitutionTemplateLiteral:\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\n/**\n * Test if a node is a `PropertyAccessEntityNameExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isPropertyAccessEntityNameExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `PropertyAccessEntityNameExpression`.\n */\nexport function isPropertyAccessEntityNameExpression(\n\tnode: ts.Node,\n): node is ts.PropertyAccessEntityNameExpression {\n\treturn (\n\t\tts.isPropertyAccessExpression(node) &&\n\t\tts.isIdentifier(node.name) &&\n\t\tisEntityNameExpression(node.expression)\n\t);\n}\n\n/**\n * Test if a node is a `SuperElementAccessExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSuperElementAccessExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `SuperElementAccessExpression`.\n */\nexport function isSuperElementAccessExpression(\n\tnode: ts.Node,\n): node is ts.SuperElementAccessExpression {\n\treturn (\n\t\tts.isElementAccessExpression(node) && isSuperExpression(node.expression)\n\t);\n}\n\n/**\n * Test if a node is a `SuperPropertyAccessExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSuperPropertyAccessExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `SuperPropertyAccessExpression`.\n */\nexport function isSuperPropertyAccessExpression(\n\tnode: ts.Node,\n): node is ts.SuperPropertyAccessExpression {\n\treturn (\n\t\tts.isPropertyAccessExpression(node) && isSuperExpression(node.expression)\n\t);\n}\n","import ts from \"typescript\";\n\n/**\n * A node that represents the any keyword.\n * @category Node Types\n */\nexport type AnyKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the bigint keyword.\n * @category Node Types\n */\nexport type BigIntKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the boolean keyword.\n * @category Node Types\n */\nexport type BooleanKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the false keyword.\n * @category Node Types\n */\nexport type FalseKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the import keyword.\n * @category Node Types\n */\nexport type ImportKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the never keyword.\n * @category Node Types\n */\nexport type NeverKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the null keyword.\n * @category Node Types\n */\nexport type NullKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the number keyword.\n * @category Node Types\n */\nexport type NumberKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the object keyword.\n * @category Node Types\n */\nexport type ObjectKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the string keyword.\n * @category Node Types\n */\nexport type StringKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the super keyword.\n * @category Node Types\n */\nexport type SuperKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the symbol keyword.\n * @category Node Types\n */\nexport type SymbolKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the this keyword.\n * @category Node Types\n */\nexport type ThisKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the true keyword.\n * @category Node Types\n */\nexport type TrueKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the undefined keyword.\n * @category Node Types\n */\nexport type UndefinedKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the unknown keyword.\n * @category Node Types\n */\nexport type UnknownKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the void keyword.\n * @category Node Types\n */\nexport type VoidKeyword = ts.KeywordToken;\n\n/**\n * Test if a node is an `AbstractKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAbstractKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AbstractKeyword`.\n */\nexport function isAbstractKeyword(node: ts.Node): node is ts.AbstractKeyword {\n\treturn node.kind === ts.SyntaxKind.AbstractKeyword;\n}\n\n/**\n * Test if a node is an `AccessorKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAccessorKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AccessorKeyword`.\n */\nexport function isAccessorKeyword(node: ts.Node): node is ts.AccessorKeyword {\n\treturn node.kind === ts.SyntaxKind.AccessorKeyword;\n}\n\n/**\n * Test if a node is an {@link AnyKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAnyKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an {@link AnyKeyword}.\n */\nexport function isAnyKeyword(node: ts.Node): node is AnyKeyword {\n\treturn node.kind === ts.SyntaxKind.AnyKeyword;\n}\n\n/**\n * Test if a node is an `AssertKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAssertKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AssertKeyword`.\n */\nexport function isAssertKeyword(node: ts.Node): node is ts.AssertKeyword {\n\treturn node.kind === ts.SyntaxKind.AssertKeyword;\n}\n\n/**\n * Test if a node is an `AssertsKeyword`.\n * @deprecated With TypeScript v5, in favor of typescript's `isAssertsKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAssertsKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AssertsKeyword`.\n */\nexport function isAssertsKeyword(node: ts.Node): node is ts.AssertsKeyword {\n\treturn node.kind === ts.SyntaxKind.AssertsKeyword;\n}\n\n/**\n * Test if a node is an `AsyncKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAsyncKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AsyncKeyword`.\n */\nexport function isAsyncKeyword(node: ts.Node): node is ts.AsyncKeyword {\n\treturn node.kind === ts.SyntaxKind.AsyncKeyword;\n}\n\n/**\n * Test if a node is an `AwaitKeyword`.\n * @deprecated With TypeScript v5, in favor of typescript's `isAwaitKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAwaitKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AwaitKeyword`.\n */\nexport function isAwaitKeyword(node: ts.Node): node is ts.AwaitKeyword {\n\treturn node.kind === ts.SyntaxKind.AwaitKeyword;\n}\n\n/**\n * Test if a node is a {@link BigIntKeyword}.\n * @deprecated With TypeScript v5, in favor of typescript's `isBigIntKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBigIntKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link BigIntKeyword}.\n */\nexport function isBigIntKeyword(node: ts.Node): node is BigIntKeyword {\n\treturn node.kind === ts.SyntaxKind.BigIntKeyword;\n}\n\n/**\n * Test if a node is a {@link BooleanKeyword}.\n * @deprecated With TypeScript v5, in favor of typescript's `isBooleanKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBooleanKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link BooleanKeyword}.\n */\nexport function isBooleanKeyword(node: ts.Node): node is BooleanKeyword {\n\treturn node.kind === ts.SyntaxKind.BooleanKeyword;\n}\n\n/**\n * Test if a node is a `ColonToken`.\n * @deprecated With TypeScript v5, in favor of typescript's `isColonToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isColonToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ColonToken`.\n */\nexport function isColonToken(node: ts.Node): node is ts.ColonToken {\n\treturn node.kind === ts.SyntaxKind.ColonToken;\n}\n\n/**\n * Test if a node is a `ConstKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isConstKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ConstKeyword`.\n */\nexport function isConstKeyword(node: ts.Node): node is ts.ConstKeyword {\n\treturn node.kind === ts.SyntaxKind.ConstKeyword;\n}\n\n/**\n * Test if a node is a `DeclareKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDeclareKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DeclareKeyword`.\n */\nexport function isDeclareKeyword(node: ts.Node): node is ts.DeclareKeyword {\n\treturn node.kind === ts.SyntaxKind.DeclareKeyword;\n}\n\n/**\n * Test if a node is a `DefaultKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDefaultKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DefaultKeyword`.\n */\nexport function isDefaultKeyword(node: ts.Node): node is ts.DefaultKeyword {\n\treturn node.kind === ts.SyntaxKind.DefaultKeyword;\n}\n\n/**\n * Test if a node is a `DotToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDotToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DotToken`.\n */\nexport function isDotToken(node: ts.Node): node is ts.DotToken {\n\treturn node.kind === ts.SyntaxKind.DotToken;\n}\n\n/**\n * Test if a node is an `EndOfFileToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isEndOfFileToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `EndOfFileToken`.\n */\nexport function isEndOfFileToken(node: ts.Node): node is ts.EndOfFileToken {\n\treturn node.kind === ts.SyntaxKind.EndOfFileToken;\n}\n\n/**\n * Test if a node is an `EqualsGreaterThanToken`.\n * @deprecated With TypeScript v5, in favor of typescript's `isEqualsGreaterThanToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isEqualsGreaterThanToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `EqualsGreaterThanToken`.\n */\nexport function isEqualsGreaterThanToken(\n\tnode: ts.Node,\n): node is ts.EqualsGreaterThanToken {\n\treturn node.kind === ts.SyntaxKind.EqualsGreaterThanToken;\n}\n\n/**\n * Test if a node is an `EqualsToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isEqualsToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `EqualsToken`.\n */\nexport function isEqualsToken(node: ts.Node): node is ts.EqualsToken {\n\treturn node.kind === ts.SyntaxKind.EqualsToken;\n}\n\n/**\n * Test if a node is an `ExclamationToken`.\n * @deprecated With TypeScript v5, in favor of typescript's `isExclamationToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isExclamationToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ExclamationToken`.\n */\nexport function isExclamationToken(node: ts.Node): node is ts.ExclamationToken {\n\treturn node.kind === ts.SyntaxKind.ExclamationToken;\n}\n\n/**\n * Test if a node is an `ExportKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isExportKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ExportKeyword`.\n */\nexport function isExportKeyword(node: ts.Node): node is ts.ExportKeyword {\n\treturn node.kind === ts.SyntaxKind.ExportKeyword;\n}\n\n/**\n * Test if a node is a {@link FalseKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isFalseKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link FalseKeyword}.\n */\nexport function isFalseKeyword(node: ts.Node): node is FalseKeyword {\n\treturn node.kind === ts.SyntaxKind.FalseKeyword;\n}\n\n/**\n * Test if a node is a `FalseLiteral`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isFalseLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `FalseLiteral`.\n */\nexport function isFalseLiteral(node: ts.Node): node is ts.FalseLiteral {\n\treturn node.kind === ts.SyntaxKind.FalseKeyword;\n}\n\n/**\n * Test if a node is an `ImportExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isImportExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ImportExpression`.\n */\nexport function isImportExpression(node: ts.Node): node is ts.ImportExpression {\n\treturn node.kind === ts.SyntaxKind.ImportKeyword;\n}\n\n/**\n * Test if a node is an {@link ImportKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isImportKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an {@link ImportKeyword}.\n */\nexport function isImportKeyword(node: ts.Node): node is ImportKeyword {\n\treturn node.kind === ts.SyntaxKind.ImportKeyword;\n}\n\n/**\n * Test if a node is an `InKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isInKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `InKeyword`.\n */\nexport function isInKeyword(node: ts.Node): node is ts.InKeyword {\n\treturn node.kind === ts.SyntaxKind.InKeyword;\n}\n\n/* eslint-disable deprecation/deprecation */\n/**\n * Test if a node is an `InputFiles`.\n * @deprecated With TypeScript v5\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isInputFiles(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `InputFiles`.\n */\nexport function isInputFiles(node: ts.Node): node is ts.InputFiles {\n\treturn node.kind === ts.SyntaxKind.InputFiles;\n}\n/* eslint-enable deprecation/deprecation */\n\n/**\n * Test if a node is a `JSDocText`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJSDocText(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JSDocText`.\n */\nexport function isJSDocText(node: ts.Node): node is ts.JSDocText {\n\treturn node.kind === ts.SyntaxKind.JSDocText;\n}\n\n/**\n * Test if a node is a `JsonMinusNumericLiteral`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsonMinusNumericLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsonMinusNumericLiteral`.\n */\nexport function isJsonMinusNumericLiteral(\n\tnode: ts.Node,\n): node is ts.JsonMinusNumericLiteral {\n\treturn node.kind === ts.SyntaxKind.PrefixUnaryExpression;\n}\n\n/**\n * Test if a node is a {@link NeverKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNeverKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link NeverKeyword}.\n */\nexport function isNeverKeyword(node: ts.Node): node is NeverKeyword {\n\treturn node.kind === ts.SyntaxKind.NeverKeyword;\n}\n\n/**\n * Test if a node is a {@link NullKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNullKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link NullKeyword}.\n */\nexport function isNullKeyword(node: ts.Node): node is NullKeyword {\n\treturn node.kind === ts.SyntaxKind.NullKeyword;\n}\n\n/**\n * Test if a node is a `NullLiteral`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNullLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `NullLiteral`.\n */\nexport function isNullLiteral(node: ts.Node): node is ts.NullLiteral {\n\treturn node.kind === ts.SyntaxKind.NullKeyword;\n}\n\n/**\n * Test if a node is a {@link NumberKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNumberKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link NumberKeyword}.\n */\nexport function isNumberKeyword(node: ts.Node): node is NumberKeyword {\n\treturn node.kind === ts.SyntaxKind.NumberKeyword;\n}\n\n/**\n * Test if a node is an {@link ObjectKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isObjectKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an {@link ObjectKeyword}.\n */\nexport function isObjectKeyword(node: ts.Node): node is ObjectKeyword {\n\treturn node.kind === ts.SyntaxKind.ObjectKeyword;\n}\n\n/**\n * Test if a node is an `OutKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isOutKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `OutKeyword`.\n */\nexport function isOutKeyword(node: ts.Node): node is ts.OutKeyword {\n\treturn node.kind === ts.SyntaxKind.OutKeyword;\n}\n\n/**\n * Test if a node is an `OverrideKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isOverrideKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `OverrideKeyword`.\n */\nexport function isOverrideKeyword(node: ts.Node): node is ts.OverrideKeyword {\n\treturn node.kind === ts.SyntaxKind.OverrideKeyword;\n}\n\n/**\n * Test if a node is a `PrivateKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isPrivateKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `PrivateKeyword`.\n */\nexport function isPrivateKeyword(node: ts.Node): node is ts.PrivateKeyword {\n\treturn node.kind === ts.SyntaxKind.PrivateKeyword;\n}\n\n/**\n * Test if a node is a `ProtectedKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isProtectedKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ProtectedKeyword`.\n */\nexport function isProtectedKeyword(node: ts.Node): node is ts.ProtectedKeyword {\n\treturn node.kind === ts.SyntaxKind.ProtectedKeyword;\n}\n\n/**\n * Test if a node is a `PublicKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isPublicKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `PublicKeyword`.\n */\nexport function isPublicKeyword(node: ts.Node): node is ts.PublicKeyword {\n\treturn node.kind === ts.SyntaxKind.PublicKeyword;\n}\n\n/**\n * Test if a node is a `QuestionDotToken`.\n * @deprecated With TypeScript v5, in favor of typescript's `isQuestionDotToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isQuestionDotToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `QuestionDotToken`.\n */\nexport function isQuestionDotToken(node: ts.Node): node is ts.QuestionDotToken {\n\treturn node.kind === ts.SyntaxKind.QuestionDotToken;\n}\n\n/**\n * Test if a node is a `QuestionToken`.\n * @deprecated With TypeScript v5, in favor of typescript's `isQuestionToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isQuestionToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `QuestionToken`.\n */\nexport function isQuestionToken(node: ts.Node): node is ts.QuestionToken {\n\treturn node.kind === ts.SyntaxKind.QuestionToken;\n}\n\n/**\n * Test if a node is a `ReadonlyKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isReadonlyKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ReadonlyKeyword`.\n */\nexport function isReadonlyKeyword(node: ts.Node): node is ts.ReadonlyKeyword {\n\treturn node.kind === ts.SyntaxKind.ReadonlyKeyword;\n}\n\n/**\n * Test if a node is a `StaticKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isStaticKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `StaticKeyword`.\n */\nexport function isStaticKeyword(node: ts.Node): node is ts.StaticKeyword {\n\treturn node.kind === ts.SyntaxKind.StaticKeyword;\n}\n\n/**\n * Test if a node is a {@link StringKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isStringKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link StringKeyword}.\n */\nexport function isStringKeyword(node: ts.Node): node is StringKeyword {\n\treturn node.kind === ts.SyntaxKind.StringKeyword;\n}\n\n/**\n * Test if a node is a `SuperExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSuperExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `SuperExpression`.\n */\nexport function isSuperExpression(node: ts.Node): node is ts.SuperExpression {\n\treturn node.kind === ts.SyntaxKind.SuperKeyword;\n}\n\n/**\n * Test if a node is a {@link SuperKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSuperKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link SuperKeyword}.\n */\nexport function isSuperKeyword(node: ts.Node): node is SuperKeyword {\n\treturn node.kind === ts.SyntaxKind.SuperKeyword;\n}\n\n/**\n * Test if a node is a {@link SymbolKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSymbolKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link SymbolKeyword}.\n */\nexport function isSymbolKeyword(node: ts.Node): node is SymbolKeyword {\n\treturn node.kind === ts.SyntaxKind.SymbolKeyword;\n}\n\n/**\n * Test if a node is a `SyntaxList`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSyntaxList(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `SyntaxList`.\n */\nexport function isSyntaxList(node: ts.Node): node is ts.SyntaxList {\n\treturn node.kind === ts.SyntaxKind.SyntaxList;\n}\n\n/**\n * Test if a node is a `ThisExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isThisExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ThisExpression`.\n */\nexport function isThisExpression(node: ts.Node): node is ts.ThisExpression {\n\treturn node.kind === ts.SyntaxKind.ThisKeyword;\n}\n\n/**\n * Test if a node is a {@link ThisKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isThisKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link ThisKeyword}.\n */\nexport function isThisKeyword(node: ts.Node): node is ThisKeyword {\n\treturn node.kind === ts.SyntaxKind.ThisKeyword;\n}\n\n/**\n * Test if a node is a {@link TrueKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isTrueKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link TrueKeyword}.\n */\nexport function isTrueKeyword(node: ts.Node): node is TrueKeyword {\n\treturn node.kind === ts.SyntaxKind.TrueKeyword;\n}\n\n/**\n * Test if a node is a `TrueLiteral`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isTrueLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `TrueLiteral`.\n */\nexport function isTrueLiteral(node: ts.Node): node is ts.TrueLiteral {\n\treturn node.kind === ts.SyntaxKind.TrueKeyword;\n}\n\n/**\n * Test if a node is an {@link UndefinedKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isUndefinedKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an {@link UndefinedKeyword}.\n */\nexport function isUndefinedKeyword(node: ts.Node): node is UndefinedKeyword {\n\treturn node.kind === ts.SyntaxKind.UndefinedKeyword;\n}\n\n/**\n * Test if a node is an {@link UnknownKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isUnknownKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an {@link UnknownKeyword}.\n */\nexport function isUnknownKeyword(node: ts.Node): node is UnknownKeyword {\n\treturn node.kind === ts.SyntaxKind.UnknownKeyword;\n}\n\n/* eslint-disable deprecation/deprecation */\n/**\n * Test if a node is an `UnparsedPrologue`.\n * @deprecated With TypeScript v5\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isUnparsedPrologue(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `UnparsedPrologue`.\n */\nexport function isUnparsedPrologue(node: ts.Node): node is ts.UnparsedPrologue {\n\treturn node.kind === ts.SyntaxKind.UnparsedPrologue;\n}\n/* eslint-enable deprecation/deprecation */\n\n/* eslint-disable deprecation/deprecation */\n/**\n * Test if a node is an `UnparsedSyntheticReference`.\n * @deprecated With TypeScript v5\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isUnparsedSyntheticReference(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `UnparsedSyntheticReference`.\n */\nexport function isUnparsedSyntheticReference(\n\tnode: ts.Node,\n): node is ts.UnparsedSyntheticReference {\n\treturn node.kind === ts.SyntaxKind.UnparsedSyntheticReference;\n}\n/* eslint-enable deprecation/deprecation */\n\n/**\n * Test if a node is a {@link VoidKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isVoidKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link VoidKeyword}.\n */\nexport function isVoidKeyword(node: ts.Node): node is VoidKeyword {\n\treturn node.kind === ts.SyntaxKind.VoidKeyword;\n}\n","import ts from \"typescript\";\n\nimport { isTsVersionAtLeast } from \"../../utils\";\nimport {\n\tisJSDocNamespaceDeclaration,\n\tisJsxTagNamePropertyAccess,\n\tisNamespaceDeclaration,\n\tisPropertyAccessEntityNameExpression,\n\tisSuperElementAccessExpression,\n\tisSuperPropertyAccessExpression,\n} from \"./compound\";\nimport {\n\tisAccessorKeyword,\n\tisEndOfFileToken,\n\tisFalseLiteral,\n\tisJSDocText,\n\tisJsonMinusNumericLiteral,\n\tisNullLiteral,\n\tisPrivateKeyword,\n\tisProtectedKeyword,\n\tisPublicKeyword,\n\tisReadonlyKeyword,\n\tisStaticKeyword,\n\tisThisExpression,\n\tisTrueLiteral,\n} from \"./single\";\n\n/**\n * Test if a node is an `AccessExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAccessExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AccessExpression`.\n */\nexport function isAccessExpression(node: ts.Node): node is ts.AccessExpression {\n\treturn (\n\t\tts.isPropertyAccessExpression(node) || ts.isElementAccessExpression(node)\n\t);\n}\n\n/**\n * Test if a node is an `AccessibilityModifier`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAccessibilityModifier(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AccessibilityModifier`.\n */\nexport function isAccessibilityModifier(\n\tnode: ts.Node,\n): node is ts.AccessibilityModifier {\n\treturn (\n\t\tisPublicKeyword(node) || isPrivateKeyword(node) || isProtectedKeyword(node)\n\t);\n}\n\n/**\n * Test if a node is an `AccessorDeclaration`.\n * @deprecated With TypeScript v5, in favor of typescript's `isAccessor`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAccessorDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AccessorDeclaration`.\n */\nexport function isAccessorDeclaration(\n\tnode: ts.Node,\n): node is ts.AccessorDeclaration {\n\treturn ts.isGetAccessorDeclaration(node) || ts.isSetAccessorDeclaration(node);\n}\n\n/**\n * Test if a node is an `ArrayBindingElement`.\n * @deprecated With TypeScript v5, in favor of typescript's `isArrayBindingElement`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isArrayBindingElement(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ArrayBindingElement`.\n */\nexport function isArrayBindingElement(\n\tnode: ts.Node,\n): node is ts.ArrayBindingElement {\n\treturn ts.isBindingElement(node) || ts.isOmittedExpression(node);\n}\n\n/**\n * Test if a node is an `ArrayBindingOrAssignmentPattern`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isArrayBindingOrAssignmentPattern(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ArrayBindingOrAssignmentPattern`.\n */\nexport function isArrayBindingOrAssignmentPattern(\n\tnode: ts.Node,\n): node is ts.ArrayBindingOrAssignmentPattern {\n\treturn ts.isArrayBindingPattern(node) || ts.isArrayLiteralExpression(node);\n}\n\n/**\n * Test if a node is an `AssignmentPattern`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAssignmentPattern(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AssignmentPattern`.\n */\nexport function isAssignmentPattern(\n\tnode: ts.Node,\n): node is ts.AssignmentPattern {\n\treturn (\n\t\tts.isObjectLiteralExpression(node) || ts.isArrayLiteralExpression(node)\n\t);\n}\n\n/**\n * Test if a node is a `BindingOrAssignmentElementRestIndicator`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBindingOrAssignmentElementRestIndicator(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `BindingOrAssignmentElementRestIndicator`.\n */\nexport function isBindingOrAssignmentElementRestIndicator(\n\tnode: ts.Node,\n): node is ts.BindingOrAssignmentElementRestIndicator {\n\tif (ts.isSpreadElement(node) || ts.isSpreadAssignment(node)) {\n\t\treturn true;\n\t}\n\n\tif (isTsVersionAtLeast(4, 4)) {\n\t\treturn ts.isDotDotDotToken(node);\n\t}\n\n\treturn false;\n}\n\n/**\n * Test if a node is a `BindingOrAssignmentElementTarget`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBindingOrAssignmentElementTarget(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `BindingOrAssignmentElementTarget`.\n */\nexport function isBindingOrAssignmentElementTarget(\n\tnode: ts.Node,\n): node is ts.BindingOrAssignmentElementTarget {\n\treturn (\n\t\tisBindingOrAssignmentPattern(node) ||\n\t\tts.isIdentifier(node) ||\n\t\tts.isPropertyAccessExpression(node) ||\n\t\tts.isElementAccessExpression(node) ||\n\t\tts.isOmittedExpression(node)\n\t);\n}\n\n/**\n * Test if a node is a `BindingOrAssignmentPattern`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBindingOrAssignmentPattern(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `BindingOrAssignmentPattern`.\n */\nexport function isBindingOrAssignmentPattern(\n\tnode: ts.Node,\n): node is ts.BindingOrAssignmentPattern {\n\treturn (\n\t\tisObjectBindingOrAssignmentPattern(node) ||\n\t\tisArrayBindingOrAssignmentPattern(node)\n\t);\n}\n\n/**\n * Test if a node is a `BindingPattern`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBindingPattern(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `BindingPattern`.\n */\nexport function isBindingPattern(node: ts.Node): node is ts.BindingPattern {\n\treturn ts.isObjectBindingPattern(node) || ts.isArrayBindingPattern(node);\n}\n\n/**\n * Test if a node is a `BlockLike`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBlockLike(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `BlockLike`.\n */\nexport function isBlockLike(node: ts.Node): node is ts.BlockLike {\n\treturn (\n\t\tts.isSourceFile(node) ||\n\t\tts.isBlock(node) ||\n\t\tts.isModuleBlock(node) ||\n\t\tts.isCaseOrDefaultClause(node)\n\t);\n}\n\n/**\n * Test if a node is a `BooleanLiteral`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBooleanLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `BooleanLiteral`.\n */\nexport function isBooleanLiteral(node: ts.Node): node is ts.BooleanLiteral {\n\treturn isTrueLiteral(node) || isFalseLiteral(node);\n}\n\n/**\n * Test if a node is a `ClassLikeDeclaration`.\n * @deprecated With TypeScript v5, in favor of typescript's `isClassLike`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isClassLikeDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ClassLikeDeclaration`.\n */\nexport function isClassLikeDeclaration(\n\tnode: ts.Node,\n): node is ts.ClassLikeDeclaration {\n\treturn ts.isClassDeclaration(node) || ts.isClassExpression(node);\n}\n\n/**\n * Test if a node is a `ClassMemberModifier`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isClassMemberModifier(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ClassMemberModifier`.\n */\nexport function isClassMemberModifier(\n\tnode: ts.Node,\n): node is ts.ClassMemberModifier {\n\treturn (\n\t\tisAccessibilityModifier(node) ||\n\t\tisReadonlyKeyword(node) ||\n\t\tisStaticKeyword(node) ||\n\t\tisAccessorKeyword(node)\n\t);\n}\n\n/**\n * Test if a node is a `DeclarationName`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDeclarationName(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DeclarationName`.\n */\nexport function isDeclarationName(node: ts.Node): node is ts.DeclarationName {\n\treturn (\n\t\tts.isIdentifier(node) ||\n\t\tts.isPrivateIdentifier(node) ||\n\t\tts.isStringLiteralLike(node) ||\n\t\tts.isNumericLiteral(node) ||\n\t\tts.isComputedPropertyName(node) ||\n\t\tts.isElementAccessExpression(node) ||\n\t\tisBindingPattern(node) ||\n\t\tisEntityNameExpression(node)\n\t);\n}\n\n/**\n * Test if a node is a `DeclarationWithTypeParameterChildren`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDeclarationWithTypeParameterChildren(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DeclarationWithTypeParameterChildren`.\n */\nexport function isDeclarationWithTypeParameterChildren(\n\tnode: ts.Node,\n): node is ts.DeclarationWithTypeParameterChildren {\n\treturn (\n\t\tisSignatureDeclaration(node) ||\n\t\t// eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5\n\t\tisClassLikeDeclaration(node) ||\n\t\tts.isInterfaceDeclaration(node) ||\n\t\tts.isTypeAliasDeclaration(node) ||\n\t\tts.isJSDocTemplateTag(node)\n\t);\n}\n\n/**\n * Test if a node is a `DeclarationWithTypeParameters`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDeclarationWithTypeParameters(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DeclarationWithTypeParameters`.\n */\nexport function isDeclarationWithTypeParameters(\n\tnode: ts.Node,\n): node is ts.DeclarationWithTypeParameters {\n\treturn (\n\t\tisDeclarationWithTypeParameterChildren(node) ||\n\t\tts.isJSDocTypedefTag(node) ||\n\t\tts.isJSDocCallbackTag(node) ||\n\t\tts.isJSDocSignature(node)\n\t);\n}\n\n/**\n * Test if a node is a `DestructuringPattern`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDestructuringPattern(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DestructuringPattern`.\n */\nexport function isDestructuringPattern(\n\tnode: ts.Node,\n): node is ts.DestructuringPattern {\n\treturn (\n\t\tisBindingPattern(node) ||\n\t\tts.isObjectLiteralExpression(node) ||\n\t\tts.isArrayLiteralExpression(node)\n\t);\n}\n\n/**\n * Test if a node is an `EntityNameExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isEntityNameExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `EntityNameExpression`.\n */\nexport function isEntityNameExpression(\n\tnode: ts.Node,\n): node is ts.EntityNameExpression {\n\treturn ts.isIdentifier(node) || isPropertyAccessEntityNameExpression(node);\n}\n\n/**\n * Test if a node is an `EntityNameOrEntityNameExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isEntityNameOrEntityNameExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `EntityNameOrEntityNameExpression`.\n */\nexport function isEntityNameOrEntityNameExpression(\n\tnode: ts.Node,\n): node is ts.EntityNameOrEntityNameExpression {\n\treturn ts.isEntityName(node) || isEntityNameExpression(node);\n}\n\n/**\n * Test if a node is a `ForInOrOfStatement`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isForInOrOfStatement(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ForInOrOfStatement`.\n */\nexport function isForInOrOfStatement(\n\tnode: ts.Node,\n): node is ts.ForInOrOfStatement {\n\treturn ts.isForInStatement(node) || ts.isForOfStatement(node);\n}\n\n/**\n * Test if a node is a `FunctionLikeDeclaration`.\n * @deprecated With TypeScript v5, in favor of typescript's `isFunctionLike`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isFunctionLikeDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `FunctionLikeDeclaration`.\n */\nexport function isFunctionLikeDeclaration(\n\tnode: ts.Node,\n): node is ts.FunctionLikeDeclaration {\n\treturn (\n\t\tts.isFunctionDeclaration(node) ||\n\t\tts.isMethodDeclaration(node) ||\n\t\tts.isGetAccessorDeclaration(node) ||\n\t\tts.isSetAccessorDeclaration(node) ||\n\t\tts.isConstructorDeclaration(node) ||\n\t\tts.isFunctionExpression(node) ||\n\t\tts.isArrowFunction(node)\n\t);\n}\n\n/**\n * Test if a node is a `HasDecorators`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasDecorators(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasDecorators`.\n */\nexport function hasDecorators(node: ts.Node): node is ts.HasDecorators {\n\treturn (\n\t\tts.isParameter(node) ||\n\t\tts.isPropertyDeclaration(node) ||\n\t\tts.isMethodDeclaration(node) ||\n\t\tts.isGetAccessorDeclaration(node) ||\n\t\tts.isSetAccessorDeclaration(node) ||\n\t\tts.isClassExpression(node) ||\n\t\tts.isClassDeclaration(node)\n\t);\n}\n\n/**\n * Test if a node is a `HasExpressionInitializer`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasExpressionInitializer(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasExpressionInitializer`.\n */\nexport function hasExpressionInitializer(\n\tnode: ts.Node,\n): node is ts.HasExpressionInitializer {\n\treturn (\n\t\tts.isVariableDeclaration(node) ||\n\t\tts.isParameter(node) ||\n\t\tts.isBindingElement(node) ||\n\t\tts.isPropertyDeclaration(node) ||\n\t\tts.isPropertyAssignment(node) ||\n\t\tts.isEnumMember(node)\n\t);\n}\n\n/**\n * Test if a node is a `HasInitializer`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasInitializer(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasInitializer`.\n */\nexport function hasInitializer(node: ts.Node): node is ts.HasInitializer {\n\treturn (\n\t\thasExpressionInitializer(node) ||\n\t\tts.isForStatement(node) ||\n\t\tts.isForInStatement(node) ||\n\t\tts.isForOfStatement(node) ||\n\t\tts.isJsxAttribute(node)\n\t);\n}\n\n/**\n * Test if a node is a `HasJSDoc`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasJSDoc(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasJSDoc`.\n */\nexport function hasJSDoc(node: ts.Node): node is ts.HasJSDoc {\n\tif (\n\t\t// eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5\n\t\tisAccessorDeclaration(node) ||\n\t\tts.isArrowFunction(node) ||\n\t\tts.isBlock(node) ||\n\t\tts.isBreakStatement(node) ||\n\t\tts.isCallSignatureDeclaration(node) ||\n\t\tts.isCaseClause(node) ||\n\t\t// eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5\n\t\tisClassLikeDeclaration(node) ||\n\t\tts.isConstructorDeclaration(node) ||\n\t\tts.isConstructorTypeNode(node) ||\n\t\tts.isConstructSignatureDeclaration(node) ||\n\t\tts.isContinueStatement(node) ||\n\t\tts.isDebuggerStatement(node) ||\n\t\tts.isDoStatement(node) ||\n\t\tts.isEmptyStatement(node) ||\n\t\tisEndOfFileToken(node) ||\n\t\tts.isEnumDeclaration(node) ||\n\t\tts.isEnumMember(node) ||\n\t\tts.isExportAssignment(node) ||\n\t\tts.isExportDeclaration(node) ||\n\t\tts.isExportSpecifier(node) ||\n\t\tts.isExpressionStatement(node) ||\n\t\tts.isForInStatement(node) ||\n\t\tts.isForOfStatement(node) ||\n\t\tts.isForStatement(node) ||\n\t\tts.isFunctionDeclaration(node) ||\n\t\tts.isFunctionExpression(node) ||\n\t\tts.isFunctionTypeNode(node) ||\n\t\tts.isIfStatement(node) ||\n\t\tts.isImportDeclaration(node) ||\n\t\tts.isImportEqualsDeclaration(node) ||\n\t\tts.isIndexSignatureDeclaration(node) ||\n\t\tts.isInterfaceDeclaration(node) ||\n\t\tts.isJSDocFunctionType(node) ||\n\t\tts.isLabeledStatement(node) ||\n\t\tts.isMethodDeclaration(node) ||\n\t\tts.isMethodSignature(node) ||\n\t\tts.isModuleDeclaration(node) ||\n\t\tts.isNamedTupleMember(node) ||\n\t\tts.isNamespaceExportDeclaration(node) ||\n\t\tts.isParameter(node) ||\n\t\tts.isParenthesizedExpression(node) ||\n\t\tts.isPropertyAssignment(node) ||\n\t\tts.isPropertyDeclaration(node) ||\n\t\tts.isPropertySignature(node) ||\n\t\tts.isReturnStatement(node) ||\n\t\tts.isShorthandPropertyAssignment(node) ||\n\t\tts.isSpreadAssignment(node) ||\n\t\tts.isSwitchStatement(node) ||\n\t\tts.isThrowStatement(node) ||\n\t\tts.isTryStatement(node) ||\n\t\tts.isTypeAliasDeclaration(node) ||\n\t\tts.isVariableDeclaration(node) ||\n\t\tts.isVariableStatement(node) ||\n\t\tts.isWhileStatement(node) ||\n\t\tts.isWithStatement(node)\n\t) {\n\t\treturn true;\n\t}\n\n\tif (isTsVersionAtLeast(4, 4) && ts.isClassStaticBlockDeclaration(node)) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\tisTsVersionAtLeast(5, 0) &&\n\t\t(ts.isBinaryExpression(node) ||\n\t\t\tts.isElementAccessExpression(node) ||\n\t\t\tts.isIdentifier(node) ||\n\t\t\tts.isJSDocSignature(node) ||\n\t\t\tts.isObjectLiteralExpression(node) ||\n\t\t\tts.isPropertyAccessExpression(node) ||\n\t\t\tts.isTypeParameterDeclaration(node))\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Test if a node is a `HasModifiers`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasModifiers(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasModifiers`.\n */\nexport function hasModifiers(node: ts.Node): node is ts.HasModifiers {\n\treturn (\n\t\tts.isTypeParameterDeclaration(node) ||\n\t\tts.isParameter(node) ||\n\t\tts.isConstructorTypeNode(node) ||\n\t\tts.isPropertySignature(node) ||\n\t\tts.isPropertyDeclaration(node) ||\n\t\tts.isMethodSignature(node) ||\n\t\tts.isMethodDeclaration(node) ||\n\t\tts.isConstructorDeclaration(node) ||\n\t\tts.isGetAccessorDeclaration(node) ||\n\t\tts.isSetAccessorDeclaration(node) ||\n\t\tts.isIndexSignatureDeclaration(node) ||\n\t\tts.isFunctionExpression(node) ||\n\t\tts.isArrowFunction(node) ||\n\t\tts.isClassExpression(node) ||\n\t\tts.isVariableStatement(node) ||\n\t\tts.isFunctionDeclaration(node) ||\n\t\tts.isClassDeclaration(node) ||\n\t\tts.isInterfaceDeclaration(node) ||\n\t\tts.isTypeAliasDeclaration(node) ||\n\t\tts.isEnumDeclaration(node) ||\n\t\tts.isModuleDeclaration(node) ||\n\t\tts.isImportEqualsDeclaration(node) ||\n\t\tts.isImportDeclaration(node) ||\n\t\tts.isExportAssignment(node) ||\n\t\tts.isExportDeclaration(node)\n\t);\n}\n\n/**\n * Test if a node is a `HasType`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasType(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasType`.\n */\nexport function hasType(node: ts.Node): node is ts.HasType {\n\treturn (\n\t\tisSignatureDeclaration(node) ||\n\t\tts.isVariableDeclaration(node) ||\n\t\tts.isParameter(node) ||\n\t\tts.isPropertySignature(node) ||\n\t\tts.isPropertyDeclaration(node) ||\n\t\tts.isTypePredicateNode(node) ||\n\t\tts.isParenthesizedTypeNode(node) ||\n\t\tts.isTypeOperatorNode(node) ||\n\t\tts.isMappedTypeNode(node) ||\n\t\tts.isAssertionExpression(node) ||\n\t\tts.isTypeAliasDeclaration(node) ||\n\t\tts.isJSDocTypeExpression(node) ||\n\t\tts.isJSDocNonNullableType(node) ||\n\t\tts.isJSDocNullableType(node) ||\n\t\tts.isJSDocOptionalType(node) ||\n\t\tts.isJSDocVariadicType(node)\n\t);\n}\n\n/**\n * Test if a node is a `HasTypeArguments`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasTypeArguments(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasTypeArguments`.\n */\nexport function hasTypeArguments(node: ts.Node): node is ts.HasTypeArguments {\n\treturn (\n\t\tts.isCallExpression(node) ||\n\t\tts.isNewExpression(node) ||\n\t\tts.isTaggedTemplateExpression(node) ||\n\t\tts.isJsxOpeningElement(node) ||\n\t\tts.isJsxSelfClosingElement(node)\n\t);\n}\n\n/**\n * Test if a node is a `JSDocComment`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJSDocComment(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JSDocComment`.\n */\nexport function isJSDocComment(node: ts.Node): node is ts.JSDocComment {\n\tif (isJSDocText(node)) {\n\t\treturn true;\n\t}\n\n\tif (isTsVersionAtLeast(4, 4)) {\n\t\treturn (\n\t\t\tts.isJSDocLink(node) ||\n\t\t\tts.isJSDocLinkCode(node) ||\n\t\t\tts.isJSDocLinkPlain(node)\n\t\t);\n\t}\n\n\treturn false;\n}\n\n/**\n * Test if a node is a `JSDocNamespaceBody`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJSDocNamespaceBody(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JSDocNamespaceBody`.\n */\nexport function isJSDocNamespaceBody(\n\tnode: ts.Node,\n): node is ts.JSDocNamespaceBody {\n\treturn ts.isIdentifier(node) || isJSDocNamespaceDeclaration(node);\n}\n\n/**\n * Test if a node is a `JSDocTypeReferencingNode`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJSDocTypeReferencingNode(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JSDocTypeReferencingNode`.\n */\nexport function isJSDocTypeReferencingNode(\n\tnode: ts.Node,\n): node is ts.JSDocTypeReferencingNode {\n\treturn (\n\t\tts.isJSDocVariadicType(node) ||\n\t\tts.isJSDocOptionalType(node) ||\n\t\tts.isJSDocNullableType(node) ||\n\t\tts.isJSDocNonNullableType(node)\n\t);\n}\n\n/**\n * Test if a node is a `JsonObjectExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsonObjectExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsonObjectExpression`.\n */\nexport function isJsonObjectExpression(\n\tnode: ts.Node,\n): node is ts.JsonObjectExpression {\n\treturn (\n\t\tts.isObjectLiteralExpression(node) ||\n\t\tts.isArrayLiteralExpression(node) ||\n\t\tisJsonMinusNumericLiteral(node) ||\n\t\tts.isNumericLiteral(node) ||\n\t\tts.isStringLiteral(node) ||\n\t\tisBooleanLiteral(node) ||\n\t\tisNullLiteral(node)\n\t);\n}\n\n/**\n * Test if a node is a `JsxAttributeLike`.\n * @deprecated With TypeScript v5, in favor of typescript's `isJsxAttributeLike`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsxAttributeLike(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsxAttributeLike`.\n */\nexport function isJsxAttributeLike(node: ts.Node): node is ts.JsxAttributeLike {\n\treturn ts.isJsxAttribute(node) || ts.isJsxSpreadAttribute(node);\n}\n\n/**\n * Test if a node is a `JsxAttributeValue`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsxAttributeValue(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsxAttributeValue`.\n */\nexport function isJsxAttributeValue(\n\tnode: ts.Node,\n): node is ts.JsxAttributeValue {\n\treturn (\n\t\tts.isStringLiteral(node) ||\n\t\tts.isJsxExpression(node) ||\n\t\tts.isJsxElement(node) ||\n\t\tts.isJsxSelfClosingElement(node) ||\n\t\tts.isJsxFragment(node)\n\t);\n}\n\n/**\n * Test if a node is a `JsxChild`.\n * @deprecated With TypeScript v5, in favor of typescript's `isJsxChild`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsxChild(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsxChild`.\n */\nexport function isJsxChild(node: ts.Node): node is ts.JsxChild {\n\treturn (\n\t\tts.isJsxText(node) ||\n\t\tts.isJsxExpression(node) ||\n\t\tts.isJsxElement(node) ||\n\t\tts.isJsxSelfClosingElement(node) ||\n\t\tts.isJsxFragment(node)\n\t);\n}\n\n/**\n * Test if a node is a `JsxTagNameExpression`.\n * @deprecated With TypeScript v5, in favor of typescript's `isJsxTagNameExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsxTagNameExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsxTagNameExpression`.\n */\nexport function isJsxTagNameExpression(\n\tnode: ts.Node,\n): node is ts.JsxTagNameExpression {\n\treturn (\n\t\tts.isIdentifier(node) ||\n\t\tisThisExpression(node) ||\n\t\tisJsxTagNamePropertyAccess(node)\n\t);\n}\n\n/**\n * Test if a node is a `LiteralToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isLiteralToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `LiteralToken`.\n */\nexport function isLiteralToken(node: ts.Node): node is ts.LiteralToken {\n\treturn (\n\t\tts.isNumericLiteral(node) ||\n\t\tts.isBigIntLiteral(node) ||\n\t\tts.isStringLiteral(node) ||\n\t\tts.isJsxText(node) ||\n\t\tts.isRegularExpressionLiteral(node) ||\n\t\tts.isNoSubstitutionTemplateLiteral(node)\n\t);\n}\n\n/**\n * Test if a node is a `ModuleBody`.\n * @deprecated With TypeScript v5, in favor of typescript's `isModuleBody`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isModuleBody(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ModuleBody`.\n */\nexport function isModuleBody(node: ts.Node): node is ts.ModuleBody {\n\treturn isNamespaceBody(node) || isJSDocNamespaceBody(node);\n}\n\n/**\n * Test if a node is a `ModuleName`.\n * @deprecated With TypeScript v5, in favor of typescript's `isModuleName`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isModuleName(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ModuleName`.\n */\nexport function isModuleName(node: ts.Node): node is ts.ModuleName {\n\treturn ts.isIdentifier(node) || ts.isStringLiteral(node);\n}\n\n/**\n * Test if a node is a `ModuleReference`.\n * @deprecated With TypeScript v5, in favor of typescript's `isModuleReference`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isModuleReference(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ModuleReference`.\n */\nexport function isModuleReference(node: ts.Node): node is ts.ModuleReference {\n\treturn ts.isEntityName(node) || ts.isExternalModuleReference(node);\n}\n\n/**\n * Test if a node is a `NamedImportBindings`.\n * @deprecated With TypeScript v5, in favor of typescript's `isNamedImportBindings`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNamedImportBindings(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `NamedImportBindings`.\n */\nexport function isNamedImportBindings(\n\tnode: ts.Node,\n): node is ts.NamedImportBindings {\n\treturn ts.isNamespaceImport(node) || ts.isNamedImports(node);\n}\n\n/**\n * Test if a node is a `NamedImportsOrExports`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNamedImportsOrExports(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `NamedImportsOrExports`.\n */\nexport function isNamedImportsOrExports(\n\tnode: ts.Node,\n): node is ts.NamedImportsOrExports {\n\treturn ts.isNamedImports(node) || ts.isNamedExports(node);\n}\n\n/**\n * Test if a node is a `NamespaceBody`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNamespaceBody(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `NamespaceBody`.\n */\nexport function isNamespaceBody(node: ts.Node): node is ts.NamespaceBody {\n\treturn ts.isModuleBlock(node) || isNamespaceDeclaration(node);\n}\n\n/**\n * Test if a node is an `ObjectBindingOrAssignmentElement`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isObjectBindingOrAssignmentElement(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ObjectBindingOrAssignmentElement`.\n */\nexport function isObjectBindingOrAssignmentElement(\n\tnode: ts.Node,\n): node is ts.ObjectBindingOrAssignmentElement {\n\treturn (\n\t\tts.isBindingElement(node) ||\n\t\tts.isPropertyAssignment(node) ||\n\t\tts.isShorthandPropertyAssignment(node) ||\n\t\tts.isSpreadAssignment(node)\n\t);\n}\n\n/**\n * Test if a node is an `ObjectBindingOrAssignmentPattern`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isObjectBindingOrAssignmentPattern(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ObjectBindingOrAssignmentPattern`.\n */\nexport function isObjectBindingOrAssignmentPattern(\n\tnode: ts.Node,\n): node is ts.ObjectBindingOrAssignmentPattern {\n\treturn ts.isObjectBindingPattern(node) || ts.isObjectLiteralExpression(node);\n}\n\n/**\n * Test if a node is an `ObjectTypeDeclaration`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isObjectTypeDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ObjectTypeDeclaration`.\n */\nexport function isObjectTypeDeclaration(\n\tnode: ts.Node,\n): node is ts.ObjectTypeDeclaration {\n\treturn (\n\t\t// eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5\n\t\tisClassLikeDeclaration(node) ||\n\t\tts.isInterfaceDeclaration(node) ||\n\t\tts.isTypeLiteralNode(node)\n\t);\n}\n\n/**\n * Test if a node is a `ParameterPropertyModifier`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isParameterPropertyModifier(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ParameterPropertyModifier`.\n */\nexport function isParameterPropertyModifier(\n\tnode: ts.Node,\n): node is ts.ParameterPropertyModifier {\n\treturn isAccessibilityModifier(node) || isReadonlyKeyword(node);\n}\n\n/**\n * Test if a node is a `PropertyNameLiteral`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isPropertyNameLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `PropertyNameLiteral`.\n */\nexport function isPropertyNameLiteral(\n\tnode: ts.Node,\n): node is ts.PropertyNameLiteral {\n\treturn (\n\t\tts.isIdentifier(node) ||\n\t\tts.isStringLiteralLike(node) ||\n\t\tts.isNumericLiteral(node)\n\t);\n}\n\n/**\n * Test if a node is a `PseudoLiteralToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isPseudoLiteralToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `PseudoLiteralToken`.\n */\nexport function isPseudoLiteralToken(\n\tnode: ts.Node,\n): node is ts.PseudoLiteralToken {\n\treturn (\n\t\tts.isTemplateHead(node) ||\n\t\tts.isTemplateMiddle(node) ||\n\t\tts.isTemplateTail(node)\n\t);\n}\n\n/**\n * Test if a node is a `SignatureDeclaration`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSignatureDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `SignatureDeclaration`.\n */\nexport function isSignatureDeclaration(\n\tnode: ts.Node,\n): node is ts.SignatureDeclaration {\n\treturn (\n\t\tts.isCallSignatureDeclaration(node) ||\n\t\tts.isConstructSignatureDeclaration(node) ||\n\t\tts.isMethodSignature(node) ||\n\t\tts.isIndexSignatureDeclaration(node) ||\n\t\tts.isFunctionTypeNode(node) ||\n\t\tts.isConstructorTypeNode(node) ||\n\t\tts.isJSDocFunctionType(node) ||\n\t\tts.isFunctionDeclaration(node) ||\n\t\tts.isMethodDeclaration(node) ||\n\t\tts.isConstructorDeclaration(node) ||\n\t\t// eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5\n\t\tisAccessorDeclaration(node) ||\n\t\tts.isFunctionExpression(node) ||\n\t\tts.isArrowFunction(node)\n\t);\n}\n\n/**\n * Test if a node is a `SuperProperty`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSuperProperty(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `SuperProperty`.\n */\nexport function isSuperProperty(node: ts.Node): node is ts.SuperProperty {\n\treturn (\n\t\tisSuperPropertyAccessExpression(node) ||\n\t\tisSuperElementAccessExpression(node)\n\t);\n}\n\n/**\n * Test if a node is a `TypeOnlyCompatibleAliasDeclaration`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isTypeOnlyCompatibleAliasDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `TypeOnlyCompatibleAliasDeclaration`.\n */\nexport function isTypeOnlyCompatibleAliasDeclaration(\n\tnode: ts.Node,\n): node is ts.TypeOnlyCompatibleAliasDeclaration {\n\tif (\n\t\tts.isImportClause(node) ||\n\t\tts.isImportEqualsDeclaration(node) ||\n\t\tts.isNamespaceImport(node) ||\n\t\tts.isImportOrExportSpecifier(node)\n\t) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\tisTsVersionAtLeast(5, 0) &&\n\t\t(ts.isExportDeclaration(node) || ts.isNamespaceExport(node))\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Test if a node is a `TypeReferenceType`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isTypeReferenceType(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `TypeReferenceType`.\n */\nexport function isTypeReferenceType(\n\tnode: ts.Node,\n): node is ts.TypeReferenceType {\n\treturn ts.isTypeReferenceNode(node) || ts.isExpressionWithTypeArguments(node);\n}\n\n/**\n * Test if a node is an `UnionOrIntersectionTypeNode`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isUnionOrIntersectionTypeNode(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `UnionOrIntersectionTypeNode`.\n */\nexport function isUnionOrIntersectionTypeNode(\n\tnode: ts.Node,\n): node is ts.UnionOrIntersectionTypeNode {\n\treturn ts.isUnionTypeNode(node) || ts.isIntersectionTypeNode(node);\n}\n\n/* eslint-disable deprecation/deprecation */\n/**\n * Test if a node is an `UnparsedSourceText`.\n * @deprecated With TypeScript v5\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isUnparsedSourceText(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `UnparsedSourceText`.\n */\nexport function isUnparsedSourceText(\n\tnode: ts.Node,\n): node is ts.UnparsedSourceText {\n\treturn ts.isUnparsedPrepend(node) || ts.isUnparsedTextLike(node);\n}\n/* eslint-enable deprecation/deprecation */\n\n/**\n * Test if a node is a `VariableLikeDeclaration`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isVariableLikeDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `VariableLikeDeclaration`.\n */\nexport function isVariableLikeDeclaration(\n\tnode: ts.Node,\n): node is ts.VariableLikeDeclaration {\n\treturn (\n\t\tts.isVariableDeclaration(node) ||\n\t\tts.isParameter(node) ||\n\t\tts.isBindingElement(node) ||\n\t\tts.isPropertyDeclaration(node) ||\n\t\tts.isPropertyAssignment(node) ||\n\t\tts.isPropertySignature(node) ||\n\t\tts.isJsxAttribute(node) ||\n\t\tts.isShorthandPropertyAssignment(node) ||\n\t\tts.isEnumMember(node) ||\n\t\tts.isJSDocPropertyTag(node) ||\n\t\tts.isJSDocParameterTag(node)\n\t);\n}\n","import ts from \"typescript\";\n\nconst [tsMajor, tsMinor] = ts.versionMajorMinor\n\t.split(\".\")\n\t.map((raw) => Number.parseInt(raw, 10));\n\nexport function isTsVersionAtLeast(major: number, minor = 0): boolean {\n\treturn tsMajor > major || (tsMajor === major && tsMinor >= minor);\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\n/**\n * Is the node a scope boundary, specifically due to it being a function.\n * @category Scope Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isFunctionScopeBoundary(node, ts.ObjectFlags.Anonymous)) {\n * // ...\n * }\n * ```\n */\nexport function isFunctionScopeBoundary(node: ts.Node): boolean {\n\tswitch (node.kind) {\n\t\tcase ts.SyntaxKind.FunctionExpression:\n\t\tcase ts.SyntaxKind.ArrowFunction:\n\t\tcase ts.SyntaxKind.Constructor:\n\t\tcase ts.SyntaxKind.ModuleDeclaration:\n\t\tcase ts.SyntaxKind.ClassDeclaration:\n\t\tcase ts.SyntaxKind.ClassExpression:\n\t\tcase ts.SyntaxKind.EnumDeclaration:\n\t\tcase ts.SyntaxKind.MethodDeclaration:\n\t\tcase ts.SyntaxKind.FunctionDeclaration:\n\t\tcase ts.SyntaxKind.GetAccessor:\n\t\tcase ts.SyntaxKind.SetAccessor:\n\t\tcase ts.SyntaxKind.MethodSignature:\n\t\tcase ts.SyntaxKind.CallSignature:\n\t\tcase ts.SyntaxKind.ConstructSignature:\n\t\tcase ts.SyntaxKind.ConstructorType:\n\t\tcase ts.SyntaxKind.FunctionType:\n\t\t\treturn true;\n\t\tcase ts.SyntaxKind.SourceFile:\n\t\t\t// if SourceFile is no module, it contributes to the global scope and is therefore no scope boundary\n\t\t\treturn ts.isExternalModule(node as ts.SourceFile);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { isNamedDeclarationWithName } from \"../nodes/typeGuards\";\nimport {\n\tisIntersectionType,\n\tisUnionType,\n\tisUniqueESSymbolType,\n} from \"./typeGuards\";\n\n/**\n * Get the `CallSignatures` of the given type.\n * @category Types - Getters\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * getCallSignaturesOfType(type);\n * ```\n */\nexport function getCallSignaturesOfType(\n\ttype: ts.Type,\n): readonly ts.Signature[] {\n\tif (isUnionType(type)) {\n\t\tconst signatures = [];\n\t\tfor (const subType of type.types) {\n\t\t\tsignatures.push(...getCallSignaturesOfType(subType));\n\t\t}\n\n\t\treturn signatures;\n\t}\n\n\tif (isIntersectionType(type)) {\n\t\tlet signatures: readonly ts.Signature[] | undefined;\n\t\tfor (const subType of type.types) {\n\t\t\tconst sig = getCallSignaturesOfType(subType);\n\t\t\tif (sig.length !== 0) {\n\t\t\t\t// if more than one type of the intersection has call signatures, none of them is useful for inference\n\t\t\t\tif (signatures !== undefined) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tsignatures = sig;\n\t\t\t}\n\t\t}\n\n\t\treturn signatures === undefined ? [] : signatures;\n\t}\n\n\treturn type.getCallSignatures();\n}\n\n/**\n * Get the property with the given name on the given type (if it exists).\n * @category Types - Getters\n * @example\n * ```ts\n * declare const property: ts.Symbol;\n * declare const type: ts.Type;\n *\n * getPropertyOfType(type, property.getEscapedName());\n * ```\n */\nexport function getPropertyOfType(\n\ttype: ts.Type,\n\tname: ts.__String,\n): ts.Symbol | undefined {\n\tif (!(name as string).startsWith(\"__\")) {\n\t\treturn type.getProperty(name as string);\n\t}\n\n\treturn type.getProperties().find((s) => s.escapedName === name);\n}\n\n/**\n * Retrieves a type symbol corresponding to a well-known string name.\n * @category Types - Getters\n * @example\n * ```ts\n * declare const type: ts.Type;\n * declare const typeChecker: ts.TypeChecker;\n *\n * getWellKnownSymbolPropertyOfType(type, \"asyncIterator\", typeChecker);\n * ```\n */\nexport function getWellKnownSymbolPropertyOfType(\n\ttype: ts.Type,\n\twellKnownSymbolName: string,\n\ttypeChecker: ts.TypeChecker,\n): ts.Symbol | undefined {\n\tconst prefix = \"__@\" + wellKnownSymbolName;\n\n\tfor (const prop of type.getProperties()) {\n\t\tif (!prop.name.startsWith(prefix)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst declaration = prop.valueDeclaration ?? prop.getDeclarations()![0];\n\t\tif (\n\t\t\t!isNamedDeclarationWithName(declaration) ||\n\t\t\tdeclaration.name === undefined ||\n\t\t\t!ts.isComputedPropertyName(declaration.name)\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst globalSymbol = typeChecker.getApparentType(\n\t\t\ttypeChecker.getTypeAtLocation(declaration.name.expression),\n\t\t).symbol;\n\n\t\tif (\n\t\t\tprop.escapedName ===\n\t\t\tgetPropertyNameOfWellKnownSymbol(\n\t\t\t\ttypeChecker,\n\t\t\t\tglobalSymbol,\n\t\t\t\twellKnownSymbolName,\n\t\t\t)\n\t\t) {\n\t\t\treturn prop;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\n/**\n * @internal\n */\nfunction getPropertyNameOfWellKnownSymbol(\n\ttypeChecker: ts.TypeChecker,\n\tsymbolConstructor: ts.Symbol | undefined,\n\tsymbolName: string,\n) {\n\tconst knownSymbol =\n\t\tsymbolConstructor &&\n\t\ttypeChecker\n\t\t\t.getTypeOfSymbolAtLocation(\n\t\t\t\tsymbolConstructor,\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(symbolConstructor as any).valueDeclaration,\n\t\t\t)\n\t\t\t.getProperty(symbolName);\n\tconst knownSymbolType =\n\t\tknownSymbol &&\n\t\ttypeChecker.getTypeOfSymbolAtLocation(\n\t\t\tknownSymbol,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\t(knownSymbol as any).valueDeclaration,\n\t\t);\n\tif (knownSymbolType && isUniqueESSymbolType(knownSymbolType)) {\n\t\treturn knownSymbolType.escapedName;\n\t}\n\n\treturn (\"__@\" + symbolName) as ts.__String;\n}\n","import ts from \"typescript\";\n\nimport { isTypeFlagSet } from \"../../flags\";\n\n/**\n * A \"any\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicAnyType extends IntrinsicType {\n\tintrinsicName: \"any\";\n}\n\n/**\n * Determines whether the given type is the \"any\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicAnyType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicAnyType(type: ts.Type): type is IntrinsicAnyType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Any);\n}\n\n/**\n * A \"boolean\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicBooleanType extends IntrinsicType {\n\tintrinsicName: \"boolean\";\n}\n\n/**\n * Determines whether the given type is the \"boolean\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicBooleanType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicBooleanType(\n\ttype: ts.Type,\n): type is IntrinsicBooleanType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Boolean);\n}\n\n/**\n * A \"bigint\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicBigIntType extends IntrinsicType {\n\tintrinsicName: \"bigint\";\n}\n\n/**\n * Determines whether the given type is the \"bigint\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicBigIntType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicBigIntType(\n\ttype: ts.Type,\n): type is IntrinsicBigIntType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.BigInt);\n}\n\n/**\n * An \"error\" intrinsic type.\n *\n * This refers to a type generated when TypeScript encounters an error while\n * trying to resolve the type.\n * @category Type Types\n */\nexport interface IntrinsicErrorType extends IntrinsicType {\n\tintrinsicName: \"error\";\n}\n\n/**\n * Determines whether the given type is the \"error\" intrinsic type.\n *\n * The intrinsic error type occurs when TypeScript encounters an error while\n * trying to resolve the type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicErrorType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicErrorType(\n\ttype: ts.Type,\n): type is IntrinsicErrorType {\n\treturn isIntrinsicType(type) && type.intrinsicName === \"error\";\n}\n\n/**\n * A \"symbol\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicESSymbolType extends IntrinsicType {\n\tintrinsicName: \"symbol\";\n}\n\n/**\n * Determines whether the given type is the \"symbol\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicESSymbolType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicESSymbolType(\n\ttype: ts.Type,\n): type is IntrinsicESSymbolType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.ESSymbol);\n}\n\n/**\n * An intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicType extends ts.Type {\n\tintrinsicName: string;\n\tobjectFlags: ts.ObjectFlags;\n}\n\n// ts.TypeFlags.Intrinsic\nconst IntrinsicTypeFlags =\n\t(ts.TypeFlags as { Intrinsic?: number }).Intrinsic ??\n\tts.TypeFlags.Any |\n\t\tts.TypeFlags.Unknown |\n\t\tts.TypeFlags.String |\n\t\tts.TypeFlags.Number |\n\t\tts.TypeFlags.BigInt |\n\t\tts.TypeFlags.Boolean |\n\t\tts.TypeFlags.BooleanLiteral |\n\t\tts.TypeFlags.ESSymbol |\n\t\tts.TypeFlags.Void |\n\t\tts.TypeFlags.Undefined |\n\t\tts.TypeFlags.Null |\n\t\tts.TypeFlags.Never |\n\t\tts.TypeFlags.NonPrimitive;\n\n/**\n * Test if a type is an {@link IntrinsicType}.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicType(type: ts.Type): type is IntrinsicType {\n\treturn isTypeFlagSet(type, IntrinsicTypeFlags);\n}\n\n/**\n * A \"never\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicNeverType extends IntrinsicType {\n\tintrinsicName: \"never\";\n}\n\n/**\n * Determines whether the given type is the \"never\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicNeverType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicNeverType(\n\ttype: ts.Type,\n): type is IntrinsicNeverType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Never);\n}\n\n/**\n * A non-primitive intrinsic type.\n * E.g. An \"object\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicNonPrimitiveType extends IntrinsicType {\n\tintrinsicName: \"\";\n}\n\n/**\n * Determines whether the given type is a non-primitive intrinsic type.\n * E.g. An \"object\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicNonPrimitiveType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicNonPrimitiveType(\n\ttype: ts.Type,\n): type is IntrinsicNonPrimitiveType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.NonPrimitive);\n}\n\n/**\n * A \"null\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicNullType extends IntrinsicType {\n\tintrinsicName: \"null\";\n}\n\n/**\n * Determines whether the given type is the \"null\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicNullType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicNullType(type: ts.Type): type is IntrinsicNullType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Null);\n}\n\n/**\n * A \"number\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicNumberType extends IntrinsicType {\n\tintrinsicName: \"number\";\n}\n\n/**\n * Determines whether the given type is the \"number\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicNumberType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicNumberType(\n\ttype: ts.Type,\n): type is IntrinsicNumberType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Number);\n}\n\n/**\n * A \"string\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicStringType extends IntrinsicType {\n\tintrinsicName: \"string\";\n}\n\n/**\n * Determines whether the given type is the \"string\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicStringType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicStringType(\n\ttype: ts.Type,\n): type is IntrinsicStringType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.String);\n}\n\n/**\n * An \"undefined\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicUndefinedType extends IntrinsicType {\n\tintrinsicName: \"undefined\";\n}\n\n/**\n * Determines whether the given type is the \"undefined\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicUndefinedType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicUndefinedType(\n\ttype: ts.Type,\n): type is IntrinsicUndefinedType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Undefined);\n}\n\n/**\n * An \"unknown\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicUnknownType extends IntrinsicType {\n\tintrinsicName: \"unknown\";\n}\n\n/**\n * Determines whether the given type is the \"unknown\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicUnknownType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicUnknownType(\n\ttype: ts.Type,\n): type is IntrinsicUnknownType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Unknown);\n}\n\n/**\n * A \"void\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicVoidType extends IntrinsicType {\n\tintrinsicName: \"void\";\n}\n\n/**\n * Determines whether the given type is the \"void\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicVoidType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicVoidType(type: ts.Type): type is IntrinsicVoidType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Void);\n}\n","import ts from \"typescript\";\n\nimport { isObjectFlagSet } from \"../../flags\";\nimport { isObjectType } from \"./single\";\n\n/**\n * Test if a type is a `EvolvingArrayType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isEvolvingArrayType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isEvolvingArrayType(\n\ttype: ts.Type,\n): type is ts.EvolvingArrayType {\n\treturn (\n\t\tisObjectType(type) && isObjectFlagSet(type, ts.ObjectFlags.EvolvingArray)\n\t);\n}\n\n/**\n * Test if a type is a `TupleType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTupleType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isTupleType(type: ts.Type): type is ts.TupleType {\n\treturn isObjectType(type) && isObjectFlagSet(type, ts.ObjectFlags.Tuple);\n}\n\n/**\n * Test if a type is a `TypeReference`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTypeReference(type)) {\n * // ...\n * }\n * ```\n */\nexport function isTypeReference(type: ts.Type): type is ts.TypeReference {\n\treturn isObjectType(type) && isObjectFlagSet(type, ts.ObjectFlags.Reference);\n}\n","import ts from \"typescript\";\n\nimport { isTypeFlagSet } from \"../../flags\";\n\n/**\n * Test if a type is a `ConditionalType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isConditionalType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isConditionalType(type: ts.Type): type is ts.ConditionalType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Conditional);\n}\n\n/**\n * Test if a type is a `EnumType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isEnumType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isEnumType(type: ts.Type): type is ts.EnumType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Enum);\n}\n\n/**\n * Test if a type is a `FreshableType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isFreshableType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isFreshableType(type: ts.Type): type is ts.FreshableType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Freshable);\n}\n\n/**\n * Test if a type is a `IndexType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIndexType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIndexType(type: ts.Type): type is ts.IndexType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Index);\n}\n\n/**\n * Test if a type is a `IndexedAccessType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIndexedAccessType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIndexedAccessType(\n\ttype: ts.Type,\n): type is ts.IndexedAccessType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.IndexedAccess);\n}\n\n/**\n * Test if a type is a `InstantiableType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isInstantiableType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isInstantiableType(type: ts.Type): type is ts.InstantiableType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Instantiable);\n}\n\n/**\n * Test if a type is a `IntersectionType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntersectionType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntersectionType(type: ts.Type): type is ts.IntersectionType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Intersection);\n}\n\n/**\n * Test if a type is a `ObjectType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isObjectType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isObjectType(type: ts.Type): type is ts.ObjectType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Object);\n}\n\n/**\n * Test if a type is a `StringMappingType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isStringMappingType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isStringMappingType(\n\ttype: ts.Type,\n): type is ts.StringMappingType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.StringMapping);\n}\n\n/**\n * Test if a type is a `SubstitutionType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isSubstitutionType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isSubstitutionType(type: ts.Type): type is ts.SubstitutionType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Substitution);\n}\n\n/**\n * Test if a type is a `TypeParameter`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTypeParameter(type)) {\n * // ...\n * }\n * ```\n */\nexport function isTypeParameter(type: ts.Type): type is ts.TypeParameter {\n\treturn isTypeFlagSet(type, ts.TypeFlags.TypeParameter);\n}\n\n/**\n * Test if a type is a `TypeVariable`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTypeVariable(type)) {\n * // ...\n * }\n * ```\n */\nexport function isTypeVariable(type: ts.Type): type is ts.TypeVariable {\n\treturn isTypeFlagSet(type, ts.TypeFlags.TypeVariable);\n}\n\n/**\n * Test if a type is a `UnionType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isUnionType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isUnionType(type: ts.Type): type is ts.UnionType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Union);\n}\n\n/**\n * Test if a type is a `UnionOrIntersectionType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isUnionOrIntersectionType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isUnionOrIntersectionType(\n\ttype: ts.Type,\n): type is ts.UnionOrIntersectionType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.UnionOrIntersection);\n}\n\n/**\n * Test if a type is a `UniqueESSymbolType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isUniqueESSymbolType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isUniqueESSymbolType(\n\ttype: ts.Type,\n): type is ts.UniqueESSymbolType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.UniqueESSymbol);\n}\n","import ts from \"typescript\";\n\nimport { type IntrinsicType, isIntrinsicType } from \"./intrinsic\";\nimport { isTupleType, isTypeReference } from \"./objects\";\nimport { isFreshableType } from \"./single\";\n\n/**\n * A type that is both an {@link IntrinsicType} and a `FreshableType`\n * @category Type Types\n */\nexport interface FreshableIntrinsicType\n\textends ts.FreshableType,\n\t\tIntrinsicType {}\n\n/**\n * Test if a type is a `FreshableIntrinsicType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isFreshableIntrinsicType(type)) {\n * // ...\n * }\n */\nexport function isFreshableIntrinsicType(\n\ttype: ts.Type,\n): type is FreshableIntrinsicType {\n\treturn isIntrinsicType(type) && isFreshableType(type);\n}\n\n/**\n * Test if a type is a `TupleTypeReference`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTupleTypeReference(type)) {\n * // ...\n * }\n */\nexport function isTupleTypeReference(\n\ttype: ts.Type,\n): type is ts.TupleTypeReference {\n\treturn isTypeReference(type) && isTupleType(type.target);\n}\n","import ts from \"typescript\";\n\nimport { isTypeFlagSet } from \"../../flags\";\nimport { type FreshableIntrinsicType } from \"./compound\";\n\n/**\n * A boolean literal.\n * i.e. Either a \"true\" or \"false\" literal.\n * @category Type Types\n */\nexport interface BooleanLiteralType extends UnknownLiteralType {\n\tintrinsicName: \"false\" | \"true\";\n\tvalue: boolean;\n}\n\n/**\n * Determines whether the given type is a boolean literal type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isBooleanLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isBooleanLiteralType(\n\ttype: ts.Type,\n): type is BooleanLiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.BooleanLiteral);\n}\n\n/**\n * Test if a type is a `BigIntLiteralType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isBigIntLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isBigIntLiteralType(\n\ttype: ts.Type,\n): type is ts.BigIntLiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.BigIntLiteral);\n}\n\n/**\n * A \"false\" literal.\n * @category Type Types\n */\nexport interface FalseLiteralType extends BooleanLiteralType {\n\tintrinsicName: \"false\";\n\tvalue: false;\n}\n\n/**\n * Determines whether the given type is a boolean literal type for \"false\".\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isFalseLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isFalseLiteralType(type: ts.Type): type is FalseLiteralType {\n\treturn isBooleanLiteralType(type) && type.intrinsicName === \"false\";\n}\n\n/**\n * Test if a type is a `LiteralType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isLiteralType(type: ts.Type): type is ts.LiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Literal);\n}\n\n/**\n * Test if a type is a `NumberLiteralType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isNumberLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isNumberLiteralType(\n\ttype: ts.Type,\n): type is ts.NumberLiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.NumberLiteral);\n}\n\n/**\n * Test if a type is a `StringLiteralType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isStringLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isStringLiteralType(\n\ttype: ts.Type,\n): type is ts.StringLiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.StringLiteral);\n}\n\n/**\n * Test if a type is a `TemplateLiteralType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTemplateLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isTemplateLiteralType(\n\ttype: ts.Type,\n): type is ts.TemplateLiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.TemplateLiteral);\n}\n\n/**\n * A \"true\" literal.\n * @category Type Types\n */\nexport interface TrueLiteralType extends BooleanLiteralType {\n\tintrinsicName: \"true\";\n\tvalue: true;\n}\n\n/**\n * Determines whether the given type is a boolean literal type for \"true\".\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTrueLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isTrueLiteralType(type: ts.Type): type is TrueLiteralType {\n\treturn isBooleanLiteralType(type) && type.intrinsicName === \"true\";\n}\n\n/**\n * `LiteralType` from typescript except that it allows for it to work on arbitrary types.\n * @category Type Types\n */\nexport interface UnknownLiteralType extends FreshableIntrinsicType {\n\tvalue: unknown;\n}\n\n/**\n * Test if a type is a {@link UnknownLiteralType}.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isUnknownLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isUnknownLiteralType(\n\ttype: ts.Type,\n): type is UnknownLiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Literal);\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport {\n\tisModifierFlagSet,\n\tisNodeFlagSet,\n\tisObjectFlagSet,\n\tisSymbolFlagSet,\n\tisTypeFlagSet,\n} from \"../flags\";\nimport {\n\tisBindableObjectDefinePropertyCall,\n\tisInConstContext,\n} from \"../nodes/utilities\";\nimport { isNumericPropertyName } from \"../syntax\";\nimport { getPropertyOfType } from \"./getters\";\nimport {\n\tisFalseLiteralType,\n\tisIntersectionType,\n\tisObjectType,\n\tisTupleTypeReference,\n\tisUnionType,\n} from \"./typeGuards\";\n\n/**\n * Determines whether a type is definitely falsy. This function doesn't unwrap union types.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isFalsyType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isFalsyType(type: ts.Type): boolean {\n\tif (\n\t\tisTypeFlagSet(\n\t\t\ttype,\n\t\t\tts.TypeFlags.Undefined | ts.TypeFlags.Null | ts.TypeFlags.Void,\n\t\t)\n\t) {\n\t\treturn true;\n\t}\n\n\tif (type.isLiteral()) {\n\t\treturn !type.value;\n\t}\n\n\treturn isFalseLiteralType(type);\n}\n\n/**\n * Get the intersection type parts of the given type.\n *\n * If the given type is not a intersection type, an array contain only that type will be returned.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * for (const typePart of intersectionTypeParts(type)) {\n * // ...\n * }\n * ```\n */\nexport function intersectionTypeParts(type: ts.Type): ts.Type[] {\n\treturn isIntersectionType(type) ? type.types : [type];\n}\n\n/**\n * Get the intersection or union type parts of the given type.\n *\n * Note that this is a shallow collection: it only returns `type.types` or `[type]`.\n *\n * If the given type is not an intersection or union type, an array contain only that type will be returned.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * for (const typePart of intersectionTypeParts(type)) {\n * // ...\n * }\n * ```\n */\nexport function typeParts(type: ts.Type): ts.Type[] {\n\treturn isIntersectionType(type) || isUnionType(type) ? type.types : [type];\n}\n\nfunction isReadonlyPropertyIntersection(\n\ttype: ts.Type,\n\tname: ts.__String,\n\ttypeChecker: ts.TypeChecker,\n) {\n\tconst typeParts = isIntersectionType(type) ? type.types : [type];\n\treturn typeParts.some((subType): boolean => {\n\t\tconst prop = getPropertyOfType(subType, name);\n\t\tif (prop === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (prop.flags & ts.SymbolFlags.Transient) {\n\t\t\tif (\n\t\t\t\t/^(?:[1-9]\\d*|0)$/.test(name as string) &&\n\t\t\t\tisTupleTypeReference(subType)\n\t\t\t) {\n\t\t\t\treturn subType.target.readonly;\n\t\t\t}\n\n\t\t\tswitch (isReadonlyPropertyFromMappedType(subType, name, typeChecker)) {\n\t\t\t\tcase true:\n\t\t\t\t\treturn true;\n\t\t\t\tcase false:\n\t\t\t\t\treturn false;\n\t\t\t\tdefault:\n\t\t\t\t// `undefined` falls through\n\t\t\t}\n\t\t}\n\n\t\treturn !!(\n\t\t\t// members of namespace import\n\t\t\t(\n\t\t\t\tisSymbolFlagSet(prop, ts.SymbolFlags.ValueModule) ||\n\t\t\t\t// we unwrapped every mapped type, now we can check the actual declarations\n\t\t\t\tsymbolHasReadonlyDeclaration(prop, typeChecker)\n\t\t\t)\n\t\t);\n\t});\n}\n\nfunction isReadonlyPropertyFromMappedType(\n\ttype: ts.Type,\n\tname: ts.__String,\n\ttypeChecker: ts.TypeChecker,\n): boolean | undefined {\n\tif (!isObjectType(type) || !isObjectFlagSet(type, ts.ObjectFlags.Mapped)) {\n\t\treturn;\n\t}\n\n\tconst declaration = type.symbol.declarations![0] as ts.MappedTypeNode;\n\t// well-known symbols are not affected by mapped types\n\tif (\n\t\tdeclaration.readonlyToken !== undefined &&\n\t\t!/^__@[^@]+$/.test(name as string)\n\t) {\n\t\treturn declaration.readonlyToken.kind !== ts.SyntaxKind.MinusToken;\n\t}\n\n\tconst { modifiersType } = type as { modifiersType?: ts.Type };\n\n\treturn (\n\t\tmodifiersType && isPropertyReadonlyInType(modifiersType, name, typeChecker)\n\t);\n}\n\nfunction isCallback(\n\ttypeChecker: ts.TypeChecker,\n\tparam: ts.Symbol,\n\tnode: ts.Node,\n): boolean {\n\tlet type: ts.Type | undefined = typeChecker.getApparentType(\n\t\ttypeChecker.getTypeOfSymbolAtLocation(param, node),\n\t);\n\tif ((param.valueDeclaration as ts.ParameterDeclaration).dotDotDotToken) {\n\t\t// unwrap array type of rest parameter\n\t\ttype = type.getNumberIndexType();\n\t\tif (type === undefined) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tfor (const subType of unionTypeParts(type)) {\n\t\tif (subType.getCallSignatures().length !== 0) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * Determines whether writing to a certain property of a given type is allowed.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const property: ts.Symbol;\n * declare const type: ts.Type;\n * declare const typeChecker: ts.TypeChecker;\n *\n * if (isPropertyReadonlyInType(type, property.getEscapedName(), typeChecker)) {\n * // ...\n * }\n * ```\n */\nexport function isPropertyReadonlyInType(\n\ttype: ts.Type,\n\tname: ts.__String,\n\ttypeChecker: ts.TypeChecker,\n): boolean {\n\tlet seenProperty = false;\n\tlet seenReadonlySignature = false;\n\tfor (const subType of unionTypeParts(type)) {\n\t\tif (getPropertyOfType(subType, name) === undefined) {\n\t\t\t// property is not present in this part of the union -> check for readonly index signature\n\t\t\tconst index =\n\t\t\t\t(isNumericPropertyName(name)\n\t\t\t\t\t? typeChecker.getIndexInfoOfType(subType, ts.IndexKind.Number)\n\t\t\t\t\t: undefined) ??\n\t\t\t\ttypeChecker.getIndexInfoOfType(subType, ts.IndexKind.String);\n\t\t\tif (index?.isReadonly) {\n\t\t\t\tif (seenProperty) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tseenReadonlySignature = true;\n\t\t\t}\n\t\t} else if (\n\t\t\tseenReadonlySignature ||\n\t\t\tisReadonlyPropertyIntersection(subType, name, typeChecker)\n\t\t) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\tseenProperty = true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * Returns true for `Object.defineProperty(o, 'prop', {value, writable: false})` and `Object.defineProperty(o, 'prop', {get: () => 1})`\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const node: ts.CallExpression;\n * declare const typeChecker: ts.TypeChecker;\n *\n * if (isReadonlyAssignmentDeclaration(node, typeChecker)) {\n * // ...\n * }\n * ```\n */\nfunction isReadonlyAssignmentDeclaration(\n\tnode: ts.CallExpression,\n\ttypeChecker: ts.TypeChecker,\n) {\n\tif (!isBindableObjectDefinePropertyCall(node)) {\n\t\treturn false;\n\t}\n\n\tconst descriptorType = typeChecker.getTypeAtLocation(node.arguments[2]);\n\tif (descriptorType.getProperty(\"value\") === undefined) {\n\t\treturn descriptorType.getProperty(\"set\") === undefined;\n\t}\n\n\tconst writableProp = descriptorType.getProperty(\"writable\");\n\tif (writableProp === undefined) {\n\t\treturn false;\n\t}\n\n\tconst writableType =\n\t\twritableProp.valueDeclaration !== undefined &&\n\t\tts.isPropertyAssignment(writableProp.valueDeclaration)\n\t\t\t? typeChecker.getTypeAtLocation(writableProp.valueDeclaration.initializer)\n\t\t\t: typeChecker.getTypeOfSymbolAtLocation(writableProp, node.arguments[2]);\n\treturn isFalseLiteralType(writableType);\n}\n\n/**\n * Determines whether a type is thenable and thus can be used with `await`.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n * declare const type: ts.Type;\n * declare const typeChecker: ts.TypeChecker;\n *\n * if (isThenableType(typeChecker, node, type)) {\n * // ...\n * }\n * ```\n */\nexport function isThenableType(\n\ttypeChecker: ts.TypeChecker,\n\tnode: ts.Node,\n\ttype: ts.Type,\n): boolean;\n\n/**\n * Determines whether a type is thenable and thus can be used with `await`.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const expression: ts.Expression;\n * declare const typeChecker: ts.TypeChecker;\n *\n * if (isThenableType(typeChecker, expression)) {\n * // ...\n * }\n * ```\n * @example\n * ```ts\n * declare const expression: ts.Expression;\n * declare const typeChecker: ts.TypeChecker;\n * declare const type: ts.Type;\n *\n * if (isThenableType(typeChecker, expression, type)) {\n * // ...\n * }\n * ```\n */\nexport function isThenableType(\n\ttypeChecker: ts.TypeChecker,\n\tnode: ts.Expression,\n\ttype?: ts.Type,\n): boolean;\n\nexport function isThenableType(\n\ttypeChecker: ts.TypeChecker,\n\tnode: ts.Node,\n\ttype = typeChecker.getTypeAtLocation(node)!,\n): boolean {\n\tfor (const typePart of unionTypeParts(typeChecker.getApparentType(type))) {\n\t\tconst then = typePart.getProperty(\"then\");\n\t\tif (then === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst thenType = typeChecker.getTypeOfSymbolAtLocation(then, node);\n\t\tfor (const subTypePart of unionTypeParts(thenType)) {\n\t\t\tfor (const signature of subTypePart.getCallSignatures()) {\n\t\t\t\tif (\n\t\t\t\t\tsignature.parameters.length !== 0 &&\n\t\t\t\t\tisCallback(typeChecker, signature.parameters[0], node)\n\t\t\t\t) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * Test if the given symbol has a readonly declaration.\n * @category Symbols - Utilities\n * @example\n * ```ts\n * declare const symbol: ts.Symbol;\n * declare const typeChecker: ts.TypeChecker;\n *\n * if (symbolHasReadonlyDeclaration(symbol, typeChecker)) {\n * // ...\n * }\n * ```\n */\nexport function symbolHasReadonlyDeclaration(\n\tsymbol: ts.Symbol,\n\ttypeChecker: ts.TypeChecker,\n): boolean {\n\treturn !!(\n\t\t(symbol.flags & ts.SymbolFlags.Accessor) === ts.SymbolFlags.GetAccessor ||\n\t\tsymbol.declarations?.some(\n\t\t\t(node) =>\n\t\t\t\tisModifierFlagSet(node, ts.ModifierFlags.Readonly) ||\n\t\t\t\t(ts.isVariableDeclaration(node) &&\n\t\t\t\t\tisNodeFlagSet(node.parent, ts.NodeFlags.Const)) ||\n\t\t\t\t(ts.isCallExpression(node) &&\n\t\t\t\t\tisReadonlyAssignmentDeclaration(node, typeChecker)) ||\n\t\t\t\tts.isEnumMember(node) ||\n\t\t\t\t((ts.isPropertyAssignment(node) ||\n\t\t\t\t\tts.isShorthandPropertyAssignment(node)) &&\n\t\t\t\t\tisInConstContext(node.parent)),\n\t\t)\n\t);\n}\n\n/**\n * Get the union type parts of the given type.\n *\n * If the given type is not a union type, an array contain only that type will be returned.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * for (const typePart of unionTypeParts(type)) {\n * // ...\n * }\n * ```\n */\nexport function unionTypeParts(type: ts.Type): ts.Type[] {\n\treturn isUnionType(type) ? type.types : [type];\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport {\n\tisConstAssertionExpression,\n\tisEntityNameExpression,\n\tisNumericOrStringLikeLiteral,\n} from \"./typeGuards\";\n\n/**\n * Determines whether a call to {@link Object.defineProperty} is statically analyzable.\n * @internal\n */\nexport function isBindableObjectDefinePropertyCall(\n\tnode: ts.CallExpression,\n): boolean {\n\treturn (\n\t\tnode.arguments.length === 3 &&\n\t\tisEntityNameExpression(node.arguments[0]) &&\n\t\tisNumericOrStringLikeLiteral(node.arguments[1]) &&\n\t\tts.isPropertyAccessExpression(node.expression) &&\n\t\tnode.expression.name.escapedText === \"defineProperty\" &&\n\t\tts.isIdentifier(node.expression.expression) &&\n\t\tnode.expression.expression.escapedText === \"Object\"\n\t);\n}\n\n/**\n * Detects whether an expression is affected by an enclosing `as const` assertion and therefore treated literally.\n * @internal\n */\nexport function isInConstContext(node: ts.Expression): boolean {\n\tlet current: ts.Node = node;\n\twhile (true) {\n\t\tconst parent = current.parent;\n\t\touter: switch (parent.kind) {\n\t\t\tcase ts.SyntaxKind.TypeAssertionExpression:\n\t\t\tcase ts.SyntaxKind.AsExpression:\n\t\t\t\treturn isConstAssertionExpression(parent as ts.AssertionExpression);\n\t\t\tcase ts.SyntaxKind.PrefixUnaryExpression:\n\t\t\t\tif (current.kind !== ts.SyntaxKind.NumericLiteral) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tswitch ((parent as ts.PrefixUnaryExpression).operator) {\n\t\t\t\t\tcase ts.SyntaxKind.PlusToken:\n\t\t\t\t\tcase ts.SyntaxKind.MinusToken:\n\t\t\t\t\t\tcurrent = parent;\n\t\t\t\t\t\tbreak outer;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\tcase ts.SyntaxKind.PropertyAssignment:\n\t\t\t\tif ((parent as ts.PropertyAssignment).initializer !== current) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tcurrent = parent.parent!;\n\t\t\t\tbreak;\n\t\t\tcase ts.SyntaxKind.ShorthandPropertyAssignment:\n\t\t\t\tcurrent = parent.parent!;\n\t\t\t\tbreak;\n\t\t\tcase ts.SyntaxKind.ParenthesizedExpression:\n\t\t\tcase ts.SyntaxKind.ArrayLiteralExpression:\n\t\t\tcase ts.SyntaxKind.ObjectLiteralExpression:\n\t\t\tcase ts.SyntaxKind.TemplateExpression:\n\t\t\t\tcurrent = parent;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { includesModifier } from \"../modifiers\";\nimport {\n\tScope,\n\tScopeBoundary,\n\tScopeBoundarySelector,\n\tisBlockScopeBoundary,\n} from \"./Scope\";\nimport { DeclarationDomain } from \"./declarations\";\nimport { getPropertyName } from \"./getPropertyName\";\nimport { getUsageDomain } from \"./getUsageDomain\";\nimport {\n\tBlockScope,\n\tClassExpressionScope,\n\tConditionalTypeScope,\n\tConditionalTypeScopeState,\n\tFunctionExpressionScope,\n\tFunctionScope,\n\tNonRootScope,\n\tRootScope,\n} from \"./scopes\";\nimport { UsageInfo, UsageInfoCallback } from \"./usage\";\nimport {\n\tcanHaveDecorators,\n\tgetDecorators,\n\tidentifierToKeywordKind,\n} from \"./utils\";\n\n// TODO class decorators resolve outside of class, element and parameter decorator resolve inside/at the class\n// TODO computed property name resolves inside/at the class\n// TODO this and super in all of them are resolved outside of the class\nexport class UsageWalker {\n\t#result = new Map();\n\t#scope!: Scope;\n\n\t#handleBindingName(\n\t\tname: ts.BindingName,\n\t\tblockScoped: boolean,\n\t\texported: boolean,\n\t) {\n\t\tif (name.kind === ts.SyntaxKind.Identifier) {\n\t\t\treturn this.#scope.addVariable(\n\t\t\t\tname.text,\n\t\t\t\tname,\n\t\t\t\tblockScoped\n\t\t\t\t\t? ScopeBoundarySelector.Block\n\t\t\t\t\t: ScopeBoundarySelector.Function,\n\t\t\t\texported,\n\t\t\t\tDeclarationDomain.Value,\n\t\t\t);\n\t\t}\n\n\t\tforEachDestructuringIdentifier(name, (declaration) => {\n\t\t\tthis.#scope.addVariable(\n\t\t\t\tdeclaration.name.text,\n\t\t\t\tdeclaration.name,\n\t\t\t\tblockScoped\n\t\t\t\t\t? ScopeBoundarySelector.Block\n\t\t\t\t\t: ScopeBoundarySelector.Function,\n\t\t\t\texported,\n\t\t\t\tDeclarationDomain.Value,\n\t\t\t);\n\t\t});\n\t}\n\n\t#handleConditionalType(\n\t\tnode: ts.ConditionalTypeNode,\n\t\tcb: (node: ts.Node) => void,\n\t\tvarCb: UsageInfoCallback,\n\t) {\n\t\tconst savedScope = this.#scope;\n\t\tconst scope = (this.#scope = new ConditionalTypeScope(savedScope));\n\t\tcb(node.checkType);\n\t\tscope.updateState(ConditionalTypeScopeState.Extends);\n\t\tcb(node.extendsType);\n\t\tscope.updateState(ConditionalTypeScopeState.TrueType);\n\t\tcb(node.trueType);\n\t\tscope.updateState(ConditionalTypeScopeState.FalseType);\n\t\tcb(node.falseType);\n\t\tscope.end(varCb);\n\t\tthis.#scope = savedScope;\n\t}\n\n\t#handleDeclaration(\n\t\tnode: ts.NamedDeclaration,\n\t\tblockScoped: boolean,\n\t\tdomain: DeclarationDomain,\n\t) {\n\t\tif (node.name !== undefined) {\n\t\t\tthis.#scope.addVariable(\n\t\t\t\t(node.name as ts.Identifier).text,\n\t\t\t\tnode.name as ts.Identifier,\n\t\t\t\tblockScoped\n\t\t\t\t\t? ScopeBoundarySelector.Block\n\t\t\t\t\t: ScopeBoundarySelector.Function,\n\t\t\t\tincludesModifier(\n\t\t\t\t\t(node as ts.HasModifiers).modifiers,\n\t\t\t\t\tts.SyntaxKind.ExportKeyword,\n\t\t\t\t),\n\t\t\t\tdomain,\n\t\t\t);\n\t\t}\n\t}\n\n\t#handleFunctionLikeDeclaration(\n\t\tnode: ts.FunctionLikeDeclaration,\n\t\tcb: (node: ts.Node) => void,\n\t\tvarCb: UsageInfoCallback,\n\t) {\n\t\tif (canHaveDecorators(node)) {\n\t\t\tgetDecorators(node)?.forEach(cb);\n\t\t}\n\n\t\tconst savedScope = this.#scope;\n\t\tif (node.kind === ts.SyntaxKind.FunctionDeclaration) {\n\t\t\tthis.#handleDeclaration(node, false, DeclarationDomain.Value);\n\t\t}\n\n\t\tconst scope = (this.#scope =\n\t\t\tnode.kind === ts.SyntaxKind.FunctionExpression && node.name !== undefined\n\t\t\t\t? new FunctionExpressionScope(node.name, savedScope)\n\t\t\t\t: new FunctionScope(savedScope));\n\t\tif (node.name !== undefined) {\n\t\t\tcb(node.name);\n\t\t}\n\n\t\tif (node.typeParameters !== undefined) {\n\t\t\tnode.typeParameters.forEach(cb);\n\t\t}\n\n\t\tnode.parameters.forEach(cb);\n\t\tif (node.type !== undefined) {\n\t\t\tcb(node.type);\n\t\t}\n\n\t\tif (node.body !== undefined) {\n\t\t\tscope.beginBody();\n\t\t\tcb(node.body);\n\t\t}\n\n\t\tscope.end(varCb);\n\t\tthis.#scope = savedScope;\n\t}\n\n\t#handleModule(\n\t\tnode: ts.ModuleDeclaration,\n\t\tnext: (node: ts.Node, scope: Scope) => void,\n\t) {\n\t\tif (node.flags & ts.NodeFlags.GlobalAugmentation) {\n\t\t\treturn next(\n\t\t\t\tnode,\n\t\t\t\tthis.#scope.createOrReuseNamespaceScope(\"-global\", false, true, false),\n\t\t\t);\n\t\t}\n\n\t\tif (node.name.kind === ts.SyntaxKind.Identifier) {\n\t\t\tconst exported = isNamespaceExported(node as ts.NamespaceDeclaration);\n\t\t\tthis.#scope.addVariable(\n\t\t\t\tnode.name.text,\n\t\t\t\tnode.name,\n\t\t\t\tScopeBoundarySelector.Function,\n\t\t\t\texported,\n\t\t\t\tDeclarationDomain.Namespace | DeclarationDomain.Value,\n\t\t\t);\n\t\t\tconst ambient = includesModifier(\n\t\t\t\tnode.modifiers,\n\t\t\t\tts.SyntaxKind.DeclareKeyword,\n\t\t\t);\n\t\t\treturn next(\n\t\t\t\tnode,\n\t\t\t\tthis.#scope.createOrReuseNamespaceScope(\n\t\t\t\t\tnode.name.text,\n\t\t\t\t\texported,\n\t\t\t\t\tambient,\n\t\t\t\t\tambient && namespaceHasExportStatement(node),\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\treturn next(\n\t\t\tnode,\n\t\t\tthis.#scope.createOrReuseNamespaceScope(\n\t\t\t\t`\"${node.name.text}\"`,\n\t\t\t\tfalse,\n\t\t\t\ttrue,\n\t\t\t\tnamespaceHasExportStatement(node),\n\t\t\t),\n\t\t);\n\t}\n\n\t#handleVariableDeclaration(declarationList: ts.VariableDeclarationList) {\n\t\tconst blockScoped = isBlockScopedVariableDeclarationList(declarationList);\n\t\tconst exported =\n\t\t\tdeclarationList.parent.kind === ts.SyntaxKind.VariableStatement &&\n\t\t\tincludesModifier(\n\t\t\t\tdeclarationList.parent.modifiers,\n\t\t\t\tts.SyntaxKind.ExportKeyword,\n\t\t\t);\n\t\tfor (const declaration of declarationList.declarations) {\n\t\t\tthis.#handleBindingName(declaration.name, blockScoped, exported);\n\t\t}\n\t}\n\n\tgetUsage(sourceFile: ts.SourceFile): Map {\n\t\tconst variableCallback = (variable: UsageInfo, key: ts.Identifier) => {\n\t\t\tthis.#result.set(key, variable);\n\t\t};\n\n\t\tconst isModule = ts.isExternalModule(sourceFile);\n\t\tthis.#scope = new RootScope(\n\t\t\tsourceFile.isDeclarationFile &&\n\t\t\t\tisModule &&\n\t\t\t\t!containsExportStatement(sourceFile),\n\t\t\t!isModule,\n\t\t);\n\t\tconst cb = (node: ts.Node): void => {\n\t\t\tif (isBlockScopeBoundary(node)) {\n\t\t\t\treturn continueWithScope(\n\t\t\t\t\tnode,\n\t\t\t\t\tnew BlockScope(this.#scope.getFunctionScope(), this.#scope),\n\t\t\t\t\thandleBlockScope,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tswitch (node.kind) {\n\t\t\t\tcase ts.SyntaxKind.ClassExpression:\n\t\t\t\t\treturn continueWithScope(\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\t(node as ts.ClassExpression).name !== undefined\n\t\t\t\t\t\t\t? new ClassExpressionScope(\n\t\t\t\t\t\t\t\t\t(node as ts.ClassExpression).name!,\n\t\t\t\t\t\t\t\t\tthis.#scope,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: new NonRootScope(this.#scope, ScopeBoundary.Function),\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.ClassDeclaration:\n\t\t\t\t\tthis.#handleDeclaration(\n\t\t\t\t\t\tnode as ts.ClassDeclaration,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tDeclarationDomain.Value | DeclarationDomain.Type,\n\t\t\t\t\t);\n\t\t\t\t\treturn continueWithScope(\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tnew NonRootScope(this.#scope, ScopeBoundary.Function),\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.InterfaceDeclaration:\n\t\t\t\tcase ts.SyntaxKind.TypeAliasDeclaration:\n\t\t\t\t\tthis.#handleDeclaration(\n\t\t\t\t\t\tnode as ts.InterfaceDeclaration | ts.TypeAliasDeclaration,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tDeclarationDomain.Type,\n\t\t\t\t\t);\n\t\t\t\t\treturn continueWithScope(\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tnew NonRootScope(this.#scope, ScopeBoundary.Type),\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.EnumDeclaration:\n\t\t\t\t\tthis.#handleDeclaration(\n\t\t\t\t\t\tnode as ts.EnumDeclaration,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tDeclarationDomain.Any,\n\t\t\t\t\t);\n\t\t\t\t\treturn continueWithScope(\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tthis.#scope.createOrReuseEnumScope(\n\t\t\t\t\t\t\t(node as ts.EnumDeclaration).name.text,\n\t\t\t\t\t\t\tincludesModifier(\n\t\t\t\t\t\t\t\t(node as ts.HasModifiers).modifiers,\n\t\t\t\t\t\t\t\tts.SyntaxKind.ExportKeyword,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.ModuleDeclaration:\n\t\t\t\t\treturn this.#handleModule(\n\t\t\t\t\t\tnode as ts.ModuleDeclaration,\n\t\t\t\t\t\tcontinueWithScope,\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.MappedType:\n\t\t\t\t\treturn continueWithScope(\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tnew NonRootScope(this.#scope, ScopeBoundary.Type),\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.FunctionExpression:\n\t\t\t\tcase ts.SyntaxKind.ArrowFunction:\n\t\t\t\tcase ts.SyntaxKind.Constructor:\n\t\t\t\tcase ts.SyntaxKind.MethodDeclaration:\n\t\t\t\tcase ts.SyntaxKind.FunctionDeclaration:\n\t\t\t\tcase ts.SyntaxKind.GetAccessor:\n\t\t\t\tcase ts.SyntaxKind.SetAccessor:\n\t\t\t\tcase ts.SyntaxKind.MethodSignature:\n\t\t\t\tcase ts.SyntaxKind.CallSignature:\n\t\t\t\tcase ts.SyntaxKind.ConstructSignature:\n\t\t\t\tcase ts.SyntaxKind.ConstructorType:\n\t\t\t\tcase ts.SyntaxKind.FunctionType:\n\t\t\t\t\treturn this.#handleFunctionLikeDeclaration(\n\t\t\t\t\t\tnode as ts.FunctionLikeDeclaration,\n\t\t\t\t\t\tcb,\n\t\t\t\t\t\tvariableCallback,\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.ConditionalType:\n\t\t\t\t\treturn this.#handleConditionalType(\n\t\t\t\t\t\tnode as ts.ConditionalTypeNode,\n\t\t\t\t\t\tcb,\n\t\t\t\t\t\tvariableCallback,\n\t\t\t\t\t);\n\t\t\t\t// End of Scope specific handling\n\t\t\t\tcase ts.SyntaxKind.VariableDeclarationList:\n\t\t\t\t\tthis.#handleVariableDeclaration(node as ts.VariableDeclarationList);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ts.SyntaxKind.Parameter:\n\t\t\t\t\tif (\n\t\t\t\t\t\tnode.parent.kind !== ts.SyntaxKind.IndexSignature &&\n\t\t\t\t\t\t((node as ts.ParameterDeclaration).name.kind !==\n\t\t\t\t\t\t\tts.SyntaxKind.Identifier ||\n\t\t\t\t\t\t\tidentifierToKeywordKind(\n\t\t\t\t\t\t\t\t(node as ts.NamedDeclaration).name as ts.Identifier,\n\t\t\t\t\t\t\t) !== ts.SyntaxKind.ThisKeyword)\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.#handleBindingName(\n\t\t\t\t\t\t\t(node as ts.NamedDeclaration).name as ts.Identifier,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase ts.SyntaxKind.EnumMember:\n\t\t\t\t\tthis.#scope.addVariable(\n\t\t\t\t\t\tgetPropertyName((node as ts.EnumMember).name)!,\n\t\t\t\t\t\t(node as ts.EnumMember).name,\n\t\t\t\t\t\tScopeBoundarySelector.Function,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tDeclarationDomain.Value,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ts.SyntaxKind.ImportClause:\n\t\t\t\tcase ts.SyntaxKind.ImportSpecifier:\n\t\t\t\tcase ts.SyntaxKind.NamespaceImport:\n\t\t\t\tcase ts.SyntaxKind.ImportEqualsDeclaration:\n\t\t\t\t\tthis.#handleDeclaration(\n\t\t\t\t\t\tnode as ts.NamedDeclaration,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tDeclarationDomain.Any | DeclarationDomain.Import,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ts.SyntaxKind.TypeParameter:\n\t\t\t\t\tthis.#scope.addVariable(\n\t\t\t\t\t\t(node as ts.TypeParameterDeclaration).name.text,\n\t\t\t\t\t\t(node as ts.TypeParameterDeclaration).name,\n\t\t\t\t\t\tnode.parent.kind === ts.SyntaxKind.InferType\n\t\t\t\t\t\t\t? ScopeBoundarySelector.InferType\n\t\t\t\t\t\t\t: ScopeBoundarySelector.Type,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tDeclarationDomain.Type,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ts.SyntaxKind.ExportSpecifier:\n\t\t\t\t\tif ((node as ts.ExportSpecifier).propertyName !== undefined) {\n\t\t\t\t\t\treturn this.#scope.markExported(\n\t\t\t\t\t\t\t(node as ts.ExportSpecifier).propertyName!,\n\t\t\t\t\t\t\t(node as ts.ExportSpecifier).name,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.#scope.markExported((node as ts.ExportSpecifier).name);\n\t\t\t\tcase ts.SyntaxKind.ExportAssignment:\n\t\t\t\t\tif (\n\t\t\t\t\t\t(node as ts.ExportAssignment).expression.kind ===\n\t\t\t\t\t\tts.SyntaxKind.Identifier\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn this.#scope.markExported(\n\t\t\t\t\t\t\t(node as ts.ExportAssignment).expression as ts.Identifier,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase ts.SyntaxKind.Identifier: {\n\t\t\t\t\tconst domain = getUsageDomain(node as ts.Identifier);\n\t\t\t\t\tif (domain !== undefined) {\n\t\t\t\t\t\tthis.#scope.addUse({ domain, location: node as ts.Identifier });\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ts.forEachChild(node, cb);\n\t\t};\n\n\t\tconst continueWithScope = (\n\t\t\tnode: T,\n\t\t\tscope: Scope,\n\t\t\tnext: (node: T) => void = forEachChild,\n\t\t) => {\n\t\t\tconst savedScope = this.#scope;\n\t\t\tthis.#scope = scope;\n\t\t\tnext(node);\n\t\t\tthis.#scope.end(variableCallback);\n\t\t\tthis.#scope = savedScope;\n\t\t};\n\n\t\tconst handleBlockScope = (node: ts.Node) => {\n\t\t\tif (\n\t\t\t\tnode.kind === ts.SyntaxKind.CatchClause &&\n\t\t\t\t(node as ts.CatchClause).variableDeclaration !== undefined\n\t\t\t) {\n\t\t\t\tthis.#handleBindingName(\n\t\t\t\t\t(node as ts.CatchClause).variableDeclaration!.name,\n\t\t\t\t\ttrue,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn ts.forEachChild(node, cb);\n\t\t};\n\n\t\tts.forEachChild(sourceFile, cb);\n\t\tthis.#scope.end(variableCallback);\n\t\treturn this.#result;\n\n\t\tfunction forEachChild(node: ts.Node) {\n\t\t\treturn ts.forEachChild(node, cb);\n\t\t}\n\t}\n}\n\nfunction isNamespaceExported(node: ts.NamespaceDeclaration) {\n\treturn (\n\t\tnode.parent.kind === ts.SyntaxKind.ModuleDeclaration ||\n\t\tincludesModifier(node.modifiers, ts.SyntaxKind.ExportKeyword)\n\t);\n}\n\nfunction namespaceHasExportStatement(ns: ts.ModuleDeclaration): boolean {\n\tif (ns.body === undefined || ns.body.kind !== ts.SyntaxKind.ModuleBlock) {\n\t\treturn false;\n\t}\n\n\treturn containsExportStatement(ns.body);\n}\n\nfunction containsExportStatement(block: ts.BlockLike): boolean {\n\tfor (const statement of block.statements) {\n\t\tif (\n\t\t\tstatement.kind === ts.SyntaxKind.ExportDeclaration ||\n\t\t\tstatement.kind === ts.SyntaxKind.ExportAssignment\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nfunction isBlockScopedVariableDeclarationList(\n\tdeclarationList: ts.VariableDeclarationList,\n): boolean {\n\treturn (declarationList.flags & ts.NodeFlags.BlockScoped) !== 0;\n}\n\nfunction forEachDestructuringIdentifier(\n\tpattern: ts.BindingPattern,\n\tfn: (element: ts.BindingElement & { name: ts.Identifier }) => T,\n): T | undefined {\n\tfor (const element of pattern.elements) {\n\t\tif (element.kind !== ts.SyntaxKind.BindingElement) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet result: T | undefined;\n\t\tif (element.name.kind === ts.SyntaxKind.Identifier) {\n\t\t\tresult = fn(element as ts.BindingElement & { name: ts.Identifier });\n\t\t} else {\n\t\t\tresult = forEachDestructuringIdentifier(element.name, fn);\n\t\t}\n\n\t\tif (result) {\n\t\t\treturn result;\n\t\t}\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport type { EnumScope, NamespaceScope } from \"./scopes\";\n\nimport { isFunctionScopeBoundary } from \"../scopes\";\nimport { DeclarationDomain } from \"./declarations\";\nimport { InternalUsageInfo, Usage, UsageInfoCallback } from \"./usage\";\n\nexport enum ScopeBoundary {\n\tBlock = 2,\n\tConditionalType = 8,\n\tFunction = 1,\n\tNone = 0,\n\tType = 4,\n}\n\nexport enum ScopeBoundarySelector {\n\tFunction = ScopeBoundary.Function,\n\t// eslint-disable-next-line perfectionist/sort-enums\n\tBlock = ScopeBoundarySelector.Function | ScopeBoundary.Block,\n\tInferType = ScopeBoundary.ConditionalType,\n\tType = ScopeBoundarySelector.Block | ScopeBoundary.Type,\n}\n\nexport interface Scope {\n\taddUse(use: Usage, scope?: Scope): void;\n\taddVariable(\n\t\tidentifier: string,\n\t\tname: ts.PropertyName,\n\t\tselector: ScopeBoundarySelector,\n\t\texported: boolean,\n\t\tdomain: DeclarationDomain,\n\t): void;\n\tcreateOrReuseEnumScope(name: string, exported: boolean): EnumScope;\n\tcreateOrReuseNamespaceScope(\n\t\tname: string,\n\t\texported: boolean,\n\t\tambient: boolean,\n\t\thasExportStatement: boolean,\n\t): NamespaceScope;\n\tend(cb: UsageInfoCallback): void;\n\tgetDestinationScope(selector: ScopeBoundarySelector): Scope;\n\tgetFunctionScope(): Scope;\n\tgetVariables(): Map;\n\tmarkExported(name: ts.Identifier, as?: ts.Identifier): void;\n}\n\nexport function isBlockScopeBoundary(node: ts.Node): ScopeBoundary {\n\tswitch (node.kind) {\n\t\tcase ts.SyntaxKind.Block: {\n\t\t\tconst parent = node.parent;\n\t\t\treturn parent.kind !== ts.SyntaxKind.CatchClause &&\n\t\t\t\t// blocks inside SourceFile are block scope boundaries\n\t\t\t\t(parent.kind === ts.SyntaxKind.SourceFile ||\n\t\t\t\t\t// blocks that are direct children of a function scope boundary are no scope boundary\n\t\t\t\t\t// for example the FunctionBlock is part of the function scope of the containing function\n\t\t\t\t\t!isFunctionScopeBoundary(parent))\n\t\t\t\t? ScopeBoundary.Block\n\t\t\t\t: ScopeBoundary.None;\n\t\t}\n\n\t\tcase ts.SyntaxKind.ForStatement:\n\t\tcase ts.SyntaxKind.ForInStatement:\n\t\tcase ts.SyntaxKind.ForOfStatement:\n\t\tcase ts.SyntaxKind.CaseBlock:\n\t\tcase ts.SyntaxKind.CatchClause:\n\t\tcase ts.SyntaxKind.WithStatement:\n\t\t\treturn ScopeBoundary.Block;\n\t\tdefault:\n\t\t\treturn ScopeBoundary.None;\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { identifierToKeywordKind } from \"./utils\";\n\n/**\n * Metadata for how a declaration was declared and/or referenced.\n */\nexport interface DeclarationInfo {\n\tdeclaration: ts.PropertyName;\n\tdomain: DeclarationDomain;\n\texported: boolean;\n}\n\n/**\n * Which \"domain\"(s) (most commonly, type or value space) a declaration is within.\n */\nexport enum DeclarationDomain {\n\tImport = 8,\n\tNamespace = 1,\n\tType = 2,\n\tValue = 4,\n\t// eslint-disable-next-line perfectionist/sort-enums\n\tAny = Namespace | Type | Value,\n}\n\nexport function getDeclarationDomain(\n\tnode: ts.Identifier,\n): DeclarationDomain | undefined {\n\tswitch (node.parent.kind) {\n\t\tcase ts.SyntaxKind.TypeParameter:\n\t\tcase ts.SyntaxKind.InterfaceDeclaration:\n\t\tcase ts.SyntaxKind.TypeAliasDeclaration:\n\t\t\treturn DeclarationDomain.Type;\n\t\tcase ts.SyntaxKind.ClassDeclaration:\n\t\tcase ts.SyntaxKind.ClassExpression:\n\t\t\treturn DeclarationDomain.Type | DeclarationDomain.Value;\n\t\tcase ts.SyntaxKind.EnumDeclaration:\n\t\t\treturn DeclarationDomain.Any;\n\t\tcase ts.SyntaxKind.NamespaceImport:\n\t\tcase ts.SyntaxKind.ImportClause:\n\t\t\treturn DeclarationDomain.Any | DeclarationDomain.Import; // TODO handle type-only imports\n\t\tcase ts.SyntaxKind.ImportEqualsDeclaration:\n\t\tcase ts.SyntaxKind.ImportSpecifier:\n\t\t\treturn (node.parent as ts.ImportEqualsDeclaration | ts.ImportSpecifier)\n\t\t\t\t.name === node\n\t\t\t\t? DeclarationDomain.Any | DeclarationDomain.Import // TODO handle type-only imports\n\t\t\t\t: undefined;\n\t\tcase ts.SyntaxKind.ModuleDeclaration:\n\t\t\treturn DeclarationDomain.Namespace;\n\t\tcase ts.SyntaxKind.Parameter:\n\t\t\tif (\n\t\t\t\tnode.parent.parent.kind === ts.SyntaxKind.IndexSignature ||\n\t\t\t\tidentifierToKeywordKind(node) === ts.SyntaxKind.ThisKeyword\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t// falls through\n\t\tcase ts.SyntaxKind.BindingElement:\n\t\tcase ts.SyntaxKind.VariableDeclaration:\n\t\t\treturn (node.parent as ts.VariableLikeDeclaration).name === node\n\t\t\t\t? DeclarationDomain.Value\n\t\t\t\t: undefined;\n\t\tcase ts.SyntaxKind.FunctionDeclaration:\n\t\tcase ts.SyntaxKind.FunctionExpression:\n\t\t\treturn DeclarationDomain.Value;\n\t}\n}\n","import ts from \"typescript\";\n\n/**\n * Supports TypeScript<5 versions that don't have identifierToKeywordKind.\n */\nexport function identifierToKeywordKind(\n\tnode: ts.Identifier,\n): ts.SyntaxKind | undefined {\n\treturn \"identifierToKeywordKind\" in ts\n\t\t? ts.identifierToKeywordKind(node)\n\t\t: // eslint-disable-next-line deprecation/deprecation\n\t\t\tnode.originalKeywordKind;\n}\n\n/**\n * Supports TypeScript<4.8 versions that don't have canHaveDecorators.\n */\nexport function canHaveDecorators(node: ts.Node): node is ts.HasDecorators {\n\treturn \"canHaveDecorators\" in ts\n\t\t? ts.canHaveDecorators(node)\n\t\t: \"decorators\" in node;\n}\n\ntype NodeWithDecorators = ts.HasDecorators & {\n\tdecorators: readonly ts.Decorator[] | undefined;\n};\n\n/**\n * Supports TypeScript<4.8 versions that don't have getDecorators.\n */\nexport function getDecorators(\n\tnode: ts.HasDecorators,\n): readonly ts.Decorator[] | undefined {\n\treturn \"getDecorators\" in ts\n\t\t? ts.getDecorators(node)\n\t\t: (node as NodeWithDecorators).decorators;\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { isNumericOrStringLikeLiteral } from \"../nodes/typeGuards/compound\";\n\nfunction unwrapParentheses(node: ts.Expression) {\n\twhile (node.kind === ts.SyntaxKind.ParenthesizedExpression) {\n\t\tnode = (node as ts.ParenthesizedExpression).expression;\n\t}\n\n\treturn node;\n}\n\nexport function getPropertyName(\n\tpropertyName: ts.PropertyName,\n): string | undefined {\n\tif (propertyName.kind === ts.SyntaxKind.ComputedPropertyName) {\n\t\tconst expression = unwrapParentheses(propertyName.expression);\n\t\tif (ts.isPrefixUnaryExpression(expression)) {\n\t\t\tlet negate = false;\n\t\t\tswitch (expression.operator) {\n\t\t\t\tcase ts.SyntaxKind.MinusToken:\n\t\t\t\t\tnegate = true;\n\t\t\t\t// falls through\n\t\t\t\tcase ts.SyntaxKind.PlusToken:\n\t\t\t\t\treturn ts.isNumericLiteral(expression.operand)\n\t\t\t\t\t\t? `${negate ? \"-\" : \"\"}${expression.operand.text}`\n\t\t\t\t\t\t: ts.isBigIntLiteral(expression.operand)\n\t\t\t\t\t\t\t? `${negate ? \"-\" : \"\"}${expression.operand.text.slice(0, -1)}`\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (ts.isBigIntLiteral(expression)) {\n\t\t\treturn expression.text.slice(0, -1);\n\t\t}\n\n\t\tif (isNumericOrStringLikeLiteral(expression)) {\n\t\t\treturn expression.text;\n\t\t}\n\n\t\treturn;\n\t}\n\n\treturn propertyName.kind === ts.SyntaxKind.PrivateIdentifier\n\t\t? undefined\n\t\t: propertyName.text;\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { identifierToKeywordKind } from \"./utils\";\n\n/**\n * Which \"domain\"(s) (most commonly, type or value space) a usage is within.\n */\nexport enum UsageDomain {\n\tNamespace = 1,\n\tType = 2,\n\tTypeQuery = 8,\n\tValue = 4,\n\tValueOrNamespace = Value | Namespace,\n\t// eslint-disable-next-line perfectionist/sort-enums\n\tAny = Namespace | Type | Value,\n}\n\n// TODO handle cases where values are used only for their types, e.g. `declare [propSymbol]: number`\nexport function getUsageDomain(node: ts.Identifier): UsageDomain | undefined {\n\tconst parent = node.parent;\n\tswitch (parent.kind) {\n\t\tcase ts.SyntaxKind.TypeReference:\n\t\t\treturn identifierToKeywordKind(node) !== ts.SyntaxKind.ConstKeyword\n\t\t\t\t? UsageDomain.Type\n\t\t\t\t: undefined;\n\t\tcase ts.SyntaxKind.ExpressionWithTypeArguments:\n\t\t\treturn (parent.parent as ts.HeritageClause).token ===\n\t\t\t\tts.SyntaxKind.ImplementsKeyword ||\n\t\t\t\tparent.parent.parent.kind === ts.SyntaxKind.InterfaceDeclaration\n\t\t\t\t? UsageDomain.Type\n\t\t\t\t: UsageDomain.Value;\n\t\tcase ts.SyntaxKind.TypeQuery:\n\t\t\treturn UsageDomain.ValueOrNamespace | UsageDomain.TypeQuery;\n\t\tcase ts.SyntaxKind.QualifiedName:\n\t\t\tif ((parent as ts.QualifiedName).left === node) {\n\t\t\t\tif (\n\t\t\t\t\tgetEntityNameParent(parent as ts.QualifiedName).kind ===\n\t\t\t\t\tts.SyntaxKind.TypeQuery\n\t\t\t\t) {\n\t\t\t\t\treturn UsageDomain.Namespace | UsageDomain.TypeQuery;\n\t\t\t\t}\n\n\t\t\t\treturn UsageDomain.Namespace;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase ts.SyntaxKind.ExportSpecifier:\n\t\t\t// either {name} or {propertyName as name}\n\t\t\tif (\n\t\t\t\t(parent as ts.ExportSpecifier).propertyName === undefined ||\n\t\t\t\t(parent as ts.ExportSpecifier).propertyName === node\n\t\t\t) {\n\t\t\t\treturn UsageDomain.Any;\n\t\t\t} // TODO handle type-only exports\n\n\t\t\tbreak;\n\t\tcase ts.SyntaxKind.ExportAssignment:\n\t\t\treturn UsageDomain.Any;\n\t\t// Value\n\t\tcase ts.SyntaxKind.BindingElement:\n\t\t\tif ((parent as ts.BindingElement).initializer === node) {\n\t\t\t\treturn UsageDomain.ValueOrNamespace;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase ts.SyntaxKind.Parameter:\n\t\tcase ts.SyntaxKind.EnumMember:\n\t\tcase ts.SyntaxKind.PropertyDeclaration:\n\t\tcase ts.SyntaxKind.VariableDeclaration:\n\t\tcase ts.SyntaxKind.PropertyAssignment:\n\t\tcase ts.SyntaxKind.PropertyAccessExpression:\n\t\tcase ts.SyntaxKind.ImportEqualsDeclaration:\n\t\t\tif ((parent as ts.NamedDeclaration).name !== node) {\n\t\t\t\treturn UsageDomain.ValueOrNamespace;\n\t\t\t} // TODO handle type-only imports\n\n\t\t\tbreak;\n\t\tcase ts.SyntaxKind.JsxAttribute:\n\t\tcase ts.SyntaxKind.FunctionDeclaration:\n\t\tcase ts.SyntaxKind.FunctionExpression:\n\t\tcase ts.SyntaxKind.NamespaceImport:\n\t\tcase ts.SyntaxKind.ClassDeclaration:\n\t\tcase ts.SyntaxKind.ClassExpression:\n\t\tcase ts.SyntaxKind.ModuleDeclaration:\n\t\tcase ts.SyntaxKind.MethodDeclaration:\n\t\tcase ts.SyntaxKind.EnumDeclaration:\n\t\tcase ts.SyntaxKind.GetAccessor:\n\t\tcase ts.SyntaxKind.SetAccessor:\n\t\tcase ts.SyntaxKind.LabeledStatement:\n\t\tcase ts.SyntaxKind.BreakStatement:\n\t\tcase ts.SyntaxKind.ContinueStatement:\n\t\tcase ts.SyntaxKind.ImportClause:\n\t\tcase ts.SyntaxKind.ImportSpecifier:\n\t\tcase ts.SyntaxKind.TypePredicate: // TODO this actually references a parameter\n\t\tcase ts.SyntaxKind.MethodSignature:\n\t\tcase ts.SyntaxKind.PropertySignature:\n\t\tcase ts.SyntaxKind.NamespaceExportDeclaration:\n\t\tcase ts.SyntaxKind.NamespaceExport:\n\t\tcase ts.SyntaxKind.InterfaceDeclaration:\n\t\tcase ts.SyntaxKind.TypeAliasDeclaration:\n\t\tcase ts.SyntaxKind.TypeParameter:\n\t\tcase ts.SyntaxKind.NamedTupleMember:\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturn UsageDomain.ValueOrNamespace;\n\t}\n}\n\nfunction getEntityNameParent(name: ts.EntityName) {\n\tlet parent = name.parent;\n\twhile (parent.kind === ts.SyntaxKind.QualifiedName) {\n\t\tparent = parent.parent!;\n\t}\n\n\treturn parent;\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { Scope, ScopeBoundary, ScopeBoundarySelector } from \"./Scope\";\nimport {\n\tDeclarationDomain,\n\tDeclarationInfo,\n\tgetDeclarationDomain,\n} from \"./declarations\";\nimport {\n\tInternalUsageInfo,\n\tUsage,\n\tUsageInfo,\n\tUsageInfoCallback,\n} from \"./usage\";\n\nabstract class AbstractScope implements Scope {\n\t#enumScopes: Map | undefined = undefined;\n\tprotected namespaceScopes: Map | undefined =\n\t\tundefined;\n\tprotected uses: Usage[] = [];\n\tprotected variables = new Map();\n\n\tconstructor(protected global: boolean) {}\n\n\taddUse(use: Usage): void {\n\t\tthis.uses.push(use);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprotected addUseToParent(_use: Usage): void {}\n\n\taddVariable(\n\t\tidentifier: string,\n\t\tname: ts.PropertyName,\n\t\tselector: ScopeBoundarySelector,\n\t\texported: boolean,\n\t\tdomain: DeclarationDomain,\n\t): void {\n\t\tconst variables = this.getDestinationScope(selector).getVariables();\n\t\tconst declaration: DeclarationInfo = {\n\t\t\tdeclaration: name,\n\t\t\tdomain,\n\t\t\texported,\n\t\t};\n\t\tconst variable = variables.get(identifier);\n\t\tif (variable === undefined) {\n\t\t\tvariables.set(identifier, {\n\t\t\t\tdeclarations: [declaration],\n\t\t\t\tdomain,\n\t\t\t\tuses: [],\n\t\t\t});\n\t\t} else {\n\t\t\tvariable.domain |= domain;\n\t\t\tvariable.declarations.push(declaration);\n\t\t}\n\t}\n\n\tprotected applyUse(use: Usage, variables = this.variables): boolean {\n\t\tconst variable = variables.get(use.location.text);\n\t\tif (variable === undefined || (variable.domain & use.domain) === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvariable.uses.push(use);\n\t\treturn true;\n\t}\n\n\tprotected applyUses(): void {\n\t\tfor (const use of this.uses) {\n\t\t\tif (!this.applyUse(use)) {\n\t\t\t\tthis.addUseToParent(use);\n\t\t\t}\n\t\t}\n\n\t\tthis.uses = [];\n\t}\n\n\tcreateOrReuseEnumScope(name: string, _exported: boolean): EnumScope {\n\t\tlet scope: EnumScope | undefined;\n\t\tif (this.#enumScopes === undefined) {\n\t\t\tthis.#enumScopes = new Map();\n\t\t} else {\n\t\t\tscope = this.#enumScopes.get(name);\n\t\t}\n\n\t\tif (scope === undefined) {\n\t\t\tscope = new EnumScope(this);\n\t\t\tthis.#enumScopes.set(name, scope);\n\t\t}\n\n\t\treturn scope;\n\t} // only relevant for the root scope\n\n\tcreateOrReuseNamespaceScope(\n\t\tname: string,\n\t\t_exported: boolean,\n\t\tambient: boolean,\n\t\thasExportStatement: boolean,\n\t): NamespaceScope {\n\t\tlet scope: NamespaceScope | undefined;\n\t\tif (this.namespaceScopes === undefined) {\n\t\t\tthis.namespaceScopes = new Map();\n\t\t} else {\n\t\t\tscope = this.namespaceScopes.get(name);\n\t\t}\n\n\t\tif (scope === undefined) {\n\t\t\tscope = new NamespaceScope(ambient, hasExportStatement, this);\n\t\t\tthis.namespaceScopes.set(name, scope);\n\t\t} else {\n\t\t\tscope.refresh(ambient, hasExportStatement);\n\t\t}\n\n\t\treturn scope;\n\t}\n\n\tend(cb: UsageInfoCallback): void {\n\t\tif (this.namespaceScopes !== undefined) {\n\t\t\tthis.namespaceScopes.forEach((value) => value.finish(cb));\n\t\t}\n\n\t\tthis.namespaceScopes = this.#enumScopes = undefined;\n\t\tthis.applyUses();\n\t\tthis.variables.forEach((variable) => {\n\t\t\tfor (const declaration of variable.declarations) {\n\t\t\t\tconst result: UsageInfo = {\n\t\t\t\t\tdeclarations: [],\n\t\t\t\t\tdomain: declaration.domain,\n\t\t\t\t\texported: declaration.exported,\n\t\t\t\t\tinGlobalScope: this.global,\n\t\t\t\t\tuses: [],\n\t\t\t\t};\n\t\t\t\tfor (const other of variable.declarations) {\n\t\t\t\t\tif (other.domain & declaration.domain) {\n\t\t\t\t\t\tresult.declarations.push(other.declaration as ts.Identifier);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const use of variable.uses) {\n\t\t\t\t\tif (use.domain & declaration.domain) {\n\t\t\t\t\t\tresult.uses.push(use);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcb(result, declaration.declaration as ts.Identifier, this);\n\t\t\t}\n\t\t});\n\t}\n\n\tgetFunctionScope(): Scope {\n\t\treturn this;\n\t}\n\n\tgetVariables(): Map {\n\t\treturn this.variables;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tmarkExported(_name: ts.Identifier): void {}\n\n\tabstract getDestinationScope(selector: ScopeBoundarySelector): Scope;\n}\n\nexport class NonRootScope extends AbstractScope {\n\tconstructor(\n\t\tprotected parent: Scope,\n\t\tprotected boundary: ScopeBoundary,\n\t) {\n\t\tsuper(false);\n\t}\n\n\tprotected addUseToParent(use: Usage): void {\n\t\treturn this.parent.addUse(use, this);\n\t}\n\n\tgetDestinationScope(selector: ScopeBoundarySelector): Scope {\n\t\treturn this.boundary & selector\n\t\t\t? this\n\t\t\t: this.parent.getDestinationScope(selector);\n\t}\n}\n\nexport class EnumScope extends NonRootScope {\n\tconstructor(parent: Scope) {\n\t\tsuper(parent, ScopeBoundary.Function);\n\t}\n\n\tend(): void {\n\t\tthis.applyUses();\n\t}\n}\n\nexport class RootScope extends AbstractScope {\n\t#exportAll: boolean;\n\t#exports: string[] | undefined = undefined;\n\t#innerScope = new NonRootScope(this, ScopeBoundary.Function);\n\n\tconstructor(exportAll: boolean, global: boolean) {\n\t\tsuper(global);\n\t\tthis.#exportAll = exportAll;\n\t}\n\n\taddUse(use: Usage, origin?: Scope): void {\n\t\tif (origin === this.#innerScope) {\n\t\t\treturn super.addUse(use);\n\t\t}\n\n\t\treturn this.#innerScope.addUse(use);\n\t}\n\n\taddVariable(\n\t\tidentifier: string,\n\t\tname: ts.PropertyName,\n\t\tselector: ScopeBoundarySelector,\n\t\texported: boolean,\n\t\tdomain: DeclarationDomain,\n\t): void {\n\t\tif (domain & DeclarationDomain.Import) {\n\t\t\treturn super.addVariable(identifier, name, selector, exported, domain);\n\t\t}\n\n\t\treturn this.#innerScope.addVariable(\n\t\t\tidentifier,\n\t\t\tname,\n\t\t\tselector,\n\t\t\texported,\n\t\t\tdomain,\n\t\t);\n\t}\n\n\tend(cb: UsageInfoCallback): void {\n\t\tthis.#innerScope.end((value, key) => {\n\t\t\tvalue.exported ||=\n\t\t\t\tthis.#exportAll ||\n\t\t\t\t(this.#exports !== undefined && this.#exports.includes(key.text));\n\t\t\tvalue.inGlobalScope = this.global;\n\t\t\treturn cb(value, key, this);\n\t\t});\n\t\treturn super.end((value, key, scope) => {\n\t\t\tvalue.exported ||=\n\t\t\t\tscope === this &&\n\t\t\t\tthis.#exports !== undefined &&\n\t\t\t\tthis.#exports.includes(key.text);\n\t\t\treturn cb(value, key, scope);\n\t\t});\n\t}\n\n\tgetDestinationScope(): this {\n\t\treturn this;\n\t}\n\n\tmarkExported(id: ts.Identifier): void {\n\t\tif (this.#exports === undefined) {\n\t\t\tthis.#exports = [id.text];\n\t\t} else {\n\t\t\tthis.#exports.push(id.text);\n\t\t}\n\t}\n}\n\nexport class NamespaceScope extends NonRootScope {\n\t#ambient: boolean;\n\t#exports: Set | undefined = undefined;\n\t#hasExport: boolean;\n\t#innerScope = new NonRootScope(this, ScopeBoundary.Function);\n\n\tconstructor(ambient: boolean, hasExport: boolean, parent: Scope) {\n\t\tsuper(parent, ScopeBoundary.Function);\n\t\tthis.#ambient = ambient;\n\t\tthis.#hasExport = hasExport;\n\t}\n\n\taddUse(use: Usage, source?: Scope): void {\n\t\tif (source !== this.#innerScope) {\n\t\t\treturn this.#innerScope.addUse(use);\n\t\t}\n\n\t\tthis.uses.push(use);\n\t}\n\n\tcreateOrReuseEnumScope(name: string, exported: boolean): EnumScope {\n\t\tif (!exported && (!this.#ambient || this.#hasExport)) {\n\t\t\treturn this.#innerScope.createOrReuseEnumScope(name, exported);\n\t\t}\n\n\t\treturn super.createOrReuseEnumScope(name, exported);\n\t}\n\n\tcreateOrReuseNamespaceScope(\n\t\tname: string,\n\t\texported: boolean,\n\t\tambient: boolean,\n\t\thasExportStatement: boolean,\n\t): NamespaceScope {\n\t\tif (!exported && (!this.#ambient || this.#hasExport)) {\n\t\t\treturn this.#innerScope.createOrReuseNamespaceScope(\n\t\t\t\tname,\n\t\t\t\texported,\n\t\t\t\tambient || this.#ambient,\n\t\t\t\thasExportStatement,\n\t\t\t);\n\t\t}\n\n\t\treturn super.createOrReuseNamespaceScope(\n\t\t\tname,\n\t\t\texported,\n\t\t\tambient || this.#ambient,\n\t\t\thasExportStatement,\n\t\t);\n\t}\n\n\tend(cb: UsageInfoCallback): void {\n\t\tthis.#innerScope.end((variable, key, scope) => {\n\t\t\tif (\n\t\t\t\tscope !== this.#innerScope ||\n\t\t\t\t(!variable.exported &&\n\t\t\t\t\t(!this.#ambient ||\n\t\t\t\t\t\t(this.#exports !== undefined && !this.#exports.has(key.text))))\n\t\t\t) {\n\t\t\t\treturn cb(variable, key, scope);\n\t\t\t}\n\n\t\t\tconst namespaceVar = this.variables.get(key.text);\n\t\t\tif (namespaceVar === undefined) {\n\t\t\t\tthis.variables.set(key.text, {\n\t\t\t\t\tdeclarations: variable.declarations.map(mapDeclaration),\n\t\t\t\t\tdomain: variable.domain,\n\t\t\t\t\tuses: [...variable.uses],\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\touter: for (const declaration of variable.declarations) {\n\t\t\t\t\tfor (const existing of namespaceVar.declarations) {\n\t\t\t\t\t\tif (existing.declaration === declaration) {\n\t\t\t\t\t\t\tcontinue outer;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnamespaceVar.declarations.push(mapDeclaration(declaration));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tnamespaceVar.domain |= variable.domain;\n\t\t\t\tfor (const use of variable.uses) {\n\t\t\t\t\tif (namespaceVar.uses.includes(use)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tnamespaceVar.uses.push(use);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis.applyUses();\n\t\tthis.#innerScope = new NonRootScope(this, ScopeBoundary.Function);\n\t}\n\n\tfinish(cb: UsageInfoCallback): void {\n\t\treturn super.end(cb);\n\t}\n\n\tgetDestinationScope(): Scope {\n\t\treturn this.#innerScope;\n\t}\n\n\tmarkExported(name: ts.Identifier): void {\n\t\tif (this.#exports === undefined) {\n\t\t\tthis.#exports = new Set();\n\t\t}\n\n\t\tthis.#exports.add(name.text);\n\t}\n\n\trefresh(ambient: boolean, hasExport: boolean): void {\n\t\tthis.#ambient = ambient;\n\t\tthis.#hasExport = hasExport;\n\t}\n}\n\nfunction mapDeclaration(declaration: ts.Identifier): DeclarationInfo {\n\treturn {\n\t\tdeclaration,\n\t\tdomain: getDeclarationDomain(declaration)!,\n\t\texported: true,\n\t};\n}\n\nexport class FunctionScope extends NonRootScope {\n\tconstructor(parent: Scope) {\n\t\tsuper(parent, ScopeBoundary.Function);\n\t}\n\n\tbeginBody(): void {\n\t\tthis.applyUses();\n\t}\n}\n\nabstract class AbstractNamedExpressionScope<\n\tInnerScope extends NonRootScope,\n> extends NonRootScope {\n\t#domain: DeclarationDomain;\n\n\t#name: ts.Identifier;\n\tconstructor(name: ts.Identifier, domain: DeclarationDomain, parent: Scope) {\n\t\tsuper(parent, ScopeBoundary.Function);\n\t\tthis.#name = name;\n\t\tthis.#domain = domain;\n\t}\n\n\taddUse(use: Usage, source?: Scope): void {\n\t\tif (source !== this.innerScope) {\n\t\t\treturn this.innerScope.addUse(use);\n\t\t}\n\n\t\tif (use.domain & this.#domain && use.location.text === this.#name.text) {\n\t\t\tthis.uses.push(use);\n\t\t} else {\n\t\t\treturn this.parent.addUse(use, this);\n\t\t}\n\t}\n\n\tend(cb: UsageInfoCallback): void {\n\t\tthis.innerScope.end(cb);\n\t\treturn cb(\n\t\t\t{\n\t\t\t\tdeclarations: [this.#name],\n\t\t\t\tdomain: this.#domain,\n\t\t\t\texported: false,\n\t\t\t\tinGlobalScope: false,\n\t\t\t\tuses: this.uses,\n\t\t\t},\n\t\t\tthis.#name,\n\t\t\tthis,\n\t\t);\n\t}\n\n\tgetDestinationScope(): InnerScope {\n\t\treturn this.innerScope;\n\t}\n\n\tgetFunctionScope(): InnerScope {\n\t\treturn this.innerScope;\n\t}\n\n\tprotected abstract get innerScope(): InnerScope;\n}\n\nexport class FunctionExpressionScope extends AbstractNamedExpressionScope {\n\tprotected innerScope = new FunctionScope(this);\n\n\tconstructor(name: ts.Identifier, parent: Scope) {\n\t\tsuper(name, DeclarationDomain.Value, parent);\n\t}\n\n\tbeginBody(): void {\n\t\treturn this.innerScope.beginBody();\n\t}\n}\n\nexport class BlockScope extends NonRootScope {\n\t#functionScope: Scope;\n\n\tconstructor(functionScope: Scope, parent: Scope) {\n\t\tsuper(parent, ScopeBoundary.Block);\n\t\tthis.#functionScope = functionScope;\n\t}\n\n\tgetFunctionScope(): Scope {\n\t\treturn this.#functionScope;\n\t}\n}\n\nexport class ClassExpressionScope extends AbstractNamedExpressionScope {\n\tprotected innerScope = new NonRootScope(this, ScopeBoundary.Function);\n\n\tconstructor(name: ts.Identifier, parent: Scope) {\n\t\tsuper(name, DeclarationDomain.Value | DeclarationDomain.Type, parent);\n\t}\n}\n\nexport enum ConditionalTypeScopeState {\n\tInitial,\n\tExtends,\n\tTrueType,\n\tFalseType,\n}\n\nexport class ConditionalTypeScope extends NonRootScope {\n\t#state = ConditionalTypeScopeState.Initial;\n\n\tconstructor(parent: Scope) {\n\t\tsuper(parent, ScopeBoundary.ConditionalType);\n\t}\n\n\taddUse(use: Usage): void {\n\t\tif (this.#state === ConditionalTypeScopeState.TrueType) {\n\t\t\treturn void this.uses.push(use);\n\t\t}\n\n\t\treturn this.parent.addUse(use, this);\n\t}\n\n\tupdateState(newState: ConditionalTypeScopeState): void {\n\t\tthis.#state = newState;\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { UsageWalker } from \"./UsageWalker\";\nimport { UsageInfo } from \"./usage\";\n\n/**\n * Creates a mapping of each declared type and value to its type information.\n * @category Nodes - Other Utilities\n * @example\n * ```ts\n * declare const sourceFile: ts.SourceFile;\n *\n * const usage = collectVariableUsage(sourceFile);\n *\n * for (const [identifier, information] of usage) {\n * \tconsole.log(`${identifier.getText()} is used ${information.uses.length} time(s).`);\n * }\n * ```\n */\nexport function collectVariableUsage(\n\tsourceFile: ts.SourceFile,\n): Map {\n\treturn new UsageWalker().getUsage(sourceFile);\n}\n"],"mappings":"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","names":["import_typescript","ts","ts","import_typescript","ts","import_typescript","ts","import_typescript","import_typescript","ts","AccessKind","ts","import_typescript","import_typescript","ts","import_typescript","import_typescript","ts","ts","ts","import_typescript","ts","import_typescript","import_typescript","ts","import_typescript","import_typescript","ts","ts","import_typescript","ts","ts","import_typescript","import_typescript","ts","ts","typeParts","import_typescript","import_typescript","ts","import_typescript","import_typescript","ts","DeclarationDomain","ts","import_typescript","ts","import_typescript","UsageDomain","ts","_name","_exports","_innerScope","ts"]} \ No newline at end of file diff --git a/node_modules/ts-api-utils/lib/index.d.cts b/node_modules/ts-api-utils/lib/index.d.cts index b777c56341..43c908e28e 100644 --- a/node_modules/ts-api-utils/lib/index.d.cts +++ b/node_modules/ts-api-utils/lib/index.d.cts @@ -2,13 +2,11 @@ import ts from 'typescript'; /** * Callback type used for {@link forEachComment}. - * * @category Callbacks */ type ForEachCommentCallback = (fullText: string, comment: ts.CommentRange) => void; /** * Iterates over all comments owned by `node` or its children. - * * @category Nodes - Other Utilities * @example * ```ts @@ -23,7 +21,6 @@ declare function forEachComment(node: ts.Node, callback: ForEachCommentCallback, /** * An option that can be tested with {@link isCompilerOptionEnabled}. - * * @category Compiler Options */ type BooleanCompilerOptions = keyof { @@ -34,7 +31,6 @@ type BooleanCompilerOptions = keyof { * It handles dependencies of options, e.g. `declaration` is implicitly enabled by `composite` or `strictNullChecks` is enabled by `strict`. * However, it does not check dependencies that are already checked and reported as errors, e.g. `checkJs` without `allowJs`. * This function only handles boolean flags. - * * @category Compiler Options * @example * ```ts @@ -49,14 +45,12 @@ type BooleanCompilerOptions = keyof { declare function isCompilerOptionEnabled(options: ts.CompilerOptions, option: BooleanCompilerOptions): boolean; /** * An option that can be tested with {@link isStrictCompilerOptionEnabled}. - * * @category Compiler Options */ type StrictCompilerOption = "alwaysStrict" | "noImplicitAny" | "noImplicitThis" | "strictBindCallApply" | "strictFunctionTypes" | "strictNullChecks" | "strictPropertyInitialization"; /** * Checks if a given compiler option is enabled, accounting for whether all flags * (except `strictPropertyInitialization`) have been enabled by `strict: true`. - * * @category Compiler Options * @example * ```ts @@ -67,7 +61,6 @@ type StrictCompilerOption = "alwaysStrict" | "noImplicitAny" | "noImplicitThis" * isStrictCompilerOptionEnabled(optionsLenient, "noImplicitAny"); // true * isStrictCompilerOptionEnabled(optionsLenient, "noImplicitThis"); // false * ``` - * * @example * ```ts * const optionsStrict = { @@ -83,7 +76,6 @@ declare function isStrictCompilerOptionEnabled(options: ts.CompilerOptions, opti /** * Test if the given node has the given `ModifierFlags` set. - * * @category Nodes - Flag Utilities * @example * ```ts @@ -97,7 +89,6 @@ declare function isStrictCompilerOptionEnabled(options: ts.CompilerOptions, opti declare function isModifierFlagSet(node: ts.Declaration, flag: ts.ModifierFlags): boolean; /** * Test if the given node has the given `NodeFlags` set. - * * @category Nodes - Flag Utilities * @example * ```ts @@ -111,7 +102,6 @@ declare function isModifierFlagSet(node: ts.Declaration, flag: ts.ModifierFlags) declare const isNodeFlagSet: (node: ts.Node, flag: ts.NodeFlags) => boolean; /** * Test if the given node has the given `ObjectFlags` set. - * * @category Nodes - Flag Utilities * @example * ```ts @@ -125,7 +115,6 @@ declare const isNodeFlagSet: (node: ts.Node, flag: ts.NodeFlags) => boolean; declare function isObjectFlagSet(objectType: ts.ObjectType, flag: ts.ObjectFlags): boolean; /** * Test if the given node has the given `SymbolFlags` set. - * * @category Nodes - Flag Utilities * @example * ```ts @@ -139,7 +128,6 @@ declare function isObjectFlagSet(objectType: ts.ObjectType, flag: ts.ObjectFlags declare const isSymbolFlagSet: (symbol: ts.Symbol, flag: ts.SymbolFlags) => boolean; /** * Test if the given node has the given `TypeFlags` set. - * * @category Nodes - Flag Utilities * @example * ```ts @@ -154,7 +142,6 @@ declare const isTypeFlagSet: (type: ts.Type, flag: ts.TypeFlags) => boolean; /** * Test if the given iterable includes a modifier of any of the given kinds. - * * @category Modifier Utilities * @example * ```ts @@ -163,11 +150,33 @@ declare const isTypeFlagSet: (type: ts.Type, flag: ts.TypeFlags) => boolean; * includesModifier(modifiers, ts.SyntaxKind.AbstractKeyword); * ``` */ -declare function includesModifier(modifiers: Iterable | undefined, ...kinds: ts.ModifierSyntaxKind[]): boolean; +declare function includesModifier(modifiers: Iterable | undefined, ...kinds: ts.ModifierSyntaxKind[]): boolean; /** - * An `AssertionExpression` that is declared as const. + * What operations(s), if any, an expression applies. + */ +declare enum AccessKind { + None = 0, + Read = 1, + Write = 2, + Delete = 4, + ReadWrite = 3 +} +/** + * Determines which operation(s), if any, an expression applies. + * @example + * ```ts + * declare const node: ts.Expression; * + * if (getAccessKind(node).Write & AccessKind.Write) !== 0) { + * // this is a reassignment (write) + * } + * ``` + */ +declare function getAccessKind(node: ts.Expression): AccessKind; + +/** + * An `AssertionExpression` that is declared as const. * @category Node Types */ type ConstAssertionExpression = ts.AssertionExpression & { @@ -176,7 +185,6 @@ type ConstAssertionExpression = ts.AssertionExpression & { }; /** * An `Identifier` with an `escapedText` value of `"const"`. - * * @category Node Types */ type ConstAssertionIdentifier = ts.Identifier & { @@ -184,7 +192,6 @@ type ConstAssertionIdentifier = ts.Identifier & { }; /** * Test if a node is a {@link ConstAssertionExpression}. - * * @category Nodes - Type Guards * @example * ```ts @@ -194,13 +201,11 @@ type ConstAssertionIdentifier = ts.Identifier & { * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link ConstAssertionExpression}. */ declare function isConstAssertionExpression(node: ts.AssertionExpression): node is ConstAssertionExpression; /** * Test if a node is an `IterationStatement`. - * * @category Nodes - Type Guards * @example * ```ts @@ -210,13 +215,11 @@ declare function isConstAssertionExpression(node: ts.AssertionExpression): node * // ... * } * ``` - * * @returns Whether the given node appears to be an `IterationStatement`. */ declare function isIterationStatement(node: ts.Node): node is ts.IterationStatement; /** * Test if a node is a `JSDocNamespaceDeclaration`. - * * @category Nodes - Type Guards * @example * ```ts @@ -226,13 +229,11 @@ declare function isIterationStatement(node: ts.Node): node is ts.IterationStatem * // ... * } * ``` - * * @returns Whether the given node appears to be a `JSDocNamespaceDeclaration`. */ declare function isJSDocNamespaceDeclaration(node: ts.Node): node is ts.JSDocNamespaceDeclaration; /** * Test if a node is a `JsxTagNamePropertyAccess`. - * * @category Nodes - Type Guards * @example * ```ts @@ -242,13 +243,11 @@ declare function isJSDocNamespaceDeclaration(node: ts.Node): node is ts.JSDocNam * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsxTagNamePropertyAccess`. */ declare function isJsxTagNamePropertyAccess(node: ts.Node): node is ts.JsxTagNamePropertyAccess; /** * a `NamedDeclaration` that definitely has a name. - * * @category Node Types */ interface NamedDeclarationWithName extends ts.NamedDeclaration { @@ -256,7 +255,6 @@ interface NamedDeclarationWithName extends ts.NamedDeclaration { } /** * Test if a node is a {@link NamedDeclarationWithName}. - * * @category Nodes - Type Guards * @example * ```ts @@ -266,13 +264,11 @@ interface NamedDeclarationWithName extends ts.NamedDeclaration { * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link NamedDeclarationWithName}. */ declare function isNamedDeclarationWithName(node: ts.Declaration): node is NamedDeclarationWithName; /** * Test if a node is a `NamespaceDeclaration`. - * * @category Nodes - Type Guards * @example * ```ts @@ -282,19 +278,16 @@ declare function isNamedDeclarationWithName(node: ts.Declaration): node is Named * // ... * } * ``` - * * @returns Whether the given node appears to be a `NamespaceDeclaration`. */ declare function isNamespaceDeclaration(node: ts.Node): node is ts.NamespaceDeclaration; /** * A number or string-like literal. - * * @category Node Types */ type NumericOrStringLikeLiteral = ts.NumericLiteral | ts.StringLiteralLike; /** * Test if a node is a {@link NumericOrStringLikeLiteral}. - * * @category Nodes - Type Guards * @example * ```ts @@ -304,13 +297,11 @@ type NumericOrStringLikeLiteral = ts.NumericLiteral | ts.StringLiteralLike; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link NumericOrStringLikeLiteral}. */ declare function isNumericOrStringLikeLiteral(node: ts.Node): node is NumericOrStringLikeLiteral; /** * Test if a node is a `PropertyAccessEntityNameExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -320,13 +311,11 @@ declare function isNumericOrStringLikeLiteral(node: ts.Node): node is NumericOrS * // ... * } * ``` - * * @returns Whether the given node appears to be a `PropertyAccessEntityNameExpression`. */ declare function isPropertyAccessEntityNameExpression(node: ts.Node): node is ts.PropertyAccessEntityNameExpression; /** * Test if a node is a `SuperElementAccessExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -336,13 +325,11 @@ declare function isPropertyAccessEntityNameExpression(node: ts.Node): node is ts * // ... * } * ``` - * * @returns Whether the given node appears to be a `SuperElementAccessExpression`. */ declare function isSuperElementAccessExpression(node: ts.Node): node is ts.SuperElementAccessExpression; /** * Test if a node is a `SuperPropertyAccessExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -352,116 +339,97 @@ declare function isSuperElementAccessExpression(node: ts.Node): node is ts.Super * // ... * } * ``` - * * @returns Whether the given node appears to be a `SuperPropertyAccessExpression`. */ declare function isSuperPropertyAccessExpression(node: ts.Node): node is ts.SuperPropertyAccessExpression; /** * A node that represents the any keyword. - * * @category Node Types */ type AnyKeyword = ts.KeywordToken; /** * A node that represents the bigint keyword. - * * @category Node Types */ type BigIntKeyword = ts.KeywordToken; /** * A node that represents the boolean keyword. - * * @category Node Types */ type BooleanKeyword = ts.KeywordToken; /** * A node that represents the false keyword. - * * @category Node Types */ type FalseKeyword = ts.KeywordToken; /** * A node that represents the import keyword. - * * @category Node Types */ type ImportKeyword = ts.KeywordToken; /** * A node that represents the never keyword. - * * @category Node Types */ type NeverKeyword = ts.KeywordToken; /** * A node that represents the null keyword. - * * @category Node Types */ type NullKeyword = ts.KeywordToken; /** * A node that represents the number keyword. - * * @category Node Types */ type NumberKeyword = ts.KeywordToken; /** * A node that represents the object keyword. - * * @category Node Types */ type ObjectKeyword = ts.KeywordToken; /** * A node that represents the string keyword. - * * @category Node Types */ type StringKeyword = ts.KeywordToken; /** * A node that represents the super keyword. - * * @category Node Types */ type SuperKeyword = ts.KeywordToken; /** * A node that represents the symbol keyword. - * * @category Node Types */ type SymbolKeyword = ts.KeywordToken; /** * A node that represents the this keyword. - * * @category Node Types */ type ThisKeyword = ts.KeywordToken; /** * A node that represents the true keyword. - * * @category Node Types */ type TrueKeyword = ts.KeywordToken; /** * A node that represents the undefined keyword. - * * @category Node Types */ type UndefinedKeyword = ts.KeywordToken; /** * A node that represents the unknown keyword. - * * @category Node Types */ type UnknownKeyword = ts.KeywordToken; /** * A node that represents the void keyword. - * * @category Node Types */ type VoidKeyword = ts.KeywordToken; /** * Test if a node is an `AbstractKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -471,13 +439,11 @@ type VoidKeyword = ts.KeywordToken; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AbstractKeyword`. */ declare function isAbstractKeyword(node: ts.Node): node is ts.AbstractKeyword; /** * Test if a node is an `AccessorKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -487,13 +453,11 @@ declare function isAbstractKeyword(node: ts.Node): node is ts.AbstractKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AccessorKeyword`. */ declare function isAccessorKeyword(node: ts.Node): node is ts.AccessorKeyword; /** * Test if a node is an {@link AnyKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -503,13 +467,11 @@ declare function isAccessorKeyword(node: ts.Node): node is ts.AccessorKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an {@link AnyKeyword}. */ declare function isAnyKeyword(node: ts.Node): node is AnyKeyword; /** * Test if a node is an `AssertKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -519,13 +481,11 @@ declare function isAnyKeyword(node: ts.Node): node is AnyKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AssertKeyword`. */ declare function isAssertKeyword(node: ts.Node): node is ts.AssertKeyword; /** * Test if a node is an `AssertsKeyword`. - * * @deprecated With TypeScript v5, in favor of typescript's `isAssertsKeyword`. * @category Nodes - Type Guards * @example @@ -536,13 +496,11 @@ declare function isAssertKeyword(node: ts.Node): node is ts.AssertKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AssertsKeyword`. */ declare function isAssertsKeyword(node: ts.Node): node is ts.AssertsKeyword; /** * Test if a node is an `AsyncKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -552,13 +510,11 @@ declare function isAssertsKeyword(node: ts.Node): node is ts.AssertsKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AsyncKeyword`. */ declare function isAsyncKeyword(node: ts.Node): node is ts.AsyncKeyword; /** * Test if a node is an `AwaitKeyword`. - * * @deprecated With TypeScript v5, in favor of typescript's `isAwaitKeyword`. * @category Nodes - Type Guards * @example @@ -569,13 +525,11 @@ declare function isAsyncKeyword(node: ts.Node): node is ts.AsyncKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AwaitKeyword`. */ declare function isAwaitKeyword(node: ts.Node): node is ts.AwaitKeyword; /** * Test if a node is a {@link BigIntKeyword}. - * * @deprecated With TypeScript v5, in favor of typescript's `isBigIntKeyword`. * @category Nodes - Type Guards * @example @@ -586,13 +540,11 @@ declare function isAwaitKeyword(node: ts.Node): node is ts.AwaitKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link BigIntKeyword}. */ declare function isBigIntKeyword(node: ts.Node): node is BigIntKeyword; /** * Test if a node is a {@link BooleanKeyword}. - * * @deprecated With TypeScript v5, in favor of typescript's `isBooleanKeyword`. * @category Nodes - Type Guards * @example @@ -603,13 +555,11 @@ declare function isBigIntKeyword(node: ts.Node): node is BigIntKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link BooleanKeyword}. */ declare function isBooleanKeyword(node: ts.Node): node is BooleanKeyword; /** * Test if a node is a `ColonToken`. - * * @deprecated With TypeScript v5, in favor of typescript's `isColonToken`. * @category Nodes - Type Guards * @example @@ -620,13 +570,11 @@ declare function isBooleanKeyword(node: ts.Node): node is BooleanKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ColonToken`. */ declare function isColonToken(node: ts.Node): node is ts.ColonToken; /** * Test if a node is a `ConstKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -636,13 +584,11 @@ declare function isColonToken(node: ts.Node): node is ts.ColonToken; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ConstKeyword`. */ declare function isConstKeyword(node: ts.Node): node is ts.ConstKeyword; /** * Test if a node is a `DeclareKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -652,13 +598,11 @@ declare function isConstKeyword(node: ts.Node): node is ts.ConstKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `DeclareKeyword`. */ declare function isDeclareKeyword(node: ts.Node): node is ts.DeclareKeyword; /** * Test if a node is a `DefaultKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -668,13 +612,11 @@ declare function isDeclareKeyword(node: ts.Node): node is ts.DeclareKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `DefaultKeyword`. */ declare function isDefaultKeyword(node: ts.Node): node is ts.DefaultKeyword; /** * Test if a node is a `DotToken`. - * * @category Nodes - Type Guards * @example * ```ts @@ -684,13 +626,11 @@ declare function isDefaultKeyword(node: ts.Node): node is ts.DefaultKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `DotToken`. */ declare function isDotToken(node: ts.Node): node is ts.DotToken; /** * Test if a node is an `EndOfFileToken`. - * * @category Nodes - Type Guards * @example * ```ts @@ -700,13 +640,11 @@ declare function isDotToken(node: ts.Node): node is ts.DotToken; * // ... * } * ``` - * * @returns Whether the given node appears to be an `EndOfFileToken`. */ declare function isEndOfFileToken(node: ts.Node): node is ts.EndOfFileToken; /** * Test if a node is an `EqualsGreaterThanToken`. - * * @deprecated With TypeScript v5, in favor of typescript's `isEqualsGreaterThanToken`. * @category Nodes - Type Guards * @example @@ -717,13 +655,11 @@ declare function isEndOfFileToken(node: ts.Node): node is ts.EndOfFileToken; * // ... * } * ``` - * * @returns Whether the given node appears to be an `EqualsGreaterThanToken`. */ declare function isEqualsGreaterThanToken(node: ts.Node): node is ts.EqualsGreaterThanToken; /** * Test if a node is an `EqualsToken`. - * * @category Nodes - Type Guards * @example * ```ts @@ -733,13 +669,11 @@ declare function isEqualsGreaterThanToken(node: ts.Node): node is ts.EqualsGreat * // ... * } * ``` - * * @returns Whether the given node appears to be an `EqualsToken`. */ declare function isEqualsToken(node: ts.Node): node is ts.EqualsToken; /** * Test if a node is an `ExclamationToken`. - * * @deprecated With TypeScript v5, in favor of typescript's `isExclamationToken`. * @category Nodes - Type Guards * @example @@ -750,13 +684,11 @@ declare function isEqualsToken(node: ts.Node): node is ts.EqualsToken; * // ... * } * ``` - * * @returns Whether the given node appears to be an `ExclamationToken`. */ declare function isExclamationToken(node: ts.Node): node is ts.ExclamationToken; /** * Test if a node is an `ExportKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -766,13 +698,11 @@ declare function isExclamationToken(node: ts.Node): node is ts.ExclamationToken; * // ... * } * ``` - * * @returns Whether the given node appears to be an `ExportKeyword`. */ declare function isExportKeyword(node: ts.Node): node is ts.ExportKeyword; /** * Test if a node is a {@link FalseKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -782,13 +712,11 @@ declare function isExportKeyword(node: ts.Node): node is ts.ExportKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link FalseKeyword}. */ declare function isFalseKeyword(node: ts.Node): node is FalseKeyword; /** * Test if a node is a `FalseLiteral`. - * * @category Nodes - Type Guards * @example * ```ts @@ -798,13 +726,11 @@ declare function isFalseKeyword(node: ts.Node): node is FalseKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `FalseLiteral`. */ declare function isFalseLiteral(node: ts.Node): node is ts.FalseLiteral; /** * Test if a node is an `ImportExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -814,13 +740,11 @@ declare function isFalseLiteral(node: ts.Node): node is ts.FalseLiteral; * // ... * } * ``` - * * @returns Whether the given node appears to be an `ImportExpression`. */ declare function isImportExpression(node: ts.Node): node is ts.ImportExpression; /** * Test if a node is an {@link ImportKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -830,13 +754,11 @@ declare function isImportExpression(node: ts.Node): node is ts.ImportExpression; * // ... * } * ``` - * * @returns Whether the given node appears to be an {@link ImportKeyword}. */ declare function isImportKeyword(node: ts.Node): node is ImportKeyword; /** * Test if a node is an `InKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -846,13 +768,11 @@ declare function isImportKeyword(node: ts.Node): node is ImportKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `InKeyword`. */ declare function isInKeyword(node: ts.Node): node is ts.InKeyword; /** * Test if a node is an `InputFiles`. - * * @deprecated With TypeScript v5 * @category Nodes - Type Guards * @example @@ -863,13 +783,11 @@ declare function isInKeyword(node: ts.Node): node is ts.InKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `InputFiles`. */ declare function isInputFiles(node: ts.Node): node is ts.InputFiles; /** * Test if a node is a `JSDocText`. - * * @category Nodes - Type Guards * @example * ```ts @@ -879,13 +797,11 @@ declare function isInputFiles(node: ts.Node): node is ts.InputFiles; * // ... * } * ``` - * * @returns Whether the given node appears to be a `JSDocText`. */ declare function isJSDocText(node: ts.Node): node is ts.JSDocText; /** * Test if a node is a `JsonMinusNumericLiteral`. - * * @category Nodes - Type Guards * @example * ```ts @@ -895,13 +811,11 @@ declare function isJSDocText(node: ts.Node): node is ts.JSDocText; * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsonMinusNumericLiteral`. */ declare function isJsonMinusNumericLiteral(node: ts.Node): node is ts.JsonMinusNumericLiteral; /** * Test if a node is a {@link NeverKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -911,13 +825,11 @@ declare function isJsonMinusNumericLiteral(node: ts.Node): node is ts.JsonMinusN * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link NeverKeyword}. */ declare function isNeverKeyword(node: ts.Node): node is NeverKeyword; /** * Test if a node is a {@link NullKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -927,13 +839,11 @@ declare function isNeverKeyword(node: ts.Node): node is NeverKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link NullKeyword}. */ declare function isNullKeyword(node: ts.Node): node is NullKeyword; /** * Test if a node is a `NullLiteral`. - * * @category Nodes - Type Guards * @example * ```ts @@ -943,13 +853,11 @@ declare function isNullKeyword(node: ts.Node): node is NullKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `NullLiteral`. */ declare function isNullLiteral(node: ts.Node): node is ts.NullLiteral; /** * Test if a node is a {@link NumberKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -959,13 +867,11 @@ declare function isNullLiteral(node: ts.Node): node is ts.NullLiteral; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link NumberKeyword}. */ declare function isNumberKeyword(node: ts.Node): node is NumberKeyword; /** * Test if a node is an {@link ObjectKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -975,13 +881,11 @@ declare function isNumberKeyword(node: ts.Node): node is NumberKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an {@link ObjectKeyword}. */ declare function isObjectKeyword(node: ts.Node): node is ObjectKeyword; /** * Test if a node is an `OutKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -991,13 +895,11 @@ declare function isObjectKeyword(node: ts.Node): node is ObjectKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `OutKeyword`. */ declare function isOutKeyword(node: ts.Node): node is ts.OutKeyword; /** * Test if a node is an `OverrideKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1007,13 +909,11 @@ declare function isOutKeyword(node: ts.Node): node is ts.OutKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `OverrideKeyword`. */ declare function isOverrideKeyword(node: ts.Node): node is ts.OverrideKeyword; /** * Test if a node is a `PrivateKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1023,13 +923,11 @@ declare function isOverrideKeyword(node: ts.Node): node is ts.OverrideKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `PrivateKeyword`. */ declare function isPrivateKeyword(node: ts.Node): node is ts.PrivateKeyword; /** * Test if a node is a `ProtectedKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1039,13 +937,11 @@ declare function isPrivateKeyword(node: ts.Node): node is ts.PrivateKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ProtectedKeyword`. */ declare function isProtectedKeyword(node: ts.Node): node is ts.ProtectedKeyword; /** * Test if a node is a `PublicKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1055,13 +951,11 @@ declare function isProtectedKeyword(node: ts.Node): node is ts.ProtectedKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `PublicKeyword`. */ declare function isPublicKeyword(node: ts.Node): node is ts.PublicKeyword; /** * Test if a node is a `QuestionDotToken`. - * * @deprecated With TypeScript v5, in favor of typescript's `isQuestionDotToken`. * @category Nodes - Type Guards * @example @@ -1072,13 +966,11 @@ declare function isPublicKeyword(node: ts.Node): node is ts.PublicKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `QuestionDotToken`. */ declare function isQuestionDotToken(node: ts.Node): node is ts.QuestionDotToken; /** * Test if a node is a `QuestionToken`. - * * @deprecated With TypeScript v5, in favor of typescript's `isQuestionToken`. * @category Nodes - Type Guards * @example @@ -1089,13 +981,11 @@ declare function isQuestionDotToken(node: ts.Node): node is ts.QuestionDotToken; * // ... * } * ``` - * * @returns Whether the given node appears to be a `QuestionToken`. */ declare function isQuestionToken(node: ts.Node): node is ts.QuestionToken; /** * Test if a node is a `ReadonlyKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1105,13 +995,11 @@ declare function isQuestionToken(node: ts.Node): node is ts.QuestionToken; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ReadonlyKeyword`. */ declare function isReadonlyKeyword(node: ts.Node): node is ts.ReadonlyKeyword; /** * Test if a node is a `StaticKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1121,13 +1009,11 @@ declare function isReadonlyKeyword(node: ts.Node): node is ts.ReadonlyKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `StaticKeyword`. */ declare function isStaticKeyword(node: ts.Node): node is ts.StaticKeyword; /** * Test if a node is a {@link StringKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1137,13 +1023,11 @@ declare function isStaticKeyword(node: ts.Node): node is ts.StaticKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link StringKeyword}. */ declare function isStringKeyword(node: ts.Node): node is StringKeyword; /** * Test if a node is a `SuperExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1153,13 +1037,11 @@ declare function isStringKeyword(node: ts.Node): node is StringKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `SuperExpression`. */ declare function isSuperExpression(node: ts.Node): node is ts.SuperExpression; /** * Test if a node is a {@link SuperKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1169,13 +1051,11 @@ declare function isSuperExpression(node: ts.Node): node is ts.SuperExpression; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link SuperKeyword}. */ declare function isSuperKeyword(node: ts.Node): node is SuperKeyword; /** * Test if a node is a {@link SymbolKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1185,13 +1065,11 @@ declare function isSuperKeyword(node: ts.Node): node is SuperKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link SymbolKeyword}. */ declare function isSymbolKeyword(node: ts.Node): node is SymbolKeyword; /** * Test if a node is a `SyntaxList`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1201,13 +1079,11 @@ declare function isSymbolKeyword(node: ts.Node): node is SymbolKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `SyntaxList`. */ declare function isSyntaxList(node: ts.Node): node is ts.SyntaxList; /** * Test if a node is a `ThisExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1217,13 +1093,11 @@ declare function isSyntaxList(node: ts.Node): node is ts.SyntaxList; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ThisExpression`. */ declare function isThisExpression(node: ts.Node): node is ts.ThisExpression; /** * Test if a node is a {@link ThisKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1233,13 +1107,11 @@ declare function isThisExpression(node: ts.Node): node is ts.ThisExpression; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link ThisKeyword}. */ declare function isThisKeyword(node: ts.Node): node is ThisKeyword; /** * Test if a node is a {@link TrueKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1249,13 +1121,11 @@ declare function isThisKeyword(node: ts.Node): node is ThisKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link TrueKeyword}. */ declare function isTrueKeyword(node: ts.Node): node is TrueKeyword; /** * Test if a node is a `TrueLiteral`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1265,13 +1135,11 @@ declare function isTrueKeyword(node: ts.Node): node is TrueKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `TrueLiteral`. */ declare function isTrueLiteral(node: ts.Node): node is ts.TrueLiteral; /** * Test if a node is an {@link UndefinedKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1281,13 +1149,11 @@ declare function isTrueLiteral(node: ts.Node): node is ts.TrueLiteral; * // ... * } * ``` - * * @returns Whether the given node appears to be an {@link UndefinedKeyword}. */ declare function isUndefinedKeyword(node: ts.Node): node is UndefinedKeyword; /** * Test if a node is an {@link UnknownKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1297,13 +1163,11 @@ declare function isUndefinedKeyword(node: ts.Node): node is UndefinedKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an {@link UnknownKeyword}. */ declare function isUnknownKeyword(node: ts.Node): node is UnknownKeyword; /** * Test if a node is an `UnparsedPrologue`. - * * @deprecated With TypeScript v5 * @category Nodes - Type Guards * @example @@ -1314,13 +1178,11 @@ declare function isUnknownKeyword(node: ts.Node): node is UnknownKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `UnparsedPrologue`. */ declare function isUnparsedPrologue(node: ts.Node): node is ts.UnparsedPrologue; /** * Test if a node is an `UnparsedSyntheticReference`. - * * @deprecated With TypeScript v5 * @category Nodes - Type Guards * @example @@ -1331,13 +1193,11 @@ declare function isUnparsedPrologue(node: ts.Node): node is ts.UnparsedPrologue; * // ... * } * ``` - * * @returns Whether the given node appears to be an `UnparsedSyntheticReference`. */ declare function isUnparsedSyntheticReference(node: ts.Node): node is ts.UnparsedSyntheticReference; /** * Test if a node is a {@link VoidKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1347,14 +1207,12 @@ declare function isUnparsedSyntheticReference(node: ts.Node): node is ts.Unparse * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link VoidKeyword}. */ declare function isVoidKeyword(node: ts.Node): node is VoidKeyword; /** * Test if a node is an `AccessExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1364,13 +1222,11 @@ declare function isVoidKeyword(node: ts.Node): node is VoidKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AccessExpression`. */ declare function isAccessExpression(node: ts.Node): node is ts.AccessExpression; /** * Test if a node is an `AccessibilityModifier`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1380,13 +1236,11 @@ declare function isAccessExpression(node: ts.Node): node is ts.AccessExpression; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AccessibilityModifier`. */ declare function isAccessibilityModifier(node: ts.Node): node is ts.AccessibilityModifier; /** * Test if a node is an `AccessorDeclaration`. - * * @deprecated With TypeScript v5, in favor of typescript's `isAccessor`. * @category Nodes - Type Guards * @example @@ -1397,13 +1251,11 @@ declare function isAccessibilityModifier(node: ts.Node): node is ts.Accessibilit * // ... * } * ``` - * * @returns Whether the given node appears to be an `AccessorDeclaration`. */ declare function isAccessorDeclaration(node: ts.Node): node is ts.AccessorDeclaration; /** * Test if a node is an `ArrayBindingElement`. - * * @deprecated With TypeScript v5, in favor of typescript's `isArrayBindingElement`. * @category Nodes - Type Guards * @example @@ -1414,13 +1266,11 @@ declare function isAccessorDeclaration(node: ts.Node): node is ts.AccessorDeclar * // ... * } * ``` - * * @returns Whether the given node appears to be an `ArrayBindingElement`. */ declare function isArrayBindingElement(node: ts.Node): node is ts.ArrayBindingElement; /** * Test if a node is an `ArrayBindingOrAssignmentPattern`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1430,13 +1280,11 @@ declare function isArrayBindingElement(node: ts.Node): node is ts.ArrayBindingEl * // ... * } * ``` - * * @returns Whether the given node appears to be an `ArrayBindingOrAssignmentPattern`. */ declare function isArrayBindingOrAssignmentPattern(node: ts.Node): node is ts.ArrayBindingOrAssignmentPattern; /** * Test if a node is an `AssignmentPattern`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1446,13 +1294,11 @@ declare function isArrayBindingOrAssignmentPattern(node: ts.Node): node is ts.Ar * // ... * } * ``` - * * @returns Whether the given node appears to be an `AssignmentPattern`. */ declare function isAssignmentPattern(node: ts.Node): node is ts.AssignmentPattern; /** * Test if a node is a `BindingOrAssignmentElementRestIndicator`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1462,13 +1308,11 @@ declare function isAssignmentPattern(node: ts.Node): node is ts.AssignmentPatter * // ... * } * ``` - * * @returns Whether the given node appears to be a `BindingOrAssignmentElementRestIndicator`. */ declare function isBindingOrAssignmentElementRestIndicator(node: ts.Node): node is ts.BindingOrAssignmentElementRestIndicator; /** * Test if a node is a `BindingOrAssignmentElementTarget`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1478,13 +1322,11 @@ declare function isBindingOrAssignmentElementRestIndicator(node: ts.Node): node * // ... * } * ``` - * * @returns Whether the given node appears to be a `BindingOrAssignmentElementTarget`. */ declare function isBindingOrAssignmentElementTarget(node: ts.Node): node is ts.BindingOrAssignmentElementTarget; /** * Test if a node is a `BindingOrAssignmentPattern`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1494,13 +1336,11 @@ declare function isBindingOrAssignmentElementTarget(node: ts.Node): node is ts.B * // ... * } * ``` - * * @returns Whether the given node appears to be a `BindingOrAssignmentPattern`. */ declare function isBindingOrAssignmentPattern(node: ts.Node): node is ts.BindingOrAssignmentPattern; /** * Test if a node is a `BindingPattern`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1510,13 +1350,11 @@ declare function isBindingOrAssignmentPattern(node: ts.Node): node is ts.Binding * // ... * } * ``` - * * @returns Whether the given node appears to be a `BindingPattern`. */ declare function isBindingPattern(node: ts.Node): node is ts.BindingPattern; /** * Test if a node is a `BlockLike`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1526,13 +1364,11 @@ declare function isBindingPattern(node: ts.Node): node is ts.BindingPattern; * // ... * } * ``` - * * @returns Whether the given node appears to be a `BlockLike`. */ declare function isBlockLike(node: ts.Node): node is ts.BlockLike; /** * Test if a node is a `BooleanLiteral`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1542,13 +1378,11 @@ declare function isBlockLike(node: ts.Node): node is ts.BlockLike; * // ... * } * ``` - * * @returns Whether the given node appears to be a `BooleanLiteral`. */ declare function isBooleanLiteral(node: ts.Node): node is ts.BooleanLiteral; /** * Test if a node is a `ClassLikeDeclaration`. - * * @deprecated With TypeScript v5, in favor of typescript's `isClassLike`. * @category Nodes - Type Guards * @example @@ -1559,13 +1393,11 @@ declare function isBooleanLiteral(node: ts.Node): node is ts.BooleanLiteral; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ClassLikeDeclaration`. */ declare function isClassLikeDeclaration(node: ts.Node): node is ts.ClassLikeDeclaration; /** * Test if a node is a `ClassMemberModifier`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1575,13 +1407,11 @@ declare function isClassLikeDeclaration(node: ts.Node): node is ts.ClassLikeDecl * // ... * } * ``` - * * @returns Whether the given node appears to be a `ClassMemberModifier`. */ declare function isClassMemberModifier(node: ts.Node): node is ts.ClassMemberModifier; /** * Test if a node is a `DeclarationName`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1591,13 +1421,11 @@ declare function isClassMemberModifier(node: ts.Node): node is ts.ClassMemberMod * // ... * } * ``` - * * @returns Whether the given node appears to be a `DeclarationName`. */ declare function isDeclarationName(node: ts.Node): node is ts.DeclarationName; /** * Test if a node is a `DeclarationWithTypeParameterChildren`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1607,13 +1435,11 @@ declare function isDeclarationName(node: ts.Node): node is ts.DeclarationName; * // ... * } * ``` - * * @returns Whether the given node appears to be a `DeclarationWithTypeParameterChildren`. */ declare function isDeclarationWithTypeParameterChildren(node: ts.Node): node is ts.DeclarationWithTypeParameterChildren; /** * Test if a node is a `DeclarationWithTypeParameters`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1623,13 +1449,11 @@ declare function isDeclarationWithTypeParameterChildren(node: ts.Node): node is * // ... * } * ``` - * * @returns Whether the given node appears to be a `DeclarationWithTypeParameters`. */ declare function isDeclarationWithTypeParameters(node: ts.Node): node is ts.DeclarationWithTypeParameters; /** * Test if a node is a `DestructuringPattern`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1639,13 +1463,11 @@ declare function isDeclarationWithTypeParameters(node: ts.Node): node is ts.Decl * // ... * } * ``` - * * @returns Whether the given node appears to be a `DestructuringPattern`. */ declare function isDestructuringPattern(node: ts.Node): node is ts.DestructuringPattern; /** * Test if a node is an `EntityNameExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1655,13 +1477,11 @@ declare function isDestructuringPattern(node: ts.Node): node is ts.Destructuring * // ... * } * ``` - * * @returns Whether the given node appears to be an `EntityNameExpression`. */ declare function isEntityNameExpression(node: ts.Node): node is ts.EntityNameExpression; /** * Test if a node is an `EntityNameOrEntityNameExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1671,13 +1491,11 @@ declare function isEntityNameExpression(node: ts.Node): node is ts.EntityNameExp * // ... * } * ``` - * * @returns Whether the given node appears to be an `EntityNameOrEntityNameExpression`. */ declare function isEntityNameOrEntityNameExpression(node: ts.Node): node is ts.EntityNameOrEntityNameExpression; /** * Test if a node is a `ForInOrOfStatement`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1687,13 +1505,11 @@ declare function isEntityNameOrEntityNameExpression(node: ts.Node): node is ts.E * // ... * } * ``` - * * @returns Whether the given node appears to be a `ForInOrOfStatement`. */ declare function isForInOrOfStatement(node: ts.Node): node is ts.ForInOrOfStatement; /** * Test if a node is a `FunctionLikeDeclaration`. - * * @deprecated With TypeScript v5, in favor of typescript's `isFunctionLike`. * @category Nodes - Type Guards * @example @@ -1704,13 +1520,11 @@ declare function isForInOrOfStatement(node: ts.Node): node is ts.ForInOrOfStatem * // ... * } * ``` - * * @returns Whether the given node appears to be a `FunctionLikeDeclaration`. */ declare function isFunctionLikeDeclaration(node: ts.Node): node is ts.FunctionLikeDeclaration; /** * Test if a node is a `HasDecorators`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1720,13 +1534,11 @@ declare function isFunctionLikeDeclaration(node: ts.Node): node is ts.FunctionLi * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasDecorators`. */ declare function hasDecorators(node: ts.Node): node is ts.HasDecorators; /** * Test if a node is a `HasExpressionInitializer`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1736,13 +1548,11 @@ declare function hasDecorators(node: ts.Node): node is ts.HasDecorators; * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasExpressionInitializer`. */ declare function hasExpressionInitializer(node: ts.Node): node is ts.HasExpressionInitializer; /** * Test if a node is a `HasInitializer`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1752,13 +1562,11 @@ declare function hasExpressionInitializer(node: ts.Node): node is ts.HasExpressi * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasInitializer`. */ declare function hasInitializer(node: ts.Node): node is ts.HasInitializer; /** * Test if a node is a `HasJSDoc`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1768,13 +1576,11 @@ declare function hasInitializer(node: ts.Node): node is ts.HasInitializer; * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasJSDoc`. */ declare function hasJSDoc(node: ts.Node): node is ts.HasJSDoc; /** * Test if a node is a `HasModifiers`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1784,13 +1590,11 @@ declare function hasJSDoc(node: ts.Node): node is ts.HasJSDoc; * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasModifiers`. */ declare function hasModifiers(node: ts.Node): node is ts.HasModifiers; /** * Test if a node is a `HasType`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1800,13 +1604,11 @@ declare function hasModifiers(node: ts.Node): node is ts.HasModifiers; * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasType`. */ declare function hasType(node: ts.Node): node is ts.HasType; /** * Test if a node is a `HasTypeArguments`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1816,13 +1618,11 @@ declare function hasType(node: ts.Node): node is ts.HasType; * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasTypeArguments`. */ declare function hasTypeArguments(node: ts.Node): node is ts.HasTypeArguments; /** * Test if a node is a `JSDocComment`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1832,13 +1632,11 @@ declare function hasTypeArguments(node: ts.Node): node is ts.HasTypeArguments; * // ... * } * ``` - * * @returns Whether the given node appears to be a `JSDocComment`. */ declare function isJSDocComment(node: ts.Node): node is ts.JSDocComment; /** * Test if a node is a `JSDocNamespaceBody`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1848,13 +1646,11 @@ declare function isJSDocComment(node: ts.Node): node is ts.JSDocComment; * // ... * } * ``` - * * @returns Whether the given node appears to be a `JSDocNamespaceBody`. */ declare function isJSDocNamespaceBody(node: ts.Node): node is ts.JSDocNamespaceBody; /** * Test if a node is a `JSDocTypeReferencingNode`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1864,13 +1660,11 @@ declare function isJSDocNamespaceBody(node: ts.Node): node is ts.JSDocNamespaceB * // ... * } * ``` - * * @returns Whether the given node appears to be a `JSDocTypeReferencingNode`. */ declare function isJSDocTypeReferencingNode(node: ts.Node): node is ts.JSDocTypeReferencingNode; /** * Test if a node is a `JsonObjectExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1880,13 +1674,11 @@ declare function isJSDocTypeReferencingNode(node: ts.Node): node is ts.JSDocType * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsonObjectExpression`. */ declare function isJsonObjectExpression(node: ts.Node): node is ts.JsonObjectExpression; /** * Test if a node is a `JsxAttributeLike`. - * * @deprecated With TypeScript v5, in favor of typescript's `isJsxAttributeLike`. * @category Nodes - Type Guards * @example @@ -1897,13 +1689,11 @@ declare function isJsonObjectExpression(node: ts.Node): node is ts.JsonObjectExp * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsxAttributeLike`. */ declare function isJsxAttributeLike(node: ts.Node): node is ts.JsxAttributeLike; /** * Test if a node is a `JsxAttributeValue`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1913,13 +1703,11 @@ declare function isJsxAttributeLike(node: ts.Node): node is ts.JsxAttributeLike; * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsxAttributeValue`. */ declare function isJsxAttributeValue(node: ts.Node): node is ts.JsxAttributeValue; /** * Test if a node is a `JsxChild`. - * * @deprecated With TypeScript v5, in favor of typescript's `isJsxChild`. * @category Nodes - Type Guards * @example @@ -1930,13 +1718,11 @@ declare function isJsxAttributeValue(node: ts.Node): node is ts.JsxAttributeValu * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsxChild`. */ declare function isJsxChild(node: ts.Node): node is ts.JsxChild; /** * Test if a node is a `JsxTagNameExpression`. - * * @deprecated With TypeScript v5, in favor of typescript's `isJsxTagNameExpression`. * @category Nodes - Type Guards * @example @@ -1947,13 +1733,11 @@ declare function isJsxChild(node: ts.Node): node is ts.JsxChild; * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsxTagNameExpression`. */ declare function isJsxTagNameExpression(node: ts.Node): node is ts.JsxTagNameExpression; /** * Test if a node is a `LiteralToken`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1963,13 +1747,11 @@ declare function isJsxTagNameExpression(node: ts.Node): node is ts.JsxTagNameExp * // ... * } * ``` - * * @returns Whether the given node appears to be a `LiteralToken`. */ declare function isLiteralToken(node: ts.Node): node is ts.LiteralToken; /** * Test if a node is a `ModuleBody`. - * * @deprecated With TypeScript v5, in favor of typescript's `isModuleBody`. * @category Nodes - Type Guards * @example @@ -1980,13 +1762,11 @@ declare function isLiteralToken(node: ts.Node): node is ts.LiteralToken; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ModuleBody`. */ declare function isModuleBody(node: ts.Node): node is ts.ModuleBody; /** * Test if a node is a `ModuleName`. - * * @deprecated With TypeScript v5, in favor of typescript's `isModuleName`. * @category Nodes - Type Guards * @example @@ -1997,13 +1777,11 @@ declare function isModuleBody(node: ts.Node): node is ts.ModuleBody; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ModuleName`. */ declare function isModuleName(node: ts.Node): node is ts.ModuleName; /** * Test if a node is a `ModuleReference`. - * * @deprecated With TypeScript v5, in favor of typescript's `isModuleReference`. * @category Nodes - Type Guards * @example @@ -2014,13 +1792,11 @@ declare function isModuleName(node: ts.Node): node is ts.ModuleName; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ModuleReference`. */ declare function isModuleReference(node: ts.Node): node is ts.ModuleReference; /** * Test if a node is a `NamedImportBindings`. - * * @deprecated With TypeScript v5, in favor of typescript's `isNamedImportBindings`. * @category Nodes - Type Guards * @example @@ -2031,13 +1807,11 @@ declare function isModuleReference(node: ts.Node): node is ts.ModuleReference; * // ... * } * ``` - * * @returns Whether the given node appears to be a `NamedImportBindings`. */ declare function isNamedImportBindings(node: ts.Node): node is ts.NamedImportBindings; /** * Test if a node is a `NamedImportsOrExports`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2047,13 +1821,11 @@ declare function isNamedImportBindings(node: ts.Node): node is ts.NamedImportBin * // ... * } * ``` - * * @returns Whether the given node appears to be a `NamedImportsOrExports`. */ declare function isNamedImportsOrExports(node: ts.Node): node is ts.NamedImportsOrExports; /** * Test if a node is a `NamespaceBody`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2063,13 +1835,11 @@ declare function isNamedImportsOrExports(node: ts.Node): node is ts.NamedImports * // ... * } * ``` - * * @returns Whether the given node appears to be a `NamespaceBody`. */ declare function isNamespaceBody(node: ts.Node): node is ts.NamespaceBody; /** * Test if a node is an `ObjectBindingOrAssignmentElement`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2079,13 +1849,11 @@ declare function isNamespaceBody(node: ts.Node): node is ts.NamespaceBody; * // ... * } * ``` - * * @returns Whether the given node appears to be an `ObjectBindingOrAssignmentElement`. */ declare function isObjectBindingOrAssignmentElement(node: ts.Node): node is ts.ObjectBindingOrAssignmentElement; /** * Test if a node is an `ObjectBindingOrAssignmentPattern`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2095,13 +1863,11 @@ declare function isObjectBindingOrAssignmentElement(node: ts.Node): node is ts.O * // ... * } * ``` - * * @returns Whether the given node appears to be an `ObjectBindingOrAssignmentPattern`. */ declare function isObjectBindingOrAssignmentPattern(node: ts.Node): node is ts.ObjectBindingOrAssignmentPattern; /** * Test if a node is an `ObjectTypeDeclaration`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2111,13 +1877,11 @@ declare function isObjectBindingOrAssignmentPattern(node: ts.Node): node is ts.O * // ... * } * ``` - * * @returns Whether the given node appears to be an `ObjectTypeDeclaration`. */ declare function isObjectTypeDeclaration(node: ts.Node): node is ts.ObjectTypeDeclaration; /** * Test if a node is a `ParameterPropertyModifier`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2127,13 +1891,11 @@ declare function isObjectTypeDeclaration(node: ts.Node): node is ts.ObjectTypeDe * // ... * } * ``` - * * @returns Whether the given node appears to be a `ParameterPropertyModifier`. */ declare function isParameterPropertyModifier(node: ts.Node): node is ts.ParameterPropertyModifier; /** * Test if a node is a `PropertyNameLiteral`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2143,13 +1905,11 @@ declare function isParameterPropertyModifier(node: ts.Node): node is ts.Paramete * // ... * } * ``` - * * @returns Whether the given node appears to be a `PropertyNameLiteral`. */ declare function isPropertyNameLiteral(node: ts.Node): node is ts.PropertyNameLiteral; /** * Test if a node is a `PseudoLiteralToken`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2159,13 +1919,11 @@ declare function isPropertyNameLiteral(node: ts.Node): node is ts.PropertyNameLi * // ... * } * ``` - * * @returns Whether the given node appears to be a `PseudoLiteralToken`. */ declare function isPseudoLiteralToken(node: ts.Node): node is ts.PseudoLiteralToken; /** * Test if a node is a `SignatureDeclaration`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2175,13 +1933,11 @@ declare function isPseudoLiteralToken(node: ts.Node): node is ts.PseudoLiteralTo * // ... * } * ``` - * * @returns Whether the given node appears to be a `SignatureDeclaration`. */ declare function isSignatureDeclaration(node: ts.Node): node is ts.SignatureDeclaration; /** * Test if a node is a `SuperProperty`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2191,13 +1947,11 @@ declare function isSignatureDeclaration(node: ts.Node): node is ts.SignatureDecl * // ... * } * ``` - * * @returns Whether the given node appears to be a `SuperProperty`. */ declare function isSuperProperty(node: ts.Node): node is ts.SuperProperty; /** * Test if a node is a `TypeOnlyCompatibleAliasDeclaration`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2207,13 +1961,11 @@ declare function isSuperProperty(node: ts.Node): node is ts.SuperProperty; * // ... * } * ``` - * * @returns Whether the given node appears to be a `TypeOnlyCompatibleAliasDeclaration`. */ declare function isTypeOnlyCompatibleAliasDeclaration(node: ts.Node): node is ts.TypeOnlyCompatibleAliasDeclaration; /** * Test if a node is a `TypeReferenceType`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2223,13 +1975,11 @@ declare function isTypeOnlyCompatibleAliasDeclaration(node: ts.Node): node is ts * // ... * } * ``` - * * @returns Whether the given node appears to be a `TypeReferenceType`. */ declare function isTypeReferenceType(node: ts.Node): node is ts.TypeReferenceType; /** * Test if a node is an `UnionOrIntersectionTypeNode`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2239,13 +1989,11 @@ declare function isTypeReferenceType(node: ts.Node): node is ts.TypeReferenceTyp * // ... * } * ``` - * * @returns Whether the given node appears to be an `UnionOrIntersectionTypeNode`. */ declare function isUnionOrIntersectionTypeNode(node: ts.Node): node is ts.UnionOrIntersectionTypeNode; /** * Test if a node is an `UnparsedSourceText`. - * * @deprecated With TypeScript v5 * @category Nodes - Type Guards * @example @@ -2256,13 +2004,11 @@ declare function isUnionOrIntersectionTypeNode(node: ts.Node): node is ts.UnionO * // ... * } * ``` - * * @returns Whether the given node appears to be an `UnparsedSourceText`. */ declare function isUnparsedSourceText(node: ts.Node): node is ts.UnparsedSourceText; /** * Test if a node is a `VariableLikeDeclaration`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2272,14 +2018,12 @@ declare function isUnparsedSourceText(node: ts.Node): node is ts.UnparsedSourceT * // ... * } * ``` - * * @returns Whether the given node appears to be a `VariableLikeDeclaration`. */ declare function isVariableLikeDeclaration(node: ts.Node): node is ts.VariableLikeDeclaration; /** * Is the node a scope boundary, specifically due to it being a function. - * * @category Scope Utilities * @example * ```ts @@ -2294,7 +2038,6 @@ declare function isFunctionScopeBoundary(node: ts.Node): boolean; /** * Test of the kind given is for assignment. - * * @category Syntax Utilities * @example * ```ts @@ -2306,7 +2049,6 @@ declare function isFunctionScopeBoundary(node: ts.Node): boolean; declare function isAssignmentKind(kind: ts.SyntaxKind): boolean; /** * Test if a string is numeric. - * * @category Syntax Utilities * @example * ```ts @@ -2317,7 +2059,6 @@ declare function isAssignmentKind(kind: ts.SyntaxKind): boolean; declare function isNumericPropertyName(name: string | ts.__String): boolean; /** * Determines whether the given text can be used to access a property with a `PropertyAccessExpression` while preserving the property's name. - * * @category Syntax Utilities * @example * ```ts @@ -2329,13 +2070,11 @@ declare function isValidPropertyAccess(text: string, languageVersion?: ts.Script /** * Callback type used for {@link forEachToken}. - * * @category Callbacks */ type ForEachTokenCallback = (token: ts.Node) => void; /** * Iterates over all tokens of `node` - * * @category Nodes - Other Utilities * @example * ```ts @@ -2345,7 +2084,6 @@ type ForEachTokenCallback = (token: ts.Node) => void; * console.log("Found token:", token.getText()); * }); * ``` - * * @param node - The node whose tokens should be visited * @param callback - Is called for every token contained in `node` */ @@ -2353,7 +2091,6 @@ declare function forEachToken(node: ts.Node, callback: ForEachTokenCallback, sou /** * Get the `CallSignatures` of the given type. - * * @category Types - Getters * @example * ```ts @@ -2365,7 +2102,6 @@ declare function forEachToken(node: ts.Node, callback: ForEachTokenCallback, sou declare function getCallSignaturesOfType(type: ts.Type): readonly ts.Signature[]; /** * Get the property with the given name on the given type (if it exists). - * * @category Types - Getters * @example * ```ts @@ -2378,7 +2114,6 @@ declare function getCallSignaturesOfType(type: ts.Type): readonly ts.Signature[] declare function getPropertyOfType(type: ts.Type, name: ts.__String): ts.Symbol | undefined; /** * Retrieves a type symbol corresponding to a well-known string name. - * * @category Types - Getters * @example * ```ts @@ -2392,7 +2127,6 @@ declare function getWellKnownSymbolPropertyOfType(type: ts.Type, wellKnownSymbol /** * A "any" intrinsic type. - * * @category Type Types */ interface IntrinsicAnyType extends IntrinsicType { @@ -2400,7 +2134,6 @@ interface IntrinsicAnyType extends IntrinsicType { } /** * Determines whether the given type is the "any" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2414,7 +2147,6 @@ interface IntrinsicAnyType extends IntrinsicType { declare function isIntrinsicAnyType(type: ts.Type): type is IntrinsicAnyType; /** * A "boolean" intrinsic type. - * * @category Type Types */ interface IntrinsicBooleanType extends IntrinsicType { @@ -2422,7 +2154,6 @@ interface IntrinsicBooleanType extends IntrinsicType { } /** * Determines whether the given type is the "boolean" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2436,7 +2167,6 @@ interface IntrinsicBooleanType extends IntrinsicType { declare function isIntrinsicBooleanType(type: ts.Type): type is IntrinsicBooleanType; /** * A "bigint" intrinsic type. - * * @category Type Types */ interface IntrinsicBigIntType extends IntrinsicType { @@ -2444,7 +2174,6 @@ interface IntrinsicBigIntType extends IntrinsicType { } /** * Determines whether the given type is the "bigint" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2461,7 +2190,6 @@ declare function isIntrinsicBigIntType(type: ts.Type): type is IntrinsicBigIntTy * * This refers to a type generated when TypeScript encounters an error while * trying to resolve the type. - * * @category Type Types */ interface IntrinsicErrorType extends IntrinsicType { @@ -2472,7 +2200,6 @@ interface IntrinsicErrorType extends IntrinsicType { * * The intrinsic error type occurs when TypeScript encounters an error while * trying to resolve the type. - * * @category Types - Type Guards * @example * ```ts @@ -2486,7 +2213,6 @@ interface IntrinsicErrorType extends IntrinsicType { declare function isIntrinsicErrorType(type: ts.Type): type is IntrinsicErrorType; /** * A "symbol" intrinsic type. - * * @category Type Types */ interface IntrinsicESSymbolType extends IntrinsicType { @@ -2494,7 +2220,6 @@ interface IntrinsicESSymbolType extends IntrinsicType { } /** * Determines whether the given type is the "symbol" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2508,7 +2233,6 @@ interface IntrinsicESSymbolType extends IntrinsicType { declare function isIntrinsicESSymbolType(type: ts.Type): type is IntrinsicESSymbolType; /** * An intrinsic type. - * * @category Type Types */ interface IntrinsicType extends ts.Type { @@ -2517,7 +2241,6 @@ interface IntrinsicType extends ts.Type { } /** * Test if a type is an {@link IntrinsicType}. - * * @category Types - Type Guards * @example * ```ts @@ -2531,7 +2254,6 @@ interface IntrinsicType extends ts.Type { declare function isIntrinsicType(type: ts.Type): type is IntrinsicType; /** * A "never" intrinsic type. - * * @category Type Types */ interface IntrinsicNeverType extends IntrinsicType { @@ -2539,7 +2261,6 @@ interface IntrinsicNeverType extends IntrinsicType { } /** * Determines whether the given type is the "never" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2554,7 +2275,6 @@ declare function isIntrinsicNeverType(type: ts.Type): type is IntrinsicNeverType /** * A non-primitive intrinsic type. * E.g. An "object" intrinsic type. - * * @category Type Types */ interface IntrinsicNonPrimitiveType extends IntrinsicType { @@ -2563,7 +2283,6 @@ interface IntrinsicNonPrimitiveType extends IntrinsicType { /** * Determines whether the given type is a non-primitive intrinsic type. * E.g. An "object" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2577,7 +2296,6 @@ interface IntrinsicNonPrimitiveType extends IntrinsicType { declare function isIntrinsicNonPrimitiveType(type: ts.Type): type is IntrinsicNonPrimitiveType; /** * A "null" intrinsic type. - * * @category Type Types */ interface IntrinsicNullType extends IntrinsicType { @@ -2585,7 +2303,6 @@ interface IntrinsicNullType extends IntrinsicType { } /** * Determines whether the given type is the "null" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2599,7 +2316,6 @@ interface IntrinsicNullType extends IntrinsicType { declare function isIntrinsicNullType(type: ts.Type): type is IntrinsicNullType; /** * A "number" intrinsic type. - * * @category Type Types */ interface IntrinsicNumberType extends IntrinsicType { @@ -2607,7 +2323,6 @@ interface IntrinsicNumberType extends IntrinsicType { } /** * Determines whether the given type is the "number" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2621,7 +2336,6 @@ interface IntrinsicNumberType extends IntrinsicType { declare function isIntrinsicNumberType(type: ts.Type): type is IntrinsicNumberType; /** * A "string" intrinsic type. - * * @category Type Types */ interface IntrinsicStringType extends IntrinsicType { @@ -2629,7 +2343,6 @@ interface IntrinsicStringType extends IntrinsicType { } /** * Determines whether the given type is the "string" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2643,7 +2356,6 @@ interface IntrinsicStringType extends IntrinsicType { declare function isIntrinsicStringType(type: ts.Type): type is IntrinsicStringType; /** * An "undefined" intrinsic type. - * * @category Type Types */ interface IntrinsicUndefinedType extends IntrinsicType { @@ -2651,7 +2363,6 @@ interface IntrinsicUndefinedType extends IntrinsicType { } /** * Determines whether the given type is the "undefined" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2665,7 +2376,6 @@ interface IntrinsicUndefinedType extends IntrinsicType { declare function isIntrinsicUndefinedType(type: ts.Type): type is IntrinsicUndefinedType; /** * An "unknown" intrinsic type. - * * @category Type Types */ interface IntrinsicUnknownType extends IntrinsicType { @@ -2673,7 +2383,6 @@ interface IntrinsicUnknownType extends IntrinsicType { } /** * Determines whether the given type is the "unknown" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2687,7 +2396,6 @@ interface IntrinsicUnknownType extends IntrinsicType { declare function isIntrinsicUnknownType(type: ts.Type): type is IntrinsicUnknownType; /** * A "void" intrinsic type. - * * @category Type Types */ interface IntrinsicVoidType extends IntrinsicType { @@ -2695,7 +2403,6 @@ interface IntrinsicVoidType extends IntrinsicType { } /** * Determines whether the given type is the "void" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2710,14 +2417,12 @@ declare function isIntrinsicVoidType(type: ts.Type): type is IntrinsicVoidType; /** * A type that is both an {@link IntrinsicType} and a `FreshableType` - * * @category Type Types */ interface FreshableIntrinsicType extends ts.FreshableType, IntrinsicType { } /** * Test if a type is a `FreshableIntrinsicType`. - * * @category Types - Type Guards * @example * ```ts @@ -2730,7 +2435,6 @@ interface FreshableIntrinsicType extends ts.FreshableType, IntrinsicType { declare function isFreshableIntrinsicType(type: ts.Type): type is FreshableIntrinsicType; /** * Test if a type is a `TupleTypeReference`. - * * @category Types - Type Guards * @example * ```ts @@ -2745,16 +2449,14 @@ declare function isTupleTypeReference(type: ts.Type): type is ts.TupleTypeRefere /** * A boolean literal. * i.e. Either a "true" or "false" literal. - * * @category Type Types */ interface BooleanLiteralType extends UnknownLiteralType { - intrinsicName: "true" | "false"; + intrinsicName: "false" | "true"; value: boolean; } /** * Determines whether the given type is a boolean literal type. - * * @category Types - Type Guards * @example * ```ts @@ -2768,7 +2470,6 @@ interface BooleanLiteralType extends UnknownLiteralType { declare function isBooleanLiteralType(type: ts.Type): type is BooleanLiteralType; /** * Test if a type is a `BigIntLiteralType`. - * * @category Types - Type Guards * @example * ```ts @@ -2782,7 +2483,6 @@ declare function isBooleanLiteralType(type: ts.Type): type is BooleanLiteralType declare function isBigIntLiteralType(type: ts.Type): type is ts.BigIntLiteralType; /** * A "false" literal. - * * @category Type Types */ interface FalseLiteralType extends BooleanLiteralType { @@ -2791,7 +2491,6 @@ interface FalseLiteralType extends BooleanLiteralType { } /** * Determines whether the given type is a boolean literal type for "false". - * * @category Types - Type Guards * @example * ```ts @@ -2805,7 +2504,6 @@ interface FalseLiteralType extends BooleanLiteralType { declare function isFalseLiteralType(type: ts.Type): type is FalseLiteralType; /** * Test if a type is a `LiteralType`. - * * @category Types - Type Guards * @example * ```ts @@ -2819,7 +2517,6 @@ declare function isFalseLiteralType(type: ts.Type): type is FalseLiteralType; declare function isLiteralType(type: ts.Type): type is ts.LiteralType; /** * Test if a type is a `NumberLiteralType`. - * * @category Types - Type Guards * @example * ```ts @@ -2833,7 +2530,6 @@ declare function isLiteralType(type: ts.Type): type is ts.LiteralType; declare function isNumberLiteralType(type: ts.Type): type is ts.NumberLiteralType; /** * Test if a type is a `StringLiteralType`. - * * @category Types - Type Guards * @example * ```ts @@ -2847,7 +2543,6 @@ declare function isNumberLiteralType(type: ts.Type): type is ts.NumberLiteralTyp declare function isStringLiteralType(type: ts.Type): type is ts.StringLiteralType; /** * Test if a type is a `TemplateLiteralType`. - * * @category Types - Type Guards * @example * ```ts @@ -2861,7 +2556,6 @@ declare function isStringLiteralType(type: ts.Type): type is ts.StringLiteralTyp declare function isTemplateLiteralType(type: ts.Type): type is ts.TemplateLiteralType; /** * A "true" literal. - * * @category Type Types */ interface TrueLiteralType extends BooleanLiteralType { @@ -2870,7 +2564,6 @@ interface TrueLiteralType extends BooleanLiteralType { } /** * Determines whether the given type is a boolean literal type for "true". - * * @category Types - Type Guards * @example * ```ts @@ -2884,7 +2577,6 @@ interface TrueLiteralType extends BooleanLiteralType { declare function isTrueLiteralType(type: ts.Type): type is TrueLiteralType; /** * `LiteralType` from typescript except that it allows for it to work on arbitrary types. - * * @category Type Types */ interface UnknownLiteralType extends FreshableIntrinsicType { @@ -2892,7 +2584,6 @@ interface UnknownLiteralType extends FreshableIntrinsicType { } /** * Test if a type is a {@link UnknownLiteralType}. - * * @category Types - Type Guards * @example * ```ts @@ -2907,7 +2598,6 @@ declare function isUnknownLiteralType(type: ts.Type): type is UnknownLiteralType /** * Test if a type is a `EvolvingArrayType`. - * * @category Types - Type Guards * @example * ```ts @@ -2921,7 +2611,6 @@ declare function isUnknownLiteralType(type: ts.Type): type is UnknownLiteralType declare function isEvolvingArrayType(type: ts.Type): type is ts.EvolvingArrayType; /** * Test if a type is a `TupleType`. - * * @category Types - Type Guards * @example * ```ts @@ -2935,7 +2624,6 @@ declare function isEvolvingArrayType(type: ts.Type): type is ts.EvolvingArrayTyp declare function isTupleType(type: ts.Type): type is ts.TupleType; /** * Test if a type is a `TypeReference`. - * * @category Types - Type Guards * @example * ```ts @@ -2950,7 +2638,6 @@ declare function isTypeReference(type: ts.Type): type is ts.TypeReference; /** * Test if a type is a `ConditionalType`. - * * @category Types - Type Guards * @example * ```ts @@ -2964,7 +2651,6 @@ declare function isTypeReference(type: ts.Type): type is ts.TypeReference; declare function isConditionalType(type: ts.Type): type is ts.ConditionalType; /** * Test if a type is a `EnumType`. - * * @category Types - Type Guards * @example * ```ts @@ -2978,7 +2664,6 @@ declare function isConditionalType(type: ts.Type): type is ts.ConditionalType; declare function isEnumType(type: ts.Type): type is ts.EnumType; /** * Test if a type is a `FreshableType`. - * * @category Types - Type Guards * @example * ```ts @@ -2992,7 +2677,6 @@ declare function isEnumType(type: ts.Type): type is ts.EnumType; declare function isFreshableType(type: ts.Type): type is ts.FreshableType; /** * Test if a type is a `IndexType`. - * * @category Types - Type Guards * @example * ```ts @@ -3006,7 +2690,6 @@ declare function isFreshableType(type: ts.Type): type is ts.FreshableType; declare function isIndexType(type: ts.Type): type is ts.IndexType; /** * Test if a type is a `IndexedAccessType`. - * * @category Types - Type Guards * @example * ```ts @@ -3020,7 +2703,6 @@ declare function isIndexType(type: ts.Type): type is ts.IndexType; declare function isIndexedAccessType(type: ts.Type): type is ts.IndexedAccessType; /** * Test if a type is a `InstantiableType`. - * * @category Types - Type Guards * @example * ```ts @@ -3034,7 +2716,6 @@ declare function isIndexedAccessType(type: ts.Type): type is ts.IndexedAccessTyp declare function isInstantiableType(type: ts.Type): type is ts.InstantiableType; /** * Test if a type is a `IntersectionType`. - * * @category Types - Type Guards * @example * ```ts @@ -3048,7 +2729,6 @@ declare function isInstantiableType(type: ts.Type): type is ts.InstantiableType; declare function isIntersectionType(type: ts.Type): type is ts.IntersectionType; /** * Test if a type is a `ObjectType`. - * * @category Types - Type Guards * @example * ```ts @@ -3062,7 +2742,6 @@ declare function isIntersectionType(type: ts.Type): type is ts.IntersectionType; declare function isObjectType(type: ts.Type): type is ts.ObjectType; /** * Test if a type is a `StringMappingType`. - * * @category Types - Type Guards * @example * ```ts @@ -3076,7 +2755,6 @@ declare function isObjectType(type: ts.Type): type is ts.ObjectType; declare function isStringMappingType(type: ts.Type): type is ts.StringMappingType; /** * Test if a type is a `SubstitutionType`. - * * @category Types - Type Guards * @example * ```ts @@ -3090,7 +2768,6 @@ declare function isStringMappingType(type: ts.Type): type is ts.StringMappingTyp declare function isSubstitutionType(type: ts.Type): type is ts.SubstitutionType; /** * Test if a type is a `TypeParameter`. - * * @category Types - Type Guards * @example * ```ts @@ -3104,7 +2781,6 @@ declare function isSubstitutionType(type: ts.Type): type is ts.SubstitutionType; declare function isTypeParameter(type: ts.Type): type is ts.TypeParameter; /** * Test if a type is a `TypeVariable`. - * * @category Types - Type Guards * @example * ```ts @@ -3118,7 +2794,6 @@ declare function isTypeParameter(type: ts.Type): type is ts.TypeParameter; declare function isTypeVariable(type: ts.Type): type is ts.TypeVariable; /** * Test if a type is a `UnionType`. - * * @category Types - Type Guards * @example * ```ts @@ -3132,7 +2807,6 @@ declare function isTypeVariable(type: ts.Type): type is ts.TypeVariable; declare function isUnionType(type: ts.Type): type is ts.UnionType; /** * Test if a type is a `UnionOrIntersectionType`. - * * @category Types - Type Guards * @example * ```ts @@ -3146,7 +2820,6 @@ declare function isUnionType(type: ts.Type): type is ts.UnionType; declare function isUnionOrIntersectionType(type: ts.Type): type is ts.UnionOrIntersectionType; /** * Test if a type is a `UniqueESSymbolType`. - * * @category Types - Type Guards * @example * ```ts @@ -3161,7 +2834,6 @@ declare function isUniqueESSymbolType(type: ts.Type): type is ts.UniqueESSymbolT /** * Determines whether a type is definitely falsy. This function doesn't unwrap union types. - * * @category Types - Utilities * @example * ```ts @@ -3174,10 +2846,9 @@ declare function isUniqueESSymbolType(type: ts.Type): type is ts.UniqueESSymbolT */ declare function isFalsyType(type: ts.Type): boolean; /** - * Get the union type parts of the given type. - * - * If the given type is not a union type, an array contain only that type will be returned. + * Get the intersection type parts of the given type. * + * If the given type is not a intersection type, an array contain only that type will be returned. * @category Types - Utilities * @example * ```ts @@ -3190,8 +2861,24 @@ declare function isFalsyType(type: ts.Type): boolean; */ declare function intersectionTypeParts(type: ts.Type): ts.Type[]; /** - * Determines whether writing to a certain property of a given type is allowed. + * Get the intersection or union type parts of the given type. + * + * Note that this is a shallow collection: it only returns `type.types` or `[type]`. + * + * If the given type is not an intersection or union type, an array contain only that type will be returned. + * @category Types - Utilities + * @example + * ```ts + * declare const type: ts.Type; * + * for (const typePart of intersectionTypeParts(type)) { + * // ... + * } + * ``` + */ +declare function typeParts(type: ts.Type): ts.Type[]; +/** + * Determines whether writing to a certain property of a given type is allowed. * @category Types - Utilities * @example * ```ts @@ -3207,7 +2894,6 @@ declare function intersectionTypeParts(type: ts.Type): ts.Type[]; declare function isPropertyReadonlyInType(type: ts.Type, name: ts.__String, typeChecker: ts.TypeChecker): boolean; /** * Determines whether a type is thenable and thus can be used with `await`. - * * @category Types - Utilities * @example * ```ts @@ -3223,7 +2909,6 @@ declare function isPropertyReadonlyInType(type: ts.Type, name: ts.__String, type declare function isThenableType(typeChecker: ts.TypeChecker, node: ts.Node, type: ts.Type): boolean; /** * Determines whether a type is thenable and thus can be used with `await`. - * * @category Types - Utilities * @example * ```ts @@ -3234,7 +2919,6 @@ declare function isThenableType(typeChecker: ts.TypeChecker, node: ts.Node, type * // ... * } * ``` - * * @example * ```ts * declare const expression: ts.Expression; @@ -3249,7 +2933,6 @@ declare function isThenableType(typeChecker: ts.TypeChecker, node: ts.Node, type declare function isThenableType(typeChecker: ts.TypeChecker, node: ts.Expression, type?: ts.Type): boolean; /** * Test if the given symbol has a readonly declaration. - * * @category Symbols - Utilities * @example * ```ts @@ -3266,7 +2949,6 @@ declare function symbolHasReadonlyDeclaration(symbol: ts.Symbol, typeChecker: ts * Get the union type parts of the given type. * * If the given type is not a union type, an array contain only that type will be returned. - * * @category Types - Utilities * @example * ```ts @@ -3279,4 +2961,79 @@ declare function symbolHasReadonlyDeclaration(symbol: ts.Symbol, typeChecker: ts */ declare function unionTypeParts(type: ts.Type): ts.Type[]; -export { AnyKeyword, BigIntKeyword, BooleanCompilerOptions, BooleanKeyword, BooleanLiteralType, ConstAssertionExpression, ConstAssertionIdentifier, FalseKeyword, FalseLiteralType, ForEachCommentCallback, ForEachTokenCallback, FreshableIntrinsicType, ImportKeyword, IntrinsicAnyType, IntrinsicBigIntType, IntrinsicBooleanType, IntrinsicESSymbolType, IntrinsicErrorType, IntrinsicNeverType, IntrinsicNonPrimitiveType, IntrinsicNullType, IntrinsicNumberType, IntrinsicStringType, IntrinsicType, IntrinsicUndefinedType, IntrinsicUnknownType, IntrinsicVoidType, NamedDeclarationWithName, NeverKeyword, NullKeyword, NumberKeyword, NumericOrStringLikeLiteral, ObjectKeyword, StrictCompilerOption, StringKeyword, SuperKeyword, SymbolKeyword, ThisKeyword, TrueKeyword, TrueLiteralType, UndefinedKeyword, UnknownKeyword, UnknownLiteralType, VoidKeyword, forEachComment, forEachToken, getCallSignaturesOfType, getPropertyOfType, getWellKnownSymbolPropertyOfType, hasDecorators, hasExpressionInitializer, hasInitializer, hasJSDoc, hasModifiers, hasType, hasTypeArguments, includesModifier, intersectionTypeParts, isAbstractKeyword, isAccessExpression, isAccessibilityModifier, isAccessorDeclaration, isAccessorKeyword, isAnyKeyword, isArrayBindingElement, isArrayBindingOrAssignmentPattern, isAssertKeyword, isAssertsKeyword, isAssignmentKind, isAssignmentPattern, isAsyncKeyword, isAwaitKeyword, isBigIntKeyword, isBigIntLiteralType, isBindingOrAssignmentElementRestIndicator, isBindingOrAssignmentElementTarget, isBindingOrAssignmentPattern, isBindingPattern, isBlockLike, isBooleanKeyword, isBooleanLiteral, isBooleanLiteralType, isClassLikeDeclaration, isClassMemberModifier, isColonToken, isCompilerOptionEnabled, isConditionalType, isConstAssertionExpression, isConstKeyword, isDeclarationName, isDeclarationWithTypeParameterChildren, isDeclarationWithTypeParameters, isDeclareKeyword, isDefaultKeyword, isDestructuringPattern, isDotToken, isEndOfFileToken, isEntityNameExpression, isEntityNameOrEntityNameExpression, isEnumType, isEqualsGreaterThanToken, isEqualsToken, isEvolvingArrayType, isExclamationToken, isExportKeyword, isFalseKeyword, isFalseLiteral, isFalseLiteralType, isFalsyType, isForInOrOfStatement, isFreshableIntrinsicType, isFreshableType, isFunctionLikeDeclaration, isFunctionScopeBoundary, isImportExpression, isImportKeyword, isInKeyword, isIndexType, isIndexedAccessType, isInputFiles, isInstantiableType, isIntersectionType, isIntrinsicAnyType, isIntrinsicBigIntType, isIntrinsicBooleanType, isIntrinsicESSymbolType, isIntrinsicErrorType, isIntrinsicNeverType, isIntrinsicNonPrimitiveType, isIntrinsicNullType, isIntrinsicNumberType, isIntrinsicStringType, isIntrinsicType, isIntrinsicUndefinedType, isIntrinsicUnknownType, isIntrinsicVoidType, isIterationStatement, isJSDocComment, isJSDocNamespaceBody, isJSDocNamespaceDeclaration, isJSDocText, isJSDocTypeReferencingNode, isJsonMinusNumericLiteral, isJsonObjectExpression, isJsxAttributeLike, isJsxAttributeValue, isJsxChild, isJsxTagNameExpression, isJsxTagNamePropertyAccess, isLiteralToken, isLiteralType, isModifierFlagSet, isModuleBody, isModuleName, isModuleReference, isNamedDeclarationWithName, isNamedImportBindings, isNamedImportsOrExports, isNamespaceBody, isNamespaceDeclaration, isNeverKeyword, isNodeFlagSet, isNullKeyword, isNullLiteral, isNumberKeyword, isNumberLiteralType, isNumericOrStringLikeLiteral, isNumericPropertyName, isObjectBindingOrAssignmentElement, isObjectBindingOrAssignmentPattern, isObjectFlagSet, isObjectKeyword, isObjectType, isObjectTypeDeclaration, isOutKeyword, isOverrideKeyword, isParameterPropertyModifier, isPrivateKeyword, isPropertyAccessEntityNameExpression, isPropertyNameLiteral, isPropertyReadonlyInType, isProtectedKeyword, isPseudoLiteralToken, isPublicKeyword, isQuestionDotToken, isQuestionToken, isReadonlyKeyword, isSignatureDeclaration, isStaticKeyword, isStrictCompilerOptionEnabled, isStringKeyword, isStringLiteralType, isStringMappingType, isSubstitutionType, isSuperElementAccessExpression, isSuperExpression, isSuperKeyword, isSuperProperty, isSuperPropertyAccessExpression, isSymbolFlagSet, isSymbolKeyword, isSyntaxList, isTemplateLiteralType, isThenableType, isThisExpression, isThisKeyword, isTrueKeyword, isTrueLiteral, isTrueLiteralType, isTupleType, isTupleTypeReference, isTypeFlagSet, isTypeOnlyCompatibleAliasDeclaration, isTypeParameter, isTypeReference, isTypeReferenceType, isTypeVariable, isUndefinedKeyword, isUnionOrIntersectionType, isUnionOrIntersectionTypeNode, isUnionType, isUniqueESSymbolType, isUnknownKeyword, isUnknownLiteralType, isUnparsedPrologue, isUnparsedSourceText, isUnparsedSyntheticReference, isValidPropertyAccess, isVariableLikeDeclaration, isVoidKeyword, symbolHasReadonlyDeclaration, unionTypeParts }; +/** + * Which "domain"(s) (most commonly, type or value space) a declaration is within. + */ +declare enum DeclarationDomain { + Import = 8, + Namespace = 1, + Type = 2, + Value = 4, + Any = 7 +} + +/** + * Which "domain"(s) (most commonly, type or value space) a usage is within. + */ +declare enum UsageDomain { + Namespace = 1, + Type = 2, + TypeQuery = 8, + Value = 4, + ValueOrNamespace = 5, + Any = 7 +} + +/** + * How an item (type or value) was declared and/or referenced. + */ +interface UsageInfo { + /** + * Locations where the item was declared. + */ + declarations: ts.Identifier[]; + /** + * Which space(s) the item is within. + */ + domain: DeclarationDomain; + /** + * Whether the item was exported from its module or namespace scope. + */ + exported: boolean; + /** + * Whether the item's declaration was in the global scope. + */ + inGlobalScope: boolean; + /** + * Each reference to the item in the file. + */ + uses: Usage[]; +} +/** + * An instance of an item (type or value) being used. + */ +interface Usage { + /** + * Which space(s) the usage is within. + */ + domain: UsageDomain; + location: ts.Identifier; +} + +/** + * Creates a mapping of each declared type and value to its type information. + * @category Nodes - Other Utilities + * @example + * ```ts + * declare const sourceFile: ts.SourceFile; + * + * const usage = collectVariableUsage(sourceFile); + * + * for (const [identifier, information] of usage) { + * console.log(`${identifier.getText()} is used ${information.uses.length} time(s).`); + * } + * ``` + */ +declare function collectVariableUsage(sourceFile: ts.SourceFile): Map; + +export { AccessKind, type AnyKeyword, type BigIntKeyword, type BooleanCompilerOptions, type BooleanKeyword, type BooleanLiteralType, type ConstAssertionExpression, type ConstAssertionIdentifier, DeclarationDomain, type FalseKeyword, type FalseLiteralType, type ForEachCommentCallback, type ForEachTokenCallback, type FreshableIntrinsicType, type ImportKeyword, type IntrinsicAnyType, type IntrinsicBigIntType, type IntrinsicBooleanType, type IntrinsicESSymbolType, type IntrinsicErrorType, type IntrinsicNeverType, type IntrinsicNonPrimitiveType, type IntrinsicNullType, type IntrinsicNumberType, type IntrinsicStringType, type IntrinsicType, type IntrinsicUndefinedType, type IntrinsicUnknownType, type IntrinsicVoidType, type NamedDeclarationWithName, type NeverKeyword, type NullKeyword, type NumberKeyword, type NumericOrStringLikeLiteral, type ObjectKeyword, type StrictCompilerOption, type StringKeyword, type SuperKeyword, type SymbolKeyword, type ThisKeyword, type TrueKeyword, type TrueLiteralType, type UndefinedKeyword, type UnknownKeyword, type UnknownLiteralType, UsageDomain, type UsageInfo as VariableInfo, type Usage as VariableUse, type VoidKeyword, collectVariableUsage, forEachComment, forEachToken, getAccessKind, getCallSignaturesOfType, getPropertyOfType, getWellKnownSymbolPropertyOfType, hasDecorators, hasExpressionInitializer, hasInitializer, hasJSDoc, hasModifiers, hasType, hasTypeArguments, includesModifier, intersectionTypeParts, isAbstractKeyword, isAccessExpression, isAccessibilityModifier, isAccessorDeclaration, isAccessorKeyword, isAnyKeyword, isArrayBindingElement, isArrayBindingOrAssignmentPattern, isAssertKeyword, isAssertsKeyword, isAssignmentKind, isAssignmentPattern, isAsyncKeyword, isAwaitKeyword, isBigIntKeyword, isBigIntLiteralType, isBindingOrAssignmentElementRestIndicator, isBindingOrAssignmentElementTarget, isBindingOrAssignmentPattern, isBindingPattern, isBlockLike, isBooleanKeyword, isBooleanLiteral, isBooleanLiteralType, isClassLikeDeclaration, isClassMemberModifier, isColonToken, isCompilerOptionEnabled, isConditionalType, isConstAssertionExpression, isConstKeyword, isDeclarationName, isDeclarationWithTypeParameterChildren, isDeclarationWithTypeParameters, isDeclareKeyword, isDefaultKeyword, isDestructuringPattern, isDotToken, isEndOfFileToken, isEntityNameExpression, isEntityNameOrEntityNameExpression, isEnumType, isEqualsGreaterThanToken, isEqualsToken, isEvolvingArrayType, isExclamationToken, isExportKeyword, isFalseKeyword, isFalseLiteral, isFalseLiteralType, isFalsyType, isForInOrOfStatement, isFreshableIntrinsicType, isFreshableType, isFunctionLikeDeclaration, isFunctionScopeBoundary, isImportExpression, isImportKeyword, isInKeyword, isIndexType, isIndexedAccessType, isInputFiles, isInstantiableType, isIntersectionType, isIntrinsicAnyType, isIntrinsicBigIntType, isIntrinsicBooleanType, isIntrinsicESSymbolType, isIntrinsicErrorType, isIntrinsicNeverType, isIntrinsicNonPrimitiveType, isIntrinsicNullType, isIntrinsicNumberType, isIntrinsicStringType, isIntrinsicType, isIntrinsicUndefinedType, isIntrinsicUnknownType, isIntrinsicVoidType, isIterationStatement, isJSDocComment, isJSDocNamespaceBody, isJSDocNamespaceDeclaration, isJSDocText, isJSDocTypeReferencingNode, isJsonMinusNumericLiteral, isJsonObjectExpression, isJsxAttributeLike, isJsxAttributeValue, isJsxChild, isJsxTagNameExpression, isJsxTagNamePropertyAccess, isLiteralToken, isLiteralType, isModifierFlagSet, isModuleBody, isModuleName, isModuleReference, isNamedDeclarationWithName, isNamedImportBindings, isNamedImportsOrExports, isNamespaceBody, isNamespaceDeclaration, isNeverKeyword, isNodeFlagSet, isNullKeyword, isNullLiteral, isNumberKeyword, isNumberLiteralType, isNumericOrStringLikeLiteral, isNumericPropertyName, isObjectBindingOrAssignmentElement, isObjectBindingOrAssignmentPattern, isObjectFlagSet, isObjectKeyword, isObjectType, isObjectTypeDeclaration, isOutKeyword, isOverrideKeyword, isParameterPropertyModifier, isPrivateKeyword, isPropertyAccessEntityNameExpression, isPropertyNameLiteral, isPropertyReadonlyInType, isProtectedKeyword, isPseudoLiteralToken, isPublicKeyword, isQuestionDotToken, isQuestionToken, isReadonlyKeyword, isSignatureDeclaration, isStaticKeyword, isStrictCompilerOptionEnabled, isStringKeyword, isStringLiteralType, isStringMappingType, isSubstitutionType, isSuperElementAccessExpression, isSuperExpression, isSuperKeyword, isSuperProperty, isSuperPropertyAccessExpression, isSymbolFlagSet, isSymbolKeyword, isSyntaxList, isTemplateLiteralType, isThenableType, isThisExpression, isThisKeyword, isTrueKeyword, isTrueLiteral, isTrueLiteralType, isTupleType, isTupleTypeReference, isTypeFlagSet, isTypeOnlyCompatibleAliasDeclaration, isTypeParameter, isTypeReference, isTypeReferenceType, isTypeVariable, isUndefinedKeyword, isUnionOrIntersectionType, isUnionOrIntersectionTypeNode, isUnionType, isUniqueESSymbolType, isUnknownKeyword, isUnknownLiteralType, isUnparsedPrologue, isUnparsedSourceText, isUnparsedSyntheticReference, isValidPropertyAccess, isVariableLikeDeclaration, isVoidKeyword, symbolHasReadonlyDeclaration, typeParts, unionTypeParts }; diff --git a/node_modules/ts-api-utils/lib/index.d.ts b/node_modules/ts-api-utils/lib/index.d.ts index b777c56341..43c908e28e 100644 --- a/node_modules/ts-api-utils/lib/index.d.ts +++ b/node_modules/ts-api-utils/lib/index.d.ts @@ -2,13 +2,11 @@ import ts from 'typescript'; /** * Callback type used for {@link forEachComment}. - * * @category Callbacks */ type ForEachCommentCallback = (fullText: string, comment: ts.CommentRange) => void; /** * Iterates over all comments owned by `node` or its children. - * * @category Nodes - Other Utilities * @example * ```ts @@ -23,7 +21,6 @@ declare function forEachComment(node: ts.Node, callback: ForEachCommentCallback, /** * An option that can be tested with {@link isCompilerOptionEnabled}. - * * @category Compiler Options */ type BooleanCompilerOptions = keyof { @@ -34,7 +31,6 @@ type BooleanCompilerOptions = keyof { * It handles dependencies of options, e.g. `declaration` is implicitly enabled by `composite` or `strictNullChecks` is enabled by `strict`. * However, it does not check dependencies that are already checked and reported as errors, e.g. `checkJs` without `allowJs`. * This function only handles boolean flags. - * * @category Compiler Options * @example * ```ts @@ -49,14 +45,12 @@ type BooleanCompilerOptions = keyof { declare function isCompilerOptionEnabled(options: ts.CompilerOptions, option: BooleanCompilerOptions): boolean; /** * An option that can be tested with {@link isStrictCompilerOptionEnabled}. - * * @category Compiler Options */ type StrictCompilerOption = "alwaysStrict" | "noImplicitAny" | "noImplicitThis" | "strictBindCallApply" | "strictFunctionTypes" | "strictNullChecks" | "strictPropertyInitialization"; /** * Checks if a given compiler option is enabled, accounting for whether all flags * (except `strictPropertyInitialization`) have been enabled by `strict: true`. - * * @category Compiler Options * @example * ```ts @@ -67,7 +61,6 @@ type StrictCompilerOption = "alwaysStrict" | "noImplicitAny" | "noImplicitThis" * isStrictCompilerOptionEnabled(optionsLenient, "noImplicitAny"); // true * isStrictCompilerOptionEnabled(optionsLenient, "noImplicitThis"); // false * ``` - * * @example * ```ts * const optionsStrict = { @@ -83,7 +76,6 @@ declare function isStrictCompilerOptionEnabled(options: ts.CompilerOptions, opti /** * Test if the given node has the given `ModifierFlags` set. - * * @category Nodes - Flag Utilities * @example * ```ts @@ -97,7 +89,6 @@ declare function isStrictCompilerOptionEnabled(options: ts.CompilerOptions, opti declare function isModifierFlagSet(node: ts.Declaration, flag: ts.ModifierFlags): boolean; /** * Test if the given node has the given `NodeFlags` set. - * * @category Nodes - Flag Utilities * @example * ```ts @@ -111,7 +102,6 @@ declare function isModifierFlagSet(node: ts.Declaration, flag: ts.ModifierFlags) declare const isNodeFlagSet: (node: ts.Node, flag: ts.NodeFlags) => boolean; /** * Test if the given node has the given `ObjectFlags` set. - * * @category Nodes - Flag Utilities * @example * ```ts @@ -125,7 +115,6 @@ declare const isNodeFlagSet: (node: ts.Node, flag: ts.NodeFlags) => boolean; declare function isObjectFlagSet(objectType: ts.ObjectType, flag: ts.ObjectFlags): boolean; /** * Test if the given node has the given `SymbolFlags` set. - * * @category Nodes - Flag Utilities * @example * ```ts @@ -139,7 +128,6 @@ declare function isObjectFlagSet(objectType: ts.ObjectType, flag: ts.ObjectFlags declare const isSymbolFlagSet: (symbol: ts.Symbol, flag: ts.SymbolFlags) => boolean; /** * Test if the given node has the given `TypeFlags` set. - * * @category Nodes - Flag Utilities * @example * ```ts @@ -154,7 +142,6 @@ declare const isTypeFlagSet: (type: ts.Type, flag: ts.TypeFlags) => boolean; /** * Test if the given iterable includes a modifier of any of the given kinds. - * * @category Modifier Utilities * @example * ```ts @@ -163,11 +150,33 @@ declare const isTypeFlagSet: (type: ts.Type, flag: ts.TypeFlags) => boolean; * includesModifier(modifiers, ts.SyntaxKind.AbstractKeyword); * ``` */ -declare function includesModifier(modifiers: Iterable | undefined, ...kinds: ts.ModifierSyntaxKind[]): boolean; +declare function includesModifier(modifiers: Iterable | undefined, ...kinds: ts.ModifierSyntaxKind[]): boolean; /** - * An `AssertionExpression` that is declared as const. + * What operations(s), if any, an expression applies. + */ +declare enum AccessKind { + None = 0, + Read = 1, + Write = 2, + Delete = 4, + ReadWrite = 3 +} +/** + * Determines which operation(s), if any, an expression applies. + * @example + * ```ts + * declare const node: ts.Expression; * + * if (getAccessKind(node).Write & AccessKind.Write) !== 0) { + * // this is a reassignment (write) + * } + * ``` + */ +declare function getAccessKind(node: ts.Expression): AccessKind; + +/** + * An `AssertionExpression` that is declared as const. * @category Node Types */ type ConstAssertionExpression = ts.AssertionExpression & { @@ -176,7 +185,6 @@ type ConstAssertionExpression = ts.AssertionExpression & { }; /** * An `Identifier` with an `escapedText` value of `"const"`. - * * @category Node Types */ type ConstAssertionIdentifier = ts.Identifier & { @@ -184,7 +192,6 @@ type ConstAssertionIdentifier = ts.Identifier & { }; /** * Test if a node is a {@link ConstAssertionExpression}. - * * @category Nodes - Type Guards * @example * ```ts @@ -194,13 +201,11 @@ type ConstAssertionIdentifier = ts.Identifier & { * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link ConstAssertionExpression}. */ declare function isConstAssertionExpression(node: ts.AssertionExpression): node is ConstAssertionExpression; /** * Test if a node is an `IterationStatement`. - * * @category Nodes - Type Guards * @example * ```ts @@ -210,13 +215,11 @@ declare function isConstAssertionExpression(node: ts.AssertionExpression): node * // ... * } * ``` - * * @returns Whether the given node appears to be an `IterationStatement`. */ declare function isIterationStatement(node: ts.Node): node is ts.IterationStatement; /** * Test if a node is a `JSDocNamespaceDeclaration`. - * * @category Nodes - Type Guards * @example * ```ts @@ -226,13 +229,11 @@ declare function isIterationStatement(node: ts.Node): node is ts.IterationStatem * // ... * } * ``` - * * @returns Whether the given node appears to be a `JSDocNamespaceDeclaration`. */ declare function isJSDocNamespaceDeclaration(node: ts.Node): node is ts.JSDocNamespaceDeclaration; /** * Test if a node is a `JsxTagNamePropertyAccess`. - * * @category Nodes - Type Guards * @example * ```ts @@ -242,13 +243,11 @@ declare function isJSDocNamespaceDeclaration(node: ts.Node): node is ts.JSDocNam * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsxTagNamePropertyAccess`. */ declare function isJsxTagNamePropertyAccess(node: ts.Node): node is ts.JsxTagNamePropertyAccess; /** * a `NamedDeclaration` that definitely has a name. - * * @category Node Types */ interface NamedDeclarationWithName extends ts.NamedDeclaration { @@ -256,7 +255,6 @@ interface NamedDeclarationWithName extends ts.NamedDeclaration { } /** * Test if a node is a {@link NamedDeclarationWithName}. - * * @category Nodes - Type Guards * @example * ```ts @@ -266,13 +264,11 @@ interface NamedDeclarationWithName extends ts.NamedDeclaration { * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link NamedDeclarationWithName}. */ declare function isNamedDeclarationWithName(node: ts.Declaration): node is NamedDeclarationWithName; /** * Test if a node is a `NamespaceDeclaration`. - * * @category Nodes - Type Guards * @example * ```ts @@ -282,19 +278,16 @@ declare function isNamedDeclarationWithName(node: ts.Declaration): node is Named * // ... * } * ``` - * * @returns Whether the given node appears to be a `NamespaceDeclaration`. */ declare function isNamespaceDeclaration(node: ts.Node): node is ts.NamespaceDeclaration; /** * A number or string-like literal. - * * @category Node Types */ type NumericOrStringLikeLiteral = ts.NumericLiteral | ts.StringLiteralLike; /** * Test if a node is a {@link NumericOrStringLikeLiteral}. - * * @category Nodes - Type Guards * @example * ```ts @@ -304,13 +297,11 @@ type NumericOrStringLikeLiteral = ts.NumericLiteral | ts.StringLiteralLike; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link NumericOrStringLikeLiteral}. */ declare function isNumericOrStringLikeLiteral(node: ts.Node): node is NumericOrStringLikeLiteral; /** * Test if a node is a `PropertyAccessEntityNameExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -320,13 +311,11 @@ declare function isNumericOrStringLikeLiteral(node: ts.Node): node is NumericOrS * // ... * } * ``` - * * @returns Whether the given node appears to be a `PropertyAccessEntityNameExpression`. */ declare function isPropertyAccessEntityNameExpression(node: ts.Node): node is ts.PropertyAccessEntityNameExpression; /** * Test if a node is a `SuperElementAccessExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -336,13 +325,11 @@ declare function isPropertyAccessEntityNameExpression(node: ts.Node): node is ts * // ... * } * ``` - * * @returns Whether the given node appears to be a `SuperElementAccessExpression`. */ declare function isSuperElementAccessExpression(node: ts.Node): node is ts.SuperElementAccessExpression; /** * Test if a node is a `SuperPropertyAccessExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -352,116 +339,97 @@ declare function isSuperElementAccessExpression(node: ts.Node): node is ts.Super * // ... * } * ``` - * * @returns Whether the given node appears to be a `SuperPropertyAccessExpression`. */ declare function isSuperPropertyAccessExpression(node: ts.Node): node is ts.SuperPropertyAccessExpression; /** * A node that represents the any keyword. - * * @category Node Types */ type AnyKeyword = ts.KeywordToken; /** * A node that represents the bigint keyword. - * * @category Node Types */ type BigIntKeyword = ts.KeywordToken; /** * A node that represents the boolean keyword. - * * @category Node Types */ type BooleanKeyword = ts.KeywordToken; /** * A node that represents the false keyword. - * * @category Node Types */ type FalseKeyword = ts.KeywordToken; /** * A node that represents the import keyword. - * * @category Node Types */ type ImportKeyword = ts.KeywordToken; /** * A node that represents the never keyword. - * * @category Node Types */ type NeverKeyword = ts.KeywordToken; /** * A node that represents the null keyword. - * * @category Node Types */ type NullKeyword = ts.KeywordToken; /** * A node that represents the number keyword. - * * @category Node Types */ type NumberKeyword = ts.KeywordToken; /** * A node that represents the object keyword. - * * @category Node Types */ type ObjectKeyword = ts.KeywordToken; /** * A node that represents the string keyword. - * * @category Node Types */ type StringKeyword = ts.KeywordToken; /** * A node that represents the super keyword. - * * @category Node Types */ type SuperKeyword = ts.KeywordToken; /** * A node that represents the symbol keyword. - * * @category Node Types */ type SymbolKeyword = ts.KeywordToken; /** * A node that represents the this keyword. - * * @category Node Types */ type ThisKeyword = ts.KeywordToken; /** * A node that represents the true keyword. - * * @category Node Types */ type TrueKeyword = ts.KeywordToken; /** * A node that represents the undefined keyword. - * * @category Node Types */ type UndefinedKeyword = ts.KeywordToken; /** * A node that represents the unknown keyword. - * * @category Node Types */ type UnknownKeyword = ts.KeywordToken; /** * A node that represents the void keyword. - * * @category Node Types */ type VoidKeyword = ts.KeywordToken; /** * Test if a node is an `AbstractKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -471,13 +439,11 @@ type VoidKeyword = ts.KeywordToken; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AbstractKeyword`. */ declare function isAbstractKeyword(node: ts.Node): node is ts.AbstractKeyword; /** * Test if a node is an `AccessorKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -487,13 +453,11 @@ declare function isAbstractKeyword(node: ts.Node): node is ts.AbstractKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AccessorKeyword`. */ declare function isAccessorKeyword(node: ts.Node): node is ts.AccessorKeyword; /** * Test if a node is an {@link AnyKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -503,13 +467,11 @@ declare function isAccessorKeyword(node: ts.Node): node is ts.AccessorKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an {@link AnyKeyword}. */ declare function isAnyKeyword(node: ts.Node): node is AnyKeyword; /** * Test if a node is an `AssertKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -519,13 +481,11 @@ declare function isAnyKeyword(node: ts.Node): node is AnyKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AssertKeyword`. */ declare function isAssertKeyword(node: ts.Node): node is ts.AssertKeyword; /** * Test if a node is an `AssertsKeyword`. - * * @deprecated With TypeScript v5, in favor of typescript's `isAssertsKeyword`. * @category Nodes - Type Guards * @example @@ -536,13 +496,11 @@ declare function isAssertKeyword(node: ts.Node): node is ts.AssertKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AssertsKeyword`. */ declare function isAssertsKeyword(node: ts.Node): node is ts.AssertsKeyword; /** * Test if a node is an `AsyncKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -552,13 +510,11 @@ declare function isAssertsKeyword(node: ts.Node): node is ts.AssertsKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AsyncKeyword`. */ declare function isAsyncKeyword(node: ts.Node): node is ts.AsyncKeyword; /** * Test if a node is an `AwaitKeyword`. - * * @deprecated With TypeScript v5, in favor of typescript's `isAwaitKeyword`. * @category Nodes - Type Guards * @example @@ -569,13 +525,11 @@ declare function isAsyncKeyword(node: ts.Node): node is ts.AsyncKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AwaitKeyword`. */ declare function isAwaitKeyword(node: ts.Node): node is ts.AwaitKeyword; /** * Test if a node is a {@link BigIntKeyword}. - * * @deprecated With TypeScript v5, in favor of typescript's `isBigIntKeyword`. * @category Nodes - Type Guards * @example @@ -586,13 +540,11 @@ declare function isAwaitKeyword(node: ts.Node): node is ts.AwaitKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link BigIntKeyword}. */ declare function isBigIntKeyword(node: ts.Node): node is BigIntKeyword; /** * Test if a node is a {@link BooleanKeyword}. - * * @deprecated With TypeScript v5, in favor of typescript's `isBooleanKeyword`. * @category Nodes - Type Guards * @example @@ -603,13 +555,11 @@ declare function isBigIntKeyword(node: ts.Node): node is BigIntKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link BooleanKeyword}. */ declare function isBooleanKeyword(node: ts.Node): node is BooleanKeyword; /** * Test if a node is a `ColonToken`. - * * @deprecated With TypeScript v5, in favor of typescript's `isColonToken`. * @category Nodes - Type Guards * @example @@ -620,13 +570,11 @@ declare function isBooleanKeyword(node: ts.Node): node is BooleanKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ColonToken`. */ declare function isColonToken(node: ts.Node): node is ts.ColonToken; /** * Test if a node is a `ConstKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -636,13 +584,11 @@ declare function isColonToken(node: ts.Node): node is ts.ColonToken; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ConstKeyword`. */ declare function isConstKeyword(node: ts.Node): node is ts.ConstKeyword; /** * Test if a node is a `DeclareKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -652,13 +598,11 @@ declare function isConstKeyword(node: ts.Node): node is ts.ConstKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `DeclareKeyword`. */ declare function isDeclareKeyword(node: ts.Node): node is ts.DeclareKeyword; /** * Test if a node is a `DefaultKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -668,13 +612,11 @@ declare function isDeclareKeyword(node: ts.Node): node is ts.DeclareKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `DefaultKeyword`. */ declare function isDefaultKeyword(node: ts.Node): node is ts.DefaultKeyword; /** * Test if a node is a `DotToken`. - * * @category Nodes - Type Guards * @example * ```ts @@ -684,13 +626,11 @@ declare function isDefaultKeyword(node: ts.Node): node is ts.DefaultKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `DotToken`. */ declare function isDotToken(node: ts.Node): node is ts.DotToken; /** * Test if a node is an `EndOfFileToken`. - * * @category Nodes - Type Guards * @example * ```ts @@ -700,13 +640,11 @@ declare function isDotToken(node: ts.Node): node is ts.DotToken; * // ... * } * ``` - * * @returns Whether the given node appears to be an `EndOfFileToken`. */ declare function isEndOfFileToken(node: ts.Node): node is ts.EndOfFileToken; /** * Test if a node is an `EqualsGreaterThanToken`. - * * @deprecated With TypeScript v5, in favor of typescript's `isEqualsGreaterThanToken`. * @category Nodes - Type Guards * @example @@ -717,13 +655,11 @@ declare function isEndOfFileToken(node: ts.Node): node is ts.EndOfFileToken; * // ... * } * ``` - * * @returns Whether the given node appears to be an `EqualsGreaterThanToken`. */ declare function isEqualsGreaterThanToken(node: ts.Node): node is ts.EqualsGreaterThanToken; /** * Test if a node is an `EqualsToken`. - * * @category Nodes - Type Guards * @example * ```ts @@ -733,13 +669,11 @@ declare function isEqualsGreaterThanToken(node: ts.Node): node is ts.EqualsGreat * // ... * } * ``` - * * @returns Whether the given node appears to be an `EqualsToken`. */ declare function isEqualsToken(node: ts.Node): node is ts.EqualsToken; /** * Test if a node is an `ExclamationToken`. - * * @deprecated With TypeScript v5, in favor of typescript's `isExclamationToken`. * @category Nodes - Type Guards * @example @@ -750,13 +684,11 @@ declare function isEqualsToken(node: ts.Node): node is ts.EqualsToken; * // ... * } * ``` - * * @returns Whether the given node appears to be an `ExclamationToken`. */ declare function isExclamationToken(node: ts.Node): node is ts.ExclamationToken; /** * Test if a node is an `ExportKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -766,13 +698,11 @@ declare function isExclamationToken(node: ts.Node): node is ts.ExclamationToken; * // ... * } * ``` - * * @returns Whether the given node appears to be an `ExportKeyword`. */ declare function isExportKeyword(node: ts.Node): node is ts.ExportKeyword; /** * Test if a node is a {@link FalseKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -782,13 +712,11 @@ declare function isExportKeyword(node: ts.Node): node is ts.ExportKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link FalseKeyword}. */ declare function isFalseKeyword(node: ts.Node): node is FalseKeyword; /** * Test if a node is a `FalseLiteral`. - * * @category Nodes - Type Guards * @example * ```ts @@ -798,13 +726,11 @@ declare function isFalseKeyword(node: ts.Node): node is FalseKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `FalseLiteral`. */ declare function isFalseLiteral(node: ts.Node): node is ts.FalseLiteral; /** * Test if a node is an `ImportExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -814,13 +740,11 @@ declare function isFalseLiteral(node: ts.Node): node is ts.FalseLiteral; * // ... * } * ``` - * * @returns Whether the given node appears to be an `ImportExpression`. */ declare function isImportExpression(node: ts.Node): node is ts.ImportExpression; /** * Test if a node is an {@link ImportKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -830,13 +754,11 @@ declare function isImportExpression(node: ts.Node): node is ts.ImportExpression; * // ... * } * ``` - * * @returns Whether the given node appears to be an {@link ImportKeyword}. */ declare function isImportKeyword(node: ts.Node): node is ImportKeyword; /** * Test if a node is an `InKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -846,13 +768,11 @@ declare function isImportKeyword(node: ts.Node): node is ImportKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `InKeyword`. */ declare function isInKeyword(node: ts.Node): node is ts.InKeyword; /** * Test if a node is an `InputFiles`. - * * @deprecated With TypeScript v5 * @category Nodes - Type Guards * @example @@ -863,13 +783,11 @@ declare function isInKeyword(node: ts.Node): node is ts.InKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `InputFiles`. */ declare function isInputFiles(node: ts.Node): node is ts.InputFiles; /** * Test if a node is a `JSDocText`. - * * @category Nodes - Type Guards * @example * ```ts @@ -879,13 +797,11 @@ declare function isInputFiles(node: ts.Node): node is ts.InputFiles; * // ... * } * ``` - * * @returns Whether the given node appears to be a `JSDocText`. */ declare function isJSDocText(node: ts.Node): node is ts.JSDocText; /** * Test if a node is a `JsonMinusNumericLiteral`. - * * @category Nodes - Type Guards * @example * ```ts @@ -895,13 +811,11 @@ declare function isJSDocText(node: ts.Node): node is ts.JSDocText; * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsonMinusNumericLiteral`. */ declare function isJsonMinusNumericLiteral(node: ts.Node): node is ts.JsonMinusNumericLiteral; /** * Test if a node is a {@link NeverKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -911,13 +825,11 @@ declare function isJsonMinusNumericLiteral(node: ts.Node): node is ts.JsonMinusN * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link NeverKeyword}. */ declare function isNeverKeyword(node: ts.Node): node is NeverKeyword; /** * Test if a node is a {@link NullKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -927,13 +839,11 @@ declare function isNeverKeyword(node: ts.Node): node is NeverKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link NullKeyword}. */ declare function isNullKeyword(node: ts.Node): node is NullKeyword; /** * Test if a node is a `NullLiteral`. - * * @category Nodes - Type Guards * @example * ```ts @@ -943,13 +853,11 @@ declare function isNullKeyword(node: ts.Node): node is NullKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `NullLiteral`. */ declare function isNullLiteral(node: ts.Node): node is ts.NullLiteral; /** * Test if a node is a {@link NumberKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -959,13 +867,11 @@ declare function isNullLiteral(node: ts.Node): node is ts.NullLiteral; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link NumberKeyword}. */ declare function isNumberKeyword(node: ts.Node): node is NumberKeyword; /** * Test if a node is an {@link ObjectKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -975,13 +881,11 @@ declare function isNumberKeyword(node: ts.Node): node is NumberKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an {@link ObjectKeyword}. */ declare function isObjectKeyword(node: ts.Node): node is ObjectKeyword; /** * Test if a node is an `OutKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -991,13 +895,11 @@ declare function isObjectKeyword(node: ts.Node): node is ObjectKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `OutKeyword`. */ declare function isOutKeyword(node: ts.Node): node is ts.OutKeyword; /** * Test if a node is an `OverrideKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1007,13 +909,11 @@ declare function isOutKeyword(node: ts.Node): node is ts.OutKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `OverrideKeyword`. */ declare function isOverrideKeyword(node: ts.Node): node is ts.OverrideKeyword; /** * Test if a node is a `PrivateKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1023,13 +923,11 @@ declare function isOverrideKeyword(node: ts.Node): node is ts.OverrideKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `PrivateKeyword`. */ declare function isPrivateKeyword(node: ts.Node): node is ts.PrivateKeyword; /** * Test if a node is a `ProtectedKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1039,13 +937,11 @@ declare function isPrivateKeyword(node: ts.Node): node is ts.PrivateKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ProtectedKeyword`. */ declare function isProtectedKeyword(node: ts.Node): node is ts.ProtectedKeyword; /** * Test if a node is a `PublicKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1055,13 +951,11 @@ declare function isProtectedKeyword(node: ts.Node): node is ts.ProtectedKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `PublicKeyword`. */ declare function isPublicKeyword(node: ts.Node): node is ts.PublicKeyword; /** * Test if a node is a `QuestionDotToken`. - * * @deprecated With TypeScript v5, in favor of typescript's `isQuestionDotToken`. * @category Nodes - Type Guards * @example @@ -1072,13 +966,11 @@ declare function isPublicKeyword(node: ts.Node): node is ts.PublicKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `QuestionDotToken`. */ declare function isQuestionDotToken(node: ts.Node): node is ts.QuestionDotToken; /** * Test if a node is a `QuestionToken`. - * * @deprecated With TypeScript v5, in favor of typescript's `isQuestionToken`. * @category Nodes - Type Guards * @example @@ -1089,13 +981,11 @@ declare function isQuestionDotToken(node: ts.Node): node is ts.QuestionDotToken; * // ... * } * ``` - * * @returns Whether the given node appears to be a `QuestionToken`. */ declare function isQuestionToken(node: ts.Node): node is ts.QuestionToken; /** * Test if a node is a `ReadonlyKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1105,13 +995,11 @@ declare function isQuestionToken(node: ts.Node): node is ts.QuestionToken; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ReadonlyKeyword`. */ declare function isReadonlyKeyword(node: ts.Node): node is ts.ReadonlyKeyword; /** * Test if a node is a `StaticKeyword`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1121,13 +1009,11 @@ declare function isReadonlyKeyword(node: ts.Node): node is ts.ReadonlyKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `StaticKeyword`. */ declare function isStaticKeyword(node: ts.Node): node is ts.StaticKeyword; /** * Test if a node is a {@link StringKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1137,13 +1023,11 @@ declare function isStaticKeyword(node: ts.Node): node is ts.StaticKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link StringKeyword}. */ declare function isStringKeyword(node: ts.Node): node is StringKeyword; /** * Test if a node is a `SuperExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1153,13 +1037,11 @@ declare function isStringKeyword(node: ts.Node): node is StringKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `SuperExpression`. */ declare function isSuperExpression(node: ts.Node): node is ts.SuperExpression; /** * Test if a node is a {@link SuperKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1169,13 +1051,11 @@ declare function isSuperExpression(node: ts.Node): node is ts.SuperExpression; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link SuperKeyword}. */ declare function isSuperKeyword(node: ts.Node): node is SuperKeyword; /** * Test if a node is a {@link SymbolKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1185,13 +1065,11 @@ declare function isSuperKeyword(node: ts.Node): node is SuperKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link SymbolKeyword}. */ declare function isSymbolKeyword(node: ts.Node): node is SymbolKeyword; /** * Test if a node is a `SyntaxList`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1201,13 +1079,11 @@ declare function isSymbolKeyword(node: ts.Node): node is SymbolKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `SyntaxList`. */ declare function isSyntaxList(node: ts.Node): node is ts.SyntaxList; /** * Test if a node is a `ThisExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1217,13 +1093,11 @@ declare function isSyntaxList(node: ts.Node): node is ts.SyntaxList; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ThisExpression`. */ declare function isThisExpression(node: ts.Node): node is ts.ThisExpression; /** * Test if a node is a {@link ThisKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1233,13 +1107,11 @@ declare function isThisExpression(node: ts.Node): node is ts.ThisExpression; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link ThisKeyword}. */ declare function isThisKeyword(node: ts.Node): node is ThisKeyword; /** * Test if a node is a {@link TrueKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1249,13 +1121,11 @@ declare function isThisKeyword(node: ts.Node): node is ThisKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link TrueKeyword}. */ declare function isTrueKeyword(node: ts.Node): node is TrueKeyword; /** * Test if a node is a `TrueLiteral`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1265,13 +1135,11 @@ declare function isTrueKeyword(node: ts.Node): node is TrueKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be a `TrueLiteral`. */ declare function isTrueLiteral(node: ts.Node): node is ts.TrueLiteral; /** * Test if a node is an {@link UndefinedKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1281,13 +1149,11 @@ declare function isTrueLiteral(node: ts.Node): node is ts.TrueLiteral; * // ... * } * ``` - * * @returns Whether the given node appears to be an {@link UndefinedKeyword}. */ declare function isUndefinedKeyword(node: ts.Node): node is UndefinedKeyword; /** * Test if a node is an {@link UnknownKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1297,13 +1163,11 @@ declare function isUndefinedKeyword(node: ts.Node): node is UndefinedKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an {@link UnknownKeyword}. */ declare function isUnknownKeyword(node: ts.Node): node is UnknownKeyword; /** * Test if a node is an `UnparsedPrologue`. - * * @deprecated With TypeScript v5 * @category Nodes - Type Guards * @example @@ -1314,13 +1178,11 @@ declare function isUnknownKeyword(node: ts.Node): node is UnknownKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `UnparsedPrologue`. */ declare function isUnparsedPrologue(node: ts.Node): node is ts.UnparsedPrologue; /** * Test if a node is an `UnparsedSyntheticReference`. - * * @deprecated With TypeScript v5 * @category Nodes - Type Guards * @example @@ -1331,13 +1193,11 @@ declare function isUnparsedPrologue(node: ts.Node): node is ts.UnparsedPrologue; * // ... * } * ``` - * * @returns Whether the given node appears to be an `UnparsedSyntheticReference`. */ declare function isUnparsedSyntheticReference(node: ts.Node): node is ts.UnparsedSyntheticReference; /** * Test if a node is a {@link VoidKeyword}. - * * @category Nodes - Type Guards * @example * ```ts @@ -1347,14 +1207,12 @@ declare function isUnparsedSyntheticReference(node: ts.Node): node is ts.Unparse * // ... * } * ``` - * * @returns Whether the given node appears to be a {@link VoidKeyword}. */ declare function isVoidKeyword(node: ts.Node): node is VoidKeyword; /** * Test if a node is an `AccessExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1364,13 +1222,11 @@ declare function isVoidKeyword(node: ts.Node): node is VoidKeyword; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AccessExpression`. */ declare function isAccessExpression(node: ts.Node): node is ts.AccessExpression; /** * Test if a node is an `AccessibilityModifier`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1380,13 +1236,11 @@ declare function isAccessExpression(node: ts.Node): node is ts.AccessExpression; * // ... * } * ``` - * * @returns Whether the given node appears to be an `AccessibilityModifier`. */ declare function isAccessibilityModifier(node: ts.Node): node is ts.AccessibilityModifier; /** * Test if a node is an `AccessorDeclaration`. - * * @deprecated With TypeScript v5, in favor of typescript's `isAccessor`. * @category Nodes - Type Guards * @example @@ -1397,13 +1251,11 @@ declare function isAccessibilityModifier(node: ts.Node): node is ts.Accessibilit * // ... * } * ``` - * * @returns Whether the given node appears to be an `AccessorDeclaration`. */ declare function isAccessorDeclaration(node: ts.Node): node is ts.AccessorDeclaration; /** * Test if a node is an `ArrayBindingElement`. - * * @deprecated With TypeScript v5, in favor of typescript's `isArrayBindingElement`. * @category Nodes - Type Guards * @example @@ -1414,13 +1266,11 @@ declare function isAccessorDeclaration(node: ts.Node): node is ts.AccessorDeclar * // ... * } * ``` - * * @returns Whether the given node appears to be an `ArrayBindingElement`. */ declare function isArrayBindingElement(node: ts.Node): node is ts.ArrayBindingElement; /** * Test if a node is an `ArrayBindingOrAssignmentPattern`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1430,13 +1280,11 @@ declare function isArrayBindingElement(node: ts.Node): node is ts.ArrayBindingEl * // ... * } * ``` - * * @returns Whether the given node appears to be an `ArrayBindingOrAssignmentPattern`. */ declare function isArrayBindingOrAssignmentPattern(node: ts.Node): node is ts.ArrayBindingOrAssignmentPattern; /** * Test if a node is an `AssignmentPattern`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1446,13 +1294,11 @@ declare function isArrayBindingOrAssignmentPattern(node: ts.Node): node is ts.Ar * // ... * } * ``` - * * @returns Whether the given node appears to be an `AssignmentPattern`. */ declare function isAssignmentPattern(node: ts.Node): node is ts.AssignmentPattern; /** * Test if a node is a `BindingOrAssignmentElementRestIndicator`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1462,13 +1308,11 @@ declare function isAssignmentPattern(node: ts.Node): node is ts.AssignmentPatter * // ... * } * ``` - * * @returns Whether the given node appears to be a `BindingOrAssignmentElementRestIndicator`. */ declare function isBindingOrAssignmentElementRestIndicator(node: ts.Node): node is ts.BindingOrAssignmentElementRestIndicator; /** * Test if a node is a `BindingOrAssignmentElementTarget`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1478,13 +1322,11 @@ declare function isBindingOrAssignmentElementRestIndicator(node: ts.Node): node * // ... * } * ``` - * * @returns Whether the given node appears to be a `BindingOrAssignmentElementTarget`. */ declare function isBindingOrAssignmentElementTarget(node: ts.Node): node is ts.BindingOrAssignmentElementTarget; /** * Test if a node is a `BindingOrAssignmentPattern`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1494,13 +1336,11 @@ declare function isBindingOrAssignmentElementTarget(node: ts.Node): node is ts.B * // ... * } * ``` - * * @returns Whether the given node appears to be a `BindingOrAssignmentPattern`. */ declare function isBindingOrAssignmentPattern(node: ts.Node): node is ts.BindingOrAssignmentPattern; /** * Test if a node is a `BindingPattern`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1510,13 +1350,11 @@ declare function isBindingOrAssignmentPattern(node: ts.Node): node is ts.Binding * // ... * } * ``` - * * @returns Whether the given node appears to be a `BindingPattern`. */ declare function isBindingPattern(node: ts.Node): node is ts.BindingPattern; /** * Test if a node is a `BlockLike`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1526,13 +1364,11 @@ declare function isBindingPattern(node: ts.Node): node is ts.BindingPattern; * // ... * } * ``` - * * @returns Whether the given node appears to be a `BlockLike`. */ declare function isBlockLike(node: ts.Node): node is ts.BlockLike; /** * Test if a node is a `BooleanLiteral`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1542,13 +1378,11 @@ declare function isBlockLike(node: ts.Node): node is ts.BlockLike; * // ... * } * ``` - * * @returns Whether the given node appears to be a `BooleanLiteral`. */ declare function isBooleanLiteral(node: ts.Node): node is ts.BooleanLiteral; /** * Test if a node is a `ClassLikeDeclaration`. - * * @deprecated With TypeScript v5, in favor of typescript's `isClassLike`. * @category Nodes - Type Guards * @example @@ -1559,13 +1393,11 @@ declare function isBooleanLiteral(node: ts.Node): node is ts.BooleanLiteral; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ClassLikeDeclaration`. */ declare function isClassLikeDeclaration(node: ts.Node): node is ts.ClassLikeDeclaration; /** * Test if a node is a `ClassMemberModifier`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1575,13 +1407,11 @@ declare function isClassLikeDeclaration(node: ts.Node): node is ts.ClassLikeDecl * // ... * } * ``` - * * @returns Whether the given node appears to be a `ClassMemberModifier`. */ declare function isClassMemberModifier(node: ts.Node): node is ts.ClassMemberModifier; /** * Test if a node is a `DeclarationName`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1591,13 +1421,11 @@ declare function isClassMemberModifier(node: ts.Node): node is ts.ClassMemberMod * // ... * } * ``` - * * @returns Whether the given node appears to be a `DeclarationName`. */ declare function isDeclarationName(node: ts.Node): node is ts.DeclarationName; /** * Test if a node is a `DeclarationWithTypeParameterChildren`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1607,13 +1435,11 @@ declare function isDeclarationName(node: ts.Node): node is ts.DeclarationName; * // ... * } * ``` - * * @returns Whether the given node appears to be a `DeclarationWithTypeParameterChildren`. */ declare function isDeclarationWithTypeParameterChildren(node: ts.Node): node is ts.DeclarationWithTypeParameterChildren; /** * Test if a node is a `DeclarationWithTypeParameters`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1623,13 +1449,11 @@ declare function isDeclarationWithTypeParameterChildren(node: ts.Node): node is * // ... * } * ``` - * * @returns Whether the given node appears to be a `DeclarationWithTypeParameters`. */ declare function isDeclarationWithTypeParameters(node: ts.Node): node is ts.DeclarationWithTypeParameters; /** * Test if a node is a `DestructuringPattern`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1639,13 +1463,11 @@ declare function isDeclarationWithTypeParameters(node: ts.Node): node is ts.Decl * // ... * } * ``` - * * @returns Whether the given node appears to be a `DestructuringPattern`. */ declare function isDestructuringPattern(node: ts.Node): node is ts.DestructuringPattern; /** * Test if a node is an `EntityNameExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1655,13 +1477,11 @@ declare function isDestructuringPattern(node: ts.Node): node is ts.Destructuring * // ... * } * ``` - * * @returns Whether the given node appears to be an `EntityNameExpression`. */ declare function isEntityNameExpression(node: ts.Node): node is ts.EntityNameExpression; /** * Test if a node is an `EntityNameOrEntityNameExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1671,13 +1491,11 @@ declare function isEntityNameExpression(node: ts.Node): node is ts.EntityNameExp * // ... * } * ``` - * * @returns Whether the given node appears to be an `EntityNameOrEntityNameExpression`. */ declare function isEntityNameOrEntityNameExpression(node: ts.Node): node is ts.EntityNameOrEntityNameExpression; /** * Test if a node is a `ForInOrOfStatement`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1687,13 +1505,11 @@ declare function isEntityNameOrEntityNameExpression(node: ts.Node): node is ts.E * // ... * } * ``` - * * @returns Whether the given node appears to be a `ForInOrOfStatement`. */ declare function isForInOrOfStatement(node: ts.Node): node is ts.ForInOrOfStatement; /** * Test if a node is a `FunctionLikeDeclaration`. - * * @deprecated With TypeScript v5, in favor of typescript's `isFunctionLike`. * @category Nodes - Type Guards * @example @@ -1704,13 +1520,11 @@ declare function isForInOrOfStatement(node: ts.Node): node is ts.ForInOrOfStatem * // ... * } * ``` - * * @returns Whether the given node appears to be a `FunctionLikeDeclaration`. */ declare function isFunctionLikeDeclaration(node: ts.Node): node is ts.FunctionLikeDeclaration; /** * Test if a node is a `HasDecorators`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1720,13 +1534,11 @@ declare function isFunctionLikeDeclaration(node: ts.Node): node is ts.FunctionLi * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasDecorators`. */ declare function hasDecorators(node: ts.Node): node is ts.HasDecorators; /** * Test if a node is a `HasExpressionInitializer`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1736,13 +1548,11 @@ declare function hasDecorators(node: ts.Node): node is ts.HasDecorators; * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasExpressionInitializer`. */ declare function hasExpressionInitializer(node: ts.Node): node is ts.HasExpressionInitializer; /** * Test if a node is a `HasInitializer`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1752,13 +1562,11 @@ declare function hasExpressionInitializer(node: ts.Node): node is ts.HasExpressi * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasInitializer`. */ declare function hasInitializer(node: ts.Node): node is ts.HasInitializer; /** * Test if a node is a `HasJSDoc`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1768,13 +1576,11 @@ declare function hasInitializer(node: ts.Node): node is ts.HasInitializer; * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasJSDoc`. */ declare function hasJSDoc(node: ts.Node): node is ts.HasJSDoc; /** * Test if a node is a `HasModifiers`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1784,13 +1590,11 @@ declare function hasJSDoc(node: ts.Node): node is ts.HasJSDoc; * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasModifiers`. */ declare function hasModifiers(node: ts.Node): node is ts.HasModifiers; /** * Test if a node is a `HasType`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1800,13 +1604,11 @@ declare function hasModifiers(node: ts.Node): node is ts.HasModifiers; * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasType`. */ declare function hasType(node: ts.Node): node is ts.HasType; /** * Test if a node is a `HasTypeArguments`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1816,13 +1618,11 @@ declare function hasType(node: ts.Node): node is ts.HasType; * // ... * } * ``` - * * @returns Whether the given node appears to be a `HasTypeArguments`. */ declare function hasTypeArguments(node: ts.Node): node is ts.HasTypeArguments; /** * Test if a node is a `JSDocComment`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1832,13 +1632,11 @@ declare function hasTypeArguments(node: ts.Node): node is ts.HasTypeArguments; * // ... * } * ``` - * * @returns Whether the given node appears to be a `JSDocComment`. */ declare function isJSDocComment(node: ts.Node): node is ts.JSDocComment; /** * Test if a node is a `JSDocNamespaceBody`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1848,13 +1646,11 @@ declare function isJSDocComment(node: ts.Node): node is ts.JSDocComment; * // ... * } * ``` - * * @returns Whether the given node appears to be a `JSDocNamespaceBody`. */ declare function isJSDocNamespaceBody(node: ts.Node): node is ts.JSDocNamespaceBody; /** * Test if a node is a `JSDocTypeReferencingNode`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1864,13 +1660,11 @@ declare function isJSDocNamespaceBody(node: ts.Node): node is ts.JSDocNamespaceB * // ... * } * ``` - * * @returns Whether the given node appears to be a `JSDocTypeReferencingNode`. */ declare function isJSDocTypeReferencingNode(node: ts.Node): node is ts.JSDocTypeReferencingNode; /** * Test if a node is a `JsonObjectExpression`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1880,13 +1674,11 @@ declare function isJSDocTypeReferencingNode(node: ts.Node): node is ts.JSDocType * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsonObjectExpression`. */ declare function isJsonObjectExpression(node: ts.Node): node is ts.JsonObjectExpression; /** * Test if a node is a `JsxAttributeLike`. - * * @deprecated With TypeScript v5, in favor of typescript's `isJsxAttributeLike`. * @category Nodes - Type Guards * @example @@ -1897,13 +1689,11 @@ declare function isJsonObjectExpression(node: ts.Node): node is ts.JsonObjectExp * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsxAttributeLike`. */ declare function isJsxAttributeLike(node: ts.Node): node is ts.JsxAttributeLike; /** * Test if a node is a `JsxAttributeValue`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1913,13 +1703,11 @@ declare function isJsxAttributeLike(node: ts.Node): node is ts.JsxAttributeLike; * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsxAttributeValue`. */ declare function isJsxAttributeValue(node: ts.Node): node is ts.JsxAttributeValue; /** * Test if a node is a `JsxChild`. - * * @deprecated With TypeScript v5, in favor of typescript's `isJsxChild`. * @category Nodes - Type Guards * @example @@ -1930,13 +1718,11 @@ declare function isJsxAttributeValue(node: ts.Node): node is ts.JsxAttributeValu * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsxChild`. */ declare function isJsxChild(node: ts.Node): node is ts.JsxChild; /** * Test if a node is a `JsxTagNameExpression`. - * * @deprecated With TypeScript v5, in favor of typescript's `isJsxTagNameExpression`. * @category Nodes - Type Guards * @example @@ -1947,13 +1733,11 @@ declare function isJsxChild(node: ts.Node): node is ts.JsxChild; * // ... * } * ``` - * * @returns Whether the given node appears to be a `JsxTagNameExpression`. */ declare function isJsxTagNameExpression(node: ts.Node): node is ts.JsxTagNameExpression; /** * Test if a node is a `LiteralToken`. - * * @category Nodes - Type Guards * @example * ```ts @@ -1963,13 +1747,11 @@ declare function isJsxTagNameExpression(node: ts.Node): node is ts.JsxTagNameExp * // ... * } * ``` - * * @returns Whether the given node appears to be a `LiteralToken`. */ declare function isLiteralToken(node: ts.Node): node is ts.LiteralToken; /** * Test if a node is a `ModuleBody`. - * * @deprecated With TypeScript v5, in favor of typescript's `isModuleBody`. * @category Nodes - Type Guards * @example @@ -1980,13 +1762,11 @@ declare function isLiteralToken(node: ts.Node): node is ts.LiteralToken; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ModuleBody`. */ declare function isModuleBody(node: ts.Node): node is ts.ModuleBody; /** * Test if a node is a `ModuleName`. - * * @deprecated With TypeScript v5, in favor of typescript's `isModuleName`. * @category Nodes - Type Guards * @example @@ -1997,13 +1777,11 @@ declare function isModuleBody(node: ts.Node): node is ts.ModuleBody; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ModuleName`. */ declare function isModuleName(node: ts.Node): node is ts.ModuleName; /** * Test if a node is a `ModuleReference`. - * * @deprecated With TypeScript v5, in favor of typescript's `isModuleReference`. * @category Nodes - Type Guards * @example @@ -2014,13 +1792,11 @@ declare function isModuleName(node: ts.Node): node is ts.ModuleName; * // ... * } * ``` - * * @returns Whether the given node appears to be a `ModuleReference`. */ declare function isModuleReference(node: ts.Node): node is ts.ModuleReference; /** * Test if a node is a `NamedImportBindings`. - * * @deprecated With TypeScript v5, in favor of typescript's `isNamedImportBindings`. * @category Nodes - Type Guards * @example @@ -2031,13 +1807,11 @@ declare function isModuleReference(node: ts.Node): node is ts.ModuleReference; * // ... * } * ``` - * * @returns Whether the given node appears to be a `NamedImportBindings`. */ declare function isNamedImportBindings(node: ts.Node): node is ts.NamedImportBindings; /** * Test if a node is a `NamedImportsOrExports`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2047,13 +1821,11 @@ declare function isNamedImportBindings(node: ts.Node): node is ts.NamedImportBin * // ... * } * ``` - * * @returns Whether the given node appears to be a `NamedImportsOrExports`. */ declare function isNamedImportsOrExports(node: ts.Node): node is ts.NamedImportsOrExports; /** * Test if a node is a `NamespaceBody`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2063,13 +1835,11 @@ declare function isNamedImportsOrExports(node: ts.Node): node is ts.NamedImports * // ... * } * ``` - * * @returns Whether the given node appears to be a `NamespaceBody`. */ declare function isNamespaceBody(node: ts.Node): node is ts.NamespaceBody; /** * Test if a node is an `ObjectBindingOrAssignmentElement`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2079,13 +1849,11 @@ declare function isNamespaceBody(node: ts.Node): node is ts.NamespaceBody; * // ... * } * ``` - * * @returns Whether the given node appears to be an `ObjectBindingOrAssignmentElement`. */ declare function isObjectBindingOrAssignmentElement(node: ts.Node): node is ts.ObjectBindingOrAssignmentElement; /** * Test if a node is an `ObjectBindingOrAssignmentPattern`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2095,13 +1863,11 @@ declare function isObjectBindingOrAssignmentElement(node: ts.Node): node is ts.O * // ... * } * ``` - * * @returns Whether the given node appears to be an `ObjectBindingOrAssignmentPattern`. */ declare function isObjectBindingOrAssignmentPattern(node: ts.Node): node is ts.ObjectBindingOrAssignmentPattern; /** * Test if a node is an `ObjectTypeDeclaration`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2111,13 +1877,11 @@ declare function isObjectBindingOrAssignmentPattern(node: ts.Node): node is ts.O * // ... * } * ``` - * * @returns Whether the given node appears to be an `ObjectTypeDeclaration`. */ declare function isObjectTypeDeclaration(node: ts.Node): node is ts.ObjectTypeDeclaration; /** * Test if a node is a `ParameterPropertyModifier`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2127,13 +1891,11 @@ declare function isObjectTypeDeclaration(node: ts.Node): node is ts.ObjectTypeDe * // ... * } * ``` - * * @returns Whether the given node appears to be a `ParameterPropertyModifier`. */ declare function isParameterPropertyModifier(node: ts.Node): node is ts.ParameterPropertyModifier; /** * Test if a node is a `PropertyNameLiteral`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2143,13 +1905,11 @@ declare function isParameterPropertyModifier(node: ts.Node): node is ts.Paramete * // ... * } * ``` - * * @returns Whether the given node appears to be a `PropertyNameLiteral`. */ declare function isPropertyNameLiteral(node: ts.Node): node is ts.PropertyNameLiteral; /** * Test if a node is a `PseudoLiteralToken`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2159,13 +1919,11 @@ declare function isPropertyNameLiteral(node: ts.Node): node is ts.PropertyNameLi * // ... * } * ``` - * * @returns Whether the given node appears to be a `PseudoLiteralToken`. */ declare function isPseudoLiteralToken(node: ts.Node): node is ts.PseudoLiteralToken; /** * Test if a node is a `SignatureDeclaration`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2175,13 +1933,11 @@ declare function isPseudoLiteralToken(node: ts.Node): node is ts.PseudoLiteralTo * // ... * } * ``` - * * @returns Whether the given node appears to be a `SignatureDeclaration`. */ declare function isSignatureDeclaration(node: ts.Node): node is ts.SignatureDeclaration; /** * Test if a node is a `SuperProperty`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2191,13 +1947,11 @@ declare function isSignatureDeclaration(node: ts.Node): node is ts.SignatureDecl * // ... * } * ``` - * * @returns Whether the given node appears to be a `SuperProperty`. */ declare function isSuperProperty(node: ts.Node): node is ts.SuperProperty; /** * Test if a node is a `TypeOnlyCompatibleAliasDeclaration`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2207,13 +1961,11 @@ declare function isSuperProperty(node: ts.Node): node is ts.SuperProperty; * // ... * } * ``` - * * @returns Whether the given node appears to be a `TypeOnlyCompatibleAliasDeclaration`. */ declare function isTypeOnlyCompatibleAliasDeclaration(node: ts.Node): node is ts.TypeOnlyCompatibleAliasDeclaration; /** * Test if a node is a `TypeReferenceType`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2223,13 +1975,11 @@ declare function isTypeOnlyCompatibleAliasDeclaration(node: ts.Node): node is ts * // ... * } * ``` - * * @returns Whether the given node appears to be a `TypeReferenceType`. */ declare function isTypeReferenceType(node: ts.Node): node is ts.TypeReferenceType; /** * Test if a node is an `UnionOrIntersectionTypeNode`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2239,13 +1989,11 @@ declare function isTypeReferenceType(node: ts.Node): node is ts.TypeReferenceTyp * // ... * } * ``` - * * @returns Whether the given node appears to be an `UnionOrIntersectionTypeNode`. */ declare function isUnionOrIntersectionTypeNode(node: ts.Node): node is ts.UnionOrIntersectionTypeNode; /** * Test if a node is an `UnparsedSourceText`. - * * @deprecated With TypeScript v5 * @category Nodes - Type Guards * @example @@ -2256,13 +2004,11 @@ declare function isUnionOrIntersectionTypeNode(node: ts.Node): node is ts.UnionO * // ... * } * ``` - * * @returns Whether the given node appears to be an `UnparsedSourceText`. */ declare function isUnparsedSourceText(node: ts.Node): node is ts.UnparsedSourceText; /** * Test if a node is a `VariableLikeDeclaration`. - * * @category Nodes - Type Guards * @example * ```ts @@ -2272,14 +2018,12 @@ declare function isUnparsedSourceText(node: ts.Node): node is ts.UnparsedSourceT * // ... * } * ``` - * * @returns Whether the given node appears to be a `VariableLikeDeclaration`. */ declare function isVariableLikeDeclaration(node: ts.Node): node is ts.VariableLikeDeclaration; /** * Is the node a scope boundary, specifically due to it being a function. - * * @category Scope Utilities * @example * ```ts @@ -2294,7 +2038,6 @@ declare function isFunctionScopeBoundary(node: ts.Node): boolean; /** * Test of the kind given is for assignment. - * * @category Syntax Utilities * @example * ```ts @@ -2306,7 +2049,6 @@ declare function isFunctionScopeBoundary(node: ts.Node): boolean; declare function isAssignmentKind(kind: ts.SyntaxKind): boolean; /** * Test if a string is numeric. - * * @category Syntax Utilities * @example * ```ts @@ -2317,7 +2059,6 @@ declare function isAssignmentKind(kind: ts.SyntaxKind): boolean; declare function isNumericPropertyName(name: string | ts.__String): boolean; /** * Determines whether the given text can be used to access a property with a `PropertyAccessExpression` while preserving the property's name. - * * @category Syntax Utilities * @example * ```ts @@ -2329,13 +2070,11 @@ declare function isValidPropertyAccess(text: string, languageVersion?: ts.Script /** * Callback type used for {@link forEachToken}. - * * @category Callbacks */ type ForEachTokenCallback = (token: ts.Node) => void; /** * Iterates over all tokens of `node` - * * @category Nodes - Other Utilities * @example * ```ts @@ -2345,7 +2084,6 @@ type ForEachTokenCallback = (token: ts.Node) => void; * console.log("Found token:", token.getText()); * }); * ``` - * * @param node - The node whose tokens should be visited * @param callback - Is called for every token contained in `node` */ @@ -2353,7 +2091,6 @@ declare function forEachToken(node: ts.Node, callback: ForEachTokenCallback, sou /** * Get the `CallSignatures` of the given type. - * * @category Types - Getters * @example * ```ts @@ -2365,7 +2102,6 @@ declare function forEachToken(node: ts.Node, callback: ForEachTokenCallback, sou declare function getCallSignaturesOfType(type: ts.Type): readonly ts.Signature[]; /** * Get the property with the given name on the given type (if it exists). - * * @category Types - Getters * @example * ```ts @@ -2378,7 +2114,6 @@ declare function getCallSignaturesOfType(type: ts.Type): readonly ts.Signature[] declare function getPropertyOfType(type: ts.Type, name: ts.__String): ts.Symbol | undefined; /** * Retrieves a type symbol corresponding to a well-known string name. - * * @category Types - Getters * @example * ```ts @@ -2392,7 +2127,6 @@ declare function getWellKnownSymbolPropertyOfType(type: ts.Type, wellKnownSymbol /** * A "any" intrinsic type. - * * @category Type Types */ interface IntrinsicAnyType extends IntrinsicType { @@ -2400,7 +2134,6 @@ interface IntrinsicAnyType extends IntrinsicType { } /** * Determines whether the given type is the "any" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2414,7 +2147,6 @@ interface IntrinsicAnyType extends IntrinsicType { declare function isIntrinsicAnyType(type: ts.Type): type is IntrinsicAnyType; /** * A "boolean" intrinsic type. - * * @category Type Types */ interface IntrinsicBooleanType extends IntrinsicType { @@ -2422,7 +2154,6 @@ interface IntrinsicBooleanType extends IntrinsicType { } /** * Determines whether the given type is the "boolean" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2436,7 +2167,6 @@ interface IntrinsicBooleanType extends IntrinsicType { declare function isIntrinsicBooleanType(type: ts.Type): type is IntrinsicBooleanType; /** * A "bigint" intrinsic type. - * * @category Type Types */ interface IntrinsicBigIntType extends IntrinsicType { @@ -2444,7 +2174,6 @@ interface IntrinsicBigIntType extends IntrinsicType { } /** * Determines whether the given type is the "bigint" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2461,7 +2190,6 @@ declare function isIntrinsicBigIntType(type: ts.Type): type is IntrinsicBigIntTy * * This refers to a type generated when TypeScript encounters an error while * trying to resolve the type. - * * @category Type Types */ interface IntrinsicErrorType extends IntrinsicType { @@ -2472,7 +2200,6 @@ interface IntrinsicErrorType extends IntrinsicType { * * The intrinsic error type occurs when TypeScript encounters an error while * trying to resolve the type. - * * @category Types - Type Guards * @example * ```ts @@ -2486,7 +2213,6 @@ interface IntrinsicErrorType extends IntrinsicType { declare function isIntrinsicErrorType(type: ts.Type): type is IntrinsicErrorType; /** * A "symbol" intrinsic type. - * * @category Type Types */ interface IntrinsicESSymbolType extends IntrinsicType { @@ -2494,7 +2220,6 @@ interface IntrinsicESSymbolType extends IntrinsicType { } /** * Determines whether the given type is the "symbol" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2508,7 +2233,6 @@ interface IntrinsicESSymbolType extends IntrinsicType { declare function isIntrinsicESSymbolType(type: ts.Type): type is IntrinsicESSymbolType; /** * An intrinsic type. - * * @category Type Types */ interface IntrinsicType extends ts.Type { @@ -2517,7 +2241,6 @@ interface IntrinsicType extends ts.Type { } /** * Test if a type is an {@link IntrinsicType}. - * * @category Types - Type Guards * @example * ```ts @@ -2531,7 +2254,6 @@ interface IntrinsicType extends ts.Type { declare function isIntrinsicType(type: ts.Type): type is IntrinsicType; /** * A "never" intrinsic type. - * * @category Type Types */ interface IntrinsicNeverType extends IntrinsicType { @@ -2539,7 +2261,6 @@ interface IntrinsicNeverType extends IntrinsicType { } /** * Determines whether the given type is the "never" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2554,7 +2275,6 @@ declare function isIntrinsicNeverType(type: ts.Type): type is IntrinsicNeverType /** * A non-primitive intrinsic type. * E.g. An "object" intrinsic type. - * * @category Type Types */ interface IntrinsicNonPrimitiveType extends IntrinsicType { @@ -2563,7 +2283,6 @@ interface IntrinsicNonPrimitiveType extends IntrinsicType { /** * Determines whether the given type is a non-primitive intrinsic type. * E.g. An "object" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2577,7 +2296,6 @@ interface IntrinsicNonPrimitiveType extends IntrinsicType { declare function isIntrinsicNonPrimitiveType(type: ts.Type): type is IntrinsicNonPrimitiveType; /** * A "null" intrinsic type. - * * @category Type Types */ interface IntrinsicNullType extends IntrinsicType { @@ -2585,7 +2303,6 @@ interface IntrinsicNullType extends IntrinsicType { } /** * Determines whether the given type is the "null" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2599,7 +2316,6 @@ interface IntrinsicNullType extends IntrinsicType { declare function isIntrinsicNullType(type: ts.Type): type is IntrinsicNullType; /** * A "number" intrinsic type. - * * @category Type Types */ interface IntrinsicNumberType extends IntrinsicType { @@ -2607,7 +2323,6 @@ interface IntrinsicNumberType extends IntrinsicType { } /** * Determines whether the given type is the "number" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2621,7 +2336,6 @@ interface IntrinsicNumberType extends IntrinsicType { declare function isIntrinsicNumberType(type: ts.Type): type is IntrinsicNumberType; /** * A "string" intrinsic type. - * * @category Type Types */ interface IntrinsicStringType extends IntrinsicType { @@ -2629,7 +2343,6 @@ interface IntrinsicStringType extends IntrinsicType { } /** * Determines whether the given type is the "string" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2643,7 +2356,6 @@ interface IntrinsicStringType extends IntrinsicType { declare function isIntrinsicStringType(type: ts.Type): type is IntrinsicStringType; /** * An "undefined" intrinsic type. - * * @category Type Types */ interface IntrinsicUndefinedType extends IntrinsicType { @@ -2651,7 +2363,6 @@ interface IntrinsicUndefinedType extends IntrinsicType { } /** * Determines whether the given type is the "undefined" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2665,7 +2376,6 @@ interface IntrinsicUndefinedType extends IntrinsicType { declare function isIntrinsicUndefinedType(type: ts.Type): type is IntrinsicUndefinedType; /** * An "unknown" intrinsic type. - * * @category Type Types */ interface IntrinsicUnknownType extends IntrinsicType { @@ -2673,7 +2383,6 @@ interface IntrinsicUnknownType extends IntrinsicType { } /** * Determines whether the given type is the "unknown" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2687,7 +2396,6 @@ interface IntrinsicUnknownType extends IntrinsicType { declare function isIntrinsicUnknownType(type: ts.Type): type is IntrinsicUnknownType; /** * A "void" intrinsic type. - * * @category Type Types */ interface IntrinsicVoidType extends IntrinsicType { @@ -2695,7 +2403,6 @@ interface IntrinsicVoidType extends IntrinsicType { } /** * Determines whether the given type is the "void" intrinsic type. - * * @category Types - Type Guards * @example * ```ts @@ -2710,14 +2417,12 @@ declare function isIntrinsicVoidType(type: ts.Type): type is IntrinsicVoidType; /** * A type that is both an {@link IntrinsicType} and a `FreshableType` - * * @category Type Types */ interface FreshableIntrinsicType extends ts.FreshableType, IntrinsicType { } /** * Test if a type is a `FreshableIntrinsicType`. - * * @category Types - Type Guards * @example * ```ts @@ -2730,7 +2435,6 @@ interface FreshableIntrinsicType extends ts.FreshableType, IntrinsicType { declare function isFreshableIntrinsicType(type: ts.Type): type is FreshableIntrinsicType; /** * Test if a type is a `TupleTypeReference`. - * * @category Types - Type Guards * @example * ```ts @@ -2745,16 +2449,14 @@ declare function isTupleTypeReference(type: ts.Type): type is ts.TupleTypeRefere /** * A boolean literal. * i.e. Either a "true" or "false" literal. - * * @category Type Types */ interface BooleanLiteralType extends UnknownLiteralType { - intrinsicName: "true" | "false"; + intrinsicName: "false" | "true"; value: boolean; } /** * Determines whether the given type is a boolean literal type. - * * @category Types - Type Guards * @example * ```ts @@ -2768,7 +2470,6 @@ interface BooleanLiteralType extends UnknownLiteralType { declare function isBooleanLiteralType(type: ts.Type): type is BooleanLiteralType; /** * Test if a type is a `BigIntLiteralType`. - * * @category Types - Type Guards * @example * ```ts @@ -2782,7 +2483,6 @@ declare function isBooleanLiteralType(type: ts.Type): type is BooleanLiteralType declare function isBigIntLiteralType(type: ts.Type): type is ts.BigIntLiteralType; /** * A "false" literal. - * * @category Type Types */ interface FalseLiteralType extends BooleanLiteralType { @@ -2791,7 +2491,6 @@ interface FalseLiteralType extends BooleanLiteralType { } /** * Determines whether the given type is a boolean literal type for "false". - * * @category Types - Type Guards * @example * ```ts @@ -2805,7 +2504,6 @@ interface FalseLiteralType extends BooleanLiteralType { declare function isFalseLiteralType(type: ts.Type): type is FalseLiteralType; /** * Test if a type is a `LiteralType`. - * * @category Types - Type Guards * @example * ```ts @@ -2819,7 +2517,6 @@ declare function isFalseLiteralType(type: ts.Type): type is FalseLiteralType; declare function isLiteralType(type: ts.Type): type is ts.LiteralType; /** * Test if a type is a `NumberLiteralType`. - * * @category Types - Type Guards * @example * ```ts @@ -2833,7 +2530,6 @@ declare function isLiteralType(type: ts.Type): type is ts.LiteralType; declare function isNumberLiteralType(type: ts.Type): type is ts.NumberLiteralType; /** * Test if a type is a `StringLiteralType`. - * * @category Types - Type Guards * @example * ```ts @@ -2847,7 +2543,6 @@ declare function isNumberLiteralType(type: ts.Type): type is ts.NumberLiteralTyp declare function isStringLiteralType(type: ts.Type): type is ts.StringLiteralType; /** * Test if a type is a `TemplateLiteralType`. - * * @category Types - Type Guards * @example * ```ts @@ -2861,7 +2556,6 @@ declare function isStringLiteralType(type: ts.Type): type is ts.StringLiteralTyp declare function isTemplateLiteralType(type: ts.Type): type is ts.TemplateLiteralType; /** * A "true" literal. - * * @category Type Types */ interface TrueLiteralType extends BooleanLiteralType { @@ -2870,7 +2564,6 @@ interface TrueLiteralType extends BooleanLiteralType { } /** * Determines whether the given type is a boolean literal type for "true". - * * @category Types - Type Guards * @example * ```ts @@ -2884,7 +2577,6 @@ interface TrueLiteralType extends BooleanLiteralType { declare function isTrueLiteralType(type: ts.Type): type is TrueLiteralType; /** * `LiteralType` from typescript except that it allows for it to work on arbitrary types. - * * @category Type Types */ interface UnknownLiteralType extends FreshableIntrinsicType { @@ -2892,7 +2584,6 @@ interface UnknownLiteralType extends FreshableIntrinsicType { } /** * Test if a type is a {@link UnknownLiteralType}. - * * @category Types - Type Guards * @example * ```ts @@ -2907,7 +2598,6 @@ declare function isUnknownLiteralType(type: ts.Type): type is UnknownLiteralType /** * Test if a type is a `EvolvingArrayType`. - * * @category Types - Type Guards * @example * ```ts @@ -2921,7 +2611,6 @@ declare function isUnknownLiteralType(type: ts.Type): type is UnknownLiteralType declare function isEvolvingArrayType(type: ts.Type): type is ts.EvolvingArrayType; /** * Test if a type is a `TupleType`. - * * @category Types - Type Guards * @example * ```ts @@ -2935,7 +2624,6 @@ declare function isEvolvingArrayType(type: ts.Type): type is ts.EvolvingArrayTyp declare function isTupleType(type: ts.Type): type is ts.TupleType; /** * Test if a type is a `TypeReference`. - * * @category Types - Type Guards * @example * ```ts @@ -2950,7 +2638,6 @@ declare function isTypeReference(type: ts.Type): type is ts.TypeReference; /** * Test if a type is a `ConditionalType`. - * * @category Types - Type Guards * @example * ```ts @@ -2964,7 +2651,6 @@ declare function isTypeReference(type: ts.Type): type is ts.TypeReference; declare function isConditionalType(type: ts.Type): type is ts.ConditionalType; /** * Test if a type is a `EnumType`. - * * @category Types - Type Guards * @example * ```ts @@ -2978,7 +2664,6 @@ declare function isConditionalType(type: ts.Type): type is ts.ConditionalType; declare function isEnumType(type: ts.Type): type is ts.EnumType; /** * Test if a type is a `FreshableType`. - * * @category Types - Type Guards * @example * ```ts @@ -2992,7 +2677,6 @@ declare function isEnumType(type: ts.Type): type is ts.EnumType; declare function isFreshableType(type: ts.Type): type is ts.FreshableType; /** * Test if a type is a `IndexType`. - * * @category Types - Type Guards * @example * ```ts @@ -3006,7 +2690,6 @@ declare function isFreshableType(type: ts.Type): type is ts.FreshableType; declare function isIndexType(type: ts.Type): type is ts.IndexType; /** * Test if a type is a `IndexedAccessType`. - * * @category Types - Type Guards * @example * ```ts @@ -3020,7 +2703,6 @@ declare function isIndexType(type: ts.Type): type is ts.IndexType; declare function isIndexedAccessType(type: ts.Type): type is ts.IndexedAccessType; /** * Test if a type is a `InstantiableType`. - * * @category Types - Type Guards * @example * ```ts @@ -3034,7 +2716,6 @@ declare function isIndexedAccessType(type: ts.Type): type is ts.IndexedAccessTyp declare function isInstantiableType(type: ts.Type): type is ts.InstantiableType; /** * Test if a type is a `IntersectionType`. - * * @category Types - Type Guards * @example * ```ts @@ -3048,7 +2729,6 @@ declare function isInstantiableType(type: ts.Type): type is ts.InstantiableType; declare function isIntersectionType(type: ts.Type): type is ts.IntersectionType; /** * Test if a type is a `ObjectType`. - * * @category Types - Type Guards * @example * ```ts @@ -3062,7 +2742,6 @@ declare function isIntersectionType(type: ts.Type): type is ts.IntersectionType; declare function isObjectType(type: ts.Type): type is ts.ObjectType; /** * Test if a type is a `StringMappingType`. - * * @category Types - Type Guards * @example * ```ts @@ -3076,7 +2755,6 @@ declare function isObjectType(type: ts.Type): type is ts.ObjectType; declare function isStringMappingType(type: ts.Type): type is ts.StringMappingType; /** * Test if a type is a `SubstitutionType`. - * * @category Types - Type Guards * @example * ```ts @@ -3090,7 +2768,6 @@ declare function isStringMappingType(type: ts.Type): type is ts.StringMappingTyp declare function isSubstitutionType(type: ts.Type): type is ts.SubstitutionType; /** * Test if a type is a `TypeParameter`. - * * @category Types - Type Guards * @example * ```ts @@ -3104,7 +2781,6 @@ declare function isSubstitutionType(type: ts.Type): type is ts.SubstitutionType; declare function isTypeParameter(type: ts.Type): type is ts.TypeParameter; /** * Test if a type is a `TypeVariable`. - * * @category Types - Type Guards * @example * ```ts @@ -3118,7 +2794,6 @@ declare function isTypeParameter(type: ts.Type): type is ts.TypeParameter; declare function isTypeVariable(type: ts.Type): type is ts.TypeVariable; /** * Test if a type is a `UnionType`. - * * @category Types - Type Guards * @example * ```ts @@ -3132,7 +2807,6 @@ declare function isTypeVariable(type: ts.Type): type is ts.TypeVariable; declare function isUnionType(type: ts.Type): type is ts.UnionType; /** * Test if a type is a `UnionOrIntersectionType`. - * * @category Types - Type Guards * @example * ```ts @@ -3146,7 +2820,6 @@ declare function isUnionType(type: ts.Type): type is ts.UnionType; declare function isUnionOrIntersectionType(type: ts.Type): type is ts.UnionOrIntersectionType; /** * Test if a type is a `UniqueESSymbolType`. - * * @category Types - Type Guards * @example * ```ts @@ -3161,7 +2834,6 @@ declare function isUniqueESSymbolType(type: ts.Type): type is ts.UniqueESSymbolT /** * Determines whether a type is definitely falsy. This function doesn't unwrap union types. - * * @category Types - Utilities * @example * ```ts @@ -3174,10 +2846,9 @@ declare function isUniqueESSymbolType(type: ts.Type): type is ts.UniqueESSymbolT */ declare function isFalsyType(type: ts.Type): boolean; /** - * Get the union type parts of the given type. - * - * If the given type is not a union type, an array contain only that type will be returned. + * Get the intersection type parts of the given type. * + * If the given type is not a intersection type, an array contain only that type will be returned. * @category Types - Utilities * @example * ```ts @@ -3190,8 +2861,24 @@ declare function isFalsyType(type: ts.Type): boolean; */ declare function intersectionTypeParts(type: ts.Type): ts.Type[]; /** - * Determines whether writing to a certain property of a given type is allowed. + * Get the intersection or union type parts of the given type. + * + * Note that this is a shallow collection: it only returns `type.types` or `[type]`. + * + * If the given type is not an intersection or union type, an array contain only that type will be returned. + * @category Types - Utilities + * @example + * ```ts + * declare const type: ts.Type; * + * for (const typePart of intersectionTypeParts(type)) { + * // ... + * } + * ``` + */ +declare function typeParts(type: ts.Type): ts.Type[]; +/** + * Determines whether writing to a certain property of a given type is allowed. * @category Types - Utilities * @example * ```ts @@ -3207,7 +2894,6 @@ declare function intersectionTypeParts(type: ts.Type): ts.Type[]; declare function isPropertyReadonlyInType(type: ts.Type, name: ts.__String, typeChecker: ts.TypeChecker): boolean; /** * Determines whether a type is thenable and thus can be used with `await`. - * * @category Types - Utilities * @example * ```ts @@ -3223,7 +2909,6 @@ declare function isPropertyReadonlyInType(type: ts.Type, name: ts.__String, type declare function isThenableType(typeChecker: ts.TypeChecker, node: ts.Node, type: ts.Type): boolean; /** * Determines whether a type is thenable and thus can be used with `await`. - * * @category Types - Utilities * @example * ```ts @@ -3234,7 +2919,6 @@ declare function isThenableType(typeChecker: ts.TypeChecker, node: ts.Node, type * // ... * } * ``` - * * @example * ```ts * declare const expression: ts.Expression; @@ -3249,7 +2933,6 @@ declare function isThenableType(typeChecker: ts.TypeChecker, node: ts.Node, type declare function isThenableType(typeChecker: ts.TypeChecker, node: ts.Expression, type?: ts.Type): boolean; /** * Test if the given symbol has a readonly declaration. - * * @category Symbols - Utilities * @example * ```ts @@ -3266,7 +2949,6 @@ declare function symbolHasReadonlyDeclaration(symbol: ts.Symbol, typeChecker: ts * Get the union type parts of the given type. * * If the given type is not a union type, an array contain only that type will be returned. - * * @category Types - Utilities * @example * ```ts @@ -3279,4 +2961,79 @@ declare function symbolHasReadonlyDeclaration(symbol: ts.Symbol, typeChecker: ts */ declare function unionTypeParts(type: ts.Type): ts.Type[]; -export { AnyKeyword, BigIntKeyword, BooleanCompilerOptions, BooleanKeyword, BooleanLiteralType, ConstAssertionExpression, ConstAssertionIdentifier, FalseKeyword, FalseLiteralType, ForEachCommentCallback, ForEachTokenCallback, FreshableIntrinsicType, ImportKeyword, IntrinsicAnyType, IntrinsicBigIntType, IntrinsicBooleanType, IntrinsicESSymbolType, IntrinsicErrorType, IntrinsicNeverType, IntrinsicNonPrimitiveType, IntrinsicNullType, IntrinsicNumberType, IntrinsicStringType, IntrinsicType, IntrinsicUndefinedType, IntrinsicUnknownType, IntrinsicVoidType, NamedDeclarationWithName, NeverKeyword, NullKeyword, NumberKeyword, NumericOrStringLikeLiteral, ObjectKeyword, StrictCompilerOption, StringKeyword, SuperKeyword, SymbolKeyword, ThisKeyword, TrueKeyword, TrueLiteralType, UndefinedKeyword, UnknownKeyword, UnknownLiteralType, VoidKeyword, forEachComment, forEachToken, getCallSignaturesOfType, getPropertyOfType, getWellKnownSymbolPropertyOfType, hasDecorators, hasExpressionInitializer, hasInitializer, hasJSDoc, hasModifiers, hasType, hasTypeArguments, includesModifier, intersectionTypeParts, isAbstractKeyword, isAccessExpression, isAccessibilityModifier, isAccessorDeclaration, isAccessorKeyword, isAnyKeyword, isArrayBindingElement, isArrayBindingOrAssignmentPattern, isAssertKeyword, isAssertsKeyword, isAssignmentKind, isAssignmentPattern, isAsyncKeyword, isAwaitKeyword, isBigIntKeyword, isBigIntLiteralType, isBindingOrAssignmentElementRestIndicator, isBindingOrAssignmentElementTarget, isBindingOrAssignmentPattern, isBindingPattern, isBlockLike, isBooleanKeyword, isBooleanLiteral, isBooleanLiteralType, isClassLikeDeclaration, isClassMemberModifier, isColonToken, isCompilerOptionEnabled, isConditionalType, isConstAssertionExpression, isConstKeyword, isDeclarationName, isDeclarationWithTypeParameterChildren, isDeclarationWithTypeParameters, isDeclareKeyword, isDefaultKeyword, isDestructuringPattern, isDotToken, isEndOfFileToken, isEntityNameExpression, isEntityNameOrEntityNameExpression, isEnumType, isEqualsGreaterThanToken, isEqualsToken, isEvolvingArrayType, isExclamationToken, isExportKeyword, isFalseKeyword, isFalseLiteral, isFalseLiteralType, isFalsyType, isForInOrOfStatement, isFreshableIntrinsicType, isFreshableType, isFunctionLikeDeclaration, isFunctionScopeBoundary, isImportExpression, isImportKeyword, isInKeyword, isIndexType, isIndexedAccessType, isInputFiles, isInstantiableType, isIntersectionType, isIntrinsicAnyType, isIntrinsicBigIntType, isIntrinsicBooleanType, isIntrinsicESSymbolType, isIntrinsicErrorType, isIntrinsicNeverType, isIntrinsicNonPrimitiveType, isIntrinsicNullType, isIntrinsicNumberType, isIntrinsicStringType, isIntrinsicType, isIntrinsicUndefinedType, isIntrinsicUnknownType, isIntrinsicVoidType, isIterationStatement, isJSDocComment, isJSDocNamespaceBody, isJSDocNamespaceDeclaration, isJSDocText, isJSDocTypeReferencingNode, isJsonMinusNumericLiteral, isJsonObjectExpression, isJsxAttributeLike, isJsxAttributeValue, isJsxChild, isJsxTagNameExpression, isJsxTagNamePropertyAccess, isLiteralToken, isLiteralType, isModifierFlagSet, isModuleBody, isModuleName, isModuleReference, isNamedDeclarationWithName, isNamedImportBindings, isNamedImportsOrExports, isNamespaceBody, isNamespaceDeclaration, isNeverKeyword, isNodeFlagSet, isNullKeyword, isNullLiteral, isNumberKeyword, isNumberLiteralType, isNumericOrStringLikeLiteral, isNumericPropertyName, isObjectBindingOrAssignmentElement, isObjectBindingOrAssignmentPattern, isObjectFlagSet, isObjectKeyword, isObjectType, isObjectTypeDeclaration, isOutKeyword, isOverrideKeyword, isParameterPropertyModifier, isPrivateKeyword, isPropertyAccessEntityNameExpression, isPropertyNameLiteral, isPropertyReadonlyInType, isProtectedKeyword, isPseudoLiteralToken, isPublicKeyword, isQuestionDotToken, isQuestionToken, isReadonlyKeyword, isSignatureDeclaration, isStaticKeyword, isStrictCompilerOptionEnabled, isStringKeyword, isStringLiteralType, isStringMappingType, isSubstitutionType, isSuperElementAccessExpression, isSuperExpression, isSuperKeyword, isSuperProperty, isSuperPropertyAccessExpression, isSymbolFlagSet, isSymbolKeyword, isSyntaxList, isTemplateLiteralType, isThenableType, isThisExpression, isThisKeyword, isTrueKeyword, isTrueLiteral, isTrueLiteralType, isTupleType, isTupleTypeReference, isTypeFlagSet, isTypeOnlyCompatibleAliasDeclaration, isTypeParameter, isTypeReference, isTypeReferenceType, isTypeVariable, isUndefinedKeyword, isUnionOrIntersectionType, isUnionOrIntersectionTypeNode, isUnionType, isUniqueESSymbolType, isUnknownKeyword, isUnknownLiteralType, isUnparsedPrologue, isUnparsedSourceText, isUnparsedSyntheticReference, isValidPropertyAccess, isVariableLikeDeclaration, isVoidKeyword, symbolHasReadonlyDeclaration, unionTypeParts }; +/** + * Which "domain"(s) (most commonly, type or value space) a declaration is within. + */ +declare enum DeclarationDomain { + Import = 8, + Namespace = 1, + Type = 2, + Value = 4, + Any = 7 +} + +/** + * Which "domain"(s) (most commonly, type or value space) a usage is within. + */ +declare enum UsageDomain { + Namespace = 1, + Type = 2, + TypeQuery = 8, + Value = 4, + ValueOrNamespace = 5, + Any = 7 +} + +/** + * How an item (type or value) was declared and/or referenced. + */ +interface UsageInfo { + /** + * Locations where the item was declared. + */ + declarations: ts.Identifier[]; + /** + * Which space(s) the item is within. + */ + domain: DeclarationDomain; + /** + * Whether the item was exported from its module or namespace scope. + */ + exported: boolean; + /** + * Whether the item's declaration was in the global scope. + */ + inGlobalScope: boolean; + /** + * Each reference to the item in the file. + */ + uses: Usage[]; +} +/** + * An instance of an item (type or value) being used. + */ +interface Usage { + /** + * Which space(s) the usage is within. + */ + domain: UsageDomain; + location: ts.Identifier; +} + +/** + * Creates a mapping of each declared type and value to its type information. + * @category Nodes - Other Utilities + * @example + * ```ts + * declare const sourceFile: ts.SourceFile; + * + * const usage = collectVariableUsage(sourceFile); + * + * for (const [identifier, information] of usage) { + * console.log(`${identifier.getText()} is used ${information.uses.length} time(s).`); + * } + * ``` + */ +declare function collectVariableUsage(sourceFile: ts.SourceFile): Map; + +export { AccessKind, type AnyKeyword, type BigIntKeyword, type BooleanCompilerOptions, type BooleanKeyword, type BooleanLiteralType, type ConstAssertionExpression, type ConstAssertionIdentifier, DeclarationDomain, type FalseKeyword, type FalseLiteralType, type ForEachCommentCallback, type ForEachTokenCallback, type FreshableIntrinsicType, type ImportKeyword, type IntrinsicAnyType, type IntrinsicBigIntType, type IntrinsicBooleanType, type IntrinsicESSymbolType, type IntrinsicErrorType, type IntrinsicNeverType, type IntrinsicNonPrimitiveType, type IntrinsicNullType, type IntrinsicNumberType, type IntrinsicStringType, type IntrinsicType, type IntrinsicUndefinedType, type IntrinsicUnknownType, type IntrinsicVoidType, type NamedDeclarationWithName, type NeverKeyword, type NullKeyword, type NumberKeyword, type NumericOrStringLikeLiteral, type ObjectKeyword, type StrictCompilerOption, type StringKeyword, type SuperKeyword, type SymbolKeyword, type ThisKeyword, type TrueKeyword, type TrueLiteralType, type UndefinedKeyword, type UnknownKeyword, type UnknownLiteralType, UsageDomain, type UsageInfo as VariableInfo, type Usage as VariableUse, type VoidKeyword, collectVariableUsage, forEachComment, forEachToken, getAccessKind, getCallSignaturesOfType, getPropertyOfType, getWellKnownSymbolPropertyOfType, hasDecorators, hasExpressionInitializer, hasInitializer, hasJSDoc, hasModifiers, hasType, hasTypeArguments, includesModifier, intersectionTypeParts, isAbstractKeyword, isAccessExpression, isAccessibilityModifier, isAccessorDeclaration, isAccessorKeyword, isAnyKeyword, isArrayBindingElement, isArrayBindingOrAssignmentPattern, isAssertKeyword, isAssertsKeyword, isAssignmentKind, isAssignmentPattern, isAsyncKeyword, isAwaitKeyword, isBigIntKeyword, isBigIntLiteralType, isBindingOrAssignmentElementRestIndicator, isBindingOrAssignmentElementTarget, isBindingOrAssignmentPattern, isBindingPattern, isBlockLike, isBooleanKeyword, isBooleanLiteral, isBooleanLiteralType, isClassLikeDeclaration, isClassMemberModifier, isColonToken, isCompilerOptionEnabled, isConditionalType, isConstAssertionExpression, isConstKeyword, isDeclarationName, isDeclarationWithTypeParameterChildren, isDeclarationWithTypeParameters, isDeclareKeyword, isDefaultKeyword, isDestructuringPattern, isDotToken, isEndOfFileToken, isEntityNameExpression, isEntityNameOrEntityNameExpression, isEnumType, isEqualsGreaterThanToken, isEqualsToken, isEvolvingArrayType, isExclamationToken, isExportKeyword, isFalseKeyword, isFalseLiteral, isFalseLiteralType, isFalsyType, isForInOrOfStatement, isFreshableIntrinsicType, isFreshableType, isFunctionLikeDeclaration, isFunctionScopeBoundary, isImportExpression, isImportKeyword, isInKeyword, isIndexType, isIndexedAccessType, isInputFiles, isInstantiableType, isIntersectionType, isIntrinsicAnyType, isIntrinsicBigIntType, isIntrinsicBooleanType, isIntrinsicESSymbolType, isIntrinsicErrorType, isIntrinsicNeverType, isIntrinsicNonPrimitiveType, isIntrinsicNullType, isIntrinsicNumberType, isIntrinsicStringType, isIntrinsicType, isIntrinsicUndefinedType, isIntrinsicUnknownType, isIntrinsicVoidType, isIterationStatement, isJSDocComment, isJSDocNamespaceBody, isJSDocNamespaceDeclaration, isJSDocText, isJSDocTypeReferencingNode, isJsonMinusNumericLiteral, isJsonObjectExpression, isJsxAttributeLike, isJsxAttributeValue, isJsxChild, isJsxTagNameExpression, isJsxTagNamePropertyAccess, isLiteralToken, isLiteralType, isModifierFlagSet, isModuleBody, isModuleName, isModuleReference, isNamedDeclarationWithName, isNamedImportBindings, isNamedImportsOrExports, isNamespaceBody, isNamespaceDeclaration, isNeverKeyword, isNodeFlagSet, isNullKeyword, isNullLiteral, isNumberKeyword, isNumberLiteralType, isNumericOrStringLikeLiteral, isNumericPropertyName, isObjectBindingOrAssignmentElement, isObjectBindingOrAssignmentPattern, isObjectFlagSet, isObjectKeyword, isObjectType, isObjectTypeDeclaration, isOutKeyword, isOverrideKeyword, isParameterPropertyModifier, isPrivateKeyword, isPropertyAccessEntityNameExpression, isPropertyNameLiteral, isPropertyReadonlyInType, isProtectedKeyword, isPseudoLiteralToken, isPublicKeyword, isQuestionDotToken, isQuestionToken, isReadonlyKeyword, isSignatureDeclaration, isStaticKeyword, isStrictCompilerOptionEnabled, isStringKeyword, isStringLiteralType, isStringMappingType, isSubstitutionType, isSuperElementAccessExpression, isSuperExpression, isSuperKeyword, isSuperProperty, isSuperPropertyAccessExpression, isSymbolFlagSet, isSymbolKeyword, isSyntaxList, isTemplateLiteralType, isThenableType, isThisExpression, isThisKeyword, isTrueKeyword, isTrueLiteral, isTrueLiteralType, isTupleType, isTupleTypeReference, isTypeFlagSet, isTypeOnlyCompatibleAliasDeclaration, isTypeParameter, isTypeReference, isTypeReferenceType, isTypeVariable, isUndefinedKeyword, isUnionOrIntersectionType, isUnionOrIntersectionTypeNode, isUnionType, isUniqueESSymbolType, isUnknownKeyword, isUnknownLiteralType, isUnparsedPrologue, isUnparsedSourceText, isUnparsedSyntheticReference, isValidPropertyAccess, isVariableLikeDeclaration, isVoidKeyword, symbolHasReadonlyDeclaration, typeParts, unionTypeParts }; diff --git a/node_modules/ts-api-utils/lib/index.js b/node_modules/ts-api-utils/lib/index.js index c624bb7dea..aa2e7591f5 100644 --- a/node_modules/ts-api-utils/lib/index.js +++ b/node_modules/ts-api-utils/lib/index.js @@ -1,3 +1,26 @@ +var __accessCheck = (obj, member, msg) => { + if (!member.has(obj)) + throw TypeError("Cannot " + msg); +}; +var __privateGet = (obj, member, getter) => { + __accessCheck(obj, member, "read from private field"); + return getter ? getter.call(obj) : member.get(obj); +}; +var __privateAdd = (obj, member, value) => { + if (member.has(obj)) + throw TypeError("Cannot add the same private member more than once"); + member instanceof WeakSet ? member.add(obj) : member.set(obj, value); +}; +var __privateSet = (obj, member, value, setter) => { + __accessCheck(obj, member, "write to private field"); + setter ? setter.call(obj, value) : member.set(obj, value); + return value; +}; +var __privateMethod = (obj, member, method) => { + __accessCheck(obj, member, "access private method"); + return method; +}; + // src/comments.ts import ts2 from "typescript"; @@ -17,11 +40,13 @@ function forEachToken(node, callback, sourceFile = node.getSourceFile()) { node = children[0]; continue; } - for (let i = children.length - 1; i >= 0; --i) + for (let i = children.length - 1; i >= 0; --i) { queue.push(children[i]); + } } - if (queue.length === 0) + if (queue.length === 0) { break; + } node = queue.pop(); } } @@ -56,26 +81,29 @@ function forEachComment(node, callback, sourceFile = node.getSourceFile()) { return forEachToken( node, (token) => { - if (token.pos === token.end) + if (token.pos === token.end) { return; - if (token.kind !== ts2.SyntaxKind.JsxText) + } + if (token.kind !== ts2.SyntaxKind.JsxText) { ts2.forEachLeadingCommentRange( fullText, // skip shebang at position 0 token.pos === 0 ? (ts2.getShebang(fullText) ?? "").length : token.pos, commentCallback ); - if (notJsx || canHaveTrailingTrivia(token)) + } + if (notJsx || canHaveTrailingTrivia(token)) { return ts2.forEachTrailingCommentRange( fullText, token.end, commentCallback ); + } }, sourceFile ); function commentCallback(pos, end, kind) { - callback(fullText, { pos, end, kind }); + callback(fullText, { end, kind, pos }); } } @@ -88,17 +116,11 @@ function isCompilerOptionEnabled(options, option) { case "emitDeclarationOnly": return options[option] === true && isCompilerOptionEnabled(options, "declaration"); case "declaration": - return ( - // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing - options.declaration || isCompilerOptionEnabled(options, "composite") - ); + return options.declaration || isCompilerOptionEnabled(options, "composite"); case "incremental": return options.incremental === void 0 ? isCompilerOptionEnabled(options, "composite") : options.incremental; case "skipDefaultLibCheck": - return ( - // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing - options.skipDefaultLibCheck || isCompilerOptionEnabled(options, "skipLibCheck") - ); + return options.skipDefaultLibCheck || isCompilerOptionEnabled(options, "skipLibCheck"); case "suppressImplicitAnyIndexErrors": return options.suppressImplicitAnyIndexErrors === true && isCompilerOptionEnabled(options, "noImplicitAny"); case "allowSyntheticDefaultImports": @@ -145,615 +167,750 @@ var isTypeFlagSet = isFlagSetOnObject; // src/modifiers.ts function includesModifier(modifiers, ...kinds) { - if (modifiers === void 0) + if (modifiers === void 0) { return false; - for (const modifier of modifiers) - if (kinds.includes(modifier.kind)) + } + for (const modifier of modifiers) { + if (kinds.includes(modifier.kind)) { return true; + } + } return false; } +// src/nodes/access.ts +import ts6 from "typescript"; + +// src/syntax.ts +import ts5 from "typescript"; +function isAssignmentKind(kind) { + return kind >= ts5.SyntaxKind.FirstAssignment && kind <= ts5.SyntaxKind.LastAssignment; +} +function isNumericPropertyName(name) { + return String(+name) === name; +} +function charSize(ch) { + return ch >= 65536 ? 2 : 1; +} +function isValidPropertyAccess(text, languageVersion = ts5.ScriptTarget.Latest) { + if (text.length === 0) { + return false; + } + let ch = text.codePointAt(0); + if (!ts5.isIdentifierStart(ch, languageVersion)) { + return false; + } + for (let i = charSize(ch); i < text.length; i += charSize(ch)) { + ch = text.codePointAt(i); + if (!ts5.isIdentifierPart(ch, languageVersion)) { + return false; + } + } + return true; +} + +// src/nodes/access.ts +var AccessKind = /* @__PURE__ */ ((AccessKind2) => { + AccessKind2[AccessKind2["None"] = 0] = "None"; + AccessKind2[AccessKind2["Read"] = 1] = "Read"; + AccessKind2[AccessKind2["Write"] = 2] = "Write"; + AccessKind2[AccessKind2["Delete"] = 4] = "Delete"; + AccessKind2[AccessKind2["ReadWrite"] = 3] = "ReadWrite"; + return AccessKind2; +})(AccessKind || {}); +function getAccessKind(node) { + const parent = node.parent; + switch (parent.kind) { + case ts6.SyntaxKind.DeleteExpression: + return 4 /* Delete */; + case ts6.SyntaxKind.PostfixUnaryExpression: + return 3 /* ReadWrite */; + case ts6.SyntaxKind.PrefixUnaryExpression: + return parent.operator === ts6.SyntaxKind.PlusPlusToken || parent.operator === ts6.SyntaxKind.MinusMinusToken ? 3 /* ReadWrite */ : 1 /* Read */; + case ts6.SyntaxKind.BinaryExpression: + return parent.right === node ? 1 /* Read */ : !isAssignmentKind(parent.operatorToken.kind) ? 1 /* Read */ : parent.operatorToken.kind === ts6.SyntaxKind.EqualsToken ? 2 /* Write */ : 3 /* ReadWrite */; + case ts6.SyntaxKind.ShorthandPropertyAssignment: + return parent.objectAssignmentInitializer === node ? 1 /* Read */ : isInDestructuringAssignment(parent) ? 2 /* Write */ : 1 /* Read */; + case ts6.SyntaxKind.PropertyAssignment: + return parent.name === node ? 0 /* None */ : isInDestructuringAssignment(parent) ? 2 /* Write */ : 1 /* Read */; + case ts6.SyntaxKind.ArrayLiteralExpression: + case ts6.SyntaxKind.SpreadElement: + case ts6.SyntaxKind.SpreadAssignment: + return isInDestructuringAssignment( + parent + ) ? 2 /* Write */ : 1 /* Read */; + case ts6.SyntaxKind.ParenthesizedExpression: + case ts6.SyntaxKind.NonNullExpression: + case ts6.SyntaxKind.TypeAssertionExpression: + case ts6.SyntaxKind.AsExpression: + return getAccessKind(parent); + case ts6.SyntaxKind.ForOfStatement: + case ts6.SyntaxKind.ForInStatement: + return parent.initializer === node ? 2 /* Write */ : 1 /* Read */; + case ts6.SyntaxKind.ExpressionWithTypeArguments: + return parent.parent.token === ts6.SyntaxKind.ExtendsKeyword && parent.parent.parent.kind !== ts6.SyntaxKind.InterfaceDeclaration ? 1 /* Read */ : 0 /* None */; + case ts6.SyntaxKind.ComputedPropertyName: + case ts6.SyntaxKind.ExpressionStatement: + case ts6.SyntaxKind.TypeOfExpression: + case ts6.SyntaxKind.ElementAccessExpression: + case ts6.SyntaxKind.ForStatement: + case ts6.SyntaxKind.IfStatement: + case ts6.SyntaxKind.DoStatement: + case ts6.SyntaxKind.WhileStatement: + case ts6.SyntaxKind.SwitchStatement: + case ts6.SyntaxKind.WithStatement: + case ts6.SyntaxKind.ThrowStatement: + case ts6.SyntaxKind.CallExpression: + case ts6.SyntaxKind.NewExpression: + case ts6.SyntaxKind.TaggedTemplateExpression: + case ts6.SyntaxKind.JsxExpression: + case ts6.SyntaxKind.Decorator: + case ts6.SyntaxKind.TemplateSpan: + case ts6.SyntaxKind.JsxOpeningElement: + case ts6.SyntaxKind.JsxSelfClosingElement: + case ts6.SyntaxKind.JsxSpreadAttribute: + case ts6.SyntaxKind.VoidExpression: + case ts6.SyntaxKind.ReturnStatement: + case ts6.SyntaxKind.AwaitExpression: + case ts6.SyntaxKind.YieldExpression: + case ts6.SyntaxKind.ConditionalExpression: + case ts6.SyntaxKind.CaseClause: + case ts6.SyntaxKind.JsxElement: + return 1 /* Read */; + case ts6.SyntaxKind.ArrowFunction: + return parent.body === node ? 1 /* Read */ : 2 /* Write */; + case ts6.SyntaxKind.PropertyDeclaration: + case ts6.SyntaxKind.VariableDeclaration: + case ts6.SyntaxKind.Parameter: + case ts6.SyntaxKind.EnumMember: + case ts6.SyntaxKind.BindingElement: + case ts6.SyntaxKind.JsxAttribute: + return parent.initializer === node ? 1 /* Read */ : 0 /* None */; + case ts6.SyntaxKind.PropertyAccessExpression: + return parent.expression === node ? 1 /* Read */ : 0 /* None */; + case ts6.SyntaxKind.ExportAssignment: + return parent.isExportEquals ? 1 /* Read */ : 0 /* None */; + } + return 0 /* None */; +} +function isInDestructuringAssignment(node) { + switch (node.kind) { + case ts6.SyntaxKind.ShorthandPropertyAssignment: + if (node.objectAssignmentInitializer !== void 0) { + return true; + } + case ts6.SyntaxKind.PropertyAssignment: + case ts6.SyntaxKind.SpreadAssignment: + node = node.parent; + break; + case ts6.SyntaxKind.SpreadElement: + if (node.parent.kind !== ts6.SyntaxKind.ArrayLiteralExpression) { + return false; + } + node = node.parent; + } + while (true) { + switch (node.parent.kind) { + case ts6.SyntaxKind.BinaryExpression: + return node.parent.left === node && node.parent.operatorToken.kind === ts6.SyntaxKind.EqualsToken; + case ts6.SyntaxKind.ForOfStatement: + return node.parent.initializer === node; + case ts6.SyntaxKind.ArrayLiteralExpression: + case ts6.SyntaxKind.ObjectLiteralExpression: + node = node.parent; + break; + case ts6.SyntaxKind.SpreadAssignment: + case ts6.SyntaxKind.PropertyAssignment: + node = node.parent.parent; + break; + case ts6.SyntaxKind.SpreadElement: + if (node.parent.parent.kind !== ts6.SyntaxKind.ArrayLiteralExpression) { + return false; + } + node = node.parent.parent; + break; + default: + return false; + } + } +} + // src/nodes/typeGuards/compound.ts -import ts8 from "typescript"; +import ts10 from "typescript"; // src/nodes/typeGuards/single.ts -import ts5 from "typescript"; +import ts7 from "typescript"; function isAbstractKeyword(node) { - return node.kind === ts5.SyntaxKind.AbstractKeyword; + return node.kind === ts7.SyntaxKind.AbstractKeyword; } function isAccessorKeyword(node) { - return node.kind === ts5.SyntaxKind.AccessorKeyword; + return node.kind === ts7.SyntaxKind.AccessorKeyword; } function isAnyKeyword(node) { - return node.kind === ts5.SyntaxKind.AnyKeyword; + return node.kind === ts7.SyntaxKind.AnyKeyword; } function isAssertKeyword(node) { - return node.kind === ts5.SyntaxKind.AssertKeyword; + return node.kind === ts7.SyntaxKind.AssertKeyword; } function isAssertsKeyword(node) { - return node.kind === ts5.SyntaxKind.AssertsKeyword; + return node.kind === ts7.SyntaxKind.AssertsKeyword; } function isAsyncKeyword(node) { - return node.kind === ts5.SyntaxKind.AsyncKeyword; + return node.kind === ts7.SyntaxKind.AsyncKeyword; } function isAwaitKeyword(node) { - return node.kind === ts5.SyntaxKind.AwaitKeyword; + return node.kind === ts7.SyntaxKind.AwaitKeyword; } function isBigIntKeyword(node) { - return node.kind === ts5.SyntaxKind.BigIntKeyword; + return node.kind === ts7.SyntaxKind.BigIntKeyword; } function isBooleanKeyword(node) { - return node.kind === ts5.SyntaxKind.BooleanKeyword; + return node.kind === ts7.SyntaxKind.BooleanKeyword; } function isColonToken(node) { - return node.kind === ts5.SyntaxKind.ColonToken; + return node.kind === ts7.SyntaxKind.ColonToken; } function isConstKeyword(node) { - return node.kind === ts5.SyntaxKind.ConstKeyword; + return node.kind === ts7.SyntaxKind.ConstKeyword; } function isDeclareKeyword(node) { - return node.kind === ts5.SyntaxKind.DeclareKeyword; + return node.kind === ts7.SyntaxKind.DeclareKeyword; } function isDefaultKeyword(node) { - return node.kind === ts5.SyntaxKind.DefaultKeyword; + return node.kind === ts7.SyntaxKind.DefaultKeyword; } function isDotToken(node) { - return node.kind === ts5.SyntaxKind.DotToken; + return node.kind === ts7.SyntaxKind.DotToken; } function isEndOfFileToken(node) { - return node.kind === ts5.SyntaxKind.EndOfFileToken; + return node.kind === ts7.SyntaxKind.EndOfFileToken; } function isEqualsGreaterThanToken(node) { - return node.kind === ts5.SyntaxKind.EqualsGreaterThanToken; + return node.kind === ts7.SyntaxKind.EqualsGreaterThanToken; } function isEqualsToken(node) { - return node.kind === ts5.SyntaxKind.EqualsToken; + return node.kind === ts7.SyntaxKind.EqualsToken; } function isExclamationToken(node) { - return node.kind === ts5.SyntaxKind.ExclamationToken; + return node.kind === ts7.SyntaxKind.ExclamationToken; } function isExportKeyword(node) { - return node.kind === ts5.SyntaxKind.ExportKeyword; + return node.kind === ts7.SyntaxKind.ExportKeyword; } function isFalseKeyword(node) { - return node.kind === ts5.SyntaxKind.FalseKeyword; + return node.kind === ts7.SyntaxKind.FalseKeyword; } function isFalseLiteral(node) { - return node.kind === ts5.SyntaxKind.FalseKeyword; + return node.kind === ts7.SyntaxKind.FalseKeyword; } function isImportExpression(node) { - return node.kind === ts5.SyntaxKind.ImportKeyword; + return node.kind === ts7.SyntaxKind.ImportKeyword; } function isImportKeyword(node) { - return node.kind === ts5.SyntaxKind.ImportKeyword; + return node.kind === ts7.SyntaxKind.ImportKeyword; } function isInKeyword(node) { - return node.kind === ts5.SyntaxKind.InKeyword; + return node.kind === ts7.SyntaxKind.InKeyword; } function isInputFiles(node) { - return node.kind === ts5.SyntaxKind.InputFiles; + return node.kind === ts7.SyntaxKind.InputFiles; } function isJSDocText(node) { - return node.kind === ts5.SyntaxKind.JSDocText; + return node.kind === ts7.SyntaxKind.JSDocText; } function isJsonMinusNumericLiteral(node) { - return node.kind === ts5.SyntaxKind.PrefixUnaryExpression; + return node.kind === ts7.SyntaxKind.PrefixUnaryExpression; } function isNeverKeyword(node) { - return node.kind === ts5.SyntaxKind.NeverKeyword; + return node.kind === ts7.SyntaxKind.NeverKeyword; } function isNullKeyword(node) { - return node.kind === ts5.SyntaxKind.NullKeyword; + return node.kind === ts7.SyntaxKind.NullKeyword; } function isNullLiteral(node) { - return node.kind === ts5.SyntaxKind.NullKeyword; + return node.kind === ts7.SyntaxKind.NullKeyword; } function isNumberKeyword(node) { - return node.kind === ts5.SyntaxKind.NumberKeyword; + return node.kind === ts7.SyntaxKind.NumberKeyword; } function isObjectKeyword(node) { - return node.kind === ts5.SyntaxKind.ObjectKeyword; + return node.kind === ts7.SyntaxKind.ObjectKeyword; } function isOutKeyword(node) { - return node.kind === ts5.SyntaxKind.OutKeyword; + return node.kind === ts7.SyntaxKind.OutKeyword; } function isOverrideKeyword(node) { - return node.kind === ts5.SyntaxKind.OverrideKeyword; + return node.kind === ts7.SyntaxKind.OverrideKeyword; } function isPrivateKeyword(node) { - return node.kind === ts5.SyntaxKind.PrivateKeyword; + return node.kind === ts7.SyntaxKind.PrivateKeyword; } function isProtectedKeyword(node) { - return node.kind === ts5.SyntaxKind.ProtectedKeyword; + return node.kind === ts7.SyntaxKind.ProtectedKeyword; } function isPublicKeyword(node) { - return node.kind === ts5.SyntaxKind.PublicKeyword; + return node.kind === ts7.SyntaxKind.PublicKeyword; } function isQuestionDotToken(node) { - return node.kind === ts5.SyntaxKind.QuestionDotToken; + return node.kind === ts7.SyntaxKind.QuestionDotToken; } function isQuestionToken(node) { - return node.kind === ts5.SyntaxKind.QuestionToken; + return node.kind === ts7.SyntaxKind.QuestionToken; } function isReadonlyKeyword(node) { - return node.kind === ts5.SyntaxKind.ReadonlyKeyword; + return node.kind === ts7.SyntaxKind.ReadonlyKeyword; } function isStaticKeyword(node) { - return node.kind === ts5.SyntaxKind.StaticKeyword; + return node.kind === ts7.SyntaxKind.StaticKeyword; } function isStringKeyword(node) { - return node.kind === ts5.SyntaxKind.StringKeyword; + return node.kind === ts7.SyntaxKind.StringKeyword; } function isSuperExpression(node) { - return node.kind === ts5.SyntaxKind.SuperKeyword; + return node.kind === ts7.SyntaxKind.SuperKeyword; } function isSuperKeyword(node) { - return node.kind === ts5.SyntaxKind.SuperKeyword; + return node.kind === ts7.SyntaxKind.SuperKeyword; } function isSymbolKeyword(node) { - return node.kind === ts5.SyntaxKind.SymbolKeyword; + return node.kind === ts7.SyntaxKind.SymbolKeyword; } function isSyntaxList(node) { - return node.kind === ts5.SyntaxKind.SyntaxList; + return node.kind === ts7.SyntaxKind.SyntaxList; } function isThisExpression(node) { - return node.kind === ts5.SyntaxKind.ThisKeyword; + return node.kind === ts7.SyntaxKind.ThisKeyword; } function isThisKeyword(node) { - return node.kind === ts5.SyntaxKind.ThisKeyword; + return node.kind === ts7.SyntaxKind.ThisKeyword; } function isTrueKeyword(node) { - return node.kind === ts5.SyntaxKind.TrueKeyword; + return node.kind === ts7.SyntaxKind.TrueKeyword; } function isTrueLiteral(node) { - return node.kind === ts5.SyntaxKind.TrueKeyword; + return node.kind === ts7.SyntaxKind.TrueKeyword; } function isUndefinedKeyword(node) { - return node.kind === ts5.SyntaxKind.UndefinedKeyword; + return node.kind === ts7.SyntaxKind.UndefinedKeyword; } function isUnknownKeyword(node) { - return node.kind === ts5.SyntaxKind.UnknownKeyword; + return node.kind === ts7.SyntaxKind.UnknownKeyword; } function isUnparsedPrologue(node) { - return node.kind === ts5.SyntaxKind.UnparsedPrologue; + return node.kind === ts7.SyntaxKind.UnparsedPrologue; } function isUnparsedSyntheticReference(node) { - return node.kind === ts5.SyntaxKind.UnparsedSyntheticReference; + return node.kind === ts7.SyntaxKind.UnparsedSyntheticReference; } function isVoidKeyword(node) { - return node.kind === ts5.SyntaxKind.VoidKeyword; + return node.kind === ts7.SyntaxKind.VoidKeyword; } // src/nodes/typeGuards/union.ts -import ts7 from "typescript"; +import ts9 from "typescript"; // src/utils.ts -import ts6 from "typescript"; -var [tsMajor, tsMinor] = ts6.versionMajorMinor.split(".").map((raw) => Number.parseInt(raw, 10)); +import ts8 from "typescript"; +var [tsMajor, tsMinor] = ts8.versionMajorMinor.split(".").map((raw) => Number.parseInt(raw, 10)); function isTsVersionAtLeast(major, minor = 0) { return tsMajor > major || tsMajor === major && tsMinor >= minor; } // src/nodes/typeGuards/union.ts function isAccessExpression(node) { - return ts7.isPropertyAccessExpression(node) || ts7.isElementAccessExpression(node); + return ts9.isPropertyAccessExpression(node) || ts9.isElementAccessExpression(node); } function isAccessibilityModifier(node) { return isPublicKeyword(node) || isPrivateKeyword(node) || isProtectedKeyword(node); } function isAccessorDeclaration(node) { - return ts7.isGetAccessorDeclaration(node) || ts7.isSetAccessorDeclaration(node); + return ts9.isGetAccessorDeclaration(node) || ts9.isSetAccessorDeclaration(node); } function isArrayBindingElement(node) { - return ts7.isBindingElement(node) || ts7.isOmittedExpression(node); + return ts9.isBindingElement(node) || ts9.isOmittedExpression(node); } function isArrayBindingOrAssignmentPattern(node) { - return ts7.isArrayBindingPattern(node) || ts7.isArrayLiteralExpression(node); + return ts9.isArrayBindingPattern(node) || ts9.isArrayLiteralExpression(node); } function isAssignmentPattern(node) { - return ts7.isObjectLiteralExpression(node) || ts7.isArrayLiteralExpression(node); + return ts9.isObjectLiteralExpression(node) || ts9.isArrayLiteralExpression(node); } function isBindingOrAssignmentElementRestIndicator(node) { - if (ts7.isSpreadElement(node) || ts7.isSpreadAssignment(node)) { + if (ts9.isSpreadElement(node) || ts9.isSpreadAssignment(node)) { return true; } if (isTsVersionAtLeast(4, 4)) { - return ts7.isDotDotDotToken(node); + return ts9.isDotDotDotToken(node); } return false; } function isBindingOrAssignmentElementTarget(node) { - return isBindingOrAssignmentPattern(node) || ts7.isIdentifier(node) || ts7.isPropertyAccessExpression(node) || ts7.isElementAccessExpression(node) || ts7.isOmittedExpression(node); + return isBindingOrAssignmentPattern(node) || ts9.isIdentifier(node) || ts9.isPropertyAccessExpression(node) || ts9.isElementAccessExpression(node) || ts9.isOmittedExpression(node); } function isBindingOrAssignmentPattern(node) { return isObjectBindingOrAssignmentPattern(node) || isArrayBindingOrAssignmentPattern(node); } function isBindingPattern(node) { - return ts7.isObjectBindingPattern(node) || ts7.isArrayBindingPattern(node); + return ts9.isObjectBindingPattern(node) || ts9.isArrayBindingPattern(node); } function isBlockLike(node) { - return ts7.isSourceFile(node) || ts7.isBlock(node) || ts7.isModuleBlock(node) || ts7.isCaseOrDefaultClause(node); + return ts9.isSourceFile(node) || ts9.isBlock(node) || ts9.isModuleBlock(node) || ts9.isCaseOrDefaultClause(node); } function isBooleanLiteral(node) { return isTrueLiteral(node) || isFalseLiteral(node); } function isClassLikeDeclaration(node) { - return ts7.isClassDeclaration(node) || ts7.isClassExpression(node); + return ts9.isClassDeclaration(node) || ts9.isClassExpression(node); } function isClassMemberModifier(node) { return isAccessibilityModifier(node) || isReadonlyKeyword(node) || isStaticKeyword(node) || isAccessorKeyword(node); } function isDeclarationName(node) { - return ts7.isIdentifier(node) || ts7.isPrivateIdentifier(node) || ts7.isStringLiteralLike(node) || ts7.isNumericLiteral(node) || ts7.isComputedPropertyName(node) || ts7.isElementAccessExpression(node) || isBindingPattern(node) || isEntityNameExpression(node); + return ts9.isIdentifier(node) || ts9.isPrivateIdentifier(node) || ts9.isStringLiteralLike(node) || ts9.isNumericLiteral(node) || ts9.isComputedPropertyName(node) || ts9.isElementAccessExpression(node) || isBindingPattern(node) || isEntityNameExpression(node); } function isDeclarationWithTypeParameterChildren(node) { return isSignatureDeclaration(node) || // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 - isClassLikeDeclaration(node) || ts7.isInterfaceDeclaration(node) || ts7.isTypeAliasDeclaration(node) || ts7.isJSDocTemplateTag(node); + isClassLikeDeclaration(node) || ts9.isInterfaceDeclaration(node) || ts9.isTypeAliasDeclaration(node) || ts9.isJSDocTemplateTag(node); } function isDeclarationWithTypeParameters(node) { - return isDeclarationWithTypeParameterChildren(node) || ts7.isJSDocTypedefTag(node) || ts7.isJSDocCallbackTag(node) || ts7.isJSDocSignature(node); + return isDeclarationWithTypeParameterChildren(node) || ts9.isJSDocTypedefTag(node) || ts9.isJSDocCallbackTag(node) || ts9.isJSDocSignature(node); } function isDestructuringPattern(node) { - return isBindingPattern(node) || ts7.isObjectLiteralExpression(node) || ts7.isArrayLiteralExpression(node); + return isBindingPattern(node) || ts9.isObjectLiteralExpression(node) || ts9.isArrayLiteralExpression(node); } function isEntityNameExpression(node) { - return ts7.isIdentifier(node) || isPropertyAccessEntityNameExpression(node); + return ts9.isIdentifier(node) || isPropertyAccessEntityNameExpression(node); } function isEntityNameOrEntityNameExpression(node) { - return ts7.isEntityName(node) || isEntityNameExpression(node); + return ts9.isEntityName(node) || isEntityNameExpression(node); } function isForInOrOfStatement(node) { - return ts7.isForInStatement(node) || ts7.isForOfStatement(node); + return ts9.isForInStatement(node) || ts9.isForOfStatement(node); } function isFunctionLikeDeclaration(node) { - return ts7.isFunctionDeclaration(node) || ts7.isMethodDeclaration(node) || ts7.isGetAccessorDeclaration(node) || ts7.isSetAccessorDeclaration(node) || ts7.isConstructorDeclaration(node) || ts7.isFunctionExpression(node) || ts7.isArrowFunction(node); + return ts9.isFunctionDeclaration(node) || ts9.isMethodDeclaration(node) || ts9.isGetAccessorDeclaration(node) || ts9.isSetAccessorDeclaration(node) || ts9.isConstructorDeclaration(node) || ts9.isFunctionExpression(node) || ts9.isArrowFunction(node); } function hasDecorators(node) { - return ts7.isParameter(node) || ts7.isPropertyDeclaration(node) || ts7.isMethodDeclaration(node) || ts7.isGetAccessorDeclaration(node) || ts7.isSetAccessorDeclaration(node) || ts7.isClassExpression(node) || ts7.isClassDeclaration(node); + return ts9.isParameter(node) || ts9.isPropertyDeclaration(node) || ts9.isMethodDeclaration(node) || ts9.isGetAccessorDeclaration(node) || ts9.isSetAccessorDeclaration(node) || ts9.isClassExpression(node) || ts9.isClassDeclaration(node); } function hasExpressionInitializer(node) { - return ts7.isVariableDeclaration(node) || ts7.isParameter(node) || ts7.isBindingElement(node) || ts7.isPropertyDeclaration(node) || ts7.isPropertyAssignment(node) || ts7.isEnumMember(node); + return ts9.isVariableDeclaration(node) || ts9.isParameter(node) || ts9.isBindingElement(node) || ts9.isPropertyDeclaration(node) || ts9.isPropertyAssignment(node) || ts9.isEnumMember(node); } function hasInitializer(node) { - return hasExpressionInitializer(node) || ts7.isForStatement(node) || ts7.isForInStatement(node) || ts7.isForOfStatement(node) || ts7.isJsxAttribute(node); + return hasExpressionInitializer(node) || ts9.isForStatement(node) || ts9.isForInStatement(node) || ts9.isForOfStatement(node) || ts9.isJsxAttribute(node); } function hasJSDoc(node) { if ( // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 - isAccessorDeclaration(node) || ts7.isArrowFunction(node) || ts7.isBlock(node) || ts7.isBreakStatement(node) || ts7.isCallSignatureDeclaration(node) || ts7.isCaseClause(node) || // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 - isClassLikeDeclaration(node) || ts7.isConstructorDeclaration(node) || ts7.isConstructorTypeNode(node) || ts7.isConstructSignatureDeclaration(node) || ts7.isContinueStatement(node) || ts7.isDebuggerStatement(node) || ts7.isDoStatement(node) || ts7.isEmptyStatement(node) || isEndOfFileToken(node) || ts7.isEnumDeclaration(node) || ts7.isEnumMember(node) || ts7.isExportAssignment(node) || ts7.isExportDeclaration(node) || ts7.isExportSpecifier(node) || ts7.isExpressionStatement(node) || ts7.isForInStatement(node) || ts7.isForOfStatement(node) || ts7.isForStatement(node) || ts7.isFunctionDeclaration(node) || ts7.isFunctionExpression(node) || ts7.isFunctionTypeNode(node) || ts7.isIfStatement(node) || ts7.isImportDeclaration(node) || ts7.isImportEqualsDeclaration(node) || ts7.isIndexSignatureDeclaration(node) || ts7.isInterfaceDeclaration(node) || ts7.isJSDocFunctionType(node) || ts7.isLabeledStatement(node) || ts7.isMethodDeclaration(node) || ts7.isMethodSignature(node) || ts7.isModuleDeclaration(node) || ts7.isNamedTupleMember(node) || ts7.isNamespaceExportDeclaration(node) || ts7.isParameter(node) || ts7.isParenthesizedExpression(node) || ts7.isPropertyAssignment(node) || ts7.isPropertyDeclaration(node) || ts7.isPropertySignature(node) || ts7.isReturnStatement(node) || ts7.isShorthandPropertyAssignment(node) || ts7.isSpreadAssignment(node) || ts7.isSwitchStatement(node) || ts7.isThrowStatement(node) || ts7.isTryStatement(node) || ts7.isTypeAliasDeclaration(node) || ts7.isVariableDeclaration(node) || ts7.isVariableStatement(node) || ts7.isWhileStatement(node) || ts7.isWithStatement(node) + isAccessorDeclaration(node) || ts9.isArrowFunction(node) || ts9.isBlock(node) || ts9.isBreakStatement(node) || ts9.isCallSignatureDeclaration(node) || ts9.isCaseClause(node) || // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 + isClassLikeDeclaration(node) || ts9.isConstructorDeclaration(node) || ts9.isConstructorTypeNode(node) || ts9.isConstructSignatureDeclaration(node) || ts9.isContinueStatement(node) || ts9.isDebuggerStatement(node) || ts9.isDoStatement(node) || ts9.isEmptyStatement(node) || isEndOfFileToken(node) || ts9.isEnumDeclaration(node) || ts9.isEnumMember(node) || ts9.isExportAssignment(node) || ts9.isExportDeclaration(node) || ts9.isExportSpecifier(node) || ts9.isExpressionStatement(node) || ts9.isForInStatement(node) || ts9.isForOfStatement(node) || ts9.isForStatement(node) || ts9.isFunctionDeclaration(node) || ts9.isFunctionExpression(node) || ts9.isFunctionTypeNode(node) || ts9.isIfStatement(node) || ts9.isImportDeclaration(node) || ts9.isImportEqualsDeclaration(node) || ts9.isIndexSignatureDeclaration(node) || ts9.isInterfaceDeclaration(node) || ts9.isJSDocFunctionType(node) || ts9.isLabeledStatement(node) || ts9.isMethodDeclaration(node) || ts9.isMethodSignature(node) || ts9.isModuleDeclaration(node) || ts9.isNamedTupleMember(node) || ts9.isNamespaceExportDeclaration(node) || ts9.isParameter(node) || ts9.isParenthesizedExpression(node) || ts9.isPropertyAssignment(node) || ts9.isPropertyDeclaration(node) || ts9.isPropertySignature(node) || ts9.isReturnStatement(node) || ts9.isShorthandPropertyAssignment(node) || ts9.isSpreadAssignment(node) || ts9.isSwitchStatement(node) || ts9.isThrowStatement(node) || ts9.isTryStatement(node) || ts9.isTypeAliasDeclaration(node) || ts9.isVariableDeclaration(node) || ts9.isVariableStatement(node) || ts9.isWhileStatement(node) || ts9.isWithStatement(node) ) { return true; } - if (isTsVersionAtLeast(4, 4) && ts7.isClassStaticBlockDeclaration(node)) { + if (isTsVersionAtLeast(4, 4) && ts9.isClassStaticBlockDeclaration(node)) { return true; } - if (isTsVersionAtLeast(5, 0) && (ts7.isBinaryExpression(node) || ts7.isElementAccessExpression(node) || ts7.isIdentifier(node) || ts7.isJSDocSignature(node) || ts7.isObjectLiteralExpression(node) || ts7.isPropertyAccessExpression(node) || ts7.isTypeParameterDeclaration(node))) { + if (isTsVersionAtLeast(5, 0) && (ts9.isBinaryExpression(node) || ts9.isElementAccessExpression(node) || ts9.isIdentifier(node) || ts9.isJSDocSignature(node) || ts9.isObjectLiteralExpression(node) || ts9.isPropertyAccessExpression(node) || ts9.isTypeParameterDeclaration(node))) { return true; } return false; } function hasModifiers(node) { - return ts7.isTypeParameterDeclaration(node) || ts7.isParameter(node) || ts7.isConstructorTypeNode(node) || ts7.isPropertySignature(node) || ts7.isPropertyDeclaration(node) || ts7.isMethodSignature(node) || ts7.isMethodDeclaration(node) || ts7.isConstructorDeclaration(node) || ts7.isGetAccessorDeclaration(node) || ts7.isSetAccessorDeclaration(node) || ts7.isIndexSignatureDeclaration(node) || ts7.isFunctionExpression(node) || ts7.isArrowFunction(node) || ts7.isClassExpression(node) || ts7.isVariableStatement(node) || ts7.isFunctionDeclaration(node) || ts7.isClassDeclaration(node) || ts7.isInterfaceDeclaration(node) || ts7.isTypeAliasDeclaration(node) || ts7.isEnumDeclaration(node) || ts7.isModuleDeclaration(node) || ts7.isImportEqualsDeclaration(node) || ts7.isImportDeclaration(node) || ts7.isExportAssignment(node) || ts7.isExportDeclaration(node); + return ts9.isTypeParameterDeclaration(node) || ts9.isParameter(node) || ts9.isConstructorTypeNode(node) || ts9.isPropertySignature(node) || ts9.isPropertyDeclaration(node) || ts9.isMethodSignature(node) || ts9.isMethodDeclaration(node) || ts9.isConstructorDeclaration(node) || ts9.isGetAccessorDeclaration(node) || ts9.isSetAccessorDeclaration(node) || ts9.isIndexSignatureDeclaration(node) || ts9.isFunctionExpression(node) || ts9.isArrowFunction(node) || ts9.isClassExpression(node) || ts9.isVariableStatement(node) || ts9.isFunctionDeclaration(node) || ts9.isClassDeclaration(node) || ts9.isInterfaceDeclaration(node) || ts9.isTypeAliasDeclaration(node) || ts9.isEnumDeclaration(node) || ts9.isModuleDeclaration(node) || ts9.isImportEqualsDeclaration(node) || ts9.isImportDeclaration(node) || ts9.isExportAssignment(node) || ts9.isExportDeclaration(node); } function hasType(node) { - return isSignatureDeclaration(node) || ts7.isVariableDeclaration(node) || ts7.isParameter(node) || ts7.isPropertySignature(node) || ts7.isPropertyDeclaration(node) || ts7.isTypePredicateNode(node) || ts7.isParenthesizedTypeNode(node) || ts7.isTypeOperatorNode(node) || ts7.isMappedTypeNode(node) || ts7.isAssertionExpression(node) || ts7.isTypeAliasDeclaration(node) || ts7.isJSDocTypeExpression(node) || ts7.isJSDocNonNullableType(node) || ts7.isJSDocNullableType(node) || ts7.isJSDocOptionalType(node) || ts7.isJSDocVariadicType(node); + return isSignatureDeclaration(node) || ts9.isVariableDeclaration(node) || ts9.isParameter(node) || ts9.isPropertySignature(node) || ts9.isPropertyDeclaration(node) || ts9.isTypePredicateNode(node) || ts9.isParenthesizedTypeNode(node) || ts9.isTypeOperatorNode(node) || ts9.isMappedTypeNode(node) || ts9.isAssertionExpression(node) || ts9.isTypeAliasDeclaration(node) || ts9.isJSDocTypeExpression(node) || ts9.isJSDocNonNullableType(node) || ts9.isJSDocNullableType(node) || ts9.isJSDocOptionalType(node) || ts9.isJSDocVariadicType(node); } function hasTypeArguments(node) { - return ts7.isCallExpression(node) || ts7.isNewExpression(node) || ts7.isTaggedTemplateExpression(node) || ts7.isJsxOpeningElement(node) || ts7.isJsxSelfClosingElement(node); + return ts9.isCallExpression(node) || ts9.isNewExpression(node) || ts9.isTaggedTemplateExpression(node) || ts9.isJsxOpeningElement(node) || ts9.isJsxSelfClosingElement(node); } function isJSDocComment(node) { if (isJSDocText(node)) { return true; } if (isTsVersionAtLeast(4, 4)) { - return ts7.isJSDocLink(node) || ts7.isJSDocLinkCode(node) || ts7.isJSDocLinkPlain(node); + return ts9.isJSDocLink(node) || ts9.isJSDocLinkCode(node) || ts9.isJSDocLinkPlain(node); } return false; } function isJSDocNamespaceBody(node) { - return ts7.isIdentifier(node) || isJSDocNamespaceDeclaration(node); + return ts9.isIdentifier(node) || isJSDocNamespaceDeclaration(node); } function isJSDocTypeReferencingNode(node) { - return ts7.isJSDocVariadicType(node) || ts7.isJSDocOptionalType(node) || ts7.isJSDocNullableType(node) || ts7.isJSDocNonNullableType(node); + return ts9.isJSDocVariadicType(node) || ts9.isJSDocOptionalType(node) || ts9.isJSDocNullableType(node) || ts9.isJSDocNonNullableType(node); } function isJsonObjectExpression(node) { - return ts7.isObjectLiteralExpression(node) || ts7.isArrayLiteralExpression(node) || isJsonMinusNumericLiteral(node) || ts7.isNumericLiteral(node) || ts7.isStringLiteral(node) || isBooleanLiteral(node) || isNullLiteral(node); + return ts9.isObjectLiteralExpression(node) || ts9.isArrayLiteralExpression(node) || isJsonMinusNumericLiteral(node) || ts9.isNumericLiteral(node) || ts9.isStringLiteral(node) || isBooleanLiteral(node) || isNullLiteral(node); } function isJsxAttributeLike(node) { - return ts7.isJsxAttribute(node) || ts7.isJsxSpreadAttribute(node); + return ts9.isJsxAttribute(node) || ts9.isJsxSpreadAttribute(node); } function isJsxAttributeValue(node) { - return ts7.isStringLiteral(node) || ts7.isJsxExpression(node) || ts7.isJsxElement(node) || ts7.isJsxSelfClosingElement(node) || ts7.isJsxFragment(node); + return ts9.isStringLiteral(node) || ts9.isJsxExpression(node) || ts9.isJsxElement(node) || ts9.isJsxSelfClosingElement(node) || ts9.isJsxFragment(node); } function isJsxChild(node) { - return ts7.isJsxText(node) || ts7.isJsxExpression(node) || ts7.isJsxElement(node) || ts7.isJsxSelfClosingElement(node) || ts7.isJsxFragment(node); + return ts9.isJsxText(node) || ts9.isJsxExpression(node) || ts9.isJsxElement(node) || ts9.isJsxSelfClosingElement(node) || ts9.isJsxFragment(node); } function isJsxTagNameExpression(node) { - return ts7.isIdentifier(node) || isThisExpression(node) || isJsxTagNamePropertyAccess(node); + return ts9.isIdentifier(node) || isThisExpression(node) || isJsxTagNamePropertyAccess(node); } function isLiteralToken(node) { - return ts7.isNumericLiteral(node) || ts7.isBigIntLiteral(node) || ts7.isStringLiteral(node) || ts7.isJsxText(node) || ts7.isRegularExpressionLiteral(node) || ts7.isNoSubstitutionTemplateLiteral(node); + return ts9.isNumericLiteral(node) || ts9.isBigIntLiteral(node) || ts9.isStringLiteral(node) || ts9.isJsxText(node) || ts9.isRegularExpressionLiteral(node) || ts9.isNoSubstitutionTemplateLiteral(node); } function isModuleBody(node) { return isNamespaceBody(node) || isJSDocNamespaceBody(node); } function isModuleName(node) { - return ts7.isIdentifier(node) || ts7.isStringLiteral(node); + return ts9.isIdentifier(node) || ts9.isStringLiteral(node); } function isModuleReference(node) { - return ts7.isEntityName(node) || ts7.isExternalModuleReference(node); + return ts9.isEntityName(node) || ts9.isExternalModuleReference(node); } function isNamedImportBindings(node) { - return ts7.isNamespaceImport(node) || ts7.isNamedImports(node); + return ts9.isNamespaceImport(node) || ts9.isNamedImports(node); } function isNamedImportsOrExports(node) { - return ts7.isNamedImports(node) || ts7.isNamedExports(node); + return ts9.isNamedImports(node) || ts9.isNamedExports(node); } function isNamespaceBody(node) { - return ts7.isModuleBlock(node) || isNamespaceDeclaration(node); + return ts9.isModuleBlock(node) || isNamespaceDeclaration(node); } function isObjectBindingOrAssignmentElement(node) { - return ts7.isBindingElement(node) || ts7.isPropertyAssignment(node) || ts7.isShorthandPropertyAssignment(node) || ts7.isSpreadAssignment(node); + return ts9.isBindingElement(node) || ts9.isPropertyAssignment(node) || ts9.isShorthandPropertyAssignment(node) || ts9.isSpreadAssignment(node); } function isObjectBindingOrAssignmentPattern(node) { - return ts7.isObjectBindingPattern(node) || ts7.isObjectLiteralExpression(node); + return ts9.isObjectBindingPattern(node) || ts9.isObjectLiteralExpression(node); } function isObjectTypeDeclaration(node) { return ( // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 - isClassLikeDeclaration(node) || ts7.isInterfaceDeclaration(node) || ts7.isTypeLiteralNode(node) + isClassLikeDeclaration(node) || ts9.isInterfaceDeclaration(node) || ts9.isTypeLiteralNode(node) ); } function isParameterPropertyModifier(node) { return isAccessibilityModifier(node) || isReadonlyKeyword(node); } function isPropertyNameLiteral(node) { - return ts7.isIdentifier(node) || ts7.isStringLiteralLike(node) || ts7.isNumericLiteral(node); + return ts9.isIdentifier(node) || ts9.isStringLiteralLike(node) || ts9.isNumericLiteral(node); } function isPseudoLiteralToken(node) { - return ts7.isTemplateHead(node) || ts7.isTemplateMiddle(node) || ts7.isTemplateTail(node); + return ts9.isTemplateHead(node) || ts9.isTemplateMiddle(node) || ts9.isTemplateTail(node); } function isSignatureDeclaration(node) { - return ts7.isCallSignatureDeclaration(node) || ts7.isConstructSignatureDeclaration(node) || ts7.isMethodSignature(node) || ts7.isIndexSignatureDeclaration(node) || ts7.isFunctionTypeNode(node) || ts7.isConstructorTypeNode(node) || ts7.isJSDocFunctionType(node) || ts7.isFunctionDeclaration(node) || ts7.isMethodDeclaration(node) || ts7.isConstructorDeclaration(node) || // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 - isAccessorDeclaration(node) || ts7.isFunctionExpression(node) || ts7.isArrowFunction(node); + return ts9.isCallSignatureDeclaration(node) || ts9.isConstructSignatureDeclaration(node) || ts9.isMethodSignature(node) || ts9.isIndexSignatureDeclaration(node) || ts9.isFunctionTypeNode(node) || ts9.isConstructorTypeNode(node) || ts9.isJSDocFunctionType(node) || ts9.isFunctionDeclaration(node) || ts9.isMethodDeclaration(node) || ts9.isConstructorDeclaration(node) || // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 + isAccessorDeclaration(node) || ts9.isFunctionExpression(node) || ts9.isArrowFunction(node); } function isSuperProperty(node) { return isSuperPropertyAccessExpression(node) || isSuperElementAccessExpression(node); } function isTypeOnlyCompatibleAliasDeclaration(node) { - if (ts7.isImportClause(node) || ts7.isImportEqualsDeclaration(node) || ts7.isNamespaceImport(node) || ts7.isImportOrExportSpecifier(node)) { + if (ts9.isImportClause(node) || ts9.isImportEqualsDeclaration(node) || ts9.isNamespaceImport(node) || ts9.isImportOrExportSpecifier(node)) { return true; } - if (isTsVersionAtLeast(5, 0) && (ts7.isExportDeclaration(node) || ts7.isNamespaceExport(node))) { + if (isTsVersionAtLeast(5, 0) && (ts9.isExportDeclaration(node) || ts9.isNamespaceExport(node))) { return true; } return false; } function isTypeReferenceType(node) { - return ts7.isTypeReferenceNode(node) || ts7.isExpressionWithTypeArguments(node); + return ts9.isTypeReferenceNode(node) || ts9.isExpressionWithTypeArguments(node); } function isUnionOrIntersectionTypeNode(node) { - return ts7.isUnionTypeNode(node) || ts7.isIntersectionTypeNode(node); + return ts9.isUnionTypeNode(node) || ts9.isIntersectionTypeNode(node); } function isUnparsedSourceText(node) { - return ts7.isUnparsedPrepend(node) || ts7.isUnparsedTextLike(node); + return ts9.isUnparsedPrepend(node) || ts9.isUnparsedTextLike(node); } function isVariableLikeDeclaration(node) { - return ts7.isVariableDeclaration(node) || ts7.isParameter(node) || ts7.isBindingElement(node) || ts7.isPropertyDeclaration(node) || ts7.isPropertyAssignment(node) || ts7.isPropertySignature(node) || ts7.isJsxAttribute(node) || ts7.isShorthandPropertyAssignment(node) || ts7.isEnumMember(node) || ts7.isJSDocPropertyTag(node) || ts7.isJSDocParameterTag(node); + return ts9.isVariableDeclaration(node) || ts9.isParameter(node) || ts9.isBindingElement(node) || ts9.isPropertyDeclaration(node) || ts9.isPropertyAssignment(node) || ts9.isPropertySignature(node) || ts9.isJsxAttribute(node) || ts9.isShorthandPropertyAssignment(node) || ts9.isEnumMember(node) || ts9.isJSDocPropertyTag(node) || ts9.isJSDocParameterTag(node); } // src/nodes/typeGuards/compound.ts function isConstAssertionExpression(node) { - return ts8.isTypeReferenceNode(node.type) && ts8.isIdentifier(node.type.typeName) && node.type.typeName.escapedText === "const"; + return ts10.isTypeReferenceNode(node.type) && ts10.isIdentifier(node.type.typeName) && node.type.typeName.escapedText === "const"; } function isIterationStatement(node) { switch (node.kind) { - case ts8.SyntaxKind.DoStatement: - case ts8.SyntaxKind.ForInStatement: - case ts8.SyntaxKind.ForOfStatement: - case ts8.SyntaxKind.ForStatement: - case ts8.SyntaxKind.WhileStatement: + case ts10.SyntaxKind.DoStatement: + case ts10.SyntaxKind.ForInStatement: + case ts10.SyntaxKind.ForOfStatement: + case ts10.SyntaxKind.ForStatement: + case ts10.SyntaxKind.WhileStatement: return true; default: return false; } } function isJSDocNamespaceDeclaration(node) { - return ts8.isModuleDeclaration(node) && ts8.isIdentifier(node.name) && (node.body === void 0 || isJSDocNamespaceBody(node.body)); + return ts10.isModuleDeclaration(node) && ts10.isIdentifier(node.name) && (node.body === void 0 || isJSDocNamespaceBody(node.body)); } function isJsxTagNamePropertyAccess(node) { - return ts8.isPropertyAccessExpression(node) && // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts < 5 + return ts10.isPropertyAccessExpression(node) && // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts < 5 isJsxTagNameExpression(node.expression); } function isNamedDeclarationWithName(node) { return "name" in node && node.name !== void 0 && node.name !== null && isDeclarationName(node.name); } function isNamespaceDeclaration(node) { - return ts8.isModuleDeclaration(node) && ts8.isIdentifier(node.name) && node.body !== void 0 && isNamespaceBody(node.body); + return ts10.isModuleDeclaration(node) && ts10.isIdentifier(node.name) && node.body !== void 0 && isNamespaceBody(node.body); } function isNumericOrStringLikeLiteral(node) { switch (node.kind) { - case ts8.SyntaxKind.StringLiteral: - case ts8.SyntaxKind.NumericLiteral: - case ts8.SyntaxKind.NoSubstitutionTemplateLiteral: + case ts10.SyntaxKind.StringLiteral: + case ts10.SyntaxKind.NumericLiteral: + case ts10.SyntaxKind.NoSubstitutionTemplateLiteral: return true; default: return false; } } function isPropertyAccessEntityNameExpression(node) { - return ts8.isPropertyAccessExpression(node) && ts8.isIdentifier(node.name) && isEntityNameExpression(node.expression); + return ts10.isPropertyAccessExpression(node) && ts10.isIdentifier(node.name) && isEntityNameExpression(node.expression); } function isSuperElementAccessExpression(node) { - return ts8.isElementAccessExpression(node) && isSuperExpression(node.expression); + return ts10.isElementAccessExpression(node) && isSuperExpression(node.expression); } function isSuperPropertyAccessExpression(node) { - return ts8.isPropertyAccessExpression(node) && isSuperExpression(node.expression); + return ts10.isPropertyAccessExpression(node) && isSuperExpression(node.expression); } // src/scopes.ts -import ts9 from "typescript"; +import ts11 from "typescript"; function isFunctionScopeBoundary(node) { switch (node.kind) { - case ts9.SyntaxKind.FunctionExpression: - case ts9.SyntaxKind.ArrowFunction: - case ts9.SyntaxKind.Constructor: - case ts9.SyntaxKind.ModuleDeclaration: - case ts9.SyntaxKind.ClassDeclaration: - case ts9.SyntaxKind.ClassExpression: - case ts9.SyntaxKind.EnumDeclaration: - case ts9.SyntaxKind.MethodDeclaration: - case ts9.SyntaxKind.FunctionDeclaration: - case ts9.SyntaxKind.GetAccessor: - case ts9.SyntaxKind.SetAccessor: - case ts9.SyntaxKind.MethodSignature: - case ts9.SyntaxKind.CallSignature: - case ts9.SyntaxKind.ConstructSignature: - case ts9.SyntaxKind.ConstructorType: - case ts9.SyntaxKind.FunctionType: + case ts11.SyntaxKind.FunctionExpression: + case ts11.SyntaxKind.ArrowFunction: + case ts11.SyntaxKind.Constructor: + case ts11.SyntaxKind.ModuleDeclaration: + case ts11.SyntaxKind.ClassDeclaration: + case ts11.SyntaxKind.ClassExpression: + case ts11.SyntaxKind.EnumDeclaration: + case ts11.SyntaxKind.MethodDeclaration: + case ts11.SyntaxKind.FunctionDeclaration: + case ts11.SyntaxKind.GetAccessor: + case ts11.SyntaxKind.SetAccessor: + case ts11.SyntaxKind.MethodSignature: + case ts11.SyntaxKind.CallSignature: + case ts11.SyntaxKind.ConstructSignature: + case ts11.SyntaxKind.ConstructorType: + case ts11.SyntaxKind.FunctionType: return true; - case ts9.SyntaxKind.SourceFile: - return ts9.isExternalModule(node); + case ts11.SyntaxKind.SourceFile: + return ts11.isExternalModule(node); default: return false; } } -// src/syntax.ts -import ts10 from "typescript"; -function isAssignmentKind(kind) { - return kind >= ts10.SyntaxKind.FirstAssignment && kind <= ts10.SyntaxKind.LastAssignment; -} -function isNumericPropertyName(name) { - return String(+name) === name; -} -function charSize(ch) { - return ch >= 65536 ? 2 : 1; -} -function isValidPropertyAccess(text, languageVersion = ts10.ScriptTarget.Latest) { - if (text.length === 0) - return false; - let ch = text.codePointAt(0); - if (!ts10.isIdentifierStart(ch, languageVersion)) - return false; - for (let i = charSize(ch); i < text.length; i += charSize(ch)) { - ch = text.codePointAt(i); - if (!ts10.isIdentifierPart(ch, languageVersion)) - return false; - } - return true; -} - // src/types/getters.ts -import ts15 from "typescript"; +import ts16 from "typescript"; // src/types/typeGuards/intrinsic.ts -import ts11 from "typescript"; +import ts12 from "typescript"; function isIntrinsicAnyType(type) { - return isTypeFlagSet(type, ts11.TypeFlags.Any); + return isTypeFlagSet(type, ts12.TypeFlags.Any); } function isIntrinsicBooleanType(type) { - return isTypeFlagSet(type, ts11.TypeFlags.Boolean); + return isTypeFlagSet(type, ts12.TypeFlags.Boolean); } function isIntrinsicBigIntType(type) { - return isTypeFlagSet(type, ts11.TypeFlags.BigInt); + return isTypeFlagSet(type, ts12.TypeFlags.BigInt); } function isIntrinsicErrorType(type) { return isIntrinsicType(type) && type.intrinsicName === "error"; } function isIntrinsicESSymbolType(type) { - return isTypeFlagSet(type, ts11.TypeFlags.ESSymbol); + return isTypeFlagSet(type, ts12.TypeFlags.ESSymbol); } -var IntrinsicTypeFlags = ts11.TypeFlags.Intrinsic ?? ts11.TypeFlags.Any | ts11.TypeFlags.Unknown | ts11.TypeFlags.String | ts11.TypeFlags.Number | ts11.TypeFlags.BigInt | ts11.TypeFlags.Boolean | ts11.TypeFlags.BooleanLiteral | ts11.TypeFlags.ESSymbol | ts11.TypeFlags.Void | ts11.TypeFlags.Undefined | ts11.TypeFlags.Null | ts11.TypeFlags.Never | ts11.TypeFlags.NonPrimitive; +var IntrinsicTypeFlags = ts12.TypeFlags.Intrinsic ?? ts12.TypeFlags.Any | ts12.TypeFlags.Unknown | ts12.TypeFlags.String | ts12.TypeFlags.Number | ts12.TypeFlags.BigInt | ts12.TypeFlags.Boolean | ts12.TypeFlags.BooleanLiteral | ts12.TypeFlags.ESSymbol | ts12.TypeFlags.Void | ts12.TypeFlags.Undefined | ts12.TypeFlags.Null | ts12.TypeFlags.Never | ts12.TypeFlags.NonPrimitive; function isIntrinsicType(type) { return isTypeFlagSet(type, IntrinsicTypeFlags); } function isIntrinsicNeverType(type) { - return isTypeFlagSet(type, ts11.TypeFlags.Never); + return isTypeFlagSet(type, ts12.TypeFlags.Never); } function isIntrinsicNonPrimitiveType(type) { - return isTypeFlagSet(type, ts11.TypeFlags.NonPrimitive); + return isTypeFlagSet(type, ts12.TypeFlags.NonPrimitive); } function isIntrinsicNullType(type) { - return isTypeFlagSet(type, ts11.TypeFlags.Null); + return isTypeFlagSet(type, ts12.TypeFlags.Null); } function isIntrinsicNumberType(type) { - return isTypeFlagSet(type, ts11.TypeFlags.Number); + return isTypeFlagSet(type, ts12.TypeFlags.Number); } function isIntrinsicStringType(type) { - return isTypeFlagSet(type, ts11.TypeFlags.String); + return isTypeFlagSet(type, ts12.TypeFlags.String); } function isIntrinsicUndefinedType(type) { - return isTypeFlagSet(type, ts11.TypeFlags.Undefined); + return isTypeFlagSet(type, ts12.TypeFlags.Undefined); } function isIntrinsicUnknownType(type) { - return isTypeFlagSet(type, ts11.TypeFlags.Unknown); + return isTypeFlagSet(type, ts12.TypeFlags.Unknown); } function isIntrinsicVoidType(type) { - return isTypeFlagSet(type, ts11.TypeFlags.Void); + return isTypeFlagSet(type, ts12.TypeFlags.Void); } // src/types/typeGuards/objects.ts -import ts13 from "typescript"; +import ts14 from "typescript"; // src/types/typeGuards/single.ts -import ts12 from "typescript"; +import ts13 from "typescript"; function isConditionalType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.Conditional); + return isTypeFlagSet(type, ts13.TypeFlags.Conditional); } function isEnumType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.Enum); + return isTypeFlagSet(type, ts13.TypeFlags.Enum); } function isFreshableType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.Freshable); + return isTypeFlagSet(type, ts13.TypeFlags.Freshable); } function isIndexType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.Index); + return isTypeFlagSet(type, ts13.TypeFlags.Index); } function isIndexedAccessType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.IndexedAccess); + return isTypeFlagSet(type, ts13.TypeFlags.IndexedAccess); } function isInstantiableType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.Instantiable); + return isTypeFlagSet(type, ts13.TypeFlags.Instantiable); } function isIntersectionType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.Intersection); + return isTypeFlagSet(type, ts13.TypeFlags.Intersection); } function isObjectType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.Object); + return isTypeFlagSet(type, ts13.TypeFlags.Object); } function isStringMappingType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.StringMapping); + return isTypeFlagSet(type, ts13.TypeFlags.StringMapping); } function isSubstitutionType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.Substitution); + return isTypeFlagSet(type, ts13.TypeFlags.Substitution); } function isTypeParameter(type) { - return isTypeFlagSet(type, ts12.TypeFlags.TypeParameter); + return isTypeFlagSet(type, ts13.TypeFlags.TypeParameter); } function isTypeVariable(type) { - return isTypeFlagSet(type, ts12.TypeFlags.TypeVariable); + return isTypeFlagSet(type, ts13.TypeFlags.TypeVariable); } function isUnionType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.Union); + return isTypeFlagSet(type, ts13.TypeFlags.Union); } function isUnionOrIntersectionType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.UnionOrIntersection); + return isTypeFlagSet(type, ts13.TypeFlags.UnionOrIntersection); } function isUniqueESSymbolType(type) { - return isTypeFlagSet(type, ts12.TypeFlags.UniqueESSymbol); + return isTypeFlagSet(type, ts13.TypeFlags.UniqueESSymbol); } // src/types/typeGuards/objects.ts function isEvolvingArrayType(type) { - return isObjectType(type) && isObjectFlagSet(type, ts13.ObjectFlags.EvolvingArray); + return isObjectType(type) && isObjectFlagSet(type, ts14.ObjectFlags.EvolvingArray); } function isTupleType(type) { - return isObjectType(type) && isObjectFlagSet(type, ts13.ObjectFlags.Tuple); + return isObjectType(type) && isObjectFlagSet(type, ts14.ObjectFlags.Tuple); } function isTypeReference(type) { - return isObjectType(type) && isObjectFlagSet(type, ts13.ObjectFlags.Reference); + return isObjectType(type) && isObjectFlagSet(type, ts14.ObjectFlags.Reference); } // src/types/typeGuards/compound.ts @@ -765,33 +922,33 @@ function isTupleTypeReference(type) { } // src/types/typeGuards/literal.ts -import ts14 from "typescript"; +import ts15 from "typescript"; function isBooleanLiteralType(type) { - return isTypeFlagSet(type, ts14.TypeFlags.BooleanLiteral); + return isTypeFlagSet(type, ts15.TypeFlags.BooleanLiteral); } function isBigIntLiteralType(type) { - return isTypeFlagSet(type, ts14.TypeFlags.BigIntLiteral); + return isTypeFlagSet(type, ts15.TypeFlags.BigIntLiteral); } function isFalseLiteralType(type) { return isBooleanLiteralType(type) && type.intrinsicName === "false"; } function isLiteralType(type) { - return isTypeFlagSet(type, ts14.TypeFlags.Literal); + return isTypeFlagSet(type, ts15.TypeFlags.Literal); } function isNumberLiteralType(type) { - return isTypeFlagSet(type, ts14.TypeFlags.NumberLiteral); + return isTypeFlagSet(type, ts15.TypeFlags.NumberLiteral); } function isStringLiteralType(type) { - return isTypeFlagSet(type, ts14.TypeFlags.StringLiteral); + return isTypeFlagSet(type, ts15.TypeFlags.StringLiteral); } function isTemplateLiteralType(type) { - return isTypeFlagSet(type, ts14.TypeFlags.TemplateLiteral); + return isTypeFlagSet(type, ts15.TypeFlags.TemplateLiteral); } function isTrueLiteralType(type) { return isBooleanLiteralType(type) && type.intrinsicName === "true"; } function isUnknownLiteralType(type) { - return isTypeFlagSet(type, ts14.TypeFlags.Literal); + return isTypeFlagSet(type, ts15.TypeFlags.Literal); } // src/types/getters.ts @@ -808,8 +965,9 @@ function getCallSignaturesOfType(type) { for (const subType of type.types) { const sig = getCallSignaturesOfType(subType); if (sig.length !== 0) { - if (signatures !== void 0) + if (signatures !== void 0) { return []; + } signatures = sig; } } @@ -818,8 +976,9 @@ function getCallSignaturesOfType(type) { return type.getCallSignatures(); } function getPropertyOfType(type, name) { - if (!name.startsWith("__")) + if (!name.startsWith("__")) { return type.getProperty(name); + } return type.getProperties().find((s) => s.escapedName === name); } function getWellKnownSymbolPropertyOfType(type, wellKnownSymbolName, typeChecker) { @@ -829,7 +988,7 @@ function getWellKnownSymbolPropertyOfType(type, wellKnownSymbolName, typeChecker continue; } const declaration = prop.valueDeclaration ?? prop.getDeclarations()[0]; - if (!isNamedDeclarationWithName(declaration) || declaration.name === void 0 || !ts15.isComputedPropertyName(declaration.name)) { + if (!isNamedDeclarationWithName(declaration) || declaration.name === void 0 || !ts16.isComputedPropertyName(declaration.name)) { continue; } const globalSymbol = typeChecker.getApparentType( @@ -856,18 +1015,19 @@ function getPropertyNameOfWellKnownSymbol(typeChecker, symbolConstructor, symbol // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access knownSymbol.valueDeclaration ); - if (knownSymbolType && isUniqueESSymbolType(knownSymbolType)) + if (knownSymbolType && isUniqueESSymbolType(knownSymbolType)) { return knownSymbolType.escapedName; + } return "__@" + symbolName; } // src/types/utilities.ts -import ts17 from "typescript"; +import ts18 from "typescript"; // src/nodes/utilities.ts -import ts16 from "typescript"; +import ts17 from "typescript"; function isBindableObjectDefinePropertyCall(node) { - return node.arguments.length === 3 && isEntityNameExpression(node.arguments[0]) && isNumericOrStringLikeLiteral(node.arguments[1]) && ts16.isPropertyAccessExpression(node.expression) && node.expression.name.escapedText === "defineProperty" && ts16.isIdentifier(node.expression.expression) && node.expression.expression.escapedText === "Object"; + return node.arguments.length === 3 && isEntityNameExpression(node.arguments[0]) && isNumericOrStringLikeLiteral(node.arguments[1]) && ts17.isPropertyAccessExpression(node.expression) && node.expression.name.escapedText === "defineProperty" && ts17.isIdentifier(node.expression.expression) && node.expression.expression.escapedText === "Object"; } function isInConstContext(node) { let current = node; @@ -875,32 +1035,34 @@ function isInConstContext(node) { const parent = current.parent; outer: switch (parent.kind) { - case ts16.SyntaxKind.TypeAssertionExpression: - case ts16.SyntaxKind.AsExpression: + case ts17.SyntaxKind.TypeAssertionExpression: + case ts17.SyntaxKind.AsExpression: return isConstAssertionExpression(parent); - case ts16.SyntaxKind.PrefixUnaryExpression: - if (current.kind !== ts16.SyntaxKind.NumericLiteral) + case ts17.SyntaxKind.PrefixUnaryExpression: + if (current.kind !== ts17.SyntaxKind.NumericLiteral) { return false; + } switch (parent.operator) { - case ts16.SyntaxKind.PlusToken: - case ts16.SyntaxKind.MinusToken: + case ts17.SyntaxKind.PlusToken: + case ts17.SyntaxKind.MinusToken: current = parent; break outer; default: return false; } - case ts16.SyntaxKind.PropertyAssignment: - if (parent.initializer !== current) + case ts17.SyntaxKind.PropertyAssignment: + if (parent.initializer !== current) { return false; + } current = parent.parent; break; - case ts16.SyntaxKind.ShorthandPropertyAssignment: + case ts17.SyntaxKind.ShorthandPropertyAssignment: current = parent.parent; break; - case ts16.SyntaxKind.ParenthesizedExpression: - case ts16.SyntaxKind.ArrayLiteralExpression: - case ts16.SyntaxKind.ObjectLiteralExpression: - case ts16.SyntaxKind.TemplateExpression: + case ts17.SyntaxKind.ParenthesizedExpression: + case ts17.SyntaxKind.ArrayLiteralExpression: + case ts17.SyntaxKind.ObjectLiteralExpression: + case ts17.SyntaxKind.TemplateExpression: current = parent; break; default: @@ -913,25 +1075,32 @@ function isInConstContext(node) { function isFalsyType(type) { if (isTypeFlagSet( type, - ts17.TypeFlags.Undefined | ts17.TypeFlags.Null | ts17.TypeFlags.Void - )) + ts18.TypeFlags.Undefined | ts18.TypeFlags.Null | ts18.TypeFlags.Void + )) { return true; - if (type.isLiteral()) + } + if (type.isLiteral()) { return !type.value; + } return isFalseLiteralType(type); } function intersectionTypeParts(type) { return isIntersectionType(type) ? type.types : [type]; } +function typeParts(type) { + return isIntersectionType(type) || isUnionType(type) ? type.types : [type]; +} function isReadonlyPropertyIntersection(type, name, typeChecker) { - const typeParts = isIntersectionType(type) ? type.types : [type]; - return typeParts.some((subType) => { + const typeParts2 = isIntersectionType(type) ? type.types : [type]; + return typeParts2.some((subType) => { const prop = getPropertyOfType(subType, name); - if (prop === void 0) + if (prop === void 0) { return false; - if (prop.flags & ts17.SymbolFlags.Transient) { - if (/^(?:[1-9]\d*|0)$/.test(name) && isTupleTypeReference(subType)) + } + if (prop.flags & ts18.SymbolFlags.Transient) { + if (/^(?:[1-9]\d*|0)$/.test(name) && isTupleTypeReference(subType)) { return subType.target.readonly; + } switch (isReadonlyPropertyFromMappedType(subType, name, typeChecker)) { case true: return true; @@ -941,16 +1110,18 @@ function isReadonlyPropertyIntersection(type, name, typeChecker) { } } return !!// members of namespace import - (isSymbolFlagSet(prop, ts17.SymbolFlags.ValueModule) || // we unwrapped every mapped type, now we can check the actual declarations + (isSymbolFlagSet(prop, ts18.SymbolFlags.ValueModule) || // we unwrapped every mapped type, now we can check the actual declarations symbolHasReadonlyDeclaration(prop, typeChecker)); }); } function isReadonlyPropertyFromMappedType(type, name, typeChecker) { - if (!isObjectType(type) || !isObjectFlagSet(type, ts17.ObjectFlags.Mapped)) + if (!isObjectType(type) || !isObjectFlagSet(type, ts18.ObjectFlags.Mapped)) { return; + } const declaration = type.symbol.declarations[0]; - if (declaration.readonlyToken !== void 0 && !/^__@[^@]+$/.test(name)) - return declaration.readonlyToken.kind !== ts17.SyntaxKind.MinusToken; + if (declaration.readonlyToken !== void 0 && !/^__@[^@]+$/.test(name)) { + return declaration.readonlyToken.kind !== ts18.SyntaxKind.MinusToken; + } const { modifiersType } = type; return modifiersType && isPropertyReadonlyInType(modifiersType, name, typeChecker); } @@ -960,12 +1131,14 @@ function isCallback(typeChecker, param, node) { ); if (param.valueDeclaration.dotDotDotToken) { type = type.getNumberIndexType(); - if (type === void 0) + if (type === void 0) { return false; + } } for (const subType of unionTypeParts(type)) { - if (subType.getCallSignatures().length !== 0) + if (subType.getCallSignatures().length !== 0) { return true; + } } return false; } @@ -974,10 +1147,11 @@ function isPropertyReadonlyInType(type, name, typeChecker) { let seenReadonlySignature = false; for (const subType of unionTypeParts(type)) { if (getPropertyOfType(subType, name) === void 0) { - const index = (isNumericPropertyName(name) ? typeChecker.getIndexInfoOfType(subType, ts17.IndexKind.Number) : void 0) ?? typeChecker.getIndexInfoOfType(subType, ts17.IndexKind.String); + const index = (isNumericPropertyName(name) ? typeChecker.getIndexInfoOfType(subType, ts18.IndexKind.Number) : void 0) ?? typeChecker.getIndexInfoOfType(subType, ts18.IndexKind.String); if (index?.isReadonly) { - if (seenProperty) + if (seenProperty) { return true; + } seenReadonlySignature = true; } } else if (seenReadonlySignature || isReadonlyPropertyIntersection(subType, name, typeChecker)) { @@ -989,41 +1163,988 @@ function isPropertyReadonlyInType(type, name, typeChecker) { return false; } function isReadonlyAssignmentDeclaration(node, typeChecker) { - if (!isBindableObjectDefinePropertyCall(node)) + if (!isBindableObjectDefinePropertyCall(node)) { return false; + } const descriptorType = typeChecker.getTypeAtLocation(node.arguments[2]); - if (descriptorType.getProperty("value") === void 0) + if (descriptorType.getProperty("value") === void 0) { return descriptorType.getProperty("set") === void 0; + } const writableProp = descriptorType.getProperty("writable"); - if (writableProp === void 0) + if (writableProp === void 0) { return false; - const writableType = writableProp.valueDeclaration !== void 0 && ts17.isPropertyAssignment(writableProp.valueDeclaration) ? typeChecker.getTypeAtLocation(writableProp.valueDeclaration.initializer) : typeChecker.getTypeOfSymbolAtLocation(writableProp, node.arguments[2]); + } + const writableType = writableProp.valueDeclaration !== void 0 && ts18.isPropertyAssignment(writableProp.valueDeclaration) ? typeChecker.getTypeAtLocation(writableProp.valueDeclaration.initializer) : typeChecker.getTypeOfSymbolAtLocation(writableProp, node.arguments[2]); return isFalseLiteralType(writableType); } function isThenableType(typeChecker, node, type = typeChecker.getTypeAtLocation(node)) { for (const typePart of unionTypeParts(typeChecker.getApparentType(type))) { const then = typePart.getProperty("then"); - if (then === void 0) + if (then === void 0) { continue; + } const thenType = typeChecker.getTypeOfSymbolAtLocation(then, node); - for (const subTypePart of unionTypeParts(thenType)) - for (const signature of subTypePart.getCallSignatures()) - if (signature.parameters.length !== 0 && isCallback(typeChecker, signature.parameters[0], node)) + for (const subTypePart of unionTypeParts(thenType)) { + for (const signature of subTypePart.getCallSignatures()) { + if (signature.parameters.length !== 0 && isCallback(typeChecker, signature.parameters[0], node)) { return true; + } + } + } } return false; } function symbolHasReadonlyDeclaration(symbol, typeChecker) { - return !!((symbol.flags & ts17.SymbolFlags.Accessor) === ts17.SymbolFlags.GetAccessor || symbol.declarations?.some( - (node) => isModifierFlagSet(node, ts17.ModifierFlags.Readonly) || ts17.isVariableDeclaration(node) && isNodeFlagSet(node.parent, ts17.NodeFlags.Const) || ts17.isCallExpression(node) && isReadonlyAssignmentDeclaration(node, typeChecker) || ts17.isEnumMember(node) || (ts17.isPropertyAssignment(node) || ts17.isShorthandPropertyAssignment(node)) && isInConstContext(node.parent) + return !!((symbol.flags & ts18.SymbolFlags.Accessor) === ts18.SymbolFlags.GetAccessor || symbol.declarations?.some( + (node) => isModifierFlagSet(node, ts18.ModifierFlags.Readonly) || ts18.isVariableDeclaration(node) && isNodeFlagSet(node.parent, ts18.NodeFlags.Const) || ts18.isCallExpression(node) && isReadonlyAssignmentDeclaration(node, typeChecker) || ts18.isEnumMember(node) || (ts18.isPropertyAssignment(node) || ts18.isShorthandPropertyAssignment(node)) && isInConstContext(node.parent) )); } function unionTypeParts(type) { return isUnionType(type) ? type.types : [type]; } + +// src/usage/UsageWalker.ts +import ts24 from "typescript"; + +// src/usage/Scope.ts +import ts19 from "typescript"; +function isBlockScopeBoundary(node) { + switch (node.kind) { + case ts19.SyntaxKind.Block: { + const parent = node.parent; + return parent.kind !== ts19.SyntaxKind.CatchClause && // blocks inside SourceFile are block scope boundaries + (parent.kind === ts19.SyntaxKind.SourceFile || // blocks that are direct children of a function scope boundary are no scope boundary + // for example the FunctionBlock is part of the function scope of the containing function + !isFunctionScopeBoundary(parent)) ? 2 /* Block */ : 0 /* None */; + } + case ts19.SyntaxKind.ForStatement: + case ts19.SyntaxKind.ForInStatement: + case ts19.SyntaxKind.ForOfStatement: + case ts19.SyntaxKind.CaseBlock: + case ts19.SyntaxKind.CatchClause: + case ts19.SyntaxKind.WithStatement: + return 2 /* Block */; + default: + return 0 /* None */; + } +} + +// src/usage/declarations.ts +import ts21 from "typescript"; + +// src/usage/utils.ts +import ts20 from "typescript"; +function identifierToKeywordKind(node) { + return "identifierToKeywordKind" in ts20 ? ts20.identifierToKeywordKind(node) : ( + // eslint-disable-next-line deprecation/deprecation + node.originalKeywordKind + ); +} +function canHaveDecorators(node) { + return "canHaveDecorators" in ts20 ? ts20.canHaveDecorators(node) : "decorators" in node; +} +function getDecorators(node) { + return "getDecorators" in ts20 ? ts20.getDecorators(node) : node.decorators; +} + +// src/usage/declarations.ts +var DeclarationDomain = /* @__PURE__ */ ((DeclarationDomain2) => { + DeclarationDomain2[DeclarationDomain2["Import"] = 8] = "Import"; + DeclarationDomain2[DeclarationDomain2["Namespace"] = 1] = "Namespace"; + DeclarationDomain2[DeclarationDomain2["Type"] = 2] = "Type"; + DeclarationDomain2[DeclarationDomain2["Value"] = 4] = "Value"; + DeclarationDomain2[DeclarationDomain2["Any"] = 7] = "Any"; + return DeclarationDomain2; +})(DeclarationDomain || {}); +function getDeclarationDomain(node) { + switch (node.parent.kind) { + case ts21.SyntaxKind.TypeParameter: + case ts21.SyntaxKind.InterfaceDeclaration: + case ts21.SyntaxKind.TypeAliasDeclaration: + return 2 /* Type */; + case ts21.SyntaxKind.ClassDeclaration: + case ts21.SyntaxKind.ClassExpression: + return 2 /* Type */ | 4 /* Value */; + case ts21.SyntaxKind.EnumDeclaration: + return 7 /* Any */; + case ts21.SyntaxKind.NamespaceImport: + case ts21.SyntaxKind.ImportClause: + return 7 /* Any */ | 8 /* Import */; + case ts21.SyntaxKind.ImportEqualsDeclaration: + case ts21.SyntaxKind.ImportSpecifier: + return node.parent.name === node ? 7 /* Any */ | 8 /* Import */ : void 0; + case ts21.SyntaxKind.ModuleDeclaration: + return 1 /* Namespace */; + case ts21.SyntaxKind.Parameter: + if (node.parent.parent.kind === ts21.SyntaxKind.IndexSignature || identifierToKeywordKind(node) === ts21.SyntaxKind.ThisKeyword) { + return; + } + case ts21.SyntaxKind.BindingElement: + case ts21.SyntaxKind.VariableDeclaration: + return node.parent.name === node ? 4 /* Value */ : void 0; + case ts21.SyntaxKind.FunctionDeclaration: + case ts21.SyntaxKind.FunctionExpression: + return 4 /* Value */; + } +} + +// src/usage/getPropertyName.ts +import ts22 from "typescript"; +function unwrapParentheses(node) { + while (node.kind === ts22.SyntaxKind.ParenthesizedExpression) { + node = node.expression; + } + return node; +} +function getPropertyName(propertyName) { + if (propertyName.kind === ts22.SyntaxKind.ComputedPropertyName) { + const expression = unwrapParentheses(propertyName.expression); + if (ts22.isPrefixUnaryExpression(expression)) { + let negate = false; + switch (expression.operator) { + case ts22.SyntaxKind.MinusToken: + negate = true; + case ts22.SyntaxKind.PlusToken: + return ts22.isNumericLiteral(expression.operand) ? `${negate ? "-" : ""}${expression.operand.text}` : ts22.isBigIntLiteral(expression.operand) ? `${negate ? "-" : ""}${expression.operand.text.slice(0, -1)}` : void 0; + default: + return; + } + } + if (ts22.isBigIntLiteral(expression)) { + return expression.text.slice(0, -1); + } + if (isNumericOrStringLikeLiteral(expression)) { + return expression.text; + } + return; + } + return propertyName.kind === ts22.SyntaxKind.PrivateIdentifier ? void 0 : propertyName.text; +} + +// src/usage/getUsageDomain.ts +import ts23 from "typescript"; +var UsageDomain = /* @__PURE__ */ ((UsageDomain2) => { + UsageDomain2[UsageDomain2["Namespace"] = 1] = "Namespace"; + UsageDomain2[UsageDomain2["Type"] = 2] = "Type"; + UsageDomain2[UsageDomain2["TypeQuery"] = 8] = "TypeQuery"; + UsageDomain2[UsageDomain2["Value"] = 4] = "Value"; + UsageDomain2[UsageDomain2["ValueOrNamespace"] = 5] = "ValueOrNamespace"; + UsageDomain2[UsageDomain2["Any"] = 7] = "Any"; + return UsageDomain2; +})(UsageDomain || {}); +function getUsageDomain(node) { + const parent = node.parent; + switch (parent.kind) { + case ts23.SyntaxKind.TypeReference: + return identifierToKeywordKind(node) !== ts23.SyntaxKind.ConstKeyword ? 2 /* Type */ : void 0; + case ts23.SyntaxKind.ExpressionWithTypeArguments: + return parent.parent.token === ts23.SyntaxKind.ImplementsKeyword || parent.parent.parent.kind === ts23.SyntaxKind.InterfaceDeclaration ? 2 /* Type */ : 4 /* Value */; + case ts23.SyntaxKind.TypeQuery: + return 5 /* ValueOrNamespace */ | 8 /* TypeQuery */; + case ts23.SyntaxKind.QualifiedName: + if (parent.left === node) { + if (getEntityNameParent(parent).kind === ts23.SyntaxKind.TypeQuery) { + return 1 /* Namespace */ | 8 /* TypeQuery */; + } + return 1 /* Namespace */; + } + break; + case ts23.SyntaxKind.ExportSpecifier: + if (parent.propertyName === void 0 || parent.propertyName === node) { + return 7 /* Any */; + } + break; + case ts23.SyntaxKind.ExportAssignment: + return 7 /* Any */; + case ts23.SyntaxKind.BindingElement: + if (parent.initializer === node) { + return 5 /* ValueOrNamespace */; + } + break; + case ts23.SyntaxKind.Parameter: + case ts23.SyntaxKind.EnumMember: + case ts23.SyntaxKind.PropertyDeclaration: + case ts23.SyntaxKind.VariableDeclaration: + case ts23.SyntaxKind.PropertyAssignment: + case ts23.SyntaxKind.PropertyAccessExpression: + case ts23.SyntaxKind.ImportEqualsDeclaration: + if (parent.name !== node) { + return 5 /* ValueOrNamespace */; + } + break; + case ts23.SyntaxKind.JsxAttribute: + case ts23.SyntaxKind.FunctionDeclaration: + case ts23.SyntaxKind.FunctionExpression: + case ts23.SyntaxKind.NamespaceImport: + case ts23.SyntaxKind.ClassDeclaration: + case ts23.SyntaxKind.ClassExpression: + case ts23.SyntaxKind.ModuleDeclaration: + case ts23.SyntaxKind.MethodDeclaration: + case ts23.SyntaxKind.EnumDeclaration: + case ts23.SyntaxKind.GetAccessor: + case ts23.SyntaxKind.SetAccessor: + case ts23.SyntaxKind.LabeledStatement: + case ts23.SyntaxKind.BreakStatement: + case ts23.SyntaxKind.ContinueStatement: + case ts23.SyntaxKind.ImportClause: + case ts23.SyntaxKind.ImportSpecifier: + case ts23.SyntaxKind.TypePredicate: + case ts23.SyntaxKind.MethodSignature: + case ts23.SyntaxKind.PropertySignature: + case ts23.SyntaxKind.NamespaceExportDeclaration: + case ts23.SyntaxKind.NamespaceExport: + case ts23.SyntaxKind.InterfaceDeclaration: + case ts23.SyntaxKind.TypeAliasDeclaration: + case ts23.SyntaxKind.TypeParameter: + case ts23.SyntaxKind.NamedTupleMember: + break; + default: + return 5 /* ValueOrNamespace */; + } +} +function getEntityNameParent(name) { + let parent = name.parent; + while (parent.kind === ts23.SyntaxKind.QualifiedName) { + parent = parent.parent; + } + return parent; +} + +// src/usage/scopes.ts +var _enumScopes; +var AbstractScope = class { + constructor(global) { + this.global = global; + __privateAdd(this, _enumScopes, void 0); + this.namespaceScopes = void 0; + this.uses = []; + this.variables = /* @__PURE__ */ new Map(); + } + addUse(use) { + this.uses.push(use); + } + // eslint-disable-next-line @typescript-eslint/no-empty-function + addUseToParent(_use) { + } + addVariable(identifier, name, selector, exported, domain) { + const variables = this.getDestinationScope(selector).getVariables(); + const declaration = { + declaration: name, + domain, + exported + }; + const variable = variables.get(identifier); + if (variable === void 0) { + variables.set(identifier, { + declarations: [declaration], + domain, + uses: [] + }); + } else { + variable.domain |= domain; + variable.declarations.push(declaration); + } + } + applyUse(use, variables = this.variables) { + const variable = variables.get(use.location.text); + if (variable === void 0 || (variable.domain & use.domain) === 0) { + return false; + } + variable.uses.push(use); + return true; + } + applyUses() { + for (const use of this.uses) { + if (!this.applyUse(use)) { + this.addUseToParent(use); + } + } + this.uses = []; + } + createOrReuseEnumScope(name, _exported) { + let scope; + if (__privateGet(this, _enumScopes) === void 0) { + __privateSet(this, _enumScopes, /* @__PURE__ */ new Map()); + } else { + scope = __privateGet(this, _enumScopes).get(name); + } + if (scope === void 0) { + scope = new EnumScope(this); + __privateGet(this, _enumScopes).set(name, scope); + } + return scope; + } + // only relevant for the root scope + createOrReuseNamespaceScope(name, _exported, ambient, hasExportStatement) { + let scope; + if (this.namespaceScopes === void 0) { + this.namespaceScopes = /* @__PURE__ */ new Map(); + } else { + scope = this.namespaceScopes.get(name); + } + if (scope === void 0) { + scope = new NamespaceScope(ambient, hasExportStatement, this); + this.namespaceScopes.set(name, scope); + } else { + scope.refresh(ambient, hasExportStatement); + } + return scope; + } + end(cb) { + if (this.namespaceScopes !== void 0) { + this.namespaceScopes.forEach((value) => value.finish(cb)); + } + this.namespaceScopes = __privateSet(this, _enumScopes, void 0); + this.applyUses(); + this.variables.forEach((variable) => { + for (const declaration of variable.declarations) { + const result = { + declarations: [], + domain: declaration.domain, + exported: declaration.exported, + inGlobalScope: this.global, + uses: [] + }; + for (const other of variable.declarations) { + if (other.domain & declaration.domain) { + result.declarations.push(other.declaration); + } + } + for (const use of variable.uses) { + if (use.domain & declaration.domain) { + result.uses.push(use); + } + } + cb(result, declaration.declaration, this); + } + }); + } + getFunctionScope() { + return this; + } + getVariables() { + return this.variables; + } + // eslint-disable-next-line @typescript-eslint/no-empty-function + markExported(_name2) { + } +}; +_enumScopes = new WeakMap(); +var NonRootScope = class extends AbstractScope { + constructor(parent, boundary) { + super(false); + this.parent = parent; + this.boundary = boundary; + } + addUseToParent(use) { + return this.parent.addUse(use, this); + } + getDestinationScope(selector) { + return this.boundary & selector ? this : this.parent.getDestinationScope(selector); + } +}; +var EnumScope = class extends NonRootScope { + constructor(parent) { + super(parent, 1 /* Function */); + } + end() { + this.applyUses(); + } +}; +var _exportAll, _exports, _innerScope; +var RootScope = class extends AbstractScope { + constructor(exportAll, global) { + super(global); + __privateAdd(this, _exportAll, void 0); + __privateAdd(this, _exports, void 0); + __privateAdd(this, _innerScope, new NonRootScope(this, 1 /* Function */)); + __privateSet(this, _exportAll, exportAll); + } + addUse(use, origin) { + if (origin === __privateGet(this, _innerScope)) { + return super.addUse(use); + } + return __privateGet(this, _innerScope).addUse(use); + } + addVariable(identifier, name, selector, exported, domain) { + if (domain & 8 /* Import */) { + return super.addVariable(identifier, name, selector, exported, domain); + } + return __privateGet(this, _innerScope).addVariable( + identifier, + name, + selector, + exported, + domain + ); + } + end(cb) { + __privateGet(this, _innerScope).end((value, key) => { + value.exported ||= __privateGet(this, _exportAll) || __privateGet(this, _exports) !== void 0 && __privateGet(this, _exports).includes(key.text); + value.inGlobalScope = this.global; + return cb(value, key, this); + }); + return super.end((value, key, scope) => { + value.exported ||= scope === this && __privateGet(this, _exports) !== void 0 && __privateGet(this, _exports).includes(key.text); + return cb(value, key, scope); + }); + } + getDestinationScope() { + return this; + } + markExported(id) { + if (__privateGet(this, _exports) === void 0) { + __privateSet(this, _exports, [id.text]); + } else { + __privateGet(this, _exports).push(id.text); + } + } +}; +_exportAll = new WeakMap(); +_exports = new WeakMap(); +_innerScope = new WeakMap(); +var _ambient, _exports2, _hasExport, _innerScope2; +var NamespaceScope = class extends NonRootScope { + constructor(ambient, hasExport, parent) { + super(parent, 1 /* Function */); + __privateAdd(this, _ambient, void 0); + __privateAdd(this, _exports2, void 0); + __privateAdd(this, _hasExport, void 0); + __privateAdd(this, _innerScope2, new NonRootScope(this, 1 /* Function */)); + __privateSet(this, _ambient, ambient); + __privateSet(this, _hasExport, hasExport); + } + addUse(use, source) { + if (source !== __privateGet(this, _innerScope2)) { + return __privateGet(this, _innerScope2).addUse(use); + } + this.uses.push(use); + } + createOrReuseEnumScope(name, exported) { + if (!exported && (!__privateGet(this, _ambient) || __privateGet(this, _hasExport))) { + return __privateGet(this, _innerScope2).createOrReuseEnumScope(name, exported); + } + return super.createOrReuseEnumScope(name, exported); + } + createOrReuseNamespaceScope(name, exported, ambient, hasExportStatement) { + if (!exported && (!__privateGet(this, _ambient) || __privateGet(this, _hasExport))) { + return __privateGet(this, _innerScope2).createOrReuseNamespaceScope( + name, + exported, + ambient || __privateGet(this, _ambient), + hasExportStatement + ); + } + return super.createOrReuseNamespaceScope( + name, + exported, + ambient || __privateGet(this, _ambient), + hasExportStatement + ); + } + end(cb) { + __privateGet(this, _innerScope2).end((variable, key, scope) => { + if (scope !== __privateGet(this, _innerScope2) || !variable.exported && (!__privateGet(this, _ambient) || __privateGet(this, _exports2) !== void 0 && !__privateGet(this, _exports2).has(key.text))) { + return cb(variable, key, scope); + } + const namespaceVar = this.variables.get(key.text); + if (namespaceVar === void 0) { + this.variables.set(key.text, { + declarations: variable.declarations.map(mapDeclaration), + domain: variable.domain, + uses: [...variable.uses] + }); + } else { + outer: + for (const declaration of variable.declarations) { + for (const existing of namespaceVar.declarations) { + if (existing.declaration === declaration) { + continue outer; + } + namespaceVar.declarations.push(mapDeclaration(declaration)); + } + } + namespaceVar.domain |= variable.domain; + for (const use of variable.uses) { + if (namespaceVar.uses.includes(use)) { + continue; + } + namespaceVar.uses.push(use); + } + } + }); + this.applyUses(); + __privateSet(this, _innerScope2, new NonRootScope(this, 1 /* Function */)); + } + finish(cb) { + return super.end(cb); + } + getDestinationScope() { + return __privateGet(this, _innerScope2); + } + markExported(name) { + if (__privateGet(this, _exports2) === void 0) { + __privateSet(this, _exports2, /* @__PURE__ */ new Set()); + } + __privateGet(this, _exports2).add(name.text); + } + refresh(ambient, hasExport) { + __privateSet(this, _ambient, ambient); + __privateSet(this, _hasExport, hasExport); + } +}; +_ambient = new WeakMap(); +_exports2 = new WeakMap(); +_hasExport = new WeakMap(); +_innerScope2 = new WeakMap(); +function mapDeclaration(declaration) { + return { + declaration, + domain: getDeclarationDomain(declaration), + exported: true + }; +} +var FunctionScope = class extends NonRootScope { + constructor(parent) { + super(parent, 1 /* Function */); + } + beginBody() { + this.applyUses(); + } +}; +var _domain, _name; +var AbstractNamedExpressionScope = class extends NonRootScope { + constructor(name, domain, parent) { + super(parent, 1 /* Function */); + __privateAdd(this, _domain, void 0); + __privateAdd(this, _name, void 0); + __privateSet(this, _name, name); + __privateSet(this, _domain, domain); + } + addUse(use, source) { + if (source !== this.innerScope) { + return this.innerScope.addUse(use); + } + if (use.domain & __privateGet(this, _domain) && use.location.text === __privateGet(this, _name).text) { + this.uses.push(use); + } else { + return this.parent.addUse(use, this); + } + } + end(cb) { + this.innerScope.end(cb); + return cb( + { + declarations: [__privateGet(this, _name)], + domain: __privateGet(this, _domain), + exported: false, + inGlobalScope: false, + uses: this.uses + }, + __privateGet(this, _name), + this + ); + } + getDestinationScope() { + return this.innerScope; + } + getFunctionScope() { + return this.innerScope; + } +}; +_domain = new WeakMap(); +_name = new WeakMap(); +var FunctionExpressionScope = class extends AbstractNamedExpressionScope { + constructor(name, parent) { + super(name, 4 /* Value */, parent); + this.innerScope = new FunctionScope(this); + } + beginBody() { + return this.innerScope.beginBody(); + } +}; +var _functionScope; +var BlockScope = class extends NonRootScope { + constructor(functionScope, parent) { + super(parent, 2 /* Block */); + __privateAdd(this, _functionScope, void 0); + __privateSet(this, _functionScope, functionScope); + } + getFunctionScope() { + return __privateGet(this, _functionScope); + } +}; +_functionScope = new WeakMap(); +var ClassExpressionScope = class extends AbstractNamedExpressionScope { + constructor(name, parent) { + super(name, 4 /* Value */ | 2 /* Type */, parent); + this.innerScope = new NonRootScope(this, 1 /* Function */); + } +}; +var _state; +var ConditionalTypeScope = class extends NonRootScope { + constructor(parent) { + super(parent, 8 /* ConditionalType */); + __privateAdd(this, _state, 0 /* Initial */); + } + addUse(use) { + if (__privateGet(this, _state) === 2 /* TrueType */) { + return void this.uses.push(use); + } + return this.parent.addUse(use, this); + } + updateState(newState) { + __privateSet(this, _state, newState); + } +}; +_state = new WeakMap(); + +// src/usage/UsageWalker.ts +var _result, _scope, _handleBindingName, handleBindingName_fn, _handleConditionalType, handleConditionalType_fn, _handleDeclaration, handleDeclaration_fn, _handleFunctionLikeDeclaration, handleFunctionLikeDeclaration_fn, _handleModule, handleModule_fn, _handleVariableDeclaration, handleVariableDeclaration_fn; +var UsageWalker = class { + constructor() { + __privateAdd(this, _handleBindingName); + __privateAdd(this, _handleConditionalType); + __privateAdd(this, _handleDeclaration); + __privateAdd(this, _handleFunctionLikeDeclaration); + __privateAdd(this, _handleModule); + __privateAdd(this, _handleVariableDeclaration); + __privateAdd(this, _result, /* @__PURE__ */ new Map()); + __privateAdd(this, _scope, void 0); + } + getUsage(sourceFile) { + const variableCallback = (variable, key) => { + __privateGet(this, _result).set(key, variable); + }; + const isModule = ts24.isExternalModule(sourceFile); + __privateSet(this, _scope, new RootScope( + sourceFile.isDeclarationFile && isModule && !containsExportStatement(sourceFile), + !isModule + )); + const cb = (node) => { + if (isBlockScopeBoundary(node)) { + return continueWithScope( + node, + new BlockScope(__privateGet(this, _scope).getFunctionScope(), __privateGet(this, _scope)), + handleBlockScope + ); + } + switch (node.kind) { + case ts24.SyntaxKind.ClassExpression: + return continueWithScope( + node, + node.name !== void 0 ? new ClassExpressionScope( + node.name, + __privateGet(this, _scope) + ) : new NonRootScope(__privateGet(this, _scope), 1 /* Function */) + ); + case ts24.SyntaxKind.ClassDeclaration: + __privateMethod(this, _handleDeclaration, handleDeclaration_fn).call(this, node, true, 4 /* Value */ | 2 /* Type */); + return continueWithScope( + node, + new NonRootScope(__privateGet(this, _scope), 1 /* Function */) + ); + case ts24.SyntaxKind.InterfaceDeclaration: + case ts24.SyntaxKind.TypeAliasDeclaration: + __privateMethod(this, _handleDeclaration, handleDeclaration_fn).call(this, node, true, 2 /* Type */); + return continueWithScope( + node, + new NonRootScope(__privateGet(this, _scope), 4 /* Type */) + ); + case ts24.SyntaxKind.EnumDeclaration: + __privateMethod(this, _handleDeclaration, handleDeclaration_fn).call(this, node, true, 7 /* Any */); + return continueWithScope( + node, + __privateGet(this, _scope).createOrReuseEnumScope( + node.name.text, + includesModifier( + node.modifiers, + ts24.SyntaxKind.ExportKeyword + ) + ) + ); + case ts24.SyntaxKind.ModuleDeclaration: + return __privateMethod(this, _handleModule, handleModule_fn).call(this, node, continueWithScope); + case ts24.SyntaxKind.MappedType: + return continueWithScope( + node, + new NonRootScope(__privateGet(this, _scope), 4 /* Type */) + ); + case ts24.SyntaxKind.FunctionExpression: + case ts24.SyntaxKind.ArrowFunction: + case ts24.SyntaxKind.Constructor: + case ts24.SyntaxKind.MethodDeclaration: + case ts24.SyntaxKind.FunctionDeclaration: + case ts24.SyntaxKind.GetAccessor: + case ts24.SyntaxKind.SetAccessor: + case ts24.SyntaxKind.MethodSignature: + case ts24.SyntaxKind.CallSignature: + case ts24.SyntaxKind.ConstructSignature: + case ts24.SyntaxKind.ConstructorType: + case ts24.SyntaxKind.FunctionType: + return __privateMethod(this, _handleFunctionLikeDeclaration, handleFunctionLikeDeclaration_fn).call(this, node, cb, variableCallback); + case ts24.SyntaxKind.ConditionalType: + return __privateMethod(this, _handleConditionalType, handleConditionalType_fn).call(this, node, cb, variableCallback); + case ts24.SyntaxKind.VariableDeclarationList: + __privateMethod(this, _handleVariableDeclaration, handleVariableDeclaration_fn).call(this, node); + break; + case ts24.SyntaxKind.Parameter: + if (node.parent.kind !== ts24.SyntaxKind.IndexSignature && (node.name.kind !== ts24.SyntaxKind.Identifier || identifierToKeywordKind( + node.name + ) !== ts24.SyntaxKind.ThisKeyword)) { + __privateMethod(this, _handleBindingName, handleBindingName_fn).call(this, node.name, false, false); + } + break; + case ts24.SyntaxKind.EnumMember: + __privateGet(this, _scope).addVariable( + getPropertyName(node.name), + node.name, + 1 /* Function */, + true, + 4 /* Value */ + ); + break; + case ts24.SyntaxKind.ImportClause: + case ts24.SyntaxKind.ImportSpecifier: + case ts24.SyntaxKind.NamespaceImport: + case ts24.SyntaxKind.ImportEqualsDeclaration: + __privateMethod(this, _handleDeclaration, handleDeclaration_fn).call(this, node, false, 7 /* Any */ | 8 /* Import */); + break; + case ts24.SyntaxKind.TypeParameter: + __privateGet(this, _scope).addVariable( + node.name.text, + node.name, + node.parent.kind === ts24.SyntaxKind.InferType ? 8 /* InferType */ : 7 /* Type */, + false, + 2 /* Type */ + ); + break; + case ts24.SyntaxKind.ExportSpecifier: + if (node.propertyName !== void 0) { + return __privateGet(this, _scope).markExported( + node.propertyName, + node.name + ); + } + return __privateGet(this, _scope).markExported(node.name); + case ts24.SyntaxKind.ExportAssignment: + if (node.expression.kind === ts24.SyntaxKind.Identifier) { + return __privateGet(this, _scope).markExported( + node.expression + ); + } + break; + case ts24.SyntaxKind.Identifier: { + const domain = getUsageDomain(node); + if (domain !== void 0) { + __privateGet(this, _scope).addUse({ domain, location: node }); + } + return; + } + } + return ts24.forEachChild(node, cb); + }; + const continueWithScope = (node, scope, next = forEachChild) => { + const savedScope = __privateGet(this, _scope); + __privateSet(this, _scope, scope); + next(node); + __privateGet(this, _scope).end(variableCallback); + __privateSet(this, _scope, savedScope); + }; + const handleBlockScope = (node) => { + if (node.kind === ts24.SyntaxKind.CatchClause && node.variableDeclaration !== void 0) { + __privateMethod(this, _handleBindingName, handleBindingName_fn).call(this, node.variableDeclaration.name, true, false); + } + return ts24.forEachChild(node, cb); + }; + ts24.forEachChild(sourceFile, cb); + __privateGet(this, _scope).end(variableCallback); + return __privateGet(this, _result); + function forEachChild(node) { + return ts24.forEachChild(node, cb); + } + } +}; +_result = new WeakMap(); +_scope = new WeakMap(); +_handleBindingName = new WeakSet(); +handleBindingName_fn = function(name, blockScoped, exported) { + if (name.kind === ts24.SyntaxKind.Identifier) { + return __privateGet(this, _scope).addVariable( + name.text, + name, + blockScoped ? 3 /* Block */ : 1 /* Function */, + exported, + 4 /* Value */ + ); + } + forEachDestructuringIdentifier(name, (declaration) => { + __privateGet(this, _scope).addVariable( + declaration.name.text, + declaration.name, + blockScoped ? 3 /* Block */ : 1 /* Function */, + exported, + 4 /* Value */ + ); + }); +}; +_handleConditionalType = new WeakSet(); +handleConditionalType_fn = function(node, cb, varCb) { + const savedScope = __privateGet(this, _scope); + const scope = __privateSet(this, _scope, new ConditionalTypeScope(savedScope)); + cb(node.checkType); + scope.updateState(1 /* Extends */); + cb(node.extendsType); + scope.updateState(2 /* TrueType */); + cb(node.trueType); + scope.updateState(3 /* FalseType */); + cb(node.falseType); + scope.end(varCb); + __privateSet(this, _scope, savedScope); +}; +_handleDeclaration = new WeakSet(); +handleDeclaration_fn = function(node, blockScoped, domain) { + if (node.name !== void 0) { + __privateGet(this, _scope).addVariable( + node.name.text, + node.name, + blockScoped ? 3 /* Block */ : 1 /* Function */, + includesModifier( + node.modifiers, + ts24.SyntaxKind.ExportKeyword + ), + domain + ); + } +}; +_handleFunctionLikeDeclaration = new WeakSet(); +handleFunctionLikeDeclaration_fn = function(node, cb, varCb) { + if (canHaveDecorators(node)) { + getDecorators(node)?.forEach(cb); + } + const savedScope = __privateGet(this, _scope); + if (node.kind === ts24.SyntaxKind.FunctionDeclaration) { + __privateMethod(this, _handleDeclaration, handleDeclaration_fn).call(this, node, false, 4 /* Value */); + } + const scope = __privateSet(this, _scope, node.kind === ts24.SyntaxKind.FunctionExpression && node.name !== void 0 ? new FunctionExpressionScope(node.name, savedScope) : new FunctionScope(savedScope)); + if (node.name !== void 0) { + cb(node.name); + } + if (node.typeParameters !== void 0) { + node.typeParameters.forEach(cb); + } + node.parameters.forEach(cb); + if (node.type !== void 0) { + cb(node.type); + } + if (node.body !== void 0) { + scope.beginBody(); + cb(node.body); + } + scope.end(varCb); + __privateSet(this, _scope, savedScope); +}; +_handleModule = new WeakSet(); +handleModule_fn = function(node, next) { + if (node.flags & ts24.NodeFlags.GlobalAugmentation) { + return next( + node, + __privateGet(this, _scope).createOrReuseNamespaceScope("-global", false, true, false) + ); + } + if (node.name.kind === ts24.SyntaxKind.Identifier) { + const exported = isNamespaceExported(node); + __privateGet(this, _scope).addVariable( + node.name.text, + node.name, + 1 /* Function */, + exported, + 1 /* Namespace */ | 4 /* Value */ + ); + const ambient = includesModifier( + node.modifiers, + ts24.SyntaxKind.DeclareKeyword + ); + return next( + node, + __privateGet(this, _scope).createOrReuseNamespaceScope( + node.name.text, + exported, + ambient, + ambient && namespaceHasExportStatement(node) + ) + ); + } + return next( + node, + __privateGet(this, _scope).createOrReuseNamespaceScope( + `"${node.name.text}"`, + false, + true, + namespaceHasExportStatement(node) + ) + ); +}; +_handleVariableDeclaration = new WeakSet(); +handleVariableDeclaration_fn = function(declarationList) { + const blockScoped = isBlockScopedVariableDeclarationList(declarationList); + const exported = declarationList.parent.kind === ts24.SyntaxKind.VariableStatement && includesModifier( + declarationList.parent.modifiers, + ts24.SyntaxKind.ExportKeyword + ); + for (const declaration of declarationList.declarations) { + __privateMethod(this, _handleBindingName, handleBindingName_fn).call(this, declaration.name, blockScoped, exported); + } +}; +function isNamespaceExported(node) { + return node.parent.kind === ts24.SyntaxKind.ModuleDeclaration || includesModifier(node.modifiers, ts24.SyntaxKind.ExportKeyword); +} +function namespaceHasExportStatement(ns) { + if (ns.body === void 0 || ns.body.kind !== ts24.SyntaxKind.ModuleBlock) { + return false; + } + return containsExportStatement(ns.body); +} +function containsExportStatement(block) { + for (const statement of block.statements) { + if (statement.kind === ts24.SyntaxKind.ExportDeclaration || statement.kind === ts24.SyntaxKind.ExportAssignment) { + return true; + } + } + return false; +} +function isBlockScopedVariableDeclarationList(declarationList) { + return (declarationList.flags & ts24.NodeFlags.BlockScoped) !== 0; +} +function forEachDestructuringIdentifier(pattern, fn) { + for (const element of pattern.elements) { + if (element.kind !== ts24.SyntaxKind.BindingElement) { + continue; + } + let result; + if (element.name.kind === ts24.SyntaxKind.Identifier) { + result = fn(element); + } else { + result = forEachDestructuringIdentifier(element.name, fn); + } + if (result) { + return result; + } + } +} + +// src/usage/collectVariableUsage.ts +function collectVariableUsage(sourceFile) { + return new UsageWalker().getUsage(sourceFile); +} export { + AccessKind, + DeclarationDomain, + UsageDomain, + collectVariableUsage, forEachComment, forEachToken, + getAccessKind, getCallSignaturesOfType, getPropertyOfType, getWellKnownSymbolPropertyOfType, @@ -1209,5 +2330,7 @@ export { isVariableLikeDeclaration, isVoidKeyword, symbolHasReadonlyDeclaration, + typeParts, unionTypeParts }; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/ts-api-utils/lib/index.js.map b/node_modules/ts-api-utils/lib/index.js.map new file mode 100644 index 0000000000..7d2131e6ff --- /dev/null +++ b/node_modules/ts-api-utils/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/comments.ts","../src/tokens.ts","../src/compilerOptions.ts","../src/flags.ts","../src/modifiers.ts","../src/nodes/access.ts","../src/syntax.ts","../src/nodes/typeGuards/compound.ts","../src/nodes/typeGuards/single.ts","../src/nodes/typeGuards/union.ts","../src/utils.ts","../src/scopes.ts","../src/types/getters.ts","../src/types/typeGuards/intrinsic.ts","../src/types/typeGuards/objects.ts","../src/types/typeGuards/single.ts","../src/types/typeGuards/compound.ts","../src/types/typeGuards/literal.ts","../src/types/utilities.ts","../src/nodes/utilities.ts","../src/usage/UsageWalker.ts","../src/usage/Scope.ts","../src/usage/declarations.ts","../src/usage/utils.ts","../src/usage/getPropertyName.ts","../src/usage/getUsageDomain.ts","../src/usage/scopes.ts","../src/usage/collectVariableUsage.ts"],"sourcesContent":["// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { forEachToken } from \"./tokens\";\n\n/**\n * Exclude trailing positions that would lead to scanning for trivia inside `JsxText`.\n * @internal\n */\nfunction canHaveTrailingTrivia(token: ts.Node): boolean {\n\tswitch (token.kind) {\n\t\tcase ts.SyntaxKind.CloseBraceToken:\n\t\t\t// after a JsxExpression inside a JsxElement's body can only be other JsxChild, but no trivia\n\t\t\treturn (\n\t\t\t\ttoken.parent.kind !== ts.SyntaxKind.JsxExpression ||\n\t\t\t\t!isJsxElementOrFragment(token.parent.parent)\n\t\t\t);\n\t\tcase ts.SyntaxKind.GreaterThanToken:\n\t\t\tswitch (token.parent.kind) {\n\t\t\t\tcase ts.SyntaxKind.JsxOpeningElement:\n\t\t\t\t\t// if end is not equal, this is part of the type arguments list. in all other cases it would be inside the element body\n\t\t\t\t\treturn token.end !== token.parent.end;\n\t\t\t\tcase ts.SyntaxKind.JsxOpeningFragment:\n\t\t\t\t\treturn false; // would be inside the fragment\n\t\t\t\tcase ts.SyntaxKind.JsxSelfClosingElement:\n\t\t\t\t\treturn (\n\t\t\t\t\t\ttoken.end !== token.parent.end || // if end is not equal, this is part of the type arguments list\n\t\t\t\t\t\t!isJsxElementOrFragment(token.parent.parent)\n\t\t\t\t\t); // there's only trailing trivia if it's the end of the top element\n\t\t\t\tcase ts.SyntaxKind.JsxClosingElement:\n\t\t\t\tcase ts.SyntaxKind.JsxClosingFragment:\n\t\t\t\t\t// there's only trailing trivia if it's the end of the top element\n\t\t\t\t\treturn !isJsxElementOrFragment(token.parent.parent.parent);\n\t\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Test if a node is a `JsxElement` or `JsxFragment`.\n * @internal\n */\nfunction isJsxElementOrFragment(\n\tnode: ts.Node,\n): node is ts.JsxElement | ts.JsxFragment {\n\treturn (\n\t\tnode.kind === ts.SyntaxKind.JsxElement ||\n\t\tnode.kind === ts.SyntaxKind.JsxFragment\n\t);\n}\n\n/**\n * Callback type used for {@link forEachComment}.\n * @category Callbacks\n */\nexport type ForEachCommentCallback = (\n\tfullText: string,\n\tcomment: ts.CommentRange,\n) => void;\n\n/**\n * Iterates over all comments owned by `node` or its children.\n * @category Nodes - Other Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * forEachComment(node, (fullText, comment) => {\n * console.log(`Found comment at position ${comment.pos}: '${fullText}'.`);\n * });\n * ```\n */\nexport function forEachComment(\n\tnode: ts.Node,\n\tcallback: ForEachCommentCallback,\n\tsourceFile: ts.SourceFile = node.getSourceFile(),\n): void {\n\t/* Visit all tokens and skip trivia.\n Comment ranges between tokens are parsed without the need of a scanner.\n forEachTokenWithWhitespace does intentionally not pay attention to the correct comment ownership of nodes as it always\n scans all trivia before each token, which could include trailing comments of the previous token.\n Comment ownership is done right in this function*/\n\tconst fullText = sourceFile.text;\n\tconst notJsx = sourceFile.languageVariant !== ts.LanguageVariant.JSX;\n\treturn forEachToken(\n\t\tnode,\n\t\t(token) => {\n\t\t\tif (token.pos === token.end) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (token.kind !== ts.SyntaxKind.JsxText) {\n\t\t\t\tts.forEachLeadingCommentRange(\n\t\t\t\t\tfullText,\n\t\t\t\t\t// skip shebang at position 0\n\t\t\t\t\ttoken.pos === 0 ? (ts.getShebang(fullText) ?? \"\").length : token.pos,\n\t\t\t\t\tcommentCallback,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (notJsx || canHaveTrailingTrivia(token)) {\n\t\t\t\treturn ts.forEachTrailingCommentRange(\n\t\t\t\t\tfullText,\n\t\t\t\t\ttoken.end,\n\t\t\t\t\tcommentCallback,\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tsourceFile,\n\t);\n\tfunction commentCallback(pos: number, end: number, kind: ts.CommentKind) {\n\t\tcallback(fullText, { end, kind, pos });\n\t}\n}\n","// Code largely based on ajafff/tsutils:\n// https://github.com/ajafff/tsutils/blob/03b4df15d14702f9c7a128ac3fae77171778d613/util/util.ts\n// Original license MIT:\n// https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\n/**\n * Callback type used for {@link forEachToken}.\n * @category Callbacks\n */\nexport type ForEachTokenCallback = (token: ts.Node) => void;\n\n/**\n * Iterates over all tokens of `node`\n * @category Nodes - Other Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * forEachToken(node, (token) => {\n * \tconsole.log(\"Found token:\", token.getText());\n * });\n * ```\n * @param node - The node whose tokens should be visited\n * @param callback - Is called for every token contained in `node`\n */\nexport function forEachToken(\n\tnode: ts.Node,\n\tcallback: ForEachTokenCallback,\n\tsourceFile: ts.SourceFile = node.getSourceFile(),\n): void {\n\tconst queue = [];\n\twhile (true) {\n\t\tif (ts.isTokenKind(node.kind)) {\n\t\t\tcallback(node);\n\t\t} else if (\n\t\t\t// eslint-disable-next-line deprecation/deprecation -- need for support of TS < 4.7\n\t\t\tnode.kind !== ts.SyntaxKind.JSDocComment\n\t\t) {\n\t\t\tconst children = node.getChildren(sourceFile);\n\t\t\tif (children.length === 1) {\n\t\t\t\tnode = children[0];\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// add children in reverse order, when we pop the next element from the queue, it's the first child\n\t\t\tfor (let i = children.length - 1; i >= 0; --i) {\n\t\t\t\tqueue.push(children[i]);\n\t\t\t}\n\t\t}\n\n\t\tif (queue.length === 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tnode = queue.pop()!;\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\n/**\n * An option that can be tested with {@link isCompilerOptionEnabled}.\n * @category Compiler Options\n */\nexport type BooleanCompilerOptions = keyof {\n\t[K in keyof ts.CompilerOptions as NonNullable<\n\t\tts.CompilerOptions[K]\n\t> extends boolean\n\t\t? K\n\t\t: never]: unknown;\n};\n\n/**\n * Checks if a given compiler option is enabled.\n * It handles dependencies of options, e.g. `declaration` is implicitly enabled by `composite` or `strictNullChecks` is enabled by `strict`.\n * However, it does not check dependencies that are already checked and reported as errors, e.g. `checkJs` without `allowJs`.\n * This function only handles boolean flags.\n * @category Compiler Options\n * @example\n * ```ts\n * const options = {\n * \tallowJs: true,\n * };\n *\n * isCompilerOptionEnabled(options, \"allowJs\"); // true\n * isCompilerOptionEnabled(options, \"allowSyntheticDefaultImports\"); // false\n * ```\n */\nexport function isCompilerOptionEnabled(\n\toptions: ts.CompilerOptions,\n\toption: BooleanCompilerOptions,\n): boolean {\n\tswitch (option) {\n\t\tcase \"stripInternal\":\n\t\tcase \"declarationMap\":\n\t\tcase \"emitDeclarationOnly\":\n\t\t\treturn (\n\t\t\t\toptions[option] === true &&\n\t\t\t\tisCompilerOptionEnabled(options, \"declaration\")\n\t\t\t);\n\t\tcase \"declaration\":\n\t\t\treturn (\n\t\t\t\toptions.declaration || isCompilerOptionEnabled(options, \"composite\")\n\t\t\t);\n\t\tcase \"incremental\":\n\t\t\treturn options.incremental === undefined\n\t\t\t\t? isCompilerOptionEnabled(options, \"composite\")\n\t\t\t\t: options.incremental;\n\t\tcase \"skipDefaultLibCheck\":\n\t\t\treturn (\n\t\t\t\toptions.skipDefaultLibCheck ||\n\t\t\t\tisCompilerOptionEnabled(options, \"skipLibCheck\")\n\t\t\t);\n\t\tcase \"suppressImplicitAnyIndexErrors\":\n\t\t\treturn (\n\t\t\t\toptions.suppressImplicitAnyIndexErrors === true &&\n\t\t\t\tisCompilerOptionEnabled(options, \"noImplicitAny\")\n\t\t\t);\n\t\tcase \"allowSyntheticDefaultImports\":\n\t\t\treturn options.allowSyntheticDefaultImports !== undefined\n\t\t\t\t? options.allowSyntheticDefaultImports\n\t\t\t\t: isCompilerOptionEnabled(options, \"esModuleInterop\") ||\n\t\t\t\t\t\toptions.module === ts.ModuleKind.System;\n\t\tcase \"noUncheckedIndexedAccess\":\n\t\t\treturn (\n\t\t\t\toptions.noUncheckedIndexedAccess === true &&\n\t\t\t\tisCompilerOptionEnabled(options, \"strictNullChecks\")\n\t\t\t);\n\t\tcase \"allowJs\":\n\t\t\treturn options.allowJs === undefined\n\t\t\t\t? isCompilerOptionEnabled(options, \"checkJs\")\n\t\t\t\t: options.allowJs;\n\t\tcase \"noImplicitAny\":\n\t\tcase \"noImplicitThis\":\n\t\tcase \"strictNullChecks\":\n\t\tcase \"strictFunctionTypes\":\n\t\tcase \"strictPropertyInitialization\":\n\t\tcase \"alwaysStrict\":\n\t\tcase \"strictBindCallApply\":\n\t\t\ttype AssertEqual = U; // make sure all strict options are handled here\n\t\t\treturn isStrictCompilerOptionEnabled(\n\t\t\t\toptions,\n\t\t\t\toption as AssertEqual,\n\t\t\t);\n\t}\n\n\treturn options[option] === true;\n}\n\n/**\n * An option that can be tested with {@link isStrictCompilerOptionEnabled}.\n * @category Compiler Options\n */\nexport type StrictCompilerOption =\n\t| \"alwaysStrict\"\n\t| \"noImplicitAny\"\n\t| \"noImplicitThis\"\n\t| \"strictBindCallApply\"\n\t| \"strictFunctionTypes\"\n\t| \"strictNullChecks\"\n\t| \"strictPropertyInitialization\";\n\n/**\n * Checks if a given compiler option is enabled, accounting for whether all flags\n * (except `strictPropertyInitialization`) have been enabled by `strict: true`.\n * @category Compiler Options\n * @example\n * ```ts\n * const optionsLenient = {\n * \tnoImplicitAny: true,\n * };\n *\n * isStrictCompilerOptionEnabled(optionsLenient, \"noImplicitAny\"); // true\n * isStrictCompilerOptionEnabled(optionsLenient, \"noImplicitThis\"); // false\n * ```\n * @example\n * ```ts\n * const optionsStrict = {\n * \tnoImplicitThis: false,\n * \tstrict: true,\n * };\n *\n * isStrictCompilerOptionEnabled(optionsStrict, \"noImplicitAny\"); // true\n * isStrictCompilerOptionEnabled(optionsStrict, \"noImplicitThis\"); // false\n * ```\n */\nexport function isStrictCompilerOptionEnabled(\n\toptions: ts.CompilerOptions,\n\toption: StrictCompilerOption,\n): boolean {\n\treturn (\n\t\t(options.strict ? options[option] !== false : options[option] === true) &&\n\t\t(option !== \"strictPropertyInitialization\" ||\n\t\t\tisStrictCompilerOptionEnabled(options, \"strictNullChecks\"))\n\t);\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\n/**\n * Test if the given flag is set on the combined flags.\n * @internal\n */\nfunction isFlagSet(allFlags: number, flag: number): boolean {\n\treturn (allFlags & flag) !== 0;\n}\n\n/**\n * Test if the given flag is set on the given object.\n * @internal\n */\nfunction isFlagSetOnObject(obj: { flags: number }, flag: number): boolean {\n\treturn isFlagSet(obj.flags, flag);\n}\n\n/**\n * Test if the given node has the given `ModifierFlags` set.\n * @category Nodes - Flag Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isModifierFlagSet(node, ts.ModifierFlags.Abstract)) {\n * // ...\n * }\n * ```\n */\nexport function isModifierFlagSet(\n\tnode: ts.Declaration,\n\tflag: ts.ModifierFlags,\n): boolean {\n\treturn isFlagSet(ts.getCombinedModifierFlags(node), flag);\n}\n\n/**\n * Test if the given node has the given `NodeFlags` set.\n * @category Nodes - Flag Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNodeFlagSet(node, ts.NodeFlags.AwaitContext)) {\n * // ...\n * }\n * ```\n */\nexport const isNodeFlagSet: (node: ts.Node, flag: ts.NodeFlags) => boolean =\n\tisFlagSetOnObject;\n\n/**\n * Test if the given node has the given `ObjectFlags` set.\n * @category Nodes - Flag Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isObjectFlagSet(node, ts.ObjectFlags.Anonymous)) {\n * // ...\n * }\n * ```\n */\nexport function isObjectFlagSet(\n\tobjectType: ts.ObjectType,\n\tflag: ts.ObjectFlags,\n): boolean {\n\treturn isFlagSet(objectType.objectFlags, flag);\n}\n\n/**\n * Test if the given node has the given `SymbolFlags` set.\n * @category Nodes - Flag Utilities\n * @example\n * ```ts\n * declare const symbol: ts.Symbol;\n *\n * if (isSymbolFlagSet(symbol, ts.SymbolFlags.Accessor)) {\n * // ...\n * }\n * ```\n */\nexport const isSymbolFlagSet: (\n\tsymbol: ts.Symbol,\n\tflag: ts.SymbolFlags,\n) => boolean = isFlagSetOnObject;\n\n/**\n * Test if the given node has the given `TypeFlags` set.\n * @category Nodes - Flag Utilities\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTypeFlagSet(type, ts.TypeFlags.Any)) {\n * // ...\n * }\n * ```\n */\nexport const isTypeFlagSet: (type: ts.Type, flag: ts.TypeFlags) => boolean =\n\tisFlagSetOnObject;\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\n/**\n * Test if the given iterable includes a modifier of any of the given kinds.\n * @category Modifier Utilities\n * @example\n * ```ts\n * declare const modifiers: ts.Modifier[];\n *\n * includesModifier(modifiers, ts.SyntaxKind.AbstractKeyword);\n * ```\n */\nexport function includesModifier(\n\tmodifiers: Iterable | undefined,\n\t...kinds: ts.ModifierSyntaxKind[]\n): boolean {\n\tif (modifiers === undefined) {\n\t\treturn false;\n\t}\n\n\tfor (const modifier of modifiers) {\n\t\tif (kinds.includes(modifier.kind as ts.ModifierSyntaxKind)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { isAssignmentKind } from \"../syntax\";\n\n/* eslint-disable perfectionist/sort-enums */\n/**\n * What operations(s), if any, an expression applies.\n */\nexport enum AccessKind {\n\tNone = 0,\n\tRead = 1 << 0,\n\tWrite = 1 << 1,\n\tDelete = 1 << 2,\n\tReadWrite = Read | Write,\n\t/* eslint-enable perfectionist/sort-enums */\n}\n\n/**\n * Determines which operation(s), if any, an expression applies.\n * @example\n * ```ts\n * declare const node: ts.Expression;\n *\n * if (getAccessKind(node).Write & AccessKind.Write) !== 0) {\n * // this is a reassignment (write)\n * }\n * ```\n */\nexport function getAccessKind(node: ts.Expression): AccessKind {\n\tconst parent = node.parent;\n\tswitch (parent.kind) {\n\t\tcase ts.SyntaxKind.DeleteExpression:\n\t\t\treturn AccessKind.Delete;\n\t\tcase ts.SyntaxKind.PostfixUnaryExpression:\n\t\t\treturn AccessKind.ReadWrite;\n\t\tcase ts.SyntaxKind.PrefixUnaryExpression:\n\t\t\treturn (parent as ts.PrefixUnaryExpression).operator ===\n\t\t\t\tts.SyntaxKind.PlusPlusToken ||\n\t\t\t\t(parent as ts.PrefixUnaryExpression).operator ===\n\t\t\t\t\tts.SyntaxKind.MinusMinusToken\n\t\t\t\t? AccessKind.ReadWrite\n\t\t\t\t: AccessKind.Read;\n\t\tcase ts.SyntaxKind.BinaryExpression:\n\t\t\treturn (parent as ts.BinaryExpression).right === node\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: !isAssignmentKind((parent as ts.BinaryExpression).operatorToken.kind)\n\t\t\t\t\t? AccessKind.Read\n\t\t\t\t\t: (parent as ts.BinaryExpression).operatorToken.kind ===\n\t\t\t\t\t\t ts.SyntaxKind.EqualsToken\n\t\t\t\t\t\t? AccessKind.Write\n\t\t\t\t\t\t: AccessKind.ReadWrite;\n\t\tcase ts.SyntaxKind.ShorthandPropertyAssignment:\n\t\t\treturn (parent as ts.ShorthandPropertyAssignment)\n\t\t\t\t.objectAssignmentInitializer === node\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: isInDestructuringAssignment(parent as ts.ShorthandPropertyAssignment)\n\t\t\t\t\t? AccessKind.Write\n\t\t\t\t\t: AccessKind.Read;\n\t\tcase ts.SyntaxKind.PropertyAssignment:\n\t\t\treturn (parent as ts.PropertyAssignment).name === node\n\t\t\t\t? AccessKind.None\n\t\t\t\t: isInDestructuringAssignment(parent as ts.PropertyAssignment)\n\t\t\t\t\t? AccessKind.Write\n\t\t\t\t\t: AccessKind.Read;\n\t\tcase ts.SyntaxKind.ArrayLiteralExpression:\n\t\tcase ts.SyntaxKind.SpreadElement:\n\t\tcase ts.SyntaxKind.SpreadAssignment:\n\t\t\treturn isInDestructuringAssignment(\n\t\t\t\tparent as\n\t\t\t\t\t| ts.ArrayLiteralExpression\n\t\t\t\t\t| ts.SpreadAssignment\n\t\t\t\t\t| ts.SpreadElement,\n\t\t\t)\n\t\t\t\t? AccessKind.Write\n\t\t\t\t: AccessKind.Read;\n\t\tcase ts.SyntaxKind.ParenthesizedExpression:\n\t\tcase ts.SyntaxKind.NonNullExpression:\n\t\tcase ts.SyntaxKind.TypeAssertionExpression:\n\t\tcase ts.SyntaxKind.AsExpression:\n\t\t\t// (foo! as {})++\n\t\t\treturn getAccessKind(parent as ts.Expression);\n\t\tcase ts.SyntaxKind.ForOfStatement:\n\t\tcase ts.SyntaxKind.ForInStatement:\n\t\t\treturn (parent as ts.ForInOrOfStatement).initializer === node\n\t\t\t\t? AccessKind.Write\n\t\t\t\t: AccessKind.Read;\n\t\tcase ts.SyntaxKind.ExpressionWithTypeArguments:\n\t\t\treturn (\n\t\t\t\t(parent as ts.ExpressionWithTypeArguments).parent as ts.HeritageClause\n\t\t\t).token === ts.SyntaxKind.ExtendsKeyword &&\n\t\t\t\tparent.parent.parent.kind !== ts.SyntaxKind.InterfaceDeclaration\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: AccessKind.None;\n\t\tcase ts.SyntaxKind.ComputedPropertyName:\n\t\tcase ts.SyntaxKind.ExpressionStatement:\n\t\tcase ts.SyntaxKind.TypeOfExpression:\n\t\tcase ts.SyntaxKind.ElementAccessExpression:\n\t\tcase ts.SyntaxKind.ForStatement:\n\t\tcase ts.SyntaxKind.IfStatement:\n\t\tcase ts.SyntaxKind.DoStatement:\n\t\tcase ts.SyntaxKind.WhileStatement:\n\t\tcase ts.SyntaxKind.SwitchStatement:\n\t\tcase ts.SyntaxKind.WithStatement:\n\t\tcase ts.SyntaxKind.ThrowStatement:\n\t\tcase ts.SyntaxKind.CallExpression:\n\t\tcase ts.SyntaxKind.NewExpression:\n\t\tcase ts.SyntaxKind.TaggedTemplateExpression:\n\t\tcase ts.SyntaxKind.JsxExpression:\n\t\tcase ts.SyntaxKind.Decorator:\n\t\tcase ts.SyntaxKind.TemplateSpan:\n\t\tcase ts.SyntaxKind.JsxOpeningElement:\n\t\tcase ts.SyntaxKind.JsxSelfClosingElement:\n\t\tcase ts.SyntaxKind.JsxSpreadAttribute:\n\t\tcase ts.SyntaxKind.VoidExpression:\n\t\tcase ts.SyntaxKind.ReturnStatement:\n\t\tcase ts.SyntaxKind.AwaitExpression:\n\t\tcase ts.SyntaxKind.YieldExpression:\n\t\tcase ts.SyntaxKind.ConditionalExpression:\n\t\tcase ts.SyntaxKind.CaseClause:\n\t\tcase ts.SyntaxKind.JsxElement:\n\t\t\treturn AccessKind.Read;\n\t\tcase ts.SyntaxKind.ArrowFunction:\n\t\t\treturn (parent as ts.ArrowFunction).body === node\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: AccessKind.Write;\n\t\tcase ts.SyntaxKind.PropertyDeclaration:\n\t\tcase ts.SyntaxKind.VariableDeclaration:\n\t\tcase ts.SyntaxKind.Parameter:\n\t\tcase ts.SyntaxKind.EnumMember:\n\t\tcase ts.SyntaxKind.BindingElement:\n\t\tcase ts.SyntaxKind.JsxAttribute:\n\t\t\treturn (parent as ts.JsxAttribute).initializer === node\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: AccessKind.None;\n\t\tcase ts.SyntaxKind.PropertyAccessExpression:\n\t\t\treturn (parent as ts.PropertyAccessExpression).expression === node\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: AccessKind.None;\n\t\tcase ts.SyntaxKind.ExportAssignment:\n\t\t\treturn (parent as ts.ExportAssignment).isExportEquals\n\t\t\t\t? AccessKind.Read\n\t\t\t\t: AccessKind.None;\n\t}\n\n\treturn AccessKind.None;\n}\n\nfunction isInDestructuringAssignment(\n\tnode:\n\t\t| ts.ArrayLiteralExpression\n\t\t| ts.ObjectLiteralExpression\n\t\t| ts.PropertyAssignment\n\t\t| ts.ShorthandPropertyAssignment\n\t\t| ts.SpreadAssignment\n\t\t| ts.SpreadElement,\n): boolean {\n\tswitch (node.kind) {\n\t\tcase ts.SyntaxKind.ShorthandPropertyAssignment:\n\t\t\tif (node.objectAssignmentInitializer !== undefined) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t// falls through\n\t\tcase ts.SyntaxKind.PropertyAssignment:\n\t\tcase ts.SyntaxKind.SpreadAssignment:\n\t\t\tnode = node.parent as\n\t\t\t\t| ts.ArrayLiteralExpression\n\t\t\t\t| ts.ObjectLiteralExpression;\n\t\t\tbreak;\n\t\tcase ts.SyntaxKind.SpreadElement:\n\t\t\tif (node.parent.kind !== ts.SyntaxKind.ArrayLiteralExpression) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tnode = node.parent;\n\t}\n\n\twhile (true) {\n\t\tswitch (node.parent.kind) {\n\t\t\tcase ts.SyntaxKind.BinaryExpression:\n\t\t\t\treturn (\n\t\t\t\t\t(node.parent as ts.BinaryExpression).left === node &&\n\t\t\t\t\t(node.parent as ts.BinaryExpression).operatorToken.kind ===\n\t\t\t\t\t\tts.SyntaxKind.EqualsToken\n\t\t\t\t);\n\t\t\tcase ts.SyntaxKind.ForOfStatement:\n\t\t\t\treturn (node.parent as ts.ForOfStatement).initializer === node;\n\t\t\tcase ts.SyntaxKind.ArrayLiteralExpression:\n\t\t\tcase ts.SyntaxKind.ObjectLiteralExpression:\n\t\t\t\tnode = node.parent as\n\t\t\t\t\t| ts.ArrayLiteralExpression\n\t\t\t\t\t| ts.ObjectLiteralExpression;\n\t\t\t\tbreak;\n\t\t\tcase ts.SyntaxKind.SpreadAssignment:\n\t\t\tcase ts.SyntaxKind.PropertyAssignment:\n\t\t\t\tnode = node.parent.parent as ts.ObjectLiteralExpression;\n\t\t\t\tbreak;\n\t\t\tcase ts.SyntaxKind.SpreadElement:\n\t\t\t\tif (node.parent.parent.kind !== ts.SyntaxKind.ArrayLiteralExpression) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tnode = node.parent.parent as ts.ArrayLiteralExpression;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\n/**\n * Test of the kind given is for assignment.\n * @category Syntax Utilities\n * @example\n * ```ts\n * declare const kind: ts.SyntaxKind;\n *\n * isAssignmentKind(kind);\n * ```\n */\nexport function isAssignmentKind(kind: ts.SyntaxKind): boolean {\n\treturn (\n\t\tkind >= ts.SyntaxKind.FirstAssignment &&\n\t\tkind <= ts.SyntaxKind.LastAssignment\n\t);\n}\n\n/**\n * Test if a string is numeric.\n * @category Syntax Utilities\n * @example\n * ```ts\n * isNumericPropertyName(\"abc\"); // false\n * isNumericPropertyName(\"123\"); // true\n * ```\n */\nexport function isNumericPropertyName(name: string | ts.__String): boolean {\n\treturn String(+name) === name;\n}\n\nfunction charSize(ch: number) {\n\treturn ch >= 0x10000 ? 2 : 1;\n}\n\n/**\n * Determines whether the given text can be used to access a property with a `PropertyAccessExpression` while preserving the property's name.\n * @category Syntax Utilities\n * @example\n * ```ts\n * isValidPropertyAccess(\"abc\"); // true\n * isValidPropertyAccess(\"123\"); // false\n * ```\n */\nexport function isValidPropertyAccess(\n\ttext: string,\n\tlanguageVersion = ts.ScriptTarget.Latest,\n): boolean {\n\tif (text.length === 0) {\n\t\treturn false;\n\t}\n\n\tlet ch = text.codePointAt(0)!;\n\tif (!ts.isIdentifierStart(ch, languageVersion)) {\n\t\treturn false;\n\t}\n\n\tfor (let i = charSize(ch); i < text.length; i += charSize(ch)) {\n\t\tch = text.codePointAt(i)!;\n\t\tif (!ts.isIdentifierPart(ch, languageVersion)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n","import ts from \"typescript\";\n\nimport { isSuperExpression } from \"./single\";\nimport {\n\tisDeclarationName,\n\tisEntityNameExpression,\n\tisJSDocNamespaceBody,\n\tisJsxTagNameExpression,\n\tisNamespaceBody,\n} from \"./union\";\n\n/**\n * An `AssertionExpression` that is declared as const.\n * @category Node Types\n */\nexport type ConstAssertionExpression = ts.AssertionExpression & {\n\ttype: ts.TypeReferenceNode;\n\ttypeName: ConstAssertionIdentifier;\n};\n\n/**\n * An `Identifier` with an `escapedText` value of `\"const\"`.\n * @category Node Types\n */\nexport type ConstAssertionIdentifier = ts.Identifier & {\n\tescapedText: ts.__String & \"const\";\n};\n\n/**\n * Test if a node is a {@link ConstAssertionExpression}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isConstAssertionExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link ConstAssertionExpression}.\n */\nexport function isConstAssertionExpression(\n\tnode: ts.AssertionExpression,\n): node is ConstAssertionExpression {\n\treturn (\n\t\tts.isTypeReferenceNode(node.type) &&\n\t\tts.isIdentifier(node.type.typeName) &&\n\t\tnode.type.typeName.escapedText === \"const\"\n\t);\n}\n\n/**\n * Test if a node is an `IterationStatement`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isIterationStatement(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `IterationStatement`.\n */\nexport function isIterationStatement(\n\tnode: ts.Node,\n): node is ts.IterationStatement {\n\tswitch (node.kind) {\n\t\tcase ts.SyntaxKind.DoStatement:\n\t\tcase ts.SyntaxKind.ForInStatement:\n\t\tcase ts.SyntaxKind.ForOfStatement:\n\t\tcase ts.SyntaxKind.ForStatement:\n\t\tcase ts.SyntaxKind.WhileStatement:\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\n/**\n * Test if a node is a `JSDocNamespaceDeclaration`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJSDocNamespaceDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JSDocNamespaceDeclaration`.\n */\nexport function isJSDocNamespaceDeclaration(\n\tnode: ts.Node,\n): node is ts.JSDocNamespaceDeclaration {\n\treturn (\n\t\tts.isModuleDeclaration(node) &&\n\t\tts.isIdentifier(node.name) &&\n\t\t(node.body === undefined || isJSDocNamespaceBody(node.body))\n\t);\n}\n\n/**\n * Test if a node is a `JsxTagNamePropertyAccess`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsxTagNamePropertyAccess(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsxTagNamePropertyAccess`.\n */\nexport function isJsxTagNamePropertyAccess(\n\tnode: ts.Node,\n): node is ts.JsxTagNamePropertyAccess {\n\treturn (\n\t\tts.isPropertyAccessExpression(node) &&\n\t\t// eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts < 5\n\t\tisJsxTagNameExpression(node.expression)\n\t);\n}\n\n/**\n * a `NamedDeclaration` that definitely has a name.\n * @category Node Types\n */\nexport interface NamedDeclarationWithName extends ts.NamedDeclaration {\n\tname: ts.DeclarationName;\n}\n\n/**\n * Test if a node is a {@link NamedDeclarationWithName}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNamedDeclarationWithName(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link NamedDeclarationWithName}.\n */\nexport function isNamedDeclarationWithName(\n\tnode: ts.Declaration,\n): node is NamedDeclarationWithName {\n\treturn (\n\t\t\"name\" in node &&\n\t\tnode.name !== undefined &&\n\t\tnode.name !== null &&\n\t\tisDeclarationName(node.name as ts.Node)\n\t);\n}\n\n/**\n * Test if a node is a `NamespaceDeclaration`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNamespaceDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `NamespaceDeclaration`.\n */\nexport function isNamespaceDeclaration(\n\tnode: ts.Node,\n): node is ts.NamespaceDeclaration {\n\treturn (\n\t\tts.isModuleDeclaration(node) &&\n\t\tts.isIdentifier(node.name) &&\n\t\tnode.body !== undefined &&\n\t\tisNamespaceBody(node.body)\n\t);\n}\n\n/**\n * A number or string-like literal.\n * @category Node Types\n */\nexport type NumericOrStringLikeLiteral =\n\t| ts.NumericLiteral\n\t| ts.StringLiteralLike;\n\n/**\n * Test if a node is a {@link NumericOrStringLikeLiteral}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNumericOrStringLikeLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link NumericOrStringLikeLiteral}.\n */\nexport function isNumericOrStringLikeLiteral(\n\tnode: ts.Node,\n): node is NumericOrStringLikeLiteral {\n\tswitch (node.kind) {\n\t\tcase ts.SyntaxKind.StringLiteral:\n\t\tcase ts.SyntaxKind.NumericLiteral:\n\t\tcase ts.SyntaxKind.NoSubstitutionTemplateLiteral:\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\n/**\n * Test if a node is a `PropertyAccessEntityNameExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isPropertyAccessEntityNameExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `PropertyAccessEntityNameExpression`.\n */\nexport function isPropertyAccessEntityNameExpression(\n\tnode: ts.Node,\n): node is ts.PropertyAccessEntityNameExpression {\n\treturn (\n\t\tts.isPropertyAccessExpression(node) &&\n\t\tts.isIdentifier(node.name) &&\n\t\tisEntityNameExpression(node.expression)\n\t);\n}\n\n/**\n * Test if a node is a `SuperElementAccessExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSuperElementAccessExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `SuperElementAccessExpression`.\n */\nexport function isSuperElementAccessExpression(\n\tnode: ts.Node,\n): node is ts.SuperElementAccessExpression {\n\treturn (\n\t\tts.isElementAccessExpression(node) && isSuperExpression(node.expression)\n\t);\n}\n\n/**\n * Test if a node is a `SuperPropertyAccessExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSuperPropertyAccessExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `SuperPropertyAccessExpression`.\n */\nexport function isSuperPropertyAccessExpression(\n\tnode: ts.Node,\n): node is ts.SuperPropertyAccessExpression {\n\treturn (\n\t\tts.isPropertyAccessExpression(node) && isSuperExpression(node.expression)\n\t);\n}\n","import ts from \"typescript\";\n\n/**\n * A node that represents the any keyword.\n * @category Node Types\n */\nexport type AnyKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the bigint keyword.\n * @category Node Types\n */\nexport type BigIntKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the boolean keyword.\n * @category Node Types\n */\nexport type BooleanKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the false keyword.\n * @category Node Types\n */\nexport type FalseKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the import keyword.\n * @category Node Types\n */\nexport type ImportKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the never keyword.\n * @category Node Types\n */\nexport type NeverKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the null keyword.\n * @category Node Types\n */\nexport type NullKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the number keyword.\n * @category Node Types\n */\nexport type NumberKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the object keyword.\n * @category Node Types\n */\nexport type ObjectKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the string keyword.\n * @category Node Types\n */\nexport type StringKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the super keyword.\n * @category Node Types\n */\nexport type SuperKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the symbol keyword.\n * @category Node Types\n */\nexport type SymbolKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the this keyword.\n * @category Node Types\n */\nexport type ThisKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the true keyword.\n * @category Node Types\n */\nexport type TrueKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the undefined keyword.\n * @category Node Types\n */\nexport type UndefinedKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the unknown keyword.\n * @category Node Types\n */\nexport type UnknownKeyword = ts.KeywordToken;\n\n/**\n * A node that represents the void keyword.\n * @category Node Types\n */\nexport type VoidKeyword = ts.KeywordToken;\n\n/**\n * Test if a node is an `AbstractKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAbstractKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AbstractKeyword`.\n */\nexport function isAbstractKeyword(node: ts.Node): node is ts.AbstractKeyword {\n\treturn node.kind === ts.SyntaxKind.AbstractKeyword;\n}\n\n/**\n * Test if a node is an `AccessorKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAccessorKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AccessorKeyword`.\n */\nexport function isAccessorKeyword(node: ts.Node): node is ts.AccessorKeyword {\n\treturn node.kind === ts.SyntaxKind.AccessorKeyword;\n}\n\n/**\n * Test if a node is an {@link AnyKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAnyKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an {@link AnyKeyword}.\n */\nexport function isAnyKeyword(node: ts.Node): node is AnyKeyword {\n\treturn node.kind === ts.SyntaxKind.AnyKeyword;\n}\n\n/**\n * Test if a node is an `AssertKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAssertKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AssertKeyword`.\n */\nexport function isAssertKeyword(node: ts.Node): node is ts.AssertKeyword {\n\treturn node.kind === ts.SyntaxKind.AssertKeyword;\n}\n\n/**\n * Test if a node is an `AssertsKeyword`.\n * @deprecated With TypeScript v5, in favor of typescript's `isAssertsKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAssertsKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AssertsKeyword`.\n */\nexport function isAssertsKeyword(node: ts.Node): node is ts.AssertsKeyword {\n\treturn node.kind === ts.SyntaxKind.AssertsKeyword;\n}\n\n/**\n * Test if a node is an `AsyncKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAsyncKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AsyncKeyword`.\n */\nexport function isAsyncKeyword(node: ts.Node): node is ts.AsyncKeyword {\n\treturn node.kind === ts.SyntaxKind.AsyncKeyword;\n}\n\n/**\n * Test if a node is an `AwaitKeyword`.\n * @deprecated With TypeScript v5, in favor of typescript's `isAwaitKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAwaitKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AwaitKeyword`.\n */\nexport function isAwaitKeyword(node: ts.Node): node is ts.AwaitKeyword {\n\treturn node.kind === ts.SyntaxKind.AwaitKeyword;\n}\n\n/**\n * Test if a node is a {@link BigIntKeyword}.\n * @deprecated With TypeScript v5, in favor of typescript's `isBigIntKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBigIntKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link BigIntKeyword}.\n */\nexport function isBigIntKeyword(node: ts.Node): node is BigIntKeyword {\n\treturn node.kind === ts.SyntaxKind.BigIntKeyword;\n}\n\n/**\n * Test if a node is a {@link BooleanKeyword}.\n * @deprecated With TypeScript v5, in favor of typescript's `isBooleanKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBooleanKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link BooleanKeyword}.\n */\nexport function isBooleanKeyword(node: ts.Node): node is BooleanKeyword {\n\treturn node.kind === ts.SyntaxKind.BooleanKeyword;\n}\n\n/**\n * Test if a node is a `ColonToken`.\n * @deprecated With TypeScript v5, in favor of typescript's `isColonToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isColonToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ColonToken`.\n */\nexport function isColonToken(node: ts.Node): node is ts.ColonToken {\n\treturn node.kind === ts.SyntaxKind.ColonToken;\n}\n\n/**\n * Test if a node is a `ConstKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isConstKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ConstKeyword`.\n */\nexport function isConstKeyword(node: ts.Node): node is ts.ConstKeyword {\n\treturn node.kind === ts.SyntaxKind.ConstKeyword;\n}\n\n/**\n * Test if a node is a `DeclareKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDeclareKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DeclareKeyword`.\n */\nexport function isDeclareKeyword(node: ts.Node): node is ts.DeclareKeyword {\n\treturn node.kind === ts.SyntaxKind.DeclareKeyword;\n}\n\n/**\n * Test if a node is a `DefaultKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDefaultKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DefaultKeyword`.\n */\nexport function isDefaultKeyword(node: ts.Node): node is ts.DefaultKeyword {\n\treturn node.kind === ts.SyntaxKind.DefaultKeyword;\n}\n\n/**\n * Test if a node is a `DotToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDotToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DotToken`.\n */\nexport function isDotToken(node: ts.Node): node is ts.DotToken {\n\treturn node.kind === ts.SyntaxKind.DotToken;\n}\n\n/**\n * Test if a node is an `EndOfFileToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isEndOfFileToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `EndOfFileToken`.\n */\nexport function isEndOfFileToken(node: ts.Node): node is ts.EndOfFileToken {\n\treturn node.kind === ts.SyntaxKind.EndOfFileToken;\n}\n\n/**\n * Test if a node is an `EqualsGreaterThanToken`.\n * @deprecated With TypeScript v5, in favor of typescript's `isEqualsGreaterThanToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isEqualsGreaterThanToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `EqualsGreaterThanToken`.\n */\nexport function isEqualsGreaterThanToken(\n\tnode: ts.Node,\n): node is ts.EqualsGreaterThanToken {\n\treturn node.kind === ts.SyntaxKind.EqualsGreaterThanToken;\n}\n\n/**\n * Test if a node is an `EqualsToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isEqualsToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `EqualsToken`.\n */\nexport function isEqualsToken(node: ts.Node): node is ts.EqualsToken {\n\treturn node.kind === ts.SyntaxKind.EqualsToken;\n}\n\n/**\n * Test if a node is an `ExclamationToken`.\n * @deprecated With TypeScript v5, in favor of typescript's `isExclamationToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isExclamationToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ExclamationToken`.\n */\nexport function isExclamationToken(node: ts.Node): node is ts.ExclamationToken {\n\treturn node.kind === ts.SyntaxKind.ExclamationToken;\n}\n\n/**\n * Test if a node is an `ExportKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isExportKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ExportKeyword`.\n */\nexport function isExportKeyword(node: ts.Node): node is ts.ExportKeyword {\n\treturn node.kind === ts.SyntaxKind.ExportKeyword;\n}\n\n/**\n * Test if a node is a {@link FalseKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isFalseKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link FalseKeyword}.\n */\nexport function isFalseKeyword(node: ts.Node): node is FalseKeyword {\n\treturn node.kind === ts.SyntaxKind.FalseKeyword;\n}\n\n/**\n * Test if a node is a `FalseLiteral`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isFalseLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `FalseLiteral`.\n */\nexport function isFalseLiteral(node: ts.Node): node is ts.FalseLiteral {\n\treturn node.kind === ts.SyntaxKind.FalseKeyword;\n}\n\n/**\n * Test if a node is an `ImportExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isImportExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ImportExpression`.\n */\nexport function isImportExpression(node: ts.Node): node is ts.ImportExpression {\n\treturn node.kind === ts.SyntaxKind.ImportKeyword;\n}\n\n/**\n * Test if a node is an {@link ImportKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isImportKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an {@link ImportKeyword}.\n */\nexport function isImportKeyword(node: ts.Node): node is ImportKeyword {\n\treturn node.kind === ts.SyntaxKind.ImportKeyword;\n}\n\n/**\n * Test if a node is an `InKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isInKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `InKeyword`.\n */\nexport function isInKeyword(node: ts.Node): node is ts.InKeyword {\n\treturn node.kind === ts.SyntaxKind.InKeyword;\n}\n\n/* eslint-disable deprecation/deprecation */\n/**\n * Test if a node is an `InputFiles`.\n * @deprecated With TypeScript v5\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isInputFiles(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `InputFiles`.\n */\nexport function isInputFiles(node: ts.Node): node is ts.InputFiles {\n\treturn node.kind === ts.SyntaxKind.InputFiles;\n}\n/* eslint-enable deprecation/deprecation */\n\n/**\n * Test if a node is a `JSDocText`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJSDocText(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JSDocText`.\n */\nexport function isJSDocText(node: ts.Node): node is ts.JSDocText {\n\treturn node.kind === ts.SyntaxKind.JSDocText;\n}\n\n/**\n * Test if a node is a `JsonMinusNumericLiteral`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsonMinusNumericLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsonMinusNumericLiteral`.\n */\nexport function isJsonMinusNumericLiteral(\n\tnode: ts.Node,\n): node is ts.JsonMinusNumericLiteral {\n\treturn node.kind === ts.SyntaxKind.PrefixUnaryExpression;\n}\n\n/**\n * Test if a node is a {@link NeverKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNeverKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link NeverKeyword}.\n */\nexport function isNeverKeyword(node: ts.Node): node is NeverKeyword {\n\treturn node.kind === ts.SyntaxKind.NeverKeyword;\n}\n\n/**\n * Test if a node is a {@link NullKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNullKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link NullKeyword}.\n */\nexport function isNullKeyword(node: ts.Node): node is NullKeyword {\n\treturn node.kind === ts.SyntaxKind.NullKeyword;\n}\n\n/**\n * Test if a node is a `NullLiteral`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNullLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `NullLiteral`.\n */\nexport function isNullLiteral(node: ts.Node): node is ts.NullLiteral {\n\treturn node.kind === ts.SyntaxKind.NullKeyword;\n}\n\n/**\n * Test if a node is a {@link NumberKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNumberKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link NumberKeyword}.\n */\nexport function isNumberKeyword(node: ts.Node): node is NumberKeyword {\n\treturn node.kind === ts.SyntaxKind.NumberKeyword;\n}\n\n/**\n * Test if a node is an {@link ObjectKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isObjectKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an {@link ObjectKeyword}.\n */\nexport function isObjectKeyword(node: ts.Node): node is ObjectKeyword {\n\treturn node.kind === ts.SyntaxKind.ObjectKeyword;\n}\n\n/**\n * Test if a node is an `OutKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isOutKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `OutKeyword`.\n */\nexport function isOutKeyword(node: ts.Node): node is ts.OutKeyword {\n\treturn node.kind === ts.SyntaxKind.OutKeyword;\n}\n\n/**\n * Test if a node is an `OverrideKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isOverrideKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `OverrideKeyword`.\n */\nexport function isOverrideKeyword(node: ts.Node): node is ts.OverrideKeyword {\n\treturn node.kind === ts.SyntaxKind.OverrideKeyword;\n}\n\n/**\n * Test if a node is a `PrivateKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isPrivateKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `PrivateKeyword`.\n */\nexport function isPrivateKeyword(node: ts.Node): node is ts.PrivateKeyword {\n\treturn node.kind === ts.SyntaxKind.PrivateKeyword;\n}\n\n/**\n * Test if a node is a `ProtectedKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isProtectedKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ProtectedKeyword`.\n */\nexport function isProtectedKeyword(node: ts.Node): node is ts.ProtectedKeyword {\n\treturn node.kind === ts.SyntaxKind.ProtectedKeyword;\n}\n\n/**\n * Test if a node is a `PublicKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isPublicKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `PublicKeyword`.\n */\nexport function isPublicKeyword(node: ts.Node): node is ts.PublicKeyword {\n\treturn node.kind === ts.SyntaxKind.PublicKeyword;\n}\n\n/**\n * Test if a node is a `QuestionDotToken`.\n * @deprecated With TypeScript v5, in favor of typescript's `isQuestionDotToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isQuestionDotToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `QuestionDotToken`.\n */\nexport function isQuestionDotToken(node: ts.Node): node is ts.QuestionDotToken {\n\treturn node.kind === ts.SyntaxKind.QuestionDotToken;\n}\n\n/**\n * Test if a node is a `QuestionToken`.\n * @deprecated With TypeScript v5, in favor of typescript's `isQuestionToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isQuestionToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `QuestionToken`.\n */\nexport function isQuestionToken(node: ts.Node): node is ts.QuestionToken {\n\treturn node.kind === ts.SyntaxKind.QuestionToken;\n}\n\n/**\n * Test if a node is a `ReadonlyKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isReadonlyKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ReadonlyKeyword`.\n */\nexport function isReadonlyKeyword(node: ts.Node): node is ts.ReadonlyKeyword {\n\treturn node.kind === ts.SyntaxKind.ReadonlyKeyword;\n}\n\n/**\n * Test if a node is a `StaticKeyword`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isStaticKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `StaticKeyword`.\n */\nexport function isStaticKeyword(node: ts.Node): node is ts.StaticKeyword {\n\treturn node.kind === ts.SyntaxKind.StaticKeyword;\n}\n\n/**\n * Test if a node is a {@link StringKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isStringKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link StringKeyword}.\n */\nexport function isStringKeyword(node: ts.Node): node is StringKeyword {\n\treturn node.kind === ts.SyntaxKind.StringKeyword;\n}\n\n/**\n * Test if a node is a `SuperExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSuperExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `SuperExpression`.\n */\nexport function isSuperExpression(node: ts.Node): node is ts.SuperExpression {\n\treturn node.kind === ts.SyntaxKind.SuperKeyword;\n}\n\n/**\n * Test if a node is a {@link SuperKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSuperKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link SuperKeyword}.\n */\nexport function isSuperKeyword(node: ts.Node): node is SuperKeyword {\n\treturn node.kind === ts.SyntaxKind.SuperKeyword;\n}\n\n/**\n * Test if a node is a {@link SymbolKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSymbolKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link SymbolKeyword}.\n */\nexport function isSymbolKeyword(node: ts.Node): node is SymbolKeyword {\n\treturn node.kind === ts.SyntaxKind.SymbolKeyword;\n}\n\n/**\n * Test if a node is a `SyntaxList`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSyntaxList(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `SyntaxList`.\n */\nexport function isSyntaxList(node: ts.Node): node is ts.SyntaxList {\n\treturn node.kind === ts.SyntaxKind.SyntaxList;\n}\n\n/**\n * Test if a node is a `ThisExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isThisExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ThisExpression`.\n */\nexport function isThisExpression(node: ts.Node): node is ts.ThisExpression {\n\treturn node.kind === ts.SyntaxKind.ThisKeyword;\n}\n\n/**\n * Test if a node is a {@link ThisKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isThisKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link ThisKeyword}.\n */\nexport function isThisKeyword(node: ts.Node): node is ThisKeyword {\n\treturn node.kind === ts.SyntaxKind.ThisKeyword;\n}\n\n/**\n * Test if a node is a {@link TrueKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isTrueKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link TrueKeyword}.\n */\nexport function isTrueKeyword(node: ts.Node): node is TrueKeyword {\n\treturn node.kind === ts.SyntaxKind.TrueKeyword;\n}\n\n/**\n * Test if a node is a `TrueLiteral`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isTrueLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `TrueLiteral`.\n */\nexport function isTrueLiteral(node: ts.Node): node is ts.TrueLiteral {\n\treturn node.kind === ts.SyntaxKind.TrueKeyword;\n}\n\n/**\n * Test if a node is an {@link UndefinedKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isUndefinedKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an {@link UndefinedKeyword}.\n */\nexport function isUndefinedKeyword(node: ts.Node): node is UndefinedKeyword {\n\treturn node.kind === ts.SyntaxKind.UndefinedKeyword;\n}\n\n/**\n * Test if a node is an {@link UnknownKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isUnknownKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an {@link UnknownKeyword}.\n */\nexport function isUnknownKeyword(node: ts.Node): node is UnknownKeyword {\n\treturn node.kind === ts.SyntaxKind.UnknownKeyword;\n}\n\n/* eslint-disable deprecation/deprecation */\n/**\n * Test if a node is an `UnparsedPrologue`.\n * @deprecated With TypeScript v5\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isUnparsedPrologue(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `UnparsedPrologue`.\n */\nexport function isUnparsedPrologue(node: ts.Node): node is ts.UnparsedPrologue {\n\treturn node.kind === ts.SyntaxKind.UnparsedPrologue;\n}\n/* eslint-enable deprecation/deprecation */\n\n/* eslint-disable deprecation/deprecation */\n/**\n * Test if a node is an `UnparsedSyntheticReference`.\n * @deprecated With TypeScript v5\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isUnparsedSyntheticReference(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `UnparsedSyntheticReference`.\n */\nexport function isUnparsedSyntheticReference(\n\tnode: ts.Node,\n): node is ts.UnparsedSyntheticReference {\n\treturn node.kind === ts.SyntaxKind.UnparsedSyntheticReference;\n}\n/* eslint-enable deprecation/deprecation */\n\n/**\n * Test if a node is a {@link VoidKeyword}.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isVoidKeyword(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a {@link VoidKeyword}.\n */\nexport function isVoidKeyword(node: ts.Node): node is VoidKeyword {\n\treturn node.kind === ts.SyntaxKind.VoidKeyword;\n}\n","import ts from \"typescript\";\n\nimport { isTsVersionAtLeast } from \"../../utils\";\nimport {\n\tisJSDocNamespaceDeclaration,\n\tisJsxTagNamePropertyAccess,\n\tisNamespaceDeclaration,\n\tisPropertyAccessEntityNameExpression,\n\tisSuperElementAccessExpression,\n\tisSuperPropertyAccessExpression,\n} from \"./compound\";\nimport {\n\tisAccessorKeyword,\n\tisEndOfFileToken,\n\tisFalseLiteral,\n\tisJSDocText,\n\tisJsonMinusNumericLiteral,\n\tisNullLiteral,\n\tisPrivateKeyword,\n\tisProtectedKeyword,\n\tisPublicKeyword,\n\tisReadonlyKeyword,\n\tisStaticKeyword,\n\tisThisExpression,\n\tisTrueLiteral,\n} from \"./single\";\n\n/**\n * Test if a node is an `AccessExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAccessExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AccessExpression`.\n */\nexport function isAccessExpression(node: ts.Node): node is ts.AccessExpression {\n\treturn (\n\t\tts.isPropertyAccessExpression(node) || ts.isElementAccessExpression(node)\n\t);\n}\n\n/**\n * Test if a node is an `AccessibilityModifier`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAccessibilityModifier(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AccessibilityModifier`.\n */\nexport function isAccessibilityModifier(\n\tnode: ts.Node,\n): node is ts.AccessibilityModifier {\n\treturn (\n\t\tisPublicKeyword(node) || isPrivateKeyword(node) || isProtectedKeyword(node)\n\t);\n}\n\n/**\n * Test if a node is an `AccessorDeclaration`.\n * @deprecated With TypeScript v5, in favor of typescript's `isAccessor`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAccessorDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AccessorDeclaration`.\n */\nexport function isAccessorDeclaration(\n\tnode: ts.Node,\n): node is ts.AccessorDeclaration {\n\treturn ts.isGetAccessorDeclaration(node) || ts.isSetAccessorDeclaration(node);\n}\n\n/**\n * Test if a node is an `ArrayBindingElement`.\n * @deprecated With TypeScript v5, in favor of typescript's `isArrayBindingElement`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isArrayBindingElement(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ArrayBindingElement`.\n */\nexport function isArrayBindingElement(\n\tnode: ts.Node,\n): node is ts.ArrayBindingElement {\n\treturn ts.isBindingElement(node) || ts.isOmittedExpression(node);\n}\n\n/**\n * Test if a node is an `ArrayBindingOrAssignmentPattern`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isArrayBindingOrAssignmentPattern(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ArrayBindingOrAssignmentPattern`.\n */\nexport function isArrayBindingOrAssignmentPattern(\n\tnode: ts.Node,\n): node is ts.ArrayBindingOrAssignmentPattern {\n\treturn ts.isArrayBindingPattern(node) || ts.isArrayLiteralExpression(node);\n}\n\n/**\n * Test if a node is an `AssignmentPattern`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isAssignmentPattern(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `AssignmentPattern`.\n */\nexport function isAssignmentPattern(\n\tnode: ts.Node,\n): node is ts.AssignmentPattern {\n\treturn (\n\t\tts.isObjectLiteralExpression(node) || ts.isArrayLiteralExpression(node)\n\t);\n}\n\n/**\n * Test if a node is a `BindingOrAssignmentElementRestIndicator`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBindingOrAssignmentElementRestIndicator(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `BindingOrAssignmentElementRestIndicator`.\n */\nexport function isBindingOrAssignmentElementRestIndicator(\n\tnode: ts.Node,\n): node is ts.BindingOrAssignmentElementRestIndicator {\n\tif (ts.isSpreadElement(node) || ts.isSpreadAssignment(node)) {\n\t\treturn true;\n\t}\n\n\tif (isTsVersionAtLeast(4, 4)) {\n\t\treturn ts.isDotDotDotToken(node);\n\t}\n\n\treturn false;\n}\n\n/**\n * Test if a node is a `BindingOrAssignmentElementTarget`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBindingOrAssignmentElementTarget(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `BindingOrAssignmentElementTarget`.\n */\nexport function isBindingOrAssignmentElementTarget(\n\tnode: ts.Node,\n): node is ts.BindingOrAssignmentElementTarget {\n\treturn (\n\t\tisBindingOrAssignmentPattern(node) ||\n\t\tts.isIdentifier(node) ||\n\t\tts.isPropertyAccessExpression(node) ||\n\t\tts.isElementAccessExpression(node) ||\n\t\tts.isOmittedExpression(node)\n\t);\n}\n\n/**\n * Test if a node is a `BindingOrAssignmentPattern`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBindingOrAssignmentPattern(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `BindingOrAssignmentPattern`.\n */\nexport function isBindingOrAssignmentPattern(\n\tnode: ts.Node,\n): node is ts.BindingOrAssignmentPattern {\n\treturn (\n\t\tisObjectBindingOrAssignmentPattern(node) ||\n\t\tisArrayBindingOrAssignmentPattern(node)\n\t);\n}\n\n/**\n * Test if a node is a `BindingPattern`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBindingPattern(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `BindingPattern`.\n */\nexport function isBindingPattern(node: ts.Node): node is ts.BindingPattern {\n\treturn ts.isObjectBindingPattern(node) || ts.isArrayBindingPattern(node);\n}\n\n/**\n * Test if a node is a `BlockLike`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBlockLike(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `BlockLike`.\n */\nexport function isBlockLike(node: ts.Node): node is ts.BlockLike {\n\treturn (\n\t\tts.isSourceFile(node) ||\n\t\tts.isBlock(node) ||\n\t\tts.isModuleBlock(node) ||\n\t\tts.isCaseOrDefaultClause(node)\n\t);\n}\n\n/**\n * Test if a node is a `BooleanLiteral`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isBooleanLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `BooleanLiteral`.\n */\nexport function isBooleanLiteral(node: ts.Node): node is ts.BooleanLiteral {\n\treturn isTrueLiteral(node) || isFalseLiteral(node);\n}\n\n/**\n * Test if a node is a `ClassLikeDeclaration`.\n * @deprecated With TypeScript v5, in favor of typescript's `isClassLike`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isClassLikeDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ClassLikeDeclaration`.\n */\nexport function isClassLikeDeclaration(\n\tnode: ts.Node,\n): node is ts.ClassLikeDeclaration {\n\treturn ts.isClassDeclaration(node) || ts.isClassExpression(node);\n}\n\n/**\n * Test if a node is a `ClassMemberModifier`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isClassMemberModifier(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ClassMemberModifier`.\n */\nexport function isClassMemberModifier(\n\tnode: ts.Node,\n): node is ts.ClassMemberModifier {\n\treturn (\n\t\tisAccessibilityModifier(node) ||\n\t\tisReadonlyKeyword(node) ||\n\t\tisStaticKeyword(node) ||\n\t\tisAccessorKeyword(node)\n\t);\n}\n\n/**\n * Test if a node is a `DeclarationName`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDeclarationName(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DeclarationName`.\n */\nexport function isDeclarationName(node: ts.Node): node is ts.DeclarationName {\n\treturn (\n\t\tts.isIdentifier(node) ||\n\t\tts.isPrivateIdentifier(node) ||\n\t\tts.isStringLiteralLike(node) ||\n\t\tts.isNumericLiteral(node) ||\n\t\tts.isComputedPropertyName(node) ||\n\t\tts.isElementAccessExpression(node) ||\n\t\tisBindingPattern(node) ||\n\t\tisEntityNameExpression(node)\n\t);\n}\n\n/**\n * Test if a node is a `DeclarationWithTypeParameterChildren`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDeclarationWithTypeParameterChildren(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DeclarationWithTypeParameterChildren`.\n */\nexport function isDeclarationWithTypeParameterChildren(\n\tnode: ts.Node,\n): node is ts.DeclarationWithTypeParameterChildren {\n\treturn (\n\t\tisSignatureDeclaration(node) ||\n\t\t// eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5\n\t\tisClassLikeDeclaration(node) ||\n\t\tts.isInterfaceDeclaration(node) ||\n\t\tts.isTypeAliasDeclaration(node) ||\n\t\tts.isJSDocTemplateTag(node)\n\t);\n}\n\n/**\n * Test if a node is a `DeclarationWithTypeParameters`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDeclarationWithTypeParameters(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DeclarationWithTypeParameters`.\n */\nexport function isDeclarationWithTypeParameters(\n\tnode: ts.Node,\n): node is ts.DeclarationWithTypeParameters {\n\treturn (\n\t\tisDeclarationWithTypeParameterChildren(node) ||\n\t\tts.isJSDocTypedefTag(node) ||\n\t\tts.isJSDocCallbackTag(node) ||\n\t\tts.isJSDocSignature(node)\n\t);\n}\n\n/**\n * Test if a node is a `DestructuringPattern`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isDestructuringPattern(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `DestructuringPattern`.\n */\nexport function isDestructuringPattern(\n\tnode: ts.Node,\n): node is ts.DestructuringPattern {\n\treturn (\n\t\tisBindingPattern(node) ||\n\t\tts.isObjectLiteralExpression(node) ||\n\t\tts.isArrayLiteralExpression(node)\n\t);\n}\n\n/**\n * Test if a node is an `EntityNameExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isEntityNameExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `EntityNameExpression`.\n */\nexport function isEntityNameExpression(\n\tnode: ts.Node,\n): node is ts.EntityNameExpression {\n\treturn ts.isIdentifier(node) || isPropertyAccessEntityNameExpression(node);\n}\n\n/**\n * Test if a node is an `EntityNameOrEntityNameExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isEntityNameOrEntityNameExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `EntityNameOrEntityNameExpression`.\n */\nexport function isEntityNameOrEntityNameExpression(\n\tnode: ts.Node,\n): node is ts.EntityNameOrEntityNameExpression {\n\treturn ts.isEntityName(node) || isEntityNameExpression(node);\n}\n\n/**\n * Test if a node is a `ForInOrOfStatement`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isForInOrOfStatement(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ForInOrOfStatement`.\n */\nexport function isForInOrOfStatement(\n\tnode: ts.Node,\n): node is ts.ForInOrOfStatement {\n\treturn ts.isForInStatement(node) || ts.isForOfStatement(node);\n}\n\n/**\n * Test if a node is a `FunctionLikeDeclaration`.\n * @deprecated With TypeScript v5, in favor of typescript's `isFunctionLike`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isFunctionLikeDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `FunctionLikeDeclaration`.\n */\nexport function isFunctionLikeDeclaration(\n\tnode: ts.Node,\n): node is ts.FunctionLikeDeclaration {\n\treturn (\n\t\tts.isFunctionDeclaration(node) ||\n\t\tts.isMethodDeclaration(node) ||\n\t\tts.isGetAccessorDeclaration(node) ||\n\t\tts.isSetAccessorDeclaration(node) ||\n\t\tts.isConstructorDeclaration(node) ||\n\t\tts.isFunctionExpression(node) ||\n\t\tts.isArrowFunction(node)\n\t);\n}\n\n/**\n * Test if a node is a `HasDecorators`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasDecorators(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasDecorators`.\n */\nexport function hasDecorators(node: ts.Node): node is ts.HasDecorators {\n\treturn (\n\t\tts.isParameter(node) ||\n\t\tts.isPropertyDeclaration(node) ||\n\t\tts.isMethodDeclaration(node) ||\n\t\tts.isGetAccessorDeclaration(node) ||\n\t\tts.isSetAccessorDeclaration(node) ||\n\t\tts.isClassExpression(node) ||\n\t\tts.isClassDeclaration(node)\n\t);\n}\n\n/**\n * Test if a node is a `HasExpressionInitializer`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasExpressionInitializer(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasExpressionInitializer`.\n */\nexport function hasExpressionInitializer(\n\tnode: ts.Node,\n): node is ts.HasExpressionInitializer {\n\treturn (\n\t\tts.isVariableDeclaration(node) ||\n\t\tts.isParameter(node) ||\n\t\tts.isBindingElement(node) ||\n\t\tts.isPropertyDeclaration(node) ||\n\t\tts.isPropertyAssignment(node) ||\n\t\tts.isEnumMember(node)\n\t);\n}\n\n/**\n * Test if a node is a `HasInitializer`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasInitializer(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasInitializer`.\n */\nexport function hasInitializer(node: ts.Node): node is ts.HasInitializer {\n\treturn (\n\t\thasExpressionInitializer(node) ||\n\t\tts.isForStatement(node) ||\n\t\tts.isForInStatement(node) ||\n\t\tts.isForOfStatement(node) ||\n\t\tts.isJsxAttribute(node)\n\t);\n}\n\n/**\n * Test if a node is a `HasJSDoc`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasJSDoc(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasJSDoc`.\n */\nexport function hasJSDoc(node: ts.Node): node is ts.HasJSDoc {\n\tif (\n\t\t// eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5\n\t\tisAccessorDeclaration(node) ||\n\t\tts.isArrowFunction(node) ||\n\t\tts.isBlock(node) ||\n\t\tts.isBreakStatement(node) ||\n\t\tts.isCallSignatureDeclaration(node) ||\n\t\tts.isCaseClause(node) ||\n\t\t// eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5\n\t\tisClassLikeDeclaration(node) ||\n\t\tts.isConstructorDeclaration(node) ||\n\t\tts.isConstructorTypeNode(node) ||\n\t\tts.isConstructSignatureDeclaration(node) ||\n\t\tts.isContinueStatement(node) ||\n\t\tts.isDebuggerStatement(node) ||\n\t\tts.isDoStatement(node) ||\n\t\tts.isEmptyStatement(node) ||\n\t\tisEndOfFileToken(node) ||\n\t\tts.isEnumDeclaration(node) ||\n\t\tts.isEnumMember(node) ||\n\t\tts.isExportAssignment(node) ||\n\t\tts.isExportDeclaration(node) ||\n\t\tts.isExportSpecifier(node) ||\n\t\tts.isExpressionStatement(node) ||\n\t\tts.isForInStatement(node) ||\n\t\tts.isForOfStatement(node) ||\n\t\tts.isForStatement(node) ||\n\t\tts.isFunctionDeclaration(node) ||\n\t\tts.isFunctionExpression(node) ||\n\t\tts.isFunctionTypeNode(node) ||\n\t\tts.isIfStatement(node) ||\n\t\tts.isImportDeclaration(node) ||\n\t\tts.isImportEqualsDeclaration(node) ||\n\t\tts.isIndexSignatureDeclaration(node) ||\n\t\tts.isInterfaceDeclaration(node) ||\n\t\tts.isJSDocFunctionType(node) ||\n\t\tts.isLabeledStatement(node) ||\n\t\tts.isMethodDeclaration(node) ||\n\t\tts.isMethodSignature(node) ||\n\t\tts.isModuleDeclaration(node) ||\n\t\tts.isNamedTupleMember(node) ||\n\t\tts.isNamespaceExportDeclaration(node) ||\n\t\tts.isParameter(node) ||\n\t\tts.isParenthesizedExpression(node) ||\n\t\tts.isPropertyAssignment(node) ||\n\t\tts.isPropertyDeclaration(node) ||\n\t\tts.isPropertySignature(node) ||\n\t\tts.isReturnStatement(node) ||\n\t\tts.isShorthandPropertyAssignment(node) ||\n\t\tts.isSpreadAssignment(node) ||\n\t\tts.isSwitchStatement(node) ||\n\t\tts.isThrowStatement(node) ||\n\t\tts.isTryStatement(node) ||\n\t\tts.isTypeAliasDeclaration(node) ||\n\t\tts.isVariableDeclaration(node) ||\n\t\tts.isVariableStatement(node) ||\n\t\tts.isWhileStatement(node) ||\n\t\tts.isWithStatement(node)\n\t) {\n\t\treturn true;\n\t}\n\n\tif (isTsVersionAtLeast(4, 4) && ts.isClassStaticBlockDeclaration(node)) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\tisTsVersionAtLeast(5, 0) &&\n\t\t(ts.isBinaryExpression(node) ||\n\t\t\tts.isElementAccessExpression(node) ||\n\t\t\tts.isIdentifier(node) ||\n\t\t\tts.isJSDocSignature(node) ||\n\t\t\tts.isObjectLiteralExpression(node) ||\n\t\t\tts.isPropertyAccessExpression(node) ||\n\t\t\tts.isTypeParameterDeclaration(node))\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Test if a node is a `HasModifiers`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasModifiers(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasModifiers`.\n */\nexport function hasModifiers(node: ts.Node): node is ts.HasModifiers {\n\treturn (\n\t\tts.isTypeParameterDeclaration(node) ||\n\t\tts.isParameter(node) ||\n\t\tts.isConstructorTypeNode(node) ||\n\t\tts.isPropertySignature(node) ||\n\t\tts.isPropertyDeclaration(node) ||\n\t\tts.isMethodSignature(node) ||\n\t\tts.isMethodDeclaration(node) ||\n\t\tts.isConstructorDeclaration(node) ||\n\t\tts.isGetAccessorDeclaration(node) ||\n\t\tts.isSetAccessorDeclaration(node) ||\n\t\tts.isIndexSignatureDeclaration(node) ||\n\t\tts.isFunctionExpression(node) ||\n\t\tts.isArrowFunction(node) ||\n\t\tts.isClassExpression(node) ||\n\t\tts.isVariableStatement(node) ||\n\t\tts.isFunctionDeclaration(node) ||\n\t\tts.isClassDeclaration(node) ||\n\t\tts.isInterfaceDeclaration(node) ||\n\t\tts.isTypeAliasDeclaration(node) ||\n\t\tts.isEnumDeclaration(node) ||\n\t\tts.isModuleDeclaration(node) ||\n\t\tts.isImportEqualsDeclaration(node) ||\n\t\tts.isImportDeclaration(node) ||\n\t\tts.isExportAssignment(node) ||\n\t\tts.isExportDeclaration(node)\n\t);\n}\n\n/**\n * Test if a node is a `HasType`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasType(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasType`.\n */\nexport function hasType(node: ts.Node): node is ts.HasType {\n\treturn (\n\t\tisSignatureDeclaration(node) ||\n\t\tts.isVariableDeclaration(node) ||\n\t\tts.isParameter(node) ||\n\t\tts.isPropertySignature(node) ||\n\t\tts.isPropertyDeclaration(node) ||\n\t\tts.isTypePredicateNode(node) ||\n\t\tts.isParenthesizedTypeNode(node) ||\n\t\tts.isTypeOperatorNode(node) ||\n\t\tts.isMappedTypeNode(node) ||\n\t\tts.isAssertionExpression(node) ||\n\t\tts.isTypeAliasDeclaration(node) ||\n\t\tts.isJSDocTypeExpression(node) ||\n\t\tts.isJSDocNonNullableType(node) ||\n\t\tts.isJSDocNullableType(node) ||\n\t\tts.isJSDocOptionalType(node) ||\n\t\tts.isJSDocVariadicType(node)\n\t);\n}\n\n/**\n * Test if a node is a `HasTypeArguments`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (hasTypeArguments(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `HasTypeArguments`.\n */\nexport function hasTypeArguments(node: ts.Node): node is ts.HasTypeArguments {\n\treturn (\n\t\tts.isCallExpression(node) ||\n\t\tts.isNewExpression(node) ||\n\t\tts.isTaggedTemplateExpression(node) ||\n\t\tts.isJsxOpeningElement(node) ||\n\t\tts.isJsxSelfClosingElement(node)\n\t);\n}\n\n/**\n * Test if a node is a `JSDocComment`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJSDocComment(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JSDocComment`.\n */\nexport function isJSDocComment(node: ts.Node): node is ts.JSDocComment {\n\tif (isJSDocText(node)) {\n\t\treturn true;\n\t}\n\n\tif (isTsVersionAtLeast(4, 4)) {\n\t\treturn (\n\t\t\tts.isJSDocLink(node) ||\n\t\t\tts.isJSDocLinkCode(node) ||\n\t\t\tts.isJSDocLinkPlain(node)\n\t\t);\n\t}\n\n\treturn false;\n}\n\n/**\n * Test if a node is a `JSDocNamespaceBody`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJSDocNamespaceBody(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JSDocNamespaceBody`.\n */\nexport function isJSDocNamespaceBody(\n\tnode: ts.Node,\n): node is ts.JSDocNamespaceBody {\n\treturn ts.isIdentifier(node) || isJSDocNamespaceDeclaration(node);\n}\n\n/**\n * Test if a node is a `JSDocTypeReferencingNode`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJSDocTypeReferencingNode(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JSDocTypeReferencingNode`.\n */\nexport function isJSDocTypeReferencingNode(\n\tnode: ts.Node,\n): node is ts.JSDocTypeReferencingNode {\n\treturn (\n\t\tts.isJSDocVariadicType(node) ||\n\t\tts.isJSDocOptionalType(node) ||\n\t\tts.isJSDocNullableType(node) ||\n\t\tts.isJSDocNonNullableType(node)\n\t);\n}\n\n/**\n * Test if a node is a `JsonObjectExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsonObjectExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsonObjectExpression`.\n */\nexport function isJsonObjectExpression(\n\tnode: ts.Node,\n): node is ts.JsonObjectExpression {\n\treturn (\n\t\tts.isObjectLiteralExpression(node) ||\n\t\tts.isArrayLiteralExpression(node) ||\n\t\tisJsonMinusNumericLiteral(node) ||\n\t\tts.isNumericLiteral(node) ||\n\t\tts.isStringLiteral(node) ||\n\t\tisBooleanLiteral(node) ||\n\t\tisNullLiteral(node)\n\t);\n}\n\n/**\n * Test if a node is a `JsxAttributeLike`.\n * @deprecated With TypeScript v5, in favor of typescript's `isJsxAttributeLike`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsxAttributeLike(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsxAttributeLike`.\n */\nexport function isJsxAttributeLike(node: ts.Node): node is ts.JsxAttributeLike {\n\treturn ts.isJsxAttribute(node) || ts.isJsxSpreadAttribute(node);\n}\n\n/**\n * Test if a node is a `JsxAttributeValue`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsxAttributeValue(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsxAttributeValue`.\n */\nexport function isJsxAttributeValue(\n\tnode: ts.Node,\n): node is ts.JsxAttributeValue {\n\treturn (\n\t\tts.isStringLiteral(node) ||\n\t\tts.isJsxExpression(node) ||\n\t\tts.isJsxElement(node) ||\n\t\tts.isJsxSelfClosingElement(node) ||\n\t\tts.isJsxFragment(node)\n\t);\n}\n\n/**\n * Test if a node is a `JsxChild`.\n * @deprecated With TypeScript v5, in favor of typescript's `isJsxChild`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsxChild(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsxChild`.\n */\nexport function isJsxChild(node: ts.Node): node is ts.JsxChild {\n\treturn (\n\t\tts.isJsxText(node) ||\n\t\tts.isJsxExpression(node) ||\n\t\tts.isJsxElement(node) ||\n\t\tts.isJsxSelfClosingElement(node) ||\n\t\tts.isJsxFragment(node)\n\t);\n}\n\n/**\n * Test if a node is a `JsxTagNameExpression`.\n * @deprecated With TypeScript v5, in favor of typescript's `isJsxTagNameExpression`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isJsxTagNameExpression(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `JsxTagNameExpression`.\n */\nexport function isJsxTagNameExpression(\n\tnode: ts.Node,\n): node is ts.JsxTagNameExpression {\n\treturn (\n\t\tts.isIdentifier(node) ||\n\t\tisThisExpression(node) ||\n\t\tisJsxTagNamePropertyAccess(node)\n\t);\n}\n\n/**\n * Test if a node is a `LiteralToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isLiteralToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `LiteralToken`.\n */\nexport function isLiteralToken(node: ts.Node): node is ts.LiteralToken {\n\treturn (\n\t\tts.isNumericLiteral(node) ||\n\t\tts.isBigIntLiteral(node) ||\n\t\tts.isStringLiteral(node) ||\n\t\tts.isJsxText(node) ||\n\t\tts.isRegularExpressionLiteral(node) ||\n\t\tts.isNoSubstitutionTemplateLiteral(node)\n\t);\n}\n\n/**\n * Test if a node is a `ModuleBody`.\n * @deprecated With TypeScript v5, in favor of typescript's `isModuleBody`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isModuleBody(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ModuleBody`.\n */\nexport function isModuleBody(node: ts.Node): node is ts.ModuleBody {\n\treturn isNamespaceBody(node) || isJSDocNamespaceBody(node);\n}\n\n/**\n * Test if a node is a `ModuleName`.\n * @deprecated With TypeScript v5, in favor of typescript's `isModuleName`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isModuleName(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ModuleName`.\n */\nexport function isModuleName(node: ts.Node): node is ts.ModuleName {\n\treturn ts.isIdentifier(node) || ts.isStringLiteral(node);\n}\n\n/**\n * Test if a node is a `ModuleReference`.\n * @deprecated With TypeScript v5, in favor of typescript's `isModuleReference`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isModuleReference(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ModuleReference`.\n */\nexport function isModuleReference(node: ts.Node): node is ts.ModuleReference {\n\treturn ts.isEntityName(node) || ts.isExternalModuleReference(node);\n}\n\n/**\n * Test if a node is a `NamedImportBindings`.\n * @deprecated With TypeScript v5, in favor of typescript's `isNamedImportBindings`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNamedImportBindings(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `NamedImportBindings`.\n */\nexport function isNamedImportBindings(\n\tnode: ts.Node,\n): node is ts.NamedImportBindings {\n\treturn ts.isNamespaceImport(node) || ts.isNamedImports(node);\n}\n\n/**\n * Test if a node is a `NamedImportsOrExports`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNamedImportsOrExports(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `NamedImportsOrExports`.\n */\nexport function isNamedImportsOrExports(\n\tnode: ts.Node,\n): node is ts.NamedImportsOrExports {\n\treturn ts.isNamedImports(node) || ts.isNamedExports(node);\n}\n\n/**\n * Test if a node is a `NamespaceBody`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isNamespaceBody(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `NamespaceBody`.\n */\nexport function isNamespaceBody(node: ts.Node): node is ts.NamespaceBody {\n\treturn ts.isModuleBlock(node) || isNamespaceDeclaration(node);\n}\n\n/**\n * Test if a node is an `ObjectBindingOrAssignmentElement`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isObjectBindingOrAssignmentElement(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ObjectBindingOrAssignmentElement`.\n */\nexport function isObjectBindingOrAssignmentElement(\n\tnode: ts.Node,\n): node is ts.ObjectBindingOrAssignmentElement {\n\treturn (\n\t\tts.isBindingElement(node) ||\n\t\tts.isPropertyAssignment(node) ||\n\t\tts.isShorthandPropertyAssignment(node) ||\n\t\tts.isSpreadAssignment(node)\n\t);\n}\n\n/**\n * Test if a node is an `ObjectBindingOrAssignmentPattern`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isObjectBindingOrAssignmentPattern(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ObjectBindingOrAssignmentPattern`.\n */\nexport function isObjectBindingOrAssignmentPattern(\n\tnode: ts.Node,\n): node is ts.ObjectBindingOrAssignmentPattern {\n\treturn ts.isObjectBindingPattern(node) || ts.isObjectLiteralExpression(node);\n}\n\n/**\n * Test if a node is an `ObjectTypeDeclaration`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isObjectTypeDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `ObjectTypeDeclaration`.\n */\nexport function isObjectTypeDeclaration(\n\tnode: ts.Node,\n): node is ts.ObjectTypeDeclaration {\n\treturn (\n\t\t// eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5\n\t\tisClassLikeDeclaration(node) ||\n\t\tts.isInterfaceDeclaration(node) ||\n\t\tts.isTypeLiteralNode(node)\n\t);\n}\n\n/**\n * Test if a node is a `ParameterPropertyModifier`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isParameterPropertyModifier(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `ParameterPropertyModifier`.\n */\nexport function isParameterPropertyModifier(\n\tnode: ts.Node,\n): node is ts.ParameterPropertyModifier {\n\treturn isAccessibilityModifier(node) || isReadonlyKeyword(node);\n}\n\n/**\n * Test if a node is a `PropertyNameLiteral`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isPropertyNameLiteral(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `PropertyNameLiteral`.\n */\nexport function isPropertyNameLiteral(\n\tnode: ts.Node,\n): node is ts.PropertyNameLiteral {\n\treturn (\n\t\tts.isIdentifier(node) ||\n\t\tts.isStringLiteralLike(node) ||\n\t\tts.isNumericLiteral(node)\n\t);\n}\n\n/**\n * Test if a node is a `PseudoLiteralToken`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isPseudoLiteralToken(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `PseudoLiteralToken`.\n */\nexport function isPseudoLiteralToken(\n\tnode: ts.Node,\n): node is ts.PseudoLiteralToken {\n\treturn (\n\t\tts.isTemplateHead(node) ||\n\t\tts.isTemplateMiddle(node) ||\n\t\tts.isTemplateTail(node)\n\t);\n}\n\n/**\n * Test if a node is a `SignatureDeclaration`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSignatureDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `SignatureDeclaration`.\n */\nexport function isSignatureDeclaration(\n\tnode: ts.Node,\n): node is ts.SignatureDeclaration {\n\treturn (\n\t\tts.isCallSignatureDeclaration(node) ||\n\t\tts.isConstructSignatureDeclaration(node) ||\n\t\tts.isMethodSignature(node) ||\n\t\tts.isIndexSignatureDeclaration(node) ||\n\t\tts.isFunctionTypeNode(node) ||\n\t\tts.isConstructorTypeNode(node) ||\n\t\tts.isJSDocFunctionType(node) ||\n\t\tts.isFunctionDeclaration(node) ||\n\t\tts.isMethodDeclaration(node) ||\n\t\tts.isConstructorDeclaration(node) ||\n\t\t// eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5\n\t\tisAccessorDeclaration(node) ||\n\t\tts.isFunctionExpression(node) ||\n\t\tts.isArrowFunction(node)\n\t);\n}\n\n/**\n * Test if a node is a `SuperProperty`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isSuperProperty(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `SuperProperty`.\n */\nexport function isSuperProperty(node: ts.Node): node is ts.SuperProperty {\n\treturn (\n\t\tisSuperPropertyAccessExpression(node) ||\n\t\tisSuperElementAccessExpression(node)\n\t);\n}\n\n/**\n * Test if a node is a `TypeOnlyCompatibleAliasDeclaration`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isTypeOnlyCompatibleAliasDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `TypeOnlyCompatibleAliasDeclaration`.\n */\nexport function isTypeOnlyCompatibleAliasDeclaration(\n\tnode: ts.Node,\n): node is ts.TypeOnlyCompatibleAliasDeclaration {\n\tif (\n\t\tts.isImportClause(node) ||\n\t\tts.isImportEqualsDeclaration(node) ||\n\t\tts.isNamespaceImport(node) ||\n\t\tts.isImportOrExportSpecifier(node)\n\t) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\tisTsVersionAtLeast(5, 0) &&\n\t\t(ts.isExportDeclaration(node) || ts.isNamespaceExport(node))\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Test if a node is a `TypeReferenceType`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isTypeReferenceType(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `TypeReferenceType`.\n */\nexport function isTypeReferenceType(\n\tnode: ts.Node,\n): node is ts.TypeReferenceType {\n\treturn ts.isTypeReferenceNode(node) || ts.isExpressionWithTypeArguments(node);\n}\n\n/**\n * Test if a node is an `UnionOrIntersectionTypeNode`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isUnionOrIntersectionTypeNode(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `UnionOrIntersectionTypeNode`.\n */\nexport function isUnionOrIntersectionTypeNode(\n\tnode: ts.Node,\n): node is ts.UnionOrIntersectionTypeNode {\n\treturn ts.isUnionTypeNode(node) || ts.isIntersectionTypeNode(node);\n}\n\n/* eslint-disable deprecation/deprecation */\n/**\n * Test if a node is an `UnparsedSourceText`.\n * @deprecated With TypeScript v5\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isUnparsedSourceText(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be an `UnparsedSourceText`.\n */\nexport function isUnparsedSourceText(\n\tnode: ts.Node,\n): node is ts.UnparsedSourceText {\n\treturn ts.isUnparsedPrepend(node) || ts.isUnparsedTextLike(node);\n}\n/* eslint-enable deprecation/deprecation */\n\n/**\n * Test if a node is a `VariableLikeDeclaration`.\n * @category Nodes - Type Guards\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isVariableLikeDeclaration(node)) {\n * // ...\n * }\n * ```\n * @returns Whether the given node appears to be a `VariableLikeDeclaration`.\n */\nexport function isVariableLikeDeclaration(\n\tnode: ts.Node,\n): node is ts.VariableLikeDeclaration {\n\treturn (\n\t\tts.isVariableDeclaration(node) ||\n\t\tts.isParameter(node) ||\n\t\tts.isBindingElement(node) ||\n\t\tts.isPropertyDeclaration(node) ||\n\t\tts.isPropertyAssignment(node) ||\n\t\tts.isPropertySignature(node) ||\n\t\tts.isJsxAttribute(node) ||\n\t\tts.isShorthandPropertyAssignment(node) ||\n\t\tts.isEnumMember(node) ||\n\t\tts.isJSDocPropertyTag(node) ||\n\t\tts.isJSDocParameterTag(node)\n\t);\n}\n","import ts from \"typescript\";\n\nconst [tsMajor, tsMinor] = ts.versionMajorMinor\n\t.split(\".\")\n\t.map((raw) => Number.parseInt(raw, 10));\n\nexport function isTsVersionAtLeast(major: number, minor = 0): boolean {\n\treturn tsMajor > major || (tsMajor === major && tsMinor >= minor);\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\n/**\n * Is the node a scope boundary, specifically due to it being a function.\n * @category Scope Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n *\n * if (isFunctionScopeBoundary(node, ts.ObjectFlags.Anonymous)) {\n * // ...\n * }\n * ```\n */\nexport function isFunctionScopeBoundary(node: ts.Node): boolean {\n\tswitch (node.kind) {\n\t\tcase ts.SyntaxKind.FunctionExpression:\n\t\tcase ts.SyntaxKind.ArrowFunction:\n\t\tcase ts.SyntaxKind.Constructor:\n\t\tcase ts.SyntaxKind.ModuleDeclaration:\n\t\tcase ts.SyntaxKind.ClassDeclaration:\n\t\tcase ts.SyntaxKind.ClassExpression:\n\t\tcase ts.SyntaxKind.EnumDeclaration:\n\t\tcase ts.SyntaxKind.MethodDeclaration:\n\t\tcase ts.SyntaxKind.FunctionDeclaration:\n\t\tcase ts.SyntaxKind.GetAccessor:\n\t\tcase ts.SyntaxKind.SetAccessor:\n\t\tcase ts.SyntaxKind.MethodSignature:\n\t\tcase ts.SyntaxKind.CallSignature:\n\t\tcase ts.SyntaxKind.ConstructSignature:\n\t\tcase ts.SyntaxKind.ConstructorType:\n\t\tcase ts.SyntaxKind.FunctionType:\n\t\t\treturn true;\n\t\tcase ts.SyntaxKind.SourceFile:\n\t\t\t// if SourceFile is no module, it contributes to the global scope and is therefore no scope boundary\n\t\t\treturn ts.isExternalModule(node as ts.SourceFile);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { isNamedDeclarationWithName } from \"../nodes/typeGuards\";\nimport {\n\tisIntersectionType,\n\tisUnionType,\n\tisUniqueESSymbolType,\n} from \"./typeGuards\";\n\n/**\n * Get the `CallSignatures` of the given type.\n * @category Types - Getters\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * getCallSignaturesOfType(type);\n * ```\n */\nexport function getCallSignaturesOfType(\n\ttype: ts.Type,\n): readonly ts.Signature[] {\n\tif (isUnionType(type)) {\n\t\tconst signatures = [];\n\t\tfor (const subType of type.types) {\n\t\t\tsignatures.push(...getCallSignaturesOfType(subType));\n\t\t}\n\n\t\treturn signatures;\n\t}\n\n\tif (isIntersectionType(type)) {\n\t\tlet signatures: readonly ts.Signature[] | undefined;\n\t\tfor (const subType of type.types) {\n\t\t\tconst sig = getCallSignaturesOfType(subType);\n\t\t\tif (sig.length !== 0) {\n\t\t\t\t// if more than one type of the intersection has call signatures, none of them is useful for inference\n\t\t\t\tif (signatures !== undefined) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tsignatures = sig;\n\t\t\t}\n\t\t}\n\n\t\treturn signatures === undefined ? [] : signatures;\n\t}\n\n\treturn type.getCallSignatures();\n}\n\n/**\n * Get the property with the given name on the given type (if it exists).\n * @category Types - Getters\n * @example\n * ```ts\n * declare const property: ts.Symbol;\n * declare const type: ts.Type;\n *\n * getPropertyOfType(type, property.getEscapedName());\n * ```\n */\nexport function getPropertyOfType(\n\ttype: ts.Type,\n\tname: ts.__String,\n): ts.Symbol | undefined {\n\tif (!(name as string).startsWith(\"__\")) {\n\t\treturn type.getProperty(name as string);\n\t}\n\n\treturn type.getProperties().find((s) => s.escapedName === name);\n}\n\n/**\n * Retrieves a type symbol corresponding to a well-known string name.\n * @category Types - Getters\n * @example\n * ```ts\n * declare const type: ts.Type;\n * declare const typeChecker: ts.TypeChecker;\n *\n * getWellKnownSymbolPropertyOfType(type, \"asyncIterator\", typeChecker);\n * ```\n */\nexport function getWellKnownSymbolPropertyOfType(\n\ttype: ts.Type,\n\twellKnownSymbolName: string,\n\ttypeChecker: ts.TypeChecker,\n): ts.Symbol | undefined {\n\tconst prefix = \"__@\" + wellKnownSymbolName;\n\n\tfor (const prop of type.getProperties()) {\n\t\tif (!prop.name.startsWith(prefix)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst declaration = prop.valueDeclaration ?? prop.getDeclarations()![0];\n\t\tif (\n\t\t\t!isNamedDeclarationWithName(declaration) ||\n\t\t\tdeclaration.name === undefined ||\n\t\t\t!ts.isComputedPropertyName(declaration.name)\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst globalSymbol = typeChecker.getApparentType(\n\t\t\ttypeChecker.getTypeAtLocation(declaration.name.expression),\n\t\t).symbol;\n\n\t\tif (\n\t\t\tprop.escapedName ===\n\t\t\tgetPropertyNameOfWellKnownSymbol(\n\t\t\t\ttypeChecker,\n\t\t\t\tglobalSymbol,\n\t\t\t\twellKnownSymbolName,\n\t\t\t)\n\t\t) {\n\t\t\treturn prop;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\n/**\n * @internal\n */\nfunction getPropertyNameOfWellKnownSymbol(\n\ttypeChecker: ts.TypeChecker,\n\tsymbolConstructor: ts.Symbol | undefined,\n\tsymbolName: string,\n) {\n\tconst knownSymbol =\n\t\tsymbolConstructor &&\n\t\ttypeChecker\n\t\t\t.getTypeOfSymbolAtLocation(\n\t\t\t\tsymbolConstructor,\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\t\t(symbolConstructor as any).valueDeclaration,\n\t\t\t)\n\t\t\t.getProperty(symbolName);\n\tconst knownSymbolType =\n\t\tknownSymbol &&\n\t\ttypeChecker.getTypeOfSymbolAtLocation(\n\t\t\tknownSymbol,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\t(knownSymbol as any).valueDeclaration,\n\t\t);\n\tif (knownSymbolType && isUniqueESSymbolType(knownSymbolType)) {\n\t\treturn knownSymbolType.escapedName;\n\t}\n\n\treturn (\"__@\" + symbolName) as ts.__String;\n}\n","import ts from \"typescript\";\n\nimport { isTypeFlagSet } from \"../../flags\";\n\n/**\n * A \"any\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicAnyType extends IntrinsicType {\n\tintrinsicName: \"any\";\n}\n\n/**\n * Determines whether the given type is the \"any\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicAnyType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicAnyType(type: ts.Type): type is IntrinsicAnyType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Any);\n}\n\n/**\n * A \"boolean\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicBooleanType extends IntrinsicType {\n\tintrinsicName: \"boolean\";\n}\n\n/**\n * Determines whether the given type is the \"boolean\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicBooleanType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicBooleanType(\n\ttype: ts.Type,\n): type is IntrinsicBooleanType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Boolean);\n}\n\n/**\n * A \"bigint\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicBigIntType extends IntrinsicType {\n\tintrinsicName: \"bigint\";\n}\n\n/**\n * Determines whether the given type is the \"bigint\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicBigIntType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicBigIntType(\n\ttype: ts.Type,\n): type is IntrinsicBigIntType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.BigInt);\n}\n\n/**\n * An \"error\" intrinsic type.\n *\n * This refers to a type generated when TypeScript encounters an error while\n * trying to resolve the type.\n * @category Type Types\n */\nexport interface IntrinsicErrorType extends IntrinsicType {\n\tintrinsicName: \"error\";\n}\n\n/**\n * Determines whether the given type is the \"error\" intrinsic type.\n *\n * The intrinsic error type occurs when TypeScript encounters an error while\n * trying to resolve the type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicErrorType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicErrorType(\n\ttype: ts.Type,\n): type is IntrinsicErrorType {\n\treturn isIntrinsicType(type) && type.intrinsicName === \"error\";\n}\n\n/**\n * A \"symbol\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicESSymbolType extends IntrinsicType {\n\tintrinsicName: \"symbol\";\n}\n\n/**\n * Determines whether the given type is the \"symbol\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicESSymbolType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicESSymbolType(\n\ttype: ts.Type,\n): type is IntrinsicESSymbolType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.ESSymbol);\n}\n\n/**\n * An intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicType extends ts.Type {\n\tintrinsicName: string;\n\tobjectFlags: ts.ObjectFlags;\n}\n\n// ts.TypeFlags.Intrinsic\nconst IntrinsicTypeFlags =\n\t(ts.TypeFlags as { Intrinsic?: number }).Intrinsic ??\n\tts.TypeFlags.Any |\n\t\tts.TypeFlags.Unknown |\n\t\tts.TypeFlags.String |\n\t\tts.TypeFlags.Number |\n\t\tts.TypeFlags.BigInt |\n\t\tts.TypeFlags.Boolean |\n\t\tts.TypeFlags.BooleanLiteral |\n\t\tts.TypeFlags.ESSymbol |\n\t\tts.TypeFlags.Void |\n\t\tts.TypeFlags.Undefined |\n\t\tts.TypeFlags.Null |\n\t\tts.TypeFlags.Never |\n\t\tts.TypeFlags.NonPrimitive;\n\n/**\n * Test if a type is an {@link IntrinsicType}.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicType(type: ts.Type): type is IntrinsicType {\n\treturn isTypeFlagSet(type, IntrinsicTypeFlags);\n}\n\n/**\n * A \"never\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicNeverType extends IntrinsicType {\n\tintrinsicName: \"never\";\n}\n\n/**\n * Determines whether the given type is the \"never\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicNeverType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicNeverType(\n\ttype: ts.Type,\n): type is IntrinsicNeverType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Never);\n}\n\n/**\n * A non-primitive intrinsic type.\n * E.g. An \"object\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicNonPrimitiveType extends IntrinsicType {\n\tintrinsicName: \"\";\n}\n\n/**\n * Determines whether the given type is a non-primitive intrinsic type.\n * E.g. An \"object\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicNonPrimitiveType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicNonPrimitiveType(\n\ttype: ts.Type,\n): type is IntrinsicNonPrimitiveType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.NonPrimitive);\n}\n\n/**\n * A \"null\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicNullType extends IntrinsicType {\n\tintrinsicName: \"null\";\n}\n\n/**\n * Determines whether the given type is the \"null\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicNullType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicNullType(type: ts.Type): type is IntrinsicNullType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Null);\n}\n\n/**\n * A \"number\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicNumberType extends IntrinsicType {\n\tintrinsicName: \"number\";\n}\n\n/**\n * Determines whether the given type is the \"number\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicNumberType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicNumberType(\n\ttype: ts.Type,\n): type is IntrinsicNumberType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Number);\n}\n\n/**\n * A \"string\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicStringType extends IntrinsicType {\n\tintrinsicName: \"string\";\n}\n\n/**\n * Determines whether the given type is the \"string\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicStringType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicStringType(\n\ttype: ts.Type,\n): type is IntrinsicStringType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.String);\n}\n\n/**\n * An \"undefined\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicUndefinedType extends IntrinsicType {\n\tintrinsicName: \"undefined\";\n}\n\n/**\n * Determines whether the given type is the \"undefined\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicUndefinedType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicUndefinedType(\n\ttype: ts.Type,\n): type is IntrinsicUndefinedType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Undefined);\n}\n\n/**\n * An \"unknown\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicUnknownType extends IntrinsicType {\n\tintrinsicName: \"unknown\";\n}\n\n/**\n * Determines whether the given type is the \"unknown\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicUnknownType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicUnknownType(\n\ttype: ts.Type,\n): type is IntrinsicUnknownType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Unknown);\n}\n\n/**\n * A \"void\" intrinsic type.\n * @category Type Types\n */\nexport interface IntrinsicVoidType extends IntrinsicType {\n\tintrinsicName: \"void\";\n}\n\n/**\n * Determines whether the given type is the \"void\" intrinsic type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntrinsicVoidType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntrinsicVoidType(type: ts.Type): type is IntrinsicVoidType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Void);\n}\n","import ts from \"typescript\";\n\nimport { isObjectFlagSet } from \"../../flags\";\nimport { isObjectType } from \"./single\";\n\n/**\n * Test if a type is a `EvolvingArrayType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isEvolvingArrayType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isEvolvingArrayType(\n\ttype: ts.Type,\n): type is ts.EvolvingArrayType {\n\treturn (\n\t\tisObjectType(type) && isObjectFlagSet(type, ts.ObjectFlags.EvolvingArray)\n\t);\n}\n\n/**\n * Test if a type is a `TupleType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTupleType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isTupleType(type: ts.Type): type is ts.TupleType {\n\treturn isObjectType(type) && isObjectFlagSet(type, ts.ObjectFlags.Tuple);\n}\n\n/**\n * Test if a type is a `TypeReference`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTypeReference(type)) {\n * // ...\n * }\n * ```\n */\nexport function isTypeReference(type: ts.Type): type is ts.TypeReference {\n\treturn isObjectType(type) && isObjectFlagSet(type, ts.ObjectFlags.Reference);\n}\n","import ts from \"typescript\";\n\nimport { isTypeFlagSet } from \"../../flags\";\n\n/**\n * Test if a type is a `ConditionalType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isConditionalType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isConditionalType(type: ts.Type): type is ts.ConditionalType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Conditional);\n}\n\n/**\n * Test if a type is a `EnumType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isEnumType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isEnumType(type: ts.Type): type is ts.EnumType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Enum);\n}\n\n/**\n * Test if a type is a `FreshableType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isFreshableType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isFreshableType(type: ts.Type): type is ts.FreshableType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Freshable);\n}\n\n/**\n * Test if a type is a `IndexType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIndexType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIndexType(type: ts.Type): type is ts.IndexType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Index);\n}\n\n/**\n * Test if a type is a `IndexedAccessType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIndexedAccessType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIndexedAccessType(\n\ttype: ts.Type,\n): type is ts.IndexedAccessType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.IndexedAccess);\n}\n\n/**\n * Test if a type is a `InstantiableType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isInstantiableType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isInstantiableType(type: ts.Type): type is ts.InstantiableType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Instantiable);\n}\n\n/**\n * Test if a type is a `IntersectionType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isIntersectionType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isIntersectionType(type: ts.Type): type is ts.IntersectionType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Intersection);\n}\n\n/**\n * Test if a type is a `ObjectType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isObjectType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isObjectType(type: ts.Type): type is ts.ObjectType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Object);\n}\n\n/**\n * Test if a type is a `StringMappingType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isStringMappingType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isStringMappingType(\n\ttype: ts.Type,\n): type is ts.StringMappingType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.StringMapping);\n}\n\n/**\n * Test if a type is a `SubstitutionType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isSubstitutionType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isSubstitutionType(type: ts.Type): type is ts.SubstitutionType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Substitution);\n}\n\n/**\n * Test if a type is a `TypeParameter`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTypeParameter(type)) {\n * // ...\n * }\n * ```\n */\nexport function isTypeParameter(type: ts.Type): type is ts.TypeParameter {\n\treturn isTypeFlagSet(type, ts.TypeFlags.TypeParameter);\n}\n\n/**\n * Test if a type is a `TypeVariable`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTypeVariable(type)) {\n * // ...\n * }\n * ```\n */\nexport function isTypeVariable(type: ts.Type): type is ts.TypeVariable {\n\treturn isTypeFlagSet(type, ts.TypeFlags.TypeVariable);\n}\n\n/**\n * Test if a type is a `UnionType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isUnionType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isUnionType(type: ts.Type): type is ts.UnionType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Union);\n}\n\n/**\n * Test if a type is a `UnionOrIntersectionType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isUnionOrIntersectionType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isUnionOrIntersectionType(\n\ttype: ts.Type,\n): type is ts.UnionOrIntersectionType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.UnionOrIntersection);\n}\n\n/**\n * Test if a type is a `UniqueESSymbolType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isUniqueESSymbolType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isUniqueESSymbolType(\n\ttype: ts.Type,\n): type is ts.UniqueESSymbolType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.UniqueESSymbol);\n}\n","import ts from \"typescript\";\n\nimport { type IntrinsicType, isIntrinsicType } from \"./intrinsic\";\nimport { isTupleType, isTypeReference } from \"./objects\";\nimport { isFreshableType } from \"./single\";\n\n/**\n * A type that is both an {@link IntrinsicType} and a `FreshableType`\n * @category Type Types\n */\nexport interface FreshableIntrinsicType\n\textends ts.FreshableType,\n\t\tIntrinsicType {}\n\n/**\n * Test if a type is a `FreshableIntrinsicType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isFreshableIntrinsicType(type)) {\n * // ...\n * }\n */\nexport function isFreshableIntrinsicType(\n\ttype: ts.Type,\n): type is FreshableIntrinsicType {\n\treturn isIntrinsicType(type) && isFreshableType(type);\n}\n\n/**\n * Test if a type is a `TupleTypeReference`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTupleTypeReference(type)) {\n * // ...\n * }\n */\nexport function isTupleTypeReference(\n\ttype: ts.Type,\n): type is ts.TupleTypeReference {\n\treturn isTypeReference(type) && isTupleType(type.target);\n}\n","import ts from \"typescript\";\n\nimport { isTypeFlagSet } from \"../../flags\";\nimport { type FreshableIntrinsicType } from \"./compound\";\n\n/**\n * A boolean literal.\n * i.e. Either a \"true\" or \"false\" literal.\n * @category Type Types\n */\nexport interface BooleanLiteralType extends UnknownLiteralType {\n\tintrinsicName: \"false\" | \"true\";\n\tvalue: boolean;\n}\n\n/**\n * Determines whether the given type is a boolean literal type.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isBooleanLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isBooleanLiteralType(\n\ttype: ts.Type,\n): type is BooleanLiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.BooleanLiteral);\n}\n\n/**\n * Test if a type is a `BigIntLiteralType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isBigIntLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isBigIntLiteralType(\n\ttype: ts.Type,\n): type is ts.BigIntLiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.BigIntLiteral);\n}\n\n/**\n * A \"false\" literal.\n * @category Type Types\n */\nexport interface FalseLiteralType extends BooleanLiteralType {\n\tintrinsicName: \"false\";\n\tvalue: false;\n}\n\n/**\n * Determines whether the given type is a boolean literal type for \"false\".\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isFalseLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isFalseLiteralType(type: ts.Type): type is FalseLiteralType {\n\treturn isBooleanLiteralType(type) && type.intrinsicName === \"false\";\n}\n\n/**\n * Test if a type is a `LiteralType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isLiteralType(type: ts.Type): type is ts.LiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Literal);\n}\n\n/**\n * Test if a type is a `NumberLiteralType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isNumberLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isNumberLiteralType(\n\ttype: ts.Type,\n): type is ts.NumberLiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.NumberLiteral);\n}\n\n/**\n * Test if a type is a `StringLiteralType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isStringLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isStringLiteralType(\n\ttype: ts.Type,\n): type is ts.StringLiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.StringLiteral);\n}\n\n/**\n * Test if a type is a `TemplateLiteralType`.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTemplateLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isTemplateLiteralType(\n\ttype: ts.Type,\n): type is ts.TemplateLiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.TemplateLiteral);\n}\n\n/**\n * A \"true\" literal.\n * @category Type Types\n */\nexport interface TrueLiteralType extends BooleanLiteralType {\n\tintrinsicName: \"true\";\n\tvalue: true;\n}\n\n/**\n * Determines whether the given type is a boolean literal type for \"true\".\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isTrueLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isTrueLiteralType(type: ts.Type): type is TrueLiteralType {\n\treturn isBooleanLiteralType(type) && type.intrinsicName === \"true\";\n}\n\n/**\n * `LiteralType` from typescript except that it allows for it to work on arbitrary types.\n * @category Type Types\n */\nexport interface UnknownLiteralType extends FreshableIntrinsicType {\n\tvalue: unknown;\n}\n\n/**\n * Test if a type is a {@link UnknownLiteralType}.\n * @category Types - Type Guards\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isUnknownLiteralType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isUnknownLiteralType(\n\ttype: ts.Type,\n): type is UnknownLiteralType {\n\treturn isTypeFlagSet(type, ts.TypeFlags.Literal);\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport {\n\tisModifierFlagSet,\n\tisNodeFlagSet,\n\tisObjectFlagSet,\n\tisSymbolFlagSet,\n\tisTypeFlagSet,\n} from \"../flags\";\nimport {\n\tisBindableObjectDefinePropertyCall,\n\tisInConstContext,\n} from \"../nodes/utilities\";\nimport { isNumericPropertyName } from \"../syntax\";\nimport { getPropertyOfType } from \"./getters\";\nimport {\n\tisFalseLiteralType,\n\tisIntersectionType,\n\tisObjectType,\n\tisTupleTypeReference,\n\tisUnionType,\n} from \"./typeGuards\";\n\n/**\n * Determines whether a type is definitely falsy. This function doesn't unwrap union types.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * if (isFalsyType(type)) {\n * // ...\n * }\n * ```\n */\nexport function isFalsyType(type: ts.Type): boolean {\n\tif (\n\t\tisTypeFlagSet(\n\t\t\ttype,\n\t\t\tts.TypeFlags.Undefined | ts.TypeFlags.Null | ts.TypeFlags.Void,\n\t\t)\n\t) {\n\t\treturn true;\n\t}\n\n\tif (type.isLiteral()) {\n\t\treturn !type.value;\n\t}\n\n\treturn isFalseLiteralType(type);\n}\n\n/**\n * Get the intersection type parts of the given type.\n *\n * If the given type is not a intersection type, an array contain only that type will be returned.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * for (const typePart of intersectionTypeParts(type)) {\n * // ...\n * }\n * ```\n */\nexport function intersectionTypeParts(type: ts.Type): ts.Type[] {\n\treturn isIntersectionType(type) ? type.types : [type];\n}\n\n/**\n * Get the intersection or union type parts of the given type.\n *\n * Note that this is a shallow collection: it only returns `type.types` or `[type]`.\n *\n * If the given type is not an intersection or union type, an array contain only that type will be returned.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * for (const typePart of intersectionTypeParts(type)) {\n * // ...\n * }\n * ```\n */\nexport function typeParts(type: ts.Type): ts.Type[] {\n\treturn isIntersectionType(type) || isUnionType(type) ? type.types : [type];\n}\n\nfunction isReadonlyPropertyIntersection(\n\ttype: ts.Type,\n\tname: ts.__String,\n\ttypeChecker: ts.TypeChecker,\n) {\n\tconst typeParts = isIntersectionType(type) ? type.types : [type];\n\treturn typeParts.some((subType): boolean => {\n\t\tconst prop = getPropertyOfType(subType, name);\n\t\tif (prop === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (prop.flags & ts.SymbolFlags.Transient) {\n\t\t\tif (\n\t\t\t\t/^(?:[1-9]\\d*|0)$/.test(name as string) &&\n\t\t\t\tisTupleTypeReference(subType)\n\t\t\t) {\n\t\t\t\treturn subType.target.readonly;\n\t\t\t}\n\n\t\t\tswitch (isReadonlyPropertyFromMappedType(subType, name, typeChecker)) {\n\t\t\t\tcase true:\n\t\t\t\t\treturn true;\n\t\t\t\tcase false:\n\t\t\t\t\treturn false;\n\t\t\t\tdefault:\n\t\t\t\t// `undefined` falls through\n\t\t\t}\n\t\t}\n\n\t\treturn !!(\n\t\t\t// members of namespace import\n\t\t\t(\n\t\t\t\tisSymbolFlagSet(prop, ts.SymbolFlags.ValueModule) ||\n\t\t\t\t// we unwrapped every mapped type, now we can check the actual declarations\n\t\t\t\tsymbolHasReadonlyDeclaration(prop, typeChecker)\n\t\t\t)\n\t\t);\n\t});\n}\n\nfunction isReadonlyPropertyFromMappedType(\n\ttype: ts.Type,\n\tname: ts.__String,\n\ttypeChecker: ts.TypeChecker,\n): boolean | undefined {\n\tif (!isObjectType(type) || !isObjectFlagSet(type, ts.ObjectFlags.Mapped)) {\n\t\treturn;\n\t}\n\n\tconst declaration = type.symbol.declarations![0] as ts.MappedTypeNode;\n\t// well-known symbols are not affected by mapped types\n\tif (\n\t\tdeclaration.readonlyToken !== undefined &&\n\t\t!/^__@[^@]+$/.test(name as string)\n\t) {\n\t\treturn declaration.readonlyToken.kind !== ts.SyntaxKind.MinusToken;\n\t}\n\n\tconst { modifiersType } = type as { modifiersType?: ts.Type };\n\n\treturn (\n\t\tmodifiersType && isPropertyReadonlyInType(modifiersType, name, typeChecker)\n\t);\n}\n\nfunction isCallback(\n\ttypeChecker: ts.TypeChecker,\n\tparam: ts.Symbol,\n\tnode: ts.Node,\n): boolean {\n\tlet type: ts.Type | undefined = typeChecker.getApparentType(\n\t\ttypeChecker.getTypeOfSymbolAtLocation(param, node),\n\t);\n\tif ((param.valueDeclaration as ts.ParameterDeclaration).dotDotDotToken) {\n\t\t// unwrap array type of rest parameter\n\t\ttype = type.getNumberIndexType();\n\t\tif (type === undefined) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tfor (const subType of unionTypeParts(type)) {\n\t\tif (subType.getCallSignatures().length !== 0) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * Determines whether writing to a certain property of a given type is allowed.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const property: ts.Symbol;\n * declare const type: ts.Type;\n * declare const typeChecker: ts.TypeChecker;\n *\n * if (isPropertyReadonlyInType(type, property.getEscapedName(), typeChecker)) {\n * // ...\n * }\n * ```\n */\nexport function isPropertyReadonlyInType(\n\ttype: ts.Type,\n\tname: ts.__String,\n\ttypeChecker: ts.TypeChecker,\n): boolean {\n\tlet seenProperty = false;\n\tlet seenReadonlySignature = false;\n\tfor (const subType of unionTypeParts(type)) {\n\t\tif (getPropertyOfType(subType, name) === undefined) {\n\t\t\t// property is not present in this part of the union -> check for readonly index signature\n\t\t\tconst index =\n\t\t\t\t(isNumericPropertyName(name)\n\t\t\t\t\t? typeChecker.getIndexInfoOfType(subType, ts.IndexKind.Number)\n\t\t\t\t\t: undefined) ??\n\t\t\t\ttypeChecker.getIndexInfoOfType(subType, ts.IndexKind.String);\n\t\t\tif (index?.isReadonly) {\n\t\t\t\tif (seenProperty) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tseenReadonlySignature = true;\n\t\t\t}\n\t\t} else if (\n\t\t\tseenReadonlySignature ||\n\t\t\tisReadonlyPropertyIntersection(subType, name, typeChecker)\n\t\t) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\tseenProperty = true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * Returns true for `Object.defineProperty(o, 'prop', {value, writable: false})` and `Object.defineProperty(o, 'prop', {get: () => 1})`\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const node: ts.CallExpression;\n * declare const typeChecker: ts.TypeChecker;\n *\n * if (isReadonlyAssignmentDeclaration(node, typeChecker)) {\n * // ...\n * }\n * ```\n */\nfunction isReadonlyAssignmentDeclaration(\n\tnode: ts.CallExpression,\n\ttypeChecker: ts.TypeChecker,\n) {\n\tif (!isBindableObjectDefinePropertyCall(node)) {\n\t\treturn false;\n\t}\n\n\tconst descriptorType = typeChecker.getTypeAtLocation(node.arguments[2]);\n\tif (descriptorType.getProperty(\"value\") === undefined) {\n\t\treturn descriptorType.getProperty(\"set\") === undefined;\n\t}\n\n\tconst writableProp = descriptorType.getProperty(\"writable\");\n\tif (writableProp === undefined) {\n\t\treturn false;\n\t}\n\n\tconst writableType =\n\t\twritableProp.valueDeclaration !== undefined &&\n\t\tts.isPropertyAssignment(writableProp.valueDeclaration)\n\t\t\t? typeChecker.getTypeAtLocation(writableProp.valueDeclaration.initializer)\n\t\t\t: typeChecker.getTypeOfSymbolAtLocation(writableProp, node.arguments[2]);\n\treturn isFalseLiteralType(writableType);\n}\n\n/**\n * Determines whether a type is thenable and thus can be used with `await`.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const node: ts.Node;\n * declare const type: ts.Type;\n * declare const typeChecker: ts.TypeChecker;\n *\n * if (isThenableType(typeChecker, node, type)) {\n * // ...\n * }\n * ```\n */\nexport function isThenableType(\n\ttypeChecker: ts.TypeChecker,\n\tnode: ts.Node,\n\ttype: ts.Type,\n): boolean;\n\n/**\n * Determines whether a type is thenable and thus can be used with `await`.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const expression: ts.Expression;\n * declare const typeChecker: ts.TypeChecker;\n *\n * if (isThenableType(typeChecker, expression)) {\n * // ...\n * }\n * ```\n * @example\n * ```ts\n * declare const expression: ts.Expression;\n * declare const typeChecker: ts.TypeChecker;\n * declare const type: ts.Type;\n *\n * if (isThenableType(typeChecker, expression, type)) {\n * // ...\n * }\n * ```\n */\nexport function isThenableType(\n\ttypeChecker: ts.TypeChecker,\n\tnode: ts.Expression,\n\ttype?: ts.Type,\n): boolean;\n\nexport function isThenableType(\n\ttypeChecker: ts.TypeChecker,\n\tnode: ts.Node,\n\ttype = typeChecker.getTypeAtLocation(node)!,\n): boolean {\n\tfor (const typePart of unionTypeParts(typeChecker.getApparentType(type))) {\n\t\tconst then = typePart.getProperty(\"then\");\n\t\tif (then === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst thenType = typeChecker.getTypeOfSymbolAtLocation(then, node);\n\t\tfor (const subTypePart of unionTypeParts(thenType)) {\n\t\t\tfor (const signature of subTypePart.getCallSignatures()) {\n\t\t\t\tif (\n\t\t\t\t\tsignature.parameters.length !== 0 &&\n\t\t\t\t\tisCallback(typeChecker, signature.parameters[0], node)\n\t\t\t\t) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * Test if the given symbol has a readonly declaration.\n * @category Symbols - Utilities\n * @example\n * ```ts\n * declare const symbol: ts.Symbol;\n * declare const typeChecker: ts.TypeChecker;\n *\n * if (symbolHasReadonlyDeclaration(symbol, typeChecker)) {\n * // ...\n * }\n * ```\n */\nexport function symbolHasReadonlyDeclaration(\n\tsymbol: ts.Symbol,\n\ttypeChecker: ts.TypeChecker,\n): boolean {\n\treturn !!(\n\t\t(symbol.flags & ts.SymbolFlags.Accessor) === ts.SymbolFlags.GetAccessor ||\n\t\tsymbol.declarations?.some(\n\t\t\t(node) =>\n\t\t\t\tisModifierFlagSet(node, ts.ModifierFlags.Readonly) ||\n\t\t\t\t(ts.isVariableDeclaration(node) &&\n\t\t\t\t\tisNodeFlagSet(node.parent, ts.NodeFlags.Const)) ||\n\t\t\t\t(ts.isCallExpression(node) &&\n\t\t\t\t\tisReadonlyAssignmentDeclaration(node, typeChecker)) ||\n\t\t\t\tts.isEnumMember(node) ||\n\t\t\t\t((ts.isPropertyAssignment(node) ||\n\t\t\t\t\tts.isShorthandPropertyAssignment(node)) &&\n\t\t\t\t\tisInConstContext(node.parent)),\n\t\t)\n\t);\n}\n\n/**\n * Get the union type parts of the given type.\n *\n * If the given type is not a union type, an array contain only that type will be returned.\n * @category Types - Utilities\n * @example\n * ```ts\n * declare const type: ts.Type;\n *\n * for (const typePart of unionTypeParts(type)) {\n * // ...\n * }\n * ```\n */\nexport function unionTypeParts(type: ts.Type): ts.Type[] {\n\treturn isUnionType(type) ? type.types : [type];\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport {\n\tisConstAssertionExpression,\n\tisEntityNameExpression,\n\tisNumericOrStringLikeLiteral,\n} from \"./typeGuards\";\n\n/**\n * Determines whether a call to {@link Object.defineProperty} is statically analyzable.\n * @internal\n */\nexport function isBindableObjectDefinePropertyCall(\n\tnode: ts.CallExpression,\n): boolean {\n\treturn (\n\t\tnode.arguments.length === 3 &&\n\t\tisEntityNameExpression(node.arguments[0]) &&\n\t\tisNumericOrStringLikeLiteral(node.arguments[1]) &&\n\t\tts.isPropertyAccessExpression(node.expression) &&\n\t\tnode.expression.name.escapedText === \"defineProperty\" &&\n\t\tts.isIdentifier(node.expression.expression) &&\n\t\tnode.expression.expression.escapedText === \"Object\"\n\t);\n}\n\n/**\n * Detects whether an expression is affected by an enclosing `as const` assertion and therefore treated literally.\n * @internal\n */\nexport function isInConstContext(node: ts.Expression): boolean {\n\tlet current: ts.Node = node;\n\twhile (true) {\n\t\tconst parent = current.parent;\n\t\touter: switch (parent.kind) {\n\t\t\tcase ts.SyntaxKind.TypeAssertionExpression:\n\t\t\tcase ts.SyntaxKind.AsExpression:\n\t\t\t\treturn isConstAssertionExpression(parent as ts.AssertionExpression);\n\t\t\tcase ts.SyntaxKind.PrefixUnaryExpression:\n\t\t\t\tif (current.kind !== ts.SyntaxKind.NumericLiteral) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tswitch ((parent as ts.PrefixUnaryExpression).operator) {\n\t\t\t\t\tcase ts.SyntaxKind.PlusToken:\n\t\t\t\t\tcase ts.SyntaxKind.MinusToken:\n\t\t\t\t\t\tcurrent = parent;\n\t\t\t\t\t\tbreak outer;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\tcase ts.SyntaxKind.PropertyAssignment:\n\t\t\t\tif ((parent as ts.PropertyAssignment).initializer !== current) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tcurrent = parent.parent!;\n\t\t\t\tbreak;\n\t\t\tcase ts.SyntaxKind.ShorthandPropertyAssignment:\n\t\t\t\tcurrent = parent.parent!;\n\t\t\t\tbreak;\n\t\t\tcase ts.SyntaxKind.ParenthesizedExpression:\n\t\t\tcase ts.SyntaxKind.ArrayLiteralExpression:\n\t\t\tcase ts.SyntaxKind.ObjectLiteralExpression:\n\t\t\tcase ts.SyntaxKind.TemplateExpression:\n\t\t\t\tcurrent = parent;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { includesModifier } from \"../modifiers\";\nimport {\n\tScope,\n\tScopeBoundary,\n\tScopeBoundarySelector,\n\tisBlockScopeBoundary,\n} from \"./Scope\";\nimport { DeclarationDomain } from \"./declarations\";\nimport { getPropertyName } from \"./getPropertyName\";\nimport { getUsageDomain } from \"./getUsageDomain\";\nimport {\n\tBlockScope,\n\tClassExpressionScope,\n\tConditionalTypeScope,\n\tConditionalTypeScopeState,\n\tFunctionExpressionScope,\n\tFunctionScope,\n\tNonRootScope,\n\tRootScope,\n} from \"./scopes\";\nimport { UsageInfo, UsageInfoCallback } from \"./usage\";\nimport {\n\tcanHaveDecorators,\n\tgetDecorators,\n\tidentifierToKeywordKind,\n} from \"./utils\";\n\n// TODO class decorators resolve outside of class, element and parameter decorator resolve inside/at the class\n// TODO computed property name resolves inside/at the class\n// TODO this and super in all of them are resolved outside of the class\nexport class UsageWalker {\n\t#result = new Map();\n\t#scope!: Scope;\n\n\t#handleBindingName(\n\t\tname: ts.BindingName,\n\t\tblockScoped: boolean,\n\t\texported: boolean,\n\t) {\n\t\tif (name.kind === ts.SyntaxKind.Identifier) {\n\t\t\treturn this.#scope.addVariable(\n\t\t\t\tname.text,\n\t\t\t\tname,\n\t\t\t\tblockScoped\n\t\t\t\t\t? ScopeBoundarySelector.Block\n\t\t\t\t\t: ScopeBoundarySelector.Function,\n\t\t\t\texported,\n\t\t\t\tDeclarationDomain.Value,\n\t\t\t);\n\t\t}\n\n\t\tforEachDestructuringIdentifier(name, (declaration) => {\n\t\t\tthis.#scope.addVariable(\n\t\t\t\tdeclaration.name.text,\n\t\t\t\tdeclaration.name,\n\t\t\t\tblockScoped\n\t\t\t\t\t? ScopeBoundarySelector.Block\n\t\t\t\t\t: ScopeBoundarySelector.Function,\n\t\t\t\texported,\n\t\t\t\tDeclarationDomain.Value,\n\t\t\t);\n\t\t});\n\t}\n\n\t#handleConditionalType(\n\t\tnode: ts.ConditionalTypeNode,\n\t\tcb: (node: ts.Node) => void,\n\t\tvarCb: UsageInfoCallback,\n\t) {\n\t\tconst savedScope = this.#scope;\n\t\tconst scope = (this.#scope = new ConditionalTypeScope(savedScope));\n\t\tcb(node.checkType);\n\t\tscope.updateState(ConditionalTypeScopeState.Extends);\n\t\tcb(node.extendsType);\n\t\tscope.updateState(ConditionalTypeScopeState.TrueType);\n\t\tcb(node.trueType);\n\t\tscope.updateState(ConditionalTypeScopeState.FalseType);\n\t\tcb(node.falseType);\n\t\tscope.end(varCb);\n\t\tthis.#scope = savedScope;\n\t}\n\n\t#handleDeclaration(\n\t\tnode: ts.NamedDeclaration,\n\t\tblockScoped: boolean,\n\t\tdomain: DeclarationDomain,\n\t) {\n\t\tif (node.name !== undefined) {\n\t\t\tthis.#scope.addVariable(\n\t\t\t\t(node.name as ts.Identifier).text,\n\t\t\t\tnode.name as ts.Identifier,\n\t\t\t\tblockScoped\n\t\t\t\t\t? ScopeBoundarySelector.Block\n\t\t\t\t\t: ScopeBoundarySelector.Function,\n\t\t\t\tincludesModifier(\n\t\t\t\t\t(node as ts.HasModifiers).modifiers,\n\t\t\t\t\tts.SyntaxKind.ExportKeyword,\n\t\t\t\t),\n\t\t\t\tdomain,\n\t\t\t);\n\t\t}\n\t}\n\n\t#handleFunctionLikeDeclaration(\n\t\tnode: ts.FunctionLikeDeclaration,\n\t\tcb: (node: ts.Node) => void,\n\t\tvarCb: UsageInfoCallback,\n\t) {\n\t\tif (canHaveDecorators(node)) {\n\t\t\tgetDecorators(node)?.forEach(cb);\n\t\t}\n\n\t\tconst savedScope = this.#scope;\n\t\tif (node.kind === ts.SyntaxKind.FunctionDeclaration) {\n\t\t\tthis.#handleDeclaration(node, false, DeclarationDomain.Value);\n\t\t}\n\n\t\tconst scope = (this.#scope =\n\t\t\tnode.kind === ts.SyntaxKind.FunctionExpression && node.name !== undefined\n\t\t\t\t? new FunctionExpressionScope(node.name, savedScope)\n\t\t\t\t: new FunctionScope(savedScope));\n\t\tif (node.name !== undefined) {\n\t\t\tcb(node.name);\n\t\t}\n\n\t\tif (node.typeParameters !== undefined) {\n\t\t\tnode.typeParameters.forEach(cb);\n\t\t}\n\n\t\tnode.parameters.forEach(cb);\n\t\tif (node.type !== undefined) {\n\t\t\tcb(node.type);\n\t\t}\n\n\t\tif (node.body !== undefined) {\n\t\t\tscope.beginBody();\n\t\t\tcb(node.body);\n\t\t}\n\n\t\tscope.end(varCb);\n\t\tthis.#scope = savedScope;\n\t}\n\n\t#handleModule(\n\t\tnode: ts.ModuleDeclaration,\n\t\tnext: (node: ts.Node, scope: Scope) => void,\n\t) {\n\t\tif (node.flags & ts.NodeFlags.GlobalAugmentation) {\n\t\t\treturn next(\n\t\t\t\tnode,\n\t\t\t\tthis.#scope.createOrReuseNamespaceScope(\"-global\", false, true, false),\n\t\t\t);\n\t\t}\n\n\t\tif (node.name.kind === ts.SyntaxKind.Identifier) {\n\t\t\tconst exported = isNamespaceExported(node as ts.NamespaceDeclaration);\n\t\t\tthis.#scope.addVariable(\n\t\t\t\tnode.name.text,\n\t\t\t\tnode.name,\n\t\t\t\tScopeBoundarySelector.Function,\n\t\t\t\texported,\n\t\t\t\tDeclarationDomain.Namespace | DeclarationDomain.Value,\n\t\t\t);\n\t\t\tconst ambient = includesModifier(\n\t\t\t\tnode.modifiers,\n\t\t\t\tts.SyntaxKind.DeclareKeyword,\n\t\t\t);\n\t\t\treturn next(\n\t\t\t\tnode,\n\t\t\t\tthis.#scope.createOrReuseNamespaceScope(\n\t\t\t\t\tnode.name.text,\n\t\t\t\t\texported,\n\t\t\t\t\tambient,\n\t\t\t\t\tambient && namespaceHasExportStatement(node),\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\treturn next(\n\t\t\tnode,\n\t\t\tthis.#scope.createOrReuseNamespaceScope(\n\t\t\t\t`\"${node.name.text}\"`,\n\t\t\t\tfalse,\n\t\t\t\ttrue,\n\t\t\t\tnamespaceHasExportStatement(node),\n\t\t\t),\n\t\t);\n\t}\n\n\t#handleVariableDeclaration(declarationList: ts.VariableDeclarationList) {\n\t\tconst blockScoped = isBlockScopedVariableDeclarationList(declarationList);\n\t\tconst exported =\n\t\t\tdeclarationList.parent.kind === ts.SyntaxKind.VariableStatement &&\n\t\t\tincludesModifier(\n\t\t\t\tdeclarationList.parent.modifiers,\n\t\t\t\tts.SyntaxKind.ExportKeyword,\n\t\t\t);\n\t\tfor (const declaration of declarationList.declarations) {\n\t\t\tthis.#handleBindingName(declaration.name, blockScoped, exported);\n\t\t}\n\t}\n\n\tgetUsage(sourceFile: ts.SourceFile): Map {\n\t\tconst variableCallback = (variable: UsageInfo, key: ts.Identifier) => {\n\t\t\tthis.#result.set(key, variable);\n\t\t};\n\n\t\tconst isModule = ts.isExternalModule(sourceFile);\n\t\tthis.#scope = new RootScope(\n\t\t\tsourceFile.isDeclarationFile &&\n\t\t\t\tisModule &&\n\t\t\t\t!containsExportStatement(sourceFile),\n\t\t\t!isModule,\n\t\t);\n\t\tconst cb = (node: ts.Node): void => {\n\t\t\tif (isBlockScopeBoundary(node)) {\n\t\t\t\treturn continueWithScope(\n\t\t\t\t\tnode,\n\t\t\t\t\tnew BlockScope(this.#scope.getFunctionScope(), this.#scope),\n\t\t\t\t\thandleBlockScope,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tswitch (node.kind) {\n\t\t\t\tcase ts.SyntaxKind.ClassExpression:\n\t\t\t\t\treturn continueWithScope(\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\t(node as ts.ClassExpression).name !== undefined\n\t\t\t\t\t\t\t? new ClassExpressionScope(\n\t\t\t\t\t\t\t\t\t(node as ts.ClassExpression).name!,\n\t\t\t\t\t\t\t\t\tthis.#scope,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: new NonRootScope(this.#scope, ScopeBoundary.Function),\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.ClassDeclaration:\n\t\t\t\t\tthis.#handleDeclaration(\n\t\t\t\t\t\tnode as ts.ClassDeclaration,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tDeclarationDomain.Value | DeclarationDomain.Type,\n\t\t\t\t\t);\n\t\t\t\t\treturn continueWithScope(\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tnew NonRootScope(this.#scope, ScopeBoundary.Function),\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.InterfaceDeclaration:\n\t\t\t\tcase ts.SyntaxKind.TypeAliasDeclaration:\n\t\t\t\t\tthis.#handleDeclaration(\n\t\t\t\t\t\tnode as ts.InterfaceDeclaration | ts.TypeAliasDeclaration,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tDeclarationDomain.Type,\n\t\t\t\t\t);\n\t\t\t\t\treturn continueWithScope(\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tnew NonRootScope(this.#scope, ScopeBoundary.Type),\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.EnumDeclaration:\n\t\t\t\t\tthis.#handleDeclaration(\n\t\t\t\t\t\tnode as ts.EnumDeclaration,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tDeclarationDomain.Any,\n\t\t\t\t\t);\n\t\t\t\t\treturn continueWithScope(\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tthis.#scope.createOrReuseEnumScope(\n\t\t\t\t\t\t\t(node as ts.EnumDeclaration).name.text,\n\t\t\t\t\t\t\tincludesModifier(\n\t\t\t\t\t\t\t\t(node as ts.HasModifiers).modifiers,\n\t\t\t\t\t\t\t\tts.SyntaxKind.ExportKeyword,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.ModuleDeclaration:\n\t\t\t\t\treturn this.#handleModule(\n\t\t\t\t\t\tnode as ts.ModuleDeclaration,\n\t\t\t\t\t\tcontinueWithScope,\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.MappedType:\n\t\t\t\t\treturn continueWithScope(\n\t\t\t\t\t\tnode,\n\t\t\t\t\t\tnew NonRootScope(this.#scope, ScopeBoundary.Type),\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.FunctionExpression:\n\t\t\t\tcase ts.SyntaxKind.ArrowFunction:\n\t\t\t\tcase ts.SyntaxKind.Constructor:\n\t\t\t\tcase ts.SyntaxKind.MethodDeclaration:\n\t\t\t\tcase ts.SyntaxKind.FunctionDeclaration:\n\t\t\t\tcase ts.SyntaxKind.GetAccessor:\n\t\t\t\tcase ts.SyntaxKind.SetAccessor:\n\t\t\t\tcase ts.SyntaxKind.MethodSignature:\n\t\t\t\tcase ts.SyntaxKind.CallSignature:\n\t\t\t\tcase ts.SyntaxKind.ConstructSignature:\n\t\t\t\tcase ts.SyntaxKind.ConstructorType:\n\t\t\t\tcase ts.SyntaxKind.FunctionType:\n\t\t\t\t\treturn this.#handleFunctionLikeDeclaration(\n\t\t\t\t\t\tnode as ts.FunctionLikeDeclaration,\n\t\t\t\t\t\tcb,\n\t\t\t\t\t\tvariableCallback,\n\t\t\t\t\t);\n\t\t\t\tcase ts.SyntaxKind.ConditionalType:\n\t\t\t\t\treturn this.#handleConditionalType(\n\t\t\t\t\t\tnode as ts.ConditionalTypeNode,\n\t\t\t\t\t\tcb,\n\t\t\t\t\t\tvariableCallback,\n\t\t\t\t\t);\n\t\t\t\t// End of Scope specific handling\n\t\t\t\tcase ts.SyntaxKind.VariableDeclarationList:\n\t\t\t\t\tthis.#handleVariableDeclaration(node as ts.VariableDeclarationList);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ts.SyntaxKind.Parameter:\n\t\t\t\t\tif (\n\t\t\t\t\t\tnode.parent.kind !== ts.SyntaxKind.IndexSignature &&\n\t\t\t\t\t\t((node as ts.ParameterDeclaration).name.kind !==\n\t\t\t\t\t\t\tts.SyntaxKind.Identifier ||\n\t\t\t\t\t\t\tidentifierToKeywordKind(\n\t\t\t\t\t\t\t\t(node as ts.NamedDeclaration).name as ts.Identifier,\n\t\t\t\t\t\t\t) !== ts.SyntaxKind.ThisKeyword)\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.#handleBindingName(\n\t\t\t\t\t\t\t(node as ts.NamedDeclaration).name as ts.Identifier,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase ts.SyntaxKind.EnumMember:\n\t\t\t\t\tthis.#scope.addVariable(\n\t\t\t\t\t\tgetPropertyName((node as ts.EnumMember).name)!,\n\t\t\t\t\t\t(node as ts.EnumMember).name,\n\t\t\t\t\t\tScopeBoundarySelector.Function,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\tDeclarationDomain.Value,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ts.SyntaxKind.ImportClause:\n\t\t\t\tcase ts.SyntaxKind.ImportSpecifier:\n\t\t\t\tcase ts.SyntaxKind.NamespaceImport:\n\t\t\t\tcase ts.SyntaxKind.ImportEqualsDeclaration:\n\t\t\t\t\tthis.#handleDeclaration(\n\t\t\t\t\t\tnode as ts.NamedDeclaration,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tDeclarationDomain.Any | DeclarationDomain.Import,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ts.SyntaxKind.TypeParameter:\n\t\t\t\t\tthis.#scope.addVariable(\n\t\t\t\t\t\t(node as ts.TypeParameterDeclaration).name.text,\n\t\t\t\t\t\t(node as ts.TypeParameterDeclaration).name,\n\t\t\t\t\t\tnode.parent.kind === ts.SyntaxKind.InferType\n\t\t\t\t\t\t\t? ScopeBoundarySelector.InferType\n\t\t\t\t\t\t\t: ScopeBoundarySelector.Type,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tDeclarationDomain.Type,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase ts.SyntaxKind.ExportSpecifier:\n\t\t\t\t\tif ((node as ts.ExportSpecifier).propertyName !== undefined) {\n\t\t\t\t\t\treturn this.#scope.markExported(\n\t\t\t\t\t\t\t(node as ts.ExportSpecifier).propertyName!,\n\t\t\t\t\t\t\t(node as ts.ExportSpecifier).name,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.#scope.markExported((node as ts.ExportSpecifier).name);\n\t\t\t\tcase ts.SyntaxKind.ExportAssignment:\n\t\t\t\t\tif (\n\t\t\t\t\t\t(node as ts.ExportAssignment).expression.kind ===\n\t\t\t\t\t\tts.SyntaxKind.Identifier\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn this.#scope.markExported(\n\t\t\t\t\t\t\t(node as ts.ExportAssignment).expression as ts.Identifier,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase ts.SyntaxKind.Identifier: {\n\t\t\t\t\tconst domain = getUsageDomain(node as ts.Identifier);\n\t\t\t\t\tif (domain !== undefined) {\n\t\t\t\t\t\tthis.#scope.addUse({ domain, location: node as ts.Identifier });\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ts.forEachChild(node, cb);\n\t\t};\n\n\t\tconst continueWithScope = (\n\t\t\tnode: T,\n\t\t\tscope: Scope,\n\t\t\tnext: (node: T) => void = forEachChild,\n\t\t) => {\n\t\t\tconst savedScope = this.#scope;\n\t\t\tthis.#scope = scope;\n\t\t\tnext(node);\n\t\t\tthis.#scope.end(variableCallback);\n\t\t\tthis.#scope = savedScope;\n\t\t};\n\n\t\tconst handleBlockScope = (node: ts.Node) => {\n\t\t\tif (\n\t\t\t\tnode.kind === ts.SyntaxKind.CatchClause &&\n\t\t\t\t(node as ts.CatchClause).variableDeclaration !== undefined\n\t\t\t) {\n\t\t\t\tthis.#handleBindingName(\n\t\t\t\t\t(node as ts.CatchClause).variableDeclaration!.name,\n\t\t\t\t\ttrue,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn ts.forEachChild(node, cb);\n\t\t};\n\n\t\tts.forEachChild(sourceFile, cb);\n\t\tthis.#scope.end(variableCallback);\n\t\treturn this.#result;\n\n\t\tfunction forEachChild(node: ts.Node) {\n\t\t\treturn ts.forEachChild(node, cb);\n\t\t}\n\t}\n}\n\nfunction isNamespaceExported(node: ts.NamespaceDeclaration) {\n\treturn (\n\t\tnode.parent.kind === ts.SyntaxKind.ModuleDeclaration ||\n\t\tincludesModifier(node.modifiers, ts.SyntaxKind.ExportKeyword)\n\t);\n}\n\nfunction namespaceHasExportStatement(ns: ts.ModuleDeclaration): boolean {\n\tif (ns.body === undefined || ns.body.kind !== ts.SyntaxKind.ModuleBlock) {\n\t\treturn false;\n\t}\n\n\treturn containsExportStatement(ns.body);\n}\n\nfunction containsExportStatement(block: ts.BlockLike): boolean {\n\tfor (const statement of block.statements) {\n\t\tif (\n\t\t\tstatement.kind === ts.SyntaxKind.ExportDeclaration ||\n\t\t\tstatement.kind === ts.SyntaxKind.ExportAssignment\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nfunction isBlockScopedVariableDeclarationList(\n\tdeclarationList: ts.VariableDeclarationList,\n): boolean {\n\treturn (declarationList.flags & ts.NodeFlags.BlockScoped) !== 0;\n}\n\nfunction forEachDestructuringIdentifier(\n\tpattern: ts.BindingPattern,\n\tfn: (element: ts.BindingElement & { name: ts.Identifier }) => T,\n): T | undefined {\n\tfor (const element of pattern.elements) {\n\t\tif (element.kind !== ts.SyntaxKind.BindingElement) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet result: T | undefined;\n\t\tif (element.name.kind === ts.SyntaxKind.Identifier) {\n\t\t\tresult = fn(element as ts.BindingElement & { name: ts.Identifier });\n\t\t} else {\n\t\t\tresult = forEachDestructuringIdentifier(element.name, fn);\n\t\t}\n\n\t\tif (result) {\n\t\t\treturn result;\n\t\t}\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport type { EnumScope, NamespaceScope } from \"./scopes\";\n\nimport { isFunctionScopeBoundary } from \"../scopes\";\nimport { DeclarationDomain } from \"./declarations\";\nimport { InternalUsageInfo, Usage, UsageInfoCallback } from \"./usage\";\n\nexport enum ScopeBoundary {\n\tBlock = 2,\n\tConditionalType = 8,\n\tFunction = 1,\n\tNone = 0,\n\tType = 4,\n}\n\nexport enum ScopeBoundarySelector {\n\tFunction = ScopeBoundary.Function,\n\t// eslint-disable-next-line perfectionist/sort-enums\n\tBlock = ScopeBoundarySelector.Function | ScopeBoundary.Block,\n\tInferType = ScopeBoundary.ConditionalType,\n\tType = ScopeBoundarySelector.Block | ScopeBoundary.Type,\n}\n\nexport interface Scope {\n\taddUse(use: Usage, scope?: Scope): void;\n\taddVariable(\n\t\tidentifier: string,\n\t\tname: ts.PropertyName,\n\t\tselector: ScopeBoundarySelector,\n\t\texported: boolean,\n\t\tdomain: DeclarationDomain,\n\t): void;\n\tcreateOrReuseEnumScope(name: string, exported: boolean): EnumScope;\n\tcreateOrReuseNamespaceScope(\n\t\tname: string,\n\t\texported: boolean,\n\t\tambient: boolean,\n\t\thasExportStatement: boolean,\n\t): NamespaceScope;\n\tend(cb: UsageInfoCallback): void;\n\tgetDestinationScope(selector: ScopeBoundarySelector): Scope;\n\tgetFunctionScope(): Scope;\n\tgetVariables(): Map;\n\tmarkExported(name: ts.Identifier, as?: ts.Identifier): void;\n}\n\nexport function isBlockScopeBoundary(node: ts.Node): ScopeBoundary {\n\tswitch (node.kind) {\n\t\tcase ts.SyntaxKind.Block: {\n\t\t\tconst parent = node.parent;\n\t\t\treturn parent.kind !== ts.SyntaxKind.CatchClause &&\n\t\t\t\t// blocks inside SourceFile are block scope boundaries\n\t\t\t\t(parent.kind === ts.SyntaxKind.SourceFile ||\n\t\t\t\t\t// blocks that are direct children of a function scope boundary are no scope boundary\n\t\t\t\t\t// for example the FunctionBlock is part of the function scope of the containing function\n\t\t\t\t\t!isFunctionScopeBoundary(parent))\n\t\t\t\t? ScopeBoundary.Block\n\t\t\t\t: ScopeBoundary.None;\n\t\t}\n\n\t\tcase ts.SyntaxKind.ForStatement:\n\t\tcase ts.SyntaxKind.ForInStatement:\n\t\tcase ts.SyntaxKind.ForOfStatement:\n\t\tcase ts.SyntaxKind.CaseBlock:\n\t\tcase ts.SyntaxKind.CatchClause:\n\t\tcase ts.SyntaxKind.WithStatement:\n\t\t\treturn ScopeBoundary.Block;\n\t\tdefault:\n\t\t\treturn ScopeBoundary.None;\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { identifierToKeywordKind } from \"./utils\";\n\n/**\n * Metadata for how a declaration was declared and/or referenced.\n */\nexport interface DeclarationInfo {\n\tdeclaration: ts.PropertyName;\n\tdomain: DeclarationDomain;\n\texported: boolean;\n}\n\n/**\n * Which \"domain\"(s) (most commonly, type or value space) a declaration is within.\n */\nexport enum DeclarationDomain {\n\tImport = 8,\n\tNamespace = 1,\n\tType = 2,\n\tValue = 4,\n\t// eslint-disable-next-line perfectionist/sort-enums\n\tAny = Namespace | Type | Value,\n}\n\nexport function getDeclarationDomain(\n\tnode: ts.Identifier,\n): DeclarationDomain | undefined {\n\tswitch (node.parent.kind) {\n\t\tcase ts.SyntaxKind.TypeParameter:\n\t\tcase ts.SyntaxKind.InterfaceDeclaration:\n\t\tcase ts.SyntaxKind.TypeAliasDeclaration:\n\t\t\treturn DeclarationDomain.Type;\n\t\tcase ts.SyntaxKind.ClassDeclaration:\n\t\tcase ts.SyntaxKind.ClassExpression:\n\t\t\treturn DeclarationDomain.Type | DeclarationDomain.Value;\n\t\tcase ts.SyntaxKind.EnumDeclaration:\n\t\t\treturn DeclarationDomain.Any;\n\t\tcase ts.SyntaxKind.NamespaceImport:\n\t\tcase ts.SyntaxKind.ImportClause:\n\t\t\treturn DeclarationDomain.Any | DeclarationDomain.Import; // TODO handle type-only imports\n\t\tcase ts.SyntaxKind.ImportEqualsDeclaration:\n\t\tcase ts.SyntaxKind.ImportSpecifier:\n\t\t\treturn (node.parent as ts.ImportEqualsDeclaration | ts.ImportSpecifier)\n\t\t\t\t.name === node\n\t\t\t\t? DeclarationDomain.Any | DeclarationDomain.Import // TODO handle type-only imports\n\t\t\t\t: undefined;\n\t\tcase ts.SyntaxKind.ModuleDeclaration:\n\t\t\treturn DeclarationDomain.Namespace;\n\t\tcase ts.SyntaxKind.Parameter:\n\t\t\tif (\n\t\t\t\tnode.parent.parent.kind === ts.SyntaxKind.IndexSignature ||\n\t\t\t\tidentifierToKeywordKind(node) === ts.SyntaxKind.ThisKeyword\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t// falls through\n\t\tcase ts.SyntaxKind.BindingElement:\n\t\tcase ts.SyntaxKind.VariableDeclaration:\n\t\t\treturn (node.parent as ts.VariableLikeDeclaration).name === node\n\t\t\t\t? DeclarationDomain.Value\n\t\t\t\t: undefined;\n\t\tcase ts.SyntaxKind.FunctionDeclaration:\n\t\tcase ts.SyntaxKind.FunctionExpression:\n\t\t\treturn DeclarationDomain.Value;\n\t}\n}\n","import ts from \"typescript\";\n\n/**\n * Supports TypeScript<5 versions that don't have identifierToKeywordKind.\n */\nexport function identifierToKeywordKind(\n\tnode: ts.Identifier,\n): ts.SyntaxKind | undefined {\n\treturn \"identifierToKeywordKind\" in ts\n\t\t? ts.identifierToKeywordKind(node)\n\t\t: // eslint-disable-next-line deprecation/deprecation\n\t\t\tnode.originalKeywordKind;\n}\n\n/**\n * Supports TypeScript<4.8 versions that don't have canHaveDecorators.\n */\nexport function canHaveDecorators(node: ts.Node): node is ts.HasDecorators {\n\treturn \"canHaveDecorators\" in ts\n\t\t? ts.canHaveDecorators(node)\n\t\t: \"decorators\" in node;\n}\n\ntype NodeWithDecorators = ts.HasDecorators & {\n\tdecorators: readonly ts.Decorator[] | undefined;\n};\n\n/**\n * Supports TypeScript<4.8 versions that don't have getDecorators.\n */\nexport function getDecorators(\n\tnode: ts.HasDecorators,\n): readonly ts.Decorator[] | undefined {\n\treturn \"getDecorators\" in ts\n\t\t? ts.getDecorators(node)\n\t\t: (node as NodeWithDecorators).decorators;\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { isNumericOrStringLikeLiteral } from \"../nodes/typeGuards/compound\";\n\nfunction unwrapParentheses(node: ts.Expression) {\n\twhile (node.kind === ts.SyntaxKind.ParenthesizedExpression) {\n\t\tnode = (node as ts.ParenthesizedExpression).expression;\n\t}\n\n\treturn node;\n}\n\nexport function getPropertyName(\n\tpropertyName: ts.PropertyName,\n): string | undefined {\n\tif (propertyName.kind === ts.SyntaxKind.ComputedPropertyName) {\n\t\tconst expression = unwrapParentheses(propertyName.expression);\n\t\tif (ts.isPrefixUnaryExpression(expression)) {\n\t\t\tlet negate = false;\n\t\t\tswitch (expression.operator) {\n\t\t\t\tcase ts.SyntaxKind.MinusToken:\n\t\t\t\t\tnegate = true;\n\t\t\t\t// falls through\n\t\t\t\tcase ts.SyntaxKind.PlusToken:\n\t\t\t\t\treturn ts.isNumericLiteral(expression.operand)\n\t\t\t\t\t\t? `${negate ? \"-\" : \"\"}${expression.operand.text}`\n\t\t\t\t\t\t: ts.isBigIntLiteral(expression.operand)\n\t\t\t\t\t\t\t? `${negate ? \"-\" : \"\"}${expression.operand.text.slice(0, -1)}`\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (ts.isBigIntLiteral(expression)) {\n\t\t\treturn expression.text.slice(0, -1);\n\t\t}\n\n\t\tif (isNumericOrStringLikeLiteral(expression)) {\n\t\t\treturn expression.text;\n\t\t}\n\n\t\treturn;\n\t}\n\n\treturn propertyName.kind === ts.SyntaxKind.PrivateIdentifier\n\t\t? undefined\n\t\t: propertyName.text;\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { identifierToKeywordKind } from \"./utils\";\n\n/**\n * Which \"domain\"(s) (most commonly, type or value space) a usage is within.\n */\nexport enum UsageDomain {\n\tNamespace = 1,\n\tType = 2,\n\tTypeQuery = 8,\n\tValue = 4,\n\tValueOrNamespace = Value | Namespace,\n\t// eslint-disable-next-line perfectionist/sort-enums\n\tAny = Namespace | Type | Value,\n}\n\n// TODO handle cases where values are used only for their types, e.g. `declare [propSymbol]: number`\nexport function getUsageDomain(node: ts.Identifier): UsageDomain | undefined {\n\tconst parent = node.parent;\n\tswitch (parent.kind) {\n\t\tcase ts.SyntaxKind.TypeReference:\n\t\t\treturn identifierToKeywordKind(node) !== ts.SyntaxKind.ConstKeyword\n\t\t\t\t? UsageDomain.Type\n\t\t\t\t: undefined;\n\t\tcase ts.SyntaxKind.ExpressionWithTypeArguments:\n\t\t\treturn (parent.parent as ts.HeritageClause).token ===\n\t\t\t\tts.SyntaxKind.ImplementsKeyword ||\n\t\t\t\tparent.parent.parent.kind === ts.SyntaxKind.InterfaceDeclaration\n\t\t\t\t? UsageDomain.Type\n\t\t\t\t: UsageDomain.Value;\n\t\tcase ts.SyntaxKind.TypeQuery:\n\t\t\treturn UsageDomain.ValueOrNamespace | UsageDomain.TypeQuery;\n\t\tcase ts.SyntaxKind.QualifiedName:\n\t\t\tif ((parent as ts.QualifiedName).left === node) {\n\t\t\t\tif (\n\t\t\t\t\tgetEntityNameParent(parent as ts.QualifiedName).kind ===\n\t\t\t\t\tts.SyntaxKind.TypeQuery\n\t\t\t\t) {\n\t\t\t\t\treturn UsageDomain.Namespace | UsageDomain.TypeQuery;\n\t\t\t\t}\n\n\t\t\t\treturn UsageDomain.Namespace;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase ts.SyntaxKind.ExportSpecifier:\n\t\t\t// either {name} or {propertyName as name}\n\t\t\tif (\n\t\t\t\t(parent as ts.ExportSpecifier).propertyName === undefined ||\n\t\t\t\t(parent as ts.ExportSpecifier).propertyName === node\n\t\t\t) {\n\t\t\t\treturn UsageDomain.Any;\n\t\t\t} // TODO handle type-only exports\n\n\t\t\tbreak;\n\t\tcase ts.SyntaxKind.ExportAssignment:\n\t\t\treturn UsageDomain.Any;\n\t\t// Value\n\t\tcase ts.SyntaxKind.BindingElement:\n\t\t\tif ((parent as ts.BindingElement).initializer === node) {\n\t\t\t\treturn UsageDomain.ValueOrNamespace;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase ts.SyntaxKind.Parameter:\n\t\tcase ts.SyntaxKind.EnumMember:\n\t\tcase ts.SyntaxKind.PropertyDeclaration:\n\t\tcase ts.SyntaxKind.VariableDeclaration:\n\t\tcase ts.SyntaxKind.PropertyAssignment:\n\t\tcase ts.SyntaxKind.PropertyAccessExpression:\n\t\tcase ts.SyntaxKind.ImportEqualsDeclaration:\n\t\t\tif ((parent as ts.NamedDeclaration).name !== node) {\n\t\t\t\treturn UsageDomain.ValueOrNamespace;\n\t\t\t} // TODO handle type-only imports\n\n\t\t\tbreak;\n\t\tcase ts.SyntaxKind.JsxAttribute:\n\t\tcase ts.SyntaxKind.FunctionDeclaration:\n\t\tcase ts.SyntaxKind.FunctionExpression:\n\t\tcase ts.SyntaxKind.NamespaceImport:\n\t\tcase ts.SyntaxKind.ClassDeclaration:\n\t\tcase ts.SyntaxKind.ClassExpression:\n\t\tcase ts.SyntaxKind.ModuleDeclaration:\n\t\tcase ts.SyntaxKind.MethodDeclaration:\n\t\tcase ts.SyntaxKind.EnumDeclaration:\n\t\tcase ts.SyntaxKind.GetAccessor:\n\t\tcase ts.SyntaxKind.SetAccessor:\n\t\tcase ts.SyntaxKind.LabeledStatement:\n\t\tcase ts.SyntaxKind.BreakStatement:\n\t\tcase ts.SyntaxKind.ContinueStatement:\n\t\tcase ts.SyntaxKind.ImportClause:\n\t\tcase ts.SyntaxKind.ImportSpecifier:\n\t\tcase ts.SyntaxKind.TypePredicate: // TODO this actually references a parameter\n\t\tcase ts.SyntaxKind.MethodSignature:\n\t\tcase ts.SyntaxKind.PropertySignature:\n\t\tcase ts.SyntaxKind.NamespaceExportDeclaration:\n\t\tcase ts.SyntaxKind.NamespaceExport:\n\t\tcase ts.SyntaxKind.InterfaceDeclaration:\n\t\tcase ts.SyntaxKind.TypeAliasDeclaration:\n\t\tcase ts.SyntaxKind.TypeParameter:\n\t\tcase ts.SyntaxKind.NamedTupleMember:\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturn UsageDomain.ValueOrNamespace;\n\t}\n}\n\nfunction getEntityNameParent(name: ts.EntityName) {\n\tlet parent = name.parent;\n\twhile (parent.kind === ts.SyntaxKind.QualifiedName) {\n\t\tparent = parent.parent!;\n\t}\n\n\treturn parent;\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { Scope, ScopeBoundary, ScopeBoundarySelector } from \"./Scope\";\nimport {\n\tDeclarationDomain,\n\tDeclarationInfo,\n\tgetDeclarationDomain,\n} from \"./declarations\";\nimport {\n\tInternalUsageInfo,\n\tUsage,\n\tUsageInfo,\n\tUsageInfoCallback,\n} from \"./usage\";\n\nabstract class AbstractScope implements Scope {\n\t#enumScopes: Map | undefined = undefined;\n\tprotected namespaceScopes: Map | undefined =\n\t\tundefined;\n\tprotected uses: Usage[] = [];\n\tprotected variables = new Map();\n\n\tconstructor(protected global: boolean) {}\n\n\taddUse(use: Usage): void {\n\t\tthis.uses.push(use);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprotected addUseToParent(_use: Usage): void {}\n\n\taddVariable(\n\t\tidentifier: string,\n\t\tname: ts.PropertyName,\n\t\tselector: ScopeBoundarySelector,\n\t\texported: boolean,\n\t\tdomain: DeclarationDomain,\n\t): void {\n\t\tconst variables = this.getDestinationScope(selector).getVariables();\n\t\tconst declaration: DeclarationInfo = {\n\t\t\tdeclaration: name,\n\t\t\tdomain,\n\t\t\texported,\n\t\t};\n\t\tconst variable = variables.get(identifier);\n\t\tif (variable === undefined) {\n\t\t\tvariables.set(identifier, {\n\t\t\t\tdeclarations: [declaration],\n\t\t\t\tdomain,\n\t\t\t\tuses: [],\n\t\t\t});\n\t\t} else {\n\t\t\tvariable.domain |= domain;\n\t\t\tvariable.declarations.push(declaration);\n\t\t}\n\t}\n\n\tprotected applyUse(use: Usage, variables = this.variables): boolean {\n\t\tconst variable = variables.get(use.location.text);\n\t\tif (variable === undefined || (variable.domain & use.domain) === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvariable.uses.push(use);\n\t\treturn true;\n\t}\n\n\tprotected applyUses(): void {\n\t\tfor (const use of this.uses) {\n\t\t\tif (!this.applyUse(use)) {\n\t\t\t\tthis.addUseToParent(use);\n\t\t\t}\n\t\t}\n\n\t\tthis.uses = [];\n\t}\n\n\tcreateOrReuseEnumScope(name: string, _exported: boolean): EnumScope {\n\t\tlet scope: EnumScope | undefined;\n\t\tif (this.#enumScopes === undefined) {\n\t\t\tthis.#enumScopes = new Map();\n\t\t} else {\n\t\t\tscope = this.#enumScopes.get(name);\n\t\t}\n\n\t\tif (scope === undefined) {\n\t\t\tscope = new EnumScope(this);\n\t\t\tthis.#enumScopes.set(name, scope);\n\t\t}\n\n\t\treturn scope;\n\t} // only relevant for the root scope\n\n\tcreateOrReuseNamespaceScope(\n\t\tname: string,\n\t\t_exported: boolean,\n\t\tambient: boolean,\n\t\thasExportStatement: boolean,\n\t): NamespaceScope {\n\t\tlet scope: NamespaceScope | undefined;\n\t\tif (this.namespaceScopes === undefined) {\n\t\t\tthis.namespaceScopes = new Map();\n\t\t} else {\n\t\t\tscope = this.namespaceScopes.get(name);\n\t\t}\n\n\t\tif (scope === undefined) {\n\t\t\tscope = new NamespaceScope(ambient, hasExportStatement, this);\n\t\t\tthis.namespaceScopes.set(name, scope);\n\t\t} else {\n\t\t\tscope.refresh(ambient, hasExportStatement);\n\t\t}\n\n\t\treturn scope;\n\t}\n\n\tend(cb: UsageInfoCallback): void {\n\t\tif (this.namespaceScopes !== undefined) {\n\t\t\tthis.namespaceScopes.forEach((value) => value.finish(cb));\n\t\t}\n\n\t\tthis.namespaceScopes = this.#enumScopes = undefined;\n\t\tthis.applyUses();\n\t\tthis.variables.forEach((variable) => {\n\t\t\tfor (const declaration of variable.declarations) {\n\t\t\t\tconst result: UsageInfo = {\n\t\t\t\t\tdeclarations: [],\n\t\t\t\t\tdomain: declaration.domain,\n\t\t\t\t\texported: declaration.exported,\n\t\t\t\t\tinGlobalScope: this.global,\n\t\t\t\t\tuses: [],\n\t\t\t\t};\n\t\t\t\tfor (const other of variable.declarations) {\n\t\t\t\t\tif (other.domain & declaration.domain) {\n\t\t\t\t\t\tresult.declarations.push(other.declaration as ts.Identifier);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const use of variable.uses) {\n\t\t\t\t\tif (use.domain & declaration.domain) {\n\t\t\t\t\t\tresult.uses.push(use);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcb(result, declaration.declaration as ts.Identifier, this);\n\t\t\t}\n\t\t});\n\t}\n\n\tgetFunctionScope(): Scope {\n\t\treturn this;\n\t}\n\n\tgetVariables(): Map {\n\t\treturn this.variables;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tmarkExported(_name: ts.Identifier): void {}\n\n\tabstract getDestinationScope(selector: ScopeBoundarySelector): Scope;\n}\n\nexport class NonRootScope extends AbstractScope {\n\tconstructor(\n\t\tprotected parent: Scope,\n\t\tprotected boundary: ScopeBoundary,\n\t) {\n\t\tsuper(false);\n\t}\n\n\tprotected addUseToParent(use: Usage): void {\n\t\treturn this.parent.addUse(use, this);\n\t}\n\n\tgetDestinationScope(selector: ScopeBoundarySelector): Scope {\n\t\treturn this.boundary & selector\n\t\t\t? this\n\t\t\t: this.parent.getDestinationScope(selector);\n\t}\n}\n\nexport class EnumScope extends NonRootScope {\n\tconstructor(parent: Scope) {\n\t\tsuper(parent, ScopeBoundary.Function);\n\t}\n\n\tend(): void {\n\t\tthis.applyUses();\n\t}\n}\n\nexport class RootScope extends AbstractScope {\n\t#exportAll: boolean;\n\t#exports: string[] | undefined = undefined;\n\t#innerScope = new NonRootScope(this, ScopeBoundary.Function);\n\n\tconstructor(exportAll: boolean, global: boolean) {\n\t\tsuper(global);\n\t\tthis.#exportAll = exportAll;\n\t}\n\n\taddUse(use: Usage, origin?: Scope): void {\n\t\tif (origin === this.#innerScope) {\n\t\t\treturn super.addUse(use);\n\t\t}\n\n\t\treturn this.#innerScope.addUse(use);\n\t}\n\n\taddVariable(\n\t\tidentifier: string,\n\t\tname: ts.PropertyName,\n\t\tselector: ScopeBoundarySelector,\n\t\texported: boolean,\n\t\tdomain: DeclarationDomain,\n\t): void {\n\t\tif (domain & DeclarationDomain.Import) {\n\t\t\treturn super.addVariable(identifier, name, selector, exported, domain);\n\t\t}\n\n\t\treturn this.#innerScope.addVariable(\n\t\t\tidentifier,\n\t\t\tname,\n\t\t\tselector,\n\t\t\texported,\n\t\t\tdomain,\n\t\t);\n\t}\n\n\tend(cb: UsageInfoCallback): void {\n\t\tthis.#innerScope.end((value, key) => {\n\t\t\tvalue.exported ||=\n\t\t\t\tthis.#exportAll ||\n\t\t\t\t(this.#exports !== undefined && this.#exports.includes(key.text));\n\t\t\tvalue.inGlobalScope = this.global;\n\t\t\treturn cb(value, key, this);\n\t\t});\n\t\treturn super.end((value, key, scope) => {\n\t\t\tvalue.exported ||=\n\t\t\t\tscope === this &&\n\t\t\t\tthis.#exports !== undefined &&\n\t\t\t\tthis.#exports.includes(key.text);\n\t\t\treturn cb(value, key, scope);\n\t\t});\n\t}\n\n\tgetDestinationScope(): this {\n\t\treturn this;\n\t}\n\n\tmarkExported(id: ts.Identifier): void {\n\t\tif (this.#exports === undefined) {\n\t\t\tthis.#exports = [id.text];\n\t\t} else {\n\t\t\tthis.#exports.push(id.text);\n\t\t}\n\t}\n}\n\nexport class NamespaceScope extends NonRootScope {\n\t#ambient: boolean;\n\t#exports: Set | undefined = undefined;\n\t#hasExport: boolean;\n\t#innerScope = new NonRootScope(this, ScopeBoundary.Function);\n\n\tconstructor(ambient: boolean, hasExport: boolean, parent: Scope) {\n\t\tsuper(parent, ScopeBoundary.Function);\n\t\tthis.#ambient = ambient;\n\t\tthis.#hasExport = hasExport;\n\t}\n\n\taddUse(use: Usage, source?: Scope): void {\n\t\tif (source !== this.#innerScope) {\n\t\t\treturn this.#innerScope.addUse(use);\n\t\t}\n\n\t\tthis.uses.push(use);\n\t}\n\n\tcreateOrReuseEnumScope(name: string, exported: boolean): EnumScope {\n\t\tif (!exported && (!this.#ambient || this.#hasExport)) {\n\t\t\treturn this.#innerScope.createOrReuseEnumScope(name, exported);\n\t\t}\n\n\t\treturn super.createOrReuseEnumScope(name, exported);\n\t}\n\n\tcreateOrReuseNamespaceScope(\n\t\tname: string,\n\t\texported: boolean,\n\t\tambient: boolean,\n\t\thasExportStatement: boolean,\n\t): NamespaceScope {\n\t\tif (!exported && (!this.#ambient || this.#hasExport)) {\n\t\t\treturn this.#innerScope.createOrReuseNamespaceScope(\n\t\t\t\tname,\n\t\t\t\texported,\n\t\t\t\tambient || this.#ambient,\n\t\t\t\thasExportStatement,\n\t\t\t);\n\t\t}\n\n\t\treturn super.createOrReuseNamespaceScope(\n\t\t\tname,\n\t\t\texported,\n\t\t\tambient || this.#ambient,\n\t\t\thasExportStatement,\n\t\t);\n\t}\n\n\tend(cb: UsageInfoCallback): void {\n\t\tthis.#innerScope.end((variable, key, scope) => {\n\t\t\tif (\n\t\t\t\tscope !== this.#innerScope ||\n\t\t\t\t(!variable.exported &&\n\t\t\t\t\t(!this.#ambient ||\n\t\t\t\t\t\t(this.#exports !== undefined && !this.#exports.has(key.text))))\n\t\t\t) {\n\t\t\t\treturn cb(variable, key, scope);\n\t\t\t}\n\n\t\t\tconst namespaceVar = this.variables.get(key.text);\n\t\t\tif (namespaceVar === undefined) {\n\t\t\t\tthis.variables.set(key.text, {\n\t\t\t\t\tdeclarations: variable.declarations.map(mapDeclaration),\n\t\t\t\t\tdomain: variable.domain,\n\t\t\t\t\tuses: [...variable.uses],\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\touter: for (const declaration of variable.declarations) {\n\t\t\t\t\tfor (const existing of namespaceVar.declarations) {\n\t\t\t\t\t\tif (existing.declaration === declaration) {\n\t\t\t\t\t\t\tcontinue outer;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnamespaceVar.declarations.push(mapDeclaration(declaration));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tnamespaceVar.domain |= variable.domain;\n\t\t\t\tfor (const use of variable.uses) {\n\t\t\t\t\tif (namespaceVar.uses.includes(use)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tnamespaceVar.uses.push(use);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis.applyUses();\n\t\tthis.#innerScope = new NonRootScope(this, ScopeBoundary.Function);\n\t}\n\n\tfinish(cb: UsageInfoCallback): void {\n\t\treturn super.end(cb);\n\t}\n\n\tgetDestinationScope(): Scope {\n\t\treturn this.#innerScope;\n\t}\n\n\tmarkExported(name: ts.Identifier): void {\n\t\tif (this.#exports === undefined) {\n\t\t\tthis.#exports = new Set();\n\t\t}\n\n\t\tthis.#exports.add(name.text);\n\t}\n\n\trefresh(ambient: boolean, hasExport: boolean): void {\n\t\tthis.#ambient = ambient;\n\t\tthis.#hasExport = hasExport;\n\t}\n}\n\nfunction mapDeclaration(declaration: ts.Identifier): DeclarationInfo {\n\treturn {\n\t\tdeclaration,\n\t\tdomain: getDeclarationDomain(declaration)!,\n\t\texported: true,\n\t};\n}\n\nexport class FunctionScope extends NonRootScope {\n\tconstructor(parent: Scope) {\n\t\tsuper(parent, ScopeBoundary.Function);\n\t}\n\n\tbeginBody(): void {\n\t\tthis.applyUses();\n\t}\n}\n\nabstract class AbstractNamedExpressionScope<\n\tInnerScope extends NonRootScope,\n> extends NonRootScope {\n\t#domain: DeclarationDomain;\n\n\t#name: ts.Identifier;\n\tconstructor(name: ts.Identifier, domain: DeclarationDomain, parent: Scope) {\n\t\tsuper(parent, ScopeBoundary.Function);\n\t\tthis.#name = name;\n\t\tthis.#domain = domain;\n\t}\n\n\taddUse(use: Usage, source?: Scope): void {\n\t\tif (source !== this.innerScope) {\n\t\t\treturn this.innerScope.addUse(use);\n\t\t}\n\n\t\tif (use.domain & this.#domain && use.location.text === this.#name.text) {\n\t\t\tthis.uses.push(use);\n\t\t} else {\n\t\t\treturn this.parent.addUse(use, this);\n\t\t}\n\t}\n\n\tend(cb: UsageInfoCallback): void {\n\t\tthis.innerScope.end(cb);\n\t\treturn cb(\n\t\t\t{\n\t\t\t\tdeclarations: [this.#name],\n\t\t\t\tdomain: this.#domain,\n\t\t\t\texported: false,\n\t\t\t\tinGlobalScope: false,\n\t\t\t\tuses: this.uses,\n\t\t\t},\n\t\t\tthis.#name,\n\t\t\tthis,\n\t\t);\n\t}\n\n\tgetDestinationScope(): InnerScope {\n\t\treturn this.innerScope;\n\t}\n\n\tgetFunctionScope(): InnerScope {\n\t\treturn this.innerScope;\n\t}\n\n\tprotected abstract get innerScope(): InnerScope;\n}\n\nexport class FunctionExpressionScope extends AbstractNamedExpressionScope {\n\tprotected innerScope = new FunctionScope(this);\n\n\tconstructor(name: ts.Identifier, parent: Scope) {\n\t\tsuper(name, DeclarationDomain.Value, parent);\n\t}\n\n\tbeginBody(): void {\n\t\treturn this.innerScope.beginBody();\n\t}\n}\n\nexport class BlockScope extends NonRootScope {\n\t#functionScope: Scope;\n\n\tconstructor(functionScope: Scope, parent: Scope) {\n\t\tsuper(parent, ScopeBoundary.Block);\n\t\tthis.#functionScope = functionScope;\n\t}\n\n\tgetFunctionScope(): Scope {\n\t\treturn this.#functionScope;\n\t}\n}\n\nexport class ClassExpressionScope extends AbstractNamedExpressionScope {\n\tprotected innerScope = new NonRootScope(this, ScopeBoundary.Function);\n\n\tconstructor(name: ts.Identifier, parent: Scope) {\n\t\tsuper(name, DeclarationDomain.Value | DeclarationDomain.Type, parent);\n\t}\n}\n\nexport enum ConditionalTypeScopeState {\n\tInitial,\n\tExtends,\n\tTrueType,\n\tFalseType,\n}\n\nexport class ConditionalTypeScope extends NonRootScope {\n\t#state = ConditionalTypeScopeState.Initial;\n\n\tconstructor(parent: Scope) {\n\t\tsuper(parent, ScopeBoundary.ConditionalType);\n\t}\n\n\taddUse(use: Usage): void {\n\t\tif (this.#state === ConditionalTypeScopeState.TrueType) {\n\t\t\treturn void this.uses.push(use);\n\t\t}\n\n\t\treturn this.parent.addUse(use, this);\n\t}\n\n\tupdateState(newState: ConditionalTypeScopeState): void {\n\t\tthis.#state = newState;\n\t}\n}\n","// Code largely based on https://github.com/ajafff/tsutils\n// Original license: https://github.com/ajafff/tsutils/blob/26b195358ec36d59f00333115aa3ffd9611ca78b/LICENSE\n\nimport ts from \"typescript\";\n\nimport { UsageWalker } from \"./UsageWalker\";\nimport { UsageInfo } from \"./usage\";\n\n/**\n * Creates a mapping of each declared type and value to its type information.\n * @category Nodes - Other Utilities\n * @example\n * ```ts\n * declare const sourceFile: ts.SourceFile;\n *\n * const usage = collectVariableUsage(sourceFile);\n *\n * for (const [identifier, information] of usage) {\n * \tconsole.log(`${identifier.getText()} is used ${information.uses.length} time(s).`);\n * }\n * ```\n */\nexport function collectVariableUsage(\n\tsourceFile: ts.SourceFile,\n): Map {\n\treturn new UsageWalker().getUsage(sourceFile);\n}\n"],"mappings":"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","names":["ts","ts","ts","ts","ts","ts","AccessKind","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","ts","typeParts","ts","ts","ts","ts","ts","DeclarationDomain","ts","ts","ts","ts","UsageDomain","ts","_name","_exports","_innerScope","ts"]} \ No newline at end of file diff --git a/node_modules/ts-api-utils/package.json b/node_modules/ts-api-utils/package.json index b73477a1ac..ccbbb8ca3b 100644 --- a/node_modules/ts-api-utils/package.json +++ b/node_modules/ts-api-utils/package.json @@ -1,13 +1,16 @@ { "name": "ts-api-utils", - "version": "1.0.1", - "description": "Utility functions for working with TypeScript's API. Successor to the wonderful tsutils.", + "version": "1.3.0", + "description": "Utility functions for working with TypeScript's API. Successor to the wonderful tsutils. 🛠️️", "repository": { "type": "git", "url": "https://github.com/JoshuaKGoldberg/ts-api-utils" }, "license": "MIT", - "author": "Josh Goldberg ", + "author": { + "name": "JoshuaKGoldberg", + "email": "npm@joshuakgoldberg.com" + }, "type": "module", "exports": { ".": { @@ -27,77 +30,81 @@ "README.md" ], "scripts": { - "build": "tsup src/index.ts --clean --format cjs,esm --outDir lib --dts && cp lib/index.d.ts lib/index.d.cts", + "build": "tsup src/index.ts && cp lib/index.d.ts lib/index.d.cts", "docs": "typedoc", - "docs:serve": "http-serve docs/generated", + "docs:serve": "npx --yes http-server docs/generated", "format": "prettier \"**/*\" --ignore-unknown", - "format:write": "pnpm format --write", - "lint": "eslint . --max-warnings 0 --report-unused-disable-directives", + "lint": "eslint . .*js --max-warnings 0 --report-unused-disable-directives", "lint:docs": "typedoc --validation --treatValidationWarningsAsErrors", - "lint:knip": "knip --config knip.jsonc", + "lint:knip": "knip", "lint:knip:production": "knip --config knip.production.jsonc --production", "lint:md": "markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line", - "lint:package": "npmPkgJsonLint .", - "lint:packages": "pnpm-deduplicate --list", + "lint:package-json": "npmPkgJsonLint .", + "lint:packages": "pnpm dedupe --check", "lint:spelling": "cspell \"**\" \".github/**/*\"", "prepare": "husky install", "should-semantic-release": "should-semantic-release --verbose", "test": "vitest", - "type-check": "tsc --noEmit" + "tsc": "tsc" }, "lint-staged": { "*": "prettier --ignore-unknown --write" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^5.48.2", - "@typescript-eslint/parser": "^5.48.2", - "@typescript/vfs": "^1.4.0", - "@vitest/coverage-istanbul": "^0.32.0", - "cspell": "^6.19.2", - "eslint": "^8.32.0", - "eslint-config-prettier": "^8.6.0", - "eslint-plugin-deprecation": "^1.3.3", + "@phenomnomnominal/tsquery": "^6.1.3", + "@release-it/conventional-changelog": "^8.0.1", + "@types/eslint": "^8.56.0", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "6.20.0", + "@typescript/vfs": "^1.5.0", + "@vitest/coverage-v8": "^1.1.0", + "console-fail-test": "^0.2.3", + "cspell": "^8.2.3", + "eslint": "^8.56.0", + "eslint-plugin-deprecation": "^2.0.0", "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jsdoc": "^41.0.0", - "eslint-plugin-jsonc": "^2.6.0", - "eslint-plugin-markdown": "^3.0.0", + "eslint-plugin-jsdoc": "^48.0.0", + "eslint-plugin-jsonc": "^2.11.2", + "eslint-plugin-markdown": "^3.0.1", + "eslint-plugin-n": "^16.5.0", "eslint-plugin-no-only-tests": "^3.1.0", - "eslint-plugin-regexp": "^1.12.0", - "eslint-plugin-simple-import-sort": "^10.0.0", - "eslint-plugin-typescript-sort-keys": "^2.1.0", - "eslint-plugin-unicorn": "^46.0.0", - "eslint-plugin-vitest": "^0.2.0", - "http-serve": "^1.0.1", - "husky": "^8.0.3", - "jsonc-eslint-parser": "^2.1.0", - "knip": "^2.0.0", - "lint-staged": "^13.1.0", - "markdownlint": "^0.29.0", - "markdownlint-cli": "^0.34.0", - "npm-package-json-lint": "^6.4.0", - "npm-package-json-lint-config-default": "^5.0.0", - "pnpm-deduplicate": "^0.4.1", - "prettier": "^2.8.3", - "prettier-plugin-packagejson": "^2.4.2", - "release-it": "^15.6.0", + "eslint-plugin-perfectionist": "^2.5.0", + "eslint-plugin-regexp": "^2.1.2", + "eslint-plugin-vitest": "^0.3.18", + "eslint-plugin-yml": "^1.11.0", + "husky": "^9.0.0", + "jsonc-eslint-parser": "^2.4.0", + "knip": "^4.0.0", + "lint-staged": "^15.2.0", + "markdownlint": "^0.33.0", + "markdownlint-cli": "^0.39.0", + "npm-package-json-lint": "^7.1.0", + "npm-package-json-lint-config-default": "^6.0.0", + "prettier": "^3.1.1", + "prettier-plugin-curly": "^0.1.3", + "prettier-plugin-packagejson": "^2.4.7", + "release-it": "^17.0.1", "sentences-per-line": "^0.2.1", - "should-semantic-release": "^0.1.0", - "tsup": "^6.5.0", - "typedoc": "^0.24.0", - "typedoc-plugin-coverage": "^2.0.0", - "typedoc-plugin-custom-validation": "^1.1.0", + "should-semantic-release": "^0.2.1", + "tsup": "^8.0.1", + "typedoc": "^0.24.8", + "typedoc-plugin-coverage": "^2.2.0", + "typedoc-plugin-custom-validation": "^1.1.1", "typedoc-plugin-konamimojisplosion": "^0.0.2", - "typedoc-plugin-mdn-links": "^3.0.0", - "typedoc-plugin-versions": "^0.2.3", - "typescript": "^5.0.2", - "vitest": "^0.32.0" + "typedoc-plugin-mdn-links": "^3.1.8", + "typedoc-plugin-versions": "^0.2.4", + "typescript": "^5.3.3", + "vitest": "^1.1.0", + "yaml-eslint-parser": "^1.2.2" }, "peerDependencies": { "typescript": ">=4.2.0" }, - "packageManager": "pnpm@7.33.1", + "packageManager": "pnpm@8.15.1", "engines": { - "node": ">=16.13.0" + "node": ">=16" + }, + "publishConfig": { + "provenance": true } } diff --git a/node_modules/typescript/lib/tsc.js b/node_modules/typescript/lib/tsc.js index eb9b776f9c..f4e4fed2bc 100644 --- a/node_modules/typescript/lib/tsc.js +++ b/node_modules/typescript/lib/tsc.js @@ -18,7 +18,7 @@ and limitations under the License. // src/compiler/corePublic.ts var versionMajorMinor = "5.4"; -var version = "5.4.4"; +var version = "5.4.5"; // src/compiler/core.ts var emptyArray = []; @@ -55344,12 +55344,10 @@ function createTypeChecker(host) { const target = type.target ?? type; const typeVariable = getHomomorphicTypeVariable(target); if (typeVariable && !target.declaration.nameType) { - const constraint = getConstraintTypeFromMappedType(type); - if (constraint.flags & 4194304 /* Index */) { - const baseConstraint = getBaseConstraintOfType(constraint.type); - if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) { - return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper)); - } + const modifiersType = getModifiersTypeFromMappedType(type); + const baseConstraint = isGenericMappedType(modifiersType) ? getApparentTypeOfMappedType(modifiersType) : getBaseConstraintOfType(modifiersType); + if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) { + return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper)); } } return type; @@ -55510,13 +55508,13 @@ function createTypeChecker(host) { } function getUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment) { var _a, _b, _c; - let property = ((_a = type.propertyCacheWithoutObjectFunctionPropertyAugment) == null ? void 0 : _a.get(name)) || !skipObjectFunctionPropertyAugment ? (_b = type.propertyCache) == null ? void 0 : _b.get(name) : void 0; + let property = skipObjectFunctionPropertyAugment ? (_a = type.propertyCacheWithoutObjectFunctionPropertyAugment) == null ? void 0 : _a.get(name) : (_b = type.propertyCache) == null ? void 0 : _b.get(name); if (!property) { property = createUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment); if (property) { const properties = skipObjectFunctionPropertyAugment ? type.propertyCacheWithoutObjectFunctionPropertyAugment || (type.propertyCacheWithoutObjectFunctionPropertyAugment = createSymbolTable()) : type.propertyCache || (type.propertyCache = createSymbolTable()); properties.set(name, property); - if (skipObjectFunctionPropertyAugment && !((_c = type.propertyCache) == null ? void 0 : _c.get(name))) { + if (skipObjectFunctionPropertyAugment && !(getCheckFlags(property) & 48 /* Partial */) && !((_c = type.propertyCache) == null ? void 0 : _c.get(name))) { const properties2 = type.propertyCache || (type.propertyCache = createSymbolTable()); properties2.set(name, property); } diff --git a/node_modules/typescript/lib/tsserver.js b/node_modules/typescript/lib/tsserver.js index 6a1c031839..3f1ce62663 100644 --- a/node_modules/typescript/lib/tsserver.js +++ b/node_modules/typescript/lib/tsserver.js @@ -2340,7 +2340,7 @@ module.exports = __toCommonJS(server_exports); // src/compiler/corePublic.ts var versionMajorMinor = "5.4"; -var version = "5.4.4"; +var version = "5.4.5"; var Comparison = /* @__PURE__ */ ((Comparison3) => { Comparison3[Comparison3["LessThan"] = -1] = "LessThan"; Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo"; @@ -60088,12 +60088,10 @@ function createTypeChecker(host) { const target = type.target ?? type; const typeVariable = getHomomorphicTypeVariable(target); if (typeVariable && !target.declaration.nameType) { - const constraint = getConstraintTypeFromMappedType(type); - if (constraint.flags & 4194304 /* Index */) { - const baseConstraint = getBaseConstraintOfType(constraint.type); - if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) { - return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper)); - } + const modifiersType = getModifiersTypeFromMappedType(type); + const baseConstraint = isGenericMappedType(modifiersType) ? getApparentTypeOfMappedType(modifiersType) : getBaseConstraintOfType(modifiersType); + if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) { + return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper)); } } return type; @@ -60254,13 +60252,13 @@ function createTypeChecker(host) { } function getUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment) { var _a, _b, _c; - let property = ((_a = type.propertyCacheWithoutObjectFunctionPropertyAugment) == null ? void 0 : _a.get(name)) || !skipObjectFunctionPropertyAugment ? (_b = type.propertyCache) == null ? void 0 : _b.get(name) : void 0; + let property = skipObjectFunctionPropertyAugment ? (_a = type.propertyCacheWithoutObjectFunctionPropertyAugment) == null ? void 0 : _a.get(name) : (_b = type.propertyCache) == null ? void 0 : _b.get(name); if (!property) { property = createUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment); if (property) { const properties = skipObjectFunctionPropertyAugment ? type.propertyCacheWithoutObjectFunctionPropertyAugment || (type.propertyCacheWithoutObjectFunctionPropertyAugment = createSymbolTable()) : type.propertyCache || (type.propertyCache = createSymbolTable()); properties.set(name, property); - if (skipObjectFunctionPropertyAugment && !((_c = type.propertyCache) == null ? void 0 : _c.get(name))) { + if (skipObjectFunctionPropertyAugment && !(getCheckFlags(property) & 48 /* Partial */) && !((_c = type.propertyCache) == null ? void 0 : _c.get(name))) { const properties2 = type.propertyCache || (type.propertyCache = createSymbolTable()); properties2.set(name, property); } @@ -160459,7 +160457,8 @@ function getCompletionEntriesFromSymbols(symbols, entries, replacementToken, con } function symbolAppearsToBeTypeOnly(symbol) { var _a; - return !(symbol.flags & 111551 /* Value */) && (!isInJSFile((_a = symbol.declarations) == null ? void 0 : _a[0]) || !!(symbol.flags & 788968 /* Type */)); + const flags = getCombinedLocalAndExportSymbolFlags(skipAlias(symbol, typeChecker)); + return !(flags & 111551 /* Value */) && (!isInJSFile((_a = symbol.declarations) == null ? void 0 : _a[0]) || !!(flags & 788968 /* Type */)); } } function getLabelCompletionAtPosition(node) { diff --git a/node_modules/typescript/lib/typescript.js b/node_modules/typescript/lib/typescript.js index 018350e49d..22053b1784 100644 --- a/node_modules/typescript/lib/typescript.js +++ b/node_modules/typescript/lib/typescript.js @@ -35,7 +35,7 @@ var ts = (() => { "src/compiler/corePublic.ts"() { "use strict"; versionMajorMinor = "5.4"; - version = "5.4.4"; + version = "5.4.5"; Comparison = /* @__PURE__ */ ((Comparison3) => { Comparison3[Comparison3["LessThan"] = -1] = "LessThan"; Comparison3[Comparison3["EqualTo"] = 0] = "EqualTo"; @@ -57843,12 +57843,10 @@ ${lanes.join("\n")} const target = type.target ?? type; const typeVariable = getHomomorphicTypeVariable(target); if (typeVariable && !target.declaration.nameType) { - const constraint = getConstraintTypeFromMappedType(type); - if (constraint.flags & 4194304 /* Index */) { - const baseConstraint = getBaseConstraintOfType(constraint.type); - if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) { - return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper)); - } + const modifiersType = getModifiersTypeFromMappedType(type); + const baseConstraint = isGenericMappedType(modifiersType) ? getApparentTypeOfMappedType(modifiersType) : getBaseConstraintOfType(modifiersType); + if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) { + return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper)); } } return type; @@ -58009,13 +58007,13 @@ ${lanes.join("\n")} } function getUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment) { var _a, _b, _c; - let property = ((_a = type.propertyCacheWithoutObjectFunctionPropertyAugment) == null ? void 0 : _a.get(name)) || !skipObjectFunctionPropertyAugment ? (_b = type.propertyCache) == null ? void 0 : _b.get(name) : void 0; + let property = skipObjectFunctionPropertyAugment ? (_a = type.propertyCacheWithoutObjectFunctionPropertyAugment) == null ? void 0 : _a.get(name) : (_b = type.propertyCache) == null ? void 0 : _b.get(name); if (!property) { property = createUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment); if (property) { const properties = skipObjectFunctionPropertyAugment ? type.propertyCacheWithoutObjectFunctionPropertyAugment || (type.propertyCacheWithoutObjectFunctionPropertyAugment = createSymbolTable()) : type.propertyCache || (type.propertyCache = createSymbolTable()); properties.set(name, property); - if (skipObjectFunctionPropertyAugment && !((_c = type.propertyCache) == null ? void 0 : _c.get(name))) { + if (skipObjectFunctionPropertyAugment && !(getCheckFlags(property) & 48 /* Partial */) && !((_c = type.propertyCache) == null ? void 0 : _c.get(name))) { const properties2 = type.propertyCache || (type.propertyCache = createSymbolTable()); properties2.set(name, property); } @@ -159682,7 +159680,8 @@ ${newComment.split("\n").map((c) => ` * ${c}`).join("\n")} } function symbolAppearsToBeTypeOnly(symbol) { var _a; - return !(symbol.flags & 111551 /* Value */) && (!isInJSFile((_a = symbol.declarations) == null ? void 0 : _a[0]) || !!(symbol.flags & 788968 /* Type */)); + const flags = getCombinedLocalAndExportSymbolFlags(skipAlias(symbol, typeChecker)); + return !(flags & 111551 /* Value */) && (!isInJSFile((_a = symbol.declarations) == null ? void 0 : _a[0]) || !!(flags & 788968 /* Type */)); } } function getLabelCompletionAtPosition(node) { diff --git a/node_modules/typescript/lib/typingsInstaller.js b/node_modules/typescript/lib/typingsInstaller.js index 9c8eb8b080..e84a729bbc 100644 --- a/node_modules/typescript/lib/typingsInstaller.js +++ b/node_modules/typescript/lib/typingsInstaller.js @@ -54,7 +54,7 @@ var path = __toESM(require("path")); // src/compiler/corePublic.ts var versionMajorMinor = "5.4"; -var version = "5.4.4"; +var version = "5.4.5"; // src/compiler/core.ts var emptyArray = []; diff --git a/node_modules/typescript/package.json b/node_modules/typescript/package.json index 9ceb08f2e1..cdf901806f 100644 --- a/node_modules/typescript/package.json +++ b/node_modules/typescript/package.json @@ -2,7 +2,7 @@ "name": "typescript", "author": "Microsoft Corp.", "homepage": "https://www.typescriptlang.org/", - "version": "5.4.4", + "version": "5.4.5", "license": "Apache-2.0", "description": "TypeScript is a language for application scale JavaScript development", "keywords": [