@prisma-next/family-sql 0.13.0-dev.3 → 0.13.0-dev.30

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 (53) hide show
  1. package/dist/authoring-type-constructors-CjFfO6LM.mjs +342 -0
  2. package/dist/authoring-type-constructors-CjFfO6LM.mjs.map +1 -0
  3. package/dist/{control-adapter-CgIL9Vtx.d.mts → control-adapter-Cmw9LvEP.d.mts} +16 -33
  4. package/dist/control-adapter-Cmw9LvEP.d.mts.map +1 -0
  5. package/dist/control-adapter.d.mts +2 -2
  6. package/dist/control.d.mts +36 -34
  7. package/dist/control.d.mts.map +1 -1
  8. package/dist/control.mjs +24 -77
  9. package/dist/control.mjs.map +1 -1
  10. package/dist/ir.d.mts +3 -2
  11. package/dist/ir.d.mts.map +1 -1
  12. package/dist/ir.mjs +1 -1
  13. package/dist/migration.d.mts +1 -1
  14. package/dist/migration.d.mts.map +1 -1
  15. package/dist/migration.mjs +2 -1
  16. package/dist/migration.mjs.map +1 -1
  17. package/dist/pack.d.mts +16 -3
  18. package/dist/pack.d.mts.map +1 -1
  19. package/dist/pack.mjs +4 -2
  20. package/dist/pack.mjs.map +1 -1
  21. package/dist/schema-verify.d.mts +1 -1
  22. package/dist/schema-verify.mjs +1 -1
  23. package/dist/{sql-contract-serializer-CY7qnms7.mjs → sql-contract-serializer-D6-28zKd.mjs} +26 -15
  24. package/dist/sql-contract-serializer-D6-28zKd.mjs.map +1 -0
  25. package/dist/{types-CbwQCzXY.d.mts → types-kgstZ_Zd.d.mts} +5 -5
  26. package/dist/types-kgstZ_Zd.d.mts.map +1 -0
  27. package/dist/{verify-sql-schema-DcMaT5Zj.d.mts → verify-sql-schema-thU-jKpf.d.mts} +2 -14
  28. package/dist/verify-sql-schema-thU-jKpf.d.mts.map +1 -0
  29. package/dist/{verify-sql-schema-DlAgBiT_.mjs → verify-sql-schema-xT4udQLQ.mjs} +25 -118
  30. package/dist/verify-sql-schema-xT4udQLQ.mjs.map +1 -0
  31. package/package.json +21 -21
  32. package/src/core/authoring-entity-types.ts +178 -0
  33. package/src/core/authoring-field-presets.ts +8 -3
  34. package/src/core/control-adapter.ts +18 -49
  35. package/src/core/control-descriptor.ts +3 -0
  36. package/src/core/control-instance.ts +13 -11
  37. package/src/core/ir/sql-contract-serializer-base.ts +76 -60
  38. package/src/core/migrations/contract-to-schema-ir.ts +47 -112
  39. package/src/core/migrations/types.ts +4 -1
  40. package/src/core/psl-contract-infer/postgres-type-map.ts +5 -13
  41. package/src/core/psl-contract-infer/sql-schema-ir-to-psl-ast.ts +17 -70
  42. package/src/core/schema-verify/verify-sql-schema.ts +10 -146
  43. package/src/core/sql-migration.ts +5 -1
  44. package/src/exports/control-adapter.ts +1 -0
  45. package/src/exports/control.ts +1 -1
  46. package/src/exports/pack.ts +3 -0
  47. package/dist/authoring-type-constructors-D4lQ-qpj.mjs +0 -192
  48. package/dist/authoring-type-constructors-D4lQ-qpj.mjs.map +0 -1
  49. package/dist/control-adapter-CgIL9Vtx.d.mts.map +0 -1
  50. package/dist/sql-contract-serializer-CY7qnms7.mjs.map +0 -1
  51. package/dist/types-CbwQCzXY.d.mts.map +0 -1
  52. package/dist/verify-sql-schema-DcMaT5Zj.d.mts.map +0 -1
  53. package/dist/verify-sql-schema-DlAgBiT_.mjs.map +0 -1
@@ -18,9 +18,7 @@ import type {
18
18
  } from '@prisma-next/framework-components/control';
19
19
 
