meriyah 4.5.0 → 6.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.
Files changed (81) hide show
  1. package/CHANGELOG.md +415 -445
  2. package/README.md +52 -34
  3. package/dist/meriyah.cjs +9203 -8807
  4. package/dist/meriyah.min.mjs +1 -0
  5. package/dist/{meriyah.esm.js → meriyah.mjs} +9203 -8807
  6. package/dist/meriyah.umd.js +9203 -8807
  7. package/dist/meriyah.umd.min.js +1 -1
  8. package/dist/src/chars.d.ts +135 -135
  9. package/dist/src/common.d.ts +225 -200
  10. package/dist/src/common.d.ts.map +1 -1
  11. package/dist/src/errors.d.ts +197 -187
  12. package/dist/src/errors.d.ts.map +1 -1
  13. package/dist/src/estree.d.ts +524 -507
  14. package/dist/src/estree.d.ts.map +1 -1
  15. package/dist/src/lexer/charClassifier.d.ts +24 -24
  16. package/dist/src/lexer/charClassifier.d.ts.map +1 -1
  17. package/dist/src/lexer/comments.d.ts +14 -14
  18. package/dist/src/lexer/common.d.ts +25 -26
  19. package/dist/src/lexer/common.d.ts.map +1 -1
  20. package/dist/src/lexer/decodeHTML.d.ts +1 -1
  21. package/dist/src/lexer/decodeHTML.d.ts.map +1 -1
  22. package/dist/src/lexer/identifier.d.ts +8 -8
  23. package/dist/src/lexer/identifier.d.ts.map +1 -1
  24. package/dist/src/lexer/index.d.ts +9 -9
  25. package/dist/src/lexer/index.d.ts.map +1 -1
  26. package/dist/src/lexer/jsx.d.ts +6 -6
  27. package/dist/src/lexer/jsx.d.ts.map +1 -1
  28. package/dist/src/lexer/numeric.d.ts +5 -5
  29. package/dist/src/lexer/numeric.d.ts.map +1 -1
  30. package/dist/src/lexer/regexp.d.ts +3 -3
  31. package/dist/src/lexer/regexp.d.ts.map +1 -1
  32. package/dist/src/lexer/scan.d.ts +6 -6
  33. package/dist/src/lexer/scan.d.ts.map +1 -1
  34. package/dist/src/lexer/string.d.ts +12 -12
  35. package/dist/src/lexer/string.d.ts.map +1 -1
  36. package/dist/src/lexer/template.d.ts +4 -4
  37. package/dist/src/lexer/template.d.ts.map +1 -1
  38. package/dist/src/meriyah.d.ts +7 -7
  39. package/dist/src/meriyah.d.ts.map +1 -1
  40. package/dist/src/parser.d.ts +119 -118
  41. package/dist/src/parser.d.ts.map +1 -1
  42. package/dist/src/token.d.ts +167 -167
  43. package/dist/src/token.d.ts.map +1 -1
  44. package/dist/src/unicode.d.ts +5 -5
  45. package/package.json +44 -48
  46. package/dist/meriyah.amd.js +0 -8854
  47. package/dist/meriyah.amd.min.js +0 -1
  48. package/dist/meriyah.cjs.js +0 -8852
  49. package/dist/meriyah.cjs.min.js +0 -1
  50. package/dist/meriyah.esm.min.js +0 -1
  51. package/dist/meriyah.esm.min.mjs +0 -1
  52. package/dist/meriyah.esm.mjs +0 -8846
  53. package/dist/meriyah.iife.js +0 -8857
  54. package/dist/meriyah.iife.min.js +0 -1
  55. package/dist/meriyah.min.cjs +0 -1
  56. package/dist/meriyah.system.js +0 -8860
  57. package/dist/meriyah.system.min.js +0 -1
  58. package/dist/meriyah.umd.cjs +0 -8858
  59. package/dist/meriyah.umd.es5.js +0 -8927
  60. package/dist/meriyah.umd.es5.min.js +0 -1
  61. package/dist/meriyah.umd.min.cjs +0 -1
  62. package/src/chars.ts +0 -155
  63. package/src/common.ts +0 -841
  64. package/src/errors.ts +0 -419
  65. package/src/estree.ts +0 -817
  66. package/src/lexer/charClassifier.ts +0 -449
  67. package/src/lexer/comments.ts +0 -178
  68. package/src/lexer/common.ts +0 -140
  69. package/src/lexer/decodeHTML.ts +0 -2186
  70. package/src/lexer/identifier.ts +0 -196
  71. package/src/lexer/index.ts +0 -32
  72. package/src/lexer/jsx.ts +0 -126
  73. package/src/lexer/numeric.ts +0 -259
  74. package/src/lexer/regexp.ts +0 -156
  75. package/src/lexer/scan.ts +0 -655
  76. package/src/lexer/string.ts +0 -242
  77. package/src/lexer/template.ts +0 -108
  78. package/src/meriyah.ts +0 -29
  79. package/src/parser.ts +0 -9210
  80. package/src/token.ts +0 -307
  81. package/src/unicode.ts +0 -36
