feat: docker compose maybe
This commit is contained in:
		
							
								
								
									
										857
									
								
								node_modules/acorn/dist/acorn.d.mts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										857
									
								
								node_modules/acorn/dist/acorn.d.mts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,857 @@
 | 
			
		||||
export interface Node {
 | 
			
		||||
  start: number
 | 
			
		||||
  end: number
 | 
			
		||||
  type: string
 | 
			
		||||
  range?: [number, number]
 | 
			
		||||
  loc?: SourceLocation | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface SourceLocation {
 | 
			
		||||
  source?: string | null
 | 
			
		||||
  start: Position
 | 
			
		||||
  end: Position
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Position {
 | 
			
		||||
  /** 1-based */
 | 
			
		||||
  line: number
 | 
			
		||||
  /** 0-based */
 | 
			
		||||
  column: number
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Identifier extends Node {
 | 
			
		||||
  type: "Identifier"
 | 
			
		||||
  name: string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Literal extends Node {
 | 
			
		||||
  type: "Literal"
 | 
			
		||||
  value?: string | boolean | null | number | RegExp | bigint
 | 
			
		||||
  raw?: string
 | 
			
		||||
  regex?: {
 | 
			
		||||
    pattern: string
 | 
			
		||||
    flags: string
 | 
			
		||||
  }
 | 
			
		||||
  bigint?: string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Program extends Node {
 | 
			
		||||
  type: "Program"
 | 
			
		||||
  body: Array<Statement | ModuleDeclaration>
 | 
			
		||||
  sourceType: "script" | "module"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Function extends Node {
 | 
			
		||||
  id?: Identifier | null
 | 
			
		||||
  params: Array<Pattern>
 | 
			
		||||
  body: BlockStatement | Expression
 | 
			
		||||
  generator: boolean
 | 
			
		||||
  expression: boolean
 | 
			
		||||
  async: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ExpressionStatement extends Node {
 | 
			
		||||
  type: "ExpressionStatement"
 | 
			
		||||
  expression: Expression | Literal
 | 
			
		||||
  directive?: string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface BlockStatement extends Node {
 | 
			
		||||
  type: "BlockStatement"
 | 
			
		||||
  body: Array<Statement>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface EmptyStatement extends Node {
 | 
			
		||||
  type: "EmptyStatement"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface DebuggerStatement extends Node {
 | 
			
		||||
  type: "DebuggerStatement"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface WithStatement extends Node {
 | 
			
		||||
  type: "WithStatement"
 | 
			
		||||
  object: Expression
 | 
			
		||||
  body: Statement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ReturnStatement extends Node {
 | 
			
		||||
  type: "ReturnStatement"
 | 
			
		||||
  argument?: Expression | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface LabeledStatement extends Node {
 | 
			
		||||
  type: "LabeledStatement"
 | 
			
		||||
  label: Identifier
 | 
			
		||||
  body: Statement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface BreakStatement extends Node {
 | 
			
		||||
  type: "BreakStatement"
 | 
			
		||||
  label?: Identifier | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ContinueStatement extends Node {
 | 
			
		||||
  type: "ContinueStatement"
 | 
			
		||||
  label?: Identifier | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IfStatement extends Node {
 | 
			
		||||
  type: "IfStatement"
 | 
			
		||||
  test: Expression
 | 
			
		||||
  consequent: Statement
 | 
			
		||||
  alternate?: Statement | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface SwitchStatement extends Node {
 | 
			
		||||
  type: "SwitchStatement"
 | 
			
		||||
  discriminant: Expression
 | 
			
		||||
  cases: Array<SwitchCase>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface SwitchCase extends Node {
 | 
			
		||||
  type: "SwitchCase"
 | 
			
		||||
  test?: Expression | null
 | 
			
		||||
  consequent: Array<Statement>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ThrowStatement extends Node {
 | 
			
		||||
  type: "ThrowStatement"
 | 
			
		||||
  argument: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface TryStatement extends Node {
 | 
			
		||||
  type: "TryStatement"
 | 
			
		||||
  block: BlockStatement
 | 
			
		||||
  handler?: CatchClause | null
 | 
			
		||||
  finalizer?: BlockStatement | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface CatchClause extends Node {
 | 
			
		||||
  type: "CatchClause"
 | 
			
		||||
  param?: Pattern | null
 | 
			
		||||
  body: BlockStatement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface WhileStatement extends Node {
 | 
			
		||||
  type: "WhileStatement"
 | 
			
		||||
  test: Expression
 | 
			
		||||
  body: Statement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface DoWhileStatement extends Node {
 | 
			
		||||
  type: "DoWhileStatement"
 | 
			
		||||
  body: Statement
 | 
			
		||||
  test: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ForStatement extends Node {
 | 
			
		||||
  type: "ForStatement"
 | 
			
		||||
  init?: VariableDeclaration | Expression | null
 | 
			
		||||
  test?: Expression | null
 | 
			
		||||
  update?: Expression | null
 | 
			
		||||
  body: Statement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ForInStatement extends Node {
 | 
			
		||||
  type: "ForInStatement"
 | 
			
		||||
  left: VariableDeclaration | Pattern
 | 
			
		||||
  right: Expression
 | 
			
		||||
  body: Statement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface FunctionDeclaration extends Function {
 | 
			
		||||
  type: "FunctionDeclaration"
 | 
			
		||||
  id: Identifier
 | 
			
		||||
  body: BlockStatement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface VariableDeclaration extends Node {
 | 
			
		||||
  type: "VariableDeclaration"
 | 
			
		||||
  declarations: Array<VariableDeclarator>
 | 
			
		||||
  kind: "var" | "let" | "const"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface VariableDeclarator extends Node {
 | 
			
		||||
  type: "VariableDeclarator"
 | 
			
		||||
  id: Pattern
 | 
			
		||||
  init?: Expression | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ThisExpression extends Node {
 | 
			
		||||
  type: "ThisExpression"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ArrayExpression extends Node {
 | 
			
		||||
  type: "ArrayExpression"
 | 
			
		||||
  elements: Array<Expression | SpreadElement | null>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ObjectExpression extends Node {
 | 
			
		||||
  type: "ObjectExpression"
 | 
			
		||||
  properties: Array<Property | SpreadElement>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Property extends Node {
 | 
			
		||||
  type: "Property"
 | 
			
		||||
  key: Expression
 | 
			
		||||
  value: Expression
 | 
			
		||||
  kind: "init" | "get" | "set"
 | 
			
		||||
  method: boolean
 | 
			
		||||
  shorthand: boolean
 | 
			
		||||
  computed: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface FunctionExpression extends Function {
 | 
			
		||||
  type: "FunctionExpression"
 | 
			
		||||
  body: BlockStatement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface UnaryExpression extends Node {
 | 
			
		||||
  type: "UnaryExpression"
 | 
			
		||||
  operator: UnaryOperator
 | 
			
		||||
  prefix: boolean
 | 
			
		||||
  argument: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type UnaryOperator = "-" | "+" | "!" | "~" | "typeof" | "void" | "delete"
 | 
			
		||||
 | 
			
		||||
export interface UpdateExpression extends Node {
 | 
			
		||||
  type: "UpdateExpression"
 | 
			
		||||
  operator: UpdateOperator
 | 
			
		||||
  argument: Expression
 | 
			
		||||
  prefix: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type UpdateOperator = "++" | "--"
 | 
			
		||||
 | 
			
		||||
export interface BinaryExpression extends Node {
 | 
			
		||||
  type: "BinaryExpression"
 | 
			
		||||
  operator: BinaryOperator
 | 
			
		||||
  left: Expression | PrivateIdentifier
 | 
			
		||||
  right: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type BinaryOperator = "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "|" | "^" | "&" | "in" | "instanceof" | "**"
 | 
			
		||||
 | 
			
		||||
export interface AssignmentExpression extends Node {
 | 
			
		||||
  type: "AssignmentExpression"
 | 
			
		||||
  operator: AssignmentOperator
 | 
			
		||||
  left: Pattern
 | 
			
		||||
  right: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type AssignmentOperator = "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=" | "**=" | "||=" | "&&=" | "??="
 | 
			
		||||
 | 
			
		||||
export interface LogicalExpression extends Node {
 | 
			
		||||
  type: "LogicalExpression"
 | 
			
		||||
  operator: LogicalOperator
 | 
			
		||||
  left: Expression
 | 
			
		||||
  right: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type LogicalOperator = "||" | "&&" | "??"
 | 
			
		||||
 | 
			
		||||
export interface MemberExpression extends Node {
 | 
			
		||||
  type: "MemberExpression"
 | 
			
		||||
  object: Expression | Super
 | 
			
		||||
  property: Expression | PrivateIdentifier
 | 
			
		||||
  computed: boolean
 | 
			
		||||
  optional: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ConditionalExpression extends Node {
 | 
			
		||||
  type: "ConditionalExpression"
 | 
			
		||||
  test: Expression
 | 
			
		||||
  alternate: Expression
 | 
			
		||||
  consequent: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface CallExpression extends Node {
 | 
			
		||||
  type: "CallExpression"
 | 
			
		||||
  callee: Expression | Super
 | 
			
		||||
  arguments: Array<Expression | SpreadElement>
 | 
			
		||||
  optional: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface NewExpression extends Node {
 | 
			
		||||
  type: "NewExpression"
 | 
			
		||||
  callee: Expression
 | 
			
		||||
  arguments: Array<Expression | SpreadElement>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface SequenceExpression extends Node {
 | 
			
		||||
  type: "SequenceExpression"
 | 
			
		||||
  expressions: Array<Expression>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ForOfStatement extends Node {
 | 
			
		||||
  type: "ForOfStatement"
 | 
			
		||||
  left: VariableDeclaration | Pattern
 | 
			
		||||
  right: Expression
 | 
			
		||||
  body: Statement
 | 
			
		||||
  await: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Super extends Node {
 | 
			
		||||
  type: "Super"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface SpreadElement extends Node {
 | 
			
		||||
  type: "SpreadElement"
 | 
			
		||||
  argument: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ArrowFunctionExpression extends Function {
 | 
			
		||||
  type: "ArrowFunctionExpression"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface YieldExpression extends Node {
 | 
			
		||||
  type: "YieldExpression"
 | 
			
		||||
  argument?: Expression | null
 | 
			
		||||
  delegate: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface TemplateLiteral extends Node {
 | 
			
		||||
  type: "TemplateLiteral"
 | 
			
		||||
  quasis: Array<TemplateElement>
 | 
			
		||||
  expressions: Array<Expression>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface TaggedTemplateExpression extends Node {
 | 
			
		||||
  type: "TaggedTemplateExpression"
 | 
			
		||||
  tag: Expression
 | 
			
		||||
  quasi: TemplateLiteral
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface TemplateElement extends Node {
 | 
			
		||||
  type: "TemplateElement"
 | 
			
		||||
  tail: boolean
 | 
			
		||||
  value: {
 | 
			
		||||
    cooked?: string | null
 | 
			
		||||
    raw: string
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface AssignmentProperty extends Node {
 | 
			
		||||
  type: "Property"
 | 
			
		||||
  key: Expression
 | 
			
		||||
  value: Pattern
 | 
			
		||||
  kind: "init"
 | 
			
		||||
  method: false
 | 
			
		||||
  shorthand: boolean
 | 
			
		||||
  computed: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ObjectPattern extends Node {
 | 
			
		||||
  type: "ObjectPattern"
 | 
			
		||||
  properties: Array<AssignmentProperty | RestElement>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ArrayPattern extends Node {
 | 
			
		||||
  type: "ArrayPattern"
 | 
			
		||||
  elements: Array<Pattern | null>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface RestElement extends Node {
 | 
			
		||||
  type: "RestElement"
 | 
			
		||||
  argument: Pattern
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface AssignmentPattern extends Node {
 | 
			
		||||
  type: "AssignmentPattern"
 | 
			
		||||
  left: Pattern
 | 
			
		||||
  right: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Class extends Node {
 | 
			
		||||
  id?: Identifier | null
 | 
			
		||||
  superClass?: Expression | null
 | 
			
		||||
  body: ClassBody
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ClassBody extends Node {
 | 
			
		||||
  type: "ClassBody"
 | 
			
		||||
  body: Array<MethodDefinition | PropertyDefinition | StaticBlock>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface MethodDefinition extends Node {
 | 
			
		||||
  type: "MethodDefinition"
 | 
			
		||||
  key: Expression | PrivateIdentifier
 | 
			
		||||
  value: FunctionExpression
 | 
			
		||||
  kind: "constructor" | "method" | "get" | "set"
 | 
			
		||||
  computed: boolean
 | 
			
		||||
  static: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ClassDeclaration extends Class {
 | 
			
		||||
  type: "ClassDeclaration"
 | 
			
		||||
  id: Identifier
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ClassExpression extends Class {
 | 
			
		||||
  type: "ClassExpression"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface MetaProperty extends Node {
 | 
			
		||||
  type: "MetaProperty"
 | 
			
		||||
  meta: Identifier
 | 
			
		||||
  property: Identifier
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ImportDeclaration extends Node {
 | 
			
		||||
  type: "ImportDeclaration"
 | 
			
		||||
  specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>
 | 
			
		||||
  source: Literal
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ImportSpecifier extends Node {
 | 
			
		||||
  type: "ImportSpecifier"
 | 
			
		||||
  imported: Identifier | Literal
 | 
			
		||||
  local: Identifier
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ImportDefaultSpecifier extends Node {
 | 
			
		||||
  type: "ImportDefaultSpecifier"
 | 
			
		||||
  local: Identifier
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ImportNamespaceSpecifier extends Node {
 | 
			
		||||
  type: "ImportNamespaceSpecifier"
 | 
			
		||||
  local: Identifier
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ExportNamedDeclaration extends Node {
 | 
			
		||||
  type: "ExportNamedDeclaration"
 | 
			
		||||
  declaration?: Declaration | null
 | 
			
		||||
  specifiers: Array<ExportSpecifier>
 | 
			
		||||
  source?: Literal | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ExportSpecifier extends Node {
 | 
			
		||||
  type: "ExportSpecifier"
 | 
			
		||||
  exported: Identifier | Literal
 | 
			
		||||
  local: Identifier | Literal
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface AnonymousFunctionDeclaration extends Function {
 | 
			
		||||
  type: "FunctionDeclaration"
 | 
			
		||||
  id: null
 | 
			
		||||
  body: BlockStatement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface AnonymousClassDeclaration extends Class {
 | 
			
		||||
  type: "ClassDeclaration"
 | 
			
		||||
  id: null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ExportDefaultDeclaration extends Node {
 | 
			
		||||
  type: "ExportDefaultDeclaration"
 | 
			
		||||
  declaration: AnonymousFunctionDeclaration | FunctionDeclaration | AnonymousClassDeclaration | ClassDeclaration | Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ExportAllDeclaration extends Node {
 | 
			
		||||
  type: "ExportAllDeclaration"
 | 
			
		||||
  source: Literal
 | 
			
		||||
  exported?: Identifier | Literal | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface AwaitExpression extends Node {
 | 
			
		||||
  type: "AwaitExpression"
 | 
			
		||||
  argument: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ChainExpression extends Node {
 | 
			
		||||
  type: "ChainExpression"
 | 
			
		||||
  expression: MemberExpression | CallExpression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ImportExpression extends Node {
 | 
			
		||||
  type: "ImportExpression"
 | 
			
		||||
  source: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ParenthesizedExpression extends Node {
 | 
			
		||||
  type: "ParenthesizedExpression"
 | 
			
		||||
  expression: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface PropertyDefinition extends Node {
 | 
			
		||||
  type: "PropertyDefinition"
 | 
			
		||||
  key: Expression | PrivateIdentifier
 | 
			
		||||
  value?: Expression | null
 | 
			
		||||
  computed: boolean
 | 
			
		||||
  static: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface PrivateIdentifier extends Node {
 | 
			
		||||
  type: "PrivateIdentifier"
 | 
			
		||||
  name: string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface StaticBlock extends Node {
 | 
			
		||||
  type: "StaticBlock"
 | 
			
		||||
  body: Array<Statement>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type Statement = 
 | 
			
		||||
| ExpressionStatement
 | 
			
		||||
| BlockStatement
 | 
			
		||||
| EmptyStatement
 | 
			
		||||
| DebuggerStatement
 | 
			
		||||
| WithStatement
 | 
			
		||||
| ReturnStatement
 | 
			
		||||
| LabeledStatement
 | 
			
		||||
| BreakStatement
 | 
			
		||||
| ContinueStatement
 | 
			
		||||
| IfStatement
 | 
			
		||||
| SwitchStatement
 | 
			
		||||
| ThrowStatement
 | 
			
		||||
| TryStatement
 | 
			
		||||
| WhileStatement
 | 
			
		||||
| DoWhileStatement
 | 
			
		||||
| ForStatement
 | 
			
		||||
| ForInStatement
 | 
			
		||||
| ForOfStatement
 | 
			
		||||
| Declaration
 | 
			
		||||
 | 
			
		||||
export type Declaration = 
 | 
			
		||||
| FunctionDeclaration
 | 
			
		||||
| VariableDeclaration
 | 
			
		||||
| ClassDeclaration
 | 
			
		||||
 | 
			
		||||
export type Expression = 
 | 
			
		||||
| Identifier
 | 
			
		||||
| Literal
 | 
			
		||||
| ThisExpression
 | 
			
		||||
| ArrayExpression
 | 
			
		||||
| ObjectExpression
 | 
			
		||||
| FunctionExpression
 | 
			
		||||
| UnaryExpression
 | 
			
		||||
| UpdateExpression
 | 
			
		||||
| BinaryExpression
 | 
			
		||||
| AssignmentExpression
 | 
			
		||||
| LogicalExpression
 | 
			
		||||
| MemberExpression
 | 
			
		||||
| ConditionalExpression
 | 
			
		||||
| CallExpression
 | 
			
		||||
| NewExpression
 | 
			
		||||
| SequenceExpression
 | 
			
		||||
| ArrowFunctionExpression
 | 
			
		||||
| YieldExpression
 | 
			
		||||
| TemplateLiteral
 | 
			
		||||
| TaggedTemplateExpression
 | 
			
		||||
| ClassExpression
 | 
			
		||||
| MetaProperty
 | 
			
		||||
| AwaitExpression
 | 
			
		||||
| ChainExpression
 | 
			
		||||
| ImportExpression
 | 
			
		||||
| ParenthesizedExpression
 | 
			
		||||
 | 
			
		||||
export type Pattern = 
 | 
			
		||||
| Identifier
 | 
			
		||||
| MemberExpression
 | 
			
		||||
| ObjectPattern
 | 
			
		||||
| ArrayPattern
 | 
			
		||||
| RestElement
 | 
			
		||||
| AssignmentPattern
 | 
			
		||||
 | 
			
		||||
export type ModuleDeclaration = 
 | 
			
		||||
| ImportDeclaration
 | 
			
		||||
| ExportNamedDeclaration
 | 
			
		||||
| ExportDefaultDeclaration
 | 
			
		||||
| ExportAllDeclaration
 | 
			
		||||
 | 
			
		||||
export type AnyNode = Statement | Expression | Declaration | ModuleDeclaration | Literal | Program | SwitchCase | CatchClause | Property | Super | SpreadElement | TemplateElement | AssignmentProperty | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | ClassBody | MethodDefinition | MetaProperty | ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ExportSpecifier | AnonymousFunctionDeclaration | AnonymousClassDeclaration | PropertyDefinition | PrivateIdentifier | StaticBlock
 | 
			
		||||
 | 
			
		||||
export function parse(input: string, options: Options): Program
 | 
			
		||||
 | 
			
		||||
export function parseExpressionAt(input: string, pos: number, options: Options): Expression
 | 
			
		||||
 | 
			
		||||
export function tokenizer(input: string, options: Options): {
 | 
			
		||||
  getToken(): Token
 | 
			
		||||
  [Symbol.iterator](): Iterator<Token>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type ecmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | "latest"
 | 
			
		||||
 | 
			
		||||
export interface Options {
 | 
			
		||||
  /**
 | 
			
		||||
   * `ecmaVersion` indicates the ECMAScript version to parse. Must be
 | 
			
		||||
   * either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10
 | 
			
		||||
   * (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"`
 | 
			
		||||
   * (the latest version the library supports). This influences
 | 
			
		||||
   * support for strict mode, the set of reserved words, and support
 | 
			
		||||
   * for new syntax features.
 | 
			
		||||
   */
 | 
			
		||||
  ecmaVersion: ecmaVersion
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * `sourceType` indicates the mode the code should be parsed in.
 | 
			
		||||
   * Can be either `"script"` or `"module"`. This influences global
 | 
			
		||||
   * strict mode and parsing of `import` and `export` declarations.
 | 
			
		||||
   */
 | 
			
		||||
  sourceType?: "script" | "module"
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * a callback that will be called when a semicolon is automatically inserted.
 | 
			
		||||
   * @param lastTokEnd the position of the comma as an offset
 | 
			
		||||
   * @param lastTokEndLoc location if {@link locations} is enabled
 | 
			
		||||
   */
 | 
			
		||||
  onInsertedSemicolon?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * similar to `onInsertedSemicolon`, but for trailing commas
 | 
			
		||||
   * @param lastTokEnd the position of the comma as an offset
 | 
			
		||||
   * @param lastTokEndLoc location if `locations` is enabled
 | 
			
		||||
   */
 | 
			
		||||
  onTrailingComma?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * By default, reserved words are only enforced if ecmaVersion >= 5.
 | 
			
		||||
   * Set `allowReserved` to a boolean value to explicitly turn this on
 | 
			
		||||
   * an off. When this option has the value "never", reserved words
 | 
			
		||||
   * and keywords can also not be used as property names.
 | 
			
		||||
   */
 | 
			
		||||
  allowReserved?: boolean | "never"
 | 
			
		||||
 | 
			
		||||
  /** 
 | 
			
		||||
   * When enabled, a return at the top level is not considered an error.
 | 
			
		||||
   */
 | 
			
		||||
  allowReturnOutsideFunction?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * When enabled, import/export statements are not constrained to
 | 
			
		||||
   * appearing at the top of the program, and an import.meta expression
 | 
			
		||||
   * in a script isn't considered an error.
 | 
			
		||||
   */
 | 
			
		||||
  allowImportExportEverywhere?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * By default, `await` identifiers are allowed to appear at the top-level scope only if {@link ecmaVersion} >= 2022.
 | 
			
		||||
   * When enabled, await identifiers are allowed to appear at the top-level scope,
 | 
			
		||||
   * but they are still not allowed in non-async functions.
 | 
			
		||||
   */
 | 
			
		||||
  allowAwaitOutsideFunction?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * When enabled, super identifiers are not constrained to
 | 
			
		||||
   * appearing in methods and do not raise an error when they appear elsewhere.
 | 
			
		||||
   */
 | 
			
		||||
  allowSuperOutsideMethod?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * When enabled, hashbang directive in the beginning of file is
 | 
			
		||||
   * allowed and treated as a line comment. Enabled by default when
 | 
			
		||||
   * {@link ecmaVersion} >= 2023.
 | 
			
		||||
   */
 | 
			
		||||
  allowHashBang?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * By default, the parser will verify that private properties are
 | 
			
		||||
   * only used in places where they are valid and have been declared.
 | 
			
		||||
   * Set this to false to turn such checks off.
 | 
			
		||||
   */
 | 
			
		||||
  checkPrivateFields?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * When `locations` is on, `loc` properties holding objects with
 | 
			
		||||
   * `start` and `end` properties as {@link Position} objects will be attached to the
 | 
			
		||||
   * nodes.
 | 
			
		||||
   */
 | 
			
		||||
  locations?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * a callback that will cause Acorn to call that export function with object in the same
 | 
			
		||||
   * format as tokens returned from `tokenizer().getToken()`. Note
 | 
			
		||||
   * that you are not allowed to call the parser from the
 | 
			
		||||
   * callback—that will corrupt its internal state.
 | 
			
		||||
   */
 | 
			
		||||
  onToken?: ((token: Token) => void) | Token[]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * This takes a export function or an array.
 | 
			
		||||
   * 
 | 
			
		||||
   * When a export function is passed, Acorn will call that export function with `(block, text, start,
 | 
			
		||||
   * end)` parameters whenever a comment is skipped. `block` is a
 | 
			
		||||
   * boolean indicating whether this is a block (`/* *\/`) comment,
 | 
			
		||||
   * `text` is the content of the comment, and `start` and `end` are
 | 
			
		||||
   * character offsets that denote the start and end of the comment.
 | 
			
		||||
   * When the {@link locations} option is on, two more parameters are
 | 
			
		||||
   * passed, the full locations of {@link Position} export type of the start and
 | 
			
		||||
   * end of the comments.
 | 
			
		||||
   * 
 | 
			
		||||
   * When a array is passed, each found comment of {@link Comment} export type is pushed to the array.
 | 
			
		||||
   * 
 | 
			
		||||
   * Note that you are not allowed to call the
 | 
			
		||||
   * parser from the callback—that will corrupt its internal state.
 | 
			
		||||
   */
 | 
			
		||||
  onComment?: ((
 | 
			
		||||
    isBlock: boolean, text: string, start: number, end: number, startLoc?: Position,
 | 
			
		||||
    endLoc?: Position
 | 
			
		||||
  ) => void) | Comment[]
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Nodes have their start and end characters offsets recorded in
 | 
			
		||||
   * `start` and `end` properties (directly on the node, rather than
 | 
			
		||||
   * the `loc` object, which holds line/column data. To also add a
 | 
			
		||||
   * [semi-standardized][range] `range` property holding a `[start,
 | 
			
		||||
   * end]` array with the same numbers, set the `ranges` option to
 | 
			
		||||
   * `true`.
 | 
			
		||||
   */
 | 
			
		||||
  ranges?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * It is possible to parse multiple files into a single AST by
 | 
			
		||||
   * passing the tree produced by parsing the first file as
 | 
			
		||||
   * `program` option in subsequent parses. This will add the
 | 
			
		||||
   * toplevel forms of the parsed file to the `Program` (top) node
 | 
			
		||||
   * of an existing parse tree.
 | 
			
		||||
   */
 | 
			
		||||
  program?: Node
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * When {@link locations} is on, you can pass this to record the source
 | 
			
		||||
   * file in every node's `loc` object.
 | 
			
		||||
   */
 | 
			
		||||
  sourceFile?: string
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * This value, if given, is stored in every node, whether {@link locations} is on or off.
 | 
			
		||||
   */
 | 
			
		||||
  directSourceFile?: string
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * When enabled, parenthesized expressions are represented by
 | 
			
		||||
   * (non-standard) ParenthesizedExpression nodes
 | 
			
		||||
   */
 | 
			
		||||
  preserveParens?: boolean
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
export class Parser {
 | 
			
		||||
  options: Options
 | 
			
		||||
  input: string
 | 
			
		||||
  
 | 
			
		||||
  private constructor(options: Options, input: string, startPos?: number)
 | 
			
		||||
  parse(): Program
 | 
			
		||||
  
 | 
			
		||||
  static parse(input: string, options: Options): Program
 | 
			
		||||
  static parseExpressionAt(input: string, pos: number, options: Options): Expression
 | 
			
		||||
  static tokenizer(input: string, options: Options): {
 | 
			
		||||
    getToken(): Token
 | 
			
		||||
    [Symbol.iterator](): Iterator<Token>
 | 
			
		||||
  }
 | 
			
		||||
  static extend(...plugins: ((BaseParser: typeof Parser) => typeof Parser)[]): typeof Parser
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const defaultOptions: Options
 | 
			
		||||
 | 
			
		||||
export function getLineInfo(input: string, offset: number): Position
 | 
			
		||||
 | 
			
		||||
export class TokenType {
 | 
			
		||||
  label: string
 | 
			
		||||
  keyword: string | undefined
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const tokTypes: {
 | 
			
		||||
  num: TokenType
 | 
			
		||||
  regexp: TokenType
 | 
			
		||||
  string: TokenType
 | 
			
		||||
  name: TokenType
 | 
			
		||||
  privateId: TokenType
 | 
			
		||||
  eof: TokenType
 | 
			
		||||
 | 
			
		||||
  bracketL: TokenType
 | 
			
		||||
  bracketR: TokenType
 | 
			
		||||
  braceL: TokenType
 | 
			
		||||
  braceR: TokenType
 | 
			
		||||
  parenL: TokenType
 | 
			
		||||
  parenR: TokenType
 | 
			
		||||
  comma: TokenType
 | 
			
		||||
  semi: TokenType
 | 
			
		||||
  colon: TokenType
 | 
			
		||||
  dot: TokenType
 | 
			
		||||
  question: TokenType
 | 
			
		||||
  questionDot: TokenType
 | 
			
		||||
  arrow: TokenType
 | 
			
		||||
  template: TokenType
 | 
			
		||||
  invalidTemplate: TokenType
 | 
			
		||||
  ellipsis: TokenType
 | 
			
		||||
  backQuote: TokenType
 | 
			
		||||
  dollarBraceL: TokenType
 | 
			
		||||
 | 
			
		||||
  eq: TokenType
 | 
			
		||||
  assign: TokenType
 | 
			
		||||
  incDec: TokenType
 | 
			
		||||
  prefix: TokenType
 | 
			
		||||
  logicalOR: TokenType
 | 
			
		||||
  logicalAND: TokenType
 | 
			
		||||
  bitwiseOR: TokenType
 | 
			
		||||
  bitwiseXOR: TokenType
 | 
			
		||||
  bitwiseAND: TokenType
 | 
			
		||||
  equality: TokenType
 | 
			
		||||
  relational: TokenType
 | 
			
		||||
  bitShift: TokenType
 | 
			
		||||
  plusMin: TokenType
 | 
			
		||||
  modulo: TokenType
 | 
			
		||||
  star: TokenType
 | 
			
		||||
  slash: TokenType
 | 
			
		||||
  starstar: TokenType
 | 
			
		||||
  coalesce: TokenType
 | 
			
		||||
 | 
			
		||||
  _break: TokenType
 | 
			
		||||
  _case: TokenType
 | 
			
		||||
  _catch: TokenType
 | 
			
		||||
  _continue: TokenType
 | 
			
		||||
  _debugger: TokenType
 | 
			
		||||
  _default: TokenType
 | 
			
		||||
  _do: TokenType
 | 
			
		||||
  _else: TokenType
 | 
			
		||||
  _finally: TokenType
 | 
			
		||||
  _for: TokenType
 | 
			
		||||
  _function: TokenType
 | 
			
		||||
  _if: TokenType
 | 
			
		||||
  _return: TokenType
 | 
			
		||||
  _switch: TokenType
 | 
			
		||||
  _throw: TokenType
 | 
			
		||||
  _try: TokenType
 | 
			
		||||
  _var: TokenType
 | 
			
		||||
  _const: TokenType
 | 
			
		||||
  _while: TokenType
 | 
			
		||||
  _with: TokenType
 | 
			
		||||
  _new: TokenType
 | 
			
		||||
  _this: TokenType
 | 
			
		||||
  _super: TokenType
 | 
			
		||||
  _class: TokenType
 | 
			
		||||
  _extends: TokenType
 | 
			
		||||
  _export: TokenType
 | 
			
		||||
  _import: TokenType
 | 
			
		||||
  _null: TokenType
 | 
			
		||||
  _true: TokenType
 | 
			
		||||
  _false: TokenType
 | 
			
		||||
  _in: TokenType
 | 
			
		||||
  _instanceof: TokenType
 | 
			
		||||
  _typeof: TokenType
 | 
			
		||||
  _void: TokenType
 | 
			
		||||
  _delete: TokenType
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Comment {
 | 
			
		||||
  type: "Line" | "Block"
 | 
			
		||||
  value: string
 | 
			
		||||
  start: number
 | 
			
		||||
  end: number
 | 
			
		||||
  loc?: SourceLocation
 | 
			
		||||
  range?: [number, number]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class Token {
 | 
			
		||||
  type: TokenType
 | 
			
		||||
  start: number
 | 
			
		||||
  end: number
 | 
			
		||||
  loc?: SourceLocation
 | 
			
		||||
  range?: [number, number]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const version: string
 | 
			
		||||
							
								
								
									
										857
									
								
								node_modules/acorn/dist/acorn.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										857
									
								
								node_modules/acorn/dist/acorn.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,857 @@
 | 
			
		||||
export interface Node {
 | 
			
		||||
  start: number
 | 
			
		||||
  end: number
 | 
			
		||||
  type: string
 | 
			
		||||
  range?: [number, number]
 | 
			
		||||
  loc?: SourceLocation | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface SourceLocation {
 | 
			
		||||
  source?: string | null
 | 
			
		||||
  start: Position
 | 
			
		||||
  end: Position
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Position {
 | 
			
		||||
  /** 1-based */
 | 
			
		||||
  line: number
 | 
			
		||||
  /** 0-based */
 | 
			
		||||
  column: number
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Identifier extends Node {
 | 
			
		||||
  type: "Identifier"
 | 
			
		||||
  name: string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Literal extends Node {
 | 
			
		||||
  type: "Literal"
 | 
			
		||||
  value?: string | boolean | null | number | RegExp | bigint
 | 
			
		||||
  raw?: string
 | 
			
		||||
  regex?: {
 | 
			
		||||
    pattern: string
 | 
			
		||||
    flags: string
 | 
			
		||||
  }
 | 
			
		||||
  bigint?: string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Program extends Node {
 | 
			
		||||
  type: "Program"
 | 
			
		||||
  body: Array<Statement | ModuleDeclaration>
 | 
			
		||||
  sourceType: "script" | "module"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Function extends Node {
 | 
			
		||||
  id?: Identifier | null
 | 
			
		||||
  params: Array<Pattern>
 | 
			
		||||
  body: BlockStatement | Expression
 | 
			
		||||
  generator: boolean
 | 
			
		||||
  expression: boolean
 | 
			
		||||
  async: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ExpressionStatement extends Node {
 | 
			
		||||
  type: "ExpressionStatement"
 | 
			
		||||
  expression: Expression | Literal
 | 
			
		||||
  directive?: string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface BlockStatement extends Node {
 | 
			
		||||
  type: "BlockStatement"
 | 
			
		||||
  body: Array<Statement>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface EmptyStatement extends Node {
 | 
			
		||||
  type: "EmptyStatement"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface DebuggerStatement extends Node {
 | 
			
		||||
  type: "DebuggerStatement"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface WithStatement extends Node {
 | 
			
		||||
  type: "WithStatement"
 | 
			
		||||
  object: Expression
 | 
			
		||||
  body: Statement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ReturnStatement extends Node {
 | 
			
		||||
  type: "ReturnStatement"
 | 
			
		||||
  argument?: Expression | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface LabeledStatement extends Node {
 | 
			
		||||
  type: "LabeledStatement"
 | 
			
		||||
  label: Identifier
 | 
			
		||||
  body: Statement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface BreakStatement extends Node {
 | 
			
		||||
  type: "BreakStatement"
 | 
			
		||||
  label?: Identifier | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ContinueStatement extends Node {
 | 
			
		||||
  type: "ContinueStatement"
 | 
			
		||||
  label?: Identifier | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IfStatement extends Node {
 | 
			
		||||
  type: "IfStatement"
 | 
			
		||||
  test: Expression
 | 
			
		||||
  consequent: Statement
 | 
			
		||||
  alternate?: Statement | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface SwitchStatement extends Node {
 | 
			
		||||
  type: "SwitchStatement"
 | 
			
		||||
  discriminant: Expression
 | 
			
		||||
  cases: Array<SwitchCase>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface SwitchCase extends Node {
 | 
			
		||||
  type: "SwitchCase"
 | 
			
		||||
  test?: Expression | null
 | 
			
		||||
  consequent: Array<Statement>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ThrowStatement extends Node {
 | 
			
		||||
  type: "ThrowStatement"
 | 
			
		||||
  argument: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface TryStatement extends Node {
 | 
			
		||||
  type: "TryStatement"
 | 
			
		||||
  block: BlockStatement
 | 
			
		||||
  handler?: CatchClause | null
 | 
			
		||||
  finalizer?: BlockStatement | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface CatchClause extends Node {
 | 
			
		||||
  type: "CatchClause"
 | 
			
		||||
  param?: Pattern | null
 | 
			
		||||
  body: BlockStatement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface WhileStatement extends Node {
 | 
			
		||||
  type: "WhileStatement"
 | 
			
		||||
  test: Expression
 | 
			
		||||
  body: Statement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface DoWhileStatement extends Node {
 | 
			
		||||
  type: "DoWhileStatement"
 | 
			
		||||
  body: Statement
 | 
			
		||||
  test: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ForStatement extends Node {
 | 
			
		||||
  type: "ForStatement"
 | 
			
		||||
  init?: VariableDeclaration | Expression | null
 | 
			
		||||
  test?: Expression | null
 | 
			
		||||
  update?: Expression | null
 | 
			
		||||
  body: Statement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ForInStatement extends Node {
 | 
			
		||||
  type: "ForInStatement"
 | 
			
		||||
  left: VariableDeclaration | Pattern
 | 
			
		||||
  right: Expression
 | 
			
		||||
  body: Statement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface FunctionDeclaration extends Function {
 | 
			
		||||
  type: "FunctionDeclaration"
 | 
			
		||||
  id: Identifier
 | 
			
		||||
  body: BlockStatement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface VariableDeclaration extends Node {
 | 
			
		||||
  type: "VariableDeclaration"
 | 
			
		||||
  declarations: Array<VariableDeclarator>
 | 
			
		||||
  kind: "var" | "let" | "const"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface VariableDeclarator extends Node {
 | 
			
		||||
  type: "VariableDeclarator"
 | 
			
		||||
  id: Pattern
 | 
			
		||||
  init?: Expression | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ThisExpression extends Node {
 | 
			
		||||
  type: "ThisExpression"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ArrayExpression extends Node {
 | 
			
		||||
  type: "ArrayExpression"
 | 
			
		||||
  elements: Array<Expression | SpreadElement | null>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ObjectExpression extends Node {
 | 
			
		||||
  type: "ObjectExpression"
 | 
			
		||||
  properties: Array<Property | SpreadElement>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Property extends Node {
 | 
			
		||||
  type: "Property"
 | 
			
		||||
  key: Expression
 | 
			
		||||
  value: Expression
 | 
			
		||||
  kind: "init" | "get" | "set"
 | 
			
		||||
  method: boolean
 | 
			
		||||
  shorthand: boolean
 | 
			
		||||
  computed: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface FunctionExpression extends Function {
 | 
			
		||||
  type: "FunctionExpression"
 | 
			
		||||
  body: BlockStatement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface UnaryExpression extends Node {
 | 
			
		||||
  type: "UnaryExpression"
 | 
			
		||||
  operator: UnaryOperator
 | 
			
		||||
  prefix: boolean
 | 
			
		||||
  argument: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type UnaryOperator = "-" | "+" | "!" | "~" | "typeof" | "void" | "delete"
 | 
			
		||||
 | 
			
		||||
export interface UpdateExpression extends Node {
 | 
			
		||||
  type: "UpdateExpression"
 | 
			
		||||
  operator: UpdateOperator
 | 
			
		||||
  argument: Expression
 | 
			
		||||
  prefix: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type UpdateOperator = "++" | "--"
 | 
			
		||||
 | 
			
		||||
export interface BinaryExpression extends Node {
 | 
			
		||||
  type: "BinaryExpression"
 | 
			
		||||
  operator: BinaryOperator
 | 
			
		||||
  left: Expression | PrivateIdentifier
 | 
			
		||||
  right: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type BinaryOperator = "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "|" | "^" | "&" | "in" | "instanceof" | "**"
 | 
			
		||||
 | 
			
		||||
export interface AssignmentExpression extends Node {
 | 
			
		||||
  type: "AssignmentExpression"
 | 
			
		||||
  operator: AssignmentOperator
 | 
			
		||||
  left: Pattern
 | 
			
		||||
  right: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type AssignmentOperator = "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=" | "**=" | "||=" | "&&=" | "??="
 | 
			
		||||
 | 
			
		||||
export interface LogicalExpression extends Node {
 | 
			
		||||
  type: "LogicalExpression"
 | 
			
		||||
  operator: LogicalOperator
 | 
			
		||||
  left: Expression
 | 
			
		||||
  right: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type LogicalOperator = "||" | "&&" | "??"
 | 
			
		||||
 | 
			
		||||
export interface MemberExpression extends Node {
 | 
			
		||||
  type: "MemberExpression"
 | 
			
		||||
  object: Expression | Super
 | 
			
		||||
  property: Expression | PrivateIdentifier
 | 
			
		||||
  computed: boolean
 | 
			
		||||
  optional: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ConditionalExpression extends Node {
 | 
			
		||||
  type: "ConditionalExpression"
 | 
			
		||||
  test: Expression
 | 
			
		||||
  alternate: Expression
 | 
			
		||||
  consequent: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface CallExpression extends Node {
 | 
			
		||||
  type: "CallExpression"
 | 
			
		||||
  callee: Expression | Super
 | 
			
		||||
  arguments: Array<Expression | SpreadElement>
 | 
			
		||||
  optional: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface NewExpression extends Node {
 | 
			
		||||
  type: "NewExpression"
 | 
			
		||||
  callee: Expression
 | 
			
		||||
  arguments: Array<Expression | SpreadElement>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface SequenceExpression extends Node {
 | 
			
		||||
  type: "SequenceExpression"
 | 
			
		||||
  expressions: Array<Expression>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ForOfStatement extends Node {
 | 
			
		||||
  type: "ForOfStatement"
 | 
			
		||||
  left: VariableDeclaration | Pattern
 | 
			
		||||
  right: Expression
 | 
			
		||||
  body: Statement
 | 
			
		||||
  await: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Super extends Node {
 | 
			
		||||
  type: "Super"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface SpreadElement extends Node {
 | 
			
		||||
  type: "SpreadElement"
 | 
			
		||||
  argument: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ArrowFunctionExpression extends Function {
 | 
			
		||||
  type: "ArrowFunctionExpression"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface YieldExpression extends Node {
 | 
			
		||||
  type: "YieldExpression"
 | 
			
		||||
  argument?: Expression | null
 | 
			
		||||
  delegate: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface TemplateLiteral extends Node {
 | 
			
		||||
  type: "TemplateLiteral"
 | 
			
		||||
  quasis: Array<TemplateElement>
 | 
			
		||||
  expressions: Array<Expression>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface TaggedTemplateExpression extends Node {
 | 
			
		||||
  type: "TaggedTemplateExpression"
 | 
			
		||||
  tag: Expression
 | 
			
		||||
  quasi: TemplateLiteral
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface TemplateElement extends Node {
 | 
			
		||||
  type: "TemplateElement"
 | 
			
		||||
  tail: boolean
 | 
			
		||||
  value: {
 | 
			
		||||
    cooked?: string | null
 | 
			
		||||
    raw: string
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface AssignmentProperty extends Node {
 | 
			
		||||
  type: "Property"
 | 
			
		||||
  key: Expression
 | 
			
		||||
  value: Pattern
 | 
			
		||||
  kind: "init"
 | 
			
		||||
  method: false
 | 
			
		||||
  shorthand: boolean
 | 
			
		||||
  computed: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ObjectPattern extends Node {
 | 
			
		||||
  type: "ObjectPattern"
 | 
			
		||||
  properties: Array<AssignmentProperty | RestElement>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ArrayPattern extends Node {
 | 
			
		||||
  type: "ArrayPattern"
 | 
			
		||||
  elements: Array<Pattern | null>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface RestElement extends Node {
 | 
			
		||||
  type: "RestElement"
 | 
			
		||||
  argument: Pattern
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface AssignmentPattern extends Node {
 | 
			
		||||
  type: "AssignmentPattern"
 | 
			
		||||
  left: Pattern
 | 
			
		||||
  right: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Class extends Node {
 | 
			
		||||
  id?: Identifier | null
 | 
			
		||||
  superClass?: Expression | null
 | 
			
		||||
  body: ClassBody
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ClassBody extends Node {
 | 
			
		||||
  type: "ClassBody"
 | 
			
		||||
  body: Array<MethodDefinition | PropertyDefinition | StaticBlock>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface MethodDefinition extends Node {
 | 
			
		||||
  type: "MethodDefinition"
 | 
			
		||||
  key: Expression | PrivateIdentifier
 | 
			
		||||
  value: FunctionExpression
 | 
			
		||||
  kind: "constructor" | "method" | "get" | "set"
 | 
			
		||||
  computed: boolean
 | 
			
		||||
  static: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ClassDeclaration extends Class {
 | 
			
		||||
  type: "ClassDeclaration"
 | 
			
		||||
  id: Identifier
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ClassExpression extends Class {
 | 
			
		||||
  type: "ClassExpression"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface MetaProperty extends Node {
 | 
			
		||||
  type: "MetaProperty"
 | 
			
		||||
  meta: Identifier
 | 
			
		||||
  property: Identifier
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ImportDeclaration extends Node {
 | 
			
		||||
  type: "ImportDeclaration"
 | 
			
		||||
  specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>
 | 
			
		||||
  source: Literal
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ImportSpecifier extends Node {
 | 
			
		||||
  type: "ImportSpecifier"
 | 
			
		||||
  imported: Identifier | Literal
 | 
			
		||||
  local: Identifier
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ImportDefaultSpecifier extends Node {
 | 
			
		||||
  type: "ImportDefaultSpecifier"
 | 
			
		||||
  local: Identifier
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ImportNamespaceSpecifier extends Node {
 | 
			
		||||
  type: "ImportNamespaceSpecifier"
 | 
			
		||||
  local: Identifier
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ExportNamedDeclaration extends Node {
 | 
			
		||||
  type: "ExportNamedDeclaration"
 | 
			
		||||
  declaration?: Declaration | null
 | 
			
		||||
  specifiers: Array<ExportSpecifier>
 | 
			
		||||
  source?: Literal | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ExportSpecifier extends Node {
 | 
			
		||||
  type: "ExportSpecifier"
 | 
			
		||||
  exported: Identifier | Literal
 | 
			
		||||
  local: Identifier | Literal
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface AnonymousFunctionDeclaration extends Function {
 | 
			
		||||
  type: "FunctionDeclaration"
 | 
			
		||||
  id: null
 | 
			
		||||
  body: BlockStatement
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface AnonymousClassDeclaration extends Class {
 | 
			
		||||
  type: "ClassDeclaration"
 | 
			
		||||
  id: null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ExportDefaultDeclaration extends Node {
 | 
			
		||||
  type: "ExportDefaultDeclaration"
 | 
			
		||||
  declaration: AnonymousFunctionDeclaration | FunctionDeclaration | AnonymousClassDeclaration | ClassDeclaration | Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ExportAllDeclaration extends Node {
 | 
			
		||||
  type: "ExportAllDeclaration"
 | 
			
		||||
  source: Literal
 | 
			
		||||
  exported?: Identifier | Literal | null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface AwaitExpression extends Node {
 | 
			
		||||
  type: "AwaitExpression"
 | 
			
		||||
  argument: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ChainExpression extends Node {
 | 
			
		||||
  type: "ChainExpression"
 | 
			
		||||
  expression: MemberExpression | CallExpression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ImportExpression extends Node {
 | 
			
		||||
  type: "ImportExpression"
 | 
			
		||||
  source: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ParenthesizedExpression extends Node {
 | 
			
		||||
  type: "ParenthesizedExpression"
 | 
			
		||||
  expression: Expression
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface PropertyDefinition extends Node {
 | 
			
		||||
  type: "PropertyDefinition"
 | 
			
		||||
  key: Expression | PrivateIdentifier
 | 
			
		||||
  value?: Expression | null
 | 
			
		||||
  computed: boolean
 | 
			
		||||
  static: boolean
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface PrivateIdentifier extends Node {
 | 
			
		||||
  type: "PrivateIdentifier"
 | 
			
		||||
  name: string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface StaticBlock extends Node {
 | 
			
		||||
  type: "StaticBlock"
 | 
			
		||||
  body: Array<Statement>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type Statement = 
 | 
			
		||||
| ExpressionStatement
 | 
			
		||||
| BlockStatement
 | 
			
		||||
| EmptyStatement
 | 
			
		||||
| DebuggerStatement
 | 
			
		||||
| WithStatement
 | 
			
		||||
| ReturnStatement
 | 
			
		||||
| LabeledStatement
 | 
			
		||||
| BreakStatement
 | 
			
		||||
| ContinueStatement
 | 
			
		||||
| IfStatement
 | 
			
		||||
| SwitchStatement
 | 
			
		||||
| ThrowStatement
 | 
			
		||||
| TryStatement
 | 
			
		||||
| WhileStatement
 | 
			
		||||
| DoWhileStatement
 | 
			
		||||
| ForStatement
 | 
			
		||||
| ForInStatement
 | 
			
		||||
| ForOfStatement
 | 
			
		||||
| Declaration
 | 
			
		||||
 | 
			
		||||
export type Declaration = 
 | 
			
		||||
| FunctionDeclaration
 | 
			
		||||
| VariableDeclaration
 | 
			
		||||
| ClassDeclaration
 | 
			
		||||
 | 
			
		||||
export type Expression = 
 | 
			
		||||
| Identifier
 | 
			
		||||
| Literal
 | 
			
		||||
| ThisExpression
 | 
			
		||||
| ArrayExpression
 | 
			
		||||
| ObjectExpression
 | 
			
		||||
| FunctionExpression
 | 
			
		||||
| UnaryExpression
 | 
			
		||||
| UpdateExpression
 | 
			
		||||
| BinaryExpression
 | 
			
		||||
| AssignmentExpression
 | 
			
		||||
| LogicalExpression
 | 
			
		||||
| MemberExpression
 | 
			
		||||
| ConditionalExpression
 | 
			
		||||
| CallExpression
 | 
			
		||||
| NewExpression
 | 
			
		||||
| SequenceExpression
 | 
			
		||||
| ArrowFunctionExpression
 | 
			
		||||
| YieldExpression
 | 
			
		||||
| TemplateLiteral
 | 
			
		||||
| TaggedTemplateExpression
 | 
			
		||||
| ClassExpression
 | 
			
		||||
| MetaProperty
 | 
			
		||||
| AwaitExpression
 | 
			
		||||
| ChainExpression
 | 
			
		||||
| ImportExpression
 | 
			
		||||
| ParenthesizedExpression
 | 
			
		||||
 | 
			
		||||
export type Pattern = 
 | 
			
		||||
| Identifier
 | 
			
		||||
| MemberExpression
 | 
			
		||||
| ObjectPattern
 | 
			
		||||
| ArrayPattern
 | 
			
		||||
| RestElement
 | 
			
		||||
| AssignmentPattern
 | 
			
		||||
 | 
			
		||||
export type ModuleDeclaration = 
 | 
			
		||||
| ImportDeclaration
 | 
			
		||||
| ExportNamedDeclaration
 | 
			
		||||
| ExportDefaultDeclaration
 | 
			
		||||
| ExportAllDeclaration
 | 
			
		||||
 | 
			
		||||
export type AnyNode = Statement | Expression | Declaration | ModuleDeclaration | Literal | Program | SwitchCase | CatchClause | Property | Super | SpreadElement | TemplateElement | AssignmentProperty | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | ClassBody | MethodDefinition | MetaProperty | ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ExportSpecifier | AnonymousFunctionDeclaration | AnonymousClassDeclaration | PropertyDefinition | PrivateIdentifier | StaticBlock
 | 
			
		||||
 | 
			
		||||
export function parse(input: string, options: Options): Program
 | 
			
		||||
 | 
			
		||||
export function parseExpressionAt(input: string, pos: number, options: Options): Expression
 | 
			
		||||
 | 
			
		||||
export function tokenizer(input: string, options: Options): {
 | 
			
		||||
  getToken(): Token
 | 
			
		||||
  [Symbol.iterator](): Iterator<Token>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type ecmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | "latest"
 | 
			
		||||
 | 
			
		||||
export interface Options {
 | 
			
		||||
  /**
 | 
			
		||||
   * `ecmaVersion` indicates the ECMAScript version to parse. Must be
 | 
			
		||||
   * either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10
 | 
			
		||||
   * (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"`
 | 
			
		||||
   * (the latest version the library supports). This influences
 | 
			
		||||
   * support for strict mode, the set of reserved words, and support
 | 
			
		||||
   * for new syntax features.
 | 
			
		||||
   */
 | 
			
		||||
  ecmaVersion: ecmaVersion
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * `sourceType` indicates the mode the code should be parsed in.
 | 
			
		||||
   * Can be either `"script"` or `"module"`. This influences global
 | 
			
		||||
   * strict mode and parsing of `import` and `export` declarations.
 | 
			
		||||
   */
 | 
			
		||||
  sourceType?: "script" | "module"
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * a callback that will be called when a semicolon is automatically inserted.
 | 
			
		||||
   * @param lastTokEnd the position of the comma as an offset
 | 
			
		||||
   * @param lastTokEndLoc location if {@link locations} is enabled
 | 
			
		||||
   */
 | 
			
		||||
  onInsertedSemicolon?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * similar to `onInsertedSemicolon`, but for trailing commas
 | 
			
		||||
   * @param lastTokEnd the position of the comma as an offset
 | 
			
		||||
   * @param lastTokEndLoc location if `locations` is enabled
 | 
			
		||||
   */
 | 
			
		||||
  onTrailingComma?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * By default, reserved words are only enforced if ecmaVersion >= 5.
 | 
			
		||||
   * Set `allowReserved` to a boolean value to explicitly turn this on
 | 
			
		||||
   * an off. When this option has the value "never", reserved words
 | 
			
		||||
   * and keywords can also not be used as property names.
 | 
			
		||||
   */
 | 
			
		||||
  allowReserved?: boolean | "never"
 | 
			
		||||
 | 
			
		||||
  /** 
 | 
			
		||||
   * When enabled, a return at the top level is not considered an error.
 | 
			
		||||
   */
 | 
			
		||||
  allowReturnOutsideFunction?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * When enabled, import/export statements are not constrained to
 | 
			
		||||
   * appearing at the top of the program, and an import.meta expression
 | 
			
		||||
   * in a script isn't considered an error.
 | 
			
		||||
   */
 | 
			
		||||
  allowImportExportEverywhere?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * By default, `await` identifiers are allowed to appear at the top-level scope only if {@link ecmaVersion} >= 2022.
 | 
			
		||||
   * When enabled, await identifiers are allowed to appear at the top-level scope,
 | 
			
		||||
   * but they are still not allowed in non-async functions.
 | 
			
		||||
   */
 | 
			
		||||
  allowAwaitOutsideFunction?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * When enabled, super identifiers are not constrained to
 | 
			
		||||
   * appearing in methods and do not raise an error when they appear elsewhere.
 | 
			
		||||
   */
 | 
			
		||||
  allowSuperOutsideMethod?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * When enabled, hashbang directive in the beginning of file is
 | 
			
		||||
   * allowed and treated as a line comment. Enabled by default when
 | 
			
		||||
   * {@link ecmaVersion} >= 2023.
 | 
			
		||||
   */
 | 
			
		||||
  allowHashBang?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * By default, the parser will verify that private properties are
 | 
			
		||||
   * only used in places where they are valid and have been declared.
 | 
			
		||||
   * Set this to false to turn such checks off.
 | 
			
		||||
   */
 | 
			
		||||
  checkPrivateFields?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * When `locations` is on, `loc` properties holding objects with
 | 
			
		||||
   * `start` and `end` properties as {@link Position} objects will be attached to the
 | 
			
		||||
   * nodes.
 | 
			
		||||
   */
 | 
			
		||||
  locations?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * a callback that will cause Acorn to call that export function with object in the same
 | 
			
		||||
   * format as tokens returned from `tokenizer().getToken()`. Note
 | 
			
		||||
   * that you are not allowed to call the parser from the
 | 
			
		||||
   * callback—that will corrupt its internal state.
 | 
			
		||||
   */
 | 
			
		||||
  onToken?: ((token: Token) => void) | Token[]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * This takes a export function or an array.
 | 
			
		||||
   * 
 | 
			
		||||
   * When a export function is passed, Acorn will call that export function with `(block, text, start,
 | 
			
		||||
   * end)` parameters whenever a comment is skipped. `block` is a
 | 
			
		||||
   * boolean indicating whether this is a block (`/* *\/`) comment,
 | 
			
		||||
   * `text` is the content of the comment, and `start` and `end` are
 | 
			
		||||
   * character offsets that denote the start and end of the comment.
 | 
			
		||||
   * When the {@link locations} option is on, two more parameters are
 | 
			
		||||
   * passed, the full locations of {@link Position} export type of the start and
 | 
			
		||||
   * end of the comments.
 | 
			
		||||
   * 
 | 
			
		||||
   * When a array is passed, each found comment of {@link Comment} export type is pushed to the array.
 | 
			
		||||
   * 
 | 
			
		||||
   * Note that you are not allowed to call the
 | 
			
		||||
   * parser from the callback—that will corrupt its internal state.
 | 
			
		||||
   */
 | 
			
		||||
  onComment?: ((
 | 
			
		||||
    isBlock: boolean, text: string, start: number, end: number, startLoc?: Position,
 | 
			
		||||
    endLoc?: Position
 | 
			
		||||
  ) => void) | Comment[]
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Nodes have their start and end characters offsets recorded in
 | 
			
		||||
   * `start` and `end` properties (directly on the node, rather than
 | 
			
		||||
   * the `loc` object, which holds line/column data. To also add a
 | 
			
		||||
   * [semi-standardized][range] `range` property holding a `[start,
 | 
			
		||||
   * end]` array with the same numbers, set the `ranges` option to
 | 
			
		||||
   * `true`.
 | 
			
		||||
   */
 | 
			
		||||
  ranges?: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * It is possible to parse multiple files into a single AST by
 | 
			
		||||
   * passing the tree produced by parsing the first file as
 | 
			
		||||
   * `program` option in subsequent parses. This will add the
 | 
			
		||||
   * toplevel forms of the parsed file to the `Program` (top) node
 | 
			
		||||
   * of an existing parse tree.
 | 
			
		||||
   */
 | 
			
		||||
  program?: Node
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * When {@link locations} is on, you can pass this to record the source
 | 
			
		||||
   * file in every node's `loc` object.
 | 
			
		||||
   */
 | 
			
		||||
  sourceFile?: string
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * This value, if given, is stored in every node, whether {@link locations} is on or off.
 | 
			
		||||
   */
 | 
			
		||||
  directSourceFile?: string
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * When enabled, parenthesized expressions are represented by
 | 
			
		||||
   * (non-standard) ParenthesizedExpression nodes
 | 
			
		||||
   */
 | 
			
		||||
  preserveParens?: boolean
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
export class Parser {
 | 
			
		||||
  options: Options
 | 
			
		||||
  input: string
 | 
			
		||||
  
 | 
			
		||||
  private constructor(options: Options, input: string, startPos?: number)
 | 
			
		||||
  parse(): Program
 | 
			
		||||
  
 | 
			
		||||
  static parse(input: string, options: Options): Program
 | 
			
		||||
  static parseExpressionAt(input: string, pos: number, options: Options): Expression
 | 
			
		||||
  static tokenizer(input: string, options: Options): {
 | 
			
		||||
    getToken(): Token
 | 
			
		||||
    [Symbol.iterator](): Iterator<Token>
 | 
			
		||||
  }
 | 
			
		||||
  static extend(...plugins: ((BaseParser: typeof Parser) => typeof Parser)[]): typeof Parser
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const defaultOptions: Options
 | 
			
		||||
 | 
			
		||||
export function getLineInfo(input: string, offset: number): Position
 | 
			
		||||
 | 
			
		||||
export class TokenType {
 | 
			
		||||
  label: string
 | 
			
		||||
  keyword: string | undefined
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const tokTypes: {
 | 
			
		||||
  num: TokenType
 | 
			
		||||
  regexp: TokenType
 | 
			
		||||
  string: TokenType
 | 
			
		||||
  name: TokenType
 | 
			
		||||
  privateId: TokenType
 | 
			
		||||
  eof: TokenType
 | 
			
		||||
 | 
			
		||||
  bracketL: TokenType
 | 
			
		||||
  bracketR: TokenType
 | 
			
		||||
  braceL: TokenType
 | 
			
		||||
  braceR: TokenType
 | 
			
		||||
  parenL: TokenType
 | 
			
		||||
  parenR: TokenType
 | 
			
		||||
  comma: TokenType
 | 
			
		||||
  semi: TokenType
 | 
			
		||||
  colon: TokenType
 | 
			
		||||
  dot: TokenType
 | 
			
		||||
  question: TokenType
 | 
			
		||||
  questionDot: TokenType
 | 
			
		||||
  arrow: TokenType
 | 
			
		||||
  template: TokenType
 | 
			
		||||
  invalidTemplate: TokenType
 | 
			
		||||
  ellipsis: TokenType
 | 
			
		||||
  backQuote: TokenType
 | 
			
		||||
  dollarBraceL: TokenType
 | 
			
		||||
 | 
			
		||||
  eq: TokenType
 | 
			
		||||
  assign: TokenType
 | 
			
		||||
  incDec: TokenType
 | 
			
		||||
  prefix: TokenType
 | 
			
		||||
  logicalOR: TokenType
 | 
			
		||||
  logicalAND: TokenType
 | 
			
		||||
  bitwiseOR: TokenType
 | 
			
		||||
  bitwiseXOR: TokenType
 | 
			
		||||
  bitwiseAND: TokenType
 | 
			
		||||
  equality: TokenType
 | 
			
		||||
  relational: TokenType
 | 
			
		||||
  bitShift: TokenType
 | 
			
		||||
  plusMin: TokenType
 | 
			
		||||
  modulo: TokenType
 | 
			
		||||
  star: TokenType
 | 
			
		||||
  slash: TokenType
 | 
			
		||||
  starstar: TokenType
 | 
			
		||||
  coalesce: TokenType
 | 
			
		||||
 | 
			
		||||
  _break: TokenType
 | 
			
		||||
  _case: TokenType
 | 
			
		||||
  _catch: TokenType
 | 
			
		||||
  _continue: TokenType
 | 
			
		||||
  _debugger: TokenType
 | 
			
		||||
  _default: TokenType
 | 
			
		||||
  _do: TokenType
 | 
			
		||||
  _else: TokenType
 | 
			
		||||
  _finally: TokenType
 | 
			
		||||
  _for: TokenType
 | 
			
		||||
  _function: TokenType
 | 
			
		||||
  _if: TokenType
 | 
			
		||||
  _return: TokenType
 | 
			
		||||
  _switch: TokenType
 | 
			
		||||
  _throw: TokenType
 | 
			
		||||
  _try: TokenType
 | 
			
		||||
  _var: TokenType
 | 
			
		||||
  _const: TokenType
 | 
			
		||||
  _while: TokenType
 | 
			
		||||
  _with: TokenType
 | 
			
		||||
  _new: TokenType
 | 
			
		||||
  _this: TokenType
 | 
			
		||||
  _super: TokenType
 | 
			
		||||
  _class: TokenType
 | 
			
		||||
  _extends: TokenType
 | 
			
		||||
  _export: TokenType
 | 
			
		||||
  _import: TokenType
 | 
			
		||||
  _null: TokenType
 | 
			
		||||
  _true: TokenType
 | 
			
		||||
  _false: TokenType
 | 
			
		||||
  _in: TokenType
 | 
			
		||||
  _instanceof: TokenType
 | 
			
		||||
  _typeof: TokenType
 | 
			
		||||
  _void: TokenType
 | 
			
		||||
  _delete: TokenType
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface Comment {
 | 
			
		||||
  type: "Line" | "Block"
 | 
			
		||||
  value: string
 | 
			
		||||
  start: number
 | 
			
		||||
  end: number
 | 
			
		||||
  loc?: SourceLocation
 | 
			
		||||
  range?: [number, number]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class Token {
 | 
			
		||||
  type: TokenType
 | 
			
		||||
  start: number
 | 
			
		||||
  end: number
 | 
			
		||||
  loc?: SourceLocation
 | 
			
		||||
  range?: [number, number]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const version: string
 | 
			
		||||
							
								
								
									
										6001
									
								
								node_modules/acorn/dist/acorn.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6001
									
								
								node_modules/acorn/dist/acorn.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										5972
									
								
								node_modules/acorn/dist/acorn.mjs
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5972
									
								
								node_modules/acorn/dist/acorn.mjs
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										90
									
								
								node_modules/acorn/dist/bin.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								node_modules/acorn/dist/bin.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var path = require('path');
 | 
			
		||||
var fs = require('fs');
 | 
			
		||||
var acorn = require('./acorn.js');
 | 
			
		||||
 | 
			
		||||
function _interopNamespaceDefault(e) {
 | 
			
		||||
  var n = Object.create(null);
 | 
			
		||||
  if (e) {
 | 
			
		||||
    Object.keys(e).forEach(function (k) {
 | 
			
		||||
      if (k !== 'default') {
 | 
			
		||||
        var d = Object.getOwnPropertyDescriptor(e, k);
 | 
			
		||||
        Object.defineProperty(n, k, d.get ? d : {
 | 
			
		||||
          enumerable: true,
 | 
			
		||||
          get: function () { return e[k]; }
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
  n.default = e;
 | 
			
		||||
  return Object.freeze(n);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var acorn__namespace = /*#__PURE__*/_interopNamespaceDefault(acorn);
 | 
			
		||||
 | 
			
		||||
var inputFilePaths = [], forceFileName = false, fileMode = false, silent = false, compact = false, tokenize = false;
 | 
			
		||||
var options = {};
 | 
			
		||||
 | 
			
		||||
function help(status) {
 | 
			
		||||
  var print = (status === 0) ? console.log : console.error;
 | 
			
		||||
  print("usage: " + path.basename(process.argv[1]) + " [--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|...|--ecma2015|--ecma2016|--ecma2017|--ecma2018|...]");
 | 
			
		||||
  print("        [--tokenize] [--locations] [--allow-hash-bang] [--allow-await-outside-function] [--compact] [--silent] [--module] [--help] [--] [<infile>...]");
 | 
			
		||||
  process.exit(status);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
for (var i = 2; i < process.argv.length; ++i) {
 | 
			
		||||
  var arg = process.argv[i];
 | 
			
		||||
  if (arg[0] !== "-" || arg === "-") { inputFilePaths.push(arg); }
 | 
			
		||||
  else if (arg === "--") {
 | 
			
		||||
    inputFilePaths.push.apply(inputFilePaths, process.argv.slice(i + 1));
 | 
			
		||||
    forceFileName = true;
 | 
			
		||||
    break
 | 
			
		||||
  } else if (arg === "--locations") { options.locations = true; }
 | 
			
		||||
  else if (arg === "--allow-hash-bang") { options.allowHashBang = true; }
 | 
			
		||||
  else if (arg === "--allow-await-outside-function") { options.allowAwaitOutsideFunction = true; }
 | 
			
		||||
  else if (arg === "--silent") { silent = true; }
 | 
			
		||||
  else if (arg === "--compact") { compact = true; }
 | 
			
		||||
  else if (arg === "--help") { help(0); }
 | 
			
		||||
  else if (arg === "--tokenize") { tokenize = true; }
 | 
			
		||||
  else if (arg === "--module") { options.sourceType = "module"; }
 | 
			
		||||
  else {
 | 
			
		||||
    var match = arg.match(/^--ecma(\d+)$/);
 | 
			
		||||
    if (match)
 | 
			
		||||
      { options.ecmaVersion = +match[1]; }
 | 
			
		||||
    else
 | 
			
		||||
      { help(1); }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function run(codeList) {
 | 
			
		||||
  var result = [], fileIdx = 0;
 | 
			
		||||
  try {
 | 
			
		||||
    codeList.forEach(function (code, idx) {
 | 
			
		||||
      fileIdx = idx;
 | 
			
		||||
      if (!tokenize) {
 | 
			
		||||
        result = acorn__namespace.parse(code, options);
 | 
			
		||||
        options.program = result;
 | 
			
		||||
      } else {
 | 
			
		||||
        var tokenizer = acorn__namespace.tokenizer(code, options), token;
 | 
			
		||||
        do {
 | 
			
		||||
          token = tokenizer.getToken();
 | 
			
		||||
          result.push(token);
 | 
			
		||||
        } while (token.type !== acorn__namespace.tokTypes.eof)
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  } catch (e) {
 | 
			
		||||
    console.error(fileMode ? e.message.replace(/\(\d+:\d+\)$/, function (m) { return m.slice(0, 1) + inputFilePaths[fileIdx] + " " + m.slice(1); }) : e.message);
 | 
			
		||||
    process.exit(1);
 | 
			
		||||
  }
 | 
			
		||||
  if (!silent) { console.log(JSON.stringify(result, null, compact ? null : 2)); }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if (fileMode = inputFilePaths.length && (forceFileName || !inputFilePaths.includes("-") || inputFilePaths.length !== 1)) {
 | 
			
		||||
  run(inputFilePaths.map(function (path) { return fs.readFileSync(path, "utf8"); }));
 | 
			
		||||
} else {
 | 
			
		||||
  var code = "";
 | 
			
		||||
  process.stdin.resume();
 | 
			
		||||
  process.stdin.on("data", function (chunk) { return code += chunk; });
 | 
			
		||||
  process.stdin.on("end", function () { return run([code]); });
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user