UNPKG

@babel/parser

Version:
621 lines (602 loc) 20.6 kB
import { File, Expression } from "@babel/types"; // This file is auto-generated! Do not modify it directly. // Run `make bundle-babel-parser-dts` to re-generate it. /* eslint-disable @typescript-eslint/consistent-type-imports, @typescript-eslint/no-redundant-type-constituents */ declare class Position { line: number; column: number; index: number; constructor(line: number, col: number, index?: number); } //# sourceMappingURL=module-errors.d.ts.map type LValAncestor = | { type: "UpdateExpression"; prefix: boolean; } | { type: | "ArrayPattern" | "AssignmentExpression" | "CatchClause" | "ForOfStatement" | "FormalParameters" | "ForInStatement" | "ForStatement" | "ImportSpecifier" | "ImportNamespaceSpecifier" | "ImportDefaultSpecifier" | "ParenthesizedExpression" | "ObjectPattern" | "RestElement" | "VariableDeclarator"; }; //# sourceMappingURL=bind-operator-errors.d.ts.map type Accessibility = "public" | "protected" | "private"; type VarianceAnnotations = "in" | "out"; type Plugin$1 = | "asyncDoExpressions" | "decorators" | "decorators-legacy" | "decoratorAutoAccessors" | "deferredImportEvaluation" | "destructuringPrivate" | "doExpressions" | "exportDefaultFrom" | "flow" | "flowComments" | "functionBind" | "functionSent" | "importMeta" | "jsx" | "moduleBlocks" | "placeholders" | "sourcePhaseImports" | "throwExpressions" | "v8intrinsic" | ParserPluginWithOptions[0]; type ParserPluginWithOptions = | ["discardBinding", { syntaxType: "void" }] | ["estree", { classFeatures?: boolean }] | ["optionalChainingAssign", { version: "2023-07" }] | ["partialApplication", PartialApplicationPluginOptions] | ["pipelineOperator", PipelineOperatorPluginOptions] | ["flow", FlowPluginOptions] | ["typescript", TypeScriptPluginOptions]; type PluginConfig = Plugin$1 | ParserPluginWithOptions; interface PartialApplicationPluginOptions { version: "2018-07"; } interface PipelineOperatorPluginOptions { proposal: "fsharp" | "hack"; topicToken?: "%" | "#" | "@@" | "^^" | "^"; } interface FlowPluginOptions { all?: boolean; } interface TypeScriptPluginOptions { dts?: boolean; disallowAmbiguousJSXLike?: boolean; } type TsModifier = | "readonly" | "abstract" | "declare" | "static" | "override" | "const" | Accessibility | VarianceAnnotations; type EnumExplicitType = null | "boolean" | "number" | "string" | "symbol"; type ParseError = SyntaxError & { missingPlugin?: string | string[]; loc: Position; pos: number; } & ErrorInfo; type __PatchMe = Decompress<ErrorInfoCompressed>; type ErrorInfo = __PatchMe | never; type ErrorInfoCompressed = { ImportMetaOutsideModule: [object, "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"]; ImportOutsideModule: [object, "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"]; AccessorIsGenerator: [{ kind: "get" | "set" }]; ArgumentsInClass: []; AsyncFunctionInSingleStatementContext: []; AwaitBindingIdentifier: []; AwaitBindingIdentifierInStaticBlock: []; AwaitExpressionFormalParameter: []; AwaitUsingNotInAsyncContext: []; AwaitNotInAsyncContext: []; BadGetterArity: []; BadSetterArity: []; BadSetterRestParameter: []; ConstructorClassField: []; ConstructorClassPrivateField: []; ConstructorIsAccessor: []; ConstructorIsAsync: []; ConstructorIsGenerator: []; DeclarationMissingInitializer: [ { kind: "await using" | "const" | "destructuring" | "using" }, ]; DecoratorArgumentsOutsideParentheses: []; DecoratorsBeforeAfterExport: []; DecoratorConstructor: []; DecoratorSemicolon: []; DecoratorStaticBlock: []; DeferImportRequiresNamespace: []; DeletePrivateField: []; DestructureNamedImport: []; DuplicateConstructor: []; DuplicateDefaultExport: []; DuplicateExport: [{ exportName: string }]; DuplicateProto: []; DuplicateRegExpFlags: []; ElementAfterRest: []; EscapedCharNotAnIdentifier: []; ExportBindingIsString: [{ localName: string; exportName: string }]; ExportDefaultFromAsIdentifier: []; ForInOfLoopInitializer: [{ type: "ForInStatement" | "ForOfStatement" }]; ForInUsing: []; ForOfAsync: []; ForOfLet: []; GeneratorInSingleStatementContext: []; IllegalBreakContinue: [{ type: "BreakStatement" | "ContinueStatement" }]; IllegalLanguageModeDirective: []; IllegalReturn: []; ImportBindingIsString: [{ importName: string }]; ImportCallArity: [{ phase?: string | null | undefined }]; ImportCallNotNewExpression: [{ phase?: string | null | undefined }]; ImportCallSpreadArgument: [{ phase?: string | null | undefined }]; IncompatibleRegExpUVFlags: []; InvalidBigIntLiteral: []; InvalidCodePoint: []; InvalidCoverDiscardElement: []; InvalidCoverInitializedName: []; InvalidDigit: [{ radix: number }]; InvalidEscapeSequence: []; InvalidEscapeSequenceTemplate: []; InvalidEscapedReservedWord: [{ reservedWord: string }]; InvalidIdentifier: [{ identifierName: string }]; InvalidLhs: [{ ancestor: LValAncestor }]; InvalidLhsBinding: [{ ancestor: LValAncestor }]; InvalidLhsOptionalChaining: [{ ancestor: LValAncestor }]; InvalidNumber: []; InvalidOrMissingExponent: []; InvalidOrUnexpectedToken: [{ unexpected: string }]; InvalidParenthesizedAssignment: []; InvalidPrivateFieldResolution: [{ identifierName: string }]; InvalidPropertyBindingPattern: []; InvalidRestAssignmentPattern: []; LabelRedeclaration: [{ labelName: string }]; LetInLexicalBinding: []; LineTerminatorBeforeArrow: []; MalformedRegExpFlags: []; MissingClassName: []; MissingEqInAssignment: []; MissingSemicolon: []; MissingPlugin: [{ missingPlugin: [string] }]; MissingOneOfPlugins: [{ missingPlugin: string[] }]; MissingUnicodeEscape: []; MixingCoalesceWithLogical: []; ModuleAttributeInvalidValue: []; ModuleAttributesWithDuplicateKeys: [{ key: string }]; ModuleExportNameHasLoneSurrogate: [{ surrogateCharCode: number }]; ModuleExportUndefined: [{ localName: string }]; MultipleDefaultsInSwitch: []; NewlineAfterThrow: []; NoCatchOrFinally: []; NumberIdentifier: []; NumericSeparatorInEscapeSequence: []; ObsoleteAwaitStar: []; OptionalChainingNoNew: []; OptionalChainingNoTemplate: []; OverrideOnConstructor: []; ParamDupe: []; PatternHasAccessor: []; PatternHasMethod: []; PrivateInExpectedIn: [{ identifierName: string }]; PrivateNameRedeclaration: [{ identifierName: string }]; RestTrailingComma: []; SloppyFunction: []; SloppyFunctionAnnexB: []; SourcePhaseImportRequiresDefault: []; StaticPrototype: []; SuperCallNotNewExpression: []; SuperNotAllowed: []; SuperPrivateField: []; TrailingDecorator: []; UnexpectedArgumentPlaceholder: []; UnexpectedDigitAfterHash: []; UnexpectedImportExport: []; UnexpectedKeyword: [{ keyword: string }]; UnexpectedLeadingDecorator: []; UnexpectedLexicalDeclaration: []; UnexpectedNewTarget: []; UnexpectedNumericSeparator: []; UnexpectedPrivateField: []; UnexpectedReservedWord: [{ reservedWord: string }]; UnexpectedSuper: []; UnexpectedTokenUnaryExponentiation: []; UnexpectedUsingDeclaration: []; UnexpectedVoidPattern: []; UnsupportedDecoratorExport: []; UnsupportedDefaultExport: []; UnsupportedImport: []; UnsupportedMetaProperty: [{ target: string; onlyValidPropertyName: string }]; UnsupportedParameterDecorator: []; UnsupportedPropertyDecorator: []; UnsupportedSuper: []; UnterminatedComment: []; UnterminatedRegExp: []; UnterminatedString: []; UnterminatedTemplate: []; UsingDeclarationExport: []; UsingDeclarationHasBindingPattern: []; VarRedeclaration: [{ identifierName: string }]; VoidPatternCatchClauseParam: []; VoidPatternInitializer: []; YieldBindingIdentifier: []; YieldInParameter: []; YieldNotInGeneratorFunction: []; ZeroDigitNumericSeparator: []; StrictDelete: []; StrictEvalArguments: [{ referenceName: string }]; StrictEvalArgumentsBinding: [{ bindingName: string }]; StrictFunction: []; StrictNumericEscape: []; StrictOctalLiteral: []; StrictWith: []; ParseExpressionEmptyInput: []; ParseExpressionExpectsEOF: [{ unexpected: number }]; UnsupportedBind: []; UnsupportedBindRHS: []; PipeTopicRequiresHackPipes: []; PipeTopicUnbound: []; PipeTopicUnconfiguredToken: [{ token: string }]; PipeTopicUnused: []; PipeUnparenthesizedBody: [ { type: | "AssignmentExpression" | "ArrowFunctionExpression" | "ConditionalExpression" | "YieldExpression"; }, ]; PipelineUnparenthesized: []; AbstractMethodHasImplementation: [{ methodName: string }]; AbstractPropertyHasInitializer: [{ propertyName: string }]; AccessorCannotBeOptional: []; AccessorCannotDeclareThisParameter: []; AccessorCannotHaveTypeParameters: []; ClassMethodHasDeclare: []; ClassMethodHasReadonly: []; ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: []; ConstructorHasTypeParameters: []; DeclareAccessor: [{ kind: "get" | "set" }]; DeclareClassFieldHasInitializer: []; DeclareFunctionHasImplementation: []; DecoratorAbstractMethod: [ { kind: "abstract method" | "abstract field" | "declare field" }, ]; DuplicateAccessibilityModifier: [{ modifier: Accessibility }]; DuplicateModifier: [{ modifier: TsModifier }]; EmptyHeritageClauseType: [{ token: "extends" | "implements" }]; EmptyTypeArguments: []; EmptyTypeParameters: []; ExpectedAmbientAfterExportDeclare: []; ExportAssignmentInTSNamespace: []; ExportInTSNamespace: []; ImportAliasHasImportType: []; ImportInTSNamespace: []; IncompatibleModifiers: [{ modifiers: [TsModifier, TsModifier] }]; IndexSignatureHasAbstract: []; IndexSignatureHasAccessibility: [{ modifier: Accessibility }]; IndexSignatureHasDeclare: []; IndexSignatureHasOverride: []; IndexSignatureHasStatic: []; InitializerNotAllowedInAmbientContext: []; InlineModuleDeclarationMustUseString: []; InvalidHeritageClauseType: [{ token: "extends" | "implements" }]; InvalidModifierOnAwaitUsingDeclaration: [ | "const" | Accessibility | "readonly" | "abstract" | "declare" | "static" | "override" | VarianceAnnotations, ]; InvalidModifierOnTypeMember: [{ modifier: TsModifier }]; InvalidModifierOnTypeParameter: [{ modifier: TsModifier }]; InvalidModifierOnTypeParameterPositions: [{ modifier: TsModifier }]; InvalidModifierOnUsingDeclaration: [ | "const" | Accessibility | "readonly" | "abstract" | "declare" | "static" | "override" | VarianceAnnotations, ]; InvalidModifiersOrder: [{ orderedModifiers: [TsModifier, TsModifier] }]; InvalidPropertyAccessAfterInstantiationExpression: []; InvalidTupleMemberLabel: []; MissingInterfaceName: []; NamespaceExportInTSNamespace: []; NonAbstractClassHasAbstractMethod: []; NonClassMethodPropertyHasAbstractModifier: []; OptionalTypeBeforeRequired: []; OverrideNotInSubClass: []; PrivateElementHasAbstract: []; PrivateElementHasAccessibility: [{ modifier: Accessibility }]; ReadonlyForMethodSignature: []; ReservedArrowTypeParam: []; ReservedTypeAssertion: []; SetAccessorCannotHaveOptionalParameter: []; SetAccessorCannotHaveRestParameter: []; SetAccessorCannotHaveReturnType: []; SingleTypeParameterWithoutTrailingComma: [{ typeParameterName: string }]; StaticBlockCannotHaveModifier: []; TupleOptionalAfterType: []; TypeAnnotationAfterAssign: []; TypeImportCannotSpecifyDefaultAndNamed: []; TypeModifierIsUsedInTypeExports: []; TypeModifierIsUsedInTypeImports: []; UnexpectedParameterInitializer: []; UnexpectedParameterModifier: []; UnexpectedReadonly: []; UnexpectedTypeAnnotation: []; UnexpectedTypeCastInParameter: []; UnexpectedTypeDeclaration: ["interface" | "type"]; UnsupportedImportTypeArgument: []; UnsupportedParameterPropertyKind: []; UnsupportedSignatureParameterKind: [{ type: string }]; UsingDeclarationInAmbientContext: ["await using" | "using"]; AmbiguousConditionalArrow: []; AmbiguousDeclareModuleKind: []; AssignReservedType: [{ reservedType: string }]; DeclareClassElement: []; DeclareClassFieldInitializer: []; DuplicateDeclareModuleExports: []; EnumBooleanMemberNotInitialized: [{ memberName: string; enumName: string }]; EnumDuplicateMemberName: [{ memberName: string; enumName: string }]; EnumInconsistentMemberValues: [{ enumName: string }]; EnumInvalidExplicitType: [{ invalidEnumType: string; enumName: string }]; EnumInvalidExplicitTypeUnknownSupplied: [{ enumName: string }]; EnumInvalidMemberInitializerPrimaryType: [ { enumName: string; memberName: string; explicitType: EnumExplicitType }, ]; EnumInvalidMemberInitializerSymbolType: [ { enumName: string; memberName: string; explicitType: EnumExplicitType }, ]; EnumInvalidMemberInitializerUnknownType: [ { enumName: string; memberName: string; explicitType: EnumExplicitType }, ]; EnumInvalidMemberName: [ { enumName: string; memberName: string; suggestion: string }, ]; EnumNumberMemberNotInitialized: [{ enumName: string; memberName: string }]; EnumStringMemberInconsistentlyInitialized: [{ enumName: string }]; GetterMayNotHaveThisParam: []; ImportTypeShorthandOnlyInPureImport: []; InexactInsideExact: []; InexactInsideNonObject: []; InexactVariance: []; InvalidNonTypeImportInDeclareModule: []; MissingTypeParamDefault: []; NestedDeclareModule: []; NestedFlowComment: []; SetterMayNotHaveThisParam: []; SpreadVariance: []; ThisParamAnnotationRequired: []; ThisParamBannedInConstructor: []; ThisParamMayNotBeOptional: []; ThisParamMustBeFirst: []; ThisParamNoDefault: []; TypeBeforeInitializer: []; TypeCastInPattern: []; UnexpectedExplicitInexactInObject: []; UnexpectedReservedType: [{ reservedType: string }]; UnexpectedReservedUnderscore: []; UnexpectedSpaceBetweenModuloChecks: []; UnexpectedSpreadType: []; UnexpectedSubtractionOperand: []; UnexpectedTokenAfterTypeParameter: []; UnexpectedTypeParameterBeforeAsyncArrowFunction: []; UnsupportedDeclareExportKind: [ { unsupportedExportKind: string; suggestion: string }, ]; UnsupportedStatementInDeclareModule: []; UnterminatedFlowComment: []; AttributeIsEmpty: []; MissingClosingTagElement: [{ openingTagName: string }]; MissingClosingTagFragment: []; UnexpectedSequenceExpression: []; UnsupportedJsxValue: []; UnterminatedJsxContent: []; UnwrappedAdjacentJSXElements: []; ClassNameIsRequired: []; UnexpectedSpace: []; }; type Decompress<T extends object> = { [K in keyof T]: T[K] extends [infer Param, infer Code] ? { code: Code; reasonCode: K; details: Param; } : T[K] extends [infer Param] ? { code: "BABEL_PARSER_SYNTAX_ERROR"; reasonCode: K; details: Param; } : T[K] extends [] ? { code: "BABEL_PARSER_SYNTAX_ERROR"; reasonCode: K; details: object; } : never; }; type Plugin = PluginConfig; type SourceType = "script" | "commonjs" | "module" | "unambiguous"; interface Options { /** * By default, import and export declarations can only appear at a program's top level. * Setting this option to true allows them anywhere where a statement is allowed. */ allowImportExportEverywhere?: boolean; /** * By default, await use is not allowed outside of an async function. * Set this to true to accept such code. */ allowAwaitOutsideFunction?: boolean; /** * By default, a return statement at the top level raises an error. * Set this to true to accept such code. */ allowReturnOutsideFunction?: boolean; /** * By default, new.target use is not allowed outside of a function or class. * Set this to true to accept such code. */ allowNewTargetOutsideFunction?: boolean; /** * By default, super calls are not allowed outside of a method. * Set this to true to accept such code. */ allowSuperOutsideMethod?: boolean; /** * By default, exported identifiers must refer to a declared variable. * Set this to true to allow export statements to reference undeclared variables. */ allowUndeclaredExports?: boolean; /** * By default, yield use is not allowed outside of a generator function. * Set this to true to accept such code. */ allowYieldOutsideFunction?: boolean; /** * By default, Babel parser JavaScript code according to Annex B syntax. * Set this to `false` to disable such behavior. */ annexB?: boolean; /** * By default, Babel attaches comments to adjacent AST nodes. * When this option is set to false, comments are not attached. * It can provide up to 30% performance improvement when the input code has many comments. * @babel/eslint-parser will set it for you. * It is not recommended to use attachComment: false with Babel transform, * as doing so removes all the comments in output code, and renders annotations such as * /* istanbul ignore next *\/ nonfunctional. */ attachComment?: boolean; /** * By default, Babel always throws an error when it finds some invalid code. * When this option is set to true, it will store the parsing error and * try to continue parsing the invalid input file. */ errorRecovery?: boolean; /** * Indicate the mode the code should be parsed in. * Can be one of "script", "commonjs", "module", or "unambiguous". Defaults to "script". * "unambiguous" will make @babel/parser attempt to guess, based on the presence * of ES6 import or export statements. * Files with ES6 imports and exports are considered "module" and are otherwise "script". * * Use "commonjs" to parse code that is intended to be run in a CommonJS environment such as Node.js. */ sourceType?: SourceType; /** * Correlate output AST nodes with their source filename. * Useful when generating code and source maps from the ASTs of multiple input files. */ sourceFilename?: string; /** * By default, all source indexes start from 0. * You can provide a start index to alternatively start with. * Useful for integration with other source tools. */ startIndex?: number; /** * By default, the first line of code parsed is treated as line 1. * You can provide a line number to alternatively start with. * Useful for integration with other source tools. */ startLine?: number; /** * By default, the parsed code is treated as if it starts from line 1, column 0. * You can provide a column number to alternatively start with. * Useful for integration with other source tools. */ startColumn?: number; /** * Array containing the plugins that you want to enable. */ plugins?: Plugin[]; /** * Should the parser work in strict mode. * Defaults to true if sourceType === 'module'. Otherwise, false. */ strictMode?: boolean; /** * Adds a ranges property to each node: [node.start, node.end] */ ranges?: boolean; /** * Adds a locations property to each node: [node.loc] */ locations?: boolean; /** * Adds all parsed tokens to a tokens property on the File node. */ tokens?: boolean; /** * By default, the parser adds information about parentheses by setting * `extra.parenthesized` to `true` as needed. * When this option is `true` the parser creates `ParenthesizedExpression` * AST nodes instead of using the `extra` property. */ createParenthesizedExpressions?: boolean; /** * By default, the parser parses import expressions as an `ImportExpression` node. * Set this to false to parse it as `CallExpression(Import, [Identifier(foo)])`. */ createImportExpressions?: boolean; } type ParserOptions = Partial<Options>; type ParseResult<Result extends File | Expression = File> = Result & { comments: File["comments"]; errors: ParseError[]; tokens?: File["tokens"]; }; /** * Parse the provided code as an entire ECMAScript program. */ declare function parse( input: string, options?: ParserOptions ): ParseResult<File>; declare function parseExpression( input: string, options?: ParserOptions ): ParseResult<Expression>; declare const tokTypes: { // todo(flow->ts) real token type [name: string]: any; }; export { type FlowPluginOptions, type ParseError, type ParseResult, type ParserOptions, type PluginConfig as ParserPlugin, type PipelineOperatorPluginOptions, type TypeScriptPluginOptions, parse, parseExpression, tokTypes, };