@prisma-next/sql-contract-ts 0.12.0-dev.40 → 0.12.0-dev.42

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.
@@ -2,6 +2,7 @@ import { blindCast } from "@prisma-next/utils/casts";
2
2
  import { computeExecutionHash, computeProfileHash, computeStorageHash } from "@prisma-next/contract/hashing";
3
3
  import { asNamespaceId, coreHash, crossRef } from "@prisma-next/contract/types";
4
4
  import { mergeCapabilityMatrices } from "@prisma-next/contract-authoring";
5
+ import { UNBOUND_NAMESPACE_ID } from "@prisma-next/framework-components/ir";
5
6
  import { sqlContractCanonicalizationHooks } from "@prisma-next/sql-contract/canonicalization-hooks";
6
7
  import { validateIndexTypes } from "@prisma-next/sql-contract/index-type-validation";
7
8
  import { createIndexTypeRegistry } from "@prisma-next/sql-contract/index-types";
@@ -106,6 +107,18 @@ function collectStorageNamespaceCoordinateIds(definition) {
106
107
  for (const model of definition.models) if (model.namespaceId !== void 0 && model.namespaceId.length > 0) ids.add(model.namespaceId);
107
108
  return ids;
108
109
  }
110
+ function ensureUnboundNamespaceSlot(namespaces, createNamespace) {
111
+ if (Object.hasOwn(namespaces, UNBOUND_NAMESPACE_ID)) return namespaces;
112
+ const unboundInput = {
113
+ id: UNBOUND_NAMESPACE_ID,
114
+ entries: { table: {} }
115
+ };
116
+ const unbound = createNamespace ? createNamespace(unboundInput) : buildSqlNamespace(unboundInput);
117
+ return blindCast({
118
+ [UNBOUND_NAMESPACE_ID]: unbound,
119
+ ...namespaces
120
+ });
121
+ }
109
122
  const POSTGRES_ENUM_NAMESPACE_ID = "public";
110
123
  function partitionStorageTypesForTarget(targetId, types, namespaceTypes) {
111
124
  const documentTypes = {};
@@ -293,14 +306,13 @@ function buildSqlContractFromDefinition(definition, codecLookup) {
293
306
  const enumTypes = namespaceEnumTypesById[id];
294
307
  const nsInput = {
295
308
  id,
296
- tables: tablesByNamespace[id] ?? {},
297
- ...ifDefined("enum", enumTypes)
309
+ entries: { table: tablesByNamespace[id] ?? {} }
298
310
  };
299
- return [id, createNamespace ? createNamespace(nsInput) : buildSqlNamespace(nsInput)];
311
+ return [id, createNamespace ? createNamespace(nsInput, enumTypes) : buildSqlNamespace(nsInput)];
300
312
  })));
301
313
  const storageWithoutHash = {
302
314
  ...Object.keys(documentTypes).length > 0 ? { types: documentTypes } : {},
303
- namespaces
315
+ namespaces: ensureUnboundNamespaceSlot(namespaces, createNamespace)
304
316
  };
