@systemfsoftware/stryker-js-instrumenter 8.1.0 → 9.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/dist/index.d.mts CHANGED
@@ -1,236 +1,1763 @@
1
- import * as Effect from 'effect/Effect';
2
- import * as S from 'effect/Schema';
3
- import { YieldableError } from 'effect/Cause';
4
-
5
- export declare const causeText: <A = unknown>(cause: A, depth: number) => string | undefined;
6
-
7
- export declare interface Coverage {
8
- readonly static: CoverageData;
9
- readonly perTest: CoveragePerTestId;
10
- }
11
-
12
- export declare type CoverageData = Record<string, number>;
13
-
14
- export declare type CoveragePerTestId = Record<string, CoverageData>;
15
-
16
- export declare const disableTypeChecks: (file: File_2) => Effect.Effect<File_2, InstrumentError>;
17
-
18
- export declare interface EarlyResultPlan {
19
- readonly plan: 'EarlyResult';
20
- readonly mutant: Mutant;
21
- }
22
-
23
- export declare interface ErrnoException extends Error {
24
- code?: string;
25
- errno?: number;
26
- path?: string;
27
- syscall?: string;
28
- }
29
-
30
- export declare const ERROR_CODES: Readonly<{
31
- NoSuchFileOrDirectory: 'ENOENT';
32
- }>;
33
-
34
- export declare function errorToString<A = unknown>(error: A): string;
35
-
36
- declare interface File_2 extends FileDescription {
37
- name: string;
38
- content: string;
39
- }
40
- export { File_2 as File }
41
-
42
- export declare interface FileDescription {
43
- readonly mutate: MutateDescription;
44
- }
45
-
46
- export declare type FileDescriptions = Record<string, FileDescription>;
47
-
48
- export declare const instrument: (files: readonly File_2[], options: InstrumenterOptions, basePath?: string) => Effect.Effect<InstrumentResult, InstrumentError>;
49
-
50
- export declare const INSTRUMENTER_CONSTANTS: Readonly<{
51
- NAMESPACE: '__stryker__';
52
- MUTATION_COVERAGE_OBJECT: 'mutantCoverage';
53
- ACTIVE_MUTANT: 'activeMutant';
54
- CURRENT_TEST_ID: 'currentTestId';
55
- HIT_COUNT: 'hitCount';
56
- HIT_LIMIT: 'hitLimit';
57
- ACTIVE_MUTANT_ENV_VARIABLE: '__STRYKER_ACTIVE_MUTANT__';
58
- }>;
59
-
60
- export declare interface InstrumenterContext {
61
- activeMutant?: string;
62
- currentTestId?: string;
63
- mutantCoverage?: MutantCoverage;
64
- hitCount?: number;
65
- hitLimit?: number;
66
- }
67
-
68
- export declare type InstrumenterOptions = typeof InstrumenterOptionsSchema.Type;
69
-
70
- export declare const InstrumenterOptionsSchema: S.Struct<{
71
- readonly excludedMutations: S.$Array<S.String>;
72
- readonly ignorers: S.$Array<S.Unknown>;
73
- readonly noHeader: S.optional<S.Boolean>;
74
- readonly optInMutations: S.optional<S.$Array<S.String>>;
75
- }>;
76
-
77
- export declare class InstrumentError extends InstrumentError_base {
78
- get message(): string;
79
- }
80
-
81
- declare const InstrumentError_base: S.Class<InstrumentError, S.TaggedStruct<"InstrumentError", {
82
- readonly message: S.String;
83
- readonly cause: S.Defect;
84
- }>, YieldableError>;
85
-
86
- export declare interface InstrumentResult {
87
- files: readonly File_2[];
88
- mutants: readonly Mutant[];
89
- }
90
-
91
- export declare function isErrnoException(error: unknown): error is ErrnoException;
92
-
93
- export declare const isMutant: (value: unknown) => value is Mutant;
94
-
95
- export declare type Location = typeof LocationSchema.Type;
96
-
97
- export declare const LocationSchema: S.Struct<{
98
- readonly start: S.Struct<{
99
- readonly line: S.Finite;
100
- readonly column: S.Finite;
101
- }>;
102
- readonly end: S.Struct<{
103
- readonly line: S.Finite;
104
- readonly column: S.Finite;
105
- }>;
106
- }>;
107
-
108
- export declare class Mutant extends Mutant_base {}
109
-
110
- declare const Mutant_base: S.Class<Mutant, S.TaggedStruct<"Mutant", {
111
- readonly id: S.NonEmptyString;
112
- readonly fileName: S.NonEmptyString;
113
- readonly mutatorName: S.NonEmptyString;
114
- readonly replacement: S.String;
115
- readonly location: S.Struct<{
116
- readonly start: S.Struct<{
117
- readonly line: S.Finite;
118
- readonly column: S.Finite;
119
- }>;
120
- readonly end: S.Struct<{
121
- readonly line: S.Finite;
122
- readonly column: S.Finite;
123
- }>;
124
- }>;
125
- readonly status: S.optional<S.Literals<readonly ["Killed", "Survived", "NoCoverage", "CompileError", "RuntimeError", "Timeout", "Ignored", "Pending"]>>;
126
- readonly statusReason: S.optional<S.String>;
127
- readonly coveredBy: S.optional<S.$Array<S.String>>;
128
- readonly static: S.optional<S.Boolean>;
129
- readonly testsCompleted: S.optional<S.Finite>;
130
- readonly description: S.optional<S.String>;
131
- }>, {}>;
132
-
133
- export declare type MutantActivation = typeof MutantActivationSchema.Type;
134
-
135
- export declare const MutantActivationSchema: S.Literals<readonly ["runtime", "static"]>;
136
-
137
- export declare interface MutantCoverage {
138
- readonly perTest: Record<string, Record<string, number>>;
139
- readonly static: Record<string, number>;
140
- }
141
-
142
- export declare type MutantEarlyResultPlan = EarlyResultPlan;
143
-
144
- export declare interface MutantRunOptions extends RunOptions {
145
- readonly testFilter?: readonly string[];
146
- readonly hitLimit?: number;
147
- readonly activeMutant: Mutant;
148
- readonly sandboxFileName: string;
149
- readonly mutantActivation: MutantActivation;
150
- readonly reloadEnvironment: boolean;
151
- }
152
-
153
- export declare const MutantRunOptionsSchema: S.Struct<{
154
- readonly timeout: S.Finite;
155
- readonly disableBail: S.Boolean;
156
- readonly activeMutant: typeof Mutant;
157
- readonly sandboxFileName: S.String;
158
- readonly mutantActivation: S.Literals<readonly ["runtime", "static"]>;
159
- readonly reloadEnvironment: S.Boolean;
160
- readonly testFilter: S.optionalKey<S.$Array<S.String>>;
161
- readonly hitLimit: S.optionalKey<S.Finite>;
162
- }>;
163
-
164
- export declare type MutantRunPlan = RunPlan;
165
-
166
- export declare type MutantStatus = typeof MutantStatusSchema.Type;
167
-
168
- export declare const MutantStatusSchema: S.Literals<readonly ["Killed", "Survived", "NoCoverage", "CompileError", "RuntimeError", "Timeout", "Ignored", "Pending"]>;
169
-
170
- export declare type MutantTestCoverage = Mutant & {
171
- readonly coveredBy: ReadonlyArray<string> | undefined;
172
- readonly static: boolean | undefined;
173
- };
174
-
175
- export declare type MutantTestPlan = TestPlan;
176
-
177
- export declare type MutateDescription = ReadonlyArray<MutationRange> | boolean;
178
-
179
- export declare interface MutationRange {
180
- readonly start: Position;
181
- readonly end: Position;
182
- }
183
-
184
- export declare function normalizeFileName(fileName: string): string;
185
-
186
- export declare type OpenEndLocation = typeof OpenEndLocationSchema.Type;
187
-
188
- export declare const OpenEndLocationSchema: S.Struct<{
189
- readonly start: S.Struct<{
190
- readonly line: S.Finite;
191
- readonly column: S.Finite;
192
- }>;
193
- readonly end: S.optional<S.Struct<{
194
- readonly line: S.Finite;
195
- readonly column: S.Finite;
196
- }>>;
197
- }>;
198
-
199
- export declare interface ParserOptions {}
200
-
201
- export declare type Position = typeof PositionSchema.Type;
202
-
203
- export declare const PositionSchema: S.Struct<{
204
- readonly line: S.Finite;
205
- readonly column: S.Finite;
206
- }>;
207
-
208
- export declare type RunMutantResult = Mutant & {
209
- readonly status: MutantStatus;
210
- readonly statusReason?: string | undefined;
211
- readonly testsCompleted?: number | undefined;
212
- readonly killedBy?: readonly string[] | undefined;
213
- readonly coveredBy?: readonly string[] | undefined;
214
- readonly static?: boolean | undefined;
215
- };
216
-
217
- export declare interface RunOptions {
218
- readonly timeout: number;
219
- readonly disableBail: boolean;
220
- }
221
-
222
- export declare const RunOptionsFields: {
223
- timeout: S.Finite;
224
- disableBail: S.Boolean;
225
- };
226
-
227
- export declare interface RunPlan {
228
- readonly plan: 'Run';
229
- readonly mutant: Mutant;
230
- readonly runOptions: MutantRunOptions;
231
- readonly netTime: number;
232
- }
233
-
234
- export declare type TestPlan = EarlyResultPlan | RunPlan;
235
-
236
- export { }
1
+ import * as Option from "effect/Option";
2
+ import "effect/Result";
3
+ import * as S from "effect/Schema";
4
+ import * as Effect from "effect/Effect";
5
+ import { Workflow } from "@systemfsoftware/effect-cell-types";
6
+ import "effect/Pipeable";
7
+ import { EmbeddedDocument, FormatId, Framework, FrameworkContext } from "@systemfsoftware/stryker-framework-interface";
8
+ import "oxc-parser";
9
+ import "@oxc-project/types";
10
+ //#region src/ErrorText.schema.d.ts
11
+ declare const ErrorText_base: S.Class<ErrorText, S.Struct<{
12
+ readonly text: S.NonEmptyString;
13
+ }>, {}>;
14
+ declare class ErrorText extends ErrorText_base {
15
+ static fromCause: <A>(cause: A) => Option.Option<ErrorText>;
16
+ }
17
+ type ErrorTextValue = ErrorText;
18
+ declare const CauseText_base: S.Class<CauseText, S.Struct<{
19
+ readonly text: S.NonEmptyString;
20
+ }>, {}>;
21
+ declare class CauseText extends CauseText_base {
22
+ static fromCause: <A>(cause: A) => Option.Option<CauseText>;
23
+ }
24
+ type CauseTextValue = CauseText;
25
+ interface ErrnoException extends Error {
26
+ code?: string;
27
+ errno?: number;
28
+ path?: string;
29
+ syscall?: string;
30
+ }
31
+ declare namespace mod_d_exports {
32
+ export { CauseText, CauseTextValue, ErrnoException, ErrorText, ErrorTextValue };
33
+ }
34
+ //#endregion
35
+ //#region ../ignorers/interface/dist/index.d.ts
36
+ declare interface AccessorProperty$1 extends Span$1 {
37
+ type: AccessorPropertyType;
38
+ decorators: Array<Decorator$1>;
39
+ key: PropertyKey_2;
40
+ typeAnnotation?: TSTypeAnnotation$1 | null;
41
+ value: Expression$1 | null;
42
+ computed: boolean;
43
+ static: boolean;
44
+ override?: boolean;
45
+ definite?: boolean;
46
+ accessibility?: TSAccessibility | null;
47
+ declare?: false;
48
+ optional?: false;
49
+ readonly?: false;
50
+ parent?: Node$1;
51
+ }
52
+ declare type AccessorPropertyType = "AccessorProperty" | "TSAbstractAccessorProperty";
53
+ declare type Argument$1 = SpreadElement$1 | Expression$1;
54
+ declare interface ArrayAssignmentTarget extends Span$1 {
55
+ type: "ArrayPattern";
56
+ decorators?: [];
57
+ elements: Array<AssignmentTargetMaybeDefault | AssignmentTargetRest | null>;
58
+ optional?: false;
59
+ typeAnnotation?: null;
60
+ parent?: Node$1;
61
+ }
62
+ declare interface ArrayExpression$1 extends Span$1 {
63
+ type: "ArrayExpression";
64
+ elements: Array<ArrayExpressionElement>;
65
+ parent?: Node$1;
66
+ }
67
+ declare type ArrayExpressionElement = SpreadElement$1 | null | Expression$1;
68
+ declare interface ArrayPattern$1 extends Span$1 {
69
+ type: "ArrayPattern";
70
+ decorators?: [];
71
+ elements: Array<BindingPattern$1 | BindingRestElement$1 | null>;
72
+ optional?: false;
73
+ typeAnnotation?: TSTypeAnnotation$1 | null;
74
+ parent?: Node$1;
75
+ }
76
+ declare interface ArrowFunctionExpression$1 extends Span$1 {
77
+ type: "ArrowFunctionExpression";
78
+ expression: boolean;
79
+ async: boolean;
80
+ typeParameters?: TSTypeParameterDeclaration$1 | null;
81
+ params: ParamPattern$1[];
82
+ returnType?: TSTypeAnnotation$1 | null;
83
+ body: FunctionBody | Expression$1;
84
+ id: null;
85
+ generator: false;
86
+ parent?: Node$1;
87
+ }
88
+ declare interface AssignmentExpression$1 extends Span$1 {
89
+ type: "AssignmentExpression";
90
+ operator: AssignmentOperator;
91
+ left: AssignmentTarget;
92
+ right: Expression$1;
93
+ parent?: Node$1;
94
+ }
95
+ declare type AssignmentOperator = "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "**=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=" | "||=" | "&&=" | "??=";
96
+ declare interface AssignmentPattern$1 extends Span$1 {
97
+ type: "AssignmentPattern";
98
+ decorators?: [];
99
+ left: BindingPattern$1;
100
+ right: Expression$1;
101
+ optional?: false;
102
+ typeAnnotation?: null;
103
+ parent?: Node$1;
104
+ }
105
+ declare type AssignmentTarget = SimpleAssignmentTarget$1 | AssignmentTargetPattern;
106
+ declare type AssignmentTargetMaybeDefault = AssignmentTargetWithDefault | AssignmentTarget;
107
+ declare type AssignmentTargetPattern = ArrayAssignmentTarget | ObjectAssignmentTarget;
108
+ declare type AssignmentTargetProperty = AssignmentTargetPropertyIdentifier | AssignmentTargetPropertyProperty;
109
+ declare interface AssignmentTargetPropertyIdentifier extends Span$1 {
110
+ type: "Property";
111
+ kind: "init";
112
+ key: IdentifierReference$1;
113
+ value: IdentifierReference$1 | AssignmentTargetWithDefault;
114
+ method: false;
115
+ shorthand: true;
116
+ computed: false;
117
+ optional?: false;
118
+ parent?: Node$1;
119
+ }
120
+ declare interface AssignmentTargetPropertyProperty extends Span$1 {
121
+ type: "Property";
122
+ kind: "init";
123
+ key: PropertyKey_2;
124
+ value: AssignmentTargetMaybeDefault;
125
+ method: false;
126
+ shorthand: false;
127
+ computed: boolean;
128
+ optional?: false;
129
+ parent?: Node$1;
130
+ }
131
+ declare interface AssignmentTargetRest extends Span$1 {
132
+ type: "RestElement";
133
+ decorators?: [];
134
+ argument: AssignmentTarget;
135
+ optional?: false;
136
+ typeAnnotation?: null;
137
+ value?: null;
138
+ parent?: Node$1;
139
+ }
140
+ declare interface AssignmentTargetWithDefault extends Span$1 {
141
+ type: "AssignmentPattern";
142
+ decorators?: [];
143
+ left: AssignmentTarget;
144
+ right: Expression$1;
145
+ optional?: false;
146
+ typeAnnotation?: null;
147
+ parent?: Node$1;
148
+ }
149
+ declare interface AwaitExpression extends Span$1 {
150
+ type: "AwaitExpression";
151
+ argument: Expression$1;
152
+ parent?: Node$1;
153
+ }
154
+ declare interface BigIntLiteral$1 extends Span$1 {
155
+ type: "Literal";
156
+ value: bigint;
157
+ raw: string | null;
158
+ bigint: string;
159
+ parent?: Node$1;
160
+ }
161
+ declare interface BinaryExpression$1 extends Span$1 {
162
+ type: "BinaryExpression";
163
+ left: Expression$1;
164
+ operator: BinaryOperator;
165
+ right: Expression$1;
166
+ parent?: Node$1;
167
+ }
168
+ declare type BinaryOperator = "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "+" | "-" | "*" | "/" | "%" | "**" | "<<" | ">>" | ">>>" | "|" | "^" | "&" | "in" | "instanceof";
169
+ declare interface BindingIdentifier$1 extends Span$1 {
170
+ type: "Identifier";
171
+ decorators?: [];
172
+ name: string;
173
+ optional?: false;
174
+ typeAnnotation?: TSTypeAnnotation$1 | null;
175
+ parent?: Node$1;
176
+ }
177
+ declare type BindingPattern$1 = BindingIdentifier$1 | ObjectPattern | ArrayPattern$1 | AssignmentPattern$1;
178
+ declare interface BindingProperty$1 extends Span$1 {
179
+ type: "Property";
180
+ kind: "init";
181
+ key: PropertyKey_2;
182
+ value: BindingPattern$1;
183
+ method: false;
184
+ shorthand: boolean;
185
+ computed: boolean;
186
+ optional?: false;
187
+ parent?: Node$1;
188
+ }
189
+ declare interface BindingRestElement$1 extends Span$1 {
190
+ type: "RestElement";
191
+ decorators?: [];
192
+ argument: BindingPattern$1;
193
+ optional?: false;
194
+ typeAnnotation?: TSTypeAnnotation$1 | null;
195
+ value?: null;
196
+ parent?: Node$1;
197
+ }
198
+ declare interface BlockStatement$1 extends Span$1 {
199
+ type: "BlockStatement";
200
+ body: Array<Statement$1>;
201
+ parent?: Node$1;
202
+ }
203
+ declare interface BooleanLiteral$1 extends Span$1 {
204
+ type: "Literal";
205
+ value: boolean;
206
+ raw: string | null;
207
+ parent?: Node$1;
208
+ }
209
+ declare interface BreakStatement$1 extends Span$1 {
210
+ type: "BreakStatement";
211
+ label: LabelIdentifier$1 | null;
212
+ parent?: Node$1;
213
+ }
214
+ declare type Built<T> = T extends null | undefined ? T : T extends readonly unknown[] ? (number extends T['length'] ? Array<Built<T[number]>> : T) : T extends Span$1 ? { [K in keyof T as K extends keyof Span$1 ? never : K]: Child<T[K]>; } & Partial<Pick<T, keyof Span$1>> : T;
215
+ declare interface CallExpression$1 extends Span$1 {
216
+ type: "CallExpression";
217
+ callee: Expression$1;
218
+ typeArguments?: TSTypeParameterInstantiation$1 | null;
219
+ arguments: Array<Argument$1>;
220
+ optional: boolean;
221
+ parent?: Node$1;
222
+ }
223
+ declare interface CatchClause$1 extends Span$1 {
224
+ type: "CatchClause";
225
+ param: BindingPattern$1 | null;
226
+ body: BlockStatement$1;
227
+ parent?: Node$1;
228
+ }
229
+ declare type ChainElement = CallExpression$1 | TSNonNullExpression$1 | MemberExpression$1;
230
+ declare interface ChainExpression$1 extends Span$1 {
231
+ type: "ChainExpression";
232
+ expression: ChainElement;
233
+ parent?: Node$1;
234
+ }
235
+ declare type Child<T> = T extends null | undefined ? T : T extends readonly unknown[] ? (number extends T['length'] ? Array<Child<T[number]>> : T) : T extends Span$1 ? Built<T> | T : T;
236
+ declare interface Class$1 extends Span$1 {
237
+ type: ClassType;
238
+ decorators: Array<Decorator$1>;
239
+ id: BindingIdentifier$1 | null;
240
+ typeParameters?: TSTypeParameterDeclaration$1 | null;
241
+ superClass: Expression$1 | null;
242
+ superTypeArguments?: TSTypeParameterInstantiation$1 | null;
243
+ implements?: Array<TSClassImplements>;
244
+ body: ClassBody$1;
245
+ abstract?: boolean;
246
+ declare?: boolean;
247
+ parent?: Node$1;
248
+ }
249
+ declare interface ClassBody$1 extends Span$1 {
250
+ type: "ClassBody";
251
+ body: Array<ClassElement>;
252
+ parent?: Node$1;
253
+ }
254
+ declare type ClassElement = StaticBlock$1 | MethodDefinition$1 | PropertyDefinition$1 | AccessorProperty$1 | TSIndexSignature$1;
255
+ declare type ClassType = "ClassDeclaration" | "ClassExpression";
256
+ declare interface ComputedMemberExpression extends Span$1 {
257
+ type: "MemberExpression";
258
+ object: Expression$1;
259
+ property: Expression$1;
260
+ optional: boolean;
261
+ computed: true;
262
+ parent?: Node$1;
263
+ }
264
+ declare interface ConditionalExpression$1 extends Span$1 {
265
+ type: "ConditionalExpression";
266
+ test: Expression$1;
267
+ consequent: Expression$1;
268
+ alternate: Expression$1;
269
+ parent?: Node$1;
270
+ }
271
+ declare interface ContinueStatement$1 extends Span$1 {
272
+ type: "ContinueStatement";
273
+ label: LabelIdentifier$1 | null;
274
+ parent?: Node$1;
275
+ }
276
+ declare interface DebuggerStatement extends Span$1 {
277
+ type: "DebuggerStatement";
278
+ parent?: Node$1;
279
+ }
280
+ declare type Declaration = VariableDeclaration$1 | Function$1 | Class$1 | TSTypeAliasDeclaration$1 | TSInterfaceDeclaration$1 | TSEnumDeclaration$1 | TSModuleDeclaration$1 | TSGlobalDeclaration | TSImportEqualsDeclaration$1;
281
+ declare interface Decorator$1 extends Span$1 {
282
+ type: "Decorator";
283
+ expression: Expression$1;
284
+ parent?: Node$1;
285
+ }
286
+ declare interface Directive extends Span$1 {
287
+ type: "ExpressionStatement";
288
+ expression: StringLiteral$1;
289
+ directive: string;
290
+ parent?: Node$1;
291
+ }
292
+ declare interface DoWhileStatement$1 extends Span$1 {
293
+ type: "DoWhileStatement";
294
+ body: Statement$1;
295
+ test: Expression$1;
296
+ parent?: Node$1;
297
+ }
298
+ declare interface EmptyStatement$1 extends Span$1 {
299
+ type: "EmptyStatement";
300
+ parent?: Node$1;
301
+ }
302
+ declare interface ExportAllDeclaration$1 extends Span$1 {
303
+ type: "ExportAllDeclaration";
304
+ exported: ModuleExportName | null;
305
+ source: StringLiteral$1;
306
+ attributes: Array<ImportAttribute$1>;
307
+ exportKind?: ImportOrExportKind;
308
+ parent?: Node$1;
309
+ }
310
+ declare interface ExportDefaultDeclaration$1 extends Span$1 {
311
+ type: "ExportDefaultDeclaration";
312
+ declaration: ExportDefaultDeclarationKind;
313
+ exportKind?: "value";
314
+ parent?: Node$1;
315
+ }
316
+ declare type ExportDefaultDeclarationKind = Function$1 | Class$1 | TSInterfaceDeclaration$1 | Expression$1;
317
+ declare interface ExportNamedDeclaration$1 extends Span$1 {
318
+ type: "ExportNamedDeclaration";
319
+ declaration: Declaration | null;
320
+ specifiers: Array<ExportSpecifier>;
321
+ source: StringLiteral$1 | null;
322
+ exportKind?: ImportOrExportKind;
323
+ attributes: Array<ImportAttribute$1>;
324
+ parent?: Node$1;
325
+ }
326
+ declare interface ExportSpecifier extends Span$1 {
327
+ type: "ExportSpecifier";
328
+ local: ModuleExportName;
329
+ exported: ModuleExportName;
330
+ exportKind?: ImportOrExportKind;
331
+ parent?: Node$1;
332
+ }
333
+ declare type Expression$1 = BooleanLiteral$1 | NullLiteral$1 | NumericLiteral$1 | BigIntLiteral$1 | RegExpLiteral$1 | StringLiteral$1 | TemplateLiteral$1 | IdentifierReference$1 | Super$1 | ArrayExpression$1 | ArrowFunctionExpression$1 | AssignmentExpression$1 | AwaitExpression | BinaryExpression$1 | CallExpression$1 | ChainExpression$1 | Class$1 | ConditionalExpression$1 | Function$1 | ImportExpression$1 | LogicalExpression$1 | NewExpression$1 | ObjectExpression$1 | ParenthesizedExpression | SequenceExpression$1 | TaggedTemplateExpression$1 | ThisExpression$1 | UnaryExpression$1 | UpdateExpression$1 | YieldExpression$1 | PrivateInExpression$1 | MetaProperty$1 | JSXElement$1 | JSXFragment$1 | TSAsExpression$1 | TSSatisfiesExpression$1 | TSTypeAssertion$1 | TSNonNullExpression$1 | TSInstantiationExpression$1 | V8IntrinsicExpression | MemberExpression$1;
334
+ declare interface ExpressionStatement$1 extends Span$1 {
335
+ type: "ExpressionStatement";
336
+ expression: Expression$1;
337
+ directive?: string | null;
338
+ parent?: Node$1;
339
+ }
340
+ declare interface ForInStatement$1 extends Span$1 {
341
+ type: "ForInStatement";
342
+ left: ForStatementLeft;
343
+ right: Expression$1;
344
+ body: Statement$1;
345
+ parent?: Node$1;
346
+ }
347
+ declare type FormalParameter = {
348
+ decorators?: Array<Decorator$1>;
349
+ } & BindingPattern$1;
350
+ declare interface FormalParameterRest extends Span$1 {
351
+ type: "RestElement";
352
+ argument: BindingPattern$1;
353
+ decorators?: Array<Decorator$1>;
354
+ optional?: boolean;
355
+ typeAnnotation?: TSTypeAnnotation$1 | null;
356
+ value?: null;
357
+ parent?: Node$1;
358
+ }
359
+ declare interface ForOfStatement$1 extends Span$1 {
360
+ type: "ForOfStatement";
361
+ await: boolean;
362
+ left: ForStatementLeft;
363
+ right: Expression$1;
364
+ body: Statement$1;
365
+ parent?: Node$1;
366
+ }
367
+ declare interface ForStatement$1 extends Span$1 {
368
+ type: "ForStatement";
369
+ init: ForStatementInit | null;
370
+ test: Expression$1 | null;
371
+ update: Expression$1 | null;
372
+ body: Statement$1;
373
+ parent?: Node$1;
374
+ }
375
+ declare type ForStatementInit = VariableDeclaration$1 | Expression$1;
376
+ declare type ForStatementLeft = VariableDeclaration$1 | AssignmentTarget;
377
+ declare interface Function$1 extends Span$1 {
378
+ type: FunctionType;
379
+ id: BindingIdentifier$1 | null;
380
+ generator: boolean;
381
+ async: boolean;
382
+ declare?: boolean;
383
+ typeParameters?: TSTypeParameterDeclaration$1 | null;
384
+ params: ParamPattern$1[];
385
+ returnType?: TSTypeAnnotation$1 | null;
386
+ body: FunctionBody | null;
387
+ expression: false;
388
+ parent?: Node$1;
389
+ }
390
+ declare interface FunctionBody extends Span$1 {
391
+ type: "BlockStatement";
392
+ body: Array<Directive | Statement$1>;
393
+ parent?: Node$1;
394
+ }
395
+ declare type FunctionType = "FunctionDeclaration" | "FunctionExpression" | "TSDeclareFunction" | "TSEmptyBodyFunctionExpression";
396
+ declare interface Hashbang extends Span$1 {
397
+ type: "Hashbang";
398
+ value: string;
399
+ parent?: Node$1;
400
+ }
401
+ declare interface IdentifierName$1 extends Span$1 {
402
+ type: "Identifier";
403
+ decorators?: [];
404
+ name: string;
405
+ optional?: false;
406
+ typeAnnotation?: null;
407
+ parent?: Node$1;
408
+ }
409
+ declare interface IdentifierReference$1 extends Span$1 {
410
+ type: "Identifier";
411
+ decorators?: [];
412
+ name: string;
413
+ optional?: false;
414
+ typeAnnotation?: null;
415
+ parent?: Node$1;
416
+ }
417
+ declare interface IfStatement$1 extends Span$1 {
418
+ type: "IfStatement";
419
+ test: Expression$1;
420
+ consequent: Statement$1;
421
+ alternate: Statement$1 | null;
422
+ parent?: Node$1;
423
+ }
424
+ declare interface Ignorer {
425
+ readonly name: string;
426
+ shouldIgnore(node: Node_2, ancestors: readonly Node_2[]): string | undefined;
427
+ }
428
+ declare interface ImportAttribute$1 extends Span$1 {
429
+ type: "ImportAttribute";
430
+ key: ImportAttributeKey;
431
+ value: StringLiteral$1;
432
+ parent?: Node$1;
433
+ }
434
+ declare type ImportAttributeKey = IdentifierName$1 | StringLiteral$1;
435
+ declare interface ImportDeclaration$1 extends Span$1 {
436
+ type: "ImportDeclaration";
437
+ specifiers: Array<ImportDeclarationSpecifier>;
438
+ source: StringLiteral$1;
439
+ phase: ImportPhase | null;
440
+ attributes: Array<ImportAttribute$1>;
441
+ importKind?: ImportOrExportKind;
442
+ parent?: Node$1;
443
+ }
444
+ declare type ImportDeclarationSpecifier = ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier;
445
+ declare interface ImportDefaultSpecifier extends Span$1 {
446
+ type: "ImportDefaultSpecifier";
447
+ local: BindingIdentifier$1;
448
+ parent?: Node$1;
449
+ }
450
+ declare interface ImportExpression$1 extends Span$1 {
451
+ type: "ImportExpression";
452
+ source: Expression$1;
453
+ options: Expression$1 | null;
454
+ phase: ImportPhase | null;
455
+ parent?: Node$1;
456
+ }
457
+ declare interface ImportNamespaceSpecifier extends Span$1 {
458
+ type: "ImportNamespaceSpecifier";
459
+ local: BindingIdentifier$1;
460
+ parent?: Node$1;
461
+ }
462
+ declare type ImportOrExportKind = "value" | "type";
463
+ declare type ImportPhase = "source" | "defer";
464
+ declare interface ImportSpecifier extends Span$1 {
465
+ type: "ImportSpecifier";
466
+ imported: ModuleExportName;
467
+ local: BindingIdentifier$1;
468
+ importKind?: ImportOrExportKind;
469
+ parent?: Node$1;
470
+ }
471
+ declare interface JSDocNonNullableType$1 extends Span$1 {
472
+ type: "TSJSDocNonNullableType";
473
+ typeAnnotation: TSType$1;
474
+ postfix: boolean;
475
+ parent?: Node$1;
476
+ }
477
+ declare interface JSDocNullableType$1 extends Span$1 {
478
+ type: "TSJSDocNullableType";
479
+ typeAnnotation: TSType$1;
480
+ postfix: boolean;
481
+ parent?: Node$1;
482
+ }
483
+ declare interface JSDocUnknownType extends Span$1 {
484
+ type: "TSJSDocUnknownType";
485
+ parent?: Node$1;
486
+ }
487
+ declare interface JSXAttribute$1 extends Span$1 {
488
+ type: "JSXAttribute";
489
+ name: JSXAttributeName;
490
+ value: JSXAttributeValue | null;
491
+ parent?: Node$1;
492
+ }
493
+ declare type JSXAttributeItem = JSXAttribute$1 | JSXSpreadAttribute$1;
494
+ declare type JSXAttributeName = JSXIdentifier$1 | JSXNamespacedName$1;
495
+ declare type JSXAttributeValue = StringLiteral$1 | JSXExpressionContainer$1 | JSXElement$1 | JSXFragment$1;
496
+ declare type JSXChild = JSXText$1 | JSXElement$1 | JSXFragment$1 | JSXExpressionContainer$1 | JSXSpreadChild$1;
497
+ declare interface JSXClosingElement extends Span$1 {
498
+ type: "JSXClosingElement";
499
+ name: JSXElementName;
500
+ parent?: Node$1;
501
+ }
502
+ declare interface JSXClosingFragment extends Span$1 {
503
+ type: "JSXClosingFragment";
504
+ parent?: Node$1;
505
+ }
506
+ declare interface JSXElement$1 extends Span$1 {
507
+ type: "JSXElement";
508
+ openingElement: JSXOpeningElement$1;
509
+ children: Array<JSXChild>;
510
+ closingElement: JSXClosingElement | null;
511
+ parent?: Node$1;
512
+ }
513
+ declare type JSXElementName = JSXIdentifier$1 | JSXNamespacedName$1 | JSXMemberExpression$1;
514
+ declare interface JSXEmptyExpression extends Span$1 {
515
+ type: "JSXEmptyExpression";
516
+ parent?: Node$1;
517
+ }
518
+ declare type JSXExpression = JSXEmptyExpression | Expression$1;
519
+ declare interface JSXExpressionContainer$1 extends Span$1 {
520
+ type: "JSXExpressionContainer";
521
+ expression: JSXExpression;
522
+ parent?: Node$1;
523
+ }
524
+ declare interface JSXFragment$1 extends Span$1 {
525
+ type: "JSXFragment";
526
+ openingFragment: JSXOpeningFragment;
527
+ children: Array<JSXChild>;
528
+ closingFragment: JSXClosingFragment;
529
+ parent?: Node$1;
530
+ }
531
+ declare interface JSXIdentifier$1 extends Span$1 {
532
+ type: "JSXIdentifier";
533
+ name: string;
534
+ parent?: Node$1;
535
+ }
536
+ declare interface JSXMemberExpression$1 extends Span$1 {
537
+ type: "JSXMemberExpression";
538
+ object: JSXMemberExpressionObject;
539
+ property: JSXIdentifier$1;
540
+ parent?: Node$1;
541
+ }
542
+ declare type JSXMemberExpressionObject = JSXIdentifier$1 | JSXMemberExpression$1;
543
+ declare interface JSXNamespacedName$1 extends Span$1 {
544
+ type: "JSXNamespacedName";
545
+ namespace: JSXIdentifier$1;
546
+ name: JSXIdentifier$1;
547
+ parent?: Node$1;
548
+ }
549
+ declare interface JSXOpeningElement$1 extends Span$1 {
550
+ type: "JSXOpeningElement";
551
+ name: JSXElementName;
552
+ typeArguments?: TSTypeParameterInstantiation$1 | null;
553
+ attributes: Array<JSXAttributeItem>;
554
+ selfClosing: boolean;
555
+ parent?: Node$1;
556
+ }
557
+ declare interface JSXOpeningFragment extends Span$1 {
558
+ type: "JSXOpeningFragment";
559
+ attributes?: [];
560
+ selfClosing?: false;
561
+ parent?: Node$1;
562
+ }
563
+ declare interface JSXSpreadAttribute$1 extends Span$1 {
564
+ type: "JSXSpreadAttribute";
565
+ argument: Expression$1;
566
+ parent?: Node$1;
567
+ }
568
+ declare interface JSXSpreadChild$1 extends Span$1 {
569
+ type: "JSXSpreadChild";
570
+ expression: Expression$1;
571
+ parent?: Node$1;
572
+ }
573
+ declare interface JSXText$1 extends Span$1 {
574
+ type: "JSXText";
575
+ value: string;
576
+ raw: string | null;
577
+ parent?: Node$1;
578
+ }
579
+ declare interface LabeledStatement$1 extends Span$1 {
580
+ type: "LabeledStatement";
581
+ label: LabelIdentifier$1;
582
+ body: Statement$1;
583
+ parent?: Node$1;
584
+ }
585
+ declare interface LabelIdentifier$1 extends Span$1 {
586
+ type: "Identifier";
587
+ decorators?: [];
588
+ name: string;
589
+ optional?: false;
590
+ typeAnnotation?: null;
591
+ parent?: Node$1;
592
+ }
593
+ declare interface LogicalExpression$1 extends Span$1 {
594
+ type: "LogicalExpression";
595
+ left: Expression$1;
596
+ operator: LogicalOperator;
597
+ right: Expression$1;
598
+ parent?: Node$1;
599
+ }
600
+ declare type LogicalOperator = "||" | "&&" | "??";
601
+ declare type MemberExpression$1 = ComputedMemberExpression | StaticMemberExpression$1 | PrivateFieldExpression;
602
+ declare interface MetaProperty$1 extends Span$1 {
603
+ type: "MetaProperty";
604
+ meta: IdentifierName$1;
605
+ property: IdentifierName$1;
606
+ parent?: Node$1;
607
+ }
608
+ declare interface MethodDefinition$1 extends Span$1 {
609
+ type: MethodDefinitionType;
610
+ decorators: Array<Decorator$1>;
611
+ key: PropertyKey_2;
612
+ value: Function$1;
613
+ kind: MethodDefinitionKind;
614
+ computed: boolean;
615
+ static: boolean;
616
+ override?: boolean;
617
+ optional?: boolean;
618
+ accessibility?: TSAccessibility | null;
619
+ parent?: Node$1;
620
+ }
621
+ declare type MethodDefinitionKind = "constructor" | "method" | "get" | "set";
622
+ declare type MethodDefinitionType = "MethodDefinition" | "TSAbstractMethodDefinition";
623
+ declare type ModuleDeclaration = ImportDeclaration$1 | ExportAllDeclaration$1 | ExportDefaultDeclaration$1 | ExportNamedDeclaration$1 | TSExportAssignment$1 | TSNamespaceExportDeclaration$1;
624
+ declare type ModuleExportName = IdentifierName$1 | IdentifierReference$1 | StringLiteral$1;
625
+ declare type ModuleKind = "script" | "module" | "commonjs";
626
+ declare interface NewExpression$1 extends Span$1 {
627
+ type: "NewExpression";
628
+ callee: Expression$1;
629
+ typeArguments?: TSTypeParameterInstantiation$1 | null;
630
+ arguments: Array<Argument$1>;
631
+ parent?: Node$1;
632
+ }
633
+ declare type Node$1 = Program$1 | IdentifierName$1 | IdentifierReference$1 | BindingIdentifier$1 | LabelIdentifier$1 | ThisExpression$1 | ArrayExpression$1 | ObjectExpression$1 | ObjectProperty$1 | TemplateLiteral$1 | TaggedTemplateExpression$1 | TemplateElement$1 | ComputedMemberExpression | StaticMemberExpression$1 | PrivateFieldExpression | CallExpression$1 | NewExpression$1 | MetaProperty$1 | SpreadElement$1 | UpdateExpression$1 | UnaryExpression$1 | BinaryExpression$1 | PrivateInExpression$1 | LogicalExpression$1 | ConditionalExpression$1 | AssignmentExpression$1 | ArrayAssignmentTarget | ObjectAssignmentTarget | AssignmentTargetRest | AssignmentTargetWithDefault | AssignmentTargetPropertyIdentifier | AssignmentTargetPropertyProperty | SequenceExpression$1 | Super$1 | AwaitExpression | ChainExpression$1 | ParenthesizedExpression | Directive | Hashbang | BlockStatement$1 | VariableDeclaration$1 | VariableDeclarator$1 | EmptyStatement$1 | ExpressionStatement$1 | IfStatement$1 | DoWhileStatement$1 | WhileStatement$1 | ForStatement$1 | ForInStatement$1 | ForOfStatement$1 | ContinueStatement$1 | BreakStatement$1 | ReturnStatement$1 | WithStatement$1 | SwitchStatement$1 | SwitchCase$1 | LabeledStatement$1 | ThrowStatement$1 | TryStatement$1 | CatchClause$1 | DebuggerStatement | AssignmentPattern$1 | ObjectPattern | BindingProperty$1 | ArrayPattern$1 | BindingRestElement$1 | Function$1 | FunctionBody | ArrowFunctionExpression$1 | YieldExpression$1 | Class$1 | ClassBody$1 | MethodDefinition$1 | PropertyDefinition$1 | PrivateIdentifier$1 | StaticBlock$1 | AccessorProperty$1 | ImportExpression$1 | ImportDeclaration$1 | ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportAttribute$1 | ExportNamedDeclaration$1 | ExportDefaultDeclaration$1 | ExportAllDeclaration$1 | ExportSpecifier | V8IntrinsicExpression | BooleanLiteral$1 | NullLiteral$1 | NumericLiteral$1 | StringLiteral$1 | BigIntLiteral$1 | RegExpLiteral$1 | JSXElement$1 | JSXOpeningElement$1 | JSXClosingElement | JSXFragment$1 | JSXOpeningFragment | JSXClosingFragment | JSXNamespacedName$1 | JSXMemberExpression$1 | JSXExpressionContainer$1 | JSXEmptyExpression | JSXAttribute$1 | JSXSpreadAttribute$1 | JSXIdentifier$1 | JSXSpreadChild$1 | JSXText$1 | TSThisParameter | TSEnumDeclaration$1 | TSEnumBody | TSEnumMember | TSTypeAnnotation$1 | TSLiteralType$1 | TSConditionalType$1 | TSUnionType$1 | TSIntersectionType$1 | TSParenthesizedType$1 | TSTypeOperator$1 | TSArrayType$1 | TSIndexedAccessType$1 | TSTupleType$1 | TSNamedTupleMember$1 | TSOptionalType$1 | TSRestType$1 | TSAnyKeyword | TSStringKeyword | TSBooleanKeyword | TSNumberKeyword | TSNeverKeyword | TSIntrinsicKeyword | TSUnknownKeyword | TSNullKeyword | TSUndefinedKeyword | TSVoidKeyword | TSSymbolKeyword | TSThisType | TSObjectKeyword | TSBigIntKeyword | TSTypeReference$1 | TSQualifiedName$1 | TSTypeParameterInstantiation$1 | TSTypeParameter | TSTypeParameterDeclaration$1 | TSTypeAliasDeclaration$1 | TSClassImplements | TSInterfaceDeclaration$1 | TSInterfaceBody$1 | TSPropertySignature$1 | TSIndexSignature$1 | TSCallSignatureDeclaration$1 | TSMethodSignature$1 | TSConstructSignatureDeclaration$1 | TSIndexSignatureName | TSInterfaceHeritage | TSTypePredicate$1 | TSModuleDeclaration$1 | TSGlobalDeclaration | TSModuleBlock$1 | TSTypeLiteral | TSInferType$1 | TSTypeQuery$1 | TSImportType$1 | TSImportTypeQualifiedName | TSFunctionType$1 | TSConstructorType$1 | TSMappedType$1 | TSTemplateLiteralType$1 | TSAsExpression$1 | TSSatisfiesExpression$1 | TSTypeAssertion$1 | TSImportEqualsDeclaration$1 | TSExternalModuleReference | TSNonNullExpression$1 | Decorator$1 | TSExportAssignment$1 | TSNamespaceExportDeclaration$1 | TSInstantiationExpression$1 | JSDocNullableType$1 | JSDocNonNullableType$1 | JSDocUnknownType | ParamPattern$1;
634
+ declare type Node_2 = Simplify<Built<Node$1>> | Node$1;
635
+ declare interface NullLiteral$1 extends Span$1 {
636
+ type: "Literal";
637
+ value: null;
638
+ raw: "null" | null;
639
+ parent?: Node$1;
640
+ }
641
+ declare interface NumericLiteral$1 extends Span$1 {
642
+ type: "Literal";
643
+ value: number;
644
+ raw: string | null;
645
+ parent?: Node$1;
646
+ }
647
+ declare interface ObjectAssignmentTarget extends Span$1 {
648
+ type: "ObjectPattern";
649
+ decorators?: [];
650
+ properties: Array<AssignmentTargetProperty | AssignmentTargetRest>;
651
+ optional?: false;
652
+ typeAnnotation?: null;
653
+ parent?: Node$1;
654
+ }
655
+ declare interface ObjectExpression$1 extends Span$1 {
656
+ type: "ObjectExpression";
657
+ properties: Array<ObjectPropertyKind>;
658
+ parent?: Node$1;
659
+ }
660
+ declare interface ObjectPattern extends Span$1 {
661
+ type: "ObjectPattern";
662
+ decorators?: [];
663
+ properties: Array<BindingProperty$1 | BindingRestElement$1>;
664
+ optional?: false;
665
+ typeAnnotation?: TSTypeAnnotation$1 | null;
666
+ parent?: Node$1;
667
+ }
668
+ declare interface ObjectProperty$1 extends Span$1 {
669
+ type: "Property";
670
+ kind: PropertyKind;
671
+ key: PropertyKey_2;
672
+ value: Expression$1;
673
+ method: boolean;
674
+ shorthand: boolean;
675
+ computed: boolean;
676
+ optional?: false;
677
+ parent?: Node$1;
678
+ }
679
+ declare type ObjectPropertyKind = ObjectProperty$1 | SpreadElement$1;
680
+ declare type ParamPattern$1 = FormalParameter | TSParameterProperty | FormalParameterRest;
681
+ declare interface ParenthesizedExpression extends Span$1 {
682
+ type: "ParenthesizedExpression";
683
+ expression: Expression$1;
684
+ parent?: Node$1;
685
+ }
686
+ declare interface PrivateFieldExpression extends Span$1 {
687
+ type: "MemberExpression";
688
+ object: Expression$1;
689
+ property: PrivateIdentifier$1;
690
+ optional: boolean;
691
+ computed: false;
692
+ parent?: Node$1;
693
+ }
694
+ declare interface PrivateIdentifier$1 extends Span$1 {
695
+ type: "PrivateIdentifier";
696
+ name: string;
697
+ parent?: Node$1;
698
+ }
699
+ declare interface PrivateInExpression$1 extends Span$1 {
700
+ type: "BinaryExpression";
701
+ left: PrivateIdentifier$1;
702
+ operator: "in";
703
+ right: Expression$1;
704
+ parent?: Node$1;
705
+ }
706
+ declare interface Program$1 extends Span$1 {
707
+ type: "Program";
708
+ body: Array<Directive | Statement$1>;
709
+ sourceType: ModuleKind;
710
+ hashbang: Hashbang | null;
711
+ parent?: null;
712
+ }
713
+ declare type Program = Simplify<Built<Program$1>>;
714
+ declare interface PropertyDefinition$1 extends Span$1 {
715
+ type: PropertyDefinitionType;
716
+ decorators: Array<Decorator$1>;
717
+ key: PropertyKey_2;
718
+ typeAnnotation?: TSTypeAnnotation$1 | null;
719
+ value: Expression$1 | null;
720
+ computed: boolean;
721
+ static: boolean;
722
+ declare?: boolean;
723
+ override?: boolean;
724
+ optional?: boolean;
725
+ definite?: boolean;
726
+ readonly?: boolean;
727
+ accessibility?: TSAccessibility | null;
728
+ parent?: Node$1;
729
+ }
730
+ declare type PropertyDefinitionType = "PropertyDefinition" | "TSAbstractPropertyDefinition";
731
+ declare type PropertyKey_2 = IdentifierName$1 | PrivateIdentifier$1 | Expression$1;
732
+ declare type PropertyKind = "init" | "get" | "set";
733
+ declare interface RegExpLiteral$1 extends Span$1 {
734
+ type: "Literal";
735
+ value: RegExp | null;
736
+ raw: string | null;
737
+ regex: {
738
+ pattern: string;
739
+ flags: string;
740
+ };
741
+ parent?: Node$1;
742
+ }
743
+ declare interface ReturnStatement$1 extends Span$1 {
744
+ type: "ReturnStatement";
745
+ argument: Expression$1 | null;
746
+ parent?: Node$1;
747
+ }
748
+ declare interface SequenceExpression$1 extends Span$1 {
749
+ type: "SequenceExpression";
750
+ expressions: Array<Expression$1>;
751
+ parent?: Node$1;
752
+ }
753
+ declare type SimpleAssignmentTarget$1 = IdentifierReference$1 | TSAsExpression$1 | TSSatisfiesExpression$1 | TSNonNullExpression$1 | TSTypeAssertion$1 | MemberExpression$1;
754
+ declare type Simplify<T> = { [K in keyof T]: T[K]; } & {};
755
+ declare interface Span$1 {
756
+ start: number;
757
+ end: number;
758
+ range?: [number, number];
759
+ }
760
+ declare interface SpreadElement$1 extends Span$1 {
761
+ type: "SpreadElement";
762
+ argument: Expression$1;
763
+ parent?: Node$1;
764
+ }
765
+ declare type Statement$1 = BlockStatement$1 | BreakStatement$1 | ContinueStatement$1 | DebuggerStatement | DoWhileStatement$1 | EmptyStatement$1 | ExpressionStatement$1 | ForInStatement$1 | ForOfStatement$1 | ForStatement$1 | IfStatement$1 | LabeledStatement$1 | ReturnStatement$1 | SwitchStatement$1 | ThrowStatement$1 | TryStatement$1 | WhileStatement$1 | WithStatement$1 | Declaration | ModuleDeclaration;
766
+ declare interface StaticBlock$1 extends Span$1 {
767
+ type: "StaticBlock";
768
+ body: Array<Statement$1>;
769
+ parent?: Node$1;
770
+ }
771
+ declare interface StaticMemberExpression$1 extends Span$1 {
772
+ type: "MemberExpression";
773
+ object: Expression$1;
774
+ property: IdentifierName$1;
775
+ optional: boolean;
776
+ computed: false;
777
+ parent?: Node$1;
778
+ }
779
+ declare interface StringLiteral$1 extends Span$1 {
780
+ type: "Literal";
781
+ value: string;
782
+ raw: string | null;
783
+ parent?: Node$1;
784
+ }
785
+ declare interface Super$1 extends Span$1 {
786
+ type: "Super";
787
+ parent?: Node$1;
788
+ }
789
+ declare interface SwitchCase$1 extends Span$1 {
790
+ type: "SwitchCase";
791
+ test: Expression$1 | null;
792
+ consequent: Array<Statement$1>;
793
+ parent?: Node$1;
794
+ }
795
+ declare interface SwitchStatement$1 extends Span$1 {
796
+ type: "SwitchStatement";
797
+ discriminant: Expression$1;
798
+ cases: Array<SwitchCase$1>;
799
+ parent?: Node$1;
800
+ }
801
+ declare interface TaggedTemplateExpression$1 extends Span$1 {
802
+ type: "TaggedTemplateExpression";
803
+ tag: Expression$1;
804
+ typeArguments?: TSTypeParameterInstantiation$1 | null;
805
+ quasi: TemplateLiteral$1;
806
+ parent?: Node$1;
807
+ }
808
+ declare interface TemplateElement$1 extends Span$1 {
809
+ type: "TemplateElement";
810
+ value: TemplateElementValue;
811
+ tail: boolean;
812
+ parent?: Node$1;
813
+ }
814
+ declare interface TemplateElementValue {
815
+ raw: string;
816
+ cooked: string | null;
817
+ }
818
+ declare interface TemplateLiteral$1 extends Span$1 {
819
+ type: "TemplateLiteral";
820
+ quasis: Array<TemplateElement$1>;
821
+ expressions: Array<Expression$1>;
822
+ parent?: Node$1;
823
+ }
824
+ declare interface ThisExpression$1 extends Span$1 {
825
+ type: "ThisExpression";
826
+ parent?: Node$1;
827
+ }
828
+ declare interface ThrowStatement$1 extends Span$1 {
829
+ type: "ThrowStatement";
830
+ argument: Expression$1;
831
+ parent?: Node$1;
832
+ }
833
+ declare interface TryStatement$1 extends Span$1 {
834
+ type: "TryStatement";
835
+ block: BlockStatement$1;
836
+ handler: CatchClause$1 | null;
837
+ finalizer: BlockStatement$1 | null;
838
+ parent?: Node$1;
839
+ }
840
+ declare type TSAccessibility = "private" | "protected" | "public";
841
+ declare interface TSAnyKeyword extends Span$1 {
842
+ type: "TSAnyKeyword";
843
+ parent?: Node$1;
844
+ }
845
+ declare interface TSArrayType$1 extends Span$1 {
846
+ type: "TSArrayType";
847
+ elementType: TSType$1;
848
+ parent?: Node$1;
849
+ }
850
+ declare interface TSAsExpression$1 extends Span$1 {
851
+ type: "TSAsExpression";
852
+ expression: Expression$1;
853
+ typeAnnotation: TSType$1;
854
+ parent?: Node$1;
855
+ }
856
+ declare interface TSBigIntKeyword extends Span$1 {
857
+ type: "TSBigIntKeyword";
858
+ parent?: Node$1;
859
+ }
860
+ declare interface TSBooleanKeyword extends Span$1 {
861
+ type: "TSBooleanKeyword";
862
+ parent?: Node$1;
863
+ }
864
+ declare interface TSCallSignatureDeclaration$1 extends Span$1 {
865
+ type: "TSCallSignatureDeclaration";
866
+ typeParameters: TSTypeParameterDeclaration$1 | null;
867
+ params: ParamPattern$1[];
868
+ returnType: TSTypeAnnotation$1 | null;
869
+ parent?: Node$1;
870
+ }
871
+ declare interface TSClassImplements extends Span$1 {
872
+ type: "TSClassImplements";
873
+ expression: IdentifierReference$1 | ThisExpression$1 | MemberExpression$1;
874
+ typeArguments: TSTypeParameterInstantiation$1 | null;
875
+ parent?: Node$1;
876
+ }
877
+ declare interface TSConditionalType$1 extends Span$1 {
878
+ type: "TSConditionalType";
879
+ checkType: TSType$1;
880
+ extendsType: TSType$1;
881
+ trueType: TSType$1;
882
+ falseType: TSType$1;
883
+ parent?: Node$1;
884
+ }
885
+ declare interface TSConstructorType$1 extends Span$1 {
886
+ type: "TSConstructorType";
887
+ abstract: boolean;
888
+ typeParameters: TSTypeParameterDeclaration$1 | null;
889
+ params: ParamPattern$1[];
890
+ returnType: TSTypeAnnotation$1;
891
+ parent?: Node$1;
892
+ }
893
+ declare interface TSConstructSignatureDeclaration$1 extends Span$1 {
894
+ type: "TSConstructSignatureDeclaration";
895
+ typeParameters: TSTypeParameterDeclaration$1 | null;
896
+ params: ParamPattern$1[];
897
+ returnType: TSTypeAnnotation$1 | null;
898
+ parent?: Node$1;
899
+ }
900
+ declare interface TSEnumBody extends Span$1 {
901
+ type: "TSEnumBody";
902
+ members: Array<TSEnumMember>;
903
+ parent?: Node$1;
904
+ }
905
+ declare interface TSEnumDeclaration$1 extends Span$1 {
906
+ type: "TSEnumDeclaration";
907
+ id: BindingIdentifier$1;
908
+ body: TSEnumBody;
909
+ const: boolean;
910
+ declare: boolean;
911
+ parent?: Node$1;
912
+ }
913
+ declare interface TSEnumMember extends Span$1 {
914
+ type: "TSEnumMember";
915
+ id: TSEnumMemberName;
916
+ initializer: Expression$1 | null;
917
+ computed: boolean;
918
+ parent?: Node$1;
919
+ }
920
+ declare type TSEnumMemberName = IdentifierName$1 | StringLiteral$1 | TemplateLiteral$1;
921
+ declare interface TSExportAssignment$1 extends Span$1 {
922
+ type: "TSExportAssignment";
923
+ expression: Expression$1;
924
+ parent?: Node$1;
925
+ }
926
+ declare interface TSExternalModuleReference extends Span$1 {
927
+ type: "TSExternalModuleReference";
928
+ expression: StringLiteral$1;
929
+ parent?: Node$1;
930
+ }
931
+ declare interface TSFunctionType$1 extends Span$1 {
932
+ type: "TSFunctionType";
933
+ typeParameters: TSTypeParameterDeclaration$1 | null;
934
+ params: ParamPattern$1[];
935
+ returnType: TSTypeAnnotation$1;
936
+ parent?: Node$1;
937
+ }
938
+ declare interface TSGlobalDeclaration extends Span$1 {
939
+ type: "TSModuleDeclaration";
940
+ id: IdentifierName$1;
941
+ body: TSModuleBlock$1;
942
+ kind: "global";
943
+ declare: boolean;
944
+ global: true;
945
+ parent?: Node$1;
946
+ }
947
+ declare interface TSImportEqualsDeclaration$1 extends Span$1 {
948
+ type: "TSImportEqualsDeclaration";
949
+ id: BindingIdentifier$1;
950
+ moduleReference: TSModuleReference;
951
+ importKind: ImportOrExportKind;
952
+ parent?: Node$1;
953
+ }
954
+ declare interface TSImportType$1 extends Span$1 {
955
+ type: "TSImportType";
956
+ source: StringLiteral$1;
957
+ options: ObjectExpression$1 | null;
958
+ qualifier: TSImportTypeQualifier | null;
959
+ typeArguments: TSTypeParameterInstantiation$1 | null;
960
+ parent?: Node$1;
961
+ }
962
+ declare interface TSImportTypeQualifiedName extends Span$1 {
963
+ type: "TSQualifiedName";
964
+ left: TSImportTypeQualifier;
965
+ right: IdentifierName$1;
966
+ parent?: Node$1;
967
+ }
968
+ declare type TSImportTypeQualifier = IdentifierName$1 | TSImportTypeQualifiedName;
969
+ declare interface TSIndexedAccessType$1 extends Span$1 {
970
+ type: "TSIndexedAccessType";
971
+ objectType: TSType$1;
972
+ indexType: TSType$1;
973
+ parent?: Node$1;
974
+ }
975
+ declare interface TSIndexSignature$1 extends Span$1 {
976
+ type: "TSIndexSignature";
977
+ parameters: Array<TSIndexSignatureName>;
978
+ typeAnnotation: TSTypeAnnotation$1;
979
+ readonly: boolean;
980
+ static: boolean;
981
+ accessibility: null;
982
+ parent?: Node$1;
983
+ }
984
+ declare interface TSIndexSignatureName extends Span$1 {
985
+ type: "Identifier";
986
+ decorators: [];
987
+ name: string;
988
+ optional: false;
989
+ typeAnnotation: TSTypeAnnotation$1;
990
+ parent?: Node$1;
991
+ }
992
+ declare interface TSInferType$1 extends Span$1 {
993
+ type: "TSInferType";
994
+ typeParameter: TSTypeParameter;
995
+ parent?: Node$1;
996
+ }
997
+ declare interface TSInstantiationExpression$1 extends Span$1 {
998
+ type: "TSInstantiationExpression";
999
+ expression: Expression$1;
1000
+ typeArguments: TSTypeParameterInstantiation$1;
1001
+ parent?: Node$1;
1002
+ }
1003
+ declare interface TSInterfaceBody$1 extends Span$1 {
1004
+ type: "TSInterfaceBody";
1005
+ body: Array<TSSignature>;
1006
+ parent?: Node$1;
1007
+ }
1008
+ declare interface TSInterfaceDeclaration$1 extends Span$1 {
1009
+ type: "TSInterfaceDeclaration";
1010
+ id: BindingIdentifier$1;
1011
+ typeParameters: TSTypeParameterDeclaration$1 | null;
1012
+ extends: Array<TSInterfaceHeritage>;
1013
+ body: TSInterfaceBody$1;
1014
+ declare: boolean;
1015
+ parent?: Node$1;
1016
+ }
1017
+ declare interface TSInterfaceHeritage extends Span$1 {
1018
+ type: "TSInterfaceHeritage";
1019
+ expression: Expression$1;
1020
+ typeArguments: TSTypeParameterInstantiation$1 | null;
1021
+ parent?: Node$1;
1022
+ }
1023
+ declare interface TSIntersectionType$1 extends Span$1 {
1024
+ type: "TSIntersectionType";
1025
+ types: Array<TSType$1>;
1026
+ parent?: Node$1;
1027
+ }
1028
+ declare interface TSIntrinsicKeyword extends Span$1 {
1029
+ type: "TSIntrinsicKeyword";
1030
+ parent?: Node$1;
1031
+ }
1032
+ declare type TSLiteral = BooleanLiteral$1 | NumericLiteral$1 | BigIntLiteral$1 | StringLiteral$1 | TemplateLiteral$1 | UnaryExpression$1;
1033
+ declare interface TSLiteralType$1 extends Span$1 {
1034
+ type: "TSLiteralType";
1035
+ literal: TSLiteral;
1036
+ parent?: Node$1;
1037
+ }
1038
+ declare interface TSMappedType$1 extends Span$1 {
1039
+ type: "TSMappedType";
1040
+ key: BindingIdentifier$1;
1041
+ constraint: TSType$1;
1042
+ nameType: TSType$1 | null;
1043
+ typeAnnotation: TSType$1 | null;
1044
+ optional: TSMappedTypeModifierOperator | false;
1045
+ readonly: TSMappedTypeModifierOperator | null;
1046
+ parent?: Node$1;
1047
+ }
1048
+ declare type TSMappedTypeModifierOperator = true | "+" | "-";
1049
+ declare interface TSMethodSignature$1 extends Span$1 {
1050
+ type: "TSMethodSignature";
1051
+ key: PropertyKey_2;
1052
+ computed: boolean;
1053
+ optional: boolean;
1054
+ kind: TSMethodSignatureKind;
1055
+ typeParameters: TSTypeParameterDeclaration$1 | null;
1056
+ params: ParamPattern$1[];
1057
+ returnType: TSTypeAnnotation$1 | null;
1058
+ accessibility: null;
1059
+ readonly: false;
1060
+ static: false;
1061
+ parent?: Node$1;
1062
+ }
1063
+ declare type TSMethodSignatureKind = "method" | "get" | "set";
1064
+ declare interface TSModuleBlock$1 extends Span$1 {
1065
+ type: "TSModuleBlock";
1066
+ body: Array<Directive | Statement$1>;
1067
+ parent?: Node$1;
1068
+ }
1069
+ declare interface TSModuleDeclaration$1 extends Span$1 {
1070
+ type: "TSModuleDeclaration";
1071
+ id: BindingIdentifier$1 | StringLiteral$1 | TSQualifiedName$1;
1072
+ body: TSModuleBlock$1 | null;
1073
+ kind: TSModuleDeclarationKind;
1074
+ declare: boolean;
1075
+ global: false;
1076
+ parent?: Node$1;
1077
+ }
1078
+ declare type TSModuleDeclarationKind = "module" | "namespace";
1079
+ declare type TSModuleReference = TSExternalModuleReference | IdentifierReference$1 | TSQualifiedName$1;
1080
+ declare interface TSNamedTupleMember$1 extends Span$1 {
1081
+ type: "TSNamedTupleMember";
1082
+ label: IdentifierName$1;
1083
+ elementType: TSTupleElement;
1084
+ optional: boolean;
1085
+ parent?: Node$1;
1086
+ }
1087
+ declare interface TSNamespaceExportDeclaration$1 extends Span$1 {
1088
+ type: "TSNamespaceExportDeclaration";
1089
+ id: IdentifierName$1;
1090
+ parent?: Node$1;
1091
+ }
1092
+ declare interface TSNeverKeyword extends Span$1 {
1093
+ type: "TSNeverKeyword";
1094
+ parent?: Node$1;
1095
+ }
1096
+ declare interface TSNonNullExpression$1 extends Span$1 {
1097
+ type: "TSNonNullExpression";
1098
+ expression: Expression$1;
1099
+ parent?: Node$1;
1100
+ }
1101
+ declare interface TSNullKeyword extends Span$1 {
1102
+ type: "TSNullKeyword";
1103
+ parent?: Node$1;
1104
+ }
1105
+ declare interface TSNumberKeyword extends Span$1 {
1106
+ type: "TSNumberKeyword";
1107
+ parent?: Node$1;
1108
+ }
1109
+ declare interface TSObjectKeyword extends Span$1 {
1110
+ type: "TSObjectKeyword";
1111
+ parent?: Node$1;
1112
+ }
1113
+ declare interface TSOptionalType$1 extends Span$1 {
1114
+ type: "TSOptionalType";
1115
+ typeAnnotation: TSType$1;
1116
+ parent?: Node$1;
1117
+ }
1118
+ declare interface TSParameterProperty extends Span$1 {
1119
+ type: "TSParameterProperty";
1120
+ accessibility: TSAccessibility | null;
1121
+ decorators: Array<Decorator$1>;
1122
+ override: boolean;
1123
+ parameter: FormalParameter;
1124
+ readonly: boolean;
1125
+ static: boolean;
1126
+ parent?: Node$1;
1127
+ }
1128
+ declare interface TSParenthesizedType$1 extends Span$1 {
1129
+ type: "TSParenthesizedType";
1130
+ typeAnnotation: TSType$1;
1131
+ parent?: Node$1;
1132
+ }
1133
+ declare interface TSPropertySignature$1 extends Span$1 {
1134
+ type: "TSPropertySignature";
1135
+ computed: boolean;
1136
+ optional: boolean;
1137
+ readonly: boolean;
1138
+ key: PropertyKey_2;
1139
+ typeAnnotation: TSTypeAnnotation$1 | null;
1140
+ accessibility: null;
1141
+ static: false;
1142
+ parent?: Node$1;
1143
+ }
1144
+ declare interface TSQualifiedName$1 extends Span$1 {
1145
+ type: "TSQualifiedName";
1146
+ left: TSTypeName;
1147
+ right: IdentifierName$1;
1148
+ parent?: Node$1;
1149
+ }
1150
+ declare interface TSRestType$1 extends Span$1 {
1151
+ type: "TSRestType";
1152
+ typeAnnotation: TSType$1;
1153
+ parent?: Node$1;
1154
+ }
1155
+ declare interface TSSatisfiesExpression$1 extends Span$1 {
1156
+ type: "TSSatisfiesExpression";
1157
+ expression: Expression$1;
1158
+ typeAnnotation: TSType$1;
1159
+ parent?: Node$1;
1160
+ }
1161
+ declare type TSSignature = TSIndexSignature$1 | TSPropertySignature$1 | TSCallSignatureDeclaration$1 | TSConstructSignatureDeclaration$1 | TSMethodSignature$1;
1162
+ declare interface TSStringKeyword extends Span$1 {
1163
+ type: "TSStringKeyword";
1164
+ parent?: Node$1;
1165
+ }
1166
+ declare interface TSSymbolKeyword extends Span$1 {
1167
+ type: "TSSymbolKeyword";
1168
+ parent?: Node$1;
1169
+ }
1170
+ declare interface TSTemplateLiteralType$1 extends Span$1 {
1171
+ type: "TSTemplateLiteralType";
1172
+ quasis: Array<TemplateElement$1>;
1173
+ types: Array<TSType$1>;
1174
+ parent?: Node$1;
1175
+ }
1176
+ declare interface TSThisParameter extends Span$1 {
1177
+ type: "Identifier";
1178
+ decorators: [];
1179
+ name: "this";
1180
+ optional: false;
1181
+ typeAnnotation: TSTypeAnnotation$1 | null;
1182
+ parent?: Node$1;
1183
+ }
1184
+ declare interface TSThisType extends Span$1 {
1185
+ type: "TSThisType";
1186
+ parent?: Node$1;
1187
+ }
1188
+ declare type TSTupleElement = TSOptionalType$1 | TSRestType$1 | TSType$1;
1189
+ declare interface TSTupleType$1 extends Span$1 {
1190
+ type: "TSTupleType";
1191
+ elementTypes: Array<TSTupleElement>;
1192
+ parent?: Node$1;
1193
+ }
1194
+ declare type TSType$1 = TSAnyKeyword | TSBigIntKeyword | TSBooleanKeyword | TSIntrinsicKeyword | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSStringKeyword | TSSymbolKeyword | TSUndefinedKeyword | TSUnknownKeyword | TSVoidKeyword | TSArrayType$1 | TSConditionalType$1 | TSConstructorType$1 | TSFunctionType$1 | TSImportType$1 | TSIndexedAccessType$1 | TSInferType$1 | TSIntersectionType$1 | TSLiteralType$1 | TSMappedType$1 | TSNamedTupleMember$1 | TSTemplateLiteralType$1 | TSThisType | TSTupleType$1 | TSTypeLiteral | TSTypeOperator$1 | TSTypePredicate$1 | TSTypeQuery$1 | TSTypeReference$1 | TSUnionType$1 | TSParenthesizedType$1 | JSDocNullableType$1 | JSDocNonNullableType$1 | JSDocUnknownType;
1195
+ declare interface TSTypeAliasDeclaration$1 extends Span$1 {
1196
+ type: "TSTypeAliasDeclaration";
1197
+ id: BindingIdentifier$1;
1198
+ typeParameters: TSTypeParameterDeclaration$1 | null;
1199
+ typeAnnotation: TSType$1;
1200
+ declare: boolean;
1201
+ parent?: Node$1;
1202
+ }
1203
+ declare interface TSTypeAnnotation$1 extends Span$1 {
1204
+ type: "TSTypeAnnotation";
1205
+ typeAnnotation: TSType$1;
1206
+ parent?: Node$1;
1207
+ }
1208
+ declare interface TSTypeAssertion$1 extends Span$1 {
1209
+ type: "TSTypeAssertion";
1210
+ typeAnnotation: TSType$1;
1211
+ expression: Expression$1;
1212
+ parent?: Node$1;
1213
+ }
1214
+ declare interface TSTypeLiteral extends Span$1 {
1215
+ type: "TSTypeLiteral";
1216
+ members: Array<TSSignature>;
1217
+ parent?: Node$1;
1218
+ }
1219
+ declare type TSTypeName = IdentifierReference$1 | TSQualifiedName$1 | ThisExpression$1;
1220
+ declare interface TSTypeOperator$1 extends Span$1 {
1221
+ type: "TSTypeOperator";
1222
+ operator: TSTypeOperatorOperator;
1223
+ typeAnnotation: TSType$1;
1224
+ parent?: Node$1;
1225
+ }
1226
+ declare type TSTypeOperatorOperator = "keyof" | "unique" | "readonly";
1227
+ declare interface TSTypeParameter extends Span$1 {
1228
+ type: "TSTypeParameter";
1229
+ name: BindingIdentifier$1;
1230
+ constraint: TSType$1 | null;
1231
+ default: TSType$1 | null;
1232
+ in: boolean;
1233
+ out: boolean;
1234
+ const: boolean;
1235
+ parent?: Node$1;
1236
+ }
1237
+ declare interface TSTypeParameterDeclaration$1 extends Span$1 {
1238
+ type: "TSTypeParameterDeclaration";
1239
+ params: Array<TSTypeParameter>;
1240
+ parent?: Node$1;
1241
+ }
1242
+ declare interface TSTypeParameterInstantiation$1 extends Span$1 {
1243
+ type: "TSTypeParameterInstantiation";
1244
+ params: Array<TSType$1>;
1245
+ parent?: Node$1;
1246
+ }
1247
+ declare interface TSTypePredicate$1 extends Span$1 {
1248
+ type: "TSTypePredicate";
1249
+ parameterName: TSTypePredicateName;
1250
+ asserts: boolean;
1251
+ typeAnnotation: TSTypeAnnotation$1 | null;
1252
+ parent?: Node$1;
1253
+ }
1254
+ declare type TSTypePredicateName = IdentifierName$1 | TSThisType;
1255
+ declare interface TSTypeQuery$1 extends Span$1 {
1256
+ type: "TSTypeQuery";
1257
+ exprName: TSTypeQueryExprName;
1258
+ typeArguments: TSTypeParameterInstantiation$1 | null;
1259
+ parent?: Node$1;
1260
+ }
1261
+ declare type TSTypeQueryExprName = TSImportType$1 | TSTypeName;
1262
+ declare interface TSTypeReference$1 extends Span$1 {
1263
+ type: "TSTypeReference";
1264
+ typeName: TSTypeName;
1265
+ typeArguments: TSTypeParameterInstantiation$1 | null;
1266
+ parent?: Node$1;
1267
+ }
1268
+ declare interface TSUndefinedKeyword extends Span$1 {
1269
+ type: "TSUndefinedKeyword";
1270
+ parent?: Node$1;
1271
+ }
1272
+ declare interface TSUnionType$1 extends Span$1 {
1273
+ type: "TSUnionType";
1274
+ types: Array<TSType$1>;
1275
+ parent?: Node$1;
1276
+ }
1277
+ declare interface TSUnknownKeyword extends Span$1 {
1278
+ type: "TSUnknownKeyword";
1279
+ parent?: Node$1;
1280
+ }
1281
+ declare interface TSVoidKeyword extends Span$1 {
1282
+ type: "TSVoidKeyword";
1283
+ parent?: Node$1;
1284
+ }
1285
+ declare interface UnaryExpression$1 extends Span$1 {
1286
+ type: "UnaryExpression";
1287
+ operator: UnaryOperator;
1288
+ argument: Expression$1;
1289
+ prefix: true;
1290
+ parent?: Node$1;
1291
+ }
1292
+ declare type UnaryOperator = "+" | "-" | "!" | "~" | "typeof" | "void" | "delete";
1293
+ declare interface UpdateExpression$1 extends Span$1 {
1294
+ type: "UpdateExpression";
1295
+ operator: UpdateOperator;
1296
+ prefix: boolean;
1297
+ argument: SimpleAssignmentTarget$1;
1298
+ parent?: Node$1;
1299
+ }
1300
+ declare type UpdateOperator = "++" | "--";
1301
+ declare interface V8IntrinsicExpression extends Span$1 {
1302
+ type: "V8IntrinsicExpression";
1303
+ name: IdentifierName$1;
1304
+ arguments: Array<Argument$1>;
1305
+ parent?: Node$1;
1306
+ }
1307
+ declare interface VariableDeclaration$1 extends Span$1 {
1308
+ type: "VariableDeclaration";
1309
+ kind: VariableDeclarationKind;
1310
+ declarations: Array<VariableDeclarator$1>;
1311
+ declare?: boolean;
1312
+ parent?: Node$1;
1313
+ }
1314
+ declare type VariableDeclarationKind = "var" | "let" | "const" | "using" | "await using";
1315
+ declare interface VariableDeclarator$1 extends Span$1 {
1316
+ type: "VariableDeclarator";
1317
+ id: BindingPattern$1;
1318
+ init: Expression$1 | null;
1319
+ definite?: boolean;
1320
+ parent?: Node$1;
1321
+ }
1322
+ declare interface WhileStatement$1 extends Span$1 {
1323
+ type: "WhileStatement";
1324
+ test: Expression$1;
1325
+ body: Statement$1;
1326
+ parent?: Node$1;
1327
+ }
1328
+ declare interface WithStatement$1 extends Span$1 {
1329
+ type: "WithStatement";
1330
+ object: Expression$1;
1331
+ body: Statement$1;
1332
+ parent?: Node$1;
1333
+ }
1334
+ declare interface YieldExpression$1 extends Span$1 {
1335
+ type: "YieldExpression";
1336
+ delegate: boolean;
1337
+ argument: Expression$1 | null;
1338
+ parent?: Node$1;
1339
+ }
1340
+ //#endregion
1341
+ //#region src/Location.schema.d.ts
1342
+ /**
1343
+ * File coordinates in the mutation-testing-report-schema contract: both line
1344
+ * and column are 1-based. The first line of a file is line 1, and the first
1345
+ * character of a line is column 1. Slicing a source line by one of these
1346
+ * positions uses `line - 1` for the line index and `column - 1` for the
1347
+ * character offset.
1348
+ */
1349
+ declare const PositionSchema: S.Struct<{
1350
+ readonly line: S.Int;
1351
+ readonly column: S.Int;
1352
+ }>;
1353
+ type Position = typeof PositionSchema.Type;
1354
+ declare const LocationSchema: S.Struct<{
1355
+ readonly start: S.Struct<{
1356
+ readonly line: S.Int;
1357
+ readonly column: S.Int;
1358
+ }>;
1359
+ readonly end: S.Struct<{
1360
+ readonly line: S.Int;
1361
+ readonly column: S.Int;
1362
+ }>;
1363
+ }>;
1364
+ type Location = typeof LocationSchema.Type;
1365
+ declare const OpenEndLocationSchema: S.Struct<{
1366
+ readonly start: S.Struct<{
1367
+ readonly line: S.Int;
1368
+ readonly column: S.Int;
1369
+ }>;
1370
+ readonly end: S.optional<S.Struct<{
1371
+ readonly line: S.Int;
1372
+ readonly column: S.Int;
1373
+ }>>;
1374
+ }>;
1375
+ type OpenEndLocation = typeof OpenEndLocationSchema.Type;
1376
+ /**
1377
+ * A mutant's `location` already speaks the report contract (1-based line and
1378
+ * column), so the report's location is that location unchanged.
1379
+ */
1380
+ declare const ReportLocationFromMutant: S.Struct<{
1381
+ readonly start: S.Struct<{
1382
+ readonly line: S.Int;
1383
+ readonly column: S.Int;
1384
+ }>;
1385
+ readonly end: S.Struct<{
1386
+ readonly line: S.Int;
1387
+ readonly column: S.Int;
1388
+ }>;
1389
+ }>;
1390
+ //#endregion
1391
+ //#region src/Syntax.schema.d.ts
1392
+ declare const AstFormat: S.Literals<readonly ["js", "ts", "tsx"]>;
1393
+ type AstFormat = typeof AstFormat.Type;
1394
+ //#endregion
1395
+ //#region src/Ast.schema.d.ts
1396
+ interface SpannedComment {
1397
+ readonly type: 'Line' | 'Block';
1398
+ readonly value: string;
1399
+ readonly start: number;
1400
+ readonly end: number;
1401
+ }
1402
+ type ScriptFormat = Extract<AstFormat, 'js' | 'ts' | 'tsx'>;
1403
+ interface BaseAst {
1404
+ originFileName: string;
1405
+ rawContent: string;
1406
+ root: Program;
1407
+ offset?: Position;
1408
+ }
1409
+ interface EmbeddedAst {
1410
+ format: 'embedded';
1411
+ formatId: FormatId;
1412
+ originFileName: string;
1413
+ rawContent: string;
1414
+ document: EmbeddedDocument;
1415
+ readonly context: FrameworkContext;
1416
+ scripts: readonly EmbeddedScript[];
1417
+ }
1418
+ interface EmbeddedScript {
1419
+ readonly region: number;
1420
+ readonly ast: ScriptAst;
1421
+ }
1422
+ interface JSAst extends BaseAst {
1423
+ format: 'js';
1424
+ root: Program;
1425
+ comments: readonly SpannedComment[];
1426
+ }
1427
+ interface TSAst extends BaseAst {
1428
+ format: 'ts';
1429
+ root: Program;
1430
+ comments: readonly SpannedComment[];
1431
+ }
1432
+ interface TsxAst extends BaseAst {
1433
+ format: 'tsx';
1434
+ root: Program;
1435
+ comments: readonly SpannedComment[];
1436
+ }
1437
+ type ScriptAst = JSAst | TSAst | TsxAst;
1438
+ type Ast = JSAst | TSAst | TsxAst | EmbeddedAst;
1439
+ //#endregion
1440
+ //#region src/Mutant.schema.d.ts
1441
+ declare const MutantStatusSchema: S.Literals<readonly ["Killed", "Survived", "NoCoverage", "CompileError", "RuntimeError", "Timeout", "Ignored", "Pending"]>;
1442
+ type MutantStatus = typeof MutantStatusSchema.Type;
1443
+ declare const MutantId: S.brand<S.NonEmptyString, "MutantId">;
1444
+ type MutantId = typeof MutantId.Type;
1445
+ declare const MutatorName: S.brand<S.NonEmptyString, "MutatorName">;
1446
+ type MutatorName = typeof MutatorName.Type;
1447
+ declare const CanonicalFileName: S.decodeTo<S.brand<S.String, "CanonicalFileName">, S.String, never, never>;
1448
+ type CanonicalFileName = typeof CanonicalFileName.Type;
1449
+ declare const Mutant_base: S.Class<Mutant$1, S.TaggedStruct<"Mutant", {
1450
+ readonly id: S.brand<S.NonEmptyString, "MutantId">;
1451
+ readonly fileName: S.decodeTo<S.brand<S.String, "CanonicalFileName">, S.String, never, never>;
1452
+ readonly mutatorName: S.brand<S.NonEmptyString, "MutatorName">;
1453
+ readonly replacement: S.String;
1454
+ readonly location: S.Struct<{
1455
+ readonly start: S.Struct<{
1456
+ readonly line: S.Int;
1457
+ readonly column: S.Int;
1458
+ }>;
1459
+ readonly end: S.Struct<{
1460
+ readonly line: S.Int;
1461
+ readonly column: S.Int;
1462
+ }>;
1463
+ }>;
1464
+ readonly status: S.optional<S.Literals<readonly ["Killed", "Survived", "NoCoverage", "CompileError", "RuntimeError", "Timeout", "Ignored", "Pending"]>>;
1465
+ readonly statusReason: S.optional<S.String>;
1466
+ readonly coveredBy: S.optional<S.$Array<S.String>>;
1467
+ readonly static: S.optional<S.Boolean>;
1468
+ readonly testsCompleted: S.optional<S.Finite>;
1469
+ readonly description: S.optional<S.String>;
1470
+ }>, {}>;
1471
+ /**
1472
+ * A mutant's file location in the mutation-testing-report-schema contract:
1473
+ * 1-based line and 1-based column, the same base the JSON report and the
1474
+ * machine stream emit. Every producer on the instrument path (node spans,
1475
+ * embedded-region shifts) targets this base; no downstream layer converts.
1476
+ */
1477
+ declare class Mutant$1 extends Mutant_base {}
1478
+ declare const MutantFromUnknown: S.compose<typeof Mutant$1, S.Unknown>;
1479
+ type MutantFromUnknown = typeof MutantFromUnknown.Type;
1480
+ declare const RunOptionsFields: {
1481
+ timeout: S.Finite;
1482
+ disableBail: S.Boolean;
1483
+ };
1484
+ declare const MutantActivationSchema: S.Literals<readonly ["runtime", "static"]>;
1485
+ type MutantActivation = typeof MutantActivationSchema.Type;
1486
+ declare const MutantRunOptionsSchema: S.Struct<{
1487
+ readonly timeout: S.Finite;
1488
+ readonly disableBail: S.Boolean;
1489
+ readonly activeMutant: typeof Mutant$1;
1490
+ readonly sandboxFileName: S.String;
1491
+ readonly mutantActivation: S.Literals<readonly ["runtime", "static"]>;
1492
+ readonly reloadEnvironment: S.Boolean;
1493
+ readonly testFilter: S.optionalKey<S.$Array<S.String>>;
1494
+ readonly hitLimit: S.optionalKey<S.Int>;
1495
+ }>;
1496
+ declare const MutantCoverageSchema: S.Struct<{
1497
+ readonly perTest: S.$Record<S.String, S.$Record<S.String, S.Int>>;
1498
+ readonly static: S.$Record<S.String, S.Int>;
1499
+ }>;
1500
+ type MutantCoverage = typeof MutantCoverageSchema.Type;
1501
+ type CoverageData = Record<string, number>;
1502
+ type CoveragePerTestId = Record<string, CoverageData>;
1503
+ interface Coverage {
1504
+ readonly static: CoverageData;
1505
+ readonly perTest: CoveragePerTestId;
1506
+ }
1507
+ interface RunOptions {
1508
+ readonly timeout: number;
1509
+ readonly disableBail: boolean;
1510
+ }
1511
+ interface MutantRunOptions extends RunOptions {
1512
+ readonly testFilter?: readonly string[];
1513
+ readonly hitLimit?: number;
1514
+ readonly activeMutant: Mutant$1;
1515
+ readonly sandboxFileName: string;
1516
+ readonly mutantActivation: MutantActivation;
1517
+ readonly reloadEnvironment: boolean;
1518
+ }
1519
+ interface EarlyResultPlan {
1520
+ readonly plan: 'EarlyResult';
1521
+ readonly mutant: Mutant$1;
1522
+ }
1523
+ interface RunPlan {
1524
+ readonly plan: 'Run';
1525
+ readonly mutant: Mutant$1;
1526
+ readonly runOptions: MutantRunOptions;
1527
+ readonly netTime: number;
1528
+ }
1529
+ type TestPlan = EarlyResultPlan | RunPlan;
1530
+ type MutantTestCoverage = Mutant$1 & {
1531
+ readonly coveredBy: ReadonlyArray<string> | undefined;
1532
+ readonly static: boolean | undefined;
1533
+ };
1534
+ type RunMutantResult = Mutant$1 & {
1535
+ readonly status: MutantStatus;
1536
+ readonly statusReason?: string | undefined;
1537
+ readonly testsCompleted?: number | undefined;
1538
+ readonly killedBy?: readonly string[] | undefined;
1539
+ readonly coveredBy?: readonly string[] | undefined;
1540
+ readonly static?: boolean | undefined;
1541
+ };
1542
+ declare const InstrumenterContext_base: S.Class<InstrumenterContext, S.Struct<{
1543
+ readonly activeMutant: S.optional<S.String>;
1544
+ readonly currentTestId: S.optional<S.String>;
1545
+ readonly mutantCoverage: S.optional<S.Struct<{
1546
+ readonly perTest: S.$Record<S.String, S.$Record<S.String, S.Int>>;
1547
+ readonly static: S.$Record<S.String, S.Int>;
1548
+ }>>;
1549
+ readonly hitCount: S.optional<S.Finite>;
1550
+ readonly hitLimit: S.optional<S.Finite>;
1551
+ }>, {}>;
1552
+ declare class InstrumenterContext extends InstrumenterContext_base {
1553
+ static readonly NAMESPACE = "__stryker__";
1554
+ static readonly MUTATION_COVERAGE_OBJECT = "mutantCoverage";
1555
+ static readonly ACTIVE_MUTANT = "activeMutant";
1556
+ static readonly CURRENT_TEST_ID = "currentTestId";
1557
+ static readonly HIT_COUNT = "hitCount";
1558
+ static readonly HIT_LIMIT = "hitLimit";
1559
+ static readonly ACTIVE_MUTANT_ENV_VARIABLE = "__STRYKER_ACTIVE_MUTANT__";
1560
+ }
1561
+ type MutantRunPlan = RunPlan;
1562
+ type MutantEarlyResultPlan = EarlyResultPlan;
1563
+ type MutantTestPlan = TestPlan;
1564
+ //#endregion
1565
+ //#region src/Instrument.schema.d.ts
1566
+ declare const InstrumentError_base: S.Class<InstrumentError, S.TaggedStruct<"InstrumentError", {
1567
+ readonly message: S.String;
1568
+ readonly cause: S.Defect;
1569
+ }>, import("effect/Cause").YieldableError>;
1570
+ declare class InstrumentError extends InstrumentError_base {
1571
+ get message(): string;
1572
+ }
1573
+ declare const MutateDescriptionSchema: S.Union<readonly [S.Boolean, S.$Array<S.Struct<{
1574
+ readonly start: S.Struct<{
1575
+ readonly line: S.Int;
1576
+ readonly column: S.Int;
1577
+ }>;
1578
+ readonly end: S.Struct<{
1579
+ readonly line: S.Int;
1580
+ readonly column: S.Int;
1581
+ }>;
1582
+ }>>]>;
1583
+ type MutateDescription = typeof MutateDescriptionSchema.Type;
1584
+ interface MutationRange {
1585
+ readonly start: Position;
1586
+ readonly end: Position;
1587
+ }
1588
+ interface FileDescription {
1589
+ readonly mutate: MutateDescription;
1590
+ }
1591
+ type FileDescriptions = Record<string, FileDescription>;
1592
+ declare const InstrumenterOptionsSchema: S.Struct<{
1593
+ readonly excludedMutations: S.$Array<S.String>;
1594
+ readonly ignorers: S.$Array<S.Unknown>;
1595
+ readonly noHeader: S.optional<S.Boolean>;
1596
+ readonly optInMutations: S.optional<S.$Array<S.String>>;
1597
+ }>;
1598
+ type InstrumenterOptions = typeof InstrumenterOptionsSchema.Type;
1599
+ declare const InstrumentFileSkip_base: S.Class<InstrumentFileSkip, S.TaggedStruct<"InstrumentFileSkip", {
1600
+ readonly file: S.String;
1601
+ readonly extension: S.String;
1602
+ readonly reason: S.String;
1603
+ }>, {}>;
1604
+ declare class InstrumentFileSkip extends InstrumentFileSkip_base {}
1605
+ declare const InstrumentResult_base: S.Class<InstrumentResult$1, S.TaggedStruct<"InstrumentResult", {
1606
+ readonly files: S.$Array<S.Struct<{
1607
+ readonly name: S.String;
1608
+ readonly content: S.String;
1609
+ readonly mutate: S.Union<readonly [S.Boolean, S.$Array<S.Struct<{
1610
+ readonly start: S.Struct<{
1611
+ readonly line: S.Int;
1612
+ readonly column: S.Int;
1613
+ }>;
1614
+ readonly end: S.Struct<{
1615
+ readonly line: S.Int;
1616
+ readonly column: S.Int;
1617
+ }>;
1618
+ }>>]>;
1619
+ }>>;
1620
+ readonly mutants: S.$Array<typeof Mutant$1>;
1621
+ readonly skipped: S.$Array<typeof InstrumentFileSkip>;
1622
+ }>, {}>;
1623
+ declare class InstrumentResult$1 extends InstrumentResult_base {}
1624
+ //#endregion
1625
+ //#region src/Parser.schema.d.ts
1626
+ declare const ParseFailed_base: S.Class<ParseFailed, S.TaggedStruct<"ParseFailed", {
1627
+ readonly fileName: S.String;
1628
+ readonly message: S.String;
1629
+ readonly location: S.Struct<{
1630
+ readonly line: S.Finite;
1631
+ readonly column: S.Finite;
1632
+ }>;
1633
+ readonly cause: S.Defect;
1634
+ }>, import("effect/Cause").YieldableError>;
1635
+ declare class ParseFailed extends ParseFailed_base {
1636
+ get message(): string;
1637
+ }
1638
+ //#endregion
1639
+ //#region src/Parser.service.d.ts
1640
+ interface ParserOptions {}
1641
+ interface ParserContext {
1642
+ parse: (code: string, fileName: string, scriptFormat: ScriptFormat) => Effect.Effect<ScriptAst, ParseFailed>;
1643
+ }
1644
+ //#endregion
1645
+ //#region src/Printer.handle.d.ts
1646
+ type Printer<T extends Ast = Ast> = (file: T, context: PrinterContext) => string;
1647
+ interface PrinterContext {
1648
+ print: Printer<Ast>;
1649
+ }
1650
+ //#endregion
1651
+ //#region src/Mutator.service.d.ts
1652
+ interface Mutable {
1653
+ mutatorName: string;
1654
+ ignoreReason?: string | undefined;
1655
+ replacement: Node_2;
1656
+ }
1657
+ interface Mutant extends Mutable {
1658
+ readonly id: string;
1659
+ readonly fileName: string;
1660
+ readonly original: Node_2;
1661
+ readonly location: Location;
1662
+ readonly replacementCode: string;
1663
+ }
1664
+ interface MutatorOptions {
1665
+ excludedMutations: string[];
1666
+ optInMutations: readonly string[];
1667
+ noHeader?: boolean;
1668
+ }
1669
+ //#endregion
1670
+ //#region src/Transformer.service.d.ts
1671
+ interface TransformerOptions extends MutatorOptions {
1672
+ ignorers: readonly Ignorer[];
1673
+ }
1674
+ interface MutantCollector {
1675
+ readonly nextIndex: number;
1676
+ readonly append: (mutants: readonly Mutant[]) => void;
1677
+ readonly map: <A>(transform: (mutant: Mutant) => A) => readonly A[];
1678
+ }
1679
+ type AstTransformer<T extends Ast = Ast> = (ast: T, mutantCollector: MutantCollector, context: TransformerContext) => Effect.Effect<readonly string[], ParseFailed | InstrumentError>;
1680
+ interface TransformerContext {
1681
+ transform: AstTransformer;
1682
+ options: TransformerOptions;
1683
+ mutateDescription: MutateDescription;
1684
+ registry: FormatRegistry;
1685
+ readonly basePath?: string | undefined;
1686
+ }
1687
+ //#endregion
1688
+ //#region src/Format.schema.d.ts
1689
+ type FormatKind = 'script' | 'embedded';
1690
+ interface FormatClaim<Kind extends FormatKind = FormatKind> {
1691
+ readonly formatId: FormatId;
1692
+ readonly extensions: readonly string[];
1693
+ readonly language: string;
1694
+ readonly kind: Kind;
1695
+ }
1696
+ interface ScriptHooks {
1697
+ readonly parse: (text: string, fileName: string, context: ParserContext) => Effect.Effect<Ast, ParseFailed | InstrumentError>;
1698
+ readonly transform: AstTransformer;
1699
+ readonly print: (ast: Ast, context: PrinterContext) => string;
1700
+ readonly disableTypeChecks: (ast: Ast) => Effect.Effect<string, InstrumentError>;
1701
+ }
1702
+ interface FormatHooks extends ScriptHooks {
1703
+ readonly owner: string;
1704
+ readonly ownerVersion: string;
1705
+ }
1706
+ interface ScriptFormatEntry extends FormatHooks {
1707
+ readonly claim: FormatClaim<'script'>;
1708
+ readonly scriptFormat: ScriptFormat;
1709
+ }
1710
+ interface EmbeddedFormatEntry extends FormatHooks {
1711
+ readonly claim: FormatClaim<'embedded'>;
1712
+ }
1713
+ type FormatEntry = ScriptFormatEntry | EmbeddedFormatEntry;
1714
+ type EntryForFormat = (formatId: string) => Option.Option<FormatEntry>;
1715
+ interface FormatRegistry {
1716
+ readonly entries: readonly FormatEntry[];
1717
+ readonly entryForFormat: EntryForFormat;
1718
+ readonly entryForExtension: (extension: string) => Option.Option<FormatEntry>;
1719
+ }
1720
+ //#endregion
1721
+ //#region src/Format.handle.d.ts
1722
+ declare const extensionOf: (fileName: string) => string;
1723
+ declare const registerEntries: {
1724
+ (registry: FormatRegistry, additions: readonly FormatEntry[]): FormatRegistry;
1725
+ (additions: readonly FormatEntry[]): (registry: FormatRegistry) => FormatRegistry;
1726
+ };
1727
+ declare const coreFormatRegistry: FormatRegistry;
1728
+ //#endregion
1729
+ //#region src/FrameworkEntry.handle.d.ts
1730
+ declare const frameworkEntryOf: {
1731
+ (moduleName: string, framework: Framework): EmbeddedFormatEntry;
1732
+ (framework: Framework): (moduleName: string) => EmbeddedFormatEntry;
1733
+ };
1734
+ declare namespace mod_d_exports$1 {
1735
+ export { EmbeddedFormatEntry, FormatClaim, FormatEntry, FormatHooks, FormatKind, FormatRegistry, ScriptFormatEntry, coreFormatRegistry, extensionOf, frameworkEntryOf, registerEntries };
1736
+ }
1737
+ //#endregion
1738
+ //#region src/Instrument.service.d.ts
1739
+ interface File extends FileDescription {
1740
+ name: string;
1741
+ content: string;
1742
+ }
1743
+ interface InstrumentResult {
1744
+ files: readonly File[];
1745
+ mutants: readonly Mutant$1[];
1746
+ skipped: readonly InstrumentFileSkip[];
1747
+ }
1748
+ declare const instrument: {
1749
+ (files: readonly File[], options: InstrumenterOptions, registry?: FormatRegistry): Effect.Effect<InstrumentResult$1, InstrumentError>;
1750
+ (options: InstrumenterOptions, registry?: FormatRegistry): (files: readonly File[]) => Effect.Effect<InstrumentResult$1, InstrumentError>;
1751
+ };
1752
+ declare const disableTypeChecks: {
1753
+ (file: File, registry?: FormatRegistry): Effect.Effect<File, InstrumentError>;
1754
+ (registry?: FormatRegistry): (file: File) => Effect.Effect<File, InstrumentError>;
1755
+ };
1756
+ declare namespace mod_d_exports$2 {
1757
+ export { File, FileDescription, FileDescriptions, InstrumentError, InstrumentFileSkip, InstrumentResult, InstrumenterOptions, MutateDescription, MutationRange, ParserOptions, disableTypeChecks, instrument };
1758
+ }
1759
+ declare namespace mod_d_exports$3 {
1760
+ export { CanonicalFileName, CanonicalFileName as CanonicalFileNameValue, Coverage, CoverageData, CoveragePerTestId, EarlyResultPlan, InstrumenterContext, Location, LocationSchema, Mutant$1 as Mutant, MutantActivation, MutantActivationSchema, MutantCoverage, MutantCoverageSchema, MutantEarlyResultPlan, MutantFromUnknown, MutantFromUnknown as MutantFromUnknownValue, MutantId, MutantId as MutantIdValue, MutantRunOptions, MutantRunOptionsSchema, MutantRunPlan, MutantStatus, MutantStatusSchema, MutantTestCoverage, MutantTestPlan, MutatorName, MutatorName as MutatorNameValue, OpenEndLocation, OpenEndLocationSchema, Position, PositionSchema, ReportLocationFromMutant, RunMutantResult, RunOptions, RunOptionsFields, RunPlan, TestPlan };
1761
+ }
1762
+ //#endregion
1763
+ export { mod_d_exports as ErrorText, mod_d_exports$1 as Format, mod_d_exports$2 as Instrument, mod_d_exports$3 as Mutant };