@prisma-next/psl-parser 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/syntax.d.mts CHANGED
@@ -1,7 +1,28 @@
1
1
  import { n as TokenKind, t as Token } from "./tokenizer-DcYI0Xrq.mjs";
2
+ import { PslDiagnosticCode } from "@prisma-next/framework-components/psl-ast";
2
3
 
4
+ //#region src/source-file.d.ts
5
+ interface Position {
6
+ readonly line: number;
7
+ readonly character: number;
8
+ }
9
+ interface Range {
10
+ readonly start: Position;
11
+ readonly end: Position;
12
+ }
13
+ declare class SourceFile {
14
+ #private;
15
+ constructor(text: string);
16
+ get text(): string;
17
+ get length(): number;
18
+ get lineCount(): number;
19
+ lineStartOffsets(): readonly number[];
20
+ positionAt(offset: number): Position;
21
+ offsetAt(position: Position): number;
22
+ }
23
+ //#endregion
3
24
  //#region src/syntax/syntax-kind.d.ts
4
- type SyntaxKind = 'Document' | 'ModelDeclaration' | 'EnumDeclaration' | 'CompositeTypeDeclaration' | 'Namespace' | 'TypesBlock' | 'BlockDeclaration' | 'FieldDeclaration' | 'EnumValueDeclaration' | 'NamedTypeDeclaration' | 'KeyValuePair' | 'FieldAttribute' | 'ModelAttribute' | 'AttributeArgList' | 'AttributeArg' | 'TypeAnnotation' | 'Identifier' | 'FunctionCall' | 'ArrayLiteral' | 'StringLiteralExpr' | 'NumberLiteralExpr' | 'BooleanLiteralExpr';
25
+ type SyntaxKind = 'Document' | 'ModelDeclaration' | 'CompositeTypeDeclaration' | 'Namespace' | 'TypesBlock' | 'GenericBlockDeclaration' | 'FieldDeclaration' | 'NamedTypeDeclaration' | 'KeyValuePair' | 'FieldAttribute' | 'ModelAttribute' | 'AttributeArgList' | 'AttributeArg' | 'TypeAnnotation' | 'Identifier' | 'QualifiedName' | 'FunctionCall' | 'ArrayLiteral' | 'StringLiteralExpr' | 'NumberLiteralExpr' | 'BooleanLiteralExpr' | 'ObjectLiteralExpr' | 'ObjectField';
5
26
  //#endregion
6
27
  //#region src/syntax/green.d.ts