@@ -1,508 +1,525 @@
1
- export interface _Node {
2
- start?: number;
3
- end?: number;
4
- range?: [number, number];
5
- loc?: SourceLocation | null;
6
- }
7
- export interface SourceLocation {
8
- source?: string | null;
9
- start: Position;
10
- end: Position;
11
- }
12
- export interface Position {
13
- line: number;
14
- column: number;
15
- }
16
- export declare type Labels = any;
17
- export declare type IdentifierOrExpression = Identifier | Expression | ArrowFunctionExpression;
18
- export declare type ArgumentExpression = ArrayExpression | AssignmentExpression | ConditionalExpression | Literal | SpreadElement | BinaryExpression | LogicalExpression | SequenceExpression;
19
- export declare type CommentType = 'SingleLine' | 'MultiLine' | 'HTMLOpen' | 'HTMLClose' | 'HashbangComment';
20
- export interface Comment {
21
- type: CommentType;
22
- value: string;
23
- start?: number;
24
- end?: number;
25
- loc?: SourceLocation | null;
26
- }
27
- export declare type Node = ArrayExpression | ArrayPattern | ArrowFunctionExpression | AssignmentExpression | AssignmentPattern | AwaitExpression | BigIntLiteral | BinaryExpression | BlockStatement | BreakStatement | CallExpression | ChainExpression | ImportExpression | CatchClause | ClassBody | ClassDeclaration | ClassExpression | ConditionalExpression | ContinueStatement | DebuggerStatement | Decorator | DoWhileStatement | EmptyStatement | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ExportSpecifier | ExpressionStatement | PropertyDefinition | ForInStatement | ForOfStatement | ForStatement | FunctionDeclaration | FunctionExpression | Identifier | IfStatement | Import | ImportDeclaration | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | JSXNamespacedName | JSXAttribute | JSXClosingElement | JSXClosingFragment | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXFragment | JSXIdentifier | JSXOpeningElement | JSXOpeningFragment | JSXSpreadAttribute | JSXSpreadChild | JSXMemberExpression | JSXText | LabeledStatement | Literal | LogicalExpression | MemberExpression | MetaProperty | MethodDefinition | NewExpression | ObjectExpression | ObjectPattern | ParenthesizedExpression | PrivateIdentifier | Program | Property | RegExpLiteral | RestElement | ReturnStatement | SequenceExpression | SpreadElement | StaticBlock | Super | SwitchCase | SwitchStatement | TaggedTemplateExpression | TemplateElement | TemplateLiteral | ThisExpression | ThrowStatement | TryStatement | UpdateExpression | UnaryExpression | VariableDeclaration | VariableDeclarator | WhileStatement | WithStatement | YieldExpression;
28
- export declare type BindingPattern = ArrayPattern | ObjectPattern | Identifier;
29
- export declare type ClassElement = FunctionExpression | MethodDefinition;
30
- export declare type DeclarationStatement = ClassDeclaration | ClassExpression | ExportDefaultDeclaration | ExportAllDeclaration | ExportNamedDeclaration | FunctionDeclaration;
31
- export declare type EntityName = Identifier;
32
- export declare type ExportDeclaration = ClassDeclaration | ClassExpression | FunctionDeclaration | VariableDeclaration;
33
- export declare type Expression = ArrowFunctionExpression | AssignmentExpression | BinaryExpression | ConditionalExpression | MetaProperty | ChainExpression | JSXClosingElement | JSXClosingFragment | JSXExpressionContainer | JSXOpeningElement | JSXOpeningFragment | JSXSpreadChild | LogicalExpression | NewExpression | RestElement | SequenceExpression | SpreadElement | AwaitExpression | LeftHandSideExpression | UnaryExpression | UpdateExpression | YieldExpression;
34
- export declare type ForInitialiser = Expression | VariableDeclaration;
35
- export declare type ImportClause = ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier;
36
- export declare type IterationStatement = DoWhileStatement | ForInStatement | ForOfStatement | ForStatement | WhileStatement;
37
- export declare type JSXChild = JSXElement | JSXExpression | JSXFragment | JSXText;
38
- export declare type JSXExpression = JSXEmptyExpression | JSXSpreadChild | JSXExpressionContainer;
39
- export declare type JSXTagNameExpression = JSXIdentifier | JSXMemberExpression | JSXNamespacedName;
40
- export declare type LeftHandSideExpression = CallExpression | ChainExpression | ImportExpression | ClassExpression | ClassDeclaration | FunctionExpression | LiteralExpression | MemberExpression | PrimaryExpression | TaggedTemplateExpression;
41
- export declare type LiteralExpression = Literal | TemplateLiteral;
42
- export declare type ObjectLiteralElementLike = MethodDefinition | Property | RestElement | SpreadElement;
43
- export declare type Parameter = AssignmentPattern | RestElement | ArrayPattern | ObjectPattern | Identifier;
44
- export declare type PrimaryExpression = ArrayExpression | ArrayPattern | ClassExpression | FunctionExpression | Identifier | Import | JSXElement | JSXFragment | JSXOpeningElement | Literal | LiteralExpression | MetaProperty | ObjectExpression | ObjectPattern | Super | TemplateLiteral | ThisExpression;
45
- export declare type PrimaryExpressionExtended = ArrayExpression | ArrowFunctionExpression | ArrayPattern | AwaitExpression | Expression | ClassExpression | FunctionExpression | Identifier | Import | JSXElement | JSXFragment | JSXOpeningElement | Literal | LiteralExpression | MetaProperty | ObjectExpression | ObjectPattern | PrivateIdentifier | NewExpression | Super | TemplateLiteral | ThisExpression | UnaryExpression | UpdateExpression;
46
- export declare type PropertyName = Identifier | Literal;
47
- export declare type Statement = BlockStatement | BreakStatement | ContinueStatement | DebuggerStatement | DeclarationStatement | EmptyStatement | ExpressionStatement | IfStatement | IterationStatement | ImportDeclaration | LabeledStatement | ReturnStatement | SwitchStatement | ThrowStatement | TryStatement | VariableDeclaration | WithStatement;
48
- interface ClassDeclarationBase extends _Node {
49
- id: Identifier | null;
50
- body: ClassBody;
51
- superClass: Expression | null;
52
- decorators?: Decorator[];
53
- }
54
- interface FunctionDeclarationBase extends _Node {
55
- id: Identifier | null;
56
- generator: boolean;
57
- async: boolean;
58
- params: Parameter[];
59
- body?: BlockStatement | null;
60
- }
61
- interface MethodDefinitionBase extends _Node {
62
- key: Expression | PrivateIdentifier | null;
63
- value: FunctionExpression;
64
- computed: boolean;
65
- static: boolean;
66
- kind: 'method' | 'get' | 'set' | 'constructor';
67
- decorators?: Decorator[];
68
- }
69
- export interface BlockStatementBase extends _Node {
70
- body: Statement[];
71
- }
72
- export interface ArrayExpression extends _Node {
73
- type: 'ArrayExpression';
74
- elements: (Expression | SpreadElement | null)[];
75
- }
76
- export interface ArrayPattern extends _Node {
77
- type: 'ArrayPattern';
78
- elements: Expression[];
79
- }
80
- export interface ArrowFunctionExpression extends _Node {
81
- type: 'ArrowFunctionExpression';
82
- params: Parameter[];
83
- body: Expression | BlockStatement;
84
- async: boolean;
85
- expression: boolean;
86
- }
87
- export interface AssignmentExpression extends _Node {
88
- type: 'AssignmentExpression';
89
- operator: string;
90
- left: Expression;
91
- right: Expression;
92
- }
93
- export interface AssignmentPattern extends _Node {
94
- type: 'AssignmentPattern';
95
- left: BindingPattern | Identifier;
96
- right?: Expression;
97
- }
98
- export interface AwaitExpression extends _Node {
99
- type: 'AwaitExpression';
100
- argument: Expression;
101
- }
102
- export interface BigIntLiteral extends Literal {
103
- bigint: string;
104
- }
105
- export interface BinaryExpression extends _Node {
106
- type: 'BinaryExpression';
107
- operator: string;
108
- left: Expression;
109
- right: Expression;
110
- }
111
- export interface BlockStatement extends BlockStatementBase {
112
- type: 'BlockStatement';
113
- }
114
- export interface BreakStatement extends _Node {
115
- type: 'BreakStatement';
116
- label: Identifier | null;
117
- }
118
- export interface ImportExpression extends _Node {
119
- type: 'ImportExpression';
120
- source: Expression;
121
- }
122
- export interface ChainExpression extends _Node {
123
- type: 'ChainExpression';
124
- expression: CallExpression | MemberExpression;
125
- }
126
- export interface CallExpression extends _Node {
127
- type: 'CallExpression';
128
- callee: any;
129
- arguments: (Expression | SpreadElement)[];
130
- optional?: boolean;
131
- }
132
- export interface CatchClause extends _Node {
133
- type: 'CatchClause';
134
- param: BindingPattern | Identifier | null;
135
- body: BlockStatement;
136
- }
137
- export interface StaticBlock extends BlockStatementBase {
138
- type: 'StaticBlock';
139
- }
140
- export interface ClassBody extends _Node {
141
- type: 'ClassBody';
142
- body: (ClassElement | PropertyDefinition | StaticBlock)[];
143
- }
144
- export interface PropertyDefinition extends _Node {
145
- type: 'PropertyDefinition';
146
- key: PrivateIdentifier | Expression;
147
- value: any;
148
- decorators?: Decorator[] | null;
149
- computed: boolean;
150
- static: boolean;
151
- }
152
- export interface PrivateIdentifier extends _Node {
153
- type: 'PrivateIdentifier';
154
- name: string;
155
- }
156
- export interface ClassDeclaration extends ClassDeclarationBase {
157
- type: 'ClassDeclaration';
158
- }
159
- export interface ClassExpression extends ClassDeclarationBase {
160
- type: 'ClassExpression';
161
- }
162
- export interface ConditionalExpression extends _Node {
163
- type: 'ConditionalExpression';
164
- test: Expression;
165
- consequent: Expression;
166
- alternate: Expression;
167
- }
168
- export interface ContinueStatement extends _Node {
169
- type: 'ContinueStatement';
170
- label: Identifier | null;
171
- }
172
- export interface DebuggerStatement extends _Node {
173
- type: 'DebuggerStatement';
174
- }
175
- export interface Decorator extends _Node {
176
- type: 'Decorator';
177
- expression: LeftHandSideExpression;
178
- }
179
- export interface DoWhileStatement extends _Node {
180
- type: 'DoWhileStatement';
181
- test: Expression;
182
- body: Statement;
183
- }
184
- export interface EmptyStatement extends _Node {
185
- type: 'EmptyStatement';
186
- }
187
- export interface ExportAllDeclaration extends _Node {
188
- type: 'ExportAllDeclaration';
189
- source: Literal;
190
- exported: Identifier | null;
191
- }
192
- export interface ExportDefaultDeclaration extends _Node {
193
- type: 'ExportDefaultDeclaration';
194
- declaration: ExportDeclaration | Expression;
195
- }
196
- export interface ExportNamedDeclaration extends _Node {
197
- type: 'ExportNamedDeclaration';
198
- declaration: ExportDeclaration | null;
199
- specifiers: ExportSpecifier[];
200
- source: Literal | null;
201
- }
202
- export interface ExportSpecifier extends _Node {
203
- type: 'ExportSpecifier';
204
- local: Identifier;
205
- exported: Identifier;
206
- }
207
- export interface ExpressionStatement extends _Node {
208
- type: 'ExpressionStatement';
209
- expression: Expression;
210
- }
211
- export interface ForInStatement extends _Node {
212
- type: 'ForInStatement';
213
- left: ForInitialiser;
214
- right: Expression;
215
- body: Statement;
216
- }
217
- export interface ForOfStatement extends _Node {
218
- type: 'ForOfStatement';
219
- left: ForInitialiser;
220
- right: Expression;
221
- body: Statement;
222
- await: boolean;
223
- }
224
- export interface ForStatement extends _Node {
225
- type: 'ForStatement';
226
- init: Expression | ForInitialiser | null;
227
- test: Expression | null;
228
- update: Expression | null;
229
- body: Statement;
230
- }
231
- export interface FunctionDeclaration extends FunctionDeclarationBase {
232
- type: 'FunctionDeclaration';
233
- }
234
- export interface FunctionExpression extends FunctionDeclarationBase {
235
- type: 'FunctionExpression';
236
- }
237
- export interface Identifier extends _Node {
238
- type: 'Identifier';
239
- name: string;
240
- }
241
- export interface IfStatement extends _Node {
242
- type: 'IfStatement';
243
- test: Expression;
244
- consequent: Statement;
245
- alternate: Statement | null;
246
- }
247
- export interface Import extends _Node {
248
- type: 'Import';
249
- }
250
- export interface ImportDeclaration extends _Node {
251
- type: 'ImportDeclaration';
252
- source: Literal;
253
- specifiers: ImportClause[];
254
- }
255
- export interface ImportDefaultSpecifier extends _Node {
256
- type: 'ImportDefaultSpecifier';
257
- local: Identifier;
258
- }
259
- export interface ImportNamespaceSpecifier extends _Node {
260
- type: 'ImportNamespaceSpecifier';
261
- local: Identifier;
262
- }
263
- export interface ImportSpecifier extends _Node {
264
- type: 'ImportSpecifier';
265
- local: Identifier;
266
- imported: Identifier;
267
- }
268
- export interface JSXNamespacedName extends _Node {
269
- type: 'JSXNamespacedName';
270
- namespace: JSXIdentifier | JSXMemberExpression;
271
- name: JSXIdentifier;
272
- }
273
- export declare type JSXAttributeValue = JSXIdentifier | Literal | JSXElement | JSXFragment | JSXExpressionContainer | JSXSpreadChild | null;
274
- export interface JSXAttribute extends _Node {
275
- type: 'JSXAttribute';
276
- name: JSXNamespacedName | JSXIdentifier;
277
- value: JSXAttributeValue;
278
- }
279
- export interface JSXClosingElement extends _Node {
280
- type: 'JSXClosingElement';
281
- name: JSXTagNameExpression;
282
- }
283
- export interface JSXClosingFragment extends _Node {
284
- type: 'JSXClosingFragment';
285
- }
286
- export interface JSXElement extends _Node {
287
- type: 'JSXElement';
288
- openingElement: JSXOpeningElement;
289
- closingElement: JSXClosingElement | null;
290
- children: JSXChild[];
291
- }
292
- export interface JSXEmptyExpression extends _Node {
293
- type: 'JSXEmptyExpression';
294
- }
295
- export interface JSXExpressionContainer extends _Node {
296
- type: 'JSXExpressionContainer';
297
- expression: Expression | JSXEmptyExpression;
298
- }
299
- export interface JSXFragment extends _Node {
300
- type: 'JSXFragment';
301
- openingFragment: JSXOpeningFragment;
302
- closingFragment: JSXClosingFragment;
303
- children: JSXChild[];
304
- }
305
- export interface JSXIdentifier extends _Node {
306
- type: 'JSXIdentifier';
307
- name: string;
308
- }
309
- export interface JSXMemberExpression extends _Node {
310
- type: 'JSXMemberExpression';
311
- object: JSXTagNameExpression;
312
- property: JSXIdentifier;
313
- }
314
- export interface JSXOpeningElement extends _Node {
315
- type: 'JSXOpeningElement';
316
- selfClosing: boolean;
317
- name: JSXTagNameExpression;
318
- attributes: (JSXAttribute | JSXSpreadAttribute)[];
319
- }
320
- export interface JSXOpeningFragment extends _Node {
321
- type: 'JSXOpeningFragment';
322
- }
323
- export interface JSXSpreadAttribute extends _Node {
324
- type: 'JSXSpreadAttribute';
325
- argument: Expression;
326
- }
327
- export interface JSXSpreadChild extends _Node {
328
- type: 'JSXSpreadChild';
329
- expression: Expression | JSXEmptyExpression;
330
- }
331
- export interface JSXText extends _Node {
332
- type: 'JSXText';
333
- value: string;
334
- raw?: string;
335
- }
336
- export interface LabeledStatement extends _Node {
337
- type: 'LabeledStatement';
338
- label: Identifier;
339
- body: Statement;
340
- }
341
- export interface Literal extends _Node {
342
- type: 'Literal';
343
- value: boolean | number | string | null | RegExp | bigint;
344
- raw?: string;
345
- }
346
- export interface LogicalExpression extends _Node {
347
- type: 'LogicalExpression';
348
- operator: string;
349
- left: Expression;
350
- right: Expression;
351
- }
352
- export interface MemberExpression extends _Node {
353
- type: 'MemberExpression';
354
- object: Expression | Super;
355
- property: Expression | PrivateIdentifier;
356
- computed?: boolean;
357
- optional?: boolean;
358
- }
359
- export declare type Pattern = Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression;
360
- export interface MetaProperty extends _Node {
361
- type: 'MetaProperty';
362
- meta: Identifier;
363
- property: Identifier;
364
- }
365
- export interface MethodDefinition extends MethodDefinitionBase {
366
- type: 'MethodDefinition';
367
- }
368
- export interface NewExpression extends _Node {
369
- type: 'NewExpression';
370
- callee: LeftHandSideExpression;
371
- arguments: Expression[];
372
- }
373
- export interface ObjectExpression extends _Node {
374
- type: 'ObjectExpression';
375
- properties: ObjectLiteralElementLike[];
376
- }
377
- export interface ObjectPattern extends _Node {
378
- type: 'ObjectPattern';
379
- properties: ObjectLiteralElementLike[];
380
- }
381
- export interface Program extends _Node {
382
- type: 'Program';
383
- body: Statement[];
384
- sourceType: 'module' | 'script';
385
- }
386
- export interface ParenthesizedExpression extends _Node {
387
- type: 'ParenthesizedExpression';
388
- expression: Expression;
389
- }
390
- export interface Property extends _Node {
391
- type: 'Property';
392
- key: Expression;
393
- value: Expression | AssignmentPattern | BindingPattern | Identifier;
394
- computed: boolean;
395
- method: boolean;
396
- shorthand: boolean;
397
- kind: 'init' | 'get' | 'set';
398
- }
399
- export interface RegExpLiteral extends Literal {
400
- regex: {
401
- pattern: string;
402
- flags: string;
403
- };
404
- }
405
- export interface RestElement extends _Node {
406
- type: 'RestElement';
407
- argument: BindingPattern | Identifier | Expression | PropertyName;
408
- value?: AssignmentPattern;
409
- }
410
- export interface ReturnStatement extends _Node {
411
- type: 'ReturnStatement';
412
- argument: Expression | null;
413
- }
414
- export interface SequenceExpression extends _Node {
415
- type: 'SequenceExpression';
416
- expressions: Expression[];
417
- }
418
- export declare type SpreadArgument = BindingPattern | Identifier | Expression | PropertyName | SpreadElement;
419
- export interface SpreadElement extends _Node {
420
- type: 'SpreadElement';
421
- argument: SpreadArgument;
422
- }
423
- export interface Super extends _Node {
424
- type: 'Super';
425
- }
426
- export interface SwitchCase extends _Node {
427
- type: 'SwitchCase';
428
- test: Expression | null;
429
- consequent: Statement[];
430
- }
431
- export interface SwitchStatement extends _Node {
432
- type: 'SwitchStatement';
433
- discriminant: Expression;
434
- cases: SwitchCase[];
435
- }
436
- export interface TaggedTemplateExpression extends _Node {
437
- type: 'TaggedTemplateExpression';
438
- tag: Expression;
439
- quasi: TemplateLiteral;
440
- }
441
- export interface TemplateElement extends _Node {
442
- type: 'TemplateElement';
443
- value: {
444
- raw: string;
445
- cooked: string | null;
446
- };
447
- tail: boolean;
448
- }
449
- export interface TemplateLiteral extends _Node {
450
- type: 'TemplateLiteral';
451
- quasis: TemplateElement[];
452
- expressions: Expression[];
453
- }
454
- export interface ThisExpression extends _Node {
455
- type: 'ThisExpression';
456
- }
457
- export interface ThrowStatement extends _Node {
458
- type: 'ThrowStatement';
459
- argument: Expression;
460
- }
461
- export interface TryStatement extends _Node {
462
- type: 'TryStatement';
463
- block: BlockStatement;
464
- handler: CatchClause | null;
465
- finalizer: BlockStatement | null;
466
- }
467
- export declare type UnaryOperator = '-' | '+' | '!' | '~' | 'typeof' | 'void' | 'delete';
468
- export declare type UpdateOperator = '++' | '--';
469
- export interface UpdateExpression extends _Node {
470
- type: 'UpdateExpression';
471
- operator: UpdateOperator;
472
- argument: Expression;
473
- prefix: boolean;
474
- }
475
- export interface UnaryExpression extends _Node {
476
- type: 'UnaryExpression';
477
- operator: UnaryOperator;
478
- prefix: true;
479
- argument: Expression;
480
- }
481
- export interface VariableDeclaration extends _Node {
482
- type: 'VariableDeclaration';
483
- declarations: VariableDeclarator[];
484
- kind: 'let' | 'const' | 'var';
485
- }
486
- export interface VariableDeclarator extends _Node {
487
- type: 'VariableDeclarator';
488
- id: Expression | BindingPattern | Identifier;
489
- init: Expression | null;
490
- definite?: boolean;
491
- }
492
- export interface WhileStatement extends _Node {
493
- type: 'WhileStatement';
494
- test: Expression;
495
- body: Statement;
496
- }
497
- export interface WithStatement extends _Node {
498
- type: 'WithStatement';
499
- object: Expression;
500
- body: Statement;
501
- }
502
- export interface YieldExpression extends _Node {
503
- type: 'YieldExpression';
504
- delegate: boolean;
505
- argument?: Expression | null;
506
- }
507
- export {};
1
+ export interface _Node {
2
+ start?: number;
3
+ end?: number;
4
+ range?: [number, number];
5
+ loc?: SourceLocation | null;
6
+ }
7
+ export interface SourceLocation {
8
+ source?: string | null;
9
+ start: Position;
10
+ end: Position;
11
+ }
12
+ export interface Position {
13
+ line: number;
14
+ column: number;
15
+ }
16
+ export type Labels = any;
17
+ export type IdentifierOrExpression = Identifier | Expression | ArrowFunctionExpression;
18
+ export type ArgumentExpression = ArrayExpression | AssignmentExpression | ConditionalExpression | Literal | SpreadElement | BinaryExpression | LogicalExpression | SequenceExpression;
19
+ export type CommentType = 'SingleLine' | 'MultiLine' | 'HTMLOpen' | 'HTMLClose' | 'HashbangComment';
20
+ export interface Comment {
21
+ type: CommentType;
22
+ value: string;
23
+ start?: number;
24
+ end?: number;
25
+ loc?: SourceLocation | null;
26
+ }
27
+ export type Node = ArrayExpression | ArrayPattern | ArrowFunctionExpression | AssignmentExpression | AssignmentPattern | AwaitExpression | BigIntLiteral | BinaryExpression | BlockStatement | BreakStatement | CallExpression | ChainExpression | ImportExpression | CatchClause | ClassBody | ClassDeclaration | ClassExpression | ConditionalExpression | ContinueStatement | DebuggerStatement | Decorator | DoWhileStatement | EmptyStatement | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ExportSpecifier | ExpressionStatement | PropertyDefinition | ForInStatement | ForOfStatement | ForStatement | FunctionDeclaration | FunctionExpression | Identifier | IfStatement | Import | ImportDeclaration | ImportDefaultSpecifier | ImportAttribute | ImportNamespaceSpecifier | ImportSpecifier | JSXNamespacedName | JSXAttribute | JSXClosingElement | JSXClosingFragment | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXFragment | JSXIdentifier | JSXOpeningElement | JSXOpeningFragment | JSXSpreadAttribute | JSXSpreadChild | JSXMemberExpression | JSXText | LabeledStatement | Literal | LogicalExpression | MemberExpression | MetaProperty | MethodDefinition | NewExpression | ObjectExpression | ObjectPattern | ParenthesizedExpression | PrivateIdentifier | Program | Property | RegExpLiteral | RestElement | ReturnStatement | SequenceExpression | SpreadElement | StaticBlock | Super | SwitchCase | SwitchStatement | TaggedTemplateExpression | TemplateElement | TemplateLiteral | ThisExpression | ThrowStatement | TryStatement | UpdateExpression | UnaryExpression | VariableDeclaration | VariableDeclarator | WhileStatement | WithStatement | YieldExpression;
28
+ export type BindingPattern = ArrayPattern | ObjectPattern | Identifier;
29
+ export type ClassElement = FunctionExpression | MethodDefinition;
30
+ export type DeclarationStatement = ClassDeclaration | ClassExpression | ExportDefaultDeclaration | ExportAllDeclaration | ExportNamedDeclaration | FunctionDeclaration;
31
+ export type EntityName = Identifier;
32
+ export type ExportDeclaration = ClassDeclaration | ClassExpression | FunctionDeclaration | VariableDeclaration;
33
+ export type Expression = ArrowFunctionExpression | AssignmentExpression | BinaryExpression | ConditionalExpression | MetaProperty | ChainExpression | JSXClosingElement | JSXClosingFragment | JSXExpressionContainer | JSXOpeningElement | JSXOpeningFragment | JSXSpreadChild | LogicalExpression | NewExpression | RestElement | SequenceExpression | SpreadElement | AwaitExpression | LeftHandSideExpression | UnaryExpression | UpdateExpression | YieldExpression;
34
+ export type ForInitialiser = Expression | VariableDeclaration;
35
+ export type ImportClause = ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier;
36
+ export type IterationStatement = DoWhileStatement | ForInStatement | ForOfStatement | ForStatement | WhileStatement;
37
+ export type JSXChild = JSXElement | JSXExpression | JSXFragment | JSXText;
38
+ export type JSXExpression = JSXEmptyExpression | JSXSpreadChild | JSXExpressionContainer;
39
+ export type JSXTagNameExpression = JSXIdentifier | JSXMemberExpression | JSXNamespacedName;
40
+ export type LeftHandSideExpression = CallExpression | ChainExpression | ImportExpression | ClassExpression | ClassDeclaration | FunctionExpression | LiteralExpression | MemberExpression | PrimaryExpression | TaggedTemplateExpression;
41
+ export type LiteralExpression = Literal | TemplateLiteral;
42
+ export type ObjectLiteralElementLike = MethodDefinition | Property | RestElement | SpreadElement;
43
+ export type Parameter = AssignmentPattern | RestElement | ArrayPattern | ObjectPattern | Identifier;
44
+ export type PrimaryExpression = ArrayExpression | ArrayPattern | ClassExpression | FunctionExpression | Identifier | Import | JSXElement | JSXFragment | JSXOpeningElement | Literal | LiteralExpression | MetaProperty | ObjectExpression | ObjectPattern | Super | TemplateLiteral | ThisExpression;
45
+ export type PrimaryExpressionExtended = ArrayExpression | ArrowFunctionExpression | ArrayPattern | AwaitExpression | Expression | ClassExpression | FunctionExpression | Identifier | Import | JSXElement | JSXFragment | JSXOpeningElement | Literal | LiteralExpression | MetaProperty | ObjectExpression | ObjectPattern | PrivateIdentifier | NewExpression | Super | TemplateLiteral | ThisExpression | UnaryExpression | UpdateExpression;
46
+ export type PropertyName = Identifier | Literal;
47
+ export type Statement = BlockStatement | BreakStatement | ContinueStatement | DebuggerStatement | DeclarationStatement | EmptyStatement | ExpressionStatement | IfStatement | IterationStatement | ImportDeclaration | LabeledStatement | ReturnStatement | SwitchStatement | ThrowStatement | TryStatement | VariableDeclaration | WithStatement;
48
+ interface ClassDeclarationBase extends _Node {
49
+ id: Identifier | null;
50
+ body: ClassBody;
51
+ superClass: Expression | null;
52
+ decorators?: Decorator[];
53
+ }
54
+ interface FunctionDeclarationBase extends _Node {
55
+ id: Identifier | null;
56
+ generator: boolean;
57
+ async: boolean;
58
+ params: Parameter[];
59
+ body?: BlockStatement | null;
60
+ }
61
+ interface MethodDefinitionBase extends _Node {
62
+ key: Expression | PrivateIdentifier | null;
63
+ value: FunctionExpression;
64
+ computed: boolean;
65
+ static: boolean;
66
+ kind: 'method' | 'get' | 'set' | 'constructor';
67
+ decorators?: Decorator[];
68
+ }
69
+ export interface BlockStatementBase extends _Node {
70
+ body: Statement[];
71
+ }
72
+ export interface ArrayExpression extends _Node {
73
+ type: 'ArrayExpression';
74
+ elements: (Expression | SpreadElement | null)[];
75
+ }
76
+ export interface ArrayPattern extends _Node {
77
+ type: 'ArrayPattern';
78
+ elements: Expression[];
79
+ }
80
+ export interface ArrowFunctionExpression extends _Node {
81
+ type: 'ArrowFunctionExpression';
82
+ params: Parameter[];
83
+ body: Expression | BlockStatement;
84
+ async: boolean;
85
+ expression: boolean;
86
+ }
87
+ export interface AssignmentExpression extends _Node {
88
+ type: 'AssignmentExpression';
89
+ operator: string;
90
+ left: Expression;
91
+ right: Expression;
92
+ }
93
+ export interface AssignmentPattern extends _Node {
94
+ type: 'AssignmentPattern';
95
+ left: BindingPattern | Identifier;
96
+ right?: Expression;
97
+ }
98
+ export interface AwaitExpression extends _Node {
99
+ type: 'AwaitExpression';
100
+ argument: Expression;
101
+ }
102
+ export interface BigIntLiteral extends Literal {
103
+ bigint: string;
104
+ }
105
+ export interface BinaryExpression extends _Node {
106
+ type: 'BinaryExpression';
107
+ operator: string;
108
+ left: Expression | PrivateIdentifier;
109
+ right: Expression;
110
+ }
111
+ export interface BlockStatement extends BlockStatementBase {
112
+ type: 'BlockStatement';
113
+ }
114
+ export interface BreakStatement extends _Node {
115
+ type: 'BreakStatement';
116
+ label: Identifier | null;
117
+ }
118
+ export interface ImportExpression extends _Node {
119
+ type: 'ImportExpression';
120
+ source: Expression;
121
+ options?: Expression | null;
122
+ }
123
+ export interface ChainExpression extends _Node {
124
+ type: 'ChainExpression';
125
+ expression: CallExpression | MemberExpression;
126
+ }
127
+ export interface CallExpression extends _Node {
128
+ type: 'CallExpression';
129
+ callee: any;
130
+ arguments: (Expression | SpreadElement)[];
131
+ optional?: boolean;
132
+ }
133
+ export interface CatchClause extends _Node {
134
+ type: 'CatchClause';
135
+ param: BindingPattern | Identifier | null;
136
+ body: BlockStatement;
137
+ }
138
+ export interface StaticBlock extends BlockStatementBase {
139
+ type: 'StaticBlock';
140
+ }
141
+ export interface ClassBody extends _Node {
142
+ type: 'ClassBody';
143
+ body: (ClassElement | PropertyDefinition | AccessorProperty | StaticBlock)[];
144
+ }
145
+ export interface AccessorProperty extends _Node {
146
+ type: 'AccessorProperty';
147
+ key: PrivateIdentifier | Expression;
148
+ value: any;
149
+ decorators?: Decorator[];
150
+ computed: boolean;
151
+ static: boolean;
152
+ }
153
+ export interface PropertyDefinition extends _Node {
154
+ type: 'PropertyDefinition';
155
+ key: PrivateIdentifier | Expression;
156
+ value: any;
157
+ decorators?: Decorator[];
158
+ computed: boolean;
159
+ static: boolean;
160
+ }
161
+ export interface PrivateIdentifier extends _Node {
162
+ type: 'PrivateIdentifier';
163
+ name: string;
164
+ }
165
+ export interface ClassDeclaration extends ClassDeclarationBase {
166
+ type: 'ClassDeclaration';
167
+ }
168
+ export interface ClassExpression extends ClassDeclarationBase {
169
+ type: 'ClassExpression';
170
+ }
171
+ export interface ConditionalExpression extends _Node {
172
+ type: 'ConditionalExpression';
173
+ test: Expression;
174
+ consequent: Expression;
175
+ alternate: Expression;
176
+ }
177
+ export interface ContinueStatement extends _Node {
178
+ type: 'ContinueStatement';
179
+ label: Identifier | null;
180
+ }
181
+ export interface DebuggerStatement extends _Node {
182
+ type: 'DebuggerStatement';
183
+ }
184
+ export interface Decorator extends _Node {
185
+ type: 'Decorator';
186
+ expression: LeftHandSideExpression;
187
+ }
188
+ export interface DoWhileStatement extends _Node {
189
+ type: 'DoWhileStatement';
190
+ test: Expression;
191
+ body: Statement;
192
+ }
193
+ export interface EmptyStatement extends _Node {
194
+ type: 'EmptyStatement';
195
+ }
196
+ export interface ExportAllDeclaration extends _Node {
197
+ type: 'ExportAllDeclaration';
198
+ source: Literal;
199
+ exported: Identifier | Literal | null;
200
+ attributes?: ImportAttribute[];
201
+ }
202
+ export interface ExportDefaultDeclaration extends _Node {
203
+ type: 'ExportDefaultDeclaration';
204
+ declaration: ExportDeclaration | Expression;
205
+ }
206
+ export interface ExportNamedDeclaration extends _Node {
207
+ type: 'ExportNamedDeclaration';
208
+ declaration: ExportDeclaration | null;
209
+ specifiers: ExportSpecifier[];
210
+ source: Literal | null;
211
+ attributes?: ImportAttribute[];
212
+ }
213
+ export interface ExportSpecifier extends _Node {
214
+ type: 'ExportSpecifier';
215
+ local: Identifier | Literal;
216
+ exported: Identifier | Literal;
217
+ }
218
+ export interface ExpressionStatement extends _Node {
219
+ type: 'ExpressionStatement';
220
+ expression: Expression;
221
+ }
222
+ export interface ForInStatement extends _Node {
223
+ type: 'ForInStatement';
224
+ left: ForInitialiser;
225
+ right: Expression;
226
+ body: Statement;
227
+ }
228
+ export interface ForOfStatement extends _Node {
229
+ type: 'ForOfStatement';
230
+ left: ForInitialiser;
231
+ right: Expression;
232
+ body: Statement;
233
+ await: boolean;
234
+ }
235
+ export interface ForStatement extends _Node {
236
+ type: 'ForStatement';
237
+ init: Expression | ForInitialiser | null;
238
+ test: Expression | null;
239
+ update: Expression | null;
240
+ body: Statement;
241
+ }
242
+ export interface FunctionDeclaration extends FunctionDeclarationBase {
243
+ type: 'FunctionDeclaration';
244
+ }
245
+ export interface FunctionExpression extends FunctionDeclarationBase {
246
+ type: 'FunctionExpression';
247
+ }
248
+ export interface Identifier extends _Node {
249
+ type: 'Identifier';
250
+ name: string;
251
+ }
252
+ export interface IfStatement extends _Node {
253
+ type: 'IfStatement';
254
+ test: Expression;
255
+ consequent: Statement;
256
+ alternate: Statement | null;
257
+ }
258
+ export interface Import extends _Node {
259
+ type: 'Import';
260
+ }
261
+ export interface ImportDeclaration extends _Node {
262
+ type: 'ImportDeclaration';
263
+ source: Literal;
264
+ specifiers: ImportClause[];
265
+ attributes?: ImportAttribute[];
266
+ }
267
+ export interface ImportAttribute extends _Node {
268
+ type: 'ImportAttribute';
269
+ key: Identifier | Literal;
270
+ value: Literal;
271
+ }
272
+ export interface ImportDefaultSpecifier extends _Node {
273
+ type: 'ImportDefaultSpecifier';
274
+ local: Identifier;
275
+ }
276
+ export interface ImportNamespaceSpecifier extends _Node {
277
+ type: 'ImportNamespaceSpecifier';
278
+ local: Identifier;
279
+ }
280
+ export interface ImportSpecifier extends _Node {
281
+ type: 'ImportSpecifier';
282
+ local: Identifier;
283
+ imported: Identifier | Literal;
284
+ }
285
+ export interface JSXNamespacedName extends _Node {
286
+ type: 'JSXNamespacedName';
287
+ namespace: JSXIdentifier | JSXMemberExpression;
288
+ name: JSXIdentifier;
289
+ }
290
+ export type JSXAttributeValue = JSXIdentifier | Literal | JSXElement | JSXFragment | JSXExpressionContainer | JSXSpreadChild | null;
291
+ export interface JSXAttribute extends _Node {
292
+ type: 'JSXAttribute';
293
+ name: JSXNamespacedName | JSXIdentifier;
294
+ value: JSXAttributeValue;
295
+ }
296
+ export interface JSXClosingElement extends _Node {
297
+ type: 'JSXClosingElement';
298
+ name: JSXTagNameExpression;
299
+ }
300
+ export interface JSXClosingFragment extends _Node {
301
+ type: 'JSXClosingFragment';
302
+ }
303
+ export interface JSXElement extends _Node {
304
+ type: 'JSXElement';
305
+ openingElement: JSXOpeningElement;
306
+ closingElement: JSXClosingElement | null;
307
+ children: JSXChild[];
308
+ }
309
+ export interface JSXEmptyExpression extends _Node {
310
+ type: 'JSXEmptyExpression';
311
+ }
312
+ export interface JSXExpressionContainer extends _Node {
313
+ type: 'JSXExpressionContainer';
314
+ expression: Expression | JSXEmptyExpression;
315
+ }
316
+ export interface JSXFragment extends _Node {
317
+ type: 'JSXFragment';
318
+ openingFragment: JSXOpeningFragment;
319
+ closingFragment: JSXClosingFragment;
320
+ children: JSXChild[];
321
+ }
322
+ export interface JSXIdentifier extends _Node {
323
+ type: 'JSXIdentifier';
324
+ name: string;
325
+ }
326
+ export interface JSXMemberExpression extends _Node {
327
+ type: 'JSXMemberExpression';
328
+ object: JSXTagNameExpression;
329
+ property: JSXIdentifier;
330
+ }
331
+ export interface JSXOpeningElement extends _Node {
332
+ type: 'JSXOpeningElement';
333
+ selfClosing: boolean;
334
+ name: JSXTagNameExpression;
335
+ attributes: (JSXAttribute | JSXSpreadAttribute)[];
336
+ }
337
+ export interface JSXOpeningFragment extends _Node {
338
+ type: 'JSXOpeningFragment';
339
+ }
340
+ export interface JSXSpreadAttribute extends _Node {
341
+ type: 'JSXSpreadAttribute';
342
+ argument: Expression;
343
+ }
344
+ export interface JSXSpreadChild extends _Node {
345
+ type: 'JSXSpreadChild';
346
+ expression: Expression | JSXEmptyExpression;
347
+ }
348
+ export interface JSXText extends _Node {
349
+ type: 'JSXText';
350
+ value: string;
351
+ raw?: string;
352
+ }
353
+ export interface LabeledStatement extends _Node {
354
+ type: 'LabeledStatement';
355
+ label: Identifier;
356
+ body: Statement;
357
+ }
358
+ export interface Literal extends _Node {
359
+ type: 'Literal';
360
+ value: boolean | number | string | null | RegExp | bigint;
361
+ raw?: string;
362
+ }
363
+ export interface LogicalExpression extends _Node {
364
+ type: 'LogicalExpression';
365
+ operator: string;
366
+ left: Expression;
367
+ right: Expression;
368
+ }
369
+ export interface MemberExpression extends _Node {
370
+ type: 'MemberExpression';
371
+ object: Expression | Super;
372
+ property: Expression | PrivateIdentifier;
373
+ computed?: boolean;
374
+ optional?: boolean;
375
+ }
376
+ export type Pattern = Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression;
377
+ export interface MetaProperty extends _Node {
378
+ type: 'MetaProperty';
379
+ meta: Identifier;
380
+ property: Identifier;
381
+ }
382
+ export interface MethodDefinition extends MethodDefinitionBase {
383
+ type: 'MethodDefinition';
384
+ }
385
+ export interface NewExpression extends _Node {
386
+ type: 'NewExpression';
387
+ callee: LeftHandSideExpression;
388
+ arguments: Expression[];
389
+ }
390
+ export interface ObjectExpression extends _Node {
391
+ type: 'ObjectExpression';
392
+ properties: ObjectLiteralElementLike[];
393
+ }
394
+ export interface ObjectPattern extends _Node {
395
+ type: 'ObjectPattern';
396
+ properties: ObjectLiteralElementLike[];
397
+ }
398
+ export interface Program extends _Node {
399
+ type: 'Program';
400
+ body: Statement[];
401
+ sourceType: 'module' | 'script';
402
+ }
403
+ export interface ParenthesizedExpression extends _Node {
404
+ type: 'ParenthesizedExpression';
405
+ expression: Expression;
406
+ }
407
+ export interface Property extends _Node {
408
+ type: 'Property';
409
+ key: Expression;
410
+ value: Expression | AssignmentPattern | BindingPattern | Identifier;
411
+ computed: boolean;
412
+ method: boolean;
413
+ shorthand: boolean;
414
+ kind: 'init' | 'get' | 'set';
415
+ }
416
+ export interface RegExpLiteral extends Literal {
417
+ regex: {
418
+ pattern: string;
419
+ flags: string;
420
+ };
421
+ }
422
+ export interface RestElement extends _Node {
423
+ type: 'RestElement';
424
+ argument: BindingPattern | Identifier | Expression | PropertyName;
425
+ value?: AssignmentPattern;
426
+ }
427
+ export interface ReturnStatement extends _Node {
428
+ type: 'ReturnStatement';
429
+ argument: Expression | null;
430
+ }
431
+ export interface SequenceExpression extends _Node {
432
+ type: 'SequenceExpression';
433
+ expressions: Expression[];
434
+ }
435
+ export type SpreadArgument = BindingPattern | Identifier | Expression | PropertyName | SpreadElement;
436
+ export interface SpreadElement extends _Node {
437
+ type: 'SpreadElement';
438
+ argument: SpreadArgument;
439
+ }
440
+ export interface Super extends _Node {
441
+ type: 'Super';
442
+ }
443
+ export interface SwitchCase extends _Node {
444
+ type: 'SwitchCase';
445
+ test: Expression | null;
446
+ consequent: Statement[];
447
+ }
448
+ export interface SwitchStatement extends _Node {
449
+ type: 'SwitchStatement';
450
+ discriminant: Expression;
451
+ cases: SwitchCase[];
452
+ }
453
+ export interface TaggedTemplateExpression extends _Node {
454
+ type: 'TaggedTemplateExpression';
455
+ tag: Expression;
456
+ quasi: TemplateLiteral;
457
+ }
458
+ export interface TemplateElement extends _Node {
459
+ type: 'TemplateElement';
460
+ value: {
461
+ raw: string;
462
+ cooked: string | null;
463
+ };
464
+ tail: boolean;
465
+ }
466
+ export interface TemplateLiteral extends _Node {
467
+ type: 'TemplateLiteral';
468
+ quasis: TemplateElement[];
469
+ expressions: Expression[];
470
+ }
471
+ export interface ThisExpression extends _Node {
472
+ type: 'ThisExpression';
473
+ }
474
+ export interface ThrowStatement extends _Node {
475
+ type: 'ThrowStatement';
476
+ argument: Expression;
477
+ }
478
+ export interface TryStatement extends _Node {
479
+ type: 'TryStatement';
480
+ block: BlockStatement;
481
+ handler: CatchClause | null;
482
+ finalizer: BlockStatement | null;
483
+ }
484
+ export type UnaryOperator = '-' | '+' | '!' | '~' | 'typeof' | 'void' | 'delete';
485
+ export type UpdateOperator = '++' | '--';
486
+ export interface UpdateExpression extends _Node {
487
+ type: 'UpdateExpression';
488
+ operator: UpdateOperator;
489
+ argument: Expression;
490
+ prefix: boolean;
491
+ }
492
+ export interface UnaryExpression extends _Node {
493
+ type: 'UnaryExpression';
494
+ operator: UnaryOperator;
495
+ prefix: true;
496
+ argument: Expression;
497
+ }
498
+ export interface VariableDeclaration extends _Node {
499
+ type: 'VariableDeclaration';
500
+ declarations: VariableDeclarator[];
501
+ kind: 'let' | 'const' | 'var';
502
+ }
503
+ export interface VariableDeclarator extends _Node {
504
+ type: 'VariableDeclarator';
505
+ id: Expression | BindingPattern | Identifier;
506
+ init: Expression | null;
507
+ definite?: boolean;
508
+ }
509
+ export interface WhileStatement extends _Node {
510
+ type: 'WhileStatement';
511
+ test: Expression;
512
+ body: Statement;
513
+ }
514
+ export interface WithStatement extends _Node {
515
+ type: 'WithStatement';
516
+ object: Expression;
517
+ body: Statement;
518
+ }
519
+ export interface YieldExpression extends _Node {
520
+ type: 'YieldExpression';
521
+ delegate: boolean;
522
+ argument?: Expression | null;
523
+ }
524
+ export {};
508
525
  //# sourceMappingURL=estree.d.ts.map