Update checked-in dependencies

This commit is contained in:
github-actions[bot] 2024-04-15 18:20:40 +00:00
parent fc090c44d2
commit d8b8ad0cb2
151 changed files with 4948 additions and 2797 deletions

154
node_modules/.package-lock.json generated vendored
View file

@ -416,9 +416,9 @@
} }
}, },
"node_modules/@eslint-community/regexpp": { "node_modules/@eslint-community/regexpp": {
"version": "4.6.2", "version": "4.10.0",
"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
"integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0" "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@ -762,17 +762,17 @@
} }
}, },
"node_modules/@octokit/types": { "node_modules/@octokit/types": {
"version": "13.1.0", "version": "13.4.0",
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.1.0.tgz", "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.4.0.tgz",
"integrity": "sha512-nBwAFOYqVUUJ2AZFK4ZzESQptaAVqdTDKk8gE0Xr0o99WuPDSrhUC38x0F40xD9OUxXhOOuZKWNNVVLPSHQDvQ==", "integrity": "sha512-WlMegy3lPXYWASe3k9Jslc5a0anrYAYMWtsFrxBTdQjS70hvLH6C+PGvHbOsgy3RA3LouGJoU/vAt4KarecQLQ==",
"dependencies": { "dependencies": {
"@octokit/openapi-types": "^21.0.0" "@octokit/openapi-types": "^22.0.1"
} }
}, },
"node_modules/@octokit/types/node_modules/@octokit/openapi-types": { "node_modules/@octokit/types/node_modules/@octokit/openapi-types": {
"version": "21.2.0", "version": "22.0.1",
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-21.2.0.tgz", "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.0.1.tgz",
"integrity": "sha512-xx+Xd6I7rYvul/hgUDqv6TeGX0IOGnhSg9IOeYgd/uI7IAqUy6DE2B6Ipv2M4mWoxaMcWjIzgTIcv8pMO3F3vw==" "integrity": "sha512-1yN5m1IMNXthoBDUXFF97N1gHop04B3H8ws7wtOr8GgRyDO1gKALjwMHARNBoMBiB/2vEe/vxstrApcJZzQbnQ=="
}, },
"node_modules/@opentelemetry/api": { "node_modules/@opentelemetry/api": {
"version": "1.4.1", "version": "1.4.1",
@ -960,22 +960,22 @@
"integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==" "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA=="
}, },
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "7.5.0", "version": "7.7.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.5.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz",
"integrity": "sha512-HpqNTH8Du34nLxbKgVMGljZMG0rJd2O9ecvr2QLYp+7512ty1j42KnsFwspPXg1Vh8an9YImf6CokUBltisZFQ==", "integrity": "sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/regexpp": "^4.5.1", "@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "7.5.0", "@typescript-eslint/scope-manager": "7.7.0",
"@typescript-eslint/type-utils": "7.5.0", "@typescript-eslint/type-utils": "7.7.0",
"@typescript-eslint/utils": "7.5.0", "@typescript-eslint/utils": "7.7.0",
"@typescript-eslint/visitor-keys": "7.5.0", "@typescript-eslint/visitor-keys": "7.7.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"graphemer": "^1.4.0", "graphemer": "^1.4.0",
"ignore": "^5.2.4", "ignore": "^5.3.1",
"natural-compare": "^1.4.0", "natural-compare": "^1.4.0",
"semver": "^7.5.4", "semver": "^7.6.0",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.3.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || >=20.0.0" "node": "^18.18.0 || >=20.0.0"
@ -995,15 +995,15 @@
} }
}, },
"node_modules/@typescript-eslint/parser": { "node_modules/@typescript-eslint/parser": {
"version": "7.5.0", "version": "7.7.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.5.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz",
"integrity": "sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ==", "integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/scope-manager": "7.5.0", "@typescript-eslint/scope-manager": "7.7.0",
"@typescript-eslint/types": "7.5.0", "@typescript-eslint/types": "7.7.0",
"@typescript-eslint/typescript-estree": "7.5.0", "@typescript-eslint/typescript-estree": "7.7.0",
"@typescript-eslint/visitor-keys": "7.5.0", "@typescript-eslint/visitor-keys": "7.7.0",
"debug": "^4.3.4" "debug": "^4.3.4"
}, },
"engines": { "engines": {
@ -1023,13 +1023,13 @@
} }
}, },
"node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/scope-manager": {
"version": "7.5.0", "version": "7.7.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.5.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz",
"integrity": "sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA==", "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "7.5.0", "@typescript-eslint/types": "7.7.0",
"@typescript-eslint/visitor-keys": "7.5.0" "@typescript-eslint/visitor-keys": "7.7.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || >=20.0.0" "node": "^18.18.0 || >=20.0.0"
@ -1040,15 +1040,15 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils": { "node_modules/@typescript-eslint/type-utils": {
"version": "7.5.0", "version": "7.7.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.5.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz",
"integrity": "sha512-A021Rj33+G8mx2Dqh0nMO9GyjjIBK3MqgVgZ2qlKf6CJy51wY/lkkFqq3TqqnH34XyAHUkq27IjlUkWlQRpLHw==", "integrity": "sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/typescript-estree": "7.5.0", "@typescript-eslint/typescript-estree": "7.7.0",
"@typescript-eslint/utils": "7.5.0", "@typescript-eslint/utils": "7.7.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.3.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || >=20.0.0" "node": "^18.18.0 || >=20.0.0"
@ -1067,9 +1067,9 @@
} }
}, },
"node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/types": {
"version": "7.5.0", "version": "7.7.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.5.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz",
"integrity": "sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==", "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^18.18.0 || >=20.0.0" "node": "^18.18.0 || >=20.0.0"
@ -1080,19 +1080,19 @@
} }
}, },
"node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/typescript-estree": {
"version": "7.5.0", "version": "7.7.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.5.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz",
"integrity": "sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ==", "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "7.5.0", "@typescript-eslint/types": "7.7.0",
"@typescript-eslint/visitor-keys": "7.5.0", "@typescript-eslint/visitor-keys": "7.7.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
"minimatch": "9.0.3", "minimatch": "^9.0.4",
"semver": "^7.5.4", "semver": "^7.6.0",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.3.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || >=20.0.0" "node": "^18.18.0 || >=20.0.0"
@ -1117,9 +1117,9 @@
} }
}, },
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
"version": "9.0.3", "version": "9.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"brace-expansion": "^2.0.1" "brace-expansion": "^2.0.1"
@ -1132,18 +1132,18 @@
} }
}, },
"node_modules/@typescript-eslint/utils": { "node_modules/@typescript-eslint/utils": {
"version": "7.5.0", "version": "7.7.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.5.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz",
"integrity": "sha512-3vZl9u0R+/FLQcpy2EHyRGNqAS/ofJ3Ji8aebilfJe+fobK8+LbIFmrHciLVDxjDoONmufDcnVSF38KwMEOjzw==", "integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12", "@types/json-schema": "^7.0.15",
"@types/semver": "^7.5.0", "@types/semver": "^7.5.8",
"@typescript-eslint/scope-manager": "7.5.0", "@typescript-eslint/scope-manager": "7.7.0",
"@typescript-eslint/types": "7.5.0", "@typescript-eslint/types": "7.7.0",
"@typescript-eslint/typescript-estree": "7.5.0", "@typescript-eslint/typescript-estree": "7.7.0",
"semver": "^7.5.4" "semver": "^7.6.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || >=20.0.0" "node": "^18.18.0 || >=20.0.0"
@ -1157,13 +1157,13 @@
} }
}, },
"node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/visitor-keys": {
"version": "7.5.0", "version": "7.7.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.5.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz",
"integrity": "sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA==", "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "7.5.0", "@typescript-eslint/types": "7.7.0",
"eslint-visitor-keys": "^3.4.1" "eslint-visitor-keys": "^3.4.3"
}, },
"engines": { "engines": {
"node": "^18.18.0 || >=20.0.0" "node": "^18.18.0 || >=20.0.0"
@ -3662,9 +3662,9 @@
} }
}, },
"node_modules/ignore": { "node_modules/ignore": {
"version": "5.2.4", "version": "5.3.1",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
"integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
"engines": { "engines": {
"node": ">= 4" "node": ">= 4"
} }
@ -5928,12 +5928,12 @@
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
}, },
"node_modules/ts-api-utils": { "node_modules/ts-api-utils": {
"version": "1.0.1", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
"integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=16.13.0" "node": ">=16"
}, },
"peerDependencies": { "peerDependencies": {
"typescript": ">=4.2.0" "typescript": ">=4.2.0"
@ -6062,9 +6062,9 @@
} }
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "5.4.4", "version": "5.4.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.4.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
"integrity": "sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==", "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
"dev": true, "dev": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",

View file