20
20
  import {
21
- isPostgresEnumStorageEntry,
22
21
  isStorageTypeInstance,
23
- type PostgresEnumStorageEntry,
24
22
  type SqlStorage,
25
23
  type StorageColumn,
26
24
  StorageTable,
@@ -28,7 +26,6 @@ import {
28
26
  } from '@prisma-next/sql-contract/types';
29
27
  import type { SqlSchemaIR } from '@prisma-next/sql-schema-ir/types';
30
28
  import { canonicalStringify } from '@prisma-next/utils/canonical-stringify';
31
- import { blindCast } from '@prisma-next/utils/casts';
32
29
  import { ifDefined } from '@prisma-next/utils/defined';
33
30
  import { extractCodecControlHooks } from '../assembly';
34
31
  import { resolveValueSetValues } from '../migrations/contract-to-schema-ir';
@@ -92,22 +89,6 @@ export interface VerifySqlSchemaOptions {
92
89
  * with contract native types (e.g., Postgres 'varchar' → 'character varying').
93
90
  */
94
91
  readonly normalizeNativeType?: NativeTypeNormalizer;
95
- /**
96
- * Bridging adapter that resolves the existing values for a `PostgresEnumStorageEntry`
97
- * (looked up by its native type) from the introspected schema IR. Targets
98
- * supply this so the family-level verifier can walk `PostgresEnumStorageEntry` instances
99
- * natively without reaching into target-specific `schema.annotations`
100
- * shapes itself.
101
- *
102
- * Returning `null` indicates the type is missing from the database; the
103
- * verifier emits a `type_missing` issue. A non-null array triggers a
104
- * value-set comparison against the contract's `PostgresEnumStorageEntry.values`.
105
- */
106
- readonly resolveExistingEnumValues?: (
107
- schema: SqlSchemaIR,
108
- enumType: PostgresEnumStorageEntry,
109
- namespaceId: string,
110
- ) => readonly string[] | null;
111
92
  }
112
93
 
113
94
  /**
@@ -129,7 +110,6 @@ export function verifySqlSchema(options: VerifySqlSchemaOptions): VerifyDatabase
129
110
  typeMetadataRegistry,
130
111
  normalizeDefault,
131
112
  normalizeNativeType,
132
- resolveExistingEnumValues,
133
113
  } = options;
134
114
  const startTime = Date.now();
135
115
 
@@ -138,28 +118,7 @@ export function verifySqlSchema(options: VerifySqlSchemaOptions): VerifyDatabase
138
118
 
139
119
  const { contractStorageHash, contractProfileHash, contractTarget } =
140
120
  extractContractMetadata(contract);
141
- // Column `typeRef` resolution map: keyed by the bare contract type name
142
- // (columns carry bare `typeRef`s). Used by `verifySchemaTables` only.
143
- const allStorageTypesMap: Record<string, PostgresEnumStorageEntry | StorageTypeInstance> = {
144
- ...((contract.storage.types ?? {}) as Record<
145
- string,
146
- PostgresEnumStorageEntry | StorageTypeInstance
147
- >),
148
- };
149
- for (const ns of Object.values(contract.storage.namespaces)) {
150
- const nsEnums = blindCast<
151
- { readonly type?: Readonly<Record<string, PostgresEnumStorageEntry | StorageTypeInstance>> },
152
- 'postgres target namespace entries carry a type slot beyond the family-shared SqlNamespace.entries type'
153
- >(ns.entries).type;
154
- if (nsEnums) {
155
- for (const [k, v] of Object.entries(nsEnums)) {
156
- allStorageTypesMap[k] = v;
157
- }
158
- }
159
- }
160
- const storageTypes = allStorageTypesMap as Readonly<
161
- Record<string, PostgresEnumStorageEntry | StorageTypeInstance>
162
- >;
121
+ const storageTypes: Readonly<Record<string, StorageTypeInstance>> = contract.storage.types ?? {};
163
122
  const { issues, rootChildren } = verifySchemaTables({
164
123
  contract,
165
124
  schema,
@@ -173,13 +132,6 @@ export function verifySqlSchema(options: VerifySqlSchemaOptions): VerifyDatabase
173
132
 
174
133
  validateFrameworkComponentsForExtensions(contract, options.frameworkComponents);
175
134
 
176
- // Verify storage type instances. Codec-typed `storage.types` entries dispatch
177
- // through the generic codec-hook `verifyType` path (keyed by bare name).
178
- // `PostgresEnumStorageEntry` enums are walked natively *per namespace* (using
179
- // the bridging adapter `resolveExistingEnumValues`) so two namespaces that
180
- // declare an enum with the same name are each verified with their own
181
- // namespace coordinate — a bare-name aggregation would collapse them
182
- // (last-write-wins) and verify only one.
183
135
  const typeNodes: SchemaVerificationNode[] = [];
184
136
  // Storage-type findings dispatch through the same control policy as tables
185
137
  // and columns: each issue's disposition (fail / warn / suppress) is resolved
@@ -233,29 +185,6 @@ export function verifySqlSchema(options: VerifySqlSchemaOptions): VerifyDatabase
233
185
  }
234
186
  }
235
187
 
236
- // Namespace-scoped enums, verified per `(namespaceId, typeName)`.
237
- for (const nsId of Object.keys(contract.storage.namespaces)) {
238
- const ns = contract.storage.namespaces[nsId];
239
- if (!ns) continue;
240
- const nsEnums = ns.entries['type'];
241
- if (!nsEnums) continue;
242
- for (const [typeName, entry] of Object.entries(nsEnums)) {
243
- if (!isPostgresEnumStorageEntry(entry)) continue;
244
- pushTypeNode(
245
- typeName,
246
- `storage.namespaces.${nsId}.entries.type.${typeName}`,
247
- verifyEnumType({
248
- typeName,
249
- typeInstance: entry,
250
- schema,
251
- resolveExistingEnumValues,
252
- namespaceId: nsId,
253
- }),
254
- effectiveControlPolicy(entry.control, contract.defaultControlPolicy),
255
- );
256
- }
257
- }
258
-
259
188
  if (typeNodes.length > 0) {
260
189
  const typesStatus: VerificationStatus = typeNodes.some((n) => n.status === 'fail')
261
190
  ? 'fail'
@@ -321,63 +250,6 @@ export function verifySqlSchema(options: VerifySqlSchemaOptions): VerifyDatabase
321
250
  };
322
251
  }
323
252
 
324
- /**
325
- * Native verification walk for `PostgresEnumStorageEntry` instances (no codec hook).
326
- *
327
- * Bridges the native `PostgresEnumStorageEntry.values` against the introspected schema
328
- * IR via the target-supplied `resolveExistingEnumValues` adapter. Without an
329
- * adapter, the verifier conservatively reports the enum as missing — there
330
- * is no other way for the family layer to learn about live enum types.
331
- */
332
- function verifyEnumType(options: {
333
- readonly typeName: string;
334
- readonly typeInstance: PostgresEnumStorageEntry;
335
- readonly schema: SqlSchemaIR;
336
- readonly namespaceId: string;
337
- readonly resolveExistingEnumValues?:
338
- | ((
339
- schema: SqlSchemaIR,
340
- enumType: PostgresEnumStorageEntry,
341
- namespaceId: string,
342
- ) => readonly string[] | null)
343
- | undefined;
344
- }): readonly SchemaIssue[] {
345
- const { typeName, typeInstance, schema, namespaceId, resolveExistingEnumValues } = options;
346
- const desired = typeInstance.values;
347
- const existing = resolveExistingEnumValues?.(schema, typeInstance, namespaceId) ?? null;
348
- if (!existing) {
349
- return [
350
- {
351
- kind: 'type_missing',
352
- typeName,
353
- namespaceId,
354
- message: `Type "${typeName}" is missing from database`,
355
- },
356
- ];
357
- }
358
- if (arraysEqual(existing, desired)) {
359
- return [];
360
- }
361
- const existingSet = new Set(existing);
362
- const desiredSet = new Set(desired);
363
- const addedValues = desired.filter((v) => !existingSet.has(v));
364
- const removedValues = existing.filter((v) => !desiredSet.has(v));
365
- const message =
366
- removedValues.length === 0
367
- ? `Enum type "${typeName}" needs new values: ${addedValues.join(', ')}`
368
- : `Enum type "${typeName}" values changed (requires rebuild): +[${addedValues.join(', ')}] -[${removedValues.join(', ')}]`;
369
- return [
370
- {
371
- kind: 'enum_values_changed' as const,
372
- namespaceId,
373
- typeName,
374
- addedValues,
375
- removedValues,
376
- message,
377
- },
378
- ];
379
- }
380
-
381
253
  function extractContractMetadata(contract: Contract<SqlStorage>): {
382
254
  contractStorageHash: SqlStorage['storageHash'];
383
255
  contractProfileHash?: Contract<SqlStorage>['profileHash'] | undefined;
@@ -399,7 +271,7 @@ function verifySchemaTables(options: {
399
271
  strict: boolean;
400
272
  typeMetadataRegistry: ReadonlyMap<string, { nativeType?: string }>;
401
273
  codecHooks: Map<string, CodecControlHooks>;
402
- storageTypes: Readonly<Record<string, StorageTypeInstance | PostgresEnumStorageEntry>>;
274
+ storageTypes: Readonly<Record<string, StorageTypeInstance>>;
403
275
  normalizeDefault?: DefaultNormalizer;
404
276
  normalizeNativeType?: NativeTypeNormalizer;
405
277
  }): { issues: SchemaIssue[]; rootChildren: SchemaVerificationNode[] } {
@@ -424,7 +296,7 @@ function verifySchemaTables(options: {
424
296
  for (const namespaceId of namespaceIds) {
425
297
  const ns = contract.storage.namespaces[namespaceId];
426
298
  if (!ns) continue;
427
- for (const [tableName, contractTableRaw] of Object.entries(ns.entries.table)) {
299
+ for (const [tableName, contractTableRaw] of Object.entries(ns.entries.table ?? {})) {
428
300
  if (!(contractTableRaw instanceof StorageTable)) {
429
301
  throw new Error(
430
302
  `verifySqlSchema: expected StorageTable at storage.namespaces.${namespaceId}.entries.table.${tableName}`,
@@ -489,7 +361,7 @@ function verifySchemaTables(options: {
489
361
  for (const tableName of Object.keys(schemaTables)) {
490
362
  const claimed = namespaceIds.some(
491
363
  (namespaceId) =>
492
- contract.storage.namespaces[namespaceId]?.entries.table[tableName] !== undefined,
364
+ contract.storage.namespaces[namespaceId]?.entries.table?.[tableName] !== undefined,
493
365
  );
494
366
  if (!claimed) {
495
367
  const extraTableControlPolicy = effectiveControlPolicy(undefined, contractDefaultControl);
@@ -533,7 +405,7 @@ function verifyTableChildren(options: {
533
405
  strict: boolean;
534
406
  typeMetadataRegistry: ReadonlyMap<string, { nativeType?: string }>;
535
407
  codecHooks: Map<string, CodecControlHooks>;
536
- storageTypes: Readonly<Record<string, StorageTypeInstance | PostgresEnumStorageEntry>>;
408
+ storageTypes: Readonly<Record<string, StorageTypeInstance>>;
537
409
  normalizeDefault?: DefaultNormalizer;
538
410
  normalizeNativeType?: NativeTypeNormalizer;
539
411
  contractStorage: SqlStorage;
@@ -717,7 +589,6 @@ function verifyTableChildren(options: {
717
589
  // Verify check constraints when the contract declares checks for this table OR
718
590
  // when strict mode is on (so extra live checks on zero-check tables are detected).
719
591
  // schemaTable.checks carries the introspected live checks (parsed value sets).
720
- // This call is additive: verifyEnumType (the native enum path) is untouched.
721
592
  const contractCheckIRs = (contractTable.checks ?? []).map((c) => ({
722
593
  name: c.name,
723
594
  column: c.column,
@@ -751,7 +622,7 @@ function collectContractColumnNodes(options: {
751
622
  strict: boolean;
752
623
  typeMetadataRegistry: ReadonlyMap<string, { nativeType?: string }>;
753
624
  codecHooks: Map<string, CodecControlHooks>;
754
- storageTypes: Readonly<Record<string, StorageTypeInstance | PostgresEnumStorageEntry>>;
625
+ storageTypes: Readonly<Record<string, StorageTypeInstance>>;
755
626
  normalizeDefault?: DefaultNormalizer;
756
627
  normalizeNativeType?: NativeTypeNormalizer;
757
628
  }): SchemaVerificationNode[] {
@@ -889,7 +760,7 @@ function verifyColumn(options: {
889
760
  strict: boolean;
890
761
  typeMetadataRegistry: ReadonlyMap<string, { nativeType?: string }>;
891
762
  codecHooks: Map<string, CodecControlHooks>;
892
- storageTypes: Readonly<Record<string, StorageTypeInstance | PostgresEnumStorageEntry>>;
763
+ storageTypes: Readonly<Record<string, StorageTypeInstance>>;
893
764
  normalizeDefault?: DefaultNormalizer;
894
765
  normalizeNativeType?: NativeTypeNormalizer;
895
766
  }): SchemaVerificationNode {
@@ -1260,7 +1131,7 @@ function validateFrameworkComponentsForExtensions(
1260
1131
  */
1261
1132
  function renderExpectedNativeType(
1262
1133
  contractColumn: StorageColumn,
1263
- storageTypes: Readonly<Record<string, StorageTypeInstance | PostgresEnumStorageEntry>>,
1134
+ storageTypes: Readonly<Record<string, StorageTypeInstance>>,
1264
1135
  codecHooks: Map<string, CodecControlHooks>,
1265
1136
  context?: {
1266
1137
  readonly tableName: string;
@@ -1290,7 +1161,7 @@ function renderExpectedNativeType(
1290
1161
 
1291
1162
  function resolveContractColumnTypeMetadata(
1292
1163
  contractColumn: StorageColumn,
1293
- storageTypes: Readonly<Record<string, StorageTypeInstance | PostgresEnumStorageEntry>>,
1164
+ storageTypes: Readonly<Record<string, StorageTypeInstance>>,
1294
1165
  context?: {
1295
1166
  readonly tableName: string;
1296
1167
  readonly columnName: string;
@@ -1310,13 +1181,6 @@ function resolveContractColumnTypeMetadata(
1310
1181
  );
1311
1182
  }
1312
1183
 
1313
- if (isPostgresEnumStorageEntry(referencedType)) {
1314
- return {
1315
- codecId: referencedType.codecId,
1316
- nativeType: referencedType.nativeType,
1317
- typeParams: { values: referencedType.values } as Record<string, unknown>,
1318
- };
1319
- }
1320
1184
  if (isStorageTypeInstance(referencedType)) {
1321
1185
  return {
1322
1186
  codecId: referencedType.codecId,
@@ -1325,7 +1189,7 @@ function resolveContractColumnTypeMetadata(
1325
1189
  };
1326
1190
  }
1327
1191
  throw new Error(
1328
- `Storage type "${contractColumn.typeRef}" has an unknown polymorphic kind; expected codec-instance or postgres-enum.`,
1192
+ `Storage type "${contractColumn.typeRef}" has an unknown kind; expected a codec-typed StorageTypeInstance.`,
1329
1193
  );
1330
1194
  }
1331
1195
 
@@ -1,5 +1,6 @@
1
1
  import { deriveProvidedInvariants } from '@prisma-next/migration-tools/invariants';
2
2
  import { Migration } from '@prisma-next/migration-tools/migration';
3
+ import { isThenable } from '@prisma-next/utils/promise';
3
4
  import type { SqlMigrationPlanOperation, SqlPlanTargetDetails } from './migrations/types';
4
5
 
5
6
  /**
@@ -31,6 +32,9 @@ export abstract class SqlMigration<
31
32
  * `MigrationPlan.providedInvariants?` stays optional.
32
33
  */
33
34
  get providedInvariants(): readonly string[] {
34
- return deriveProvidedInvariants(this.operations);
35
+ const ops = this.operations.filter(
36
+ (op): op is SqlMigrationPlanOperation<TDetails> => !isThenable(op),
37
+ );
38
+ return deriveProvidedInvariants(ops);
35
39
  }
36
40
  }
@@ -1,4 +1,5 @@
1
1
  export type {
2
+ ExecuteRequestLowerer,
2
3
  Lowerer,
3
4
  SqlControlAdapter,
4
5
  SqlControlAdapterDescriptor,
@@ -17,7 +17,7 @@ export type { SqlControlFamilyInstance } from '../core/control-instance';
17
17
  export type {
18
18
  ContractToSchemaIROptions,
19
19
  DefaultRenderer,
20
- EnumStorageKeyResolver,
20
+ EnumNamespaceSchemaResolver,
21
21
  NativeTypeExpander,
22
22
  } from '../core/migrations/contract-to-schema-ir';
23
23
  // Contract → SchemaIR conversion for offline migration planning
@@ -1,4 +1,5 @@
1
1
  import type { FamilyPackRef } from '@prisma-next/framework-components/components';
2
+ import { sqlFamilyEntityTypes, sqlFamilyPslBlockDescriptors } from '../core/authoring-entity-types';
2
3
  import { sqlFamilyAuthoringFieldPresets } from '../core/authoring-field-presets';
3
4
  import { sqlFamilyAuthoringTypes } from '../core/authoring-type-constructors';
4
5
 
@@ -10,6 +11,8 @@ const sqlFamilyPack = {
10
11
  authoring: {
11
12
  field: sqlFamilyAuthoringFieldPresets,
12
13
  type: sqlFamilyAuthoringTypes,
14
+ entityTypes: sqlFamilyEntityTypes,
15
+ pslBlockDescriptors: sqlFamilyPslBlockDescriptors,
13
16
  },
14
17
  } as const satisfies FamilyPackRef<'sql'>;
15
18
 
@@ -1,192 +0,0 @@
1
- //#region src/core/authoring-field-presets.ts
2
- /**
3
- * Family-level SQL authoring field presets.
4
- *
5
- * Only presets whose codec IDs align with the ID generator metadata live here
6
- * (see `@prisma-next/ids`). These presets are target-agnostic because the
7
- * generator metadata fixes their codec/native-type to `sql/char@1`
8
- * (`character`) regardless of target, and the PSL interpreter lets the
9
- * generator override the scalar descriptor.
10
- *
11
- * Scalar presets that map to target-specific codecs (e.g. `text`, `int`,
12
- * `boolean`, `dateTime`) are contributed by the target pack (see
13
- * `postgresAuthoringFieldPresets` in `@prisma-next/target-postgres`) so the
14
- * TS callback surface and the PSL scalar surface lower to byte-identical
15
- * contracts for the active target.
16
- */
17
- const CHARACTER_CODEC_ID = "sql/char@1";
18
- const CHARACTER_NATIVE_TYPE = "character";
19
- const nanoidOptionsArgument = {
20
- kind: "object",
21
- optional: true,
22
- properties: { size: {
23
- kind: "number",
24
- optional: true,
25
- integer: true,
26
- minimum: 2,
27
- maximum: 255
28
- } }
29
- };
30
- const sqlFamilyAuthoringFieldPresets = {
31
- uuid: {
32
- kind: "fieldPreset",
33
- output: {
34
- codecId: CHARACTER_CODEC_ID,
35
- nativeType: CHARACTER_NATIVE_TYPE,
36
- typeParams: { length: 36 }
37
- }
38
- },
39
- ulid: {
40
- kind: "fieldPreset",
41
- output: {
42
- codecId: CHARACTER_CODEC_ID,
43
- nativeType: CHARACTER_NATIVE_TYPE,
44
- typeParams: { length: 26 }
45
- }
46
- },
47
- nanoid: {
48
- kind: "fieldPreset",
49
- args: [nanoidOptionsArgument],
50
- output: {
51
- codecId: CHARACTER_CODEC_ID,
52
- nativeType: CHARACTER_NATIVE_TYPE,
53
- typeParams: { length: {
54
- kind: "arg",
55
- index: 0,
56
- path: ["size"],
57
- default: 21
58
- } }
59
- }
60
- },
61
- cuid2: {
62
- kind: "fieldPreset",
63
- output: {
64
- codecId: CHARACTER_CODEC_ID,
65
- nativeType: CHARACTER_NATIVE_TYPE,
66
- typeParams: { length: 24 }
67
- }
68
- },
69
- ksuid: {
70
- kind: "fieldPreset",
71
- output: {
72
- codecId: CHARACTER_CODEC_ID,
73
- nativeType: CHARACTER_NATIVE_TYPE,
74
- typeParams: { length: 27 }
75
- }
76
- },
77
- id: {
78
- uuidv4: {
79
- kind: "fieldPreset",
80
- output: {
81
- codecId: CHARACTER_CODEC_ID,
82
- nativeType: CHARACTER_NATIVE_TYPE,
83
- typeParams: { length: 36 },
84
- executionDefaults: { onCreate: {
85
- kind: "generator",
86
- id: "uuidv4"
87
- } },
88
- id: true
89
- }
90
- },
91
- uuidv7: {
92
- kind: "fieldPreset",
93
- output: {
94
- codecId: CHARACTER_CODEC_ID,
95
- nativeType: CHARACTER_NATIVE_TYPE,
96
- typeParams: { length: 36 },
97
- executionDefaults: { onCreate: {
98
- kind: "generator",
99
- id: "uuidv7"
100
- } },
101
- id: true
102
- }
103
- },
104
- ulid: {
105
- kind: "fieldPreset",
106
- output: {
107
- codecId: CHARACTER_CODEC_ID,
108
- nativeType: CHARACTER_NATIVE_TYPE,
109
- typeParams: { length: 26 },
110
- executionDefaults: { onCreate: {
111
- kind: "generator",
112
- id: "ulid"
113
- } },
114
- id: true
115
- }
116
- },
117
- nanoid: {
118
- kind: "fieldPreset",
119
- args: [nanoidOptionsArgument],
120
- output: {
121
- codecId: CHARACTER_CODEC_ID,
122
- nativeType: CHARACTER_NATIVE_TYPE,
123
- typeParams: { length: {
124
- kind: "arg",
125
- index: 0,
126
- path: ["size"],
127
- default: 21
128
- } },
129
- executionDefaults: { onCreate: {
130
- kind: "generator",
131
- id: "nanoid",
132
- params: { size: {
133
- kind: "arg",
134
- index: 0,
135
- path: ["size"]
136
- } }
137
- } },
138
- id: true
139
- }
140
- },
141
- cuid2: {
142
- kind: "fieldPreset",
143
- output: {
144
- codecId: CHARACTER_CODEC_ID,
145
- nativeType: CHARACTER_NATIVE_TYPE,
146
- typeParams: { length: 24 },
147
- executionDefaults: { onCreate: {
148
- kind: "generator",
149
- id: "cuid2"
150
- } },
151
- id: true
152
- }
153
- },
154
- ksuid: {
155
- kind: "fieldPreset",
156
- output: {
157
- codecId: CHARACTER_CODEC_ID,
158
- nativeType: CHARACTER_NATIVE_TYPE,
159
- typeParams: { length: 27 },
160
- executionDefaults: { onCreate: {
161
- kind: "generator",
162
- id: "ksuid"
163
- } },
164
- id: true
165
- }
166
- }
167
- }
168
- };
169
- //#endregion
170
- //#region src/core/authoring-type-constructors.ts
171
- const sqlFamilyAuthoringTypes = { sql: { String: {
172
- kind: "typeConstructor",
173
- args: [{
174
- kind: "number",
175
- name: "length",
176
- integer: true,
177
- minimum: 1,
178
- maximum: 10485760
179
- }],
180
- output: {
181
- codecId: "sql/varchar@1",
182
- nativeType: "character varying",
183
- typeParams: { length: {
184
- kind: "arg",
185
- index: 0
186
- } }
187
- }
188
- } } };
189
- //#endregion
190
- export { sqlFamilyAuthoringFieldPresets as n, sqlFamilyAuthoringTypes as t };
191
-
192
- //# sourceMappingURL=authoring-type-constructors-D4lQ-qpj.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authoring-type-constructors-D4lQ-qpj.mjs","names":[],"sources":["../src/core/authoring-field-presets.ts","../src/core/authoring-type-constructors.ts"],"sourcesContent":["import type { AuthoringFieldNamespace } from '@prisma-next/framework-components/authoring';\n\n/**\n * Family-level SQL authoring field presets.\n *\n * Only presets whose codec IDs align with the ID generator metadata live here\n * (see `@prisma-next/ids`). These presets are target-agnostic because the\n * generator metadata fixes their codec/native-type to `sql/char@1`\n * (`character`) regardless of target, and the PSL interpreter lets the\n * generator override the scalar descriptor.\n *\n * Scalar presets that map to target-specific codecs (e.g. `text`, `int`,\n * `boolean`, `dateTime`) are contributed by the target pack (see\n * `postgresAuthoringFieldPresets` in `@prisma-next/target-postgres`) so the\n * TS callback surface and the PSL scalar surface lower to byte-identical\n * contracts for the active target.\n */\n\nconst CHARACTER_CODEC_ID = 'sql/char@1';\nconst CHARACTER_NATIVE_TYPE = 'character';\n\nconst nanoidOptionsArgument = {\n kind: 'object',\n optional: true,\n properties: {\n size: {\n kind: 'number',\n optional: true,\n integer: true,\n minimum: 2,\n maximum: 255,\n },\n },\n} as const;\n\nexport const sqlFamilyAuthoringFieldPresets = {\n uuid: {\n kind: 'fieldPreset',\n output: {\n codecId: CHARACTER_CODEC_ID,\n nativeType: CHARACTER_NATIVE_TYPE,\n typeParams: {\n length: 36,\n },\n },\n },\n ulid: {\n kind: 'fieldPreset',\n output: {\n codecId: CHARACTER_CODEC_ID,\n nativeType: CHARACTER_NATIVE_TYPE,\n typeParams: {\n length: 26,\n },\n },\n },\n nanoid: {\n kind: 'fieldPreset',\n args: [nanoidOptionsArgument],\n output: {\n codecId: CHARACTER_CODEC_ID,\n nativeType: CHARACTER_NATIVE_TYPE,\n typeParams: {\n length: {\n kind: 'arg',\n index: 0,\n path: ['size'],\n default: 21,\n },\n },\n },\n },\n cuid2: {\n kind: 'fieldPreset',\n output: {\n codecId: CHARACTER_CODEC_ID,\n nativeType: CHARACTER_NATIVE_TYPE,\n typeParams: {\n length: 24,\n },\n },\n },\n ksuid: {\n kind: 'fieldPreset',\n output: {\n codecId: CHARACTER_CODEC_ID,\n nativeType: CHARACTER_NATIVE_TYPE,\n typeParams: {\n length: 27,\n },\n },\n },\n id: {\n uuidv4: {\n kind: 'fieldPreset',\n output: {\n codecId: CHARACTER_CODEC_ID,\n nativeType: CHARACTER_NATIVE_TYPE,\n typeParams: {\n length: 36,\n },\n executionDefaults: {\n onCreate: {\n kind: 'generator',\n id: 'uuidv4',\n },\n },\n id: true,\n },\n },\n uuidv7: {\n kind: 'fieldPreset',\n output: {\n codecId: CHARACTER_CODEC_ID,\n nativeType: CHARACTER_NATIVE_TYPE,\n typeParams: {\n length: 36,\n },\n executionDefaults: {\n onCreate: {\n kind: 'generator',\n id: 'uuidv7',\n },\n },\n id: true,\n },\n },\n ulid: {\n kind: 'fieldPreset',\n output: {\n codecId: CHARACTER_CODEC_ID,\n nativeType: CHARACTER_NATIVE_TYPE,\n typeParams: {\n length: 26,\n },\n executionDefaults: {\n onCreate: {\n kind: 'generator',\n id: 'ulid',\n },\n },\n id: true,\n },\n },\n nanoid: {\n kind: 'fieldPreset',\n args: [nanoidOptionsArgument],\n output: {\n codecId: CHARACTER_CODEC_ID,\n nativeType: CHARACTER_NATIVE_TYPE,\n typeParams: {\n length: {\n kind: 'arg',\n index: 0,\n path: ['size'],\n default: 21,\n },\n },\n executionDefaults: {\n onCreate: {\n kind: 'generator',\n id: 'nanoid',\n params: {\n size: {\n kind: 'arg',\n index: 0,\n path: ['size'],\n },\n },\n },\n },\n id: true,\n },\n },\n cuid2: {\n kind: 'fieldPreset',\n output: {\n codecId: CHARACTER_CODEC_ID,\n nativeType: CHARACTER_NATIVE_TYPE,\n typeParams: {\n length: 24,\n },\n executionDefaults: {\n onCreate: {\n kind: 'generator',\n id: 'cuid2',\n },\n },\n id: true,\n },\n },\n ksuid: {\n kind: 'fieldPreset',\n output: {\n codecId: CHARACTER_CODEC_ID,\n nativeType: CHARACTER_NATIVE_TYPE,\n typeParams: {\n length: 27,\n },\n executionDefaults: {\n onCreate: {\n kind: 'generator',\n id: 'ksuid',\n },\n },\n id: true,\n },\n },\n },\n} as const satisfies AuthoringFieldNamespace;\n","import type { AuthoringTypeNamespace } from '@prisma-next/framework-components/authoring';\n\nexport const sqlFamilyAuthoringTypes = {\n sql: {\n String: {\n kind: 'typeConstructor',\n args: [{ kind: 'number', name: 'length', integer: true, minimum: 1, maximum: 10485760 }],\n output: {\n codecId: 'sql/varchar@1',\n nativeType: 'character varying',\n typeParams: {\n length: { kind: 'arg', index: 0 },\n },\n },\n },\n },\n} as const satisfies AuthoringTypeNamespace;\n"],"mappings":";;;;;;;;;;;;;;;;AAkBA,MAAM,qBAAqB;AAC3B,MAAM,wBAAwB;AAE9B,MAAM,wBAAwB;CAC5B,MAAM;CACN,UAAU;CACV,YAAY,EACV,MAAM;EACJ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,SAAS;CACX,EACF;AACF;AAEA,MAAa,iCAAiC;CAC5C,MAAM;EACJ,MAAM;EACN,QAAQ;GACN,SAAS;GACT,YAAY;GACZ,YAAY,EACV,QAAQ,GACV;EACF;CACF;CACA,MAAM;EACJ,MAAM;EACN,QAAQ;GACN,SAAS;GACT,YAAY;GACZ,YAAY,EACV,QAAQ,GACV;EACF;CACF;CACA,QAAQ;EACN,MAAM;EACN,MAAM,CAAC,qBAAqB;EAC5B,QAAQ;GACN,SAAS;GACT,YAAY;GACZ,YAAY,EACV,QAAQ;IACN,MAAM;IACN,OAAO;IACP,MAAM,CAAC,MAAM;IACb,SAAS;GACX,EACF;EACF;CACF;CACA,OAAO;EACL,MAAM;EACN,QAAQ;GACN,SAAS;GACT,YAAY;GACZ,YAAY,EACV,QAAQ,GACV;EACF;CACF;CACA,OAAO;EACL,MAAM;EACN,QAAQ;GACN,SAAS;GACT,YAAY;GACZ,YAAY,EACV,QAAQ,GACV;EACF;CACF;CACA,IAAI;EACF,QAAQ;GACN,MAAM;GACN,QAAQ;IACN,SAAS;IACT,YAAY;IACZ,YAAY,EACV,QAAQ,GACV;IACA,mBAAmB,EACjB,UAAU;KACR,MAAM;KACN,IAAI;IACN,EACF;IACA,IAAI;GACN;EACF;EACA,QAAQ;GACN,MAAM;GACN,QAAQ;IACN,SAAS;IACT,YAAY;IACZ,YAAY,EACV,QAAQ,GACV;IACA,mBAAmB,EACjB,UAAU;KACR,MAAM;KACN,IAAI;IACN,EACF;IACA,IAAI;GACN;EACF;EACA,MAAM;GACJ,MAAM;GACN,QAAQ;IACN,SAAS;IACT,YAAY;IACZ,YAAY,EACV,QAAQ,GACV;IACA,mBAAmB,EACjB,UAAU;KACR,MAAM;KACN,IAAI;IACN,EACF;IACA,IAAI;GACN;EACF;EACA,QAAQ;GACN,MAAM;GACN,MAAM,CAAC,qBAAqB;GAC5B,QAAQ;IACN,SAAS;IACT,YAAY;IACZ,YAAY,EACV,QAAQ;KACN,MAAM;KACN,OAAO;KACP,MAAM,CAAC,MAAM;KACb,SAAS;IACX,EACF;IACA,mBAAmB,EACjB,UAAU;KACR,MAAM;KACN,IAAI;KACJ,QAAQ,EACN,MAAM;MACJ,MAAM;MACN,OAAO;MACP,MAAM,CAAC,MAAM;KACf,EACF;IACF,EACF;IACA,IAAI;GACN;EACF;EACA,OAAO;GACL,MAAM;GACN,QAAQ;IACN,SAAS;IACT,YAAY;IACZ,YAAY,EACV,QAAQ,GACV;IACA,mBAAmB,EACjB,UAAU;KACR,MAAM;KACN,IAAI;IACN,EACF;IACA,IAAI;GACN;EACF;EACA,OAAO;GACL,MAAM;GACN,QAAQ;IACN,SAAS;IACT,YAAY;IACZ,YAAY,EACV,QAAQ,GACV;IACA,mBAAmB,EACjB,UAAU;KACR,MAAM;KACN,IAAI;IACN,EACF;IACA,IAAI;GACN;EACF;CACF;AACF;;;AC/MA,MAAa,0BAA0B,EACrC,KAAK,EACH,QAAQ;CACN,MAAM;CACN,MAAM,CAAC;EAAE,MAAM;EAAU,MAAM;EAAU,SAAS;EAAM,SAAS;EAAG,SAAS;CAAS,CAAC;CACvF,QAAQ;EACN,SAAS;EACT,YAAY;EACZ,YAAY,EACV,QAAQ;GAAE,MAAM;GAAO,OAAO;EAAE,EAClC;CACF;AACF,EACF,EACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"control-adapter-CgIL9Vtx.d.mts","names":[],"sources":["../src/core/control-adapter.ts"],"mappings":";;;;;;;;;;AA8BA;;;;;UAAiB,OAAA;EACf,KAAA,CAAM,GAAA,EAAK,WAAA,GAAc,OAAA,EAAS,OAAA,EAAS,cAAA,YAA0B,gBAAA;AAAA;;;;;;;UAStD,iBAAA,0CACP,sBAAA,QAA8B,OAAA;EAV+B;;AAAgB;AASvF;;;;;;;;;;;;EAiBE,UAAA,CACE,MAAA,EAAQ,wBAAA,CAAyB,OAAA,GACjC,KAAA,WACC,OAAA,CAAQ,oBAAA;EAkBwB;;;;;;;EATnC,cAAA,CACE,MAAA,EAAQ,wBAAA,CAAyB,OAAA,IAChC,OAAA,CAAQ,WAAA,SAAoB,oBAAA;EAkCrB;;;;EA5BV,UAAA,CACE,MAAA,EAAQ,wBAAA,CAAyB,OAAA,GACjC,KAAA,YACC,OAAA,UAAiB,iBAAA;EA2De;;;;;;EAnDnC,YAAA,CACE,MAAA,EAAQ,wBAAA,CAAyB,OAAA,GACjC,KAAA,UACA,WAAA;IAAA,SACW,WAAA;IAAA,SACA,WAAA;IAAA,SACA,UAAA;EAAA,IAEV,OAAA;EA2GkB;;;;;;EAnGrB,UAAA,CACE,MAAA,EAAQ,wBAAA,CAAyB,OAAA,GACjC,KAAA,UACA,WAAA;IAAA,SACW,WAAA;IAAA,SACA,WAAA;IAAA,SACA,UAAA;EAAA,IAEV,OAAA;EAvE2B;;;;;;;EAgF9B,YAAA,CACE,MAAA,EAAQ,wBAAA,CAAyB,OAAA,GACjC,KAAA,UACA,YAAA,UACA,WAAA;IAAA,SACW,WAAA;IAAA,SACA,WAAA;IAAA,SACA,UAAA;EAAA,IAEV,OAAA;EA7DH;;;;;;EAqEA,gBAAA,CACE,MAAA,EAAQ,wBAAA,CAAyB,OAAA,GACjC,KAAA,UACA,KAAA;IAAA,SACW,MAAA;IAAA,SACA,IAAA;IAAA,SACA,EAAA;IAAA,SACA,aAAA;IAAA,SACA,aAAA;IAAA,SACA,UAAA;EAAA,IAEV,OAAA;EA7DH;;;;;;;;;;;;EA2EA,UAAA,CACE,MAAA,EAAQ,wBAAA,CAAyB,OAAA,GACjC,QAAA,YACA,MAAA,YACC,OAAA,CAAQ,WAAA;EA9DT;;;;;EAAA,SAqEO,gBAAA,GAAmB,iBAAA;EA9DzB;;;;;EAAA,SAqEM,mBAAA,GAAsB,oBAAA;EAzD7B;;;;;;;;EAAA,SAmEO,yBAAA,IACP,MAAA,EAAQ,WAAA,EACR,QAAA,EAAU,wBAAA,EACV,WAAA;EAvDA;;;;;;EAAA,SA+DO,oCAAA,IACP,QAAA,EAAU,QAAA,CAAS,UAAA,OAEnB,MAAA,EAAQ,WAAA,EACR,QAAA,EAAU,wBAAA,EACV,WAAA;EA5DW;;;;EAmEb,4BAAA,aAAyC,OAAA;EAlDN;;;;EAwDnC,0BAAA,aAAuC,OAAA;EArD5B;;;;;;;;;EAgEX,KAAA,CAAM,GAAA,EAAK,WAAA,GAAc,OAAA,EAAS,OAAA,EAAS,cAAA,YAA0B,gBAAA;AAAA;;;;;;;UAStD,2BAAA;EAlCb;;;;;;EAyCF,MAAA,CAAO,KAAA,EAAO,YAAA,QAAoB,OAAA,IAAW,iBAAA,CAAkB,OAAA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql-contract-serializer-CY7qnms7.mjs","names":[],"sources":["../src/core/ir/sql-contract-serializer-base.ts","../src/core/ir/sql-contract-serializer.ts"],"sourcesContent":["import { ContractValidationError } from '@prisma-next/contract/contract-validation-error';\nimport type { Contract } from '@prisma-next/contract/types';\nimport type { ContractSerializer } from '@prisma-next/framework-components/control';\nimport {\n type Namespace,\n NamespaceBase,\n UNBOUND_NAMESPACE_ID,\n} from '@prisma-next/framework-components/ir';\nimport { sqlContractCanonicalizationHooks } from '@prisma-next/sql-contract/canonicalization-hooks';\nimport {\n buildSqlNamespace,\n type SqlNamespaceTablesInput,\n SqlStorage,\n type SqlStorageInput,\n type SqlStorageTypeEntry,\n SqlUnboundNamespace,\n StorageTable,\n type StorageTableInput,\n StorageValueSet,\n type StorageValueSetInput,\n} from '@prisma-next/sql-contract/types';\nimport {\n createSqlContractSchema,\n validateSqlContractFully,\n} from '@prisma-next/sql-contract/validators';\nimport { blindCast } from '@prisma-next/utils/casts';\nimport { ifDefined } from '@prisma-next/utils/defined';\nimport type { JsonObject } from '@prisma-next/utils/json';\nimport { type Type, type } from 'arktype';\n\nconst NamespaceRawSchema = type({\n id: 'string',\n 'kind?': 'string',\n entries: type({\n '+': 'ignore',\n }),\n});\n\nfunction isPlainRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nexport type SqlEntityHydrationFactory = (entry: unknown) => unknown;\n\n/**\n * SQL family `ContractSerializer` abstract base. Carries the SQL-shared\n * deserialization pipeline:\n *\n * 1. `parseSqlContractStructure` validates the on-disk JSON envelope\n * against the SQL contract arktype schema (`validateSqlContractFully`)\n * and returns the validated flat-data shape.\n * 2. `hydrateSqlStorage` walks the validated `storage` subtree and\n * constructs the family-shared SQL Contract IR class hierarchy\n * (`SqlStorage` -> `StorageTable` -> `StorageColumn` / `PrimaryKey`\n * / …). The rest of the contract envelope is JSON-clean primitive\n * data and passes through unchanged.\n * 3. `constructTargetContract` is the target-specific extension hook;\n * defaults to identity. Targets that need to attach target-only\n * fields (e.g. target-specific derived storage fields) override it.\n *\n * Default `serializeContract` is identity over the contract — concrete\n * SQL targets ship JSON-clean class instances, so the contract value\n * can be stringified directly. The non-enumerable family-level `kind`\n * discriminator on `SqlNode` instances stays out of the persisted\n * envelope automatically. Targets that need to canonicalize on the way\n * out (key ordering, dropping computed-only fields) override\n * `serializeContract` directly.\n */\nexport abstract class SqlContractSerializerBase<TContract extends Contract<SqlStorage>>\n implements ContractSerializer<TContract>\n{\n private readonly contractSchema: Type<unknown> | undefined;\n\n constructor(\n protected readonly entityTypeRegistry: ReadonlyMap<\n string,\n SqlEntityHydrationFactory\n > = new Map(),\n validatorFragments?: ReadonlyMap<string, Type<unknown>>,\n ) {\n // Only build a fragments-aware contract schema when pack contributions\n // exist. The cached module-level default in `validators.ts` covers the\n // no-contributions case and avoids per-instance schema compilation.\n this.contractSchema =\n validatorFragments !== undefined && validatorFragments.size > 0\n ? createSqlContractSchema(validatorFragments)\n : undefined;\n }\n\n deserializeContract<T extends TContract = TContract>(json: unknown): T {\n const validated = this.parseSqlContractStructure(json);\n const hydrated = this.hydrateSqlStorage(validated);\n return this.constructTargetContract(hydrated) as T;\n }\n\n serializeContract(contract: TContract): JsonObject {\n return contract as unknown as JsonObject;\n }\n\n shouldPreserveEmpty = sqlContractCanonicalizationHooks.shouldPreserveEmpty;\n\n sortStorage = sqlContractCanonicalizationHooks.sortStorage;\n\n protected parseSqlContractStructure(json: unknown): Contract<SqlStorage> {\n return validateSqlContractFully<Contract<SqlStorage>>(\n json,\n this.contractSchema !== undefined ? { contractSchema: this.contractSchema } : undefined,\n );\n }\n\n protected hydrateSqlStorage(validated: Contract<SqlStorage>): Contract<SqlStorage> {\n const types = validated.storage.types;\n const hydratedTypes =\n types !== undefined\n ? Object.fromEntries(\n Object.entries(types).map(([name, entry]) => [\n name,\n this.hydrateStorageTypeEntry(entry),\n ]),\n )\n : undefined;\n\n const rawNamespaces = validated.storage.namespaces;\n if (rawNamespaces === undefined) {\n throw new ContractValidationError(\n 'Contract storage.namespaces is required after structural validation',\n 'structural',\n );\n }\n const hydratedNamespaces = this.hydrateSqlNamespaceMap(rawNamespaces);\n // Compatibility shim: production code that addresses `__unbound__` for table\n // metadata lookups (collection-contract, query-plan-mutations, model-accessor,\n // query-plan-meta, where-binding) uses optional chaining and tolerates absence,\n // but runtime-qualification (TML-2605) has not yet landed cross-namespace table\n // routing. Injecting the empty singleton here keeps helpers that augment the\n // deserialized JSON (e.g. buildMixedPolyContract) working by providing a slot to\n // write into. Once runtime-qualification routes table lookups by namespace, this\n // shim should be removed.\n const unbound = hydratedNamespaces[UNBOUND_NAMESPACE_ID] ?? SqlUnboundNamespace.instance;\n\n return {\n ...validated,\n storage: new SqlStorage({\n storageHash: validated.storage.storageHash,\n ...ifDefined('types', hydratedTypes),\n // Cast narrows the result of hydrateSqlNamespaceMap from the wider\n // framework `Namespace` to the SQL-family `SqlNamespace`.\n namespaces: blindCast<\n SqlStorageInput['namespaces'],\n 'hydrated SQL namespaces are SqlNamespace instances (family hydration guarantees this)'\n >({ ...hydratedNamespaces, [UNBOUND_NAMESPACE_ID]: unbound }),\n }),\n };\n }\n\n protected hydrateSqlNamespaceMap(\n namespaces: Readonly<Record<string, Namespace | Record<string, unknown>>>,\n ): Readonly<Record<string, Namespace>> {\n return Object.fromEntries(\n Object.entries(namespaces).map(([nsId, namespaceEntryRaw]) => {\n // Raw entries passed structural validation; hydrate materialises family IR class instances.\n const namespaceHydrated = this.hydrateSqlNamespaceEntry(nsId, namespaceEntryRaw);\n const namespaceMaterialised =\n namespaceHydrated instanceof NamespaceBase\n ? namespaceHydrated\n : buildSqlNamespace(\n blindCast<\n SqlNamespaceTablesInput,\n 'hydrateSqlNamespaceEntry returns SqlNamespaceTablesInput when raw is not a NamespaceBase'\n >(namespaceHydrated),\n );\n return [nsId, namespaceMaterialised];\n }),\n );\n }\n\n protected hydrateSqlNamespaceEntry(\n nsId: string,\n raw: Namespace | Record<string, unknown>,\n ): Namespace | SqlNamespaceTablesInput {\n if (raw instanceof NamespaceBase) {\n return raw;\n }\n const rawRecord = isPlainRecord(raw) ? raw : {};\n if (\n Object.hasOwn(rawRecord, 'tables') ||\n Object.hasOwn(rawRecord, 'enum') ||\n Object.hasOwn(rawRecord, 'collections')\n ) {\n throw new ContractValidationError(\n 'Namespace envelope uses deprecated flat slot keys; expected `entries: { table? }`',\n 'structural',\n );\n }\n const id = typeof rawRecord['id'] === 'string' ? rawRecord['id'] : nsId;\n const parsed = NamespaceRawSchema({ ...rawRecord, id });\n if (parsed instanceof type.errors) {\n const messages = parsed.map((p: { message: string }) => p.message).join('; ');\n throw new ContractValidationError(`Namespace hydration failed: ${messages}`, 'structural');\n }\n // Default to empty table; overwritten below if raw entries carry a table slot.\n const entriesInput: {\n table: Record<string, StorageTable>;\n valueSet?: Record<string, StorageValueSet>;\n } = { table: {} };\n const entriesRaw = parsed.entries;\n if (entriesRaw !== undefined && typeof entriesRaw === 'object' && entriesRaw !== null) {\n const rawEntries = entriesRaw as Record<string, unknown>;\n const tableSlot = rawEntries['table'];\n if (tableSlot !== null && typeof tableSlot === 'object' && !Array.isArray(tableSlot)) {\n entriesInput.table = Object.fromEntries(\n Object.entries(tableSlot as Record<string, unknown>).map(([tableName, table]) => [\n tableName,\n table instanceof StorageTable ? table : new StorageTable(table as StorageTableInput),\n ]),\n );\n }\n const valueSetSlot = rawEntries['valueSet'];\n if (\n valueSetSlot !== null &&\n typeof valueSetSlot === 'object' &&\n !Array.isArray(valueSetSlot)\n ) {\n entriesInput.valueSet = Object.fromEntries(\n Object.entries(\n blindCast<\n Record<string, unknown>,\n 'valueSet slot is a plain record after object check'\n >(valueSetSlot),\n ).map(([vsName, vs]) => [\n vsName,\n vs instanceof StorageValueSet\n ? vs\n : new StorageValueSet(\n blindCast<\n StorageValueSetInput,\n 'non-instance valueSet entry is StorageValueSetInput'\n >(vs),\n ),\n ]),\n );\n }\n // Target-specific slots (e.g. postgres `type`) are left for target\n // overrides to extract from the original `raw` parameter.\n }\n\n return blindCast<SqlNamespaceTablesInput, 'hydrated namespace tables input'>({\n id,\n entries: entriesInput,\n });\n }\n\n protected hydrateStorageTypeEntry(entry: SqlStorageTypeEntry): SqlStorageTypeEntry {\n if (typeof entry !== 'object' || entry === null) {\n return entry;\n }\n const kind = (entry as { kind?: unknown }).kind;\n if (typeof kind !== 'string') {\n return entry;\n }\n const factory = this.entityTypeRegistry.get(kind);\n if (factory === undefined) {\n return entry;\n }\n return blindCast<\n SqlStorageTypeEntry,\n 'entity registry factory returns SqlStorageTypeEntry for storage.types entries'\n >(factory(entry));\n }\n\n protected constructTargetContract(hydrated: Contract<SqlStorage>): TContract {\n return hydrated as TContract;\n }\n}\n","import type { Contract } from '@prisma-next/contract/types';\nimport type { SqlStorage } from '@prisma-next/sql-contract/types';\nimport { SqlContractSerializerBase } from './sql-contract-serializer-base';\n\n/**\n * Default SQL family `ContractSerializer` concretion. Inherits the\n * full SQL-shared deserialization pipeline (structural validation +\n * IR-class hydration) without pack-registered `storage.types`\n * hydration factories — targets that emit polymorphic JSON outside the\n * codec-typed envelope wire a target-specific subclass with a populated\n * registry (see Postgres). Family-level call sites instantiate this\n * default directly when no target serializer is supplied.\n */\nexport class SqlContractSerializer extends SqlContractSerializerBase<Contract<SqlStorage>> {\n constructor() {\n super(new Map());\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-CbwQCzXY.d.mts","names":[],"sources":["../src/core/control-instance.ts","../src/core/migrations/types.ts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify-sql-schema-DcMaT5Zj.d.mts","names":[],"sources":["../src/core/schema-verify/verify-sql-schema.ts"],"mappings":";;;;;;;;;;AAsDkB;KAHN,iBAAA,IACV,UAAA,UACA,UAAA,aACG,aAAa;;;;AAOoC;AAKtD;KALY,oBAAA,IAAwB,UAAkB;;;;UAKrC,sBAAA;EAQI;EAAA,SANV,QAAA,EAAU,QAAA,CAAS,UAAA;EAagB;EAAA,SAXnC,MAAA,EAAQ,WAAA;EAiBW;EAAA,SAfnB,MAAA;EAkCC;EAAA,SAhCD,OAAA,GAAU,gBAAA;EAiCiB;EAAA,SA/B3B,oBAAA,EAAsB,WAAA;IAAsB,UAAA;EAAA;EARzB;;;;EAAA,SAanB,mBAAA,EAAqB,aAAA,CAAc,8BAAA;EAPzB;;;;;EAAA,SAaV,gBAAA,GAAmB,iBAAA;EANgB;;;;;EAAA,SAYnC,mBAAA,GAAsB,oBAAA;EAarB;;;;;;AAEW;AAcvB;;;;EAhBY,SADD,yBAAA,IACP,MAAA,EAAQ,WAAA,EACR,QAAA,EAAU,wBAAA,EACV,WAAA;AAAA;;;AAcwF;;;;;;;;iBAA5E,eAAA,CAAgB,OAAA,EAAS,sBAAA,GAAyB,0BAA0B"}