7
28
  interface GreenToken {
@@ -55,20 +76,57 @@ interface AstNode {
55
76
  declare function findChildToken(node: SyntaxNode, kind: TokenKind): Token | undefined;
56
77
  declare function findFirstChild<T>(node: SyntaxNode, cast: (node: SyntaxNode) => T | undefined): T | undefined;
57
78
  declare function filterChildren<T>(node: SyntaxNode, cast: (node: SyntaxNode) => T | undefined): Iterable<T>;
79
+ /**
80
+ * Raw source text of a CST node, verbatim (quotes and brackets preserved). For
81
+ * the decoded value of a string literal, decode it instead.
82
+ */
83
+ declare function printSyntax(node: SyntaxNode): string;
58
84
  //#endregion
59
85
  //#region src/syntax/ast/identifier.d.ts
60
86
  declare class IdentifierAst implements AstNode {
61
87
  readonly syntax: SyntaxNode;
62
88
  constructor(syntax: SyntaxNode);
63
89
  token(): Token | undefined;
90
+ name(): string | undefined;
64
91
  static cast(node: SyntaxNode): IdentifierAst | undefined;
65
92
  }
66
93
  //#endregion
94
+ //#region src/syntax/ast/qualified-name.d.ts
95
+ /** A namespace-qualified name, e.g. `pgvector.Vector` or `supabase:auth.User`. */
96
+ declare class QualifiedNameAst implements AstNode {
97
+ #private;
98
+ readonly syntax: SyntaxNode;
99
+ constructor(syntax: SyntaxNode);
100
+ colon(): Token | undefined;
101
+ dot(): Token | undefined;
102
+ space(): IdentifierAst | undefined;
103
+ namespace(): IdentifierAst | undefined;
104
+ identifier(): IdentifierAst | undefined;
105
+ /**
106
+ * Every identifier segment, in source order. A bare `Vector` yields
107
+ * `['Vector']`; a qualified `pgvector.Vector` yields `['pgvector', 'Vector']`.
108
+ */
109
+ path(): readonly string[];
110
+ /**
111
+ * Flags a malformed name with more qualifier segments than allowed (a second
112
+ * `:`-space or a second `.`-namespace).
113
+ */
114
+ isOverQualified(): boolean;
115
+ static cast(node: SyntaxNode): QualifiedNameAst | undefined;
116
+ }
117
+ //#endregion
67
118
  //#region src/syntax/ast/expressions.d.ts
68
119
  declare class FunctionCallAst implements AstNode {
69
120
  readonly syntax: SyntaxNode;
70
121
  constructor(syntax: SyntaxNode);
71
- name(): IdentifierAst | undefined;
122
+ /** The qualified-name callee, or `undefined` when identifier segments sit directly under the node. */
123
+ name(): QualifiedNameAst | undefined;
124
+ /**
125
+ * The dotted call path, in source order. A bare `Vector(…)` yields
126
+ * `['Vector']`; a namespace-qualified `pgvector.Vector(…)` yields
127
+ * `['pgvector', 'Vector']`. Empty when the call carries no identifier.
128
+ */
129
+ path(): readonly string[];
72
130
  lparen(): Token | undefined;
73
131
  rparen(): Token | undefined;
74
132
  args(): Iterable<AttributeArgAst>;
@@ -103,7 +161,29 @@ declare class BooleanLiteralExprAst implements AstNode {
103
161
  value(): boolean | undefined;
104
162
  static cast(node: SyntaxNode): BooleanLiteralExprAst | undefined;
105
163
  }
106
- type ExpressionAst = FunctionCallAst | ArrayLiteralAst | StringLiteralExprAst | NumberLiteralExprAst | BooleanLiteralExprAst | IdentifierAst;
164
+ declare class ObjectLiteralExprAst implements AstNode {
165
+ readonly syntax: SyntaxNode;
166
+ constructor(syntax: SyntaxNode);
167
+ lbrace(): Token | undefined;
168
+ rbrace(): Token | undefined;
169
+ fields(): Iterable<ObjectFieldAst>;
170
+ static cast(node: SyntaxNode): ObjectLiteralExprAst | undefined;
171
+ }
172
+ declare class ObjectFieldAst implements AstNode {
173
+ readonly syntax: SyntaxNode;
174
+ constructor(syntax: SyntaxNode);
175
+ key(): IdentifierAst | undefined;
176
+ /**
177
+ * The field's logical key name, unquoted. An identifier key (`length:`) yields
178
+ * its text; a string-literal key (`"length":`) yields the decoded string.
179
+ * `undefined` when the field carries no key node.
180
+ */
181
+ keyName(): string | undefined;
182
+ colon(): Token | undefined;
183
+ value(): ExpressionAst | undefined;
184
+ static cast(node: SyntaxNode): ObjectFieldAst | undefined;
185
+ }
186
+ type ExpressionAst = FunctionCallAst | ArrayLiteralAst | StringLiteralExprAst | NumberLiteralExprAst | BooleanLiteralExprAst | ObjectLiteralExprAst | IdentifierAst;
107
187
  declare function castExpression(node: SyntaxNode): ExpressionAst | undefined;
108
188
  declare class AttributeArgAst implements AstNode {
109
189
  readonly syntax: SyntaxNode;
@@ -127,9 +207,7 @@ declare class FieldAttributeAst implements AstNode {
127
207
  readonly syntax: SyntaxNode;
128
208
  constructor(syntax: SyntaxNode);
129
209
  at(): Token | undefined;
130
- name(): IdentifierAst | undefined;
131
- dot(): Token | undefined;
132
- namespaceName(): IdentifierAst | undefined;
210
+ name(): QualifiedNameAst | undefined;
133
211
  argList(): AttributeArgListAst | undefined;
134
212
  static cast(node: SyntaxNode): FieldAttributeAst | undefined;
135
213
  }
@@ -137,22 +215,20 @@ declare class ModelAttributeAst implements AstNode {
137
215
  readonly syntax: SyntaxNode;
138
216
  constructor(syntax: SyntaxNode);
139
217
  doubleAt(): Token | undefined;
140
- name(): IdentifierAst | undefined;
218
+ name(): QualifiedNameAst | undefined;
141
219
  argList(): AttributeArgListAst | undefined;
142
220
  static cast(node: SyntaxNode): ModelAttributeAst | undefined;
143
221
  }
144
222
  //#endregion
145
223
  //#region src/syntax/ast/type-annotation.d.ts
146
224
  declare class TypeAnnotationAst implements AstNode {
147
- #private;
148
225
  readonly syntax: SyntaxNode;
149
226
  constructor(syntax: SyntaxNode);
150
- name(): IdentifierAst | undefined;
151
- colon(): Token | undefined;
152
- dot(): Token | undefined;
153
- spaceName(): IdentifierAst | undefined;
154
- namespaceName(): IdentifierAst | undefined;
155
- constructorCall(): FunctionCallAst | undefined;
227
+ /** The annotation's reference, doubling as the constructor callee when an {@link argList} follows. */
228
+ name(): QualifiedNameAst | undefined;
229
+ /** Present when the annotation is a constructor (`Vector(1536)`) rather than a plain reference. */
230
+ argList(): AttributeArgListAst | undefined;
231
+ isConstructor(): boolean;
156
232
  lbracket(): Token | undefined;
157
233
  rbracket(): Token | undefined;
158
234
  questionMark(): Token | undefined;
@@ -163,12 +239,11 @@ declare class TypeAnnotationAst implements AstNode {
163
239
  //#endregion
164
240
  //#region src/syntax/ast/declarations.d.ts
165
241
  /**
166
- * What may appear inside a `namespace` block: models, enums, composite types,
167
- * and extension (block) declarations. Mirrors what `parsePslDocument` accepts
168
- * in a namespace body. `types {}` blocks and nested `namespace` blocks are
169
- * document-only, so they are not namespace members.
242
+ * What may appear inside a `namespace` block: models, composite types, and
243
+ * extension (block) declarations. `types {}` blocks and nested `namespace`
244
+ * blocks are document-only, so they are not namespace members.
170
245
  */
171
- type NamespaceMemberAst = ModelDeclarationAst | EnumDeclarationAst | CompositeTypeDeclarationAst | BlockDeclarationAst;
246
+ type NamespaceMemberAst = ModelDeclarationAst | CompositeTypeDeclarationAst | GenericBlockDeclarationAst;
172
247
  declare class DocumentAst implements AstNode {
173
248
  readonly syntax: SyntaxNode;
174
249
  constructor(syntax: SyntaxNode);
@@ -186,17 +261,6 @@ declare class ModelDeclarationAst implements AstNode {
186
261
  attributes(): Iterable<ModelAttributeAst>;
187
262
  static cast(node: SyntaxNode): ModelDeclarationAst | undefined;
188
263
  }
189
- declare class EnumDeclarationAst implements AstNode {
190
- readonly syntax: SyntaxNode;
191
- constructor(syntax: SyntaxNode);
192
- keyword(): Token | undefined;
193
- name(): IdentifierAst | undefined;
194
- lbrace(): Token | undefined;
195
- rbrace(): Token | undefined;
196
- values(): Iterable<EnumValueDeclarationAst>;
197
- attributes(): Iterable<ModelAttributeAst>;
198
- static cast(node: SyntaxNode): EnumDeclarationAst | undefined;
199
- }
200
264
  declare class CompositeTypeDeclarationAst implements AstNode {
201
265
  readonly syntax: SyntaxNode;
202
266
  constructor(syntax: SyntaxNode);
@@ -227,7 +291,7 @@ declare class TypesBlockAst implements AstNode {
227
291
  declarations(): Iterable<NamedTypeDeclarationAst>;
228
292
  static cast(node: SyntaxNode): TypesBlockAst | undefined;
229
293
  }
230
- declare class BlockDeclarationAst implements AstNode {
294
+ declare class GenericBlockDeclarationAst implements AstNode {
231
295
  readonly syntax: SyntaxNode;
232
296
  constructor(syntax: SyntaxNode);
233
297
  keyword(): Token | undefined;
@@ -235,7 +299,8 @@ declare class BlockDeclarationAst implements AstNode {
235
299
  lbrace(): Token | undefined;
236
300
  rbrace(): Token | undefined;
237
301
  entries(): Iterable<KeyValuePairAst>;
238
- static cast(node: SyntaxNode): BlockDeclarationAst | undefined;
302
+ attributes(): Iterable<ModelAttributeAst>;
303
+ static cast(node: SyntaxNode): GenericBlockDeclarationAst | undefined;
239
304
  }
240
305
  declare class KeyValuePairAst implements AstNode {
241
306
  readonly syntax: SyntaxNode;
@@ -253,13 +318,6 @@ declare class FieldDeclarationAst implements AstNode {
253
318
  attributes(): Iterable<FieldAttributeAst>;
254
319
  static cast(node: SyntaxNode): FieldDeclarationAst | undefined;
255
320
  }
256
- declare class EnumValueDeclarationAst implements AstNode {
257
- readonly syntax: SyntaxNode;
258
- constructor(syntax: SyntaxNode);
259
- name(): IdentifierAst | undefined;
260
- attributes(): Iterable<FieldAttributeAst>;
261
- static cast(node: SyntaxNode): EnumValueDeclarationAst | undefined;
262
- }
263
321
  declare class NamedTypeDeclarationAst implements AstNode {
264
322
  readonly syntax: SyntaxNode;
265
323
  constructor(syntax: SyntaxNode);
@@ -270,6 +328,23 @@ declare class NamedTypeDeclarationAst implements AstNode {
270
328
  static cast(node: SyntaxNode): NamedTypeDeclarationAst | undefined;
271
329
  }
272
330
  //#endregion
331
+ //#region src/parse.d.ts
332
+ interface ParseDiagnostic {
333
+ readonly code: PslDiagnosticCode;
334
+ readonly message: string;
335
+ readonly range: Range;
336
+ }
337
+ interface ParseResult {
338
+ readonly document: DocumentAst;
339
+ readonly diagnostics: readonly ParseDiagnostic[];
340
+ readonly sourceFile: SourceFile;
341
+ }
342
+ /**
343
+ * Parses a full PSL document. Never throws — malformed input yields diagnostics
344
+ * and a recovered tree, not an exception.
345
+ */
346
+ declare function parse(source: string): ParseResult;
347
+ //#endregion
273
348
  //#region src/syntax/green-builder.d.ts
274
349
  declare class GreenNodeBuilder {
275
350
  #private;
@@ -278,5 +353,5 @@ declare class GreenNodeBuilder {
278
353
  finishNode(): GreenNode;
279
354
  }
280
355
  //#endregion
281
- export { ArrayLiteralAst, type AstNode, AttributeArgAst, AttributeArgListAst, BlockDeclarationAst, BooleanLiteralExprAst, CompositeTypeDeclarationAst, DocumentAst, EnumDeclarationAst, EnumValueDeclarationAst, type ExpressionAst, FieldAttributeAst, FieldDeclarationAst, FunctionCallAst, type GreenElement, type GreenNode, GreenNodeBuilder, type GreenToken, IdentifierAst, KeyValuePairAst, ModelAttributeAst, ModelDeclarationAst, NamedTypeDeclarationAst, NamespaceDeclarationAst, type NamespaceMemberAst, NumberLiteralExprAst, StringLiteralExprAst, type SyntaxElement, type SyntaxKind, SyntaxNode, type SyntaxToken, TypeAnnotationAst, TypesBlockAst, castExpression, createSyntaxTree, filterChildren, findChildToken, findFirstChild, greenNode, greenToken };
356
+ export { ArrayLiteralAst, type AstNode, AttributeArgAst, AttributeArgListAst, BooleanLiteralExprAst, CompositeTypeDeclarationAst, DocumentAst, type ExpressionAst, FieldAttributeAst, FieldDeclarationAst, FunctionCallAst, GenericBlockDeclarationAst, type GreenElement, type GreenNode, GreenNodeBuilder, type GreenToken, IdentifierAst, KeyValuePairAst, ModelAttributeAst, ModelDeclarationAst, NamedTypeDeclarationAst, NamespaceDeclarationAst, type NamespaceMemberAst, NumberLiteralExprAst, ObjectFieldAst, ObjectLiteralExprAst, type ParseDiagnostic, type ParseResult, type Position, QualifiedNameAst, type Range, SourceFile, StringLiteralExprAst, type SyntaxElement, type SyntaxKind, SyntaxNode, type SyntaxToken, TypeAnnotationAst, TypesBlockAst, castExpression, createSyntaxTree, filterChildren, findChildToken, findFirstChild, greenNode, greenToken, parse, printSyntax };
282
357
  //# sourceMappingURL=syntax.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"syntax.d.mts","names":[],"sources":["../src/syntax/syntax-kind.ts","../src/syntax/green.ts","../src/syntax/red.ts","../src/syntax/ast-helpers.ts","../src/syntax/ast/identifier.ts","../src/syntax/ast/expressions.ts","../src/syntax/ast/attributes.ts","../src/syntax/ast/type-annotation.ts","../src/syntax/ast/declarations.ts","../src/syntax/green-builder.ts"],"mappings":"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"}
1
+ {"version":3,"file":"syntax.d.mts","names":[],"sources":["../src/source-file.ts","../src/syntax/syntax-kind.ts","../src/syntax/green.ts","../src/syntax/red.ts","../src/syntax/ast-helpers.ts","../src/syntax/ast/identifier.ts","../src/syntax/ast/qualified-name.ts","../src/syntax/ast/expressions.ts","../src/syntax/ast/attributes.ts","../src/syntax/ast/type-annotation.ts","../src/syntax/ast/declarations.ts","../src/parse.ts","../src/syntax/green-builder.ts"],"mappings":"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"}