@ -5,6 +5,7 @@ declare module "@eslint-community/regexpp" {
import { RegExpParser } from "@eslint-community/regexpp/parser"; import { RegExpParser } from "@eslint-community/regexpp/parser";
import { RegExpValidator } from "@eslint-community/regexpp/validator"; import { RegExpValidator } from "@eslint-community/regexpp/validator";
import { RegExpVisitor } from "@eslint-community/regexpp/visitor"; import { RegExpVisitor } from "@eslint-community/regexpp/visitor";
export { RegExpSyntaxError } from "@eslint-community/regexpp/regexp-syntax-error";
export { AST, RegExpParser, RegExpValidator }; export { AST, RegExpParser, RegExpValidator };
/** /**
* Parse a given regular expression literal then make AST object. * Parse a given regular expression literal then make AST object.
@ -88,8 +89,8 @@ declare module "@eslint-community/regexpp/ast" {
export type ClassRangesCharacterClassElement = export type ClassRangesCharacterClassElement =
| Character | Character
| CharacterClassRange | CharacterClassRange
| EscapeCharacterSet | CharacterUnicodePropertyCharacterSet
| UnicodePropertyCharacterSet; | EscapeCharacterSet;
export type UnicodeSetsCharacterClassElement = export type UnicodeSetsCharacterClassElement =
| Character | Character
| CharacterClassRange | CharacterClassRange
@ -208,23 +209,36 @@ declare module "@eslint-community/regexpp/ast" {
type: "CharacterClass"; type: "CharacterClass";
parent: parent:
| Alternative | Alternative
| ExpressionCharacterClass | ClassIntersection
| ClassSubtraction
| Quantifier | Quantifier
| UnicodeSetsCharacterClass; | UnicodeSetsCharacterClass;
unicodeSets: boolean; unicodeSets: boolean;
negate: boolean; negate: boolean;
elements: CharacterClassElement[]; 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 { export interface ClassRangesCharacterClass extends BaseCharacterClass {
parent: Alternative | Quantifier; parent: Alternative | Quantifier;
unicodeSets: false; unicodeSets: false;
elements: ClassRangesCharacterClassElement[]; 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 { export interface UnicodeSetsCharacterClass extends BaseCharacterClass {
parent: parent:
| Alternative | Alternative
| ExpressionCharacterClass | ClassIntersection
| ClassSubtraction
| Quantifier | Quantifier
| UnicodeSetsCharacterClass; | UnicodeSetsCharacterClass;
unicodeSets: true; unicodeSets: true;
@ -328,6 +342,12 @@ declare module "@eslint-community/regexpp/ast" {
/** StringsUnicodePropertyCharacterSet is Unicode property escape with property of strings. */ /** StringsUnicodePropertyCharacterSet is Unicode property escape with property of strings. */
export interface StringsUnicodePropertyCharacterSet export interface StringsUnicodePropertyCharacterSet
extends BaseUnicodePropertyCharacterSet { extends BaseUnicodePropertyCharacterSet {
parent:
| Alternative
| ClassIntersection
| ClassSubtraction
| Quantifier
| UnicodeSetsCharacterClass;
strings: true; strings: true;
value: null; value: null;
negate: false; negate: false;
@ -340,7 +360,8 @@ declare module "@eslint-community/regexpp/ast" {
type: "ExpressionCharacterClass"; type: "ExpressionCharacterClass";
parent: parent:
| Alternative | Alternative
| ExpressionCharacterClass | ClassIntersection
| ClassSubtraction
| Quantifier | Quantifier
| UnicodeSetsCharacterClass; | UnicodeSetsCharacterClass;
negate: boolean; 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" { declare module "@eslint-community/regexpp/ecma-versions" {
export type EcmaVersion = export type EcmaVersion =
| 5 | 5

View file

@ -45,10 +45,10 @@ function isLargeIdContinue(cp) {
return isInRange(cp, largeIdContinueRanges !== null && largeIdContinueRanges !== void 0 ? largeIdContinueRanges : (largeIdContinueRanges = initLargeIdContinueRanges())); return isInRange(cp, largeIdContinueRanges !== null && largeIdContinueRanges !== void 0 ? largeIdContinueRanges : (largeIdContinueRanges = initLargeIdContinueRanges()));
} }
function initLargeIdStartRanges() { 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() { 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) { function isInRange(cp, ranges) {
let l = 0, r = (ranges.length / 2) | 0, i = 0, min = 0, max = 0; 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 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 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 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) { function isValidUnicodeProperty(version, name, value) {
if (gcNameSet.has(name)) { if (gcNameSet.has(name)) {
return version >= 2018 && gcValueSets.es2018.has(value); return version >= 2018 && gcValueSets.es2018.has(value);
@ -136,6 +137,9 @@ function isValidLoneUnicodeProperty(version, value) {
(version >= 2019 && binPropertySets.es2019.has(value)) || (version >= 2019 && binPropertySets.es2019.has(value)) ||
(version >= 2021 && binPropertySets.es2021.has(value))); (version >= 2021 && binPropertySets.es2021.has(value)));
} }
function isValidLoneUnicodePropertyOfString(version, value) {
return version >= 2024 && binPropertyOfStringsSets.es2024.has(value);
}
const BACKSPACE = 0x08; const BACKSPACE = 0x08;
const CHARACTER_TABULATION = 0x09; const CHARACTER_TABULATION = 0x09;
@ -360,35 +364,25 @@ class Reader {
} }
class RegExpSyntaxError extends SyntaxError { class RegExpSyntaxError extends SyntaxError {
constructor(srcCtx, flags, index, message) { constructor(message, index) {
let source = ""; super(message);
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}`);
this.index = index; this.index = index;
} }
} }
function newRegExpSyntaxError(srcCtx, flags, index, message) {
const binPropertyOfStringSets = new Set([ let source = "";
"Basic_Emoji", if (srcCtx.kind === "literal") {
"Emoji_Keycap_Sequence", const literal = srcCtx.source.slice(srcCtx.start, srcCtx.end);
"RGI_Emoji_Modifier_Sequence", if (literal) {
"RGI_Emoji_Flag_Sequence", source = `: ${literal}`;
"RGI_Emoji_Tag_Sequence", }
"RGI_Emoji_ZWJ_Sequence", }
"RGI_Emoji", else if (srcCtx.kind === "pattern") {
]); const pattern = srcCtx.source.slice(srcCtx.start, srcCtx.end);
function isValidLoneUnicodePropertyOfString(version, value) { const flagsText = `${flags.unicode ? "u" : ""}${flags.unicodeSets ? "v" : ""}`;
return version >= 2024 && binPropertyOfStringSets.has(value); source = `: /${pattern}/${flagsText}`;
}
return new RegExpSyntaxError(`Invalid regular expression${source}: ${message}`, index);
} }
const SYNTAX_CHARACTER = new Set([ const SYNTAX_CHARACTER = new Set([
@ -842,7 +836,7 @@ class RegExpValidator {
} }
raise(message, context) { raise(message, context) {
var _a, _b, _c; 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), 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, 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); }, (_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) { constructor(options) {
var _a; var _a;
this._node = DUMMY_PATTERN; this._node = DUMMY_PATTERN;
this._expressionBuffer = null; this._expressionBufferMap = new Map();
this._flags = DUMMY_FLAGS; this._flags = DUMMY_FLAGS;
this._backreferences = []; this._backreferences = [];
this._capturingGroups = []; this._capturingGroups = [];
@ -2208,25 +2202,28 @@ class RegExpParserState {
} }
onUnicodePropertyCharacterSet(start, end, kind, key, value, negate, strings) { onUnicodePropertyCharacterSet(start, end, kind, key, value, negate, strings) {
const parent = this._node; const parent = this._node;
if ((parent.type !== "Alternative" && if (parent.type !== "Alternative" && parent.type !== "CharacterClass") {
parent.type !== "CharacterClass") ||
(strings && (negate || value))) {
throw new Error("UnknownError"); throw new Error("UnknownError");
} }
const base = { const base = {
type: "CharacterSet", type: "CharacterSet",
parent,
start, start,
end, end,
raw: this.source.slice(start, end), raw: this.source.slice(start, end),
kind, kind,
strings,
key, key,
}; };
const node = strings if (strings) {
? Object.assign(Object.assign({}, base), { value: null, negate: false, strings: true }) : Object.assign(Object.assign({}, base), { value, if ((parent.type === "CharacterClass" && !parent.unicodeSets) ||
negate, strings: false }); negate ||
parent.elements.push(node); 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) { onCharacter(start, end, value) {
const parent = this._node; const parent = this._node;
@ -2294,19 +2291,21 @@ class RegExpParserState {
const node = this._node; const node = this._node;
if (node.type !== "CharacterClass" || if (node.type !== "CharacterClass" ||
(node.parent.type !== "Alternative" && (node.parent.type !== "Alternative" &&
node.parent.type !== "CharacterClass") || node.parent.type !== "CharacterClass")) {
(this._expressionBuffer && node.elements.length > 0)) {
throw new Error("UnknownError"); throw new Error("UnknownError");
} }
const parent = node.parent; const parent = node.parent;
node.end = end; node.end = end;
node.raw = this.source.slice(start, end); node.raw = this.source.slice(start, end);
this._node = parent; this._node = parent;
const expression = this._expressionBuffer; const expression = this._expressionBufferMap.get(node);
this._expressionBuffer = null;
if (!expression) { if (!expression) {
return; return;
} }
if (node.elements.length > 0) {
throw new Error("UnknownError");
}
this._expressionBufferMap.delete(node);
const newNode = { const newNode = {
type: "ExpressionCharacterClass", type: "ExpressionCharacterClass",
parent, parent,
@ -2364,7 +2363,7 @@ class RegExpParserState {
throw new Error("UnknownError"); throw new Error("UnknownError");
} }
const right = parent.elements.pop(); 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 || if (!left ||
!right || !right ||
left.type === "ClassSubtraction" || left.type === "ClassSubtraction" ||
@ -2383,7 +2382,7 @@ class RegExpParserState {
}; };
left.parent = node; left.parent = node;
right.parent = node; right.parent = node;
this._expressionBuffer = node; this._expressionBufferMap.set(parent, node);
} }
onClassSubtraction(start, end) { onClassSubtraction(start, end) {
var _a; var _a;
@ -2392,7 +2391,7 @@ class RegExpParserState {
throw new Error("UnknownError"); throw new Error("UnknownError");
} }
const right = parent.elements.pop(); 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 || if (!left ||
!right || !right ||
left.type === "ClassIntersection" || left.type === "ClassIntersection" ||
@ -2411,7 +2410,7 @@ class RegExpParserState {
}; };
left.parent = node; left.parent = node;
right.parent = node; right.parent = node;
this._expressionBuffer = node; this._expressionBufferMap.set(parent, node);
} }
onClassStringDisjunctionEnter(start) { onClassStringDisjunctionEnter(start) {
const parent = this._node; const parent = this._node;
@ -2740,6 +2739,7 @@ function visitRegExpAST(node, handlers) {
exports.AST = ast; exports.AST = ast;
exports.RegExpParser = RegExpParser; exports.RegExpParser = RegExpParser;
exports.RegExpSyntaxError = RegExpSyntaxError;
exports.RegExpValidator = RegExpValidator; exports.RegExpValidator = RegExpValidator;
exports.parseRegExpLiteral = parseRegExpLiteral; exports.parseRegExpLiteral = parseRegExpLiteral;
exports.validateRegExpLiteral = validateRegExpLiteral; exports.validateRegExpLiteral = validateRegExpLiteral;

File diff suppressed because one or more lines are too long

View file

@ -41,10 +41,10 @@ function isLargeIdContinue(cp) {
return isInRange(cp, largeIdContinueRanges !== null && largeIdContinueRanges !== void 0 ? largeIdContinueRanges : (largeIdContinueRanges = initLargeIdContinueRanges())); return isInRange(cp, largeIdContinueRanges !== null && largeIdContinueRanges !== void 0 ? largeIdContinueRanges : (largeIdContinueRanges = initLargeIdContinueRanges()));
} }
function initLargeIdStartRanges() { 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() { 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) { function isInRange(cp, ranges) {
let l = 0, r = (ranges.length / 2) | 0, i = 0, min = 0, max = 0; 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 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 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 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) { function isValidUnicodeProperty(version, name, value) {
if (gcNameSet.has(name)) { if (gcNameSet.has(name)) {
return version >= 2018 && gcValueSets.es2018.has(value); return version >= 2018 && gcValueSets.es2018.has(value);
@ -132,6 +133,9 @@ function isValidLoneUnicodeProperty(version, value) {
(version >= 2019 && binPropertySets.es2019.has(value)) || (version >= 2019 && binPropertySets.es2019.has(value)) ||
(version >= 2021 && binPropertySets.es2021.has(value))); (version >= 2021 && binPropertySets.es2021.has(value)));
} }
function isValidLoneUnicodePropertyOfString(version, value) {
return version >= 2024 && binPropertyOfStringsSets.es2024.has(value);
}
const BACKSPACE = 0x08; const BACKSPACE = 0x08;
const CHARACTER_TABULATION = 0x09; const CHARACTER_TABULATION = 0x09;
@ -356,35 +360,25 @@ class Reader {
} }
class RegExpSyntaxError extends SyntaxError { class RegExpSyntaxError extends SyntaxError {
constructor(srcCtx, flags, index, message) { constructor(message, index) {
let source = ""; super(message);
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}`);
this.index = index; this.index = index;
} }
} }
function newRegExpSyntaxError(srcCtx, flags, index, message) {
const binPropertyOfStringSets = new Set([ let source = "";
"Basic_Emoji", if (srcCtx.kind === "literal") {
"Emoji_Keycap_Sequence", const literal = srcCtx.source.slice(srcCtx.start, srcCtx.end);
"RGI_Emoji_Modifier_Sequence", if (literal) {
"RGI_Emoji_Flag_Sequence", source = `: ${literal}`;
"RGI_Emoji_Tag_Sequence", }
"RGI_Emoji_ZWJ_Sequence", }
"RGI_Emoji", else if (srcCtx.kind === "pattern") {
]); const pattern = srcCtx.source.slice(srcCtx.start, srcCtx.end);
function isValidLoneUnicodePropertyOfString(version, value) { const flagsText = `${flags.unicode ? "u" : ""}${flags.unicodeSets ? "v" : ""}`;
return version >= 2024 && binPropertyOfStringSets.has(value); source = `: /${pattern}/${flagsText}`;
}
return new RegExpSyntaxError(`Invalid regular expression${source}: ${message}`, index);
} }
const SYNTAX_CHARACTER = new Set([ const SYNTAX_CHARACTER = new Set([
@ -838,7 +832,7 @@ class RegExpValidator {
} }
raise(message, context) { raise(message, context) {
var _a, _b, _c; 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), 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, 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); }, (_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) { constructor(options) {
var _a; var _a;
this._node = DUMMY_PATTERN; this._node = DUMMY_PATTERN;
this._expressionBuffer = null; this._expressionBufferMap = new Map();
this._flags = DUMMY_FLAGS; this._flags = DUMMY_FLAGS;
this._backreferences = []; this._backreferences = [];
this._capturingGroups = []; this._capturingGroups = [];
@ -2204,25 +2198,28 @@ class RegExpParserState {
} }
onUnicodePropertyCharacterSet(start, end, kind, key, value, negate, strings) { onUnicodePropertyCharacterSet(start, end, kind, key, value, negate, strings) {
const parent = this._node; const parent = this._node;
if ((parent.type !== "Alternative" && if (parent.type !== "Alternative" && parent.type !== "CharacterClass") {
parent.type !== "CharacterClass") ||
(strings && (negate || value))) {
throw new Error("UnknownError"); throw new Error("UnknownError");
} }
const base = { const base = {
type: "CharacterSet", type: "CharacterSet",
parent,
start, start,
end, end,
raw: this.source.slice(start, end), raw: this.source.slice(start, end),
kind, kind,
strings,
key, key,
}; };
const node = strings if (strings) {
? Object.assign(Object.assign({}, base), { value: null, negate: false, strings: true }) : Object.assign(Object.assign({}, base), { value, if ((parent.type === "CharacterClass" && !parent.unicodeSets) ||
negate, strings: false }); negate ||
parent.elements.push(node); 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) { onCharacter(start, end, value) {
const parent = this._node; const parent = this._node;
@ -2290,19 +2287,21 @@ class RegExpParserState {
const node = this._node; const node = this._node;
if (node.type !== "CharacterClass" || if (node.type !== "CharacterClass" ||
(node.parent.type !== "Alternative" && (node.parent.type !== "Alternative" &&
node.parent.type !== "CharacterClass") || node.parent.type !== "CharacterClass")) {
(this._expressionBuffer && node.elements.length > 0)) {
throw new Error("UnknownError"); throw new Error("UnknownError");
} }
const parent = node.parent; const parent = node.parent;
node.end = end; node.end = end;
node.raw = this.source.slice(start, end); node.raw = this.source.slice(start, end);
this._node = parent; this._node = parent;
const expression = this._expressionBuffer; const expression = this._expressionBufferMap.get(node);
this._expressionBuffer = null;
if (!expression) { if (!expression) {
return; return;
} }
if (node.elements.length > 0) {
throw new Error("UnknownError");
}
this._expressionBufferMap.delete(node);
const newNode = { const newNode = {
type: "ExpressionCharacterClass", type: "ExpressionCharacterClass",
parent, parent,
@ -2360,7 +2359,7 @@ class RegExpParserState {
throw new Error("UnknownError"); throw new Error("UnknownError");
} }
const right = parent.elements.pop(); 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 || if (!left ||
!right || !right ||
left.type === "ClassSubtraction" || left.type === "ClassSubtraction" ||
@ -2379,7 +2378,7 @@ class RegExpParserState {
}; };
left.parent = node; left.parent = node;
right.parent = node; right.parent = node;
this._expressionBuffer = node; this._expressionBufferMap.set(parent, node);
} }
onClassSubtraction(start, end) { onClassSubtraction(start, end) {
var _a; var _a;
@ -2388,7 +2387,7 @@ class RegExpParserState {
throw new Error("UnknownError"); throw new Error("UnknownError");
} }
const right = parent.elements.pop(); 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 || if (!left ||
!right || !right ||
left.type === "ClassIntersection" || left.type === "ClassIntersection" ||
@ -2407,7 +2406,7 @@ class RegExpParserState {
}; };
left.parent = node; left.parent = node;
right.parent = node; right.parent = node;
this._expressionBuffer = node; this._expressionBufferMap.set(parent, node);
} }
onClassStringDisjunctionEnter(start) { onClassStringDisjunctionEnter(start) {
const parent = this._node; const parent = this._node;
@ -2734,5 +2733,5 @@ function visitRegExpAST(node, handlers) {
new RegExpVisitor(handlers).visit(node); 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 //# sourceMappingURL=index.mjs.map

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{ {
"name": "@eslint-community/regexpp", "name": "@eslint-community/regexpp",
"version": "4.6.2", "version": "4.10.0",
"description": "Regular expression parser for ECMAScript.", "description": "Regular expression parser for ECMAScript.",
"keywords": [ "keywords": [
"regexp", "regexp",
@ -66,15 +66,15 @@
}, },
"dependencies": {}, "dependencies": {},
"devDependencies": { "devDependencies": {
"@eslint-community/eslint-plugin-mysticatea": "^15.3.0", "@eslint-community/eslint-plugin-mysticatea": "^15.5.1",
"@rollup/plugin-node-resolve": "^14.1.0", "@rollup/plugin-node-resolve": "^14.1.0",
"@types/eslint": "^8.4.10", "@types/eslint": "^8.44.3",
"@types/jsdom": "^16.2.15", "@types/jsdom": "^16.2.15",
"@types/mocha": "^9.1.1", "@types/mocha": "^9.1.1",
"@types/node": "^12.20.55", "@types/node": "^12.20.55",
"dts-bundle": "^0.7.3", "dts-bundle": "^0.7.3",
"eslint": "^8.31.0", "eslint": "^8.50.0",
"js-tokens": "^8.0.1", "js-tokens": "^8.0.2",
"jsdom": "^19.0.0", "jsdom": "^19.0.0",
"mocha": "^9.2.2", "mocha": "^9.2.2",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",

View file

@ -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. * If set to `false`, the response body will not be parsed and will be returned as a stream.
*/ */
parseSuccessResponseBody?: boolean; parseSuccessResponseBody?: boolean;
redirect?: "follow" | "error" | "manual";
[option: string]: any; [option: string]: any;
}; };

View file

@ -1 +1 @@
export declare const VERSION = "13.1.0"; export declare const VERSION = "13.4.0";

View file

@ -10,12 +10,12 @@
"access": "public", "access": "public",
"provenance": true "provenance": true
}, },
"version": "21.2.0", "version": "22.0.1",
"main": "", "main": "",
"types": "types.d.ts", "types": "types.d.ts",
"author": "Gregor Martynus (https://twitter.com/gr2m)", "author": "Gregor Martynus (https://twitter.com/gr2m)",
"license": "MIT", "license": "MIT",
"octokit": { "octokit": {
"openapi-version": "15.0.0" "openapi-version": "16.1.0"
} }
} }

View file

@ -678,6 +678,17 @@ export interface paths {
* *
* To see the full details about an organization, the authenticated user must be an organization owner. * 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. * 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. * 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. * 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. * 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. * 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. */ /** @description Whether the property is required. */
required?: boolean; required?: boolean;
/** @description Default value of the property */ /** @description Default value of the property */
default_value?: string | null; default_value?: string | string[] | null;
/** @description Short description of the property */ /** @description Short description of the property */
description?: string | null; description?: string | null;
/** /**
@ -15873,20 +15895,20 @@ export interface components {
}; };
}; };
/** /**
* CodeScanningThreshold * CodeScanningTool
* @description A tool and its thresholds. * @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} * @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} * @enum {string}
*/ */
security_alerts: security_alerts_threshold:
| "none" | "none"
| "critical" | "critical"
| "high_or_higher" | "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. * 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. * 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. * 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. * 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. * 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. * 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; location?: string;
/** @description The shorthand name of the company. */ /** @description The shorthand name of the company. */
name?: string; name?: string;
/** @description The description of the company. */ /** @description The description of the company. The maximum size is 160 characters. */
description?: string; description?: string;
/** @description Whether an organization can use organization projects. */ /** @description Whether an organization can use organization projects. */
has_organization_projects?: boolean; has_organization_projects?: boolean;
@ -95870,7 +95914,7 @@ export interface operations {
/** @description Whether the property is required. */ /** @description Whether the property is required. */
required?: boolean; required?: boolean;
/** @description Default value of the property */ /** @description Default value of the property */
default_value?: string | null; default_value?: string | string[] | null;
/** @description Short description of the property */ /** @description Short description of the property */
description?: string | null; description?: string | null;
/** /**

View file

@ -1,13 +1,13 @@
{ {
"name": "@octokit/types", "name": "@octokit/types",
"version": "13.1.0", "version": "13.4.0",
"publishConfig": { "publishConfig": {
"access": "public", "access": "public",
"provenance": true "provenance": true
}, },
"description": "Shared TypeScript definitions for Octokit projects", "description": "Shared TypeScript definitions for Octokit projects",
"dependencies": { "dependencies": {
"@octokit/openapi-types": "^21.0.0" "@octokit/openapi-types": "^22.0.1"
}, },
"repository": "github:octokit/types.ts", "repository": "github:octokit/types.ts",
"keywords": [ "keywords": [
@ -37,7 +37,7 @@
"typescript": "^5.0.0" "typescript": "^5.0.0"
}, },
"octokit": { "octokit": {
"openapi-version": "14.1.0" "openapi-version": "16.1.0"
}, },
"files": [ "files": [
"dist-types/**" "dist-types/**"

View file

@ -23,7 +23,9 @@ exports.default = (style) => ({
'no-dupe-keys': 'off', // ts(1117) 'no-dupe-keys': 'off', // ts(1117)
'no-func-assign': 'off', // ts(2630) 'no-func-assign': 'off', // ts(2630)
'no-import-assign': 'off', // ts(2632) & ts(2540) '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-symbol': 'off', // ts(7009)
'no-new-native-nonconstructor': 'off', // ts(7009)
'no-obj-calls': 'off', // ts(2349) 'no-obj-calls': 'off', // ts(2349)
'no-redeclare': 'off', // ts(2451) 'no-redeclare': 'off', // ts(2451)
'no-setter-return': 'off', // ts(2408) 'no-setter-return': 'off', // ts(2408)

View file

@ -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"} {"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"}

View file

@ -41,9 +41,7 @@ if (false) {
console.log('hello'); console.log('hello');
} }
if (false) { if (false) {
/* /* @ts-ignore: Unreachable code error */
@ts-ignore: Unreachable code error
*/
console.log('hello'); console.log('hello');
} }
``` ```
@ -90,9 +88,7 @@ if (false) {
console.log('hello'); console.log('hello');
} }
if (false) { if (false) {
/* /* @ts-expect-error: Unreachable code error */
@ts-expect-error: Unreachable code error
*/
console.log('hello'); console.log('hello');
} }
``` ```

View file

@ -70,7 +70,7 @@ Example of incorrect code when `ignoreClassesThatImplementAnInterface` is set to
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">
```ts ```ts option='{ "ignoreClassesThatImplementAnInterface": "public-fields" }'
class X implements Y { class X implements Y {
method() {} method() {}
property = () => {}; property = () => {};
@ -86,7 +86,7 @@ class X implements Y {
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct">
```ts ```ts option='{ "ignoreClassesThatImplementAnInterface": "public-fields" }'
class X implements Y { class X implements Y {
method() {} method() {}
property = () => {}; property = () => {};

View file

@ -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 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<void>`. This version adds support for functions that return `void` or `Promise<void>`.
:::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.
:::
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">

View file

@ -85,24 +85,6 @@ export type { T };
export { x }; export { x };
``` ```
<Tabs>
<TabItem value="❌ Incorrect">
```ts option='{ "fixMixedExportsWithInlineTypeSpecifier": true }'
export { Button } from 'some-library';
export type { ButtonProps } from 'some-library';
```
</TabItem>
<TabItem value="✅ Correct">
```ts option='{ "fixMixedExportsWithInlineTypeSpecifier": true }'
export { Button, type ButtonProps } from 'some-library';
```
</TabItem>
</Tabs>
## When Not To Use It ## When Not To Use It
If you use `--isolatedModules` the compiler would error if a type is not re-exported using `export type`. If you use `--isolatedModules` the compiler would error if a type is not re-exported using `export type`.

View file

@ -16,8 +16,6 @@ It adds support for optional parameters.
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">
```ts ```ts
/* eslint @typescript-eslint/default-param-last: "error" */
function f(a = 0, b: number) {} function f(a = 0, b: number) {}
function f(a: number, b = 0, c: number) {} function f(a: number, b = 0, c: number) {}
function f(a: number, b?: number, c: number) {} function f(a: number, b?: number, c: number) {}
@ -39,8 +37,6 @@ class Foo {
<TabItem value="✅ Correct"> <TabItem value="✅ Correct">
```ts ```ts
/* eslint @typescript-eslint/default-param-last: "error" */
function f(a = 0) {} function f(a = 0) {}
function f(a: number, b = 0) {} function f(a: number, b = 0) {}
function f(a: number, b?: number) {} function f(a: number, b?: number) {}

View file

@ -97,20 +97,20 @@ If you are working on a codebase within which you lint non-TypeScript code (i.e.
### `allowArgumentsExplicitlyTypedAsAny` ### `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.
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect for `allowArgumentsExplicitlyTypedAsAny: false`">
```ts option='{ "allowArgumentsExplicitlyTypedAsAny": false }' ```ts option='{ "allowArgumentsExplicitlyTypedAsAny": false }'
export const func = (value: any): number => value + 1; export const func = (value: any): number => value + 1;
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct for `allowArgumentsExplicitlyTypedAsAny: true`">
```ts option='{ "allowArgumentsExplicitlyTypedAsAny": false }' ```ts option='{ "allowArgumentsExplicitlyTypedAsAny": true }'
export const func = (value: number): number => value + 1; export const func = (value: any): number => value + 1;
``` ```
</TabItem> </TabItem>
@ -118,12 +118,12 @@ export const func = (value: number): number => value + 1;
### `allowDirectConstAssertionInArrowFunctions` ### `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.
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect for `allowDirectConstAssertionInArrowFunctions: false`">
```ts option='{ "allowArgumentsExplicitlyTypedAsAny": false }' ```ts option='{ "allowDirectConstAssertionInArrowFunctions": false }'
export const func = (value: number) => ({ type: 'X', value }); export const func = (value: number) => ({ type: 'X', value });
export const foo = () => ({ export const foo = () => ({
bar: true, bar: true,
@ -132,9 +132,9 @@ export const bar = () => 1;
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct for `allowDirectConstAssertionInArrowFunctions: true`">
```ts option='{ "allowArgumentsExplicitlyTypedAsAny": false }' ```ts option='{ "allowDirectConstAssertionInArrowFunctions": true }'
export const func = (value: number) => ({ type: 'X', value }) as const; export const func = (value: number) => ({ type: 'X', value }) as const;
export const foo = () => export const foo = () =>
({ ({
@ -163,10 +163,10 @@ You may pass function/method names you would like this rule to ignore, like so:
### `allowHigherOrderFunctions` ### `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.
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect for `allowHigherOrderFunctions: false`">
```ts option='{ "allowHigherOrderFunctions": false }' ```ts option='{ "allowHigherOrderFunctions": false }'
export const arrowFn = () => () => {}; export const arrowFn = () => () => {};
@ -181,9 +181,9 @@ export function foo(outer: string) {
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct for `allowHigherOrderFunctions: true`">
```ts option='{ "allowHigherOrderFunctions": false }' ```ts option='{ "allowHigherOrderFunctions": true }'
export const arrowFn = () => (): void => {}; export const arrowFn = () => (): void => {};
export function fn() { export function fn() {
@ -200,10 +200,10 @@ export function foo(outer: string) {
### `allowTypedFunctionExpressions` ### `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.
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect for `allowTypedFunctionExpressions: false`">
```ts option='{ "allowTypedFunctionExpressions": false }' ```ts option='{ "allowTypedFunctionExpressions": false }'
export let arrowFn = () => 'test'; export let arrowFn = () => 'test';
@ -220,9 +220,9 @@ export const foo = bar => {};
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct for `allowTypedFunctionExpressions: true`">
```ts option='{ "allowTypedFunctionExpressions": false }' ```ts option='{ "allowTypedFunctionExpressions": true }'
type FuncType = () => string; type FuncType = () => string;
export let arrowFn: FuncType = () => 'test'; export let arrowFn: FuncType = () => 'test';

View file

@ -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. 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. 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 ## Options
```ts ```ts
@ -1002,9 +1011,9 @@ interface Foo {
b(): void; b(): void;
a: boolean; a: boolean;
[a: string]: number; // Order doesn't matter (no sortable identifier) [a: string]: number;
new (): Bar; // Order doesn't matter (no sortable identifier) new (): Bar;
(): Baz; // Order doesn't matter (no sortable identifier) (): Baz;
} }
``` ```
@ -1013,12 +1022,12 @@ interface Foo {
```ts option='{ "default": { "memberTypes": "never", "order": "alphabetically" } }' ```ts option='{ "default": { "memberTypes": "never", "order": "alphabetically" } }'
interface Foo { interface Foo {
[a: string]: number;
a: boolean; a: boolean;
b(): void; b(): void;
[a: string]: number; // Order doesn't matter (no sortable identifier) (): Baz;
new (): Bar; // Order doesn't matter (no sortable identifier) new (): Bar;
(): Baz; // Order doesn't matter (no sortable identifier)
} }
``` ```

View file

@ -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. 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`. 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 ## Examples
This rule allows you to enforce conventions for any identifier, using granular selectors to create a fine-grained style guide. This rule allows you to enforce conventions for any identifier, using granular selectors to create a fine-grained style guide.

View file

@ -293,7 +293,7 @@ class NotEmptyClass {
### `allowWithDecorator` ### `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.
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">
@ -308,8 +308,8 @@ class Constants {
<TabItem value="✅ Correct"> <TabItem value="✅ Correct">
```ts option='{ "allowWithDecorator": true }' ```ts option='{ "allowWithDecorator": true }'
@logOnRead()
class Constants { class Constants {
@logOnRead()
static readonly version = 42; static readonly version = 42;
} }
``` ```

View file

@ -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 }`: Examples of **correct** code for this rule with `{ ignoreIIFE: true }`:
<!-- prettier-ignore --> {/* prettier-ignore */}
```ts option='{ "ignoreIIFE": true }' showPlaygroundButton ```ts option='{ "ignoreIIFE": true }' showPlaygroundButton
await (async function () { await (async function () {
await res(1); await res(1);

View file

@ -36,8 +36,6 @@ This rule aims to eliminate implied `eval()` through the use of `new Function()`
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">
```ts ```ts
/* eslint @typescript-eslint/no-implied-eval: "error" */
setTimeout('alert(`Hi!`);', 100); setTimeout('alert(`Hi!`);', 100);
setInterval('alert(`Hi!`);', 100); setInterval('alert(`Hi!`);', 100);
@ -65,8 +63,6 @@ const fn = new Function('a', 'b', 'return a + b');
<TabItem value="✅ Correct"> <TabItem value="✅ Correct">
```ts ```ts
/* eslint @typescript-eslint/no-implied-eval: "error" */
setTimeout(function () { setTimeout(function () {
alert('Hi!'); alert('Hi!');
}, 100); }, 100);

View file

@ -44,7 +44,7 @@ function bar(x: number) {
void x; // discarding a number void x; // discarding a number
return 2; return 2;
} }
void bar(); // discarding a number void bar(1); // discarding a number
``` ```
</TabItem> </TabItem>

View file

@ -45,14 +45,14 @@ With `{allow: ['/package\\.json$']}`:
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">
```ts ```ts option='{ "allow": ["/package.json$"] }'
console.log(require('../data.json').version); console.log(require('../data.json').version);
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct">
```ts ```ts option='{ "allow": ["/package.json$"] }'
console.log(require('../package.json').version); console.log(require('../package.json').version);
``` ```

View file

@ -24,17 +24,17 @@ const bar = foo!;
``` ```
```ts ```ts
const foo = <3>3; const foo = <number>(3 + 5);
``` ```
```ts ```ts
type Foo = 3; type Foo = number;
const foo = <Foo>3; const foo = <Foo>(3 + 5);
``` ```
```ts ```ts
type Foo = 3; type Foo = number;
const foo = 3 as Foo; const foo = (3 + 5) as Foo;
``` ```
```ts ```ts

View file

@ -45,14 +45,14 @@ With `{allow: ['/package\\.json$']}`:
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">
```ts ```ts option='{ "allow": ["/package.json$"] }'
const foo = require('../data.json'); const foo = require('../data.json');
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct">
```ts ```ts option='{ "allow": ["/package.json$"] }'
const foo = require('../package.json'); const foo = require('../package.json');
``` ```

View file

@ -23,7 +23,7 @@ This rule reports when an `as` cast is doing the same job as a `!` would, and su
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">
```ts ```ts
const maybe = Math.random() > 0.5 ? '' : undefined; const maybe: string | undefined = Math.random() > 0.5 ? '' : undefined;
const definitely = maybe as string; const definitely = maybe as string;
const alsoDefinitely = <string>maybe; const alsoDefinitely = <string>maybe;
@ -33,7 +33,7 @@ const alsoDefinitely = <string>maybe;
<TabItem value="✅ Correct"> <TabItem value="✅ Correct">
```ts ```ts
const maybe = Math.random() > 0.5 ? '' : undefined; const maybe: string | undefined = Math.random() > 0.5 ? '' : undefined;
const definitely = maybe!; const definitely = maybe!;
const alsoDefinitely = maybe!; const alsoDefinitely = maybe!;

View file

@ -39,10 +39,10 @@ throw `${err}`;
const err = ''; const err = '';
throw err; throw err;
function err() { function getError() {
return ''; return '';
} }
throw err(); throw getError();
const foo = { const foo = {
bar: '', bar: '',
@ -70,10 +70,10 @@ try {
const err = new Error(); const err = new Error();
throw err; throw err;
function err() { function getError() {
return new Error(); return new Error();
} }
throw err(); throw getError();
const foo = { const foo = {
bar: new Error(), bar: new Error(),

View file

@ -87,14 +87,14 @@ Examples with `{ enforceForDeclarationWithTypeAnnotation: true }`:
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">
```ts ```ts option='{ "object": true }, { "enforceForDeclarationWithTypeAnnotation": true }'
const x: string = obj.x; const x: string = obj.x;
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct">
```ts ```ts option='{ "object": true }, { "enforceForDeclarationWithTypeAnnotation": true }'
const { x }: { x: string } = obj; const { x }: { x: string } = obj;
``` ```

View file

@ -102,8 +102,7 @@ thing && thing.toString();
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct for `checkAny: false`">
for `checkAny: false`
```ts option='{ "checkAny": false }' ```ts option='{ "checkAny": false }'
declare const thing: any; declare const thing: any;
@ -129,8 +128,7 @@ thing && thing.toString();
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct for `checkUnknown: false`">
for `checkUnknown: false`
```ts option='{ "checkUnknown": false }' ```ts option='{ "checkUnknown": false }'
declare const thing: unknown; declare const thing: unknown;
@ -156,8 +154,7 @@ thing && thing.toString();
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct for `checkString: false`">
for `checkString: false`
```ts option='{ "checkString": false }' ```ts option='{ "checkString": false }'
declare const thing: string; declare const thing: string;
@ -183,8 +180,7 @@ thing && thing.toString();
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct for `checkNumber: false`">
for `checkNumber: false`
```ts option='{ "checkNumber": false }' ```ts option='{ "checkNumber": false }'
declare const thing: number; 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. 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.
:::
<Tabs> <Tabs>
<TabItem value="❌ Incorrect for `checkBoolean: true`"> <TabItem value="❌ Incorrect for `checkBoolean: true`">
```ts option='{ "checkBoolean": true }' ```ts option='{ "checkBoolean": true }'
declare const thing: boolean; declare const thing: true;
thing && thing.toString(); thing && thing.toString();
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct for `checkBoolean: false`">
for `checkBoolean: false`
```ts option='{ "checkBoolean": false }' ```ts option='{ "checkBoolean": false }'
declare const thing: boolean; declare const thing: true;
thing && thing.toString(); thing && thing.toString();
``` ```
@ -237,8 +246,7 @@ thing && thing.toString();
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct for `checkBigInt: false`">
for `checkBigInt: false`
```ts option='{ "checkBigInt": false }' ```ts option='{ "checkBigInt": false }'
declare const thing: bigint; declare const thing: bigint;
@ -257,14 +265,13 @@ When this option is `true` the rule will skip operands that are not typed with `
<TabItem value="❌ Incorrect for `requireNullish: true`"> <TabItem value="❌ Incorrect for `requireNullish: true`">
```ts option='{ "requireNullish": true }' ```ts option='{ "requireNullish": true }' skipValidation
declare const thing1: string | null; declare const thing1: string | null;
thing1 && thing1.toString(); thing1 && thing1.toString();
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct for `requireNullish: true`">
for `requireNullish: true`
```ts option='{ "requireNullish": true }' ```ts option='{ "requireNullish": true }'
declare const thing1: string | null; declare const thing1: string | null;

View file

@ -303,7 +303,7 @@ Examples of code for this rule with `{ignoreInferredTypes: true}`:
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">
```ts option='{ "ignoreInferredTypes": true }' ```ts option='{ "ignoreInferredTypes": true }' skipValidation
import { acceptsCallback, CallbackOptions } from 'external-dependency'; import { acceptsCallback, CallbackOptions } from 'external-dependency';
acceptsCallback((options: CallbackOptions) => {}); acceptsCallback((options: CallbackOptions) => {});
@ -336,7 +336,7 @@ acceptsCallback(options => {});
<details> <details>
<summary>external-dependency.d.ts</summary> <summary>external-dependency.d.ts</summary>
```ts option='{ "ignoreInferredTypes": true }' ```ts option='{ "ignoreInferredTypes": true }' skipValidation
export interface CallbackOptions { export interface CallbackOptions {
prop: string; prop: string;
} }

View file

@ -101,7 +101,7 @@ Examples of code with `{ "allowedPromiseNames": ["Bluebird"] }`:
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">
```ts option='{ "allowedPromiseNames": ["Bluebird"] }' ```ts option='{ "allowedPromiseNames": ["Bluebird"] }'
import { Bluebird } from 'bluebird'; class Bluebird {}
const returnsBluebird = () => new Bluebird(() => {}); const returnsBluebird = () => new Bluebird(() => {});
``` ```
@ -110,7 +110,7 @@ const returnsBluebird = () => new Bluebird(() => {});
<TabItem value="✅ Correct"> <TabItem value="✅ Correct">
```ts option='{ "allowedPromiseNames": ["Bluebird"] }' ```ts option='{ "allowedPromiseNames": ["Bluebird"] }'
import { Bluebird } from 'bluebird'; class Bluebird {}
const returnsBluebird = async () => new Bluebird(() => {}); const returnsBluebird = async () => new Bluebird(() => {});
``` ```

View file

@ -196,23 +196,23 @@ Examples of code for this rule with `{ skipCompoundAssignments: false }`:
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">
```ts option='{ "skipCompoundAssignments": true }' ```ts option='{ "skipCompoundAssignments": false }'
let foo: string | undefined; let foo: bigint = 0n;
foo += 'some data'; foo += 1;
let bar: string = ''; let bar: number[] = [1];
bar += 0; bar += 1;
``` ```
</TabItem> </TabItem>
<TabItem value="✅ Correct"> <TabItem value="✅ Correct">
```ts option='{ "skipCompoundAssignments": true }' ```ts option='{ "skipCompoundAssignments": false }'
let foo: number = 0; let foo: bigint = 0n;
foo += 1; foo += 1n;
let bar = ''; let bar: number = 1;
bar += 'test'; bar += 1;
``` ```
</TabItem> </TabItem>

View file

@ -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. > 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 ## Examples
<Tabs> <Tabs>

View file

@ -15,7 +15,7 @@ It adds support for interfaces and enums.
<Tabs> <Tabs>
<TabItem value="❌ Incorrect"> <TabItem value="❌ Incorrect">
<!-- prettier-ignore --> {/* prettier-ignore */}
```ts ```ts
enum Breakpoint{ enum Breakpoint{
Large, Large,

View file

@ -61,12 +61,6 @@ while (obj) {
<TabItem value="✅ Correct"> <TabItem value="✅ Correct">
```tsx ```tsx
// Using logical operator short-circuiting is allowed
const Component = () => {
const entry = map.get('foo') || {};
return entry && <p>Name: {entry.name}</p>;
};
// nullable values should be checked explicitly against null or undefined // nullable values should be checked explicitly against null or undefined
let num: number | undefined = 0; let num: number | undefined = 0;
if (num != null) { if (num != null) {

View file

@ -257,7 +257,7 @@ class Foo {
} }
type Foo = { type Foo = {
name: (name : string)=>string; name : (name : string)=>string;
} }
type Foo = ()=>{}; type Foo = ()=>{};

View file

@ -1,6 +1,6 @@
{ {
"name": "@typescript-eslint/eslint-plugin", "name": "@typescript-eslint/eslint-plugin",
"version": "7.5.0", "version": "7.7.0",
"description": "TypeScript plugin for ESLint", "description": "TypeScript plugin for ESLint",
"files": [ "files": [
"dist", "dist",
@ -61,24 +61,25 @@
"typecheck": "tsc -p tsconfig.json --noEmit" "typecheck": "tsc -p tsconfig.json --noEmit"
}, },
"dependencies": { "dependencies": {
"@eslint-community/regexpp": "^4.5.1", "@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "7.5.0", "@typescript-eslint/scope-manager": "7.7.0",
"@typescript-eslint/type-utils": "7.5.0", "@typescript-eslint/type-utils": "7.7.0",
"@typescript-eslint/utils": "7.5.0", "@typescript-eslint/utils": "7.7.0",
"@typescript-eslint/visitor-keys": "7.5.0", "@typescript-eslint/visitor-keys": "7.7.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"graphemer": "^1.4.0", "graphemer": "^1.4.0",
"ignore": "^5.2.4", "ignore": "^5.3.1",
"natural-compare": "^1.4.0", "natural-compare": "^1.4.0",
"semver": "^7.5.4", "semver": "^7.6.0",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.3.0"
}, },
"devDependencies": { "devDependencies": {
"@types/debug": "*", "@types/debug": "*",
"@types/marked": "*", "@types/marked": "*",
"@types/mdast": "^4.0.3",
"@types/natural-compare": "*", "@types/natural-compare": "*",
"@typescript-eslint/rule-schema-to-typescript-types": "7.5.0", "@typescript-eslint/rule-schema-to-typescript-types": "7.7.0",
"@typescript-eslint/rule-tester": "7.5.0", "@typescript-eslint/rule-tester": "7.7.0",
"ajv": "^6.12.6", "ajv": "^6.12.6",
"chalk": "^5.3.0", "chalk": "^5.3.0",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
@ -89,12 +90,16 @@
"jest-specific-snapshot": "^8.0.0", "jest-specific-snapshot": "^8.0.0",
"json-schema": "*", "json-schema": "*",
"markdown-table": "^3.0.3", "markdown-table": "^3.0.3",
"marked": "^5.1.1", "marked": "^5.1.2",
"prettier": "^3.0.3", "mdast-util-from-markdown": "^2.0.0",
"mdast-util-mdx": "^3.0.0",
"micromark-extension-mdxjs": "^3.0.0",
"prettier": "^3.2.5",
"rimraf": "*", "rimraf": "*",
"title-case": "^3.0.3", "title-case": "^3.0.3",
"tsx": "*", "tsx": "*",
"typescript": "*" "typescript": "*",
"unist-util-visit": "^5.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@typescript-eslint/parser": "^7.0.0", "@typescript-eslint/parser": "^7.0.0",

View file

@ -1,6 +1,6 @@
{ {
"name": "@typescript-eslint/parser", "name": "@typescript-eslint/parser",
"version": "7.5.0", "version": "7.7.0",
"description": "An ESLint custom parser which leverages TypeScript ESTree", "description": "An ESLint custom parser which leverages TypeScript ESTree",
"files": [ "files": [
"dist", "dist",
@ -52,10 +52,10 @@
"eslint": "^8.56.0" "eslint": "^8.56.0"
}, },
"dependencies": { "dependencies": {
"@typescript-eslint/scope-manager": "7.5.0", "@typescript-eslint/scope-manager": "7.7.0",
"@typescript-eslint/types": "7.5.0", "@typescript-eslint/types": "7.7.0",
"@typescript-eslint/typescript-estree": "7.5.0", "@typescript-eslint/typescript-estree": "7.7.0",
"@typescript-eslint/visitor-keys": "7.5.0", "@typescript-eslint/visitor-keys": "7.7.0",
"debug": "^4.3.4" "debug": "^4.3.4"
}, },
"devDependencies": { "devDependencies": {
@ -63,7 +63,7 @@
"downlevel-dts": "*", "downlevel-dts": "*",
"glob": "*", "glob": "*",
"jest": "29.7.0", "jest": "29.7.0",
"prettier": "^3.0.3", "prettier": "^3.2.5",
"rimraf": "*", "rimraf": "*",
"typescript": "*" "typescript": "*"
}, },

View file

@ -1,6 +1,6 @@
{ {
"name": "@typescript-eslint/scope-manager", "name": "@typescript-eslint/scope-manager",
"version": "7.5.0", "version": "7.7.0",
"description": "TypeScript scope analyser for ESLint", "description": "TypeScript scope analyser for ESLint",
"files": [ "files": [
"dist", "dist",
@ -46,12 +46,12 @@
"typecheck": "npx nx typecheck" "typecheck": "npx nx typecheck"
}, },
"dependencies": { "dependencies": {
"@typescript-eslint/types": "7.5.0", "@typescript-eslint/types": "7.7.0",
"@typescript-eslint/visitor-keys": "7.5.0" "@typescript-eslint/visitor-keys": "7.7.0"
}, },
"devDependencies": { "devDependencies": {
"@types/glob": "*", "@types/glob": "*",
"@typescript-eslint/typescript-estree": "7.5.0", "@typescript-eslint/typescript-estree": "7.7.0",
"glob": "*", "glob": "*",
"jest-specific-snapshot": "*", "jest-specific-snapshot": "*",
"make-dir": "*", "make-dir": "*",

View file

@ -1,6 +1,6 @@
{ {
"name": "@typescript-eslint/type-utils", "name": "@typescript-eslint/type-utils",
"version": "7.5.0", "version": "7.7.0",
"description": "Type utilities for working with TypeScript + ESLint together", "description": "Type utilities for working with TypeScript + ESLint together",
"files": [ "files": [
"dist", "dist",
@ -46,17 +46,17 @@
"typecheck": "tsc -p tsconfig.json --noEmit" "typecheck": "tsc -p tsconfig.json --noEmit"
}, },
"dependencies": { "dependencies": {
"@typescript-eslint/typescript-estree": "7.5.0", "@typescript-eslint/typescript-estree": "7.7.0",
"@typescript-eslint/utils": "7.5.0", "@typescript-eslint/utils": "7.7.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.3.0"
}, },
"devDependencies": { "devDependencies": {
"@typescript-eslint/parser": "7.5.0", "@typescript-eslint/parser": "7.7.0",
"ajv": "^6.10.0", "ajv": "^6.12.6",
"downlevel-dts": "*", "downlevel-dts": "*",
"jest": "29.7.0", "jest": "29.7.0",
"prettier": "^3.0.3", "prettier": "^3.2.5",
"rimraf": "*", "rimraf": "*",
"typescript": "*" "typescript": "*"
}, },

View file

@ -2,16 +2,16 @@ import type { Program } from 'typescript';
import type { Lib } from './lib'; import type { Lib } from './lib';
type DebugLevel = ('eslint' | 'typescript-eslint' | 'typescript')[] | boolean; type DebugLevel = ('eslint' | 'typescript-eslint' | 'typescript')[] | boolean;
type CacheDurationSeconds = number | 'Infinity'; 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 SourceTypeClassic = 'module' | 'script';
type SourceType = SourceTypeClassic | 'commonjs'; type SourceType = SourceTypeClassic | 'commonjs';
type JSDocParsingMode = 'all' | 'none' | 'type-info'; type JSDocParsingMode = 'all' | 'none' | 'type-info';
interface ParserOptions { interface ParserOptions {
ecmaFeatures?: { ecmaFeatures?: {
globalReturn?: boolean; globalReturn?: boolean | undefined;
jsx?: boolean; jsx?: boolean | undefined;
[key: string]: unknown; [key: string]: unknown;
}; } | undefined;
ecmaVersion?: EcmaVersion; ecmaVersion?: EcmaVersion;
jsxPragma?: string | null; jsxPragma?: string | null;
jsxFragmentName?: string | null; jsxFragmentName?: string | null;
@ -32,7 +32,7 @@ interface ParserOptions {
project?: string[] | string | boolean | null; project?: string[] | string | boolean | null;
projectFolderIgnoreList?: (RegExp | string)[]; projectFolderIgnoreList?: (RegExp | string)[];
range?: boolean; range?: boolean;
sourceType?: SourceType; sourceType?: SourceType | undefined;
tokens?: boolean; tokens?: boolean;
tsconfigRootDir?: string; tsconfigRootDir?: string;
warnOnUnsupportedTypeScriptVersion?: boolean; warnOnUnsupportedTypeScriptVersion?: boolean;

View file

@ -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"} {"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"}

View file

@ -1,6 +1,6 @@
{ {
"name": "@typescript-eslint/types", "name": "@typescript-eslint/types",
"version": "7.5.0", "version": "7.7.0",
"description": "Types for the TypeScript-ESTree AST spec", "description": "Types for the TypeScript-ESTree AST spec",
"files": [ "files": [
"dist", "dist",
@ -68,7 +68,7 @@
}, },
"devDependencies": { "devDependencies": {
"downlevel-dts": "*", "downlevel-dts": "*",
"prettier": "^3.0.3", "prettier": "^3.2.5",
"rimraf": "*", "rimraf": "*",
"tsx": "*", "tsx": "*",
"typescript": "*" "typescript": "*"

View file

@ -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"} {"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"}

View file

@ -1,6 +1,11 @@
"use strict"; "use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.createProjectService = void 0; 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 doNothing = () => { };
const createStubFileWatcher = () => ({ const createStubFileWatcher = () => ({
close: doNothing, close: doNothing,
@ -41,6 +46,23 @@ function createProjectService(options, jsDocParsingMode) {
session: undefined, session: undefined,
jsDocParsingMode, 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 { return {
allowDefaultProjectForFiles: typeof options === 'object' allowDefaultProjectForFiles: typeof options === 'object'
? options.allowDefaultProjectForFiles ? options.allowDefaultProjectForFiles

View file

@ -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"} {"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"}

View file

@ -79,9 +79,13 @@ interface ParseOptions {
*/ */
export interface ProjectServiceOptions { 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[]; allowDefaultProjectForFiles?: string[];
/**
* Path to a TSConfig to use instead of TypeScript's default project configuration.
*/
defaultProject?: string;
} }
interface ParseAndGenerateServicesOptions extends ParseOptions { interface ParseAndGenerateServicesOptions extends ParseOptions {
/** /**
@ -170,6 +174,9 @@ interface ParseAndGenerateServicesOptions extends ParseOptions {
* *
* When allowAutomaticSingleRunInference is enabled, we will use common heuristics to infer * When allowAutomaticSingleRunInference is enabled, we will use common heuristics to infer
* whether or not ESLint is being used as part of a single run. * 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; allowAutomaticSingleRunInference?: boolean;
/** /**

View file

@ -1 +1 @@
{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"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"} {"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"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"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -14,6 +14,7 @@ export declare class AST {
clone(parent: AST): AST; clone(parent: AST): AST;
static fromGlob(pattern: string, options?: MinimatchOptions): AST; static fromGlob(pattern: string, options?: MinimatchOptions): AST;
toMMPattern(): MMRegExp | string; toMMPattern(): MMRegExp | string;
get options(): MinimatchOptions;
toRegExpSource(allowDot?: boolean): [re: string, body: string, hasMagic: boolean, uflag: boolean]; toRegExpSource(allowDot?: boolean): [re: string, body: string, hasMagic: boolean, uflag: boolean];
} }
//# sourceMappingURL=ast.d.ts.map //# sourceMappingURL=ast.d.ts.map

View file

@ -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"} {"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"}

View file

@ -338,6 +338,9 @@ class AST {
_glob: glob, _glob: glob,
}); });
} }
get options() {
return this.#options;
}
// returns the string match, the regexp source, whether there's magic // returns the string match, the regexp source, whether there's magic
// in the regexp (so a regular expression is required) and whether or // in the regexp (so a regular expression is required) and whether or
// not the uflag is needed for the regular expression (for posix classes) // not the uflag is needed for the regular expression (for posix classes)

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}

View file

@ -344,6 +344,7 @@ class Minimatch {
globParts = this.levelOneOptimize(globParts); globParts = this.levelOneOptimize(globParts);
} }
else { else {
// just collapse multiple ** portions into one
globParts = this.adjascentGlobstarOptimize(globParts); globParts = this.adjascentGlobstarOptimize(globParts);
} }
return globParts; return globParts;
@ -833,7 +834,11 @@ class Minimatch {
fastTest = dotStarTest; fastTest = dotStarTest;
} }
const re = ast_js_1.AST.fromGlob(pattern, this.options).toMMPattern(); 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() { makeRe() {
if (this.regexp || this.regexp === false) if (this.regexp || this.regexp === false)

File diff suppressed because one or more lines are too long

View file

@ -14,6 +14,7 @@ export declare class AST {
clone(parent: AST): AST; clone(parent: AST): AST;
static fromGlob(pattern: string, options?: MinimatchOptions): AST; static fromGlob(pattern: string, options?: MinimatchOptions): AST;
toMMPattern(): MMRegExp | string; toMMPattern(): MMRegExp | string;
get options(): MinimatchOptions;
toRegExpSource(allowDot?: boolean): [re: string, body: string, hasMagic: boolean, uflag: boolean]; toRegExpSource(allowDot?: boolean): [re: string, body: string, hasMagic: boolean, uflag: boolean];
} }
//# sourceMappingURL=ast.d.ts.map //# sourceMappingURL=ast.d.ts.map

View file

@ -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"} {"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"}

View file

@ -335,6 +335,9 @@ export class AST {
_glob: glob, _glob: glob,
}); });
} }
get options() {
return this.#options;
}
// returns the string match, the regexp source, whether there's magic // returns the string match, the regexp source, whether there's magic
// in the regexp (so a regular expression is required) and whether or // in the regexp (so a regular expression is required) and whether or
// not the uflag is needed for the regular expression (for posix classes) // not the uflag is needed for the regular expression (for posix classes)

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAe,MAAM,UAAU,CAAA;AAI3C,KAAK,QAAQ,GACT,KAAK,GACL,SAAS,GACT,QAAQ,GACR,SAAS,GACT,OAAO,GACP,OAAO,GACP,SAAS,GACT,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,CAAA;AAEZ,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,eAAO,MAAM,SAAS;QACjB,MAAM,WACA,MAAM,YACN,gBAAgB;;;sBAuGf,MAAM,YAAW,gBAAgB,SACvC,MAAM;oBAOkB,gBAAgB,KAAG,gBAAgB;2BA6EtD,MAAM,YACN,gBAAgB;sBA2BK,MAAM,YAAW,gBAAgB;kBAKzD,MAAM,EAAE,WACL,MAAM,YACN,gBAAgB;;;;;CArN1B,CAAA;AA+DD,KAAK,GAAG,GAAG,IAAI,GAAG,GAAG,CAAA;AAOrB,eAAO,MAAM,GAAG,KAAgE,CAAA;AAGhF,eAAO,MAAM,QAAQ,eAAwB,CAAA;AAmB7C,eAAO,MAAM,MAAM,YACP,MAAM,YAAW,gBAAgB,SACvC,MAAM,YACsB,CAAA;AAMlC,eAAO,MAAM,QAAQ,QAAS,gBAAgB,KAAG,gBA+DhD,CAAA;AAaD,eAAO,MAAM,WAAW,YACb,MAAM,YACN,gBAAgB,aAY1B,CAAA;AAeD,eAAO,MAAM,MAAM,YAAa,MAAM,YAAW,gBAAgB,qBACvB,CAAA;AAG1C,eAAO,MAAM,KAAK,SACV,MAAM,EAAE,WACL,MAAM,YACN,gBAAgB,aAQ1B,CAAA;AAQD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,QAAQ,CAAA;AACrE,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG,KAAK,CAAA;AAErD,qBAAa,SAAS;IACpB,OAAO,EAAE,gBAAgB,CAAA;IACzB,GAAG,EAAE,mBAAmB,EAAE,EAAE,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IAEf,oBAAoB,EAAE,OAAO,CAAA;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,uBAAuB,EAAE,OAAO,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAA;IACrB,MAAM,EAAE,OAAO,CAAA;IAEf,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,kBAAkB,EAAE,OAAO,CAAA;IAE3B,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAA;gBACnB,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAkC3D,QAAQ,IAAI,OAAO;IAYnB,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE;IAEjB,IAAI;IA0FJ,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE;IA6BhC,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE;IAiB/C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE;IAoBtC,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IA6D7C,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE;IA0F1C,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE;IAgBxD,UAAU,CACR,CAAC,EAAE,MAAM,EAAE,EACX,CAAC,EAAE,MAAM,EAAE,EACX,YAAY,GAAE,OAAe,GAC5B,KAAK,GAAG,MAAM,EAAE;IA+CnB,WAAW;IAqBX,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,GAAE,OAAe;IAiNzE,WAAW;IAIX,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IA6CnC,MAAM;IAsFN,UAAU,CAAC,CAAC,EAAE,MAAM;IAepB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,UAAe;IAiEvC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,gBAAgB;CAGtC;AAED,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA"} {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}

View file

@ -332,6 +332,7 @@ export class Minimatch {
globParts = this.levelOneOptimize(globParts); globParts = this.levelOneOptimize(globParts);
} }
else { else {
// just collapse multiple ** portions into one
globParts = this.adjascentGlobstarOptimize(globParts); globParts = this.adjascentGlobstarOptimize(globParts);
} }
return globParts; return globParts;
@ -821,7 +822,11 @@ export class Minimatch {
fastTest = dotStarTest; fastTest = dotStarTest;
} }
const re = AST.fromGlob(pattern, this.options).toMMPattern(); 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() { makeRe() {
if (this.regexp || this.regexp === false) if (this.regexp || this.regexp === false)

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show more