@greenarmor/eslint-plugin-ges 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +26 -0
- package/dist/index.js +19 -0
- package/dist/index.test.d.ts +1 -0
- package/dist/index.test.js +33 -0
- package/dist/rules/no-hardcoded-secrets.d.ts +2 -0
- package/dist/rules/no-hardcoded-secrets.js +49 -0
- package/dist/rules/no-injection.d.ts +2 -0
- package/dist/rules/no-injection.js +39 -0
- package/dist/rules/no-weak-crypto.d.ts +2 -0
- package/dist/rules/no-weak-crypto.js +46 -0
- package/package.json +36 -0
- package/src/index.test.ts +38 -0
- package/src/index.ts +23 -0
- package/src/rules/no-hardcoded-secrets.ts +50 -0
- package/src/rules/no-injection.ts +42 -0
- package/src/rules/no-weak-crypto.ts +51 -0
- package/tsconfig.json +8 -0
- package/tsconfig.tsbuildinfo +1 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
export declare const rules: Record<string, Rule.RuleModule>;
|
|
3
|
+
export declare const configs: {
|
|
4
|
+
recommended: {
|
|
5
|
+
plugins: string[];
|
|
6
|
+
rules: {
|
|
7
|
+
"@greenarmor/ges/no-hardcoded-secrets": string;
|
|
8
|
+
"@greenarmor/ges/no-weak-crypto": string;
|
|
9
|
+
"@greenarmor/ges/no-injection": string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
declare const _default: {
|
|
14
|
+
rules: Record<string, Rule.RuleModule>;
|
|
15
|
+
configs: {
|
|
16
|
+
recommended: {
|
|
17
|
+
plugins: string[];
|
|
18
|
+
rules: {
|
|
19
|
+
"@greenarmor/ges/no-hardcoded-secrets": string;
|
|
20
|
+
"@greenarmor/ges/no-weak-crypto": string;
|
|
21
|
+
"@greenarmor/ges/no-injection": string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export default _default;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { noHardcodedSecrets } from "./rules/no-hardcoded-secrets.js";
|
|
2
|
+
import { noWeakCrypto } from "./rules/no-weak-crypto.js";
|
|
3
|
+
import { noInjection } from "./rules/no-injection.js";
|
|
4
|
+
export const rules = {
|
|
5
|
+
"no-hardcoded-secrets": noHardcodedSecrets,
|
|
6
|
+
"no-weak-crypto": noWeakCrypto,
|
|
7
|
+
"no-injection": noInjection,
|
|
8
|
+
};
|
|
9
|
+
export const configs = {
|
|
10
|
+
recommended: {
|
|
11
|
+
plugins: ["@greenarmor/ges"],
|
|
12
|
+
rules: {
|
|
13
|
+
"@greenarmor/ges/no-hardcoded-secrets": "error",
|
|
14
|
+
"@greenarmor/ges/no-weak-crypto": "error",
|
|
15
|
+
"@greenarmor/ges/no-injection": "error",
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
export default { rules, configs };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { rules, configs } from "./index.js";
|
|
3
|
+
describe("ESLint Plugin", () => {
|
|
4
|
+
it("exports 3 rules", () => {
|
|
5
|
+
expect(Object.keys(rules).length).toBe(3);
|
|
6
|
+
expect(rules["no-hardcoded-secrets"]).toBeDefined();
|
|
7
|
+
expect(rules["no-weak-crypto"]).toBeDefined();
|
|
8
|
+
expect(rules["no-injection"]).toBeDefined();
|
|
9
|
+
});
|
|
10
|
+
it("exports recommended config", () => {
|
|
11
|
+
expect(configs.recommended).toBeDefined();
|
|
12
|
+
expect(configs.recommended.plugins).toContain("@greenarmor/ges");
|
|
13
|
+
expect(configs.recommended.rules["@greenarmor/ges/no-hardcoded-secrets"]).toBe("error");
|
|
14
|
+
expect(configs.recommended.rules["@greenarmor/ges/no-weak-crypto"]).toBe("error");
|
|
15
|
+
expect(configs.recommended.rules["@greenarmor/ges/no-injection"]).toBe("error");
|
|
16
|
+
});
|
|
17
|
+
it("each rule has meta with type problem", () => {
|
|
18
|
+
for (const rule of Object.values(rules)) {
|
|
19
|
+
expect(rule.meta?.type).toBe("problem");
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
it("each rule has a create function", () => {
|
|
23
|
+
for (const rule of Object.values(rules)) {
|
|
24
|
+
expect(typeof rule.create).toBe("function");
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
it("each rule has docs description", () => {
|
|
28
|
+
for (const rule of Object.values(rules)) {
|
|
29
|
+
const meta = rule.meta;
|
|
30
|
+
expect(meta.docs?.description).toBeTruthy();
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
});
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const SECRET_PATTERNS = [
|
|
2
|
+
{ pattern: /(?:password|passwd|pwd)\s*[:=]\s*['"][^'"]{4,}/gi, message: "Hardcoded password detected. Move to environment variable." },
|
|
3
|
+
{ pattern: /(?:api[_-]?key|apikey)\s*[:=]\s*['"][^'"]{4,}/gi, message: "Hardcoded API key detected. Move to environment variable." },
|
|
4
|
+
{ pattern: /(?:secret|token|auth)\s*[:=]\s*['"][^'"]{8,}/gi, message: "Hardcoded secret/token detected. Move to environment variable." },
|
|
5
|
+
{ pattern: /sk-[a-zA-Z0-9]{20,}/g, message: "OpenAI/API key pattern detected in source." },
|
|
6
|
+
{ pattern: /AKIA[0-9A-Z]{16}/g, message: "AWS Access Key ID detected in source." },
|
|
7
|
+
{ pattern: /-----BEGIN (?:RSA |EC )?PRIVATE KEY-----/g, message: "Private key detected in source." },
|
|
8
|
+
{ pattern: /ghp_[a-zA-Z0-9]{36}/g, message: "GitHub personal access token detected." },
|
|
9
|
+
];
|
|
10
|
+
export const noHardcodedSecrets = {
|
|
11
|
+
meta: {
|
|
12
|
+
type: "problem",
|
|
13
|
+
docs: {
|
|
14
|
+
description: "Detect hardcoded secrets, passwords, API keys, and private keys",
|
|
15
|
+
category: "Security",
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
create(context) {
|
|
19
|
+
return {
|
|
20
|
+
Literal(node) {
|
|
21
|
+
if (typeof node.value !== "string")
|
|
22
|
+
return;
|
|
23
|
+
for (const { pattern, message } of SECRET_PATTERNS) {
|
|
24
|
+
pattern.lastIndex = 0;
|
|
25
|
+
if (pattern.test(node.value)) {
|
|
26
|
+
context.report({
|
|
27
|
+
node,
|
|
28
|
+
message,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
TemplateElement(node) {
|
|
34
|
+
const raw = node.value.raw;
|
|
35
|
+
if (!raw)
|
|
36
|
+
return;
|
|
37
|
+
for (const { pattern, message } of SECRET_PATTERNS) {
|
|
38
|
+
pattern.lastIndex = 0;
|
|
39
|
+
if (pattern.test(raw)) {
|
|
40
|
+
context.report({
|
|
41
|
+
node,
|
|
42
|
+
message,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
},
|
|
49
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const INJECTION_PATTERNS = [
|
|
2
|
+
{ pattern: /(?:query|execute|raw|sql)\s*\(\s*[`"'].*\+\s*(?:req|params|query|body|input|request)/gi, message: "SQL injection: string concatenation with user input. Use parameterized queries." },
|
|
3
|
+
{ pattern: /(?:query|execute|raw|sql)\s*\(\s*[`"'].*\$\{(?:req|params|query|body)/gi, message: "SQL injection: template literal with user input. Use parameterized queries." },
|
|
4
|
+
{ pattern: /innerHTML\s*=\s*(?:req|params|query|body|input)/gi, message: "XSS: innerHTML assignment from user input. Use textContent." },
|
|
5
|
+
{ pattern: /document\.write\s*\(\s*(?:req|params|query|body)/gi, message: "XSS: document.write with user input. Use safe DOM methods." },
|
|
6
|
+
];
|
|
7
|
+
export const noInjection = {
|
|
8
|
+
meta: {
|
|
9
|
+
type: "problem",
|
|
10
|
+
docs: {
|
|
11
|
+
description: "Detect SQL injection, XSS, and code injection vulnerabilities",
|
|
12
|
+
category: "Security",
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
create(context) {
|
|
16
|
+
return {
|
|
17
|
+
CallExpression(node) {
|
|
18
|
+
const text = context.getSourceCode().getText(node);
|
|
19
|
+
for (const { pattern, message } of INJECTION_PATTERNS) {
|
|
20
|
+
pattern.lastIndex = 0;
|
|
21
|
+
if (pattern.test(text)) {
|
|
22
|
+
context.report({ node, message });
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
AssignmentExpression(node) {
|
|
28
|
+
const text = context.getSourceCode().getText(node);
|
|
29
|
+
for (const { pattern, message } of INJECTION_PATTERNS) {
|
|
30
|
+
pattern.lastIndex = 0;
|
|
31
|
+
if (pattern.test(text)) {
|
|
32
|
+
context.report({ node, message });
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
},
|
|
39
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const WEAK_HASH_PATTERNS = [
|
|
2
|
+
{ pattern: /\bmd5\s*\(/gi, message: "MD5 is cryptographically broken. Use SHA-256 or Argon2id." },
|
|
3
|
+
{ pattern: /\bsha1\s*\(/gi, message: "SHA1 is cryptographically weak. Use SHA-256 or Argon2id." },
|
|
4
|
+
{ pattern: /\bcreateHash\s*\(\s*['"]md5['"]\s*\)/gi, message: "MD5 is broken. Use createHash('sha256')." },
|
|
5
|
+
{ pattern: /\bcreateHash\s*\(\s*['"]sha1['"]\s*\)/gi, message: "SHA1 is weak. Use createHash('sha256')." },
|
|
6
|
+
];
|
|
7
|
+
const WEAK_CRYPTO_PATTERNS = [
|
|
8
|
+
{ pattern: /\bDES\b|\b3DES\b|\bBlowfish\b/g, message: "Weak encryption algorithm. Use AES-256-GCM." },
|
|
9
|
+
{ pattern: /\bcreateCipheriv\s*\(\s*['"]aes-128/gi, message: "AES-128 is not approved. Use AES-256." },
|
|
10
|
+
{ pattern: /\bcreateCipher\b\s*\(/g, message: "createCipher is deprecated. Use createCipheriv." },
|
|
11
|
+
{ pattern: /tls\.connect\s*\([^)]*rejectUnauthorized\s*:\s*false/gi, message: "TLS certificate verification disabled. Remove rejectUnauthorized: false." },
|
|
12
|
+
];
|
|
13
|
+
export const noWeakCrypto = {
|
|
14
|
+
meta: {
|
|
15
|
+
type: "problem",
|
|
16
|
+
docs: {
|
|
17
|
+
description: "Detect weak hashing and encryption algorithms (MD5, SHA1, DES, AES-128)",
|
|
18
|
+
category: "Security",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
create(context) {
|
|
22
|
+
const allPatterns = [...WEAK_HASH_PATTERNS, ...WEAK_CRYPTO_PATTERNS];
|
|
23
|
+
return {
|
|
24
|
+
CallExpression(node) {
|
|
25
|
+
const text = context.getSourceCode().getText(node);
|
|
26
|
+
for (const { pattern, message } of allPatterns) {
|
|
27
|
+
pattern.lastIndex = 0;
|
|
28
|
+
if (pattern.test(text)) {
|
|
29
|
+
context.report({ node, message });
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
VariableDeclarator(node) {
|
|
35
|
+
const text = context.getSourceCode().getText(node);
|
|
36
|
+
for (const { pattern, message } of allPatterns) {
|
|
37
|
+
pattern.lastIndex = 0;
|
|
38
|
+
if (pattern.test(text)) {
|
|
39
|
+
context.report({ node, message });
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@greenarmor/eslint-plugin-ges",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "GESF ESLint Plugin - Real-time security and compliance rules for GESF standards",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc",
|
|
16
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
17
|
+
"test": "vitest run"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"typescript": "^6.0.0",
|
|
22
|
+
"@types/node": "^22.0.0",
|
|
23
|
+
"vitest": "^4.1.8",
|
|
24
|
+
"eslint": "^9.0.0"
|
|
25
|
+
},
|
|
26
|
+
"keywords": [
|
|
27
|
+
"eslint",
|
|
28
|
+
"eslint-plugin",
|
|
29
|
+
"security",
|
|
30
|
+
"compliance",
|
|
31
|
+
"gdpr",
|
|
32
|
+
"owasp",
|
|
33
|
+
"gesf"
|
|
34
|
+
],
|
|
35
|
+
"license": "MIT"
|
|
36
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { rules, configs } from "./index.js";
|
|
3
|
+
|
|
4
|
+
describe("ESLint Plugin", () => {
|
|
5
|
+
it("exports 3 rules", () => {
|
|
6
|
+
expect(Object.keys(rules).length).toBe(3);
|
|
7
|
+
expect(rules["no-hardcoded-secrets"]).toBeDefined();
|
|
8
|
+
expect(rules["no-weak-crypto"]).toBeDefined();
|
|
9
|
+
expect(rules["no-injection"]).toBeDefined();
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it("exports recommended config", () => {
|
|
13
|
+
expect(configs.recommended).toBeDefined();
|
|
14
|
+
expect(configs.recommended.plugins).toContain("@greenarmor/ges");
|
|
15
|
+
expect(configs.recommended.rules["@greenarmor/ges/no-hardcoded-secrets"]).toBe("error");
|
|
16
|
+
expect(configs.recommended.rules["@greenarmor/ges/no-weak-crypto"]).toBe("error");
|
|
17
|
+
expect(configs.recommended.rules["@greenarmor/ges/no-injection"]).toBe("error");
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it("each rule has meta with type problem", () => {
|
|
21
|
+
for (const rule of Object.values(rules)) {
|
|
22
|
+
expect(rule.meta?.type).toBe("problem");
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it("each rule has a create function", () => {
|
|
27
|
+
for (const rule of Object.values(rules)) {
|
|
28
|
+
expect(typeof rule.create).toBe("function");
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it("each rule has docs description", () => {
|
|
33
|
+
for (const rule of Object.values(rules)) {
|
|
34
|
+
const meta = rule.meta as { docs?: { description?: string } };
|
|
35
|
+
expect(meta.docs?.description).toBeTruthy();
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
import { noHardcodedSecrets } from "./rules/no-hardcoded-secrets.js";
|
|
3
|
+
import { noWeakCrypto } from "./rules/no-weak-crypto.js";
|
|
4
|
+
import { noInjection } from "./rules/no-injection.js";
|
|
5
|
+
|
|
6
|
+
export const rules: Record<string, Rule.RuleModule> = {
|
|
7
|
+
"no-hardcoded-secrets": noHardcodedSecrets,
|
|
8
|
+
"no-weak-crypto": noWeakCrypto,
|
|
9
|
+
"no-injection": noInjection,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export const configs = {
|
|
13
|
+
recommended: {
|
|
14
|
+
plugins: ["@greenarmor/ges"],
|
|
15
|
+
rules: {
|
|
16
|
+
"@greenarmor/ges/no-hardcoded-secrets": "error",
|
|
17
|
+
"@greenarmor/ges/no-weak-crypto": "error",
|
|
18
|
+
"@greenarmor/ges/no-injection": "error",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export default { rules, configs };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
|
|
3
|
+
const SECRET_PATTERNS = [
|
|
4
|
+
{ pattern: /(?:password|passwd|pwd)\s*[:=]\s*['"][^'"]{4,}/gi, message: "Hardcoded password detected. Move to environment variable." },
|
|
5
|
+
{ pattern: /(?:api[_-]?key|apikey)\s*[:=]\s*['"][^'"]{4,}/gi, message: "Hardcoded API key detected. Move to environment variable." },
|
|
6
|
+
{ pattern: /(?:secret|token|auth)\s*[:=]\s*['"][^'"]{8,}/gi, message: "Hardcoded secret/token detected. Move to environment variable." },
|
|
7
|
+
{ pattern: /sk-[a-zA-Z0-9]{20,}/g, message: "OpenAI/API key pattern detected in source." },
|
|
8
|
+
{ pattern: /AKIA[0-9A-Z]{16}/g, message: "AWS Access Key ID detected in source." },
|
|
9
|
+
{ pattern: /-----BEGIN (?:RSA |EC )?PRIVATE KEY-----/g, message: "Private key detected in source." },
|
|
10
|
+
{ pattern: /ghp_[a-zA-Z0-9]{36}/g, message: "GitHub personal access token detected." },
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
export const noHardcodedSecrets: Rule.RuleModule = {
|
|
14
|
+
meta: {
|
|
15
|
+
type: "problem",
|
|
16
|
+
docs: {
|
|
17
|
+
description: "Detect hardcoded secrets, passwords, API keys, and private keys",
|
|
18
|
+
category: "Security",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
create(context: Rule.RuleContext) {
|
|
22
|
+
return {
|
|
23
|
+
Literal(node) {
|
|
24
|
+
if (typeof node.value !== "string") return;
|
|
25
|
+
for (const { pattern, message } of SECRET_PATTERNS) {
|
|
26
|
+
pattern.lastIndex = 0;
|
|
27
|
+
if (pattern.test(node.value)) {
|
|
28
|
+
context.report({
|
|
29
|
+
node,
|
|
30
|
+
message,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
TemplateElement(node) {
|
|
36
|
+
const raw = node.value.raw;
|
|
37
|
+
if (!raw) return;
|
|
38
|
+
for (const { pattern, message } of SECRET_PATTERNS) {
|
|
39
|
+
pattern.lastIndex = 0;
|
|
40
|
+
if (pattern.test(raw)) {
|
|
41
|
+
context.report({
|
|
42
|
+
node,
|
|
43
|
+
message,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
|
|
3
|
+
const INJECTION_PATTERNS = [
|
|
4
|
+
{ pattern: /(?:query|execute|raw|sql)\s*\(\s*[`"'].*\+\s*(?:req|params|query|body|input|request)/gi, message: "SQL injection: string concatenation with user input. Use parameterized queries." },
|
|
5
|
+
{ pattern: /(?:query|execute|raw|sql)\s*\(\s*[`"'].*\$\{(?:req|params|query|body)/gi, message: "SQL injection: template literal with user input. Use parameterized queries." },
|
|
6
|
+
{ pattern: /innerHTML\s*=\s*(?:req|params|query|body|input)/gi, message: "XSS: innerHTML assignment from user input. Use textContent." },
|
|
7
|
+
{ pattern: /document\.write\s*\(\s*(?:req|params|query|body)/gi, message: "XSS: document.write with user input. Use safe DOM methods." },
|
|
8
|
+
];
|
|
9
|
+
|
|
10
|
+
export const noInjection: Rule.RuleModule = {
|
|
11
|
+
meta: {
|
|
12
|
+
type: "problem",
|
|
13
|
+
docs: {
|
|
14
|
+
description: "Detect SQL injection, XSS, and code injection vulnerabilities",
|
|
15
|
+
category: "Security",
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
create(context: Rule.RuleContext) {
|
|
19
|
+
return {
|
|
20
|
+
CallExpression(node) {
|
|
21
|
+
const text = context.getSourceCode().getText(node);
|
|
22
|
+
for (const { pattern, message } of INJECTION_PATTERNS) {
|
|
23
|
+
pattern.lastIndex = 0;
|
|
24
|
+
if (pattern.test(text)) {
|
|
25
|
+
context.report({ node, message });
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
AssignmentExpression(node) {
|
|
31
|
+
const text = context.getSourceCode().getText(node);
|
|
32
|
+
for (const { pattern, message } of INJECTION_PATTERNS) {
|
|
33
|
+
pattern.lastIndex = 0;
|
|
34
|
+
if (pattern.test(text)) {
|
|
35
|
+
context.report({ node, message });
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
},
|
|
42
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
|
|
3
|
+
const WEAK_HASH_PATTERNS = [
|
|
4
|
+
{ pattern: /\bmd5\s*\(/gi, message: "MD5 is cryptographically broken. Use SHA-256 or Argon2id." },
|
|
5
|
+
{ pattern: /\bsha1\s*\(/gi, message: "SHA1 is cryptographically weak. Use SHA-256 or Argon2id." },
|
|
6
|
+
{ pattern: /\bcreateHash\s*\(\s*['"]md5['"]\s*\)/gi, message: "MD5 is broken. Use createHash('sha256')." },
|
|
7
|
+
{ pattern: /\bcreateHash\s*\(\s*['"]sha1['"]\s*\)/gi, message: "SHA1 is weak. Use createHash('sha256')." },
|
|
8
|
+
];
|
|
9
|
+
|
|
10
|
+
const WEAK_CRYPTO_PATTERNS = [
|
|
11
|
+
{ pattern: /\bDES\b|\b3DES\b|\bBlowfish\b/g, message: "Weak encryption algorithm. Use AES-256-GCM." },
|
|
12
|
+
{ pattern: /\bcreateCipheriv\s*\(\s*['"]aes-128/gi, message: "AES-128 is not approved. Use AES-256." },
|
|
13
|
+
{ pattern: /\bcreateCipher\b\s*\(/g, message: "createCipher is deprecated. Use createCipheriv." },
|
|
14
|
+
{ pattern: /tls\.connect\s*\([^)]*rejectUnauthorized\s*:\s*false/gi, message: "TLS certificate verification disabled. Remove rejectUnauthorized: false." },
|
|
15
|
+
];
|
|
16
|
+
|
|
17
|
+
export const noWeakCrypto: Rule.RuleModule = {
|
|
18
|
+
meta: {
|
|
19
|
+
type: "problem",
|
|
20
|
+
docs: {
|
|
21
|
+
description: "Detect weak hashing and encryption algorithms (MD5, SHA1, DES, AES-128)",
|
|
22
|
+
category: "Security",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
create(context: Rule.RuleContext) {
|
|
26
|
+
const allPatterns = [...WEAK_HASH_PATTERNS, ...WEAK_CRYPTO_PATTERNS];
|
|
27
|
+
|
|
28
|
+
return {
|
|
29
|
+
CallExpression(node) {
|
|
30
|
+
const text = context.getSourceCode().getText(node);
|
|
31
|
+
for (const { pattern, message } of allPatterns) {
|
|
32
|
+
pattern.lastIndex = 0;
|
|
33
|
+
if (pattern.test(text)) {
|
|
34
|
+
context.report({ node, message });
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
VariableDeclarator(node) {
|
|
40
|
+
const text = context.getSourceCode().getText(node);
|
|
41
|
+
for (const { pattern, message } of allPatterns) {
|
|
42
|
+
pattern.lastIndex = 0;
|
|
43
|
+
if (pattern.test(text)) {
|
|
44
|
+
context.report({ node, message });
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
},
|
|
51
|
+
};
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/@vitest+pretty-format@4.1.8/node_modules/@vitest/pretty-format/dist/index.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.8/node_modules/@vitest/utils/dist/display.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.8/node_modules/@vitest/utils/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.8/node_modules/@vitest/utils/dist/helpers.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.8/node_modules/@vitest/utils/dist/timers.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.8/node_modules/@vitest/utils/dist/index.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.8/node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","../../node_modules/.pnpm/@vitest+utils@4.1.8/node_modules/@vitest/utils/dist/diff.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.8/node_modules/@vitest/runner/dist/tasks.d-deyaimiu.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.8/node_modules/@vitest/runner/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/dist/chunks/traces.d.d2t_r8rx.d.ts","../../node_modules/.pnpm/vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0/node_modules/vite/types/hmrpayload.d.ts","../../node_modules/.pnpm/vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0/node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","../../node_modules/.pnpm/vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0/node_modules/vite/types/customevent.d.ts","../../node_modules/.pnpm/vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0/node_modules/vite/types/hot.d.ts","../../node_modules/.pnpm/vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0/node_modules/vite/dist/node/module-runner.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.8/node_modules/@vitest/snapshot/dist/environment.d-dojxxzv9.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.8/node_modules/@vitest/snapshot/dist/rawsnapshot.d-d_x3-62x.d.ts","../../node_modules/.pnpm/@vitest+snapshot@4.1.8/node_modules/@vitest/snapshot/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/dist/chunks/config.d.a1h_y6jt.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/dist/chunks/environment.d.crsxczp1.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/dist/chunks/rpc.d.b_8spu0w.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/dist/chunks/worker.d.zphpo4yb.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/dist/chunks/browser.d.bcoexmfg.d.ts","../../node_modules/.pnpm/@vitest+spy@4.1.8/node_modules/@vitest/spy/optional-types.d.ts","../../node_modules/.pnpm/@vitest+spy@4.1.8/node_modules/@vitest/spy/dist/index.d.ts","../../node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.d.ts","../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../node_modules/.pnpm/@vitest+expect@4.1.8/node_modules/@vitest/expect/dist/index.d.ts","../../node_modules/.pnpm/@vitest+runner@4.1.8/node_modules/@vitest/runner/dist/utils.d.ts","../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/dist/chunks/benchmark.d.daahlpsq.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/dist/chunks/global.d.dvssrdq5.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/optional-runtime-types.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.8_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/@vitest/mocker/dist/types.d-bji5eawu.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.8_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/@vitest/mocker/dist/index.d-b41z0auw.d.ts","../../node_modules/.pnpm/@vitest+mocker@4.1.8_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/@vitest/mocker/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/dist/chunks/suite.d.udjtyagw.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/dist/chunks/evaluatedmodules.d.bxj5omdx.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/dist/runners.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../node_modules/.pnpm/vitest@4.1.8_@types+node@22.19.19_vite@8.0.16_@types+node@22.19.19_esbuild@0.28.0_/node_modules/vitest/dist/index.d.ts","../../node_modules/.pnpm/@types+estree@1.0.9/node_modules/@types/estree/index.d.ts","../../node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts","../../node_modules/.pnpm/@eslint+core@0.17.0/node_modules/@eslint/core/dist/cjs/types.d.cts","../../node_modules/.pnpm/eslint@9.39.4/node_modules/eslint/lib/types/use-at-your-own-risk.d.ts","../../node_modules/.pnpm/eslint@9.39.4/node_modules/eslint/lib/types/index.d.ts","./src/rules/no-hardcoded-secrets.ts","./src/rules/no-weak-crypto.ts","./src/rules/no-injection.ts","./src/index.ts","./src/index.test.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/compatibility/disposable.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/compatibility/index.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/web-globals/events.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/inspector.generated.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/sqlite.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/index.d.ts"],"fileIdsList":[[120,134,182,199,200],[134,182,199,200],[98,99,134,182,199,200],[134,179,180,182,199,200],[134,181,182,199,200],[182,199,200],[134,182,187,199,200,217],[134,182,183,188,193,199,200,202,214,225],[134,182,183,184,193,199,200,202],[129,130,131,134,182,199,200],[134,182,185,199,200,226],[134,182,186,187,194,199,200,203],[134,182,187,199,200,214,222],[134,182,188,190,193,199,200,202],[134,181,182,189,199,200],[134,182,190,191,199,200],[134,182,192,193,199,200],[134,181,182,193,199,200],[134,182,193,194,195,199,200,214,225],[134,182,193,194,195,199,200,209,214,217],[134,175,182,190,193,196,199,200,202,214,225],[134,182,193,194,196,197,199,200,202,214,222,225],[134,182,196,198,199,200,214,222,225],[132,133,134,135,136,137,138,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231],[134,182,193,199,200],[134,182,199,200,201,225],[134,182,190,193,199,200,202,214],[134,182,199,200,203],[134,182,199,200,204],[134,181,182,199,200,205],[134,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231],[134,182,199,200,207],[134,182,199,200,208],[134,182,193,199,200,209,210],[134,182,199,200,209,211,226,228],[134,182,194,199,200],[134,182,193,199,200,214,215,217],[134,182,199,200,216,217],[134,182,199,200,214,215],[134,182,199,200,217],[134,182,199,200,218],[134,179,182,199,200,214,219,225],[134,182,193,199,200,220,221],[134,182,199,200,220,221],[134,182,187,199,200,202,214,222],[134,182,199,200,223],[134,182,199,200,202,224],[134,182,196,199,200,208,225],[134,182,187,199,200,226],[134,182,199,200,214,227],[134,182,199,200,201,228],[134,182,199,200,229],[134,175,182,199,200],[134,175,182,193,195,199,200,205,214,217,225,227,228,230],[134,182,199,200,214,231],[71,77,95,96,97,100,134,182,199,200],[107,134,182,199,200],[107,108,134,182,199,200],[75,77,78,134,182,199,200],[75,77,134,182,199,200],[75,134,182,199,200],[70,75,86,87,134,182,199,200],[70,75,86,134,182,199,200],[94,134,182,199,200],[70,76,134,182,199,200],[70,134,182,199,200],[72,134,182,199,200],[70,71,72,73,74,134,182,199,200],[119,121,122,134,182,199,200],[123,134,182,199,200],[113,114,134,182,199,200],[113,114,115,116,134,182,199,200],[113,115,134,182,199,200],[113,134,182,199,200],[134,147,151,182,199,200,225],[134,147,182,199,200,214,225],[134,142,182,199,200],[134,144,147,182,199,200,222,225],[134,182,199,200,202,222],[134,182,199,200,232],[134,142,182,199,200,232],[134,144,147,182,199,200,202,225],[134,139,140,143,146,182,193,199,200,214,225],[134,147,154,182,199,200],[134,139,145,182,199,200],[134,147,168,169,182,199,200],[134,143,147,182,199,200,217,225,232],[134,168,182,199,200,232],[134,141,142,182,199,200,232],[134,147,182,199,200],[134,141,142,143,144,145,146,147,148,149,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,169,170,171,172,173,174,182,199,200],[134,147,162,182,199,200],[134,147,154,155,182,199,200],[134,145,147,155,156,182,199,200],[134,146,182,199,200],[134,139,142,147,182,199,200],[134,147,151,155,156,182,199,200],[134,151,182,199,200],[134,145,147,150,182,199,200,225],[134,139,144,147,154,182,199,200],[134,182,199,200,214],[134,142,147,168,182,199,200,230,232],[81,134,182,199,200],[81,82,83,84,134,182,199,200],[83,134,182,199,200],[79,102,103,105,134,182,199,200],[79,80,92,105,134,182,199,200],[70,77,79,80,88,105,134,182,199,200],[85,134,182,199,200],[70,79,80,88,101,104,105,134,182,199,200],[79,80,85,88,105,134,182,199,200],[79,102,103,104,105,134,182,199,200],[79,85,89,90,91,105,134,182,199,200],[70,75,77,79,80,85,88,89,90,91,92,93,95,101,102,103,104,105,106,109,110,111,112,117,134,182,199,200],[70,77,79,80,88,89,102,103,104,105,110,134,182,199,200],[118,127,134,182,199,200],[123,124,125,126,134,182,199,200]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"3a582c6e8906f5b094ccf0de6cc6f4f8a54b05a34f52517aba5c9c7f704f6b28","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"72ce5b734c05da85c85a6f6dc05823b051d6aa41acaedeeb1d17c72f3b4efa72","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"49ab4f1d153a252779958fc87b700743d32b5ffa42addd70ae23ad3f429daa5c","impliedFormat":99},{"version":"53cf4076f42b29b8d411259d168d51b3a0274c42c8814e5b44dfa8803a35d4fc","impliedFormat":99},{"version":"a39461ee1f27cf3e6cfd63d21045713d26d521da55ea4d8efccb705f689e6dbb","impliedFormat":99},{"version":"61bb64660ee150f3ab618340e15cca0a81664801bede7c966ca0eca3a952fe63","impliedFormat":99},{"version":"3b89216a7e38a454985ad17bb2ff85792837dc812f2a89fa5f60ad0a2e216fa7","impliedFormat":99},{"version":"16fe60bb544cfedfd2b5bb2f7d0b3957be7978706d57d9f06edc9c0c8dbdba23","impliedFormat":99},{"version":"de4a612aa8f1704af486f701e21993c786ba7d8cfed55fffa6684026aea2346e","impliedFormat":99},{"version":"4e003c868b0d8f8ad200b96cbc653e18e513fa23e1c19c4fe3cc25d4394efc47","impliedFormat":99},{"version":"8887e70871f697fa42ad7cdf32168db60ec2d6760c173c97973e35377fe5d83b","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"ec0c42bb0f465e4993f2bc68a6ce9df9a2dcbc7b83e21748f82f1b69561938e3","impliedFormat":99},{"version":"f50ff37a9cbbe74475f426474d9827083c7c2c138a954d28f1690df338f69291","impliedFormat":99},{"version":"61fd6c17235d530c40f543dd7c40afab091d91c1ef890baeed30db6d82b04b28","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"091767bc841f937654ed597d49e023ed59850355e746ae1a6f20ab31076ee1fb","impliedFormat":99},{"version":"19c6d6135af59693698d384050b45a8a049493500add442f58e4bd7c8a255ab6","impliedFormat":99},{"version":"6a0dba12d55314638a8c51108b20fe2f68f1364a619d098918bda91c22dec154","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"4ead13a482c539b77394b2a97e3b877b809eac596390371cea490286f53b996a","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"5c935b7fc4ddc1410ea1cd7cd4e35ed106a6e4920dd27a9480a40fd224359dc3","affectsGlobalScope":true,"impliedFormat":99},{"version":"2b39c6cf59088713babbfc3e20ee85f1375d40e66953156fa658346b8346f24f","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"4ffba3c5848b4fe62ee59b754fd5f256ad9656a0db6d37b9a2a8cb40dfc7ac21","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"59e5e964b84fdb2378e9455e4e59405030e4ed2b4c6f891ce395f17796af3cbb","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"90ba95a763101bb61b8a799731a2ed60b5016b8135c1a2d5186862d4b534d4a1","impliedFormat":99},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"ac450542cbfd50a4d7bf0f3ec8aeedb9e95791ecc6f2b2b19367696bd303e8c6","impliedFormat":1},{"version":"8a190298d0ff502ad1c7294ba6b0abb3a290fc905b3a00603016a97c363a4c7a","impliedFormat":1},{"version":"3cf631a6ae0060fddf4898c816958e39f47e16570faf7bc7048c774c83cd7a7e","impliedFormat":1},{"version":"7da50c9298721664e27a620c16414dd369acf4121e7fa5aa71cab741ff6846e8","signature":"221b4f57bc39d6262a5d38f7158801ee6f935c6b173e13ebe776712894dcafbe","impliedFormat":99},{"version":"f2d512257d7b6a1d9aebddf000336f1f9c3bb4232f328183ff49e94fc673f3b9","signature":"f596426f3ce4cc8e8db9d3ed35d64122302b73a293e248a38fc3604c8fcaa1b5","impliedFormat":99},{"version":"989b3563ce091482bbe953d951bbf110a6cba2479b497145513d5d38faa32e45","signature":"65b9e4569d99c15f2c78229bbff3515ac2b8f3f026827a092ed6e19a015ef63f","impliedFormat":99},{"version":"2905d13829b5722c22c1692947001c2e9da47c09f41f661ef3f4af9bd7ebf190","signature":"6e26ecf2badc669bdaee7f1b92c0d2799159f297b005884b0a8f142b796df92e","impliedFormat":99},{"version":"841ffa2518d1e80aa453ffa82cd6f4804978586ec1b78273bf9780238ff778ca","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770","impliedFormat":1},{"version":"73b5fa37db36eeac90c4d752e39586f1b57187400c4f5280fd05f16437287a45","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"80523c00b8544a2000ae0143e4a90a00b47f99823eb7926c1e03c494216fc363","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"746911b62b329587939560deb5c036aca48aece03147b021fa680223255d5183","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1}],"root":[[124,128]],"options":{"composite":true,"declaration":true,"declarationMap":false,"esModuleInterop":true,"module":100,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":false,"strict":true,"target":11},"referencedMap":[[121,1],[97,2],[100,3],[98,2],[119,2],[120,2],[179,4],[180,4],[181,5],[134,6],[182,7],[183,8],[184,9],[129,2],[132,10],[130,2],[131,2],[185,11],[186,12],[187,13],[188,14],[189,15],[190,16],[191,16],[192,17],[193,18],[194,19],[195,20],[135,2],[133,2],[196,21],[197,22],[198,23],[232,24],[199,25],[200,2],[201,26],[202,27],[203,28],[204,29],[205,30],[206,31],[207,32],[208,33],[209,34],[210,34],[211,35],[212,2],[213,36],[214,37],[216,38],[215,39],[217,40],[218,41],[219,42],[220,43],[221,44],[222,45],[223,46],[224,47],[225,48],[226,49],[227,50],[228,51],[229,52],[136,2],[137,2],[138,2],[176,53],[177,2],[178,2],[230,54],[231,55],[101,56],[108,57],[109,58],[107,2],[70,2],[79,59],[78,60],[102,59],[86,61],[88,62],[87,63],[95,64],[94,2],[77,65],[71,66],[73,67],[75,68],[74,2],[76,66],[72,2],[99,2],[123,69],[122,70],[115,71],[117,72],[116,73],[114,74],[113,2],[103,2],[96,2],[68,2],[69,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[22,2],[23,2],[4,2],[24,2],[28,2],[25,2],[26,2],[27,2],[29,2],[30,2],[31,2],[5,2],[32,2],[33,2],[34,2],[35,2],[6,2],[39,2],[36,2],[37,2],[38,2],[40,2],[7,2],[41,2],[46,2],[47,2],[42,2],[43,2],[44,2],[45,2],[8,2],[51,2],[48,2],[49,2],[50,2],[52,2],[9,2],[53,2],[54,2],[55,2],[57,2],[56,2],[58,2],[59,2],[10,2],[60,2],[61,2],[62,2],[11,2],[63,2],[64,2],[65,2],[66,2],[67,2],[1,2],[154,75],[164,76],[153,75],[174,77],[145,78],[144,79],[173,80],[167,81],[172,82],[147,83],[161,84],[146,85],[170,86],[142,87],[141,80],[171,88],[143,89],[148,90],[149,2],[152,90],[139,2],[175,91],[165,92],[156,93],[157,94],[159,95],[155,96],[158,97],[168,80],[150,98],[151,99],[160,100],[140,101],[163,92],[162,90],[166,2],[169,102],[82,103],[85,104],[83,103],[81,2],[84,105],[104,106],[93,107],[89,108],[90,61],[111,109],[105,110],[91,111],[110,112],[80,2],[92,113],[118,114],[112,115],[106,2],[128,116],[127,117],[124,70],[126,70],[125,70]],"latestChangedDtsFile":"./dist/index.test.d.ts","version":"6.0.3"}
|