@prisma-next/framework-components 0.13.0-dev.27 → 0.13.0-dev.29
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/authoring.d.mts +1 -1
- package/dist/{codec-types-29q8imKF.d.mts → codec-types-yY3eSmi0.d.mts} +7 -1
- package/dist/codec-types-yY3eSmi0.d.mts.map +1 -0
- package/dist/codec.d.mts +1 -1
- package/dist/codec.mjs.map +1 -1
- package/dist/components.d.mts +1 -1
- package/dist/control.d.mts +4 -4
- package/dist/control.d.mts.map +1 -1
- package/dist/control.mjs +4 -1
- package/dist/control.mjs.map +1 -1
- package/dist/execution.d.mts +1 -1
- package/dist/{framework-authoring-Bs1Ld_qv.d.mts → framework-authoring-C0UK0DAr.d.mts} +3 -3
- package/dist/{framework-authoring-Bs1Ld_qv.d.mts.map → framework-authoring-C0UK0DAr.d.mts.map} +1 -1
- package/dist/{framework-components-CaZcLDks.d.mts → framework-components-qbWtCu6G.d.mts} +3 -3
- package/dist/{framework-components-CaZcLDks.d.mts.map → framework-components-qbWtCu6G.d.mts.map} +1 -1
- package/dist/{psl-ast-AiO_Vz54.d.mts → psl-ast-D5WPsvPp.d.mts} +10 -36
- package/dist/psl-ast-D5WPsvPp.d.mts.map +1 -0
- package/dist/psl-ast.d.mts +4 -4
- package/dist/psl-ast.mjs +7 -23
- package/dist/psl-ast.mjs.map +1 -1
- package/dist/runtime.d.mts +1 -1
- package/package.json +7 -7
- package/src/control/control-stack.ts +8 -0
- package/src/control/psl-ast.ts +6 -60
- package/src/shared/codec-descriptor.ts +5 -0
- package/src/shared/codec-types.ts +2 -0
- package/src/shared/psl-extension-block.ts +1 -1
- package/dist/codec-types-29q8imKF.d.mts.map +0 -1
- package/dist/psl-ast-AiO_Vz54.d.mts.map +0 -1
package/src/control/psl-ast.ts
CHANGED
|
@@ -133,30 +133,6 @@ export interface PslModel {
|
|
|
133
133
|
readonly comment?: string;
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
export interface PslEnumValue {
|
|
137
|
-
readonly kind: 'enumValue';
|
|
138
|
-
readonly name: string;
|
|
139
|
-
/**
|
|
140
|
-
* Optional storage label for the enum member, captured from a trailing
|
|
141
|
-
* `@map("...")` attribute on the member line. The parser populates this
|
|
142
|
-
* when the source PSL carries an explicit `@map`. Producers (e.g.
|
|
143
|
-
* `sqlSchemaIrToPslAst`) leave it unset; the printer emits `@map(...)`
|
|
144
|
-
* automatically when normalisation would change the printed member name
|
|
145
|
-
* (so an enum value `'in-progress'` becomes `inProgress @map("in-progress")`
|
|
146
|
-
* in PSL, preserving the round-trip).
|
|
147
|
-
*/
|
|
148
|
-
readonly mapName?: string;
|
|
149
|
-
readonly span: PslSpan;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
export interface PslEnum {
|
|
153
|
-
readonly kind: 'enum';
|
|
154
|
-
readonly name: string;
|
|
155
|
-
readonly values: readonly PslEnumValue[];
|
|
156
|
-
readonly attributes: readonly PslAttribute[];
|
|
157
|
-
readonly span: PslSpan;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
136
|
/**
|
|
161
137
|
* A reusable group of fields embedded in a model (a `type Name { … }` block) —
|
|
162
138
|
* e.g. a MongoDB embedded document or a Postgres composite type. Unlike
|
|
@@ -205,7 +181,7 @@ export interface PslTypesBlock {
|
|
|
205
181
|
export const UNSPECIFIED_PSL_NAMESPACE_ID = '__unspecified__';
|
|
206
182
|
|
|
207
183
|
/** A value in {@link PslNamespace.entries}: a built-in entity node or an extension-contributed {@link PslExtensionBlock}. */
|
|
208
|
-
export type PslNamespaceEntry = PslModel |
|
|
184
|
+
export type PslNamespaceEntry = PslModel | PslCompositeType | PslExtensionBlock;
|
|
209
185
|
|
|
210
186
|
/**
|
|
211
187
|
* A namespace block, or the parser's synthesised `__unspecified__` bucket for
|
|
@@ -223,8 +199,6 @@ export interface PslNamespace {
|
|
|
223
199
|
readonly entries: Readonly<Record<string, Readonly<Record<string, PslNamespaceEntry>>>>;
|
|
224
200
|
/** Built-in models, from `entries['model']`. Extension kinds: {@link namespacePslExtensionBlocks}. */
|
|
225
201
|
readonly models: readonly PslModel[];
|
|
226
|
-
/** Built-in enums, from `entries['enum']`. */
|
|
227
|
-
readonly enums: readonly PslEnum[];
|
|
228
202
|
/** Built-in composite types, from `entries['compositeType']`. */
|
|
229
203
|
readonly compositeTypes: readonly PslCompositeType[];
|
|
230
204
|
readonly span: PslSpan;
|
|
@@ -258,12 +232,6 @@ class PslNamespaceNode implements PslNamespace {
|
|
|
258
232
|
);
|
|
259
233
|
}
|
|
260
234
|
|
|
261
|
-
get enums(): readonly PslEnum[] {
|
|
262
|
-
return blindCast<readonly PslEnum[], 'entries[enum] holds only PslEnum by construction'>(
|
|
263
|
-
Object.values(this.entries['enum'] ?? {}),
|
|
264
|
-
);
|
|
265
|
-
}
|
|
266
|
-
|
|
267
235
|
get compositeTypes(): readonly PslCompositeType[] {
|
|
268
236
|
return blindCast<
|
|
269
237
|
readonly PslCompositeType[],
|
|
@@ -289,7 +257,6 @@ export function makePslNamespace(init: {
|
|
|
289
257
|
*/
|
|
290
258
|
export function makePslNamespaceEntries(
|
|
291
259
|
models: readonly PslModel[],
|
|
292
|
-
enums: readonly PslEnum[],
|
|
293
260
|
compositeTypes: readonly PslCompositeType[],
|
|
294
261
|
extensionBlocks: readonly PslExtensionBlock[],
|
|
295
262
|
): Readonly<Record<string, Readonly<Record<string, PslNamespaceEntry>>>> {
|
|
@@ -303,14 +270,6 @@ export function makePslNamespaceEntries(
|
|
|
303
270
|
container['model'] = Object.freeze(map);
|
|
304
271
|
}
|
|
305
272
|
|
|
306
|
-
if (enums.length > 0) {
|
|
307
|
-
const map: Record<string, PslEnum> = {};
|
|
308
|
-
for (const e of enums) {
|
|
309
|
-
map[e.name] = e;
|
|
310
|
-
}
|
|
311
|
-
container['enum'] = Object.freeze(map);
|
|
312
|
-
}
|
|
313
|
-
|
|
314
273
|
if (compositeTypes.length > 0) {
|
|
315
274
|
const map: Record<string, PslCompositeType> = {};
|
|
316
275
|
for (const ct of compositeTypes) {
|
|
@@ -353,17 +312,6 @@ export function flatPslModels(ast: PslDocumentAst): readonly PslModel[] {
|
|
|
353
312
|
);
|
|
354
313
|
}
|
|
355
314
|
|
|
356
|
-
/**
|
|
357
|
-
* Returns all enums from every namespace in document order.
|
|
358
|
-
*/
|
|
359
|
-
export function flatPslEnums(ast: PslDocumentAst): readonly PslEnum[] {
|
|
360
|
-
return ast.namespaces.flatMap((ns) =>
|
|
361
|
-
blindCast<PslEnum[], 'enum kind map contains only PslEnum by construction'>(
|
|
362
|
-
Object.values(ns.entries['enum'] ?? {}),
|
|
363
|
-
),
|
|
364
|
-
);
|
|
365
|
-
}
|
|
366
|
-
|
|
367
315
|
/**
|
|
368
316
|
* Returns all composite types from every namespace in document order.
|
|
369
317
|
*/
|
|
@@ -382,20 +330,18 @@ export function flatPslCompositeTypes(ast: PslDocumentAst): readonly PslComposit
|
|
|
382
330
|
* that is **not** in this set was contributed by an extension-block descriptor.
|
|
383
331
|
*
|
|
384
332
|
* Built-in keys match the PSL keyword used on each block type:
|
|
385
|
-
* `'model'`, `'
|
|
333
|
+
* `'model'`, `'compositeType'`. The `'enum'` keyword is claimed by the
|
|
334
|
+
* extension-block grammar via a registered descriptor, so `entries['enum']`
|
|
335
|
+
* holds `PslExtensionBlock` nodes and is returned by `namespacePslExtensionBlocks`.
|
|
386
336
|
*/
|
|
387
|
-
export const BUILTIN_PSL_KIND_KEYS: ReadonlySet<string> = new Set([
|
|
388
|
-
'model',
|
|
389
|
-
'enum',
|
|
390
|
-
'compositeType',
|
|
391
|
-
]);
|
|
337
|
+
export const BUILTIN_PSL_KIND_KEYS: ReadonlySet<string> = new Set(['model', 'compositeType']);
|
|
392
338
|
|
|
393
339
|
/**
|
|
394
340
|
* Returns all extension-contributed blocks in the given namespace, in
|
|
395
341
|
* insertion order (the order the parser encountered them in the source).
|
|
396
342
|
*
|
|
397
343
|
* Reads from `namespace.entries`, skipping the built-in kind keys
|
|
398
|
-
* (`'model'`, `'
|
|
344
|
+
* (`'model'`, `'compositeType'`). All remaining kind maps contain
|
|
399
345
|
* only `PslExtensionBlock` nodes by construction (see `makePslNamespaceEntries`).
|
|
400
346
|
*/
|
|
401
347
|
export function namespacePslExtensionBlocks(ns: PslNamespace): readonly PslExtensionBlock[] {
|
|
@@ -43,6 +43,8 @@ export interface CodecDescriptor<P = void> {
|
|
|
43
43
|
readonly isParameterized: boolean;
|
|
44
44
|
/** Emit-path string renderer for `contract.d.ts`. Returns the TypeScript output type expression for given params (e.g. `Vector<1536>`). Optional; absent renderers cause the emitter to fall back to the codec's base output type. Non-parameterized codecs typically omit it. */
|
|
45
45
|
readonly renderOutputType?: (params: P) => string | undefined;
|
|
46
|
+
/** Emit-path string renderer for the `contract.d.ts` *input* position (create/update values). Returns the TypeScript input type expression for given params. Optional; absent renderers fall back to the codec's base input type. A codec supplies this when its write type is narrower than the generic codec input — e.g. an enum whose input should be the literal member union, not `string`. */
|
|
47
|
+
readonly renderInputType?: (params: P) => string | undefined;
|
|
46
48
|
/** The curried higher-order codec. For non-parameterized codecs, the factory is constant — every call returns the same shared codec instance. For parameterized codecs, the factory is called once per `storage.types` instance (or once per inline-`typeParams` column), with `ctx` carrying the column set the resulting codec serves. */
|
|
47
49
|
readonly factory: (params: P) => (ctx: CodecInstanceContext) => Codec;
|
|
48
50
|
}
|
|
@@ -78,6 +80,9 @@ export abstract class CodecDescriptorImpl<TParams = void> implements CodecDescri
|
|
|
78
80
|
/** Optional emit-path string renderer for `contract.d.ts`. Returns the TypeScript output type expression for the given params (e.g. `Vector<1536>`). Non-parameterized codecs typically omit it. */
|
|
79
81
|
renderOutputType?(params: TParams): string | undefined;
|
|
80
82
|
|
|
83
|
+
/** Optional emit-path string renderer for the `contract.d.ts` input position. Returns the TypeScript input type expression for the given params; supplied when the write type is narrower than the generic codec input (e.g. an enum's literal member union). */
|
|
84
|
+
renderInputType?(params: TParams): string | undefined;
|
|
85
|
+
|
|
81
86
|
/**
|
|
82
87
|
* Materialize a curried codec factory for the given params. Concrete subclasses override with a typed return type (e.g. `factory<N>(params: { length: N }): (ctx) => VectorCodec<N>`); per-codec helpers read the typed return at the *direct* call site, which is what preserves method-level generics. Type extraction (e.g. `ReturnType<D['factory']>`) widens method generics to their constraint — that's why the column-helper surface is per-codec, not polymorphic.
|
|
83
88
|
*/
|
|
@@ -46,6 +46,8 @@ export interface CodecLookup {
|
|
|
46
46
|
targetTypesFor(id: string): readonly string[] | undefined;
|
|
47
47
|
metaFor(id: string): CodecMeta | undefined;
|
|
48
48
|
renderOutputTypeFor(id: string, params: Record<string, unknown>): string | undefined;
|
|
49
|
+
/** Codec-id-keyed `renderInputType` renderer for the `contract.d.ts` input position. Optional so existing lookups need not provide it; returns `undefined` when the codec renders no custom input type or the id is unknown. */
|
|
50
|
+
renderInputTypeFor?(id: string, params: Record<string, unknown>): string | undefined;
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
/**
|
|
@@ -160,7 +160,7 @@ export interface PslBlockParamList {
|
|
|
160
160
|
* - `option` → `PslExtensionBlockParamOption` — the chosen token.
|
|
161
161
|
* - `list` → `PslExtensionBlockParamList` — ordered list of the above.
|
|
162
162
|
* - `bare` → `PslExtensionBlockParamBare` — a bare identifier line with no
|
|
163
|
-
* `= value` (e.g. `Low` in an
|
|
163
|
+
* `= value` (e.g. `Low` in an enum block). The name is the key in
|
|
164
164
|
* `parameters`; the interpreting consumer decides the default value.
|
|
165
165
|
*
|
|
166
166
|
* These shapes are intentionally minimal. The validator and lowering refine
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codec-types-29q8imKF.d.mts","names":[],"sources":["../src/shared/codec-descriptor.ts","../src/shared/codec.ts","../src/shared/codec-types.ts"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"psl-ast-AiO_Vz54.d.mts","names":[],"sources":["../src/control/psl-ast.ts"],"mappings":";;;;UA0BiB,aAAA;EAAA,SACN,IAAA,EAAM,iBAAA;EAAA,SACN,OAAA;EAAA,SACA,QAAA;EAAA,SACA,IAAA,EAAM,OAAO;AAAA;AAAA,UAGP,uBAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAI;AAAA;AAAA,UAGE,sBAAA;EAAA,SACN,IAAA;EAAA,SACA,KAAK;AAAA;AAAA,KAGJ,eAAA,GAAkB,uBAAA,GAA0B,sBAAsB;AAAA,KAElE,kBAAA;AAAA,UAEK,8BAAA;EAAA,SACN,IAAA;EAAA,SACA,KAAA;EAAA,SACA,IAAA,EAAM,OAAO;AAAA;AAAA,UAGP,yBAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAA;EAAA,SACA,KAAA;EAAA,SACA,IAAA,EAAM,OAAO;AAAA;AAAA,KAGZ,oBAAA,GAAuB,8BAAA,GAAiC,yBAAyB;AAAA,UAE5E,sBAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAA;EAAA,SACA,IAAA,WAAe,oBAAA;EAAA,SACf,IAAA,EAAM,OAAO;AAAA;AAAA,UAGP,YAAA;EAAA,SACN,IAAA;EAAA,SACA,MAAA,EAAQ,kBAAA;EAAA,SACR,IAAA;EAAA,SACA,IAAA,WAAe,oBAAA;EAAA,SACf,IAAA,EAAM,OAAA;AAAA;AAAA,KAGL,oBAAA;AAAA,KAEA,iBAAA,GAAoB,YAAY;AAAA,UAE3B,QAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAA;EA5BA;EAAA,SA8BA,QAAA;EA5BA;EAAA,SA8BA,eAAA;EA9Ba;AAAA;AAGxB;;;;AAA6F;AAE7F;EALwB,SAuCb,mBAAA;EAAA,SACA,eAAA,GAAkB,sBAAA;EAAA,SAClB,QAAA;EAAA,SACA,IAAA;EAAA,SACA,OAAA;EAAA,SACA,UAAA,WAAqB,iBAAA;EAAA,SACrB,IAAA,EAAM,OAAA;AAAA;AAAA,UAGA,mBAAA;EAAA,SACN,IAAA;EAAA,SACA,MAAA;EAAA,SACA,IAAA,EAAM,OAAO;AAAA;AAAA,UAGP,kBAAA;EAAA,SACN,IAAA;EAAA,SACA,MAAA;EAAA,SACA,IAAA,EAAM,OAAO;AAAA;AAAA,KAGZ,iBAAA,GAAoB,YAAY;AAAA,UAE3B,QAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAA;EAAA,SACA,MAAA,WAAiB,QAAA;EAAA,SACjB,UAAA,WAAqB,iBAAA;EAAA,SACrB,IAAA,EAAM,OAAA;EAlDN;;;AAAa;AAGxB;;;EAHW,SA0DA,OAAA;AAAA;AAAA,UAGM,YAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAA;EA1DiC;AAAA;AAE5C;;;;;;;EAF4C,SAoEjC,OAAA;EAAA,SACA,IAAA,EAAM,OAAO;AAAA;AAAA,UAGP,OAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAA;EAAA,SACA,MAAA,WAAiB,YAAA;EAAA,SACjB,UAAA,WAAqB,YAAA;EAAA,SACrB,IAAA,EAAM,OAAA;AAAA;;;;;;UAQA,gBAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAA;EAAA,SACA,MAAA,WAAiB,QAAA;EAAA,SACjB,UAAA,WAAqB,YAAA;EAAA,SACrB,IAAA,EAAM,OAAA;AAAA;AAAA,UAGA,uBAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAA;EAlEa;AAAA;AAGxB;;;EAHwB,SAwEb,QAAA;EAAA,SACA,eAAA,GAAkB,sBAAA;EAAA,SAClB,UAAA,WAAqB,YAAA;EAAA,SACrB,IAAA,EAAM,OAAA;AAAA;AAAA,UAGA,aAAA;EAAA,SACN,IAAA;EAAA,SACA,YAAA,WAAuB,uBAAA;EAAA,SACvB,IAAA,EAAM,OAAO;AAAA;;AAxEoB;AAE5C;;;;;;;;;;cAqFa,4BAAA;;KAGD,iBAAA,GAAoB,QAAA,GAAW,OAAA,GAAU,gBAAA,GAAmB,iBAAA;;;;;;AA3EtD;AAGlB;;;UAmFiB,YAAA;EAAA,SACN,IAAA;EAAA,SACA,IAAA;EAzEA;EAAA,SA2EA,OAAA,EAAS,QAAA,CAAS,MAAA,SAAe,QAAA,CAAS,MAAA,SAAe,iBAAA;EA1EnD;EAAA,SA4EN,MAAA,WAAiB,QAAA;EA5EJ;EAAA,SA8Eb,KAAA,WAAgB,OAAA;EA3EH;EAAA,SA6Eb,cAAA,WAAyB,gBAAA;EAAA,SACzB,IAAA,EAAM,OAAA;AAAA;;iBA8CD,gBAAA,CAAiB,IAAA;EAAA,SACtB,IAAA;EAAA,SACA,IAAA;EAAA,SACA,OAAA,EAAS,QAAA,CAAS,MAAA,SAAe,QAAA,CAAS,MAAA,SAAe,iBAAA;EAAA,SACzD,IAAA,EAAM,OAAA;AAAA,IACb,YAAA;;;;;;iBASY,uBAAA,CACd,MAAA,WAAiB,QAAA,IACjB,KAAA,WAAgB,OAAA,IAChB,cAAA,WAAyB,gBAAA,IACzB,eAAA,WAA0B,iBAAA,KACzB,QAAA,CAAS,MAAA,SAAe,QAAA,CAAS,MAAA,SAAe,iBAAA;AAAA,UAyClC,cAAA;EAAA,SACN,IAAA;EAAA,SACA,QAAA;EAAA,SACA,UAAA,WAAqB,YAAA;EAAA,SACrB,KAAA,GAAQ,aAAA;EAAA,SACR,IAAA,EAAM,OAAA;AAAA;;;;;iBAOD,aAAA,CAAc,GAAA,EAAK,cAAA,YAA0B,QAAQ;;;;iBAWrD,YAAA,CAAa,GAAA,EAAK,cAAA,YAA0B,OAAO;;AA7L3C;AAGxB;iBAqMgB,qBAAA,CAAsB,GAAA,EAAK,cAAA,YAA0B,gBAAgB;;;;;;;;;cAiBxE,qBAAA,EAAuB,WAAW;;;;;;;;AA3MvB;iBAyNR,2BAAA,CAA4B,EAAA,EAAI,YAAA,YAAwB,iBAAiB;AAAA,UAgBxE,qBAAA;EAAA,SACN,MAAA;EAAA,SACA,QAAA;EAvOA;;;;;;AAEa;AAexB;;;;AAAyC;AAGzC;;;EApBW,SAuPA,mBAAA,GAAsB,oCAAA;EAnOU;;;;;;;;EAAA,SA4OhC,WAAA,GAAc,WAAW;AAAA;AAAA,UAGnB,sBAAA;EAAA,SACN,GAAA,EAAK,cAAA;EAAA,SACL,WAAA,WAAsB,aAAa;EAAA,SACnC,EAAA;AAAA"}
|