Interface: CanonicalOverrideBlock¶
Defined in: core/src/types/ast.ts:636
Immutable canonical override block.
Extends¶
Properties¶
loc¶
readonlyloc:object
Defined in: core/src/types/ast.ts:467
column¶
readonlycolumn:number
Column number (1-indexed)
file¶
readonlyfile:string
File path
line¶
readonlyline:number
Line number (1-indexed)
offset?¶
readonlyoptionaloffset?:number
Byte offset from start of file
Inherited from¶
replacement¶
readonlyreplacement: {body: {entries: readonly ({loc: {column:number;file:string;line:number;offset?:number; };text:string;type:"TextEntry"; } | {defaultValue?: {loc: {column:number;file:string;line:number;offset?:number; };type:"ScalarValueNode";value:PrimitiveValue; } | {elements: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ArrayValueNode"; } | {loc: {column:number;file:string;line:number;offset?:number; };type:"TextValueNode";value:string; } | {loc: {column:number;file:string;line:number;offset?:number; };name:string;type:"TemplateValueNode"; } | {expression: {constraints?: {max?: ...;min?: ...;options?: ...; };kind:"string"|"number"|"boolean"|"enum"|"range"|"list";loc: {column:number;file:string;line:number;offset?: ... | ...; };params?: readonly ...[];type:"TypeExpression"; };loc: {column:number;file:string;line:number;offset?:number; };type:"TypeExpressionValueNode"; } | {fields: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ObjectValueNode"; };loc: {column:number;file:string;line:number;offset?:number; };name:string;optional?:boolean;type:"FieldEntry";value: {loc: {column:number;file:string;line:number;offset?:number; };type:"ScalarValueNode";value:PrimitiveValue; } | {elements: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ArrayValueNode"; } | {loc: {column:number;file:string;line:number;offset?:number; };type:"TextValueNode";value:string; } | {loc: {column:number;file:string;line:number;offset?:number; };name:string;type:"TemplateValueNode"; } | {expression: {constraints?: {max?: ...;min?: ...;options?: ...; };kind:"string"|"number"|"boolean"|"enum"|"range"|"list";loc: {column:number;file:string;line:number;offset?: ... | ...; };params?: readonly ...[];type:"TypeExpression"; };loc: {column:number;file:string;line:number;offset?:number; };type:"TypeExpressionValueNode"; } | {fields: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ObjectValueNode"; }; } | {loc: {column:number;file:string;line:number;offset?:number; };type:"ListEntry";value: {loc: {column:number;file:string;line:number;offset?:number; };type:"ScalarValueNode";value:PrimitiveValue; } | {elements: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ArrayValueNode"; } | {loc: {column:number;file:string;line:number;offset?:number; };type:"TextValueNode";value:string; } | {loc: {column:number;file:string;line:number;offset?:number; };name:string;type:"TemplateValueNode"; } | {expression: {constraints?: {max?: ...;min?: ...;options?: ...; };kind:"string"|"number"|"boolean"|"enum"|"range"|"list";loc: {column:number;file:string;line:number;offset?: ... | ...; };params?: readonly ...[];type:"TypeExpression"; };loc: {column:number;file:string;line:number;offset?:number; };type:"TypeExpressionValueNode"; } | {fields: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ObjectValueNode"; }; } | {declaration: {alias?:string;loc: {column:number;file:string;line:number;offset?:number; };outputDir?:string;params?: readonlyobject[];path: {isRelative:boolean;loc: {column:number;file:string;line:number;offset?:number; };namespace?:string;raw:string;segments: readonlystring[];type:"PathReference";version?:string; };type:"InlineUseDeclaration"; };loc: {column:number;file:string;line:number;offset?:number; };type:"InlineUseEntry"; } | {loc: {column:number;file:string;line:number;offset?:number; };sectionId?:string;sectionLoc?: {column:number;file:string;line:number;offset?:number; };source:"explicit"|"legacy";title:string;titleLoc: {column:number;file:string;line:number;offset?:number; };type:"PresentationEntry"; })[];legacyProjection?:"TextContent"|"ObjectContent"|"ArrayContent"|"MixedContent";legacyText?: {loc: {column:number;file:string;line:number;offset?:number; };type:"TextContent";value:string; };loc: {column:number;file:string;line:number;offset?:number; };shape:"object"|"array"|"text"|"mixed";type:"BlockBody"; };loc: {column:number;file:string;line:number;offset?:number; };type:"BlockReplacement"; } | {loc: {column:number;file:string;line:number;offset?:number; };type:"ValueReplacement";value: {loc: {column:number;file:string;line:number;offset?:number; };type:"ScalarValueNode";value:PrimitiveValue; } | {elements: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ArrayValueNode"; } | {loc: {column:number;file:string;line:number;offset?:number; };type:"TextValueNode";value:string; } | {loc: {column:number;file:string;line:number;offset?:number; };name:string;type:"TemplateValueNode"; } | {expression: {constraints?: {max?:number;min?:number;options?: readonly (PrimitiveValue| { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... | readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | { ...; } | { ...; } | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; reado... | readonly (PrimitiveValue | { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; readonly loc: { ...; }; } | readonly (Primitive... | {loc: ...;type: ...;value: ...; } | {[key: ...]: ...; } | {loc: ...;name: ...;type: ...; })[]; };kind:"string"|"number"|"boolean"|"enum"|"range"|"list";loc: {column:number;file:string;line:number;offset?:number; };params?: readonly (PrimitiveValue| { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... | readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | { ...; } | { ...; } | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; reado... | readonly (PrimitiveValue | { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; readonly loc: { ...; }; } | readonly (Primitive... | {loc: {column:number;file:string;line:number;offset?: ... | ...; };type:"TextContent";value:string; } | {[key:string]: PrimitiveValue | { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; readonly loc: { ...; }; } | readonly (PrimitiveValue | .....; } | {loc: {column:number;file:string;line:number;offset?: ... | ...; };name:string;type:"TemplateExpression"; })[];type:"TypeExpression"; };loc: {column:number;file:string;line:number;offset?:number; };type:"TypeExpressionValueNode"; } | {fields: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ObjectValueNode"; }; }
Defined in: core/src/types/ast.ts:639
Union Members¶
Type Literal¶
{ body: { entries: readonly ({ loc: { column: number; file: string; line: number; offset?: number; }; text: string; type: "TextEntry"; } | { defaultValue?: { loc: { column: number; file: string; line: number; offset?: number; }; type: "ScalarValueNode"; value: PrimitiveValue; } | { elements: readonly object[]; loc: { column: number; file: string; line: number; offset?: number; }; type: "ArrayValueNode"; } | { loc: { column: number; file: string; line: number; offset?: number; }; type: "TextValueNode"; value: string; } | { loc: { column: number; file: string; line: number; offset?: number; }; name: string; type: "TemplateValueNode"; } | { expression: { constraints?: { max?: ...; min?: ...; options?: ...; }; kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; loc: { column: number; file: string; line: number; offset?: ... | ...; }; params?: readonly ...[]; type: "TypeExpression"; }; loc: { column: number; file: string; line: number; offset?: number; }; type: "TypeExpressionValueNode"; } | { fields: readonly object[]; loc: { column: number; file: string; line: number; offset?: number; }; type: "ObjectValueNode"; }; loc: { column: number; file: string; line: number; offset?: number; }; name: string; optional?: boolean; type: "FieldEntry"; value: { loc: { column: number; file: string; line: number; offset?: number; }; type: "ScalarValueNode"; value: PrimitiveValue; } | { elements: readonly object[]; loc: { column: number; file: string; line: number; offset?: number; }; type: "ArrayValueNode"; } | { loc: { column: number; file: string; line: number; offset?: number; }; type: "TextValueNode"; value: string; } | { loc: { column: number; file: string; line: number; offset?: number; }; name: string; type: "TemplateValueNode"; } | { expression: { constraints?: { max?: ...; min?: ...; options?: ...; }; kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; loc: { column: number; file: string; line: number; offset?: ... | ...; }; params?: readonly ...[]; type: "TypeExpression"; }; loc: { column: number; file: string; line: number; offset?: number; }; type: "TypeExpressionValueNode"; } | { fields: readonly object[]; loc: { column: number; file: string; line: number; offset?: number; }; type: "ObjectValueNode"; }; } | { loc: { column: number; file: string; line: number; offset?: number; }; type: "ListEntry"; value: { loc: { column: number; file: string; line: number; offset?: number; }; type: "ScalarValueNode"; value: PrimitiveValue; } | { elements: readonly object[]; loc: { column: number; file: string; line: number; offset?: number; }; type: "ArrayValueNode"; } | { loc: { column: number; file: string; line: number; offset?: number; }; type: "TextValueNode"; value: string; } | { loc: { column: number; file: string; line: number; offset?: number; }; name: string; type: "TemplateValueNode"; } | { expression: { constraints?: { max?: ...; min?: ...; options?: ...; }; kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; loc: { column: number; file: string; line: number; offset?: ... | ...; }; params?: readonly ...[]; type: "TypeExpression"; }; loc: { column: number; file: string; line: number; offset?: number; }; type: "TypeExpressionValueNode"; } | { fields: readonly object[]; loc: { column: number; file: string; line: number; offset?: number; }; type: "ObjectValueNode"; }; } | { declaration: { alias?: string; loc: { column: number; file: string; line: number; offset?: number; }; outputDir?: string; params?: readonly object[]; path: { isRelative: boolean; loc: { column: number; file: string; line: number; offset?: number; }; namespace?: string; raw: string; segments: readonly string[]; type: "PathReference"; version?: string; }; type: "InlineUseDeclaration"; }; loc: { column: number; file: string; line: number; offset?: number; }; type: "InlineUseEntry"; } | { loc: { column: number; file: string; line: number; offset?: number; }; sectionId?: string; sectionLoc?: { column: number; file: string; line: number; offset?: number; }; source: "explicit" | "legacy"; title: string; titleLoc: { column: number; file: string; line: number; offset?: number; }; type: "PresentationEntry"; })[]; legacyProjection?: "TextContent" | "ObjectContent" | "ArrayContent" | "MixedContent"; legacyText?: { loc: { column: number; file: string; line: number; offset?: number; }; type: "TextContent"; value: string; }; loc: { column: number; file: string; line: number; offset?: number; }; shape: "object" | "array" | "text" | "mixed"; type: "BlockBody"; }; loc: { column: number; file: string; line: number; offset?: number; }; type: "BlockReplacement"; }
body¶
readonlybody:object
body.entries¶
readonlyentries: readonly ({loc: {column:number;file:string;line:number;offset?:number; };text:string;type:"TextEntry"; } | {defaultValue?: {loc: {column:number;file:string;line:number;offset?:number; };type:"ScalarValueNode";value:PrimitiveValue; } | {elements: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ArrayValueNode"; } | {loc: {column:number;file:string;line:number;offset?:number; };type:"TextValueNode";value:string; } | {loc: {column:number;file:string;line:number;offset?:number; };name:string;type:"TemplateValueNode"; } | {expression: {constraints?: {max?: ...;min?: ...;options?: ...; };kind:"string"|"number"|"boolean"|"enum"|"range"|"list";loc: {column:number;file:string;line:number;offset?: ... | ...; };params?: readonly ...[];type:"TypeExpression"; };loc: {column:number;file:string;line:number;offset?:number; };type:"TypeExpressionValueNode"; } | {fields: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ObjectValueNode"; };loc: {column:number;file:string;line:number;offset?:number; };name:string;optional?:boolean;type:"FieldEntry";value: {loc: {column:number;file:string;line:number;offset?:number; };type:"ScalarValueNode";value:PrimitiveValue; } | {elements: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ArrayValueNode"; } | {loc: {column:number;file:string;line:number;offset?:number; };type:"TextValueNode";value:string; } | {loc: {column:number;file:string;line:number;offset?:number; };name:string;type:"TemplateValueNode"; } | {expression: {constraints?: {max?: ...;min?: ...;options?: ...; };kind:"string"|"number"|"boolean"|"enum"|"range"|"list";loc: {column:number;file:string;line:number;offset?: ... | ...; };params?: readonly ...[];type:"TypeExpression"; };loc: {column:number;file:string;line:number;offset?:number; };type:"TypeExpressionValueNode"; } | {fields: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ObjectValueNode"; }; } | {loc: {column:number;file:string;line:number;offset?:number; };type:"ListEntry";value: {loc: {column:number;file:string;line:number;offset?:number; };type:"ScalarValueNode";value:PrimitiveValue; } | {elements: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ArrayValueNode"; } | {loc: {column:number;file:string;line:number;offset?:number; };type:"TextValueNode";value:string; } | {loc: {column:number;file:string;line:number;offset?:number; };name:string;type:"TemplateValueNode"; } | {expression: {constraints?: {max?: ...;min?: ...;options?: ...; };kind:"string"|"number"|"boolean"|"enum"|"range"|"list";loc: {column:number;file:string;line:number;offset?: ... | ...; };params?: readonly ...[];type:"TypeExpression"; };loc: {column:number;file:string;line:number;offset?:number; };type:"TypeExpressionValueNode"; } | {fields: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ObjectValueNode"; }; } | {declaration: {alias?:string;loc: {column:number;file:string;line:number;offset?:number; };outputDir?:string;params?: readonlyobject[];path: {isRelative:boolean;loc: {column:number;file:string;line:number;offset?:number; };namespace?:string;raw:string;segments: readonlystring[];type:"PathReference";version?:string; };type:"InlineUseDeclaration"; };loc: {column:number;file:string;line:number;offset?:number; };type:"InlineUseEntry"; } | {loc: {column:number;file:string;line:number;offset?:number; };sectionId?:string;sectionLoc?: {column:number;file:string;line:number;offset?:number; };source:"explicit"|"legacy";title:string;titleLoc: {column:number;file:string;line:number;offset?:number; };type:"PresentationEntry"; })[]
body.legacyProjection?¶
readonlyoptionallegacyProjection?:"TextContent"|"ObjectContent"|"ArrayContent"|"MixedContent"
Original legacy projection, retained across immutable updates
body.legacyText?¶
readonlyoptionallegacyText?:object
Exact resolved text projection when entries retain multiple source fragments
body.legacyText.loc¶
readonlyloc:object
Source location
body.legacyText.loc.column¶
readonlycolumn:number
Column number (1-indexed)
body.legacyText.loc.file¶
readonlyfile:string
File path
body.legacyText.loc.line¶
readonlyline:number
Line number (1-indexed)
body.legacyText.loc.offset?¶
readonlyoptionaloffset?:number
Byte offset from start of file
body.legacyText.type¶
readonlytype:"TextContent"
Node type discriminator
body.legacyText.value¶
readonlyvalue:string
Text value (without delimiters)
body.loc¶
readonlyloc:object
body.loc.column¶
readonlycolumn:number
Column number (1-indexed)
body.loc.file¶
readonlyfile:string
File path
body.loc.line¶
readonlyline:number
Line number (1-indexed)
body.loc.offset?¶
readonlyoptionaloffset?:number
Byte offset from start of file
body.shape¶
readonlyshape:"object"|"array"|"text"|"mixed"
body.type¶
readonlytype:"BlockBody"
loc¶
readonlyloc:object
Source location
loc.column¶
readonlycolumn:number
Column number (1-indexed)
loc.file¶
readonlyfile:string
File path
loc.line¶
readonlyline:number
Line number (1-indexed)
loc.offset?¶
readonlyoptionaloffset?:number
Byte offset from start of file
type¶
readonlytype:"BlockReplacement"
Node type discriminator
Type Literal¶
{ loc: { column: number; file: string; line: number; offset?: number; }; type: "ValueReplacement"; value: { loc: { column: number; file: string; line: number; offset?: number; }; type: "ScalarValueNode"; value: PrimitiveValue; } | { elements: readonly object[]; loc: { column: number; file: string; line: number; offset?: number; }; type: "ArrayValueNode"; } | { loc: { column: number; file: string; line: number; offset?: number; }; type: "TextValueNode"; value: string; } | { loc: { column: number; file: string; line: number; offset?: number; }; name: string; type: "TemplateValueNode"; } | { expression: { constraints?: { max?: number; min?: number; options?: readonly (PrimitiveValue | { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... | readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | { ...; } | { ...; } | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; reado... | readonly (PrimitiveValue | { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; readonly loc: { ...; }; } | readonly (Primitive... | { loc: ...; type: ...; value: ...; } | {[key: ...]: ...; } | { loc: ...; name: ...; type: ...; })[]; }; kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; loc: { column: number; file: string; line: number; offset?: number; }; params?: readonly (PrimitiveValue | { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... | readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | { ...; } | { ...; } | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; reado... | readonly (PrimitiveValue | { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; readonly loc: { ...; }; } | readonly (Primitive... | { loc: { column: number; file: string; line: number; offset?: ... | ...; }; type: "TextContent"; value: string; } | {[key: string]: PrimitiveValue | { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; readonly loc: { ...; }; } | readonly (PrimitiveValue | .....; } | { loc: { column: number; file: string; line: number; offset?: ... | ...; }; name: string; type: "TemplateExpression"; })[]; type: "TypeExpression"; }; loc: { column: number; file: string; line: number; offset?: number; }; type: "TypeExpressionValueNode"; } | { fields: readonly object[]; loc: { column: number; file: string; line: number; offset?: number; }; type: "ObjectValueNode"; }; }
loc¶
readonlyloc:object
Source location
loc.column¶
readonlycolumn:number
Column number (1-indexed)
loc.file¶
readonlyfile:string
File path
loc.line¶
readonlyline:number
Line number (1-indexed)
loc.offset?¶
readonlyoptionaloffset?:number
Byte offset from start of file
type¶
readonlytype:"ValueReplacement"
Node type discriminator
value¶
readonlyvalue: {loc: {column:number;file:string;line:number;offset?:number; };type:"ScalarValueNode";value:PrimitiveValue; } | {elements: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ArrayValueNode"; } | {loc: {column:number;file:string;line:number;offset?:number; };type:"TextValueNode";value:string; } | {loc: {column:number;file:string;line:number;offset?:number; };name:string;type:"TemplateValueNode"; } | {expression: {constraints?: {max?:number;min?:number;options?: readonly (PrimitiveValue| { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... | readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | { ...; } | { ...; } | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; reado... | readonly (PrimitiveValue | { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; readonly loc: { ...; }; } | readonly (Primitive... | {loc: ...;type: ...;value: ...; } | {[key: ...]: ...; } | {loc: ...;name: ...;type: ...; })[]; };kind:"string"|"number"|"boolean"|"enum"|"range"|"list";loc: {column:number;file:string;line:number;offset?:number; };params?: readonly (PrimitiveValue| { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... | readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | { ...; } | { ...; } | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; reado... | readonly (PrimitiveValue | { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; readonly loc: { ...; }; } | readonly (Primitive... | {loc: {column:number;file:string;line:number;offset?: ... | ...; };type:"TextContent";value:string; } | {[key:string]: PrimitiveValue | { readonly type: "TypeExpression"; readonly kind: "string" | "number" | "boolean" | "enum" | "range" | "list"; readonly params?: readonly (PrimitiveValue | ... 4 more ... | { ...; })[] | undefined; readonly constraints?: { ...; } | undefined; readonly loc: { ...; }; } | readonly (PrimitiveValue | .....; } | {loc: {column:number;file:string;line:number;offset?: ... | ...; };name:string;type:"TemplateExpression"; })[];type:"TypeExpression"; };loc: {column:number;file:string;line:number;offset?:number; };type:"TypeExpressionValueNode"; } | {fields: readonlyobject[];loc: {column:number;file:string;line:number;offset?:number; };type:"ObjectValueNode"; }
targetPath¶
readonlytargetPath:string
Defined in: core/src/types/ast.ts:638
type¶
readonlytype:"CanonicalOverrideBlock"
Defined in: core/src/types/ast.ts:637