305
317
  const storageHash = definition.storageHash ? coreHash(definition.storageHash) : computeStorageHash({
306
318
  target,
@@ -381,4 +393,4 @@ function buildSqlContractFromDefinition(definition, codecLookup) {
381
393
  //#endregion
382
394
  export { buildSqlContractFromDefinition as t };
383
395
 
384
- //# sourceMappingURL=build-contract-BDUH6Cu0.mjs.map
396
+ //# sourceMappingURL=build-contract-CGOSImpk.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-contract-CGOSImpk.mjs","names":[],"sources":["../src/build-contract.ts"],"sourcesContent":["import {\n computeExecutionHash,\n computeProfileHash,\n computeStorageHash,\n} from '@prisma-next/contract/hashing';\nimport {\n asNamespaceId,\n type ColumnDefault,\n type ColumnDefaultLiteralInputValue,\n type Contract,\n type ContractField,\n type ContractModel,\n type ContractRelation,\n type ContractValueObject,\n type CrossReference,\n coreHash,\n crossRef,\n type ExecutionMutationDefault,\n type JsonValue,\n type StorageHashBase,\n} from '@prisma-next/contract/types';\nimport { type CapabilityMatrix, mergeCapabilityMatrices } from '@prisma-next/contract-authoring';\nimport type { CodecLookup } from '@prisma-next/framework-components/codec';\nimport { UNBOUND_NAMESPACE_ID } from '@prisma-next/framework-components/ir';\nimport { sqlContractCanonicalizationHooks } from '@prisma-next/sql-contract/canonicalization-hooks';\nimport { validateIndexTypes } from '@prisma-next/sql-contract/index-type-validation';\nimport {\n createIndexTypeRegistry,\n type IndexTypeMap,\n type IndexTypeRegistration,\n} from '@prisma-next/sql-contract/index-types';\nimport {\n applyFkDefaults,\n buildSqlNamespace,\n isPostgresEnumStorageEntry,\n type PostgresEnumStorageEntry,\n type SqlNamespaceTablesInput,\n SqlStorage,\n type SqlStorageInput,\n type StorageColumn,\n StorageTable,\n type StorageTableInput,\n type StorageTypeInstance,\n toStorageTypeInstance,\n} from '@prisma-next/sql-contract/types';\nimport { validateStorageSemantics } from '@prisma-next/sql-contract/validators';\nimport { blindCast } from '@prisma-next/utils/casts';\nimport { ifDefined } from '@prisma-next/utils/defined';\nimport type {\n ContractDefinition,\n FieldNode,\n ModelNode,\n ValueObjectFieldNode,\n} from './contract-definition';\n\ntype DomainFieldRef =\n | { readonly kind: 'scalar'; readonly many?: boolean }\n | { readonly kind: 'valueObject'; readonly name: string; readonly many?: boolean };\n\nfunction encodeDefaultLiteralValue(\n value: ColumnDefaultLiteralInputValue,\n codecId: string,\n codecLookup?: CodecLookup,\n): JsonValue {\n const codec = codecLookup?.get(codecId);\n if (codec) {\n return codec.encodeJson(value);\n }\n return value as JsonValue;\n}\n\nfunction encodeColumnDefault(\n defaultInput: ColumnDefault,\n codecId: string,\n codecLookup?: CodecLookup,\n): ColumnDefault {\n if (defaultInput.kind === 'function') {\n return { kind: 'function', expression: defaultInput.expression };\n }\n return {\n kind: 'literal',\n value: encodeDefaultLiteralValue(defaultInput.value, codecId, codecLookup),\n };\n}\n\nfunction assertStorageSemantics(\n definition: ContractDefinition,\n contract: Contract<SqlStorage>,\n): void {\n const semanticErrors = validateStorageSemantics(contract.storage);\n if (semanticErrors.length > 0) {\n throw new Error(`Contract semantic validation failed: ${semanticErrors.join('; ')}`);\n }\n\n const indexTypeRegistry = createIndexTypeRegistry();\n const packsToRegister: ReadonlyArray<{ readonly id?: string; readonly indexTypes?: unknown }> = [\n definition.target,\n ...Object.values(definition.extensionPacks ?? {}),\n ];\n for (const pack of packsToRegister) {\n const registration = pack.indexTypes;\n if (registration === undefined) continue;\n if (\n typeof registration !== 'object' ||\n registration === null ||\n !Array.isArray((registration as { entries?: unknown }).entries)\n ) {\n throw new Error(\n `Pack \"${pack.id ?? '<unknown>'}\" declares \"indexTypes\" but its value is not an IndexTypeRegistration (expected an object with an \"entries\" array; got ${typeof registration}).`,\n );\n }\n for (const entry of (registration as IndexTypeRegistration<IndexTypeMap>).entries) {\n indexTypeRegistry.register(entry);\n }\n }\n validateIndexTypes(contract, indexTypeRegistry);\n}\n\nfunction assertKnownTargetModel(\n modelsByName: ReadonlyMap<string, ModelNode>,\n sourceModelName: string,\n targetModelName: string,\n context: string,\n): ModelNode {\n const targetModel = modelsByName.get(targetModelName);\n if (!targetModel) {\n throw new Error(\n `${context} on model \"${sourceModelName}\" references unknown model \"${targetModelName}\"`,\n );\n }\n return targetModel;\n}\n\nfunction assertTargetTableMatches(\n sourceModelName: string,\n targetModel: ModelNode,\n referencedTableName: string,\n context: string,\n): void {\n if (targetModel.tableName !== referencedTableName) {\n throw new Error(\n `${context} on model \"${sourceModelName}\" references table \"${referencedTableName}\" but model \"${targetModel.modelName}\" maps to \"${targetModel.tableName}\"`,\n );\n }\n}\n\nfunction isValueObjectField(\n field: FieldNode | ValueObjectFieldNode,\n): field is ValueObjectFieldNode {\n return 'valueObjectName' in field;\n}\n\nconst JSONB_CODEC_ID = 'pg/jsonb@1';\nconst JSONB_NATIVE_TYPE = 'jsonb';\n\nfunction resolveModelNamespaceId(\n model: ModelNode,\n modelNameToNamespaceId: ReadonlyMap<string, string>,\n defaultNamespaceId: string,\n): string {\n if (model.namespaceId !== undefined && model.namespaceId.length > 0) {\n return model.namespaceId;\n }\n return modelNameToNamespaceId.get(model.modelName) ?? defaultNamespaceId;\n}\n\nfunction buildStorageColumn(\n field: FieldNode | ValueObjectFieldNode,\n codecLookup?: CodecLookup,\n): StorageColumn {\n if (isValueObjectField(field)) {\n const encodedDefault =\n field.default !== undefined\n ? encodeColumnDefault(field.default, JSONB_CODEC_ID, codecLookup)\n : undefined;\n\n return {\n nativeType: JSONB_NATIVE_TYPE,\n codecId: JSONB_CODEC_ID,\n nullable: field.nullable,\n ...ifDefined('default', encodedDefault),\n };\n }\n\n if (field.many) {\n return {\n nativeType: JSONB_NATIVE_TYPE,\n codecId: JSONB_CODEC_ID,\n nullable: field.nullable,\n };\n }\n\n const codecId = field.descriptor.codecId;\n const encodedDefault =\n field.default !== undefined\n ? encodeColumnDefault(field.default, codecId, codecLookup)\n : undefined;\n\n return {\n nativeType: field.descriptor.nativeType,\n codecId,\n nullable: field.nullable,\n ...ifDefined('typeParams', field.descriptor.typeParams),\n ...ifDefined('default', encodedDefault),\n ...ifDefined('typeRef', field.descriptor.typeRef),\n };\n}\n\nfunction buildDomainField(\n field: FieldNode | ValueObjectFieldNode,\n column: StorageColumn,\n): ContractField {\n if (isValueObjectField(field)) {\n return {\n type: { kind: 'valueObject', name: field.valueObjectName },\n nullable: field.nullable,\n ...(field.many ? { many: true } : {}),\n };\n }\n\n return {\n type: {\n kind: 'scalar',\n codecId: column.codecId,\n ...ifDefined('typeParams', column.typeParams),\n },\n nullable: column.nullable,\n ...(field.many ? { many: true } : {}),\n };\n}\n\nfunction collectStorageNamespaceCoordinateIds(definition: ContractDefinition): Set<string> {\n const ids = new Set<string>();\n ids.add(definition.target.defaultNamespaceId);\n for (const id of definition.namespaces ?? []) {\n if (id.length > 0) {\n ids.add(id);\n }\n }\n for (const model of definition.models) {\n if (model.namespaceId !== undefined && model.namespaceId.length > 0) {\n ids.add(model.namespaceId);\n }\n }\n return ids;\n}\n\nfunction ensureUnboundNamespaceSlot(\n namespaces: SqlStorageInput['namespaces'],\n createNamespace: ContractDefinition['createNamespace'],\n): SqlStorageInput['namespaces'] {\n if (Object.hasOwn(namespaces, UNBOUND_NAMESPACE_ID)) {\n return namespaces;\n }\n const unboundInput: SqlNamespaceTablesInput = {\n id: UNBOUND_NAMESPACE_ID,\n entries: { table: {} },\n };\n const unbound = createNamespace ? createNamespace(unboundInput) : buildSqlNamespace(unboundInput);\n return blindCast<\n SqlStorageInput['namespaces'],\n 'createNamespace may return a target namespace concretion; the unbound slot matches SqlNamespace at runtime'\n >({\n [UNBOUND_NAMESPACE_ID]: unbound,\n ...namespaces,\n });\n}\n\nconst POSTGRES_ENUM_NAMESPACE_ID = 'public';\n\nfunction partitionStorageTypesForTarget(\n targetId: string,\n types: Record<string, StorageTypeInstance | PostgresEnumStorageEntry>,\n namespaceTypes?: Readonly<Record<string, Readonly<Record<string, PostgresEnumStorageEntry>>>>,\n): {\n readonly documentTypes: Record<string, StorageTypeInstance>;\n readonly namespaceEnumTypesById: Record<string, Record<string, PostgresEnumStorageEntry>>;\n} {\n const documentTypes: Record<string, StorageTypeInstance> = {};\n const namespaceEnumTypesById: Record<string, Record<string, PostgresEnumStorageEntry>> = {};\n for (const [name, entry] of Object.entries(types)) {\n if (isPostgresEnumStorageEntry(entry)) {\n if (targetId !== 'postgres') {\n throw new Error(\n `buildSqlContractFromDefinition: postgres enum \"${name}\" is only valid when target is \"postgres\" (got \"${targetId}\").`,\n );\n }\n let slot = namespaceEnumTypesById[POSTGRES_ENUM_NAMESPACE_ID];\n if (slot === undefined) {\n slot = {};\n namespaceEnumTypesById[POSTGRES_ENUM_NAMESPACE_ID] = slot;\n }\n slot[name] = entry;\n continue;\n }\n documentTypes[name] = entry;\n }\n if (namespaceTypes !== undefined) {\n for (const [nsId, enumsInNs] of Object.entries(namespaceTypes)) {\n for (const [name, entry] of Object.entries(enumsInNs)) {\n if (targetId !== 'postgres') {\n throw new Error(\n `buildSqlContractFromDefinition: postgres enum \"${name}\" is only valid when target is \"postgres\" (got \"${targetId}\").`,\n );\n }\n let slot = namespaceEnumTypesById[nsId];\n if (slot === undefined) {\n slot = {};\n namespaceEnumTypesById[nsId] = slot;\n }\n slot[name] = entry;\n }\n }\n }\n return { documentTypes, namespaceEnumTypesById };\n}\n\nexport function buildSqlContractFromDefinition(\n definition: ContractDefinition,\n codecLookup?: CodecLookup,\n): Contract<SqlStorage> {\n const target = definition.target.targetId;\n const defaultNamespaceId = definition.target.defaultNamespaceId;\n const targetFamily = 'sql';\n const modelsByName = new Map(definition.models.map((m) => [m.modelName, m]));\n\n const tablesByNamespace: Record<string, Record<string, StorageTable>> = {};\n const tableNameToNamespaceId = new Map<string, string>();\n const modelNameToNamespaceId = new Map<string, string>();\n const executionDefaults: ExecutionMutationDefault[] = [];\n const modelsByNamespace: Record<string, Record<string, ContractModel>> = {};\n const roots: Record<string, CrossReference> = {};\n\n for (const semanticModel of definition.models) {\n const tableName = semanticModel.tableName;\n const namespaceId =\n semanticModel.namespaceId !== undefined && semanticModel.namespaceId.length > 0\n ? semanticModel.namespaceId\n : defaultNamespaceId;\n modelNameToNamespaceId.set(semanticModel.modelName, namespaceId);\n roots[tableName] = crossRef(semanticModel.modelName, namespaceId);\n\n // --- Build storage table ---\n\n const columns: Record<string, StorageColumn> = {};\n const fieldToColumn: Record<string, string> = {};\n const domainFields: Record<string, ContractField> = {};\n const domainFieldRefs: Record<string, DomainFieldRef> = {};\n\n for (const field of semanticModel.fields) {\n const executionDefaultPhases =\n field.executionDefaults?.onCreate || field.executionDefaults?.onUpdate\n ? field.executionDefaults\n : undefined;\n if (executionDefaultPhases) {\n if (field.default !== undefined) {\n throw new Error(\n `Field \"${semanticModel.modelName}.${field.fieldName}\" cannot define both default and executionDefaults.`,\n );\n }\n if (field.nullable) {\n throw new Error(\n `Field \"${semanticModel.modelName}.${field.fieldName}\" cannot be nullable when executionDefaults are present.`,\n );\n }\n }\n\n const column = buildStorageColumn(field, codecLookup);\n columns[field.columnName] = column;\n fieldToColumn[field.fieldName] = field.columnName;\n\n domainFields[field.fieldName] = buildDomainField(field, column);\n\n if (isValueObjectField(field)) {\n domainFieldRefs[field.fieldName] = {\n kind: 'valueObject',\n name: field.valueObjectName,\n ...(field.many ? { many: true } : {}),\n };\n } else if (field.many) {\n domainFieldRefs[field.fieldName] = { kind: 'scalar', many: true };\n }\n\n if (executionDefaultPhases) {\n executionDefaults.push({\n ref: { table: tableName, column: field.columnName },\n ...ifDefined('onCreate', executionDefaultPhases.onCreate),\n ...ifDefined('onUpdate', executionDefaultPhases.onUpdate),\n });\n }\n }\n\n const foreignKeys = (semanticModel.foreignKeys ?? []).map((fk) => {\n const targetModel = assertKnownTargetModel(\n modelsByName,\n semanticModel.modelName,\n fk.references.model,\n 'Foreign key',\n );\n assertTargetTableMatches(\n semanticModel.modelName,\n targetModel,\n fk.references.table,\n 'Foreign key',\n );\n const targetNamespaceId =\n fk.references.namespaceId ??\n (targetModel.namespaceId !== undefined && targetModel.namespaceId.length > 0\n ? targetModel.namespaceId\n : defaultNamespaceId);\n return {\n source: { namespaceId: asNamespaceId(namespaceId), tableName, columns: fk.columns },\n target: {\n namespaceId: asNamespaceId(targetNamespaceId),\n tableName: fk.references.table,\n columns: fk.references.columns,\n },\n ...applyFkDefaults(\n {\n ...ifDefined('constraint', fk.constraint),\n ...ifDefined('index', fk.index),\n },\n definition.foreignKeyDefaults,\n ),\n ...ifDefined('name', fk.name),\n ...ifDefined('onDelete', fk.onDelete),\n ...ifDefined('onUpdate', fk.onUpdate),\n };\n });\n\n const existingNs = tableNameToNamespaceId.get(tableName);\n if (existingNs !== undefined && existingNs !== namespaceId) {\n throw new Error(\n `buildSqlContractFromDefinition: table \"${tableName}\" is mapped in namespace \"${namespaceId}\" but already exists in namespace \"${existingNs}\".`,\n );\n }\n tableNameToNamespaceId.set(tableName, namespaceId);\n\n const tableInput: StorageTableInput = {\n columns,\n ...ifDefined('control', semanticModel.control),\n uniques: (semanticModel.uniques ?? []).map((u) => ({\n columns: u.columns,\n ...ifDefined('name', u.name),\n })),\n indexes: (semanticModel.indexes ?? []).map((i) => ({\n columns: i.columns,\n ...ifDefined('name', i.name),\n ...ifDefined('type', i.type),\n ...ifDefined('options', i.options),\n })),\n foreignKeys,\n ...(semanticModel.id\n ? {\n primaryKey: {\n columns: semanticModel.id.columns,\n ...ifDefined('name', semanticModel.id.name),\n },\n }\n : {}),\n };\n\n let nsTables = tablesByNamespace[namespaceId];\n if (nsTables === undefined) {\n nsTables = {};\n tablesByNamespace[namespaceId] = nsTables;\n }\n if (nsTables[tableName] !== undefined) {\n throw new Error(\n `buildSqlContractFromDefinition: duplicate table \"${tableName}\" in namespace \"${namespaceId}\".`,\n );\n }\n nsTables[tableName] = new StorageTable(tableInput);\n\n // --- Build contract model ---\n\n const storageFields: Record<string, { readonly column: string }> = {};\n for (const [fieldName, columnName] of Object.entries(fieldToColumn)) {\n storageFields[fieldName] = { column: columnName };\n }\n\n const columnToField = new Map(\n Object.entries(fieldToColumn).map(([field, col]) => [col, field]),\n );\n const modelRelations: Record<string, ContractRelation> = {};\n for (const relation of semanticModel.relations ?? []) {\n const targetModel = assertKnownTargetModel(\n modelsByName,\n semanticModel.modelName,\n relation.toModel,\n 'Relation',\n );\n assertTargetTableMatches(semanticModel.modelName, targetModel, relation.toTable, 'Relation');\n\n if (relation.cardinality === 'N:M' && !relation.through) {\n throw new Error(\n `Relation \"${semanticModel.modelName}.${relation.fieldName}\" with cardinality \"N:M\" requires through metadata`,\n );\n }\n\n const targetColumnToField = new Map(\n targetModel.fields.map((f) => [f.columnName, f.fieldName]),\n );\n\n modelRelations[relation.fieldName] = {\n to: crossRef(\n relation.toModel,\n resolveModelNamespaceId(targetModel, modelNameToNamespaceId, defaultNamespaceId),\n ),\n // RelationDefinition.cardinality includes 'N:M' which isn't in\n // ContractReferenceRelation yet — cast is needed until the contract\n // type is extended to cover many-to-many.\n cardinality: relation.cardinality as ContractRelation['cardinality'],\n on: {\n localFields: relation.on.parentColumns.map((col) => columnToField.get(col) ?? col),\n targetFields: relation.on.childColumns.map((col) => targetColumnToField.get(col) ?? col),\n },\n ...(relation.through\n ? {\n through: {\n table: relation.through.table,\n parentCols: relation.through.parentColumns,\n childCols: relation.through.childColumns,\n },\n }\n : undefined),\n };\n }\n\n let namespaceModels = modelsByNamespace[namespaceId];\n if (namespaceModels === undefined) {\n namespaceModels = {};\n modelsByNamespace[namespaceId] = namespaceModels;\n }\n namespaceModels[semanticModel.modelName] = {\n storage: {\n table: tableName,\n namespaceId,\n fields: storageFields,\n },\n fields: domainFields,\n relations: modelRelations,\n };\n }\n\n // --- Assemble contract ---\n\n // Normalise raw codec-triple inputs to the `kind: 'codec-instance'`\n // discriminator shape before hashing so the storageHash matches the\n // persisted JSON envelope produced from the SqlStorage class instance\n // (which always carries the discriminator).\n const rawStorageTypes = (definition.storageTypes ?? {}) as Record<\n string,\n StorageTypeInstance | PostgresEnumStorageEntry\n >;\n const storageTypes = Object.fromEntries(\n Object.entries(rawStorageTypes).map(([name, entry]) => {\n if (isPostgresEnumStorageEntry(entry)) return [name, entry];\n if ((entry as { kind?: unknown }).kind === 'codec-instance') return [name, entry];\n return [\n name,\n toStorageTypeInstance({\n codecId: entry.codecId,\n nativeType: entry.nativeType,\n typeParams: (entry as { typeParams?: Record<string, unknown> }).typeParams ?? {},\n }),\n ];\n }),\n );\n const { documentTypes, namespaceEnumTypesById } = partitionStorageTypesForTarget(\n target,\n storageTypes,\n definition.namespaceTypes,\n );\n const namespaceCoordinateIds = collectStorageNamespaceCoordinateIds(definition);\n for (const id of Object.keys(namespaceEnumTypesById)) {\n namespaceCoordinateIds.add(id);\n }\n const { createNamespace } = definition;\n const namespaces = blindCast<\n SqlStorageInput['namespaces'],\n 'contract authoring materialises each namespace coordinate from the model set and explicit namespace list'\n >(\n Object.fromEntries(\n [...namespaceCoordinateIds].sort().map((id) => {\n const enumTypes = namespaceEnumTypesById[id];\n const nsInput: SqlNamespaceTablesInput = {\n id,\n entries: {\n table: tablesByNamespace[id] ?? {},\n },\n };\n return [\n id,\n createNamespace ? createNamespace(nsInput, enumTypes) : buildSqlNamespace(nsInput),\n ];\n }),\n ),\n );\n const storageWithoutHash = {\n ...(Object.keys(documentTypes).length > 0 ? { types: documentTypes } : {}),\n namespaces: ensureUnboundNamespaceSlot(namespaces, createNamespace),\n };\n const storageHash: StorageHashBase<string> = definition.storageHash\n ? coreHash(definition.storageHash)\n : computeStorageHash({\n target,\n targetFamily,\n storage: storageWithoutHash as Record<string, unknown>,\n ...sqlContractCanonicalizationHooks,\n });\n const storage = new SqlStorage({ ...storageWithoutHash, storageHash });\n\n const executionSection =\n executionDefaults.length > 0\n ? {\n mutations: {\n defaults: executionDefaults.sort((a, b) => {\n const tableCompare = a.ref.table.localeCompare(b.ref.table);\n if (tableCompare !== 0) {\n return tableCompare;\n }\n return a.ref.column.localeCompare(b.ref.column);\n }),\n },\n }\n : undefined;\n\n const extensionNamespaces = definition.extensionPacks\n ? Object.values(definition.extensionPacks).map((pack) => pack.id)\n : undefined;\n\n const extensionPacks: Record<string, unknown> = { ...(definition.extensionPacks || {}) };\n if (extensionNamespaces) {\n for (const namespace of extensionNamespaces) {\n if (!Object.hasOwn(extensionPacks, namespace)) {\n extensionPacks[namespace] = {};\n }\n }\n }\n\n const extensionPackCapabilitySources = definition.extensionPacks\n ? Object.values(definition.extensionPacks).map(\n (pack) => pack.capabilities as CapabilityMatrix | undefined,\n )\n : [];\n const capabilities = mergeCapabilityMatrices(\n definition.target.capabilities as CapabilityMatrix | undefined,\n ...extensionPackCapabilitySources,\n );\n // Internal `profileHash` computation is unchanged from `origin/main`: it\n // continues to fingerprint the author-declared capability subset. With\n // `capabilities` removed from the `defineContract` input that subset is\n // now always empty, so the hash naturally stabilises at `hash({})`.\n const profileHash = computeProfileHash({\n target,\n targetFamily,\n capabilities: {},\n });\n\n const executionWithHash = executionSection\n ? {\n ...executionSection,\n executionHash: computeExecutionHash({ target, targetFamily, execution: executionSection }),\n }\n : undefined;\n\n const valueObjects: Record<string, ContractValueObject> | undefined =\n definition.valueObjects && definition.valueObjects.length > 0\n ? Object.fromEntries(\n definition.valueObjects.map((vo) => [\n vo.name,\n {\n fields: Object.fromEntries(\n vo.fields.map((f) => [\n f.fieldName,\n isValueObjectField(f)\n ? {\n type: { kind: 'valueObject' as const, name: f.valueObjectName },\n nullable: f.nullable,\n ...(f.many ? { many: true } : {}),\n }\n : {\n type: {\n kind: 'scalar' as const,\n codecId: f.descriptor.codecId,\n ...ifDefined('typeParams', f.descriptor.typeParams),\n },\n nullable: f.nullable,\n },\n ]),\n ),\n },\n ]),\n )\n : undefined;\n\n const domainNamespaceIds = new Set(Object.keys(modelsByNamespace));\n if (domainNamespaceIds.size === 0) {\n domainNamespaceIds.add(defaultNamespaceId);\n }\n if (valueObjects !== undefined) {\n domainNamespaceIds.add(defaultNamespaceId);\n }\n const domainNamespaces = Object.fromEntries(\n [...domainNamespaceIds].sort().map((namespaceId) => {\n const modelsInNs = modelsByNamespace[namespaceId] ?? {};\n const namespaceSlice =\n namespaceId === defaultNamespaceId && valueObjects !== undefined\n ? { models: modelsInNs, valueObjects }\n : { models: modelsInNs };\n return [namespaceId, namespaceSlice];\n }),\n );\n\n const contract: Contract<SqlStorage> = {\n target,\n targetFamily,\n ...ifDefined('defaultControlPolicy', definition.defaultControlPolicy),\n domain: { namespaces: domainNamespaces },\n roots,\n storage,\n ...(executionWithHash ? { execution: executionWithHash } : {}),\n extensionPacks,\n capabilities,\n profileHash,\n meta: {},\n };\n\n assertStorageSemantics(definition, contract);\n\n return contract;\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as buildSqlContractFromDefinition } from "./build-contract-BDUH6Cu0.mjs";
1
+ import { t as buildSqlContractFromDefinition } from "./build-contract-CGOSImpk.mjs";
2
2
  import { ifDefined } from "@prisma-next/utils/defined";
3
3
  import { pathToFileURL } from "node:url";
4
4
  import { applySpecifierDefaultControlPolicy } from "@prisma-next/contract/apply-specifier-default-control-policy";
@@ -1,11 +1,11 @@
1
1
  import { ColumnDefault, ColumnDefaultLiteralInputValue, Contract, ContractRelation, ControlPolicy, ExecutionMutationDefaultPhases, ExecutionMutationDefaultPhases as ExecutionMutationDefaultPhases$1, ExecutionMutationDefaultValue, NamespaceId, StorageHashBase } from "@prisma-next/contract/types";
2
2
  import { EntityHelpersFromNamespace, ExtractAuthoringNamespaceFromPack, ForeignKeyDefaultsState, MergeExtensionAuthoringNamespaces } from "@prisma-next/contract-authoring";
3
+ import { Namespace, StorageType } from "@prisma-next/framework-components/ir";
3
4
  import { IndexTypeRegistration } from "@prisma-next/sql-contract/index-types";
4
5
  import { ContractWithTypeMaps, Index as Index$1, PostgresEnumStorageEntry, ReferentialAction, SqlNamespaceTablesInput, SqlStorage, StorageTypeInstance, TypeMaps } from "@prisma-next/sql-contract/types";
5
6
  import { AuthoringArgumentDescriptor, AuthoringFieldPresetDescriptor, AuthoringTypeConstructorDescriptor } from "@prisma-next/framework-components/authoring";
6
7
  import { ExtensionPackRef, FamilyPackRef, TargetPackRef } from "@prisma-next/framework-components/components";
7
8
  import { CodecLookup, ColumnTypeDescriptor } from "@prisma-next/framework-components/codec";
8
- import { Namespace } from "@prisma-next/framework-components/ir";
9
9
 
10
10
  //#region src/contract-dsl.d.ts
11
11
  type NamingStrategy = 'identity' | 'snake_case';
@@ -515,7 +515,7 @@ type DefinitionNamespaces<Definition> = Definition extends {
515
515
  } ? string[] extends Names ? never : readonly string[] extends Names ? never : Names[number] : never;
516
516
  type DefinitionTypes<Definition> = Definition extends {
517
517
  readonly types?: unknown;
518
- } ? Present<Definition['types']> extends Record<string, StorageTypeInstance | PostgresEnumStorageEntry> ? Present<Definition['types']> : Record<never, never> : Record<never, never>;
518
+ } ? Present<Definition['types']> extends Record<string, StorageType> ? Present<Definition['types']> : Record<never, never> : Record<never, never>;
519
519
  type DefinitionTableNaming<Definition> = Definition extends {
520
520
  readonly naming?: {
521
521
  readonly tables?: infer Strategy extends string;
@@ -579,8 +579,8 @@ type DescriptorTypeParams<Descriptor> = Descriptor extends {
579
579
  type DescriptorTypeRef<Descriptor> = Descriptor extends {
580
580
  readonly typeRef: infer TypeRef extends string;
581
581
  } ? TypeRef : undefined;
582
- type LookupNamedStorageTypeKeyByValue<Definition, TypeRef extends StorageTypeInstance | PostgresEnumStorageEntry> = { [TypeName in keyof DefinitionTypes<Definition> & string]: [TypeRef] extends [DefinitionTypes<Definition>[TypeName]] ? [DefinitionTypes<Definition>[TypeName]] extends [TypeRef] ? TypeName : never : never }[keyof DefinitionTypes<Definition> & string];
583
- type ResolveNamedStorageTypeKey<Definition, TypeRef> = TypeRef extends string ? TypeRef : TypeRef extends StorageTypeInstance | PostgresEnumStorageEntry ? [LookupNamedStorageTypeKeyByValue<Definition, TypeRef>] extends [never] ? string : LookupNamedStorageTypeKeyByValue<Definition, TypeRef> : never;
582
+ type LookupNamedStorageTypeKeyByValue<Definition, TypeRef extends StorageType> = { [TypeName in keyof DefinitionTypes<Definition> & string]: [TypeRef] extends [DefinitionTypes<Definition>[TypeName]] ? [DefinitionTypes<Definition>[TypeName]] extends [TypeRef] ? TypeName : never : never }[keyof DefinitionTypes<Definition> & string];
583
+ type ResolveNamedStorageTypeKey<Definition, TypeRef> = TypeRef extends string ? TypeRef : TypeRef extends StorageType ? [LookupNamedStorageTypeKeyByValue<Definition, TypeRef>] extends [never] ? string : LookupNamedStorageTypeKeyByValue<Definition, TypeRef> : never;
584
584
  type ResolveNamedStorageType<Definition, TypeRef> = ResolveNamedStorageTypeKey<Definition, TypeRef> extends infer TypeName extends string ? TypeName extends keyof DefinitionTypes<Definition> ? DefinitionTypes<Definition>[TypeName] : StorageTypeInstance : StorageTypeInstance;
585
585
  type ResolveFieldDescriptor<Definition, FieldState> = [FieldDescriptorOf<FieldState>] extends [never] ? ResolveNamedStorageType<Definition, FieldTypeRefOf<FieldState>> : FieldDescriptorOf<FieldState>;
586
586
  type ResolveFieldColumnTypeRef<Definition, FieldState> = [FieldTypeRefOf<FieldState>] extends [never] ? DescriptorTypeRef<FieldDescriptorOf<FieldState>> : ResolveNamedStorageTypeKey<Definition, FieldTypeRefOf<FieldState>>;
@@ -665,7 +665,7 @@ type BuiltStorageTables<Definition> = { readonly [ModelName in ModelNames<Defini
665
665
  readonly name?: ModelIdName<Definition, ModelName>;
666
666
  };
667
667
  } : Record<string, never>) };
668
- type BuiltDocumentScopedTypes<Definition> = { readonly [K in keyof DefinitionTypes<Definition> as DefinitionTypes<Definition>[K] extends PostgresEnumStorageEntry ? never : K]: DefinitionTypes<Definition>[K] };
668
+ type BuiltDocumentScopedTypes<Definition> = { readonly [K in keyof DefinitionTypes<Definition> as DefinitionTypes<Definition>[K] extends StorageTypeInstance ? K : never]: DefinitionTypes<Definition>[K] };
669
669
  type BuiltDomain<Definition> = BuiltDocumentScopedTypes<Definition> extends Record<never, never> ? Record<string, never> : {
670
670
  readonly __unbound__: {
671
671
  readonly types: BuiltDocumentScopedTypes<Definition>;
@@ -678,13 +678,15 @@ type BuiltStorage<Definition> = {
678
678
  readonly namespaces: { readonly [K in DefaultStorageNamespaceId<Definition>]: {
679
679
  readonly id: K;
680
680
  readonly kind: string;
681
- readonly tables: BuiltStorageTables<Definition>;
682
- readonly enum?: Readonly<Record<string, PostgresEnumStorageEntry>>;
681
+ readonly entries: {
682
+ readonly table: BuiltStorageTables<Definition>;
683
+ };
683
684
  } } & { readonly [Ns in Exclude<DefinitionNamespaces<Definition>, DefaultStorageNamespaceId<Definition>>]: {
684
685
  readonly id: Ns;
685
686
  readonly kind: string;
686
- readonly tables: Record<never, never>;
687
- readonly enum?: Readonly<Record<string, PostgresEnumStorageEntry>>;
687
+ readonly entries: {
688
+ readonly table: Record<never, never>;
689
+ };
688
690
  } };
689
691
  };
690
692
  type FieldOutputType<Definition, ModelName extends ModelNames<Definition>, FieldName extends ModelFieldNames<Definition, ModelName>> = ModelStorageColumn<Definition, ModelName, FieldName> extends infer Col ? Col extends {
@@ -857,7 +859,7 @@ interface ContractDefinition {
857
859
  /**
858
860
  * Enum types declared inside a named `namespace { enum … }` block,
859
861
  * keyed first by namespace id then by type name. These are routed to
860
- * `storage.namespaces[nsId].enum` rather than the implicit fallback
862
+ * `storage.namespaces[nsId].entries.type` rather than the implicit fallback
861
863
  * namespace used for top-level `storageTypes` enums.
862
864
  */
863
865
  readonly namespaceTypes?: Readonly<Record<string, Readonly<Record<string, PostgresEnumStorageEntry>>>>;
@@ -870,8 +872,11 @@ interface ContractDefinition {
870
872
  * Target-supplied factory that materialises a `Namespace` concretion
871
873
  * for a declared namespace coordinate. Mirrors
872
874
  * `ContractInput.createNamespace`.
875
+ *
876
+ * The optional second argument carries target-specific enum types for the
877
+ * namespace (e.g. postgres enum registrations keyed by type name).
873
878
  */
874
- readonly createNamespace?: (input: SqlNamespaceTablesInput) => Namespace;
879
+ readonly createNamespace?: (input: SqlNamespaceTablesInput, enumTypes?: Readonly<Record<string, PostgresEnumStorageEntry>>) => Namespace;
875
880
  readonly models: readonly ModelNode[];
876
881
  readonly valueObjects?: readonly ValueObjectNode[];
877
882
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contract-builder.d.mts","names":[],"sources":["../src/contract-dsl.ts","../src/authoring-type-utils.ts","../src/contract-types.ts","../src/composed-authoring-helpers.ts","../src/contract-definition.ts","../src/build-contract.ts","../src/contract-builder.ts"],"mappings":"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"}
1
+ {"version":3,"file":"contract-builder.d.mts","names":[],"sources":["../src/contract-dsl.ts","../src/authoring-type-utils.ts","../src/contract-types.ts","../src/composed-authoring-helpers.ts","../src/contract-definition.ts","../src/build-contract.ts","../src/contract-builder.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { t as buildSqlContractFromDefinition } from "./build-contract-BDUH6Cu0.mjs";
1
+ import { t as buildSqlContractFromDefinition } from "./build-contract-CGOSImpk.mjs";
2
2
  import { blindCast } from "@prisma-next/utils/casts";
3
3
  import { isColumnDefault } from "@prisma-next/contract/types";
4
4
  import { createEntityHelpersFromNamespace } from "@prisma-next/contract-authoring";
package/package.json CHANGED
@@ -1,27 +1,27 @@
1
1
  {
2
2
  "name": "@prisma-next/sql-contract-ts",
3
- "version": "0.12.0-dev.40",
3
+ "version": "0.12.0-dev.42",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "description": "SQL-specific TypeScript contract authoring surface for Prisma Next",
8
8
  "dependencies": {
9
- "@prisma-next/config": "0.12.0-dev.40",
10
- "@prisma-next/contract": "0.12.0-dev.40",
11
- "@prisma-next/contract-authoring": "0.12.0-dev.40",
12
- "@prisma-next/framework-components": "0.12.0-dev.40",
13
- "@prisma-next/sql-contract": "0.12.0-dev.40",
14
- "@prisma-next/utils": "0.12.0-dev.40",
9
+ "@prisma-next/config": "0.12.0-dev.42",
10
+ "@prisma-next/contract": "0.12.0-dev.42",
11
+ "@prisma-next/contract-authoring": "0.12.0-dev.42",
12
+ "@prisma-next/framework-components": "0.12.0-dev.42",
13
+ "@prisma-next/sql-contract": "0.12.0-dev.42",
14
+ "@prisma-next/utils": "0.12.0-dev.42",
15
15
  "arktype": "^2.2.0",
16
16
  "pathe": "^2.0.3",
17
17
  "ts-toolbelt": "^9.6.0"
18
18
  },
19
19
  "devDependencies": {
20
- "@prisma-next/test-utils": "0.12.0-dev.40",
21
- "@prisma-next/tsconfig": "0.12.0-dev.40",
20
+ "@prisma-next/test-utils": "0.12.0-dev.42",
21
+ "@prisma-next/tsconfig": "0.12.0-dev.42",
22
22
  "@types/pg": "8.20.0",
23
23
  "pg": "8.20.0",
24
- "@prisma-next/tsdown": "0.12.0-dev.40",
24
+ "@prisma-next/tsdown": "0.12.0-dev.42",
25
25
  "tsdown": "0.22.0",
26
26
  "typescript": "5.9.3",
27
27
  "vitest": "4.1.6"
@@ -21,6 +21,7 @@ import {
21
21
  } from '@prisma-next/contract/types';
22
22
  import { type CapabilityMatrix, mergeCapabilityMatrices } from '@prisma-next/contract-authoring';
23
23
  import type { CodecLookup } from '@prisma-next/framework-components/codec';
24
+ import { UNBOUND_NAMESPACE_ID } from '@prisma-next/framework-components/ir';
24
25
  import { sqlContractCanonicalizationHooks } from '@prisma-next/sql-contract/canonicalization-hooks';
25
26
  import { validateIndexTypes } from '@prisma-next/sql-contract/index-type-validation';
26
27
  import {
@@ -244,6 +245,27 @@ function collectStorageNamespaceCoordinateIds(definition: ContractDefinition): S
244
245
  return ids;
245
246
  }
246
247
 
248
+ function ensureUnboundNamespaceSlot(
249
+ namespaces: SqlStorageInput['namespaces'],
250
+ createNamespace: ContractDefinition['createNamespace'],
251
+ ): SqlStorageInput['namespaces'] {
252
+ if (Object.hasOwn(namespaces, UNBOUND_NAMESPACE_ID)) {
253
+ return namespaces;
254
+ }
255
+ const unboundInput: SqlNamespaceTablesInput = {
256
+ id: UNBOUND_NAMESPACE_ID,
257
+ entries: { table: {} },
258
+ };
259
+ const unbound = createNamespace ? createNamespace(unboundInput) : buildSqlNamespace(unboundInput);
260
+ return blindCast<
261
+ SqlStorageInput['namespaces'],
262
+ 'createNamespace may return a target namespace concretion; the unbound slot matches SqlNamespace at runtime'
263
+ >({
264
+ [UNBOUND_NAMESPACE_ID]: unbound,
265
+ ...namespaces,
266
+ });
267
+ }
268
+
247
269
  const POSTGRES_ENUM_NAMESPACE_ID = 'public';
248
270
 
249
271
  function partitionStorageTypesForTarget(
@@ -251,10 +273,10 @@ function partitionStorageTypesForTarget(
251
273
  types: Record<string, StorageTypeInstance | PostgresEnumStorageEntry>,
252
274
  namespaceTypes?: Readonly<Record<string, Readonly<Record<string, PostgresEnumStorageEntry>>>>,
253
275
  ): {
254
- readonly documentTypes: Record<string, StorageTypeInstance | PostgresEnumStorageEntry>;
276
+ readonly documentTypes: Record<string, StorageTypeInstance>;
255
277
  readonly namespaceEnumTypesById: Record<string, Record<string, PostgresEnumStorageEntry>>;
256
278
  } {
257
- const documentTypes: Record<string, StorageTypeInstance | PostgresEnumStorageEntry> = {};
279
+ const documentTypes: Record<string, StorageTypeInstance> = {};
258
280
  const namespaceEnumTypesById: Record<string, Record<string, PostgresEnumStorageEntry>> = {};
259
281
  for (const [name, entry] of Object.entries(types)) {
260
282
  if (isPostgresEnumStorageEntry(entry)) {
@@ -564,16 +586,20 @@ export function buildSqlContractFromDefinition(
564
586
  const enumTypes = namespaceEnumTypesById[id];
565
587
  const nsInput: SqlNamespaceTablesInput = {
566
588
  id,
567
- tables: tablesByNamespace[id] ?? {},
568
- ...ifDefined('enum', enumTypes),
589
+ entries: {
590
+ table: tablesByNamespace[id] ?? {},
591
+ },
569
592
  };
570
- return [id, createNamespace ? createNamespace(nsInput) : buildSqlNamespace(nsInput)];
593
+ return [
594
+ id,
595
+ createNamespace ? createNamespace(nsInput, enumTypes) : buildSqlNamespace(nsInput),
596
+ ];
571
597
  }),
572
598
  ),
573
599
  );
574
600
  const storageWithoutHash = {
575
601
  ...(Object.keys(documentTypes).length > 0 ? { types: documentTypes } : {}),
576
- namespaces,
602
+ namespaces: ensureUnboundNamespaceSlot(namespaces, createNamespace),
577
603
  };
578
604
  const storageHash: StorageHashBase<string> = definition.storageHash
579
605
  ? coreHash(definition.storageHash)
@@ -130,7 +130,7 @@ export interface ContractDefinition {
130
130
  /**
131
131
  * Enum types declared inside a named `namespace { enum … }` block,
132
132
  * keyed first by namespace id then by type name. These are routed to
133
- * `storage.namespaces[nsId].enum` rather than the implicit fallback
133
+ * `storage.namespaces[nsId].entries.type` rather than the implicit fallback
134
134
  * namespace used for top-level `storageTypes` enums.
135
135
  */
136
136
  readonly namespaceTypes?: Readonly<
@@ -145,8 +145,14 @@ export interface ContractDefinition {
145
145
  * Target-supplied factory that materialises a `Namespace` concretion
146
146
  * for a declared namespace coordinate. Mirrors
147
147
  * `ContractInput.createNamespace`.
148
+ *
149
+ * The optional second argument carries target-specific enum types for the
150
+ * namespace (e.g. postgres enum registrations keyed by type name).
148
151
  */
149
- readonly createNamespace?: (input: SqlNamespaceTablesInput) => Namespace;
152
+ readonly createNamespace?: (
153
+ input: SqlNamespaceTablesInput,
154
+ enumTypes?: Readonly<Record<string, PostgresEnumStorageEntry>>,
155
+ ) => Namespace;
150
156
  readonly models: readonly ModelNode[];
151
157
  readonly valueObjects?: readonly ValueObjectNode[];
152
158
  }
@@ -6,11 +6,11 @@ import type {
6
6
  StorageHashBase,
7
7
  } from '@prisma-next/contract/types';
8
8
  import type { ExtensionPackRef, TargetPackRef } from '@prisma-next/framework-components/components';
9
+ import type { StorageType } from '@prisma-next/framework-components/ir';
9
10
  import type { IndexTypeRegistration } from '@prisma-next/sql-contract/index-types';
10
11
  import type {
11
12
  ContractWithTypeMaps,
12
13
  Index,
13
- PostgresEnumStorageEntry,
14
14
  ReferentialAction,
15
15
  StorageTypeInstance,
16
16
  TypeMaps,
@@ -144,10 +144,7 @@ type DefinitionNamespaces<Definition> = Definition extends {
144
144
  type DefinitionTypes<Definition> = Definition extends {
145
145
  readonly types?: unknown;
146
146
  }
147
- ? Present<Definition['types']> extends Record<
148
- string,
149
- StorageTypeInstance | PostgresEnumStorageEntry
150
- >
147
+ ? Present<Definition['types']> extends Record<string, StorageType>
151
148
  ? Present<Definition['types']>
152
149
  : Record<never, never>
153
150
  : Record<never, never>;
@@ -311,10 +308,7 @@ type DescriptorTypeRef<Descriptor> = Descriptor extends {
311
308
  ? TypeRef
312
309
  : undefined;
313
310
 
314
- type LookupNamedStorageTypeKeyByValue<
315
- Definition,
316
- TypeRef extends StorageTypeInstance | PostgresEnumStorageEntry,
317
- > = {
311
+ type LookupNamedStorageTypeKeyByValue<Definition, TypeRef extends StorageType> = {
318
312
  [TypeName in keyof DefinitionTypes<Definition> & string]: [TypeRef] extends [
319
313
  DefinitionTypes<Definition>[TypeName],
320
314
  ]
@@ -326,7 +320,7 @@ type LookupNamedStorageTypeKeyByValue<
326
320
 
327
321
  type ResolveNamedStorageTypeKey<Definition, TypeRef> = TypeRef extends string
328
322
  ? TypeRef
329
- : TypeRef extends StorageTypeInstance | PostgresEnumStorageEntry
323
+ : TypeRef extends StorageType
330
324
  ? [LookupNamedStorageTypeKeyByValue<Definition, TypeRef>] extends [never]
331
325
  ? string
332
326
  : LookupNamedStorageTypeKeyByValue<Definition, TypeRef>
@@ -564,9 +558,9 @@ type BuiltStorageTables<Definition> = {
564
558
  };
565
559
 
566
560
  type BuiltDocumentScopedTypes<Definition> = {
567
- readonly [K in keyof DefinitionTypes<Definition> as DefinitionTypes<Definition>[K] extends PostgresEnumStorageEntry
568
- ? never
569
- : K]: DefinitionTypes<Definition>[K];
561
+ readonly [K in keyof DefinitionTypes<Definition> as DefinitionTypes<Definition>[K] extends StorageTypeInstance
562
+ ? K
563
+ : never]: DefinitionTypes<Definition>[K];
570
564
  };
571
565
 
572
566
  type BuiltDomain<Definition> =
@@ -586,19 +580,20 @@ type BuiltStorage<Definition> = {
586
580
  readonly types?: BuiltDocumentScopedTypes<Definition>;
587
581
  // The primary namespace key is target-specific: Postgres uses `public` (the
588
582
  // default schema), all other SQL targets use `__unbound__`. The namespace
589
- // carries the narrowed tables shape so downstream DSL surfaces keep
583
+ // carries the narrowed `entries.table` shape so downstream DSL surfaces keep
590
584
  // literal-keyed access without an optional-narrowing dance. The shape is
591
585
  // described inline (rather than intersecting with `SqlStorage['namespaces']`)
592
586
  // so its `Readonly<Record<string, Namespace>>` index signature doesn't
593
- // collapse `keyof tables` to `string`. The literal object is still
594
- // structurally assignable to `SqlStorage['namespaces']` because every value
595
- // satisfies the framework `Namespace` interface.
587
+ // collapse slot keys to `string`. The literal object is still structurally
588
+ // assignable to `SqlStorage['namespaces']` because every value satisfies the
589
+ // framework `Namespace` interface.
596
590
  readonly namespaces: {
597
591
  readonly [K in DefaultStorageNamespaceId<Definition>]: {
598
592
  readonly id: K;
599
593
  readonly kind: string;
600
- readonly tables: BuiltStorageTables<Definition>;
601
- readonly enum?: Readonly<Record<string, PostgresEnumStorageEntry>>;
594
+ readonly entries: {
595
+ readonly table: BuiltStorageTables<Definition>;
596
+ };
602
597
  };
603
598
  } & {
604
599
  readonly [Ns in Exclude<
@@ -607,8 +602,9 @@ type BuiltStorage<Definition> = {
607
602
  >]: {
608
603
  readonly id: Ns;
609
604
  readonly kind: string;
610
- readonly tables: Record<never, never>;
611
- readonly enum?: Readonly<Record<string, PostgresEnumStorageEntry>>;
605
+ readonly entries: {
606
+ readonly table: Record<never, never>;
607
+ };
612
608
  };
613
609
  };
614
610
  };
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-contract-BDUH6Cu0.mjs","names":[],"sources":["../src/build-contract.ts"],"sourcesContent":["import {\n computeExecutionHash,\n computeProfileHash,\n computeStorageHash,\n} from '@prisma-next/contract/hashing';\nimport {\n asNamespaceId,\n type ColumnDefault,\n type ColumnDefaultLiteralInputValue,\n type Contract,\n type ContractField,\n type ContractModel,\n type ContractRelation,\n type ContractValueObject,\n type CrossReference,\n coreHash,\n crossRef,\n type ExecutionMutationDefault,\n type JsonValue,\n type StorageHashBase,\n} from '@prisma-next/contract/types';\nimport { type CapabilityMatrix, mergeCapabilityMatrices } from '@prisma-next/contract-authoring';\nimport type { CodecLookup } from '@prisma-next/framework-components/codec';\nimport { sqlContractCanonicalizationHooks } from '@prisma-next/sql-contract/canonicalization-hooks';\nimport { validateIndexTypes } from '@prisma-next/sql-contract/index-type-validation';\nimport {\n createIndexTypeRegistry,\n type IndexTypeMap,\n type IndexTypeRegistration,\n} from '@prisma-next/sql-contract/index-types';\nimport {\n applyFkDefaults,\n buildSqlNamespace,\n isPostgresEnumStorageEntry,\n type PostgresEnumStorageEntry,\n type SqlNamespaceTablesInput,\n SqlStorage,\n type SqlStorageInput,\n type StorageColumn,\n StorageTable,\n type StorageTableInput,\n type StorageTypeInstance,\n toStorageTypeInstance,\n} from '@prisma-next/sql-contract/types';\nimport { validateStorageSemantics } from '@prisma-next/sql-contract/validators';\nimport { blindCast } from '@prisma-next/utils/casts';\nimport { ifDefined } from '@prisma-next/utils/defined';\nimport type {\n ContractDefinition,\n FieldNode,\n ModelNode,\n ValueObjectFieldNode,\n} from './contract-definition';\n\ntype DomainFieldRef =\n | { readonly kind: 'scalar'; readonly many?: boolean }\n | { readonly kind: 'valueObject'; readonly name: string; readonly many?: boolean };\n\nfunction encodeDefaultLiteralValue(\n value: ColumnDefaultLiteralInputValue,\n codecId: string,\n codecLookup?: CodecLookup,\n): JsonValue {\n const codec = codecLookup?.get(codecId);\n if (codec) {\n return codec.encodeJson(value);\n }\n return value as JsonValue;\n}\n\nfunction encodeColumnDefault(\n defaultInput: ColumnDefault,\n codecId: string,\n codecLookup?: CodecLookup,\n): ColumnDefault {\n if (defaultInput.kind === 'function') {\n return { kind: 'function', expression: defaultInput.expression };\n }\n return {\n kind: 'literal',\n value: encodeDefaultLiteralValue(defaultInput.value, codecId, codecLookup),\n };\n}\n\nfunction assertStorageSemantics(\n definition: ContractDefinition,\n contract: Contract<SqlStorage>,\n): void {\n const semanticErrors = validateStorageSemantics(contract.storage);\n if (semanticErrors.length > 0) {\n throw new Error(`Contract semantic validation failed: ${semanticErrors.join('; ')}`);\n }\n\n const indexTypeRegistry = createIndexTypeRegistry();\n const packsToRegister: ReadonlyArray<{ readonly id?: string; readonly indexTypes?: unknown }> = [\n definition.target,\n ...Object.values(definition.extensionPacks ?? {}),\n ];\n for (const pack of packsToRegister) {\n const registration = pack.indexTypes;\n if (registration === undefined) continue;\n if (\n typeof registration !== 'object' ||\n registration === null ||\n !Array.isArray((registration as { entries?: unknown }).entries)\n ) {\n throw new Error(\n `Pack \"${pack.id ?? '<unknown>'}\" declares \"indexTypes\" but its value is not an IndexTypeRegistration (expected an object with an \"entries\" array; got ${typeof registration}).`,\n );\n }\n for (const entry of (registration as IndexTypeRegistration<IndexTypeMap>).entries) {\n indexTypeRegistry.register(entry);\n }\n }\n validateIndexTypes(contract, indexTypeRegistry);\n}\n\nfunction assertKnownTargetModel(\n modelsByName: ReadonlyMap<string, ModelNode>,\n sourceModelName: string,\n targetModelName: string,\n context: string,\n): ModelNode {\n const targetModel = modelsByName.get(targetModelName);\n if (!targetModel) {\n throw new Error(\n `${context} on model \"${sourceModelName}\" references unknown model \"${targetModelName}\"`,\n );\n }\n return targetModel;\n}\n\nfunction assertTargetTableMatches(\n sourceModelName: string,\n targetModel: ModelNode,\n referencedTableName: string,\n context: string,\n): void {\n if (targetModel.tableName !== referencedTableName) {\n throw new Error(\n `${context} on model \"${sourceModelName}\" references table \"${referencedTableName}\" but model \"${targetModel.modelName}\" maps to \"${targetModel.tableName}\"`,\n );\n }\n}\n\nfunction isValueObjectField(\n field: FieldNode | ValueObjectFieldNode,\n): field is ValueObjectFieldNode {\n return 'valueObjectName' in field;\n}\n\nconst JSONB_CODEC_ID = 'pg/jsonb@1';\nconst JSONB_NATIVE_TYPE = 'jsonb';\n\nfunction resolveModelNamespaceId(\n model: ModelNode,\n modelNameToNamespaceId: ReadonlyMap<string, string>,\n defaultNamespaceId: string,\n): string {\n if (model.namespaceId !== undefined && model.namespaceId.length > 0) {\n return model.namespaceId;\n }\n return modelNameToNamespaceId.get(model.modelName) ?? defaultNamespaceId;\n}\n\nfunction buildStorageColumn(\n field: FieldNode | ValueObjectFieldNode,\n codecLookup?: CodecLookup,\n): StorageColumn {\n if (isValueObjectField(field)) {\n const encodedDefault =\n field.default !== undefined\n ? encodeColumnDefault(field.default, JSONB_CODEC_ID, codecLookup)\n : undefined;\n\n return {\n nativeType: JSONB_NATIVE_TYPE,\n codecId: JSONB_CODEC_ID,\n nullable: field.nullable,\n ...ifDefined('default', encodedDefault),\n };\n }\n\n if (field.many) {\n return {\n nativeType: JSONB_NATIVE_TYPE,\n codecId: JSONB_CODEC_ID,\n nullable: field.nullable,\n };\n }\n\n const codecId = field.descriptor.codecId;\n const encodedDefault =\n field.default !== undefined\n ? encodeColumnDefault(field.default, codecId, codecLookup)\n : undefined;\n\n return {\n nativeType: field.descriptor.nativeType,\n codecId,\n nullable: field.nullable,\n ...ifDefined('typeParams', field.descriptor.typeParams),\n ...ifDefined('default', encodedDefault),\n ...ifDefined('typeRef', field.descriptor.typeRef),\n };\n}\n\nfunction buildDomainField(\n field: FieldNode | ValueObjectFieldNode,\n column: StorageColumn,\n): ContractField {\n if (isValueObjectField(field)) {\n return {\n type: { kind: 'valueObject', name: field.valueObjectName },\n nullable: field.nullable,\n ...(field.many ? { many: true } : {}),\n };\n }\n\n return {\n type: {\n kind: 'scalar',\n codecId: column.codecId,\n ...ifDefined('typeParams', column.typeParams),\n },\n nullable: column.nullable,\n ...(field.many ? { many: true } : {}),\n };\n}\n\nfunction collectStorageNamespaceCoordinateIds(definition: ContractDefinition): Set<string> {\n const ids = new Set<string>();\n ids.add(definition.target.defaultNamespaceId);\n for (const id of definition.namespaces ?? []) {\n if (id.length > 0) {\n ids.add(id);\n }\n }\n for (const model of definition.models) {\n if (model.namespaceId !== undefined && model.namespaceId.length > 0) {\n ids.add(model.namespaceId);\n }\n }\n return ids;\n}\n\nconst POSTGRES_ENUM_NAMESPACE_ID = 'public';\n\nfunction partitionStorageTypesForTarget(\n targetId: string,\n types: Record<string, StorageTypeInstance | PostgresEnumStorageEntry>,\n namespaceTypes?: Readonly<Record<string, Readonly<Record<string, PostgresEnumStorageEntry>>>>,\n): {\n readonly documentTypes: Record<string, StorageTypeInstance | PostgresEnumStorageEntry>;\n readonly namespaceEnumTypesById: Record<string, Record<string, PostgresEnumStorageEntry>>;\n} {\n const documentTypes: Record<string, StorageTypeInstance | PostgresEnumStorageEntry> = {};\n const namespaceEnumTypesById: Record<string, Record<string, PostgresEnumStorageEntry>> = {};\n for (const [name, entry] of Object.entries(types)) {\n if (isPostgresEnumStorageEntry(entry)) {\n if (targetId !== 'postgres') {\n throw new Error(\n `buildSqlContractFromDefinition: postgres enum \"${name}\" is only valid when target is \"postgres\" (got \"${targetId}\").`,\n );\n }\n let slot = namespaceEnumTypesById[POSTGRES_ENUM_NAMESPACE_ID];\n if (slot === undefined) {\n slot = {};\n namespaceEnumTypesById[POSTGRES_ENUM_NAMESPACE_ID] = slot;\n }\n slot[name] = entry;\n continue;\n }\n documentTypes[name] = entry;\n }\n if (namespaceTypes !== undefined) {\n for (const [nsId, enumsInNs] of Object.entries(namespaceTypes)) {\n for (const [name, entry] of Object.entries(enumsInNs)) {\n if (targetId !== 'postgres') {\n throw new Error(\n `buildSqlContractFromDefinition: postgres enum \"${name}\" is only valid when target is \"postgres\" (got \"${targetId}\").`,\n );\n }\n let slot = namespaceEnumTypesById[nsId];\n if (slot === undefined) {\n slot = {};\n namespaceEnumTypesById[nsId] = slot;\n }\n slot[name] = entry;\n }\n }\n }\n return { documentTypes, namespaceEnumTypesById };\n}\n\nexport function buildSqlContractFromDefinition(\n definition: ContractDefinition,\n codecLookup?: CodecLookup,\n): Contract<SqlStorage> {\n const target = definition.target.targetId;\n const defaultNamespaceId = definition.target.defaultNamespaceId;\n const targetFamily = 'sql';\n const modelsByName = new Map(definition.models.map((m) => [m.modelName, m]));\n\n const tablesByNamespace: Record<string, Record<string, StorageTable>> = {};\n const tableNameToNamespaceId = new Map<string, string>();\n const modelNameToNamespaceId = new Map<string, string>();\n const executionDefaults: ExecutionMutationDefault[] = [];\n const modelsByNamespace: Record<string, Record<string, ContractModel>> = {};\n const roots: Record<string, CrossReference> = {};\n\n for (const semanticModel of definition.models) {\n const tableName = semanticModel.tableName;\n const namespaceId =\n semanticModel.namespaceId !== undefined && semanticModel.namespaceId.length > 0\n ? semanticModel.namespaceId\n : defaultNamespaceId;\n modelNameToNamespaceId.set(semanticModel.modelName, namespaceId);\n roots[tableName] = crossRef(semanticModel.modelName, namespaceId);\n\n // --- Build storage table ---\n\n const columns: Record<string, StorageColumn> = {};\n const fieldToColumn: Record<string, string> = {};\n const domainFields: Record<string, ContractField> = {};\n const domainFieldRefs: Record<string, DomainFieldRef> = {};\n\n for (const field of semanticModel.fields) {\n const executionDefaultPhases =\n field.executionDefaults?.onCreate || field.executionDefaults?.onUpdate\n ? field.executionDefaults\n : undefined;\n if (executionDefaultPhases) {\n if (field.default !== undefined) {\n throw new Error(\n `Field \"${semanticModel.modelName}.${field.fieldName}\" cannot define both default and executionDefaults.`,\n );\n }\n if (field.nullable) {\n throw new Error(\n `Field \"${semanticModel.modelName}.${field.fieldName}\" cannot be nullable when executionDefaults are present.`,\n );\n }\n }\n\n const column = buildStorageColumn(field, codecLookup);\n columns[field.columnName] = column;\n fieldToColumn[field.fieldName] = field.columnName;\n\n domainFields[field.fieldName] = buildDomainField(field, column);\n\n if (isValueObjectField(field)) {\n domainFieldRefs[field.fieldName] = {\n kind: 'valueObject',\n name: field.valueObjectName,\n ...(field.many ? { many: true } : {}),\n };\n } else if (field.many) {\n domainFieldRefs[field.fieldName] = { kind: 'scalar', many: true };\n }\n\n if (executionDefaultPhases) {\n executionDefaults.push({\n ref: { table: tableName, column: field.columnName },\n ...ifDefined('onCreate', executionDefaultPhases.onCreate),\n ...ifDefined('onUpdate', executionDefaultPhases.onUpdate),\n });\n }\n }\n\n const foreignKeys = (semanticModel.foreignKeys ?? []).map((fk) => {\n const targetModel = assertKnownTargetModel(\n modelsByName,\n semanticModel.modelName,\n fk.references.model,\n 'Foreign key',\n );\n assertTargetTableMatches(\n semanticModel.modelName,\n targetModel,\n fk.references.table,\n 'Foreign key',\n );\n const targetNamespaceId =\n fk.references.namespaceId ??\n (targetModel.namespaceId !== undefined && targetModel.namespaceId.length > 0\n ? targetModel.namespaceId\n : defaultNamespaceId);\n return {\n source: { namespaceId: asNamespaceId(namespaceId), tableName, columns: fk.columns },\n target: {\n namespaceId: asNamespaceId(targetNamespaceId),\n tableName: fk.references.table,\n columns: fk.references.columns,\n },\n ...applyFkDefaults(\n {\n ...ifDefined('constraint', fk.constraint),\n ...ifDefined('index', fk.index),\n },\n definition.foreignKeyDefaults,\n ),\n ...ifDefined('name', fk.name),\n ...ifDefined('onDelete', fk.onDelete),\n ...ifDefined('onUpdate', fk.onUpdate),\n };\n });\n\n const existingNs = tableNameToNamespaceId.get(tableName);\n if (existingNs !== undefined && existingNs !== namespaceId) {\n throw new Error(\n `buildSqlContractFromDefinition: table \"${tableName}\" is mapped in namespace \"${namespaceId}\" but already exists in namespace \"${existingNs}\".`,\n );\n }\n tableNameToNamespaceId.set(tableName, namespaceId);\n\n const tableInput: StorageTableInput = {\n columns,\n ...ifDefined('control', semanticModel.control),\n uniques: (semanticModel.uniques ?? []).map((u) => ({\n columns: u.columns,\n ...ifDefined('name', u.name),\n })),\n indexes: (semanticModel.indexes ?? []).map((i) => ({\n columns: i.columns,\n ...ifDefined('name', i.name),\n ...ifDefined('type', i.type),\n ...ifDefined('options', i.options),\n })),\n foreignKeys,\n ...(semanticModel.id\n ? {\n primaryKey: {\n columns: semanticModel.id.columns,\n ...ifDefined('name', semanticModel.id.name),\n },\n }\n : {}),\n };\n\n let nsTables = tablesByNamespace[namespaceId];\n if (nsTables === undefined) {\n nsTables = {};\n tablesByNamespace[namespaceId] = nsTables;\n }\n if (nsTables[tableName] !== undefined) {\n throw new Error(\n `buildSqlContractFromDefinition: duplicate table \"${tableName}\" in namespace \"${namespaceId}\".`,\n );\n }\n nsTables[tableName] = new StorageTable(tableInput);\n\n // --- Build contract model ---\n\n const storageFields: Record<string, { readonly column: string }> = {};\n for (const [fieldName, columnName] of Object.entries(fieldToColumn)) {\n storageFields[fieldName] = { column: columnName };\n }\n\n const columnToField = new Map(\n Object.entries(fieldToColumn).map(([field, col]) => [col, field]),\n );\n const modelRelations: Record<string, ContractRelation> = {};\n for (const relation of semanticModel.relations ?? []) {\n const targetModel = assertKnownTargetModel(\n modelsByName,\n semanticModel.modelName,\n relation.toModel,\n 'Relation',\n );\n assertTargetTableMatches(semanticModel.modelName, targetModel, relation.toTable, 'Relation');\n\n if (relation.cardinality === 'N:M' && !relation.through) {\n throw new Error(\n `Relation \"${semanticModel.modelName}.${relation.fieldName}\" with cardinality \"N:M\" requires through metadata`,\n );\n }\n\n const targetColumnToField = new Map(\n targetModel.fields.map((f) => [f.columnName, f.fieldName]),\n );\n\n modelRelations[relation.fieldName] = {\n to: crossRef(\n relation.toModel,\n resolveModelNamespaceId(targetModel, modelNameToNamespaceId, defaultNamespaceId),\n ),\n // RelationDefinition.cardinality includes 'N:M' which isn't in\n // ContractReferenceRelation yet — cast is needed until the contract\n // type is extended to cover many-to-many.\n cardinality: relation.cardinality as ContractRelation['cardinality'],\n on: {\n localFields: relation.on.parentColumns.map((col) => columnToField.get(col) ?? col),\n targetFields: relation.on.childColumns.map((col) => targetColumnToField.get(col) ?? col),\n },\n ...(relation.through\n ? {\n through: {\n table: relation.through.table,\n parentCols: relation.through.parentColumns,\n childCols: relation.through.childColumns,\n },\n }\n : undefined),\n };\n }\n\n let namespaceModels = modelsByNamespace[namespaceId];\n if (namespaceModels === undefined) {\n namespaceModels = {};\n modelsByNamespace[namespaceId] = namespaceModels;\n }\n namespaceModels[semanticModel.modelName] = {\n storage: {\n table: tableName,\n namespaceId,\n fields: storageFields,\n },\n fields: domainFields,\n relations: modelRelations,\n };\n }\n\n // --- Assemble contract ---\n\n // Normalise raw codec-triple inputs to the `kind: 'codec-instance'`\n // discriminator shape before hashing so the storageHash matches the\n // persisted JSON envelope produced from the SqlStorage class instance\n // (which always carries the discriminator).\n const rawStorageTypes = (definition.storageTypes ?? {}) as Record<\n string,\n StorageTypeInstance | PostgresEnumStorageEntry\n >;\n const storageTypes = Object.fromEntries(\n Object.entries(rawStorageTypes).map(([name, entry]) => {\n if (isPostgresEnumStorageEntry(entry)) return [name, entry];\n if ((entry as { kind?: unknown }).kind === 'codec-instance') return [name, entry];\n return [\n name,\n toStorageTypeInstance({\n codecId: entry.codecId,\n nativeType: entry.nativeType,\n typeParams: (entry as { typeParams?: Record<string, unknown> }).typeParams ?? {},\n }),\n ];\n }),\n );\n const { documentTypes, namespaceEnumTypesById } = partitionStorageTypesForTarget(\n target,\n storageTypes,\n definition.namespaceTypes,\n );\n const namespaceCoordinateIds = collectStorageNamespaceCoordinateIds(definition);\n for (const id of Object.keys(namespaceEnumTypesById)) {\n namespaceCoordinateIds.add(id);\n }\n const { createNamespace } = definition;\n const namespaces = blindCast<\n SqlStorageInput['namespaces'],\n 'contract authoring materialises each namespace coordinate from the model set and explicit namespace list'\n >(\n Object.fromEntries(\n [...namespaceCoordinateIds].sort().map((id) => {\n const enumTypes = namespaceEnumTypesById[id];\n const nsInput: SqlNamespaceTablesInput = {\n id,\n tables: tablesByNamespace[id] ?? {},\n ...ifDefined('enum', enumTypes),\n };\n return [id, createNamespace ? createNamespace(nsInput) : buildSqlNamespace(nsInput)];\n }),\n ),\n );\n const storageWithoutHash = {\n ...(Object.keys(documentTypes).length > 0 ? { types: documentTypes } : {}),\n namespaces,\n };\n const storageHash: StorageHashBase<string> = definition.storageHash\n ? coreHash(definition.storageHash)\n : computeStorageHash({\n target,\n targetFamily,\n storage: storageWithoutHash as Record<string, unknown>,\n ...sqlContractCanonicalizationHooks,\n });\n const storage = new SqlStorage({ ...storageWithoutHash, storageHash });\n\n const executionSection =\n executionDefaults.length > 0\n ? {\n mutations: {\n defaults: executionDefaults.sort((a, b) => {\n const tableCompare = a.ref.table.localeCompare(b.ref.table);\n if (tableCompare !== 0) {\n return tableCompare;\n }\n return a.ref.column.localeCompare(b.ref.column);\n }),\n },\n }\n : undefined;\n\n const extensionNamespaces = definition.extensionPacks\n ? Object.values(definition.extensionPacks).map((pack) => pack.id)\n : undefined;\n\n const extensionPacks: Record<string, unknown> = { ...(definition.extensionPacks || {}) };\n if (extensionNamespaces) {\n for (const namespace of extensionNamespaces) {\n if (!Object.hasOwn(extensionPacks, namespace)) {\n extensionPacks[namespace] = {};\n }\n }\n }\n\n const extensionPackCapabilitySources = definition.extensionPacks\n ? Object.values(definition.extensionPacks).map(\n (pack) => pack.capabilities as CapabilityMatrix | undefined,\n )\n : [];\n const capabilities = mergeCapabilityMatrices(\n definition.target.capabilities as CapabilityMatrix | undefined,\n ...extensionPackCapabilitySources,\n );\n // Internal `profileHash` computation is unchanged from `origin/main`: it\n // continues to fingerprint the author-declared capability subset. With\n // `capabilities` removed from the `defineContract` input that subset is\n // now always empty, so the hash naturally stabilises at `hash({})`.\n const profileHash = computeProfileHash({\n target,\n targetFamily,\n capabilities: {},\n });\n\n const executionWithHash = executionSection\n ? {\n ...executionSection,\n executionHash: computeExecutionHash({ target, targetFamily, execution: executionSection }),\n }\n : undefined;\n\n const valueObjects: Record<string, ContractValueObject> | undefined =\n definition.valueObjects && definition.valueObjects.length > 0\n ? Object.fromEntries(\n definition.valueObjects.map((vo) => [\n vo.name,\n {\n fields: Object.fromEntries(\n vo.fields.map((f) => [\n f.fieldName,\n isValueObjectField(f)\n ? {\n type: { kind: 'valueObject' as const, name: f.valueObjectName },\n nullable: f.nullable,\n ...(f.many ? { many: true } : {}),\n }\n : {\n type: {\n kind: 'scalar' as const,\n codecId: f.descriptor.codecId,\n ...ifDefined('typeParams', f.descriptor.typeParams),\n },\n nullable: f.nullable,\n },\n ]),\n ),\n },\n ]),\n )\n : undefined;\n\n const domainNamespaceIds = new Set(Object.keys(modelsByNamespace));\n if (domainNamespaceIds.size === 0) {\n domainNamespaceIds.add(defaultNamespaceId);\n }\n if (valueObjects !== undefined) {\n domainNamespaceIds.add(defaultNamespaceId);\n }\n const domainNamespaces = Object.fromEntries(\n [...domainNamespaceIds].sort().map((namespaceId) => {\n const modelsInNs = modelsByNamespace[namespaceId] ?? {};\n const namespaceSlice =\n namespaceId === defaultNamespaceId && valueObjects !== undefined\n ? { models: modelsInNs, valueObjects }\n : { models: modelsInNs };\n return [namespaceId, namespaceSlice];\n }),\n );\n\n const contract: Contract<SqlStorage> = {\n target,\n targetFamily,\n ...ifDefined('defaultControlPolicy', definition.defaultControlPolicy),\n domain: { namespaces: domainNamespaces },\n roots,\n storage,\n ...(executionWithHash ? { execution: executionWithHash } : {}),\n extensionPacks,\n capabilities,\n profileHash,\n meta: {},\n };\n\n assertStorageSemantics(definition, contract);\n\n return contract;\n}\n"],"mappings":"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"}