@flint.fyi/plugin-flint 0.0.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/LICENSE.md ADDED
@@ -0,0 +1,20 @@
1
+ # MIT License
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ 'Software'), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,9 @@
1
+ <h1 align="center"><code>@flint.fyi/plugin-flint</code></h1>
2
+
3
+ <p align="center">
4
+ [Experimental] A flint plugin for linting Flint plugins.
5
+ ❤️‍🔥
6
+ </p>
7
+
8
+ This is an internal package for Flint.
9
+ Documentation will eventually be added.
package/lib/flint.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export declare const flint: import("@flint.fyi/core").Plugin<import("@flint.fyi/core").RuleAbout, Record<string, string[]> | undefined, import("@flint.fyi/core").Rule<{
2
+ readonly id: "duplicateTestCases";
3
+ readonly preset: "logical";
4
+ }, import("@flint.fyi/ts/lib/nodes.js").TSNodesByName, import("@flint.fyi/ts").TypeScriptServices, "duplicateTest", undefined>[]>;
package/lib/flint.js ADDED
@@ -0,0 +1,6 @@
1
+ import { createPlugin } from "@flint.fyi/core";
2
+ import duplicateTestCases from "./rules/duplicateTestCases.js";
3
+ export const flint = createPlugin({
4
+ name: "flint",
5
+ rules: [duplicateTestCases],
6
+ });
package/lib/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./flint.js";
package/lib/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from "./flint.js";
@@ -0,0 +1,5 @@
1
+ declare const _default: import("@flint.fyi/core").Rule<{
2
+ readonly id: "duplicateTestCases";
3
+ readonly preset: "logical";
4
+ }, import("@flint.fyi/ts/lib/nodes.js").TSNodesByName, import("@flint.fyi/ts").TypeScriptServices, "duplicateTest", undefined>;
5
+ export default _default;
@@ -0,0 +1,49 @@
1
+ import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/ts";
2
+ import { getRuleTesterDescribedCases, } from "./getRuleTesterDescribedCases.js";
3
+ export default typescriptLanguage.createRule({
4
+ about: {
5
+ id: "duplicateTestCases",
6
+ preset: "logical",
7
+ },
8
+ messages: {
9
+ duplicateTest: {
10
+ primary: "This test code already appeared in a previous test.",
11
+ secondary: ["TODO"],
12
+ suggestions: [
13
+ "Delete this redundant test case.",
14
+ "Change a property to make the test case unique.",
15
+ ],
16
+ },
17
+ },
18
+ setup(context) {
19
+ function checkTestCases(testCases) {
20
+ const seen = new Set();
21
+ for (const testCase of testCases) {
22
+ const key = JSON.stringify({
23
+ code: testCase.code,
24
+ fileName: testCase.fileName,
25
+ options: testCase.options,
26
+ });
27
+ if (seen.has(key)) {
28
+ context.report({
29
+ message: "duplicateTest",
30
+ range: getTSNodeRange(testCase.node, context.sourceFile),
31
+ });
32
+ }
33
+ else {
34
+ seen.add(key);
35
+ }
36
+ }
37
+ }
38
+ return {
39
+ CallExpression(node) {
40
+ const describedCases = getRuleTesterDescribedCases(node);
41
+ if (!describedCases) {
42
+ return;
43
+ }
44
+ checkTestCases(describedCases.invalid);
45
+ checkTestCases(describedCases.valid);
46
+ },
47
+ };
48
+ },
49
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,173 @@
1
+ import rule from "./duplicateTestCases.js";
2
+ import { ruleTester } from "./ruleTester.js";
3
+ ruleTester.describe(rule, {
4
+ invalid: [
5
+ {
6
+ code: `
7
+ ruleTester.describe(rule, {
8
+ valid: ['a', 'a'],
9
+ invalid: []
10
+ });
11
+ `,
12
+ snapshot: `
13
+ ruleTester.describe(rule, {
14
+ valid: ['a', 'a'],
15
+ ~~~
16
+ This test code already appeared in a previous test.
17
+ invalid: []
18
+ });
19
+ `,
20
+ },
21
+ {
22
+ code: `
23
+ ruleTester.describe(rule, {
24
+ valid: [
25
+ 'a',
26
+ "a",
27
+ ],
28
+ invalid: []
29
+ });
30
+ `,
31
+ snapshot: `
32
+ ruleTester.describe(rule, {
33
+ valid: [
34
+ 'a',
35
+ "a",
36
+ ~~~
37
+ This test code already appeared in a previous test.
38
+ ],
39
+ invalid: []
40
+ });
41
+ `,
42
+ },
43
+ {
44
+ code: `
45
+ ruleTester.describe(rule, {
46
+ valid: [
47
+ \`a\`,
48
+ \`a\`,
49
+ ],
50
+ invalid: []
51
+ });
52
+ `,
53
+ snapshot: `
54
+ ruleTester.describe(rule, {
55
+ valid: [
56
+ \`a\`,
57
+ \`a\`,
58
+ ~~~
59
+ This test code already appeared in a previous test.
60
+ ],
61
+ invalid: []
62
+ });
63
+ `,
64
+ },
65
+ {
66
+ code: `
67
+ ruleTester.describe(rule, {
68
+ valid: [
69
+ { code: "a" },
70
+ { code: "a" },
71
+ ],
72
+ invalid: []
73
+ });
74
+ `,
75
+ snapshot: `
76
+ ruleTester.describe(rule, {
77
+ valid: [
78
+ { code: "a" },
79
+ { code: "a" },
80
+ ~~~~~~~~~~~~~
81
+ This test code already appeared in a previous test.
82
+ ],
83
+ invalid: []
84
+ });
85
+ `,
86
+ },
87
+ {
88
+ code: `
89
+ ruleTester.describe(rule, {
90
+ valid: [
91
+ { code: "a", fileName: "b.ts" },
92
+ { code: "a", fileName: "b.ts" },
93
+ ],
94
+ invalid: []
95
+ });
96
+ `,
97
+ snapshot: `
98
+ ruleTester.describe(rule, {
99
+ valid: [
100
+ { code: "a", fileName: "b.ts" },
101
+ { code: "a", fileName: "b.ts" },
102
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
103
+ This test code already appeared in a previous test.
104
+ ],
105
+ invalid: []
106
+ });
107
+ `,
108
+ },
109
+ {
110
+ code: `
111
+ ruleTester.describe(rule, {
112
+ valid: [
113
+ { code: "a", fileName: "b.ts", options: { c: "d" } },
114
+ { code: "a", fileName: "b.ts", options: { c: "d" } },
115
+ ],
116
+ invalid: []
117
+ });
118
+ `,
119
+ snapshot: `
120
+ ruleTester.describe(rule, {
121
+ valid: [
122
+ { code: "a", fileName: "b.ts", options: { c: "d" } },
123
+ { code: "a", fileName: "b.ts", options: { c: "d" } },
124
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
125
+ This test code already appeared in a previous test.
126
+ ],
127
+ invalid: []
128
+ });
129
+ `,
130
+ },
131
+ ],
132
+ valid: [
133
+ `
134
+ describe(rule, {
135
+ valid: ['a', 'a'],
136
+ invalid: []
137
+ });
138
+ `,
139
+ `
140
+ ruleTester.describe(rule, {
141
+ valid: ['a', 'b'],
142
+ invalid: []
143
+ });
144
+ `,
145
+ `
146
+ ruleTester.describe(rule, {
147
+ valid: [
148
+ { code: \`a\`, fileName: "b.ts" },
149
+ { code: \`a\`, fileName: "c.ts" },
150
+ ],
151
+ invalid: []
152
+ });
153
+ `,
154
+ `
155
+ ruleTester.describe(rule, {
156
+ valid: [
157
+ { code: \`a\`, fileName: "b.ts", options: { c: "d" } },
158
+ { code: \`a\`, fileName: "b.ts", options: { c: "e" } },
159
+ ],
160
+ invalid: []
161
+ });
162
+ `,
163
+ `
164
+ ruleTester.describe(rule, {
165
+ valid: [
166
+ { code: \`a\`, fileName: "b.ts", options: { c: "d" } },
167
+ { code: \`a\`, fileName: "c.ts", options: { c: "d" } },
168
+ ],
169
+ invalid: []
170
+ });
171
+ `,
172
+ ],
173
+ });
@@ -0,0 +1,9 @@
1
+ import { TestCase } from "@flint.fyi/rule-tester";
2
+ import * as ts from "typescript";
3
+ export interface ParsedTestCase extends TestCase {
4
+ node: ts.Node;
5
+ }
6
+ export declare function getRuleTesterDescribedCases(node: ts.CallExpression): {
7
+ invalid: ParsedTestCase[];
8
+ valid: ParsedTestCase[];
9
+ } | undefined;
@@ -0,0 +1,59 @@
1
+ import * as ts from "typescript";
2
+ import { isTruthy } from "./isTruthy.js";
3
+ import { tsAstToLiteral } from "./tsAstToLiteral.js";
4
+ export function getRuleTesterDescribedCases(node) {
5
+ if (!ts.isPropertyAccessExpression(node.expression) ||
6
+ !ts.isIdentifier(node.expression.expression) ||
7
+ !ts.isIdentifier(node.expression.name) ||
8
+ node.expression.name.text !== "describe" ||
9
+ node.arguments.length !== 2) {
10
+ return undefined;
11
+ }
12
+ // TODO: Check node.expression.expression's type for being a RuleTester
13
+ // https://github.com/JoshuaKGoldberg/flint/issues/152
14
+ const argument = node.arguments[1];
15
+ if (!ts.isObjectLiteralExpression(argument)) {
16
+ return undefined;
17
+ }
18
+ const invalid = findProperty(argument.properties, "invalid", ts.isArrayLiteralExpression);
19
+ if (!invalid) {
20
+ return undefined;
21
+ }
22
+ const valid = findProperty(argument.properties, "valid", ts.isArrayLiteralExpression);
23
+ if (!valid) {
24
+ return undefined;
25
+ }
26
+ return {
27
+ invalid: invalid.elements.map(parseTestCase).filter(isTruthy),
28
+ valid: valid.elements.map(parseTestCase).filter(isTruthy),
29
+ };
30
+ }
31
+ function findProperty(properties, name, predicate) {
32
+ return properties.find((property) => ts.isPropertyAssignment(property) &&
33
+ ts.isIdentifier(property.name) &&
34
+ property.name.text === name &&
35
+ predicate(property.initializer))?.initializer;
36
+ }
37
+ function parseTestCase(node) {
38
+ if (ts.isStringLiteralLike(node)) {
39
+ return {
40
+ code: node.text,
41
+ node,
42
+ };
43
+ }
44
+ if (!ts.isObjectLiteralExpression(node)) {
45
+ return undefined;
46
+ }
47
+ const code = findProperty(node.properties, "code", ts.isStringLiteralLike);
48
+ if (!code) {
49
+ return undefined;
50
+ }
51
+ const fileName = findProperty(node.properties, "fileName", ts.isStringLiteralLike);
52
+ const options = findProperty(node.properties, "options", ts.isObjectLiteralExpression);
53
+ return {
54
+ code: code.text,
55
+ fileName: fileName?.text,
56
+ node,
57
+ options: options && tsAstToLiteral(options),
58
+ };
59
+ }
@@ -0,0 +1 @@
1
+ export declare function isTruthy<T extends NonNullable<unknown>>(value: null | T | undefined): value is T;
@@ -0,0 +1,3 @@
1
+ export function isTruthy(value) {
2
+ return value != null;
3
+ }
@@ -0,0 +1,2 @@
1
+ import { RuleTester } from "@flint.fyi/rule-tester";
2
+ export declare const ruleTester: RuleTester;
@@ -0,0 +1,3 @@
1
+ import { RuleTester } from "@flint.fyi/rule-tester";
2
+ import { describe, it } from "vitest";
3
+ export const ruleTester = new RuleTester({ describe, it });
@@ -0,0 +1,4 @@
1
+ import ts from "typescript";
2
+ export declare function tsAstToLiteral(node: ts.ArrayLiteralExpression): unknown[];
3
+ export declare function tsAstToLiteral(node: ts.ObjectLiteralExpression): object;
4
+ export declare function tsAstToLiteral(node: ts.Node): unknown;
@@ -0,0 +1,37 @@
1
+ // Fork of ts-ast-to-literal pending:
2
+ // https://github.com/dword-design/ts-ast-to-literal/issues/89
3
+ // Changing from the switch to manual ifs is due to:
4
+ // https://github.com/Microsoft/TypeScript/issues/56275
5
+ import ts from "typescript";
6
+ export function tsAstToLiteral(node) {
7
+ switch (node.kind) {
8
+ case ts.SyntaxKind.FalseKeyword:
9
+ return false;
10
+ case ts.SyntaxKind.NullKeyword:
11
+ return null;
12
+ case ts.SyntaxKind.TrueKeyword:
13
+ return true;
14
+ }
15
+ if (ts.isArrayLiteralExpression(node)) {
16
+ return node.elements
17
+ .filter((element) => element.kind !== ts.SyntaxKind.SpreadElement)
18
+ .map((element) => tsAstToLiteral(element));
19
+ }
20
+ if (ts.isNumericLiteral(node)) {
21
+ return parseFloat(node.text);
22
+ }
23
+ if (ts.isObjectLiteralExpression(node)) {
24
+ return Object.fromEntries(node.properties
25
+ .filter((property) => ts.isPropertyAssignment(property) &&
26
+ (property.name.kind === ts.SyntaxKind.Identifier ||
27
+ property.name.kind === ts.SyntaxKind.StringLiteral))
28
+ .map((property) => [
29
+ property.name.escapedText || property.name.text,
30
+ tsAstToLiteral(property.initializer),
31
+ ]));
32
+ }
33
+ if (ts.isStringLiteral(node)) {
34
+ return node.text;
35
+ }
36
+ return undefined;
37
+ }
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@flint.fyi/plugin-flint",
3
+ "version": "0.0.0",
4
+ "description": "[Experimental] A Flint plugin for linting Flint plugins.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/JoshuaKGoldberg/flint",
8
+ "directory": "packages/plugin-flint"
9
+ },
10
+ "license": "MIT",
11
+ "author": {
12
+ "name": "JoshuaKGoldberg",
13
+ "email": "npm@joshuakgoldberg.com"
14
+ },
15
+ "type": "module",
16
+ "main": "./lib/index.js",
17
+ "dependencies": {
18
+ "@flint.fyi/core": "",
19
+ "@flint.fyi/rule-tester": "",
20
+ "@flint.fyi/ts": ""
21
+ },
22
+ "engines": {
23
+ "node": ">=24.0.0"
24
+ },
25
+ "publishConfig": {
26
+ "access": "public",
27
+ "provenance": true
28
+ }
29
+ }
package/src/flint.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { createPlugin } from "@flint.fyi/core";
2
+
3
+ import duplicateTestCases from "./rules/duplicateTestCases.js";
4
+
5
+ export const flint = createPlugin({
6
+ name: "flint",
7
+ rules: [duplicateTestCases],
8
+ });
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./flint.js";
@@ -0,0 +1,174 @@
1
+ import rule from "./duplicateTestCases.js";
2
+ import { ruleTester } from "./ruleTester.js";
3
+
4
+ ruleTester.describe(rule, {
5
+ invalid: [
6
+ {
7
+ code: `
8
+ ruleTester.describe(rule, {
9
+ valid: ['a', 'a'],
10
+ invalid: []
11
+ });
12
+ `,
13
+ snapshot: `
14
+ ruleTester.describe(rule, {
15
+ valid: ['a', 'a'],
16
+ ~~~
17
+ This test code already appeared in a previous test.
18
+ invalid: []
19
+ });
20
+ `,
21
+ },
22
+ {
23
+ code: `
24
+ ruleTester.describe(rule, {
25
+ valid: [
26
+ 'a',
27
+ "a",
28
+ ],
29
+ invalid: []
30
+ });
31
+ `,
32
+ snapshot: `
33
+ ruleTester.describe(rule, {
34
+ valid: [
35
+ 'a',
36
+ "a",
37
+ ~~~
38
+ This test code already appeared in a previous test.
39
+ ],
40
+ invalid: []
41
+ });
42
+ `,
43
+ },
44
+ {
45
+ code: `
46
+ ruleTester.describe(rule, {
47
+ valid: [
48
+ \`a\`,
49
+ \`a\`,
50
+ ],
51
+ invalid: []
52
+ });
53
+ `,
54
+ snapshot: `
55
+ ruleTester.describe(rule, {
56
+ valid: [
57
+ \`a\`,
58
+ \`a\`,
59
+ ~~~
60
+ This test code already appeared in a previous test.
61
+ ],
62
+ invalid: []
63
+ });
64
+ `,
65
+ },
66
+ {
67
+ code: `
68
+ ruleTester.describe(rule, {
69
+ valid: [
70
+ { code: "a" },
71
+ { code: "a" },
72
+ ],
73
+ invalid: []
74
+ });
75
+ `,
76
+ snapshot: `
77
+ ruleTester.describe(rule, {
78
+ valid: [
79
+ { code: "a" },
80
+ { code: "a" },
81
+ ~~~~~~~~~~~~~
82
+ This test code already appeared in a previous test.
83
+ ],
84
+ invalid: []
85
+ });
86
+ `,
87
+ },
88
+ {
89
+ code: `
90
+ ruleTester.describe(rule, {
91
+ valid: [
92
+ { code: "a", fileName: "b.ts" },
93
+ { code: "a", fileName: "b.ts" },
94
+ ],
95
+ invalid: []
96
+ });
97
+ `,
98
+ snapshot: `
99
+ ruleTester.describe(rule, {
100
+ valid: [
101
+ { code: "a", fileName: "b.ts" },
102
+ { code: "a", fileName: "b.ts" },
103
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104
+ This test code already appeared in a previous test.
105
+ ],
106
+ invalid: []
107
+ });
108
+ `,
109
+ },
110
+ {
111
+ code: `
112
+ ruleTester.describe(rule, {
113
+ valid: [
114
+ { code: "a", fileName: "b.ts", options: { c: "d" } },
115
+ { code: "a", fileName: "b.ts", options: { c: "d" } },
116
+ ],
117
+ invalid: []
118
+ });
119
+ `,
120
+ snapshot: `
121
+ ruleTester.describe(rule, {
122
+ valid: [
123
+ { code: "a", fileName: "b.ts", options: { c: "d" } },
124
+ { code: "a", fileName: "b.ts", options: { c: "d" } },
125
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
126
+ This test code already appeared in a previous test.
127
+ ],
128
+ invalid: []
129
+ });
130
+ `,
131
+ },
132
+ ],
133
+ valid: [
134
+ `
135
+ describe(rule, {
136
+ valid: ['a', 'a'],
137
+ invalid: []
138
+ });
139
+ `,
140
+ `
141
+ ruleTester.describe(rule, {
142
+ valid: ['a', 'b'],
143
+ invalid: []
144
+ });
145
+ `,
146
+ `
147
+ ruleTester.describe(rule, {
148
+ valid: [
149
+ { code: \`a\`, fileName: "b.ts" },
150
+ { code: \`a\`, fileName: "c.ts" },
151
+ ],
152
+ invalid: []
153
+ });
154
+ `,
155
+ `
156
+ ruleTester.describe(rule, {
157
+ valid: [
158
+ { code: \`a\`, fileName: "b.ts", options: { c: "d" } },
159
+ { code: \`a\`, fileName: "b.ts", options: { c: "e" } },
160
+ ],
161
+ invalid: []
162
+ });
163
+ `,
164
+ `
165
+ ruleTester.describe(rule, {
166
+ valid: [
167
+ { code: \`a\`, fileName: "b.ts", options: { c: "d" } },
168
+ { code: \`a\`, fileName: "c.ts", options: { c: "d" } },
169
+ ],
170
+ invalid: []
171
+ });
172
+ `,
173
+ ],
174
+ });
@@ -0,0 +1,57 @@
1
+ import { getTSNodeRange, typescriptLanguage } from "@flint.fyi/ts";
2
+
3
+ import {
4
+ getRuleTesterDescribedCases,
5
+ ParsedTestCase,
6
+ } from "./getRuleTesterDescribedCases.js";
7
+
8
+ export default typescriptLanguage.createRule({
9
+ about: {
10
+ id: "duplicateTestCases",
11
+ preset: "logical",
12
+ },
13
+ messages: {
14
+ duplicateTest: {
15
+ primary: "This test code already appeared in a previous test.",
16
+ secondary: ["TODO"],
17
+ suggestions: [
18
+ "Delete this redundant test case.",
19
+ "Change a property to make the test case unique.",
20
+ ],
21
+ },
22
+ },
23
+ setup(context) {
24
+ function checkTestCases(testCases: ParsedTestCase[]) {
25
+ const seen = new Set<string>();
26
+
27
+ for (const testCase of testCases) {
28
+ const key = JSON.stringify({
29
+ code: testCase.code,
30
+ fileName: testCase.fileName,
31
+ options: testCase.options,
32
+ });
33
+
34
+ if (seen.has(key)) {
35
+ context.report({
36
+ message: "duplicateTest",
37
+ range: getTSNodeRange(testCase.node, context.sourceFile),
38
+ });
39
+ } else {
40
+ seen.add(key);
41
+ }
42
+ }
43
+ }
44
+
45
+ return {
46
+ CallExpression(node) {
47
+ const describedCases = getRuleTesterDescribedCases(node);
48
+ if (!describedCases) {
49
+ return;
50
+ }
51
+
52
+ checkTestCases(describedCases.invalid);
53
+ checkTestCases(describedCases.valid);
54
+ },
55
+ };
56
+ },
57
+ });
@@ -0,0 +1,102 @@
1
+ import { TestCase } from "@flint.fyi/rule-tester";
2
+ import * as ts from "typescript";
3
+
4
+ import { isTruthy } from "./isTruthy.js";
5
+ import { tsAstToLiteral } from "./tsAstToLiteral.js";
6
+
7
+ export interface ParsedTestCase extends TestCase {
8
+ node: ts.Node;
9
+ }
10
+
11
+ export function getRuleTesterDescribedCases(node: ts.CallExpression) {
12
+ if (
13
+ !ts.isPropertyAccessExpression(node.expression) ||
14
+ !ts.isIdentifier(node.expression.expression) ||
15
+ !ts.isIdentifier(node.expression.name) ||
16
+ node.expression.name.text !== "describe" ||
17
+ node.arguments.length !== 2
18
+ ) {
19
+ return undefined;
20
+ }
21
+
22
+ // TODO: Check node.expression.expression's type for being a RuleTester
23
+ // https://github.com/JoshuaKGoldberg/flint/issues/152
24
+
25
+ const argument = node.arguments[1];
26
+ if (!ts.isObjectLiteralExpression(argument)) {
27
+ return undefined;
28
+ }
29
+
30
+ const invalid = findProperty(
31
+ argument.properties,
32
+ "invalid",
33
+ ts.isArrayLiteralExpression,
34
+ );
35
+ if (!invalid) {
36
+ return undefined;
37
+ }
38
+
39
+ const valid = findProperty(
40
+ argument.properties,
41
+ "valid",
42
+ ts.isArrayLiteralExpression,
43
+ );
44
+ if (!valid) {
45
+ return undefined;
46
+ }
47
+
48
+ return {
49
+ invalid: invalid.elements.map(parseTestCase).filter(isTruthy),
50
+ valid: valid.elements.map(parseTestCase).filter(isTruthy),
51
+ };
52
+ }
53
+
54
+ function findProperty<Node extends ts.Node>(
55
+ properties: ts.NodeArray<ts.ObjectLiteralElementLike>,
56
+ name: string,
57
+ predicate: (node: ts.Node) => node is Node,
58
+ ) {
59
+ return properties.find(
60
+ (property): property is ts.PropertyAssignment & { initializer: Node } =>
61
+ ts.isPropertyAssignment(property) &&
62
+ ts.isIdentifier(property.name) &&
63
+ property.name.text === name &&
64
+ predicate(property.initializer),
65
+ )?.initializer;
66
+ }
67
+
68
+ function parseTestCase(node: ts.Expression): ParsedTestCase | undefined {
69
+ if (ts.isStringLiteralLike(node)) {
70
+ return {
71
+ code: node.text,
72
+ node,
73
+ };
74
+ }
75
+
76
+ if (!ts.isObjectLiteralExpression(node)) {
77
+ return undefined;
78
+ }
79
+
80
+ const code = findProperty(node.properties, "code", ts.isStringLiteralLike);
81
+ if (!code) {
82
+ return undefined;
83
+ }
84
+
85
+ const fileName = findProperty(
86
+ node.properties,
87
+ "fileName",
88
+ ts.isStringLiteralLike,
89
+ );
90
+ const options = findProperty(
91
+ node.properties,
92
+ "options",
93
+ ts.isObjectLiteralExpression,
94
+ );
95
+
96
+ return {
97
+ code: code.text,
98
+ fileName: fileName?.text,
99
+ node,
100
+ options: options && tsAstToLiteral(options),
101
+ };
102
+ }
@@ -0,0 +1,5 @@
1
+ export function isTruthy<T extends NonNullable<unknown>>(
2
+ value: null | T | undefined,
3
+ ) {
4
+ return value != null;
5
+ }
@@ -0,0 +1,4 @@
1
+ import { RuleTester } from "@flint.fyi/rule-tester";
2
+ import { describe, it } from "vitest";
3
+
4
+ export const ruleTester = new RuleTester({ describe, it });
@@ -0,0 +1,55 @@
1
+ // Fork of ts-ast-to-literal pending:
2
+ // https://github.com/dword-design/ts-ast-to-literal/issues/89
3
+
4
+ // Changing from the switch to manual ifs is due to:
5
+ // https://github.com/Microsoft/TypeScript/issues/56275
6
+
7
+ import ts from "typescript";
8
+
9
+ export function tsAstToLiteral(node: ts.ArrayLiteralExpression): unknown[];
10
+ export function tsAstToLiteral(node: ts.ObjectLiteralExpression): object;
11
+ export function tsAstToLiteral(node: ts.Node): unknown;
12
+ export function tsAstToLiteral(node: ts.Node): unknown {
13
+ switch (node.kind) {
14
+ case ts.SyntaxKind.FalseKeyword:
15
+ return false;
16
+ case ts.SyntaxKind.NullKeyword:
17
+ return null;
18
+ case ts.SyntaxKind.TrueKeyword:
19
+ return true;
20
+ }
21
+
22
+ if (ts.isArrayLiteralExpression(node)) {
23
+ return node.elements
24
+ .filter((element) => element.kind !== ts.SyntaxKind.SpreadElement)
25
+ .map((element) => tsAstToLiteral(element));
26
+ }
27
+
28
+ if (ts.isNumericLiteral(node)) {
29
+ return parseFloat(node.text);
30
+ }
31
+
32
+ if (ts.isObjectLiteralExpression(node)) {
33
+ return Object.fromEntries(
34
+ node.properties
35
+ .filter(
36
+ (
37
+ property,
38
+ ): property is ts.PropertyAssignment & { name: ts.Identifier } =>
39
+ ts.isPropertyAssignment(property) &&
40
+ (property.name.kind === ts.SyntaxKind.Identifier ||
41
+ property.name.kind === ts.SyntaxKind.StringLiteral),
42
+ )
43
+ .map((property) => [
44
+ property.name.escapedText || property.name.text,
45
+ tsAstToLiteral(property.initializer),
46
+ ]),
47
+ );
48
+ }
49
+
50
+ if (ts.isStringLiteral(node)) {
51
+ return node.text;
52
+ }
53
+
54
+ return undefined;
55
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "compilerOptions": {
3
+ "outDir": "lib",
4
+ "rootDir": "src"
5
+ },
6
+ "extends": "../../tsconfig.base.json",
7
+ "include": ["src"]
8
+ }
@@ -0,0 +1 @@
1
+ {"fileNames":["../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../core/lib/types/ranges.d.ts","../core/lib/types/fixes.d.ts","../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/typescript.d.ts","../core/lib/types/context.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/helpers/typeAliases.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/helpers/util.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/ZodError.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/locales/en.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/errors.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/helpers/parseUtil.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/helpers/enumUtil.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/helpers/errorUtil.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/helpers/partialUtil.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/standard-schema.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/types.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/external.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/v3/index.d.ts","../../node_modules/.pnpm/zod@3.25.67/node_modules/zod/dist/types/index.d.ts","../core/lib/types/shapes.d.ts","../core/lib/types/rules.d.ts","../core/lib/types/reports.d.ts","../core/lib/types/languages.d.ts","../core/lib/types/cache.d.ts","../core/lib/types/linting.d.ts","../core/lib/cache/writeToCache.d.ts","../core/lib/types/configs.d.ts","../core/lib/configs/defineConfig.d.ts","../core/lib/configs/isConfig.d.ts","../core/lib/types/formatting.d.ts","../core/lib/formatting/runPrettier.d.ts","../core/lib/languages/createLanguage.d.ts","../core/lib/types/plugins.d.ts","../core/lib/plugins/createPlugin.d.ts","../core/lib/reporting/formatReportPrimary.d.ts","../core/lib/running/runConfig.d.ts","../core/lib/running/runConfigFixing.d.ts","../core/lib/types/modes.d.ts","../core/lib/utils/predicates.d.ts","../core/lib/index.d.ts","../ts/lib/getTSNodeRange.d.ts","../ts/lib/nodes.d.ts","../ts/lib/language.d.ts","../ts/lib/plugin.d.ts","../ts/lib/index.d.ts","../rule-tester/lib/types.d.ts","../rule-tester/lib/RuleTester.d.ts","../rule-tester/lib/index.d.ts","./src/rules/isTruthy.ts","./src/rules/tsAstToLiteral.ts","./src/rules/getRuleTesterDescribedCases.ts","./src/rules/duplicateTestCases.ts","./src/flint.ts","./src/index.ts","../../node_modules/.pnpm/@vitest+pretty-format@3.2.4/node_modules/@vitest/pretty-format/dist/index.d.ts","../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/helpers.d.ts","../../node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/index-8b61d5bc.d.ts","../../node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/node.d.ts","../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/index.d.ts","../../node_modules/.pnpm/@vitest+runner@3.2.4/node_modules/@vitest/runner/dist/tasks.d-CkscK4of.d.ts","../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/types.d-BCElaP-c.d.ts","../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/diff.d.ts","../../node_modules/.pnpm/@vitest+runner@3.2.4/node_modules/@vitest/runner/dist/types.d.ts","../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/error.d.ts","../../node_modules/.pnpm/@vitest+runner@3.2.4/node_modules/@vitest/runner/dist/index.d.ts","../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/optional-types.d.ts","../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/dist/chunks/environment.d.cL3nLXbE.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/utility.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/h2c-client.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/mock-call-history.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/util.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/eventsource.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@7.8.0/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/dom-events.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/sqlite.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@24.0.4/node_modules/@types/node/index.d.ts","../../node_modules/.pnpm/@types+estree@1.0.7/node_modules/@types/estree/index.d.ts","../../node_modules/.pnpm/rollup@4.41.0/node_modules/rollup/dist/rollup.d.ts","../../node_modules/.pnpm/rollup@4.41.0/node_modules/rollup/dist/parseAst.d.ts","../../node_modules/.pnpm/vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite/types/hmrPayload.d.ts","../../node_modules/.pnpm/vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite/types/customEvent.d.ts","../../node_modules/.pnpm/vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite/types/hot.d.ts","../../node_modules/.pnpm/vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite/dist/node/moduleRunnerTransport.d-DJ_mE5sf.d.ts","../../node_modules/.pnpm/vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite/dist/node/module-runner.d.ts","../../node_modules/.pnpm/esbuild@0.25.4/node_modules/esbuild/lib/main.d.ts","../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/source-map.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/previous-map.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/input.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/css-syntax-error.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/declaration.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/root.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/warning.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/lazy-result.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/no-work-result.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/processor.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/result.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/document.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/rule.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/node.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/comment.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/container.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/at-rule.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/list.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/postcss.d.ts","../../node_modules/.pnpm/postcss@8.5.3/node_modules/postcss/lib/postcss.d.mts","../../node_modules/.pnpm/vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite/types/internal/lightningcssOptions.d.ts","../../node_modules/.pnpm/vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite/types/internal/cssPreprocessorOptions.d.ts","../../node_modules/.pnpm/vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite/types/importGlob.d.ts","../../node_modules/.pnpm/vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite/types/metadata.d.ts","../../node_modules/.pnpm/vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite/dist/node/index.d.ts","../../node_modules/.pnpm/@vitest+mocker@3.2.4_vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0_/node_modules/@vitest/mocker/dist/registry.d-D765pazg.d.ts","../../node_modules/.pnpm/@vitest+mocker@3.2.4_vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0_/node_modules/@vitest/mocker/dist/types.d-D_aRZRdy.d.ts","../../node_modules/.pnpm/@vitest+mocker@3.2.4_vite@6.3.5_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0_/node_modules/@vitest/mocker/dist/index.d.ts","../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/source-map.d.ts","../../node_modules/.pnpm/vite-node@3.2.4_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite-node/dist/trace-mapping.d-DLVdEqOp.d.ts","../../node_modules/.pnpm/vite-node@3.2.4_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite-node/dist/index.d-DGmxD2U7.d.ts","../../node_modules/.pnpm/vite-node@3.2.4_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite-node/dist/index.d.ts","../../node_modules/.pnpm/@vitest+snapshot@3.2.4/node_modules/@vitest/snapshot/dist/environment.d-DHdQ1Csl.d.ts","../../node_modules/.pnpm/@vitest+snapshot@3.2.4/node_modules/@vitest/snapshot/dist/rawSnapshot.d-lFsMJFUd.d.ts","../../node_modules/.pnpm/@vitest+snapshot@3.2.4/node_modules/@vitest/snapshot/dist/index.d.ts","../../node_modules/.pnpm/@vitest+snapshot@3.2.4/node_modules/@vitest/snapshot/dist/environment.d.ts","../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/dist/chunks/config.d.D2ROskhv.d.ts","../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/dist/chunks/worker.d.1GmBbd7G.d.ts","../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../node_modules/.pnpm/@types+chai@5.2.2/node_modules/@types/chai/index.d.ts","../../node_modules/.pnpm/@vitest+runner@3.2.4/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@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/dist/chunks/benchmark.d.BwvBVTda.d.ts","../../node_modules/.pnpm/vite-node@3.2.4_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vite-node/dist/client.d.ts","../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/dist/chunks/coverage.d.S9RMNXIe.d.ts","../../node_modules/.pnpm/@vitest+snapshot@3.2.4/node_modules/@vitest/snapshot/dist/manager.d.ts","../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/dist/chunks/reporters.d.BFLkQcL6.d.ts","../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/dist/chunks/worker.d.CKwWzBSj.d.ts","../../node_modules/.pnpm/@vitest+spy@3.2.4/node_modules/@vitest/spy/dist/index.d.ts","../../node_modules/.pnpm/@vitest+expect@3.2.4/node_modules/@vitest/expect/dist/index.d.ts","../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/dist/chunks/global.d.MAmajcmJ.d.ts","../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/dist/chunks/vite.d.CMLlLIFP.d.ts","../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/dist/chunks/mocker.d.BE_2ls6u.d.ts","../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/dist/chunks/suite.d.FvehnV49.d.ts","../../node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/utils.d.ts","../../node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/overloads.d.ts","../../node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/branding.d.ts","../../node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/messages.d.ts","../../node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/index.d.ts","../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.0.4_jiti@2.4.2_yaml@2.8.0/node_modules/vitest/dist/index.d.ts","./src/rules/ruleTester.ts","./src/rules/duplicateTestCases.test.ts","../../node_modules/.pnpm/@types+estree@1.0.8/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/@types+eslint@9.6.1/node_modules/@types/eslint/use-at-your-own-risk.d.ts","../../node_modules/.pnpm/@types+eslint@9.6.1/node_modules/@types/eslint/index.d.ts","../../node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../../node_modules/.pnpm/@types+eslint-plugin-markdown@2.0.2/node_modules/@types/eslint-plugin-markdown/index.d.ts","../../node_modules/.pnpm/@types+mdast@4.0.4/node_modules/@types/mdast/index.d.ts","../../node_modules/.pnpm/@types+omit-empty@1.0.4/node_modules/@types/omit-empty/index.d.ts"],"fileIdsList":[[148,192,290],[148,192],[148,192,317,318],[148,192,314,315,316],[148,192,317],[148,192,318],[148,189,192],[148,191,192],[192],[148,192,197,227],[148,192,193,198,204,205,212,224,235],[148,192,193,194,204,212],[148,192,195,236],[148,192,196,197,205,213],[148,192,197,224,232],[148,192,198,200,204,212],[148,191,192,199],[148,192,200,201],[148,192,202,204],[148,191,192,204],[148,192,204,205,206,224,235],[148,192,204,205,206,219,224,227],[148,187,192],[148,187,192,200,204,207,212,224,235],[148,192,204,205,207,208,212,224,232,235],[148,192,207,209,224,232,235],[146,147,148,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,232,233,234,235,236,237,238,239,240,241],[148,192,204,210],[148,192,211,235],[148,192,200,204,212,224],[148,192,213],[148,192,214],[148,191,192,215],[148,189,190,191,192,193,194,195,196,197,198,199,200,201,202,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,232,233,234,235,236,237,238,239,240,241],[148,192,217],[148,192,218],[148,192,204,219,220],[148,192,219,221,236,238],[148,192,204,224,225,227],[148,192,226,227],[148,192,224,225],[148,192,227],[148,192,228],[148,189,192,224],[148,192,204,230,231],[148,192,230,231],[148,192,197,212,224,232],[148,192,233],[148,192,212,234],[148,192,207,218,235],[148,192,197,236],[148,192,224,237],[148,192,211,238],[148,192,239],[148,192,204,206,215,224,227,235,237,238,240],[148,192,224,241],[136,137,140,148,192,300],[148,192,277,278],[137,138,140,141,142,148,192],[137,148,192],[137,138,140,148,192],[137,138,148,192],[148,192,284],[132,148,192,284,285],[132,148,192,284],[132,139,148,192],[133,148,192],[132,133,134,136,148,192],[132,148,192],[148,192,306,307],[148,192,306,307,308,309],[148,192,306,308],[148,192,306],[148,192,267],[148,192,265,267],[148,192,256,264,265,266,268],[148,192,254],[148,192,257,262,267,270],[148,192,253,270],[148,192,257,258,261,262,263,270],[148,192,257,258,259,261,262,270],[148,192,254,255,256,257,258,262,263,264,266,267,268,270],[148,192,270],[148,192,252,254,255,256,257,258,259,261,262,263,264,265,266,267,268,269],[148,192,252,270],[148,192,257,259,260,262,263,270],[148,192,261,270],[148,192,262,263,267,270],[148,192,255,265],[148,192,244,275,276],[148,192,243,244],[135,148,192],[148,157,161,192,235],[148,157,192,224,235],[148,192,224],[148,152,192],[148,154,157,192,235],[148,192,212,232],[148,192,242],[148,152,192,242],[148,154,157,192,212,235],[148,149,150,151,153,156,192,204,224,235],[148,157,165,192],[148,150,155,192],[148,157,181,182,192],[148,150,153,157,192,227,235,242],[148,157,192],[148,149,192],[148,152,153,154,155,156,157,158,159,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,182,183,184,185,186,192],[148,157,174,177,192,200],[148,157,165,166,167,192],[148,155,157,166,168,192],[148,156,192],[148,150,152,157,192],[148,157,161,166,168,192],[148,161,192],[148,155,157,160,192,235],[148,150,154,157,165,192],[148,157,174,192],[148,152,157,181,192,227,240,242],[148,192,281,282],[148,192,281],[148,192,204,205,207,208,209,212,224,232,235,241,242,244,245,246,247,249,250,251,271,272,273,274,275,276],[148,192,246,247,248,249],[148,192,246],[148,192,247],[148,192,244,276],[143,148,192,292,293,302],[132,140,143,148,192,286,287,302],[148,192,295],[144,148,192],[132,143,145,148,192,286,294,301,302],[148,192,279],[132,137,140,143,145,148,192,195,205,224,276,279,280,283,286,288,289,291,294,296,297,302,303],[143,148,192,292,293,294,302],[148,192,276,298,303],[143,145,148,192,283,286,288,302],[148,192,240,289],[132,137,140,143,144,145,148,192,195,205,224,240,276,279,280,283,286,287,288,289,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,310],[95,148,192],[83,84,95,148,192],[85,86,148,192],[83,84,85,87,88,93,148,192],[84,85,148,192],[93,148,192],[94,148,192],[85,148,192],[83,84,85,88,89,90,91,92,148,192],[102,148,192],[104,148,192],[107,148,192],[79,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,148,192],[100,148,192],[98,110,148,192],[99,148,192],[102,104,148,192],[99,100,148,192],[98,148,192],[81,99,148,192],[79,148,192],[97,98,99,148,192],[99,100,101,148,192],[97,98,148,192],[79,80,98,148,192],[82,97,99,100,148,192],[96,148,192],[117,129,148,192],[130,148,192],[129,148,192,312],[122,128,148,192],[81,125,126,127,148,192],[125,148,192,311],[81,148,192],[117,123,148,192],[123,124,148,192],[81,117,148,192],[118,120,121,148,192],[81,117,119,148,192],[96,117,119,120,148,192]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"98e8ed190cb760a979a50d31cd347c91393944c6182f135c22a62f8befb4d6df","impliedFormat":99},{"version":"e01106df7ed40dd103dbdf248e0434aca7ffb100876ca3004ad526cd42edfc13","impliedFormat":99},{"version":"c302df1d6f371c6064cb5f4d0b41165425b682b287a3b8625527b2752eb433ee","impliedFormat":1},{"version":"ae833324cedc4f5c04f96c38915500418f7a3a33b8a8a1e3fd7b640dd6779562","impliedFormat":99},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"54f6ec6ea75acea6eb23635617252d249145edbc7bcd9d53f2d70280d2aef953","impliedFormat":1},{"version":"c25ce98cca43a3bfa885862044be0d59557be4ecd06989b2001a83dcf69620fd","impliedFormat":1},{"version":"8e71e53b02c152a38af6aec45e288cc65bede077b92b9b43b3cb54a37978bb33","impliedFormat":1},{"version":"754a9396b14ca3a4241591afb4edc644b293ccc8a3397f49be4dfd520c08acb3","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"de2316e90fc6d379d83002f04ad9698bc1e5285b4d52779778f454dd12ce9f44","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"2da997a01a6aa5c5c09de5d28f0f4407b597c5e1aecfd32f1815809c532650a2","impliedFormat":1},{"version":"5d26d2e47e2352def36f89a3e8bf8581da22b7f857e07ef3114cd52cf4813445","impliedFormat":1},{"version":"3db2efd285e7328d8014b54a7fce3f4861ebcdc655df40517092ed0050983617","impliedFormat":1},{"version":"d5d39a24c759df40480a4bfc0daffd364489702fdbcbdfc1711cde34f8739995","impliedFormat":1},{"version":"c6566d8227aeb5ffdba963e716bd7e7d5cdd10728fbcea3a63cea32af4ccfe72","impliedFormat":99},{"version":"478965e8a0690760d9875eb650e943bb2638430384ce1ef7d78ac3697723ead7","impliedFormat":99},{"version":"f77fbb4e4d2523c8228d2af8928c5ba208ae1344c47e7e1c0462ebd24f7613c2","impliedFormat":99},{"version":"9d89d62b74729ea66badb2dd91edfa0efb98a26db366434c803e89934a8f244c","impliedFormat":99},{"version":"f5db71f326e6f2e35ce075623efc2cd24a866bbd572f669a99a9ffc6364449c0","impliedFormat":99},{"version":"79b0e1b0688b4fde29c80461e62cc852cda16c3f50bff001a522399b91caca74","impliedFormat":99},{"version":"ae2eb9188fcef28fba5bee9ccef23da068a9aa55699a5d8cb30b5bbc24ef95b9","impliedFormat":99},{"version":"5f0f0a5e2551b652e7471627dbda26bcf187d6d22c362cf52db65beac6366d0e","impliedFormat":99},{"version":"26dc78cdfb86e4edaf267ef9a719aced3a416e1b5e1293c28011dd13bb6af35c","impliedFormat":99},{"version":"80ed9fd71a6e86cf4f55a3c8820d2c176b93777773f3e866080ea8f02975e8e1","impliedFormat":99},{"version":"77afeb1f41a20197ade992db8035edc9f0feb3bd6f24e8498a9f227ee6a9e80f","impliedFormat":99},{"version":"0d4903253f5c76e7aa7ddd2d767cb28803dc97b7137fef20a8c4fd3fc7b972de","impliedFormat":99},{"version":"4b51f8dda31271d1449b090b6f16e92ef1f62a13b19377625d6b8952ba9fd9cd","impliedFormat":99},{"version":"6ca18f95ca83888df1947ddb5f0a49dfb784649ca518f1f7d7fa24c527e0ad89","impliedFormat":99},{"version":"407cfd0caee8cbc686a0185e04f433c96423c8f27f402bbdba29c30beed9d117","impliedFormat":99},{"version":"317d7fe8fa13082666ad2a80096b6fd8c7cd8257fbbc4ae22c7cf5147d99094a","impliedFormat":99},{"version":"d72ad56118d3e4fcb71c05b3208372dfb14ff68c2a111dcb84d8247dca173efa","impliedFormat":99},{"version":"4d0511204d875da06f4c63fb16259789bc9cc6c9dac7c8ec910d1b0dcfee2d8c","impliedFormat":99},{"version":"7760008c3b783452e63951ffca546db03ba3e03a08e9ba3237dd5c8c8ee8c3f1","impliedFormat":99},{"version":"4e030cf27219ffd49849313f2363fbe3b895e889b7f3375e3b0fe58a5e9f922f","impliedFormat":99},{"version":"b41d81540f5c6b99a0e6936aee8f5b75a2dd49d89fd987a948c4f39934655561","impliedFormat":99},{"version":"94a046e1f8504d393f663811aa4257198e791f01816e2ae183ec99a15f70dbda","impliedFormat":99},{"version":"2eaf4158a1f46928335c7b0ace6033638c1ecd8d43f36d1621312367934366a8","impliedFormat":99},{"version":"198ab67d09e70be313bdbf72cadc9ca1fbdf2d33dcdb98113e71810de56da458","impliedFormat":99},{"version":"2c498123c715e5eb9c8a917d2e0593e41d1cbdbf1589e10041eda0d437149da5","impliedFormat":99},{"version":"14727ee329566b67e6667746139cb5e9f8966b7d0ce47d8198bd4b37d6331490","impliedFormat":99},{"version":"c78cd249b9a35b46c5ccf411f66ae9f2bdae9eec9958e8e353a202c95ccfd51b","impliedFormat":99},{"version":"72716e446224b7704ade1de123bace52b3ba3439ba808baccef3575f2f0d1f1a","impliedFormat":99},{"version":"5bd6ea037c76b2431dd302e205be7e3209a8769bed3124cf836fe7ea991b0b82","impliedFormat":99},{"version":"552b641c691bed9ce0f153f4eb5f3c46c71005d0b7267a06d13c2906a185a4e9","signature":"1748e303016ac9efee0f9174e4747374d54c93c644b869e562b4f0878a4436cf","impliedFormat":99},{"version":"3aaaeaf48c2a68dd2f55ce03caad047b65bbcbbc7cb5fd2aef7a0c54f1977f85","signature":"16824025d821c63cc9c726dd78bc8f24c70864094b373427258bd11e88f8b13e","impliedFormat":99},{"version":"74abfc1dcebc9ca10cf4e0bd130b6b05f0aaa74a6d16c1c276b10ae4030e09d7","signature":"916471c7c8ef399c15f0dd355deed04c86e61b45d3c263e1b791fc27f423e1fe","impliedFormat":99},{"version":"f80509db02156b71d44b7574923646f13d0325b9111ec8eeb3f99f6471f1d50a","signature":"e7023ddf199200a7d47f0eb7b0bdaad639a8ecf54d283cae066857250d7ce665","impliedFormat":99},{"version":"edc3a74c7b34ccda1c8894c2f45b9fde0a9fc0dd35be18b4e4fde84181829102","signature":"05ea49a4ffdfffb1da90aa9ffcda61a3b8421e26c90539e1a6f34f92ddeeb680","impliedFormat":99},{"version":"ab1a03c60a6cbcf2e48e300c09c62b241fd3be3981e6d11797f64ee3287cf77a","impliedFormat":99},{"version":"5c54a34e3d91727f7ae840bfe4d5d1c9a2f93c54cb7b6063d06ee4a6c3322656","impliedFormat":99},{"version":"db4da53b03596668cf6cc9484834e5de3833b9e7e64620cf08399fe069cd398d","impliedFormat":99},{"version":"ac7c28f153820c10850457994db1462d8c8e462f253b828ad942a979f726f2f9","impliedFormat":99},{"version":"f9b028d3c3891dd817e24d53102132b8f696269309605e6ed4f0db2c113bbd82","impliedFormat":99},{"version":"fb7c8d90e52e2884509166f96f3d591020c7b7977ab473b746954b0c8d100960","impliedFormat":99},{"version":"0bff51d6ed0c9093f6955b9d8258ce152ddb273359d50a897d8baabcb34de2c4","impliedFormat":99},{"version":"45cec9a1ba6549060552eead8959d47226048e0b71c7d0702ae58b7e16a28912","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"13918e2b81c4288695f9b1f3dcc2468caf0f848d5c1f3dc00071c619d34ff63a","impliedFormat":99},{"version":"6907b09850f86610e7a528348c15484c1e1c09a18a9c1e98861399dfe4b18b46","impliedFormat":99},{"version":"12deea8eaa7a4fc1a2908e67da99831e5c5a6b46ad4f4f948fd4759314ea2b80","impliedFormat":99},{"version":"f0a8b376568a18f9a4976ecb0855187672b16b96c4df1c183a7e52dc1b5d98e8","impliedFormat":99},{"version":"8124828a11be7db984fcdab052fd4ff756b18edcfa8d71118b55388176210923","impliedFormat":99},{"version":"092944a8c05f9b96579161e88c6f211d5304a76bd2c47f8d4c30053269146bc8","impliedFormat":99},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0671b50bb99cc7ad46e9c68fa0e7f15ba4bc898b59c31a17ea4611fab5095da","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"e525f9e67f5ddba7b5548430211cae2479070b70ef1fd93550c96c10529457bd","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"17fe9131bec653b07b0a1a8b99a830216e3e43fe0ea2605be318dc31777c8bbf","impliedFormat":1},{"version":"3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","impliedFormat":1},{"version":"2c9875466123715464539bfd69bcaccb8ff6f3e217809428e0d7bd6323416d01","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"2472ef4c28971272a897fdb85d4155df022e1f5d9a474a526b8fc2ef598af94e","impliedFormat":1},{"version":"6c8e442ba33b07892169a14f7757321e49ab0f1032d676d321a1fdab8a67d40c","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"1cd673d367293fc5cb31cd7bf03d598eb368e4f31f39cf2b908abbaf120ab85a","impliedFormat":1},{"version":"19851a6596401ca52d42117108d35e87230fc21593df5c4d3da7108526b6111c","impliedFormat":1},{"version":"3825bf209f1662dfd039010a27747b73d0ef379f79970b1d05601ec8e8a4249f","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"40bfc70953be2617dc71979c14e9e99c5e65c940a4f1c9759ddb90b0f8ff6b1a","impliedFormat":1},{"version":"da52342062e70c77213e45107921100ba9f9b3a30dd019444cf349e5fb3470c4","impliedFormat":1},{"version":"e9ace91946385d29192766bf783b8460c7dbcbfc63284aa3c9cae6de5155c8bc","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"561c60d8bfe0fec2c08827d09ff039eca0c1f9b50ef231025e5a549655ed0298","impliedFormat":1},{"version":"1e30c045732e7db8f7a82cf90b516ebe693d2f499ce2250a977ec0d12e44a529","impliedFormat":1},{"version":"84b736594d8760f43400202859cda55607663090a43445a078963031d47e25e7","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"e38d4fdf79e1eadd92ed7844c331dbaa40f29f21541cfee4e1acff4db09cda33","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"7c10a32ae6f3962672e6869ee2c794e8055d8225ef35c91c0228e354b4e5d2d3","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"99f569b42ea7e7c5fe404b2848c0893f3e1a56e0547c1cd0f74d5dbb9a9de27e","impliedFormat":1},{"version":"f4b4faedc57701ae727d78ba4a83e466a6e3bdcbe40efbf913b17e860642897c","affectsGlobalScope":true,"impliedFormat":1},{"version":"bbcfd9cd76d92c3ee70475270156755346c9086391e1b9cb643d072e0cf576b8","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"59c893bb05d8d6da5c6b85b6670f459a66f93215246a92b6345e78796b86a9a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"938f94db8400d0b479626b9006245a833d50ce8337f391085fad4af540279567","impliedFormat":1},{"version":"c4e8e8031808b158cfb5ac5c4b38d4a26659aec4b57b6a7e2ba0a141439c208c","impliedFormat":1},{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"12fb9c13f24845000d7bd9660d11587e27ef967cbd64bd9df19ae3e6aa9b52d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"289e9894a4668c61b5ffed09e196c1f0c2f87ca81efcaebdf6357cfb198dac14","impliedFormat":1},{"version":"25a1105595236f09f5bce42398be9f9ededc8d538c258579ab662d509aa3b98e","impliedFormat":1},{"version":"4ea4cb9f755b97e72fd2f42e2d9786baf9184a8625085a24dc7ea96734d5986b","impliedFormat":1},{"version":"bd1b3b48920e1bd6d52133f95153a5d94aa1b3555e5f30b2154336e52abd29bd","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true,"impliedFormat":1},{"version":"62f572306e0b173cc5dfc4c583471151f16ef3779cf27ab96922c92ec82a3bc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f32444438ecb1fa4519f6ec3977d69ce0e3acfa18b803e5cd725c204501f350","impliedFormat":1},{"version":"0ab3c844f1eb5a1d94c90edc346a25eb9d3943af7a7812f061bf2d627d8afac0","impliedFormat":1},{"version":"ecfb45485e692f3eb3d0aef6e460adeabf670cef2d07e361b2be20cecfd0046b","impliedFormat":1},{"version":"161f09445a8b4ba07f62ae54b27054e4234e7957062e34c6362300726dabd315","impliedFormat":1},{"version":"77fced47f495f4ff29bb49c52c605c5e73cd9b47d50080133783032769a9d8a6","impliedFormat":1},{"version":"e6057f9e7b0c64d4527afeeada89f313f96a53291705f069a9193c18880578cb","impliedFormat":1},{"version":"04d05a9e1a2bc190bb5401373ad04622b844b3383a199f1c480000f53a2cdb5c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0f5cda0282e1d18198e2887387eb2f026372ebc4e11c4e4516fef8a19ee4d514","impliedFormat":1},{"version":"e99b0e71f07128fc32583e88ccd509a1aaa9524c290efb2f48c22f9bf8ba83b1","impliedFormat":1},{"version":"76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86","impliedFormat":1},{"version":"237581f5ec4620a17e791d3bb79bad3af01e27a274dbee875ac9b0721a4fe97d","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8a99a5e6ed33c4a951b67cc1fd5b64fd6ad719f5747845c165ca12f6c21ba16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"e6d81b1f7ab11dc1b1ad7ad29fcfad6904419b36baf55ed5e80df48d56ac3aff","impliedFormat":1},{"version":"1013eb2e2547ad8c100aca52ef9df8c3f209edee32bb387121bb3227f7c00088","impliedFormat":1},{"version":"b6b8e3736383a1d27e2592c484a940eeb37ec4808ba9e74dd57679b2453b5865","impliedFormat":1},{"version":"d6f36b683c59ac0d68a1d5ee906e578e2f5e9a285bca80ff95ce61cdc9ddcdeb","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"27e4532aaaa1665d0dd19023321e4dc12a35a741d6b8e1ca3517fcc2544e0efe","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea713aa14a670b1ea0fbaaca4fd204e645f71ca7653a834a8ec07ee889c45de6","impliedFormat":1},{"version":"cd9c0ecbe36a3be0775bfc16ae30b95af2a4a1f10e7949ceab284c98750bcebd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2918b7c516051c30186a1055ebcdb3580522be7190f8a2fff4100ea714c7c366","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"982efeb2573605d4e6d5df4dc7e40846bda8b9e678e058fc99522ab6165c479e","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"d67fc92a91171632fc74f413ce42ff1aa7fbcc5a85b127101f7ec446d2039a1f","affectsGlobalScope":true,"impliedFormat":1},{"version":"d40e4631100dbc067268bce96b07d7aff7f28a541b1bfb7ef791c64a696b3d33","affectsGlobalScope":true,"impliedFormat":1},{"version":"784490137935e1e38c49b9289110e74a1622baf8a8907888dcbe9e476d7c5e44","impliedFormat":1},{"version":"42180b657831d1b8fead051698618b31da623fb71ff37f002cb9d932cfa775f1","impliedFormat":1},{"version":"4f98d6fb4fe7cbeaa04635c6eaa119d966285d4d39f0eb55b2654187b0b27446","impliedFormat":1},{"version":"e4c653466d0497d87fa9ffd00e59a95f33bc1c1722c3f5c84dab2e950c18da70","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6dcc3b933e864e91d4bea94274ad69854d5d2a1311a4b0e20408a57af19e95d","impliedFormat":1},{"version":"a51f786b9f3c297668f8f322a6c58f85d84948ef69ade32069d5d63ec917221c","impliedFormat":1},{"version":"e2b48abff5a8adc6bb1cd13a702b9ef05e6045a98e7cfa95a8779b53b6d0e69d","impliedFormat":1},{"version":"a02d26c056491b1ddfa53a671ad60ce852969b369f0e71993dbac8ddcf0d038b","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"11443a1dcfaaa404c68d53368b5b818712b95dd19f188cab1669c39bee8b84b3","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"035d0934d304483f07148427a5bd5b98ac265dae914a6b49749fe23fbd893ec7","impliedFormat":99},{"version":"e2ed5b81cbed3a511b21a18ab2539e79ac1f4bc1d1d28f8d35d8104caa3b429f","impliedFormat":99},{"version":"dd7ca4f0ef3661dac7043fb2cdf1b99e008d2b6bc5cd998dd1fa5a2968034984","affectsGlobalScope":true,"impliedFormat":1},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","impliedFormat":1},{"version":"33f3718dababfc26dfd9832c150149ea4e934f255130f8c118a59ae69e5ed441","impliedFormat":1},{"version":"e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","impliedFormat":1},{"version":"459920181700cec8cbdf2a5faca127f3f17fd8dd9d9e577ed3f5f3af5d12a2e4","impliedFormat":1},{"version":"4719c209b9c00b579553859407a7e5dcfaa1c472994bd62aa5dd3cc0757eb077","impliedFormat":1},{"version":"7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","impliedFormat":1},{"version":"70790a7f0040993ca66ab8a07a059a0f8256e7bb57d968ae945f696cbff4ac7a","impliedFormat":1},{"version":"d1b9a81e99a0050ca7f2d98d7eedc6cda768f0eb9fa90b602e7107433e64c04c","impliedFormat":1},{"version":"a022503e75d6953d0e82c2c564508a5c7f8556fad5d7f971372d2d40479e4034","impliedFormat":1},{"version":"b215c4f0096f108020f666ffcc1f072c81e9f2f95464e894a5d5f34c5ea2a8b1","impliedFormat":1},{"version":"644491cde678bd462bb922c1d0cfab8f17d626b195ccb7f008612dc31f445d2d","impliedFormat":1},{"version":"dfe54dab1fa4961a6bcfba68c4ca955f8b5bbeb5f2ab3c915aa7adaa2eabc03a","impliedFormat":1},{"version":"1bb61aa2f08ab4506d41dbe16c5f3f5010f014bbf46fa3d715c0cbe3b00f4e1c","impliedFormat":1},{"version":"47865c5e695a382a916b1eedda1b6523145426e48a2eae4647e96b3b5e52024f","impliedFormat":1},{"version":"e42820cd611b15910c204cd133f692dcd602532b39317d4f2a19389b27e6f03d","impliedFormat":1},{"version":"331b8f71bfae1df25d564f5ea9ee65a0d847c4a94baa45925b6f38c55c7039bf","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"0146fd6262c3fd3da51cb0254bb6b9a4e42931eb2f56329edd4c199cb9aaf804","impliedFormat":1},{"version":"183f480885db5caa5a8acb833c2be04f98056bdcc5fb29e969ff86e07efe57ab","impliedFormat":99},{"version":"4ec16d7a4e366c06a4573d299e15fe6207fc080f41beac5da06f4af33ea9761e","impliedFormat":1},{"version":"7870becb94cbc11d2d01b77c4422589adcba4d8e59f726246d40cd0d129784d8","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"f70b8328a15ca1d10b1436b691e134a49bc30dcf3183a69bfaa7ba77e1b78ecd","impliedFormat":1},{"version":"ff3660e2664e6096196280deb4e176633b1bb1e58a7dcc9b021ec0e913a6f96f","impliedFormat":99},{"version":"b34b5f6b506abb206b1ea73c6a332b9ee9c8c98be0f6d17cdbda9430ecc1efab","impliedFormat":99},{"version":"75d4c746c3d16af0df61e7b0afe9606475a23335d9f34fcc525d388c21e9058b","impliedFormat":99},{"version":"fa959bf357232201c32566f45d97e70538c75a093c940af594865d12f31d4912","impliedFormat":99},{"version":"d2c52abd76259fc39a30dfae70a2e5ce77fd23144457a7ff1b64b03de6e3aec7","impliedFormat":99},{"version":"e6233e1c976265e85aa8ad76c3881febe6264cb06ae3136f0257e1eab4a6cc5a","impliedFormat":99},{"version":"f73e2335e568014e279927321770da6fe26facd4ac96cdc22a56687f1ecbb58e","impliedFormat":99},{"version":"317878f156f976d487e21fd1d58ad0461ee0a09185d5b0a43eedf2a56eb7e4ea","impliedFormat":99},{"version":"324ac98294dab54fbd580c7d0e707d94506d7b2c3d5efe981a8495f02cf9ad96","impliedFormat":99},{"version":"9ec72eb493ff209b470467e24264116b6a8616484bca438091433a545dfba17e","impliedFormat":99},{"version":"d6ee22aba183d5fc0c7b8617f77ee82ecadc2c14359cc51271c135e23f6ed51f","impliedFormat":99},{"version":"49747416f08b3ba50500a215e7a55d75268b84e31e896a40313c8053e8dec908","impliedFormat":99},{"version":"81e634f1c5e1ca309e7e3dc69e2732eea932ef07b8b34517d452e5a3e9a36fa3","impliedFormat":99},{"version":"34f39f75f2b5aa9c84a9f8157abbf8322e6831430e402badeaf58dd284f9b9a6","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"c8905dbea83f3220676a669366cd8c1acef56af4d9d72a8b2241b1d044bb4302","affectsGlobalScope":true,"impliedFormat":99},{"version":"891694d3694abd66f0b8872997b85fd8e52bc51632ce0f8128c96962b443189f","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"971a2c327ff166c770c5fb35699575ba2d13bba1f6d2757309c9be4b30036c8e","impliedFormat":99},{"version":"4f45e8effab83434a78d17123b01124259fbd1e335732135c213955d85222234","impliedFormat":99},{"version":"7bd51996fb7717941cbe094b05adc0d80b9503b350a77b789bbb0fc786f28053","impliedFormat":99},{"version":"b62006bbc815fe8190c7aee262aad6bff993e3f9ade70d7057dfceab6de79d2f","impliedFormat":99},{"version":"13497c0d73306e27f70634c424cd2f3b472187164f36140b504b3756b0ff476d","impliedFormat":99},{"version":"bf7a2d0f6d9e72d59044079d61000c38da50328ccdff28c47528a1a139c610ec","impliedFormat":99},{"version":"04471dc55f802c29791cc75edda8c4dd2a121f71c2401059da61eff83099e8ab","impliedFormat":99},{"version":"120a80aa556732f684db3ed61aeff1d6671e1655bd6cba0aa88b22b88ac9a6b1","affectsGlobalScope":true,"impliedFormat":99},{"version":"e58c0b5226aff07b63be6ac6e1bec9d55bc3d2bda3b11b9b68cccea8c24ae839","affectsGlobalScope":true,"impliedFormat":99},{"version":"a23a08b626aa4d4a1924957bd8c4d38a7ffc032e21407bbd2c97413e1d8c3dbd","impliedFormat":99},{"version":"5a88655bf852c8cc007d6bc874ab61d1d63fba97063020458177173c454e9b4a","impliedFormat":99},{"version":"7e4dfae2da12ec71ffd9f55f4641a6e05610ce0d6784838659490e259e4eb13c","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"4c8ca51077f382498f47074cf304d654aba5d362416d4f809dfdd5d4f6b3aaca","impliedFormat":1},{"version":"c6bddf16578495abc8b5546850b047f30c4b5a2a2b7fecefc0e11a44a6e91399","impliedFormat":1},{"version":"13573a613314e40482386fe9c7934f9d86f3e06f19b840466c75391fb833b99b","impliedFormat":99},{"version":"9a330687932b0beb35de72b316cb112766af1baa7fa8c9c940ecd32b4200fbbe","signature":"76eb4d13e03e9aa98697d3ddfa1ff5d6039bb754d3a9797a869ce3f7d5306754","impliedFormat":99},{"version":"3d8fb9127f8c7815e19961e518366d8589164944f7ac92b566274b6c5807a3d8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"a4a39b5714adfcadd3bbea6698ca2e942606d833bde62ad5fb6ec55f5e438ff8","impliedFormat":1},{"version":"bbc1d029093135d7d9bfa4b38cbf8761db505026cc458b5e9c8b74f4000e5e75","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"4750f6005ee383dee82e9494927422219a0e4ab5756128ae0e3ff69a395ef9d7","impliedFormat":1},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"523d490a86ec82bd335ac097bfa788fcc51a19eff3f4a0f3edfa0ae466b0136e","impliedFormat":1}],"root":[[126,131],312,313],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":199,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"strict":true,"target":99},"referencedMap":[[291,1],[290,2],[319,3],[317,4],[316,5],[243,2],[314,2],[315,2],[320,6],[189,7],[190,7],[191,8],[148,9],[192,10],[193,11],[194,12],[146,2],[195,13],[196,14],[197,15],[198,16],[199,17],[200,18],[201,18],[203,2],[202,19],[204,20],[205,21],[206,22],[188,23],[147,2],[207,24],[208,25],[209,26],[242,27],[210,28],[211,29],[212,30],[213,31],[214,32],[215,33],[216,34],[217,35],[218,36],[219,37],[220,37],[221,38],[222,2],[223,2],[224,39],[226,40],[225,41],[227,42],[228,43],[229,44],[230,45],[231,46],[232,47],[233,48],[234,49],[235,50],[236,51],[237,52],[238,53],[239,54],[240,55],[241,56],[321,2],[318,2],[301,57],[279,58],[277,2],[278,2],[132,2],[143,59],[138,60],[141,61],[292,62],[284,2],[287,63],[286,64],[297,64],[285,65],[300,2],[140,66],[142,66],[134,67],[137,68],[280,67],[139,69],[133,2],[251,2],[308,70],[310,71],[309,72],[307,73],[306,2],[268,74],[266,75],[267,76],[255,77],[256,75],[263,78],[254,79],[259,80],[269,2],[260,81],[265,82],[271,83],[270,84],[253,85],[261,86],[262,87],[257,88],[264,74],[258,89],[245,90],[244,91],[252,2],[293,2],[135,2],[136,92],[77,2],[78,2],[14,2],[13,2],[2,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[3,2],[23,2],[24,2],[4,2],[25,2],[29,2],[26,2],[27,2],[28,2],[30,2],[31,2],[32,2],[5,2],[33,2],[34,2],[35,2],[36,2],[6,2],[40,2],[37,2],[38,2],[39,2],[41,2],[7,2],[42,2],[47,2],[48,2],[43,2],[44,2],[45,2],[46,2],[8,2],[52,2],[49,2],[50,2],[51,2],[53,2],[9,2],[54,2],[55,2],[56,2],[58,2],[57,2],[59,2],[60,2],[10,2],[61,2],[62,2],[63,2],[11,2],[64,2],[65,2],[66,2],[67,2],[68,2],[1,2],[69,2],[70,2],[12,2],[74,2],[72,2],[76,2],[71,2],[75,2],[73,2],[81,2],[165,93],[176,94],[163,93],[177,95],[186,96],[155,97],[154,98],[185,99],[180,100],[184,101],[157,102],[173,103],[156,104],[183,105],[152,106],[153,100],[158,107],[159,2],[164,97],[162,107],[150,108],[187,109],[178,110],[168,111],[167,107],[169,112],[171,113],[166,114],[170,115],[181,99],[160,116],[161,117],[172,118],[151,95],[175,119],[174,107],[179,2],[149,2],[182,120],[295,121],[282,122],[283,121],[281,2],[276,123],[250,124],[249,125],[247,125],[246,2],[248,126],[274,2],[273,2],[272,2],[275,127],[294,128],[288,129],[296,130],[145,131],[302,132],[304,133],[298,134],[305,135],[303,136],[289,137],[299,138],[311,139],[144,2],[96,140],[85,141],[87,142],[94,143],[89,2],[90,2],[88,144],[91,145],[83,2],[84,2],[95,146],[86,147],[92,2],[93,148],[103,149],[105,150],[106,150],[108,151],[117,152],[109,153],[111,154],[112,155],[113,156],[114,156],[101,157],[104,158],[82,159],[80,160],[107,2],[100,161],[102,162],[115,2],[110,163],[79,2],[99,164],[98,165],[97,166],[116,155],[130,167],[131,168],[313,169],[129,170],[128,171],[126,2],[312,172],[127,173],[124,174],[125,175],[123,2],[118,176],[122,177],[120,178],[119,173],[121,179]],"latestChangedDtsFile":"./lib/rules/duplicateTestCases.test.d.ts","version":"5.8.3"}