import { $ as Range, H as SyntaxNode, T as ExpressionAst, b as FieldAttributeAst, c as DocumentAst, et as SourceFile, h as NamespaceDeclarationAst, l as FieldDeclarationAst, m as NamedTypeDeclarationAst, o as CompositeTypeDeclarationAst, p as ModelDeclarationAst, t as ParseDiagnostic, u as GenericBlockDeclarationAst, v as TypeAnnotationAst, x as ModelAttributeAst } from "./parse-Bl1gwWGn.mjs"; import { PslExtensionBlock, PslSpan } from "@prisma-next/framework-components/psl-ast"; import { AuthoringPslBlockDescriptorNamespace } from "@prisma-next/framework-components/authoring"; //#region src/resolve.d.ts interface ResolvedAttributeArg { readonly kind: 'positional' | 'named'; readonly name?: string; readonly value: string; readonly expression?: ExpressionAst; readonly span: PslSpan; } interface ResolvedAttribute { readonly name: string; readonly args: readonly ResolvedAttributeArg[]; readonly span: PslSpan; } interface ResolvedTypeConstructorCall { readonly path: readonly string[]; readonly args: readonly ResolvedAttributeArg[]; readonly span: PslSpan; } declare function readResolvedAttribute(attribute: FieldAttributeAst | ModelAttributeAst, sourceFile: SourceFile): ResolvedAttribute; declare function readResolvedAttributes(attributes: Iterable, sourceFile: SourceFile): readonly ResolvedAttribute[]; declare function readResolvedConstructorCall(annotation: TypeAnnotationAst | undefined, sourceFile: SourceFile): ResolvedTypeConstructorCall | undefined; declare function nodePslSpan(node: SyntaxNode, sourceFile: SourceFile): PslSpan; /** Unsupported-top-level-block diagnostics are anchored to the keyword token. */ declare function keywordPslSpan(node: SyntaxNode, keyword: string, sourceFile: SourceFile): PslSpan; declare function rangeToPslSpan(range: Range, sourceFile: SourceFile): PslSpan; //#endregion //#region src/symbol-table.d.ts interface SymbolTable { readonly topLevel: TopLevelScope; } interface TopLevelScope { readonly namespaces: Record; readonly scalars: Record; readonly typeAliases: Record; readonly blocks: Record; readonly models: Record; readonly compositeTypes: Record; } interface NamespaceSymbol { readonly kind: 'namespace'; readonly name: string; readonly node: NamespaceDeclarationAst; readonly span: PslSpan; readonly models: Record; readonly compositeTypes: Record; readonly blocks: Record; } interface ModelSymbol { readonly kind: 'model'; readonly name: string; readonly node: ModelDeclarationAst; readonly span: PslSpan; readonly fields: Record; readonly attributes: readonly ResolvedAttribute[]; } interface CompositeTypeSymbol { readonly kind: 'compositeType'; readonly name: string; readonly node: CompositeTypeDeclarationAst; readonly span: PslSpan; readonly fields: Record; readonly attributes: readonly ResolvedAttribute[]; } interface BlockSymbol { readonly kind: 'block'; readonly name: string; readonly keyword: string; readonly node: GenericBlockDeclarationAst; readonly span: PslSpan; /** Resolved once so consumers do not independently classify block parameters. */ readonly block: PslExtensionBlock; } interface ResolvedNamedTypeBinding { readonly baseType?: string; readonly typeConstructor?: ResolvedTypeConstructorCall; readonly isConstructor: boolean; readonly attributes: readonly ResolvedAttribute[]; } interface ScalarSymbol extends ResolvedNamedTypeBinding { readonly kind: 'scalar'; readonly name: string; readonly node: NamedTypeDeclarationAst; readonly span: PslSpan; } interface TypeAliasSymbol extends ResolvedNamedTypeBinding { readonly kind: 'typeAlias'; readonly name: string; readonly node: NamedTypeDeclarationAst; readonly span: PslSpan; } interface FieldSymbol { readonly kind: 'field'; readonly name: string; readonly node: FieldDeclarationAst; readonly span: PslSpan; readonly typeName: string; readonly typeNamespaceId?: string; readonly typeContractSpaceId?: string; readonly optional: boolean; readonly list: boolean; readonly typeConstructor?: ResolvedTypeConstructorCall; readonly attributes: readonly ResolvedAttribute[]; /** Prevents cascading unsupported-type diagnostics after invalid qualification. */ readonly malformedType?: boolean; } interface BuildSymbolTableOptions { readonly document: DocumentAst; readonly sourceFile: SourceFile; readonly scalarTypes: readonly string[]; readonly pslBlockDescriptors: AuthoringPslBlockDescriptorNamespace; } interface SymbolTableResult { readonly table: SymbolTable; readonly diagnostics: readonly ParseDiagnostic[]; } /** * Owns duplicate-declaration detection for all PSL scopes; downstream consumers * should consume first-wins symbols rather than re-emitting duplicate diagnostics. */ declare function buildSymbolTable(options: BuildSymbolTableOptions): SymbolTableResult; //#endregion export { readResolvedConstructorCall as S, keywordPslSpan as _, ModelSymbol as a, readResolvedAttribute as b, ScalarSymbol as c, TopLevelScope as d, TypeAliasSymbol as f, ResolvedTypeConstructorCall as g, ResolvedAttributeArg as h, FieldSymbol as i, SymbolTable as l, ResolvedAttribute as m, BuildSymbolTableOptions as n, NamespaceSymbol as o, buildSymbolTable as p, CompositeTypeSymbol as r, ResolvedNamedTypeBinding as s, BlockSymbol as t, SymbolTableResult as u, nodePslSpan as v, readResolvedAttributes as x, rangeToPslSpan as y }; //# sourceMappingURL=symbol-table-en_Bich3.d.mts.map