@prisma/orm-family-sql 8.0.0-rc.8-dev.17 → 8.0.0-rc.8-dev.19

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.
Files changed (30) hide show
  1. package/dist/contract-psl.mjs +1 -1
  2. package/dist/contract-psl__attribute-specs.d.mts +77 -0
  3. package/dist/contract-psl__attribute-specs.d.mts.map +1 -0
  4. package/dist/contract-psl__attribute-specs.mjs +2 -0
  5. package/dist/contract-psl__provider.mjs +1 -1
  6. package/dist/contract-psl__provider.mjs.map +1 -1
  7. package/dist/{control-CyOPr5No.d.mts → control-CCQP4VFK.d.mts} +69 -1
  8. package/dist/control-CCQP4VFK.d.mts.map +1 -0
  9. package/dist/{control-CK4QOli_.mjs → control-DheONC4E.mjs} +4 -2
  10. package/dist/control-DheONC4E.mjs.map +1 -0
  11. package/dist/family.d.mts +2 -1
  12. package/dist/family.mjs +1 -1
  13. package/dist/family__control.d.mts +1 -1
  14. package/dist/family__control.mjs +1 -1
  15. package/dist/family__pack.d.mts +2 -249
  16. package/dist/family__pack.mjs +3 -1
  17. package/dist/family__pack.mjs.map +1 -1
  18. package/dist/index-DrcrDbOI-BlARY_6q.d.mts +536 -0
  19. package/dist/index-DrcrDbOI-BlARY_6q.d.mts.map +1 -0
  20. package/dist/{interpreter-RTglKUpM-B-iOLic9.mjs → interpreter-DQIdQxL1-DyNYhhep.mjs} +67 -296
  21. package/dist/interpreter-DQIdQxL1-DyNYhhep.mjs.map +1 -0
  22. package/dist/pack-Chia4J0l.d.mts +317 -0
  23. package/dist/pack-Chia4J0l.d.mts.map +1 -0
  24. package/dist/sql-attribute-specs-Cr8_u9ma-ENY2C_np.mjs +281 -0
  25. package/dist/sql-attribute-specs-Cr8_u9ma-ENY2C_np.mjs.map +1 -0
  26. package/package.json +18 -17
  27. package/dist/control-CK4QOli_.mjs.map +0 -1
  28. package/dist/control-CyOPr5No.d.mts.map +0 -1
  29. package/dist/family__pack.d.mts.map +0 -1
  30. package/dist/interpreter-RTglKUpM-B-iOLic9.mjs.map +0 -1
@@ -0,0 +1,536 @@
1
+ import "@prisma/orm-framework/components/authoring";
2
+ import { Result } from "@prisma/orm-framework/utils/result";
3
+ import "@prisma/orm-framework/components/codec";
4
+ import { ControlMutationDefaultRegistry } from "@prisma/orm-framework/components/control";
5
+ import { PslDiagnostic, PslExtensionBlock, PslSpan } from "@prisma/orm-framework/components/psl-ast";
6
+ import "@prisma/orm-framework/utils/types";
7
+ //#region ../../../2-sql/9-family/dist/index-DrcrDbOI.d.mts
8
+ //#region ../../1-framework/2-authoring/psl-parser/dist/tokenizer-DcYI0Xrq.d.mts
9
+ //#region src/tokenizer.d.ts
10
+ type TokenKind = 'Ident' | 'StringLiteral' | 'NumberLiteral' | 'At' | 'DoubleAt' | 'LBrace' | 'RBrace' | 'LParen' | 'RParen' | 'LBracket' | 'RBracket' | 'Equals' | 'Question' | 'Dot' | 'Comma' | 'Colon' | 'Whitespace' | 'Newline' | 'Comment' | 'Invalid' | 'Eof';
11
+ interface Token {
12
+ readonly kind: TokenKind;
13
+ readonly text: string;
14
+ }
15
+ //#endregion
16
+ //#region ../../1-framework/2-authoring/psl-parser/dist/parse-0ZJjj_2N.d.mts
17
+ //#region src/source-file.d.ts
18
+ interface Position {
19
+ readonly line: number;
20
+ readonly character: number;
21
+ }
22
+ declare class SourceFile {
23
+ #private;
24
+ constructor(text: string);
25
+ get text(): string;
26
+ get length(): number;
27
+ get lineCount(): number;
28
+ lineStartOffsets(): readonly number[];
29
+ lineStartOffset(line: number): number;
30
+ lineEndOffset(line: number): number;
31
+ positionAt(offset: number): Position;
32
+ offsetAt(position: Position): number;
33
+ }
34
+ //#endregion
35
+ //#region src/syntax/syntax-kind.d.ts
36
+ 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';
37
+ //#endregion
38
+ //#region src/syntax/green.d.ts
39
+ interface GreenToken {
40
+ readonly type: 'token';
41
+ readonly kind: TokenKind;
42
+ readonly text: string;
43
+ }
44
+ interface GreenNode {
45
+ readonly type: 'node';
46
+ readonly kind: SyntaxKind;
47
+ readonly children: ReadonlyArray<GreenElement>;
48
+ readonly textLength: number;
49
+ }
50
+ type GreenElement = GreenNode | GreenToken;
51
+ //#endregion
52
+ //#region src/syntax/red.d.ts
53
+ /**
54
+ * A token in the red tree. Unlike the green-layer {@link Token} (kind + text
55
+ * only), a red token also carries its absolute `offset` within the source and a
56
+ * link back to its `parent` {@link SyntaxNode}, so a cursor anchored on a token
57
+ * can walk outward (parent, previous/next token, siblings) without re-scanning
58
+ * from the document root.
59
+ */
60
+ declare class SyntaxToken implements Token {
61
+ readonly green: GreenToken;
62
+ readonly kind: TokenKind;
63
+ readonly text: string;
64
+ readonly offset: number;
65
+ readonly parent: SyntaxNode;
66
+ /** Position within the parent's children, enabling O(1) sibling navigation without rescanning the green layer. */
67
+ readonly index: number;
68
+ constructor(green: GreenToken, offset: number, parent: SyntaxNode, index: number);
69
+ get textLength(): number;
70
+ get endOffset(): number;
71
+ /** Whether `offset` falls within this token, inclusive of both ends. */
72
+ isInside(offset: number): boolean;
73
+ isOutside(offset: number): boolean;
74
+ /** The sibling element immediately after this token within its parent. */
75
+ get nextSiblingOrToken(): SyntaxElement | undefined;
76
+ /** The sibling element immediately before this token within its parent. */
77
+ get prevSiblingOrToken(): SyntaxElement | undefined;
78
+ /** The next token in document order, crossing node boundaries. */
79
+ get nextToken(): SyntaxToken | undefined;
80
+ /** The previous token in document order, crossing node boundaries. */
81
+ get prevToken(): SyntaxToken | undefined;
82
+ }
83
+ type SyntaxElement = SyntaxNode | SyntaxToken;
84
+ declare class TokenAtOffset {
85
+ #private;
86
+ private constructor();
87
+ static none(): TokenAtOffset;
88
+ static single(token: SyntaxToken): TokenAtOffset;
89
+ static between(left: SyntaxToken, right: SyntaxToken): TokenAtOffset;
90
+ get isEmpty(): boolean;
91
+ get isBetween(): boolean;
92
+ leftBiased(): SyntaxToken | undefined;
93
+ rightBiased(): SyntaxToken | undefined;
94
+ }
95
+ declare class SyntaxNode {
96
+ readonly green: GreenNode;
97
+ readonly offset: number;
98
+ readonly parent: SyntaxNode | undefined;
99
+ /** Position within the parent's children, enabling O(1) sibling navigation without rescanning the green layer. */
100
+ readonly index: number;
101
+ constructor(green: GreenNode, offset: number, parent: SyntaxNode | undefined, index: number);
102
+ get kind(): SyntaxKind;
103
+ get textLength(): number;
104
+ get endOffset(): number;
105
+ /** Whether `offset` falls within this node, inclusive of both ends. */
106
+ isInside(offset: number): boolean;
107
+ isOutside(offset: number): boolean;
108
+ get firstChild(): SyntaxElement | undefined;
109
+ get lastChild(): SyntaxElement | undefined;
110
+ get nextSibling(): SyntaxElement | undefined;
111
+ get prevSibling(): SyntaxElement | undefined;
112
+ /** The sibling element immediately after this node within its parent. */
113
+ get nextSiblingOrToken(): SyntaxElement | undefined;
114
+ /** The sibling element immediately before this node within its parent. */
115
+ get prevSiblingOrToken(): SyntaxElement | undefined;
116
+ /** The first token in this subtree (depth-first), or `undefined` if empty. */
117
+ get firstToken(): SyntaxToken | undefined;
118
+ /** The last token in this subtree (depth-first), or `undefined` if empty. */
119
+ get lastToken(): SyntaxToken | undefined;
120
+ children(): Iterable<SyntaxElement>;
121
+ childNodes(): Iterable<SyntaxNode>;
122
+ ancestors(): Iterable<SyntaxNode>;
123
+ /** The nearest match, testing this node itself before walking its ancestors. */
124
+ findAncestor<T>(cast: (node: SyntaxNode) => T | undefined): T | undefined;
125
+ descendants(): Iterable<SyntaxElement>;
126
+ tokens(): Iterable<SyntaxToken>;
127
+ /**
128
+ * The token(s) at `offset`. The between-two-tokens case (offset exactly on a
129
+ * token seam) is represented explicitly so callers can left/right bias.
130
+ */
131
+ tokenAtOffset(offset: number): TokenAtOffset;
132
+ /**
133
+ * The smallest element fully containing the range `[start, end]`. At a seam
134
+ * (and for empty ranges) the left-hand element is preferred, matching
135
+ * {@link containsOffset}'s inclusive span.
136
+ */
137
+ coveringElement(start: number, end: number): SyntaxElement;
138
+ }
139
+ //#endregion
140
+ //#region src/syntax/ast-helpers.d.ts
141
+ interface AstNode {
142
+ readonly syntax: SyntaxNode;
143
+ }
144
+ interface BracedBlock extends AstNode {
145
+ lbrace(): SyntaxToken | undefined;
146
+ rbrace(): SyntaxToken | undefined;
147
+ }
148
+ //#endregion
149
+ //#region src/syntax/ast/identifier.d.ts
150
+ declare class IdentifierAst implements AstNode {
151
+ readonly syntax: SyntaxNode;
152
+ constructor(syntax: SyntaxNode);
153
+ token(): SyntaxToken | undefined;
154
+ name(): string | undefined;
155
+ static cast(node: SyntaxNode): IdentifierAst | undefined;
156
+ }
157
+ //#endregion
158
+ //#region src/syntax/ast/qualified-name.d.ts
159
+ /** A namespace-qualified name, e.g. `pgvector.Vector` or `supabase:auth.User`. */
160
+ declare class QualifiedNameAst implements AstNode {
161
+ #private;
162
+ readonly syntax: SyntaxNode;
163
+ constructor(syntax: SyntaxNode);
164
+ colon(): SyntaxToken | undefined;
165
+ dot(): SyntaxToken | undefined;
166
+ space(): IdentifierAst | undefined;
167
+ namespace(): IdentifierAst | undefined;
168
+ identifier(): IdentifierAst | undefined;
169
+ /**
170
+ * Every identifier segment, in source order. A bare `Vector` yields
171
+ * `['Vector']`; a qualified `pgvector.Vector` yields `['pgvector', 'Vector']`.
172
+ */
173
+ path(): readonly string[];
174
+ /** True iff this is a single unqualified identifier whose text equals `name`. */
175
+ isSimpleName(name: string): boolean;
176
+ /**
177
+ * Flags a malformed name with more qualifier segments than allowed (a second
178
+ * `:`-space or a second `.`-namespace).
179
+ */
180
+ isOverQualified(): boolean;
181
+ static cast(node: SyntaxNode): QualifiedNameAst | undefined;
182
+ }
183
+ //#endregion
184
+ //#region src/syntax/ast/expressions.d.ts
185
+ declare class FunctionCallAst implements AstNode {
186
+ readonly syntax: SyntaxNode;
187
+ constructor(syntax: SyntaxNode);
188
+ /** The qualified-name callee, or `undefined` when identifier segments sit directly under the node. */
189
+ name(): QualifiedNameAst | undefined;
190
+ /**
191
+ * The dotted call path, in source order. A bare `Vector(…)` yields
192
+ * `['Vector']`; a namespace-qualified `pgvector.Vector(…)` yields
193
+ * `['pgvector', 'Vector']`. Empty when the call carries no identifier.
194
+ */
195
+ path(): readonly string[];
196
+ lparen(): SyntaxToken | undefined;
197
+ rparen(): SyntaxToken | undefined;
198
+ args(): Iterable<AttributeArgAst>;
199
+ static cast(node: SyntaxNode): FunctionCallAst | undefined;
200
+ }
201
+ declare class ArrayLiteralAst implements AstNode {
202
+ readonly syntax: SyntaxNode;
203
+ constructor(syntax: SyntaxNode);
204
+ lbracket(): SyntaxToken | undefined;
205
+ rbracket(): SyntaxToken | undefined;
206
+ elements(): Iterable<ExpressionAst>;
207
+ static cast(node: SyntaxNode): ArrayLiteralAst | undefined;
208
+ }
209
+ declare class StringLiteralExprAst implements AstNode {
210
+ readonly syntax: SyntaxNode;
211
+ constructor(syntax: SyntaxNode);
212
+ token(): SyntaxToken | undefined;
213
+ value(): string | undefined;
214
+ static cast(node: SyntaxNode): StringLiteralExprAst | undefined;
215
+ }
216
+ declare class NumberLiteralExprAst implements AstNode {
217
+ readonly syntax: SyntaxNode;
218
+ constructor(syntax: SyntaxNode);
219
+ token(): SyntaxToken | undefined;
220
+ value(): number | undefined;
221
+ static cast(node: SyntaxNode): NumberLiteralExprAst | undefined;
222
+ }
223
+ declare class BooleanLiteralExprAst implements AstNode {
224
+ readonly syntax: SyntaxNode;
225
+ constructor(syntax: SyntaxNode);
226
+ token(): SyntaxToken | undefined;
227
+ value(): boolean | undefined;
228
+ static cast(node: SyntaxNode): BooleanLiteralExprAst | undefined;
229
+ }
230
+ declare class ObjectLiteralExprAst implements AstNode {
231
+ readonly syntax: SyntaxNode;
232
+ constructor(syntax: SyntaxNode);
233
+ lbrace(): SyntaxToken | undefined;
234
+ rbrace(): SyntaxToken | undefined;
235
+ fields(): Iterable<ObjectFieldAst>;
236
+ static cast(node: SyntaxNode): ObjectLiteralExprAst | undefined;
237
+ }
238
+ declare class ObjectFieldAst implements AstNode {
239
+ readonly syntax: SyntaxNode;
240
+ constructor(syntax: SyntaxNode);
241
+ key(): IdentifierAst | undefined;
242
+ /**
243
+ * The field's logical key name, unquoted. An identifier key (`length:`) yields
244
+ * its text; a string-literal key (`"length":`) yields the decoded string.
245
+ * `undefined` when the field carries no key node.
246
+ */
247
+ keyName(): string | undefined;
248
+ colon(): SyntaxToken | undefined;
249
+ value(): ExpressionAst | undefined;
250
+ static cast(node: SyntaxNode): ObjectFieldAst | undefined;
251
+ }
252
+ type ExpressionAst = FunctionCallAst | ArrayLiteralAst | StringLiteralExprAst | NumberLiteralExprAst | BooleanLiteralExprAst | ObjectLiteralExprAst | IdentifierAst;
253
+ declare class AttributeArgAst implements AstNode {
254
+ readonly syntax: SyntaxNode;
255
+ constructor(syntax: SyntaxNode);
256
+ name(): IdentifierAst | undefined;
257
+ colon(): SyntaxToken | undefined;
258
+ value(): ExpressionAst | undefined;
259
+ static cast(node: SyntaxNode): AttributeArgAst | undefined;
260
+ }
261
+ //#endregion
262
+ //#region src/syntax/ast/attributes.d.ts
263
+ declare class AttributeArgListAst implements AstNode {
264
+ readonly syntax: SyntaxNode;
265
+ constructor(syntax: SyntaxNode);
266
+ lparen(): SyntaxToken | undefined;
267
+ rparen(): SyntaxToken | undefined;
268
+ args(): Iterable<AttributeArgAst>;
269
+ static cast(node: SyntaxNode): AttributeArgListAst | undefined;
270
+ }
271
+ declare class FieldAttributeAst implements AstNode {
272
+ readonly syntax: SyntaxNode;
273
+ constructor(syntax: SyntaxNode);
274
+ at(): SyntaxToken | undefined;
275
+ name(): QualifiedNameAst | undefined;
276
+ argList(): AttributeArgListAst | undefined;
277
+ static cast(node: SyntaxNode): FieldAttributeAst | undefined;
278
+ }
279
+ declare class ModelAttributeAst implements AstNode {
280
+ readonly syntax: SyntaxNode;
281
+ constructor(syntax: SyntaxNode);
282
+ doubleAt(): SyntaxToken | undefined;
283
+ name(): QualifiedNameAst | undefined;
284
+ argList(): AttributeArgListAst | undefined;
285
+ static cast(node: SyntaxNode): ModelAttributeAst | undefined;
286
+ }
287
+ //#endregion
288
+ //#region src/syntax/ast/type-annotation.d.ts
289
+ declare class TypeAnnotationAst implements AstNode {
290
+ readonly syntax: SyntaxNode;
291
+ constructor(syntax: SyntaxNode);
292
+ /** The annotation's reference, doubling as the constructor callee when an {@link argList} follows. */
293
+ name(): QualifiedNameAst | undefined;
294
+ /** Present when the annotation is a constructor (`Vector(1536)`) rather than a plain reference. */
295
+ argList(): AttributeArgListAst | undefined;
296
+ isConstructor(): boolean;
297
+ lbracket(): SyntaxToken | undefined;
298
+ rbracket(): SyntaxToken | undefined;
299
+ questionMark(): SyntaxToken | undefined;
300
+ isList(): boolean;
301
+ isOptional(): boolean;
302
+ static cast(node: SyntaxNode): TypeAnnotationAst | undefined;
303
+ }
304
+ //#endregion
305
+ //#region src/syntax/ast/declarations.d.ts
306
+ /**
307
+ * What may appear inside a `namespace` block: models, composite types, and
308
+ * extension (block) declarations. `types {}` blocks and nested `namespace`
309
+ * blocks are document-only, so they are not namespace members.
310
+ */
311
+ type NamespaceMemberAst = ModelDeclarationAst | CompositeTypeDeclarationAst | GenericBlockDeclarationAst;
312
+ type BlockMemberAst = FieldDeclarationAst | ModelAttributeAst;
313
+ type GenericBlockMemberAst = KeyValuePairAst | ModelAttributeAst;
314
+ declare class ModelDeclarationAst implements BracedBlock {
315
+ readonly syntax: SyntaxNode;
316
+ constructor(syntax: SyntaxNode);
317
+ keyword(): SyntaxToken | undefined;
318
+ name(): IdentifierAst | undefined;
319
+ lbrace(): SyntaxToken | undefined;
320
+ rbrace(): SyntaxToken | undefined;
321
+ fields(): Iterable<FieldDeclarationAst>;
322
+ attributes(): Iterable<ModelAttributeAst>;
323
+ members(): Iterable<BlockMemberAst>;
324
+ static cast(node: SyntaxNode): ModelDeclarationAst | undefined;
325
+ }
326
+ declare class CompositeTypeDeclarationAst implements BracedBlock {
327
+ readonly syntax: SyntaxNode;
328
+ constructor(syntax: SyntaxNode);
329
+ keyword(): SyntaxToken | undefined;
330
+ name(): IdentifierAst | undefined;
331
+ lbrace(): SyntaxToken | undefined;
332
+ rbrace(): SyntaxToken | undefined;
333
+ fields(): Iterable<FieldDeclarationAst>;
334
+ attributes(): Iterable<ModelAttributeAst>;
335
+ members(): Iterable<BlockMemberAst>;
336
+ static cast(node: SyntaxNode): CompositeTypeDeclarationAst | undefined;
337
+ }
338
+ declare class NamespaceDeclarationAst implements BracedBlock {
339
+ readonly syntax: SyntaxNode;
340
+ constructor(syntax: SyntaxNode);
341
+ keyword(): SyntaxToken | undefined;
342
+ name(): IdentifierAst | undefined;
343
+ lbrace(): SyntaxToken | undefined;
344
+ rbrace(): SyntaxToken | undefined;
345
+ declarations(): Iterable<NamespaceMemberAst>;
346
+ static cast(node: SyntaxNode): NamespaceDeclarationAst | undefined;
347
+ }
348
+ declare class GenericBlockDeclarationAst implements BracedBlock {
349
+ readonly syntax: SyntaxNode;
350
+ constructor(syntax: SyntaxNode);
351
+ keyword(): SyntaxToken | undefined;
352
+ name(): IdentifierAst | undefined;
353
+ lbrace(): SyntaxToken | undefined;
354
+ rbrace(): SyntaxToken | undefined;
355
+ entries(): Iterable<KeyValuePairAst>;
356
+ attributes(): Iterable<ModelAttributeAst>;
357
+ members(): Iterable<GenericBlockMemberAst>;
358
+ static cast(node: SyntaxNode): GenericBlockDeclarationAst | undefined;
359
+ }
360
+ declare class KeyValuePairAst implements AstNode {
361
+ readonly syntax: SyntaxNode;
362
+ constructor(syntax: SyntaxNode);
363
+ key(): IdentifierAst | undefined;
364
+ equals(): SyntaxToken | undefined;
365
+ value(): ExpressionAst | undefined;
366
+ static cast(node: SyntaxNode): KeyValuePairAst | undefined;
367
+ }
368
+ declare class FieldDeclarationAst implements AstNode {
369
+ readonly syntax: SyntaxNode;
370
+ constructor(syntax: SyntaxNode);
371
+ name(): IdentifierAst | undefined;
372
+ typeAnnotation(): TypeAnnotationAst | undefined;
373
+ attributes(): Iterable<FieldAttributeAst>;
374
+ static cast(node: SyntaxNode): FieldDeclarationAst | undefined;
375
+ }
376
+ declare class NamedTypeDeclarationAst implements AstNode {
377
+ readonly syntax: SyntaxNode;
378
+ constructor(syntax: SyntaxNode);
379
+ name(): IdentifierAst | undefined;
380
+ equals(): SyntaxToken | undefined;
381
+ typeAnnotation(): TypeAnnotationAst | undefined;
382
+ attributes(): Iterable<FieldAttributeAst>;
383
+ static cast(node: SyntaxNode): NamedTypeDeclarationAst | undefined;
384
+ }
385
+ //#endregion
386
+ //#region ../../1-framework/2-authoring/psl-parser/dist/symbol-table-CZ7EVCTL.d.mts
387
+ //#region src/resolve.d.ts
388
+ interface ResolvedAttributeArg {
389
+ readonly kind: 'positional' | 'named';
390
+ readonly name?: string;
391
+ readonly value: string;
392
+ readonly expression?: ExpressionAst;
393
+ readonly span: PslSpan;
394
+ }
395
+ interface ResolvedAttribute {
396
+ readonly name: string;
397
+ readonly args: readonly ResolvedAttributeArg[];
398
+ readonly span: PslSpan;
399
+ }
400
+ interface ResolvedTypeConstructorCall {
401
+ readonly path: readonly string[];
402
+ readonly args: readonly ResolvedAttributeArg[];
403
+ readonly span: PslSpan;
404
+ }
405
+ //#endregion
406
+ //#region src/symbol-table.d.ts
407
+ interface SymbolTable {
408
+ readonly topLevel: TopLevelScope;
409
+ }
410
+ interface TopLevelScope {
411
+ readonly namespaces: Record<string, NamespaceSymbol>;
412
+ readonly namedTypes: Record<string, NamedTypeSymbol>;
413
+ readonly blocks: Record<string, BlockSymbol>;
414
+ readonly models: Record<string, ModelSymbol>;
415
+ readonly compositeTypes: Record<string, CompositeTypeSymbol>;
416
+ }
417
+ interface NamespaceSymbol {
418
+ readonly kind: 'namespace';
419
+ readonly name: string;
420
+ readonly node: NamespaceDeclarationAst;
421
+ readonly span: PslSpan;
422
+ readonly models: Record<string, ModelSymbol>;
423
+ readonly compositeTypes: Record<string, CompositeTypeSymbol>;
424
+ readonly blocks: Record<string, BlockSymbol>;
425
+ }
426
+ interface ModelSymbol {
427
+ readonly kind: 'model';
428
+ readonly name: string;
429
+ readonly node: ModelDeclarationAst;
430
+ readonly span: PslSpan;
431
+ readonly fields: Record<string, FieldSymbol>;
432
+ readonly attributes: readonly ResolvedAttribute[];
433
+ }
434
+ interface CompositeTypeSymbol {
435
+ readonly kind: 'compositeType';
436
+ readonly name: string;
437
+ readonly node: CompositeTypeDeclarationAst;
438
+ readonly span: PslSpan;
439
+ readonly fields: Record<string, FieldSymbol>;
440
+ readonly attributes: readonly ResolvedAttribute[];
441
+ }
442
+ interface BlockSymbol {
443
+ readonly kind: 'block';
444
+ readonly name: string;
445
+ readonly keyword: string;
446
+ readonly node: GenericBlockDeclarationAst;
447
+ readonly span: PslSpan;
448
+ /** Resolved once so consumers do not independently classify block parameters. */
449
+ readonly block: PslExtensionBlock;
450
+ }
451
+ interface ResolvedNamedTypeBinding {
452
+ readonly baseType?: string;
453
+ readonly typeConstructor?: ResolvedTypeConstructorCall;
454
+ readonly isConstructor: boolean;
455
+ readonly attributes: readonly ResolvedAttribute[];
456
+ }
457
+ /**
458
+ * A `types {}` binding, collected without classification: whether the binding
459
+ * refines a target scalar is pronounced by the interpreter
460
+ * (`resolveNamedTypeDeclarations`), not by the family-blind symbol table.
461
+ */
462
+ interface NamedTypeSymbol extends ResolvedNamedTypeBinding {
463
+ readonly kind: 'namedType';
464
+ readonly name: string;
465
+ readonly node: NamedTypeDeclarationAst;
466
+ readonly span: PslSpan;
467
+ }
468
+ interface FieldSymbol {
469
+ readonly kind: 'field';
470
+ readonly name: string;
471
+ readonly node: FieldDeclarationAst;
472
+ readonly span: PslSpan;
473
+ readonly typeName: string;
474
+ readonly typeNamespaceId?: string;
475
+ readonly typeContractSpaceId?: string;
476
+ readonly optional: boolean;
477
+ readonly list: boolean;
478
+ readonly typeConstructor?: ResolvedTypeConstructorCall;
479
+ readonly attributes: readonly ResolvedAttribute[];
480
+ /** Prevents cascading unsupported-type diagnostics after invalid qualification. */
481
+ readonly malformedType?: boolean;
482
+ }
483
+ //#endregion
484
+ //#region ../../1-framework/2-authoring/psl-parser/dist/index.d.mts
485
+ //#endregion
486
+ //#region src/attribute-spec/types.d.ts
487
+ type AttributeLevel = 'field' | 'model' | 'block';
488
+ interface ArgType<T> {
489
+ readonly kind: string;
490
+ readonly label: string;
491
+ readonly _out?: T;
492
+ parse(arg: ExpressionAst, ctx: InterpretCtx): Result<T, readonly PslDiagnostic[]>;
493
+ }
494
+ interface InterpretCtx {
495
+ readonly level: AttributeLevel;
496
+ readonly sourceId: string;
497
+ readonly sourceFile: SourceFile;
498
+ readonly selfModel: ModelSymbol;
499
+ resolveReferencedModel(): ModelSymbol | undefined;
500
+ readonly field?: FieldSymbol;
501
+ }
502
+ type Param<T> = ArgType<T>;
503
+ interface PositionalParam<T = unknown> {
504
+ readonly key: string;
505
+ readonly type: Param<T>;
506
+ }
507
+ interface AttributeSpec<Out> {
508
+ readonly level: AttributeLevel;
509
+ readonly name: string;
510
+ readonly positional: readonly PositionalParam[];
511
+ readonly named: Readonly<Record<string, Param<unknown>>>;
512
+ /**
513
+ * Cross-argument validation after all arguments parse. `attributeNode` is
514
+ * the attribute's own AST node so refines can span-anchor their
515
+ * diagnostics at the attribute rather than the enclosing model.
516
+ */
517
+ readonly refine?: (parsed: Out, ctx: InterpretCtx, attributeNode: AstNode) => readonly PslDiagnostic[];
518
+ }
519
+ //#endregion
520
+ //#region src/attribute-spec/spec-context.d.ts
521
+ interface AttributeSpecContext {
522
+ readonly symbols: SymbolTable;
523
+ readonly model: ModelSymbol;
524
+ readonly controlMutationDefaults: ControlMutationDefaultRegistry;
525
+ }
526
+ interface FieldAttributeSpecContext extends AttributeSpecContext {
527
+ readonly field: FieldSymbol;
528
+ }
529
+ interface TypedFuncCall {
530
+ readonly fn: string;
531
+ readonly span: PslSpan;
532
+ readonly args: Readonly<Record<string, unknown>>;
533
+ }
534
+ //#endregion
535
+ export { FieldAttributeSpecContext as n, TypedFuncCall as r, AttributeSpec as t };
536
+ //# sourceMappingURL=index-DrcrDbOI-BlARY_6q.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DrcrDbOI-BlARY_6q.d.mts","names":[],"sources":["../../../../2-sql/9-family/dist/index-DrcrDbOI.d.mts"],"mappings":"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"}