@prisma/orm-family-sql 8.0.0-rc.18-dev.2 → 8.0.0-rc.18-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/orm-family-sql",
3
- "version": "8.0.0-rc.18-dev.2",
3
+ "version": "8.0.0-rc.18-dev.4",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -9,8 +9,8 @@
9
9
  "dist"
10
10
  ],
11
11
  "dependencies": {
12
- "@prisma/orm-framework": "8.0.0-rc.18-dev.2",
13
- "@prisma/orm-toolchain": "8.0.0-rc.18-dev.2",
12
+ "@prisma/orm-framework": "8.0.0-rc.18-dev.4",
13
+ "@prisma/orm-toolchain": "8.0.0-rc.18-dev.4",
14
14
  "@standard-schema/spec": "^1.1.0",
15
15
  "arktype": "^2.2.2",
16
16
  "pathe": "^2.0.3",
@@ -19,21 +19,21 @@
19
19
  "ts-toolbelt": "^9.6.0"
20
20
  },
21
21
  "devDependencies": {
22
- "@internal/family-sql": "8.0.0-rc.18-dev.2",
23
- "@internal/sql-builder": "8.0.0-rc.18-dev.2",
24
- "@internal/sql-contract": "8.0.0-rc.18-dev.2",
25
- "@internal/sql-contract-emitter": "8.0.0-rc.18-dev.2",
26
- "@internal/sql-contract-prisma7": "8.0.0-rc.18-dev.2",
27
- "@internal/sql-contract-psl": "8.0.0-rc.18-dev.2",
28
- "@internal/sql-contract-ts": "8.0.0-rc.18-dev.2",
29
- "@internal/sql-errors": "8.0.0-rc.18-dev.2",
30
- "@internal/sql-operations": "8.0.0-rc.18-dev.2",
31
- "@internal/sql-orm-client": "8.0.0-rc.18-dev.2",
32
- "@internal/sql-relational-core": "8.0.0-rc.18-dev.2",
33
- "@internal/sql-runtime": "8.0.0-rc.18-dev.2",
34
- "@internal/sql-schema-ir": "8.0.0-rc.18-dev.2",
35
- "@repo/tsconfig": "8.0.0-rc.18-dev.2",
36
- "@repo/tsdown": "8.0.0-rc.18-dev.2",
22
+ "@internal/family-sql": "8.0.0-rc.18-dev.4",
23
+ "@internal/sql-builder": "8.0.0-rc.18-dev.4",
24
+ "@internal/sql-contract": "8.0.0-rc.18-dev.4",
25
+ "@internal/sql-contract-emitter": "8.0.0-rc.18-dev.4",
26
+ "@internal/sql-contract-prisma7": "8.0.0-rc.18-dev.4",
27
+ "@internal/sql-contract-psl": "8.0.0-rc.18-dev.4",
28
+ "@internal/sql-contract-ts": "8.0.0-rc.18-dev.4",
29
+ "@internal/sql-errors": "8.0.0-rc.18-dev.4",
30
+ "@internal/sql-operations": "8.0.0-rc.18-dev.4",
31
+ "@internal/sql-orm-client": "8.0.0-rc.18-dev.4",
32
+ "@internal/sql-relational-core": "8.0.0-rc.18-dev.4",
33
+ "@internal/sql-runtime": "8.0.0-rc.18-dev.4",
34
+ "@internal/sql-schema-ir": "8.0.0-rc.18-dev.4",
35
+ "@repo/tsconfig": "8.0.0-rc.18-dev.4",
36
+ "@repo/tsdown": "8.0.0-rc.18-dev.4",
37
37
  "tsdown": "0.22.14",
38
38
  "typescript": "5.9.3"
39
39
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"dist-D8EkCena.mjs","names":[],"sources":["../../../../2-sql/3-tooling/emitter/dist/index.mjs"],"sourcesContent":["import { renderValueSetType, serializeNamespaceId, serializeObjectKey, serializeValue } from \"@internal/emitter/domain-type-generation\";\nimport { isSafeTypeExpression } from \"@internal/emitter/type-expression-safety\";\nimport { settleAggregateOverloads } from \"@internal/framework-components/components\";\nimport { UNBOUND_NAMESPACE_ID, entityAt } from \"@internal/framework-components/ir\";\nimport { resolvedTypeParams } from \"@internal/sql-contract/types\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { structuredError } from \"@internal/utils/structured-error\";\n//#region src/errors.ts\nfunction sqlEmitterError(code, message, options) {\n\treturn structuredError(code, message, options);\n}\nfunction sqlEmitterValidationError(message, meta) {\n\treturn sqlEmitterError(\"CONTRACT.VALIDATION_FAILED\", message, {\n\t\twhy: \"The contract given to the SQL emitter failed structural validation.\",\n\t\tfix: \"Regenerate the contract from its authoring source; do not hand-edit contract JSON.\",\n\t\tmeta\n\t});\n}\n//#endregion\n//#region src/index.ts\n/**\n* Render the aggregate result map from the overloads the stack contributes, settled against the codecs it contributes.\n*\n* Every emitted row is keyed by a contributed codec, whichever rung settled it. Trait fallbacks reach only the contributed codecs to begin with, and an exact overload naming an uncontributed codec is dropped here — settling keeps such a row, because naming a codec id is a claim that stands on its own and the runtime honours it for whatever ref reaches it, but a target may register codecs its adapter withholds, and an emitted type over one of those would advertise availability no contract can use.\n*\n* Only the two rungs that name a codec are materialized; the input-agnostic overload stays a single row, which a consumer reads when no per-codec row claims its input.\n*/\nfunction generateAggregateTypes(options) {\n\tconst descriptors = options?.aggregateDescriptors ?? [];\n\tconst codecs = options?.codecDescriptors ?? [];\n\tif (descriptors.length === 0) return \"Record<string, never>\";\n\tconst contributedIds = new Set(codecs.map((codec) => codec.codecId));\n\tconst settled = settleAggregateOverloads(descriptors, codecs);\n\tconst ambiguity = settled.ambiguities[0];\n\tif (ambiguity !== void 0) throw sqlEmitterError(\"CONTRACT.AGGREGATE_DESCRIPTOR_AMBIGUOUS\", `Aggregate '${ambiguity.operation}' has no single result type over codec '${ambiguity.codecId}': traits ${ambiguity.traits.join(\", \")} all claim it.`, {\n\t\twhy: \"Emitted result types must name one codec per aggregate and input.\",\n\t\tfix: `Contribute an exact descriptor for '${ambiguity.operation}' over '${ambiguity.codecId}', or narrow the overlapping trait contributions.`,\n\t\tmeta: {\n\t\t\toperation: ambiguity.operation,\n\t\t\tcodecId: ambiguity.codecId,\n\t\t\ttraits: ambiguity.traits\n\t\t}\n\t});\n\treturn `{ ${[...settled.operations].sort(([left], [right]) => left.localeCompare(right)).map(([operation, entry]) => {\n\t\tconst members = [`readonly byCodec: { ${[...entry.byCodecId].filter(([codecId]) => contributedIds.has(codecId)).sort(([left], [right]) => left.localeCompare(right)).map(([codecId, descriptor]) => {\n\t\t\treturn `readonly ${serializeObjectKey(codecId)}: ${renderAggregateResult(descriptor, codecId, contributedIds)}`;\n\t\t}).join(\"; \")} }`];\n\t\tconst withoutInput = entry.noInput ?? entry.anyInput;\n\t\tif (withoutInput !== void 0) members.push(`readonly withoutInput: ${renderAggregateResult(withoutInput, void 0, contributedIds)}`);\n\t\tif (entry.anyInput !== void 0) members.push(`readonly anyInput: ${renderAggregateResult(entry.anyInput, void 0, contributedIds)}`);\n\t\treturn `readonly ${serializeObjectKey(operation)}: { ${members.join(\"; \")} }`;\n\t}).join(\"; \")} }`;\n}\n/** One row of the map: the codec the result carries, and whether it can be null. A `self` result carries the codec of the input it was resolved for. */\nfunction renderAggregateResult(descriptor, inputCodecId, contributedIds) {\n\tconst output = descriptor.output.kind === \"self\" ? inputCodecId : descriptor.output.codecId;\n\tif (output === void 0) throw sqlEmitterError(\"CONTRACT.AGGREGATE_DESCRIPTOR_AMBIGUOUS\", `Aggregate '${descriptor.operation}' declares its own input's codec as its result but answers calls that carry no input.`, {\n\t\twhy: \"A result that reuses its input needs an input to reuse.\",\n\t\tfix: \"Name the result codec on the descriptor.\",\n\t\tmeta: { operation: descriptor.operation }\n\t});\n\tif (!contributedIds.has(output)) throw sqlEmitterError(\"CONTRACT.AGGREGATE_OUTPUT_CODEC_MISSING\", `Aggregate '${descriptor.operation}' names result codec '${output}', which the stack does not contribute.`, {\n\t\twhy: \"An emitted result type names a codec in the contract codec map; a codec the stack does not contribute has no emitted type to name.\",\n\t\tfix: \"Contribute the codec, or declare a result codec the stack contributes.\",\n\t\tmeta: {\n\t\t\toperation: descriptor.operation,\n\t\t\toutputCodecId: output\n\t\t}\n\t});\n\treturn `{ readonly output: ${serializeValue(output)}; readonly nullable: ${descriptor.nullable} }`;\n}\nfunction serializeTypeParamsLiteral(params) {\n\tif (!params || Object.keys(params).length === 0) return \"Record<string, never>\";\n\tconst entries = [];\n\tfor (const [key, value] of Object.entries(params)) entries.push(`readonly ${serializeObjectKey(key)}: ${serializeValue(value)}`);\n\treturn `{ ${entries.join(\"; \")} }`;\n}\nconst sqlEmission = {\n\tid: \"sql\",\n\tvalidateTypes(contract, _ctx) {\n\t\tconst storage = contract.storage;\n\t\tif (!storage?.namespaces) return;\n\t\tconst typeIdRegex = /^([^/]+)\\/([^@]+)@(\\d+)$/;\n\t\tfor (const ns of Object.values(storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) for (const [colName, colUnknown] of Object.entries(table.columns)) {\n\t\t\tconst codecId = colUnknown.codecId;\n\t\t\tif (!codecId) throw sqlEmitterValidationError(`Column \"${colName}\" in table \"${tableName}\" is missing codecId`, {\n\t\t\t\ttable: tableName,\n\t\t\t\tcolumn: colName\n\t\t\t});\n\t\t\tif (!codecId.match(typeIdRegex)?.[1]) throw sqlEmitterValidationError(`Column \"${colName}\" in table \"${tableName}\" has invalid codec ID format \"${codecId}\". Expected format: ns/name@version`, {\n\t\t\t\ttable: tableName,\n\t\t\t\tcolumn: colName,\n\t\t\t\tcodecId\n\t\t\t});\n\t\t}\n\t},\n\tvalidateStructure(contract) {\n\t\tif (contract.targetFamily !== \"sql\") throw sqlEmitterValidationError(`Expected targetFamily \"sql\", got \"${contract.targetFamily}\"`, { targetFamily: contract.targetFamily });\n\t\tconst storage = contract.storage;\n\t\tif (!storage?.namespaces) throw sqlEmitterValidationError(\"SQL contract must have storage.namespaces\", {});\n\t\tconst tableNamesSeenAcrossNamespaces = /* @__PURE__ */ new Map();\n\t\tfor (const [nsId, ns] of Object.entries(storage.namespaces)) for (const tableName of Object.keys(ns.entries.table ?? {})) {\n\t\t\tconst existingNs = tableNamesSeenAcrossNamespaces.get(tableName);\n\t\t\tif (existingNs !== void 0 && existingNs !== nsId) throw sqlEmitterError(\"CONTRACT.NAME_DUPLICATE\", `Duplicate table name \"${tableName}\" in namespaces \"${existingNs}\" and \"${nsId}\"`, {\n\t\t\t\twhy: \"Two SQL namespaces declare a table with the same name, which is ambiguous for emission.\",\n\t\t\t\tfix: \"Rename one of the tables so every table name is unique across namespaces.\",\n\t\t\t\tmeta: {\n\t\t\t\t\ttable: tableName,\n\t\t\t\t\tnamespaces: [existingNs, nsId]\n\t\t\t\t}\n\t\t\t});\n\t\t\ttableNamesSeenAcrossNamespaces.set(tableName, nsId);\n\t\t}\n\t\tconst tableNames = /* @__PURE__ */ new Set();\n\t\tfor (const ns of Object.values(storage.namespaces)) for (const t of Object.keys(ns.entries.table ?? {})) tableNames.add(t);\n\t\tfor (const [namespaceId, domainNs] of Object.entries(contract.domain.namespaces)) {\n\t\t\tconst models = domainNs.models;\n\t\t\tfor (const [modelName, model] of Object.entries(models)) {\n\t\t\t\tconst qualifiedName = `${namespaceId}:${modelName}`;\n\t\t\t\tif (!model.storage?.table) throw sqlEmitterValidationError(`Model \"${qualifiedName}\" is missing storage.table`, { model: qualifiedName });\n\t\t\t\tif (!model.storage.namespaceId) throw sqlEmitterValidationError(`Model \"${qualifiedName}\" is missing storage.namespaceId`, { model: qualifiedName });\n\t\t\t\tif (model.storage.namespaceId !== namespaceId) throw sqlEmitterValidationError(`Model \"${qualifiedName}\" storage.namespaceId \"${model.storage.namespaceId}\" does not match domain namespace \"${namespaceId}\"`, {\n\t\t\t\t\tmodel: qualifiedName,\n\t\t\t\t\tstorageNamespaceId: model.storage.namespaceId,\n\t\t\t\t\tdomainNamespaceId: namespaceId\n\t\t\t\t});\n\t\t\t\tconst tableName = model.storage.table;\n\t\t\t\tconst table = entityAt(storage, {\n\t\t\t\t\tnamespaceId,\n\t\t\t\t\tentityKind: \"table\",\n\t\t\t\t\tentityName: tableName\n\t\t\t\t});\n\t\t\t\tif (!table) throw sqlEmitterValidationError(`Model \"${qualifiedName}\" references non-existent table \"${namespaceId}.${tableName}\"`, {\n\t\t\t\t\tmodel: qualifiedName,\n\t\t\t\t\ttable: `${namespaceId}.${tableName}`\n\t\t\t\t});\n\t\t\t\tconst columnNames = new Set(Object.keys(table.columns));\n\t\t\t\tconst storageFields = model.storage.fields;\n\t\t\t\tif (!storageFields || Object.keys(storageFields).length === 0) throw sqlEmitterValidationError(`Model \"${qualifiedName}\" is missing storage.fields`, { model: qualifiedName });\n\t\t\t\tfor (const [fieldName, field] of Object.entries(storageFields)) {\n\t\t\t\t\tif (!field.column) throw sqlEmitterValidationError(`Model \"${qualifiedName}\" field \"${fieldName}\" is missing column property`, {\n\t\t\t\t\t\tmodel: qualifiedName,\n\t\t\t\t\t\tfield: fieldName\n\t\t\t\t\t});\n\t\t\t\t\tif (!columnNames.has(field.column)) throw sqlEmitterValidationError(`Model \"${qualifiedName}\" field \"${fieldName}\" references non-existent column \"${field.column}\" in table \"${tableName}\"`, {\n\t\t\t\t\t\tmodel: qualifiedName,\n\t\t\t\t\t\tfield: fieldName,\n\t\t\t\t\t\tcolumn: field.column,\n\t\t\t\t\t\ttable: tableName\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (!model.relations || typeof model.relations !== \"object\") throw sqlEmitterValidationError(`Model \"${qualifiedName}\" is missing required field \"relations\" (must be an object)`, { model: qualifiedName });\n\t\t\t}\n\t\t}\n\t\tfor (const ns of Object.values(storage.namespaces)) for (const [tableName, table] of Object.entries(ns.entries.table ?? {})) {\n\t\t\tconst columnNames = new Set(Object.keys(table.columns));\n\t\t\tif (!Array.isArray(table.uniques)) throw sqlEmitterValidationError(`Table \"${tableName}\" is missing required field \"uniques\" (must be an array)`, { table: tableName });\n\t\t\tif (!Array.isArray(table.indexes)) throw sqlEmitterValidationError(`Table \"${tableName}\" is missing required field \"indexes\" (must be an array)`, { table: tableName });\n\t\t\tif (!Array.isArray(table.foreignKeys)) throw sqlEmitterValidationError(`Table \"${tableName}\" is missing required field \"foreignKeys\" (must be an array)`, { table: tableName });\n\t\t\tif (table.primaryKey) {\n\t\t\t\tfor (const colName of table.primaryKey.columns) if (!columnNames.has(colName)) throw sqlEmitterValidationError(`Table \"${tableName}\" primaryKey references non-existent column \"${colName}\"`, {\n\t\t\t\t\ttable: tableName,\n\t\t\t\t\tcolumn: colName\n\t\t\t\t});\n\t\t\t}\n\t\t\tfor (const unique of table.uniques) for (const colName of unique.columns) if (!columnNames.has(colName)) throw sqlEmitterValidationError(`Table \"${tableName}\" unique constraint references non-existent column \"${colName}\"`, {\n\t\t\t\ttable: tableName,\n\t\t\t\tcolumn: colName\n\t\t\t});\n\t\t\tfor (const index of table.indexes) for (const colName of index.columns) if (!columnNames.has(colName)) throw sqlEmitterValidationError(`Table \"${tableName}\" index references non-existent column \"${colName}\"`, {\n\t\t\t\ttable: tableName,\n\t\t\t\tcolumn: colName\n\t\t\t});\n\t\t\tfor (const fk of table.foreignKeys) {\n\t\t\t\tfor (const colName of fk.source.columns) if (!columnNames.has(colName)) throw sqlEmitterValidationError(`Table \"${tableName}\" foreignKey references non-existent column \"${colName}\"`, {\n\t\t\t\t\ttable: tableName,\n\t\t\t\t\tcolumn: colName\n\t\t\t\t});\n\t\t\t\tconst referencedTable = entityAt(storage, {\n\t\t\t\t\tnamespaceId: fk.target.namespaceId,\n\t\t\t\t\tentityKind: \"table\",\n\t\t\t\t\tentityName: fk.target.tableName\n\t\t\t\t});\n\t\t\t\tif (!referencedTable) throw sqlEmitterValidationError(`Table \"${tableName}\" foreignKey references non-existent table \"${fk.target.tableName}\" in namespace \"${fk.target.namespaceId}\"`, {\n\t\t\t\t\ttable: tableName,\n\t\t\t\t\ttargetTable: fk.target.tableName,\n\t\t\t\t\ttargetNamespace: fk.target.namespaceId\n\t\t\t\t});\n\t\t\t\tconst referencedColumnNames = new Set(Object.keys(referencedTable.columns));\n\t\t\t\tfor (const colName of fk.target.columns) if (!referencedColumnNames.has(colName)) throw sqlEmitterValidationError(`Table \"${tableName}\" foreignKey references non-existent column \"${colName}\" in table \"${fk.target.tableName}\"`, {\n\t\t\t\t\ttable: tableName,\n\t\t\t\t\tcolumn: colName,\n\t\t\t\t\ttargetTable: fk.target.tableName\n\t\t\t\t});\n\t\t\t\tif (fk.source.columns.length !== fk.target.columns.length) throw sqlEmitterValidationError(`Table \"${tableName}\" foreignKey column count (${fk.source.columns.length}) does not match referenced column count (${fk.target.columns.length})`, {\n\t\t\t\t\ttable: tableName,\n\t\t\t\t\tsourceColumnCount: fk.source.columns.length,\n\t\t\t\t\ttargetColumnCount: fk.target.columns.length\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\tgenerateStorageType(contract, storageHashTypeName) {\n\t\tconst storage = contract.storage;\n\t\tconst namespacesType = generateStorageNamespacesType(storage.namespaces);\n\t\tconst docTypes = generateDocumentScopedStorageTypesType(storage.types);\n\t\treturn `{ readonly namespaces: ${namespacesType}${docTypes === void 0 ? \"\" : `; readonly types: ${docTypes}`}; readonly storageHash: ${storageHashTypeName} }`;\n\t},\n\tgenerateModelStorageType(_modelName, model) {\n\t\tconst sqlModel = model;\n\t\tconst tableName = sqlModel.storage.table;\n\t\tconst storageFields = sqlModel.storage.fields;\n\t\tconst storageParts = [`readonly table: ${serializeValue(tableName)}`, `readonly namespaceId: ${serializeValue(sqlModel.storage.namespaceId)}`];\n\t\tif (Object.keys(storageFields).length > 0) {\n\t\t\tconst fieldParts = [];\n\t\t\tfor (const [fieldName, field] of Object.entries(storageFields)) fieldParts.push(`readonly ${serializeObjectKey(fieldName)}: { readonly column: ${serializeValue(field.column)} }`);\n\t\t\tstorageParts.push(`readonly fields: { ${fieldParts.join(\"; \")} }`);\n\t\t}\n\t\treturn `{ ${storageParts.join(\"; \")} }`;\n\t},\n\tresolveFieldValueSet(_modelName, fieldName, model, contract) {\n\t\tconst sqlModel = blindCast(model);\n\t\tconst storageField = sqlModel.storage?.fields?.[fieldName];\n\t\tif (!storageField) return void 0;\n\t\tconst storage = blindCast(contract.storage);\n\t\tif (!storage) return void 0;\n\t\tconst storageNamespaceId = sqlModel.storage.namespaceId;\n\t\tif (!storageNamespaceId) return void 0;\n\t\tconst column = entityAt(storage, {\n\t\t\tnamespaceId: storageNamespaceId,\n\t\t\tentityKind: \"table\",\n\t\t\tentityName: sqlModel.storage.table\n\t\t})?.columns[storageField.column];\n\t\tif (!column?.valueSet) return void 0;\n\t\tconst valueSet = entityAt(storage, {\n\t\t\tnamespaceId: column.valueSet.namespaceId,\n\t\t\tentityKind: column.valueSet.entityKind,\n\t\t\tentityName: column.valueSet.entityName\n\t\t});\n\t\tif (!valueSet) return void 0;\n\t\treturn {\n\t\t\tencodedValues: valueSet.values,\n\t\t\tcodecId: column.codecId\n\t\t};\n\t},\n\tgetStorageTypeExports(contract, codecLookup) {\n\t\tconst storage = blindCast(contract.storage);\n\t\tif (!storage?.namespaces) return void 0;\n\t\tconst outputMap = generateStorageColumnTypesMap(storage, \"output\", codecLookup);\n\t\tconst inputMap = generateStorageColumnTypesMap(storage, \"input\", codecLookup);\n\t\treturn [`export type StorageColumnTypes = ${outputMap};`, `export type StorageColumnInputTypes = ${inputMap};`].join(\"\\n\");\n\t},\n\tgetFamilyImports(resolveImportSpecifier) {\n\t\treturn [\n\t\t\t\"import type {\",\n\t\t\t\" ContractWithTypeMaps,\",\n\t\t\t\" RelationKeys,\",\n\t\t\t\" TypeMaps as TypeMapsType,\",\n\t\t\t`} from '${resolveImportSpecifier(\"@internal/sql-contract/types\")}';`\n\t\t];\n\t},\n\tgetFamilyTypeAliases(options) {\n\t\tconst queryOperationAliases = (options?.queryOperationTypeImports ?? []).filter((imp) => imp.named === \"QueryOperationTypes\").map((imp) => `${imp.alias}<CodecTypes>`);\n\t\treturn [\n\t\t\t\"export type LaneCodecTypes = CodecTypes;\",\n\t\t\t`export type QueryOperationTypes = ${queryOperationAliases.length > 0 ? queryOperationAliases.join(\" & \") : \"Record<string, never>\"};`,\n\t\t\t`export type AggregateTypes = ${generateAggregateTypes(options)};`,\n\t\t\t\"type DefaultLiteralValue<CodecId extends string, Encoded> =\",\n\t\t\t\" CodecId extends keyof CodecTypes\",\n\t\t\t\" ? Encoded extends CodecTypes[CodecId][\\\"json\\\"]\",\n\t\t\t\" ? Encoded\",\n\t\t\t\" : CodecTypes[CodecId][\\\"json\\\"]\",\n\t\t\t\" : Encoded;\"\n\t\t].join(\"\\n\");\n\t},\n\tgetTypeMapsExpression() {\n\t\treturn \"TypeMapsType<CodecTypes, QueryOperationTypes, FieldOutputTypes, FieldInputTypes, StorageColumnTypes, StorageColumnInputTypes, AggregateTypes>\";\n\t},\n\tgetContractWrapper(contractBaseName, typeMapsName) {\n\t\treturn [\n\t\t\t`export type Contract = ContractWithTypeMaps<${contractBaseName}, ${typeMapsName}>;`,\n\t\t\t\"\",\n\t\t\t\"export type Namespaces = Contract['storage']['namespaces'];\"\n\t\t].join(\"\\n\");\n\t}\n};\nfunction renderRefinedCodecType(column, side, params, codecLookup) {\n\tif (codecLookup && params) {\n\t\tconst rendered = side === \"output\" ? codecLookup.renderOutputTypeFor(column.codecId, params) : codecLookup.renderInputTypeFor?.(column.codecId, params);\n\t\tif (rendered && isSafeTypeExpression(rendered)) return rendered;\n\t}\n\treturn `CodecTypes[${serializeValue(column.codecId)}][${serializeValue(side)}]`;\n}\nfunction computeColumnType(storage, column, side, codecLookup) {\n\tlet base;\n\tif (column.valueSet) {\n\t\tconst valueSet = entityAt(storage, {\n\t\t\tnamespaceId: column.valueSet.namespaceId,\n\t\t\tentityKind: column.valueSet.entityKind,\n\t\t\tentityName: column.valueSet.entityName\n\t\t});\n\t\tbase = valueSet ? renderValueSetType(valueSet.values, column.codecId, side, codecLookup) : void 0;\n\t}\n\tif (base === void 0) base = renderRefinedCodecType(column, side, resolvedTypeParams(column, storage.types), codecLookup);\n\tif (column.many !== false) base = `ReadonlyArray<${column.many.elementNullable ? `${base} | null` : base}>`;\n\treturn column.nullable ? `${base} | null` : base;\n}\nfunction generateStorageColumnTypesMap(storage, side, codecLookup) {\n\tconst namespaceEntries = Object.entries(storage.namespaces ?? {}).sort(([a], [b]) => a.localeCompare(b));\n\tif (namespaceEntries.length === 0) return \"Record<string, never>\";\n\tconst nsParts = [];\n\tfor (const [nsId, ns] of namespaceEntries) {\n\t\tconst tables = blindCast(ns.entries.table ?? {});\n\t\tconst tableEntries = Object.entries(tables).sort(([a], [b]) => a.localeCompare(b));\n\t\tconst tableParts = [];\n\t\tfor (const [tableName, table] of tableEntries) {\n\t\t\tconst colEntries = Object.entries(table.columns).sort(([a], [b]) => a.localeCompare(b));\n\t\t\tconst colParts = [];\n\t\t\tfor (const [colName, col] of colEntries) {\n\t\t\t\tconst colType = computeColumnType(storage, col, side, codecLookup);\n\t\t\t\tcolParts.push(`readonly ${serializeObjectKey(colName)}: ${colType}`);\n\t\t\t}\n\t\t\tconst colMap = colParts.length > 0 ? `{ ${colParts.join(\"; \")} }` : \"{}\";\n\t\t\ttableParts.push(`readonly ${serializeObjectKey(tableName)}: ${colMap}`);\n\t\t}\n\t\tconst tableMap = tableParts.length > 0 ? `{ ${tableParts.join(\"; \")} }` : \"{}\";\n\t\tnsParts.push(`readonly ${serializeObjectKey(nsId)}: ${tableMap}`);\n\t}\n\treturn `{ ${nsParts.join(\"; \")} }`;\n}\nfunction generateDocumentScopedStorageTypesType(types) {\n\tif (!types || Object.keys(types).length === 0) return;\n\tconst typeEntries = [];\n\tfor (const [typeName, typeInstance] of Object.entries(types)) {\n\t\tconst codecInstanceShape = typeInstance;\n\t\tif (typeof codecInstanceShape.codecId !== \"string\" || typeof codecInstanceShape.dataType !== \"string\") throw sqlEmitterError(\"CONTRACT.TYPE_UNKNOWN\", `Unknown storage type kind for \"${typeName}\" in document-scoped storage.types; expected a codec-instance triple.`, {\n\t\t\twhy: \"A storage.types entry is not a codec-instance triple, so its column type cannot be emitted.\",\n\t\t\tfix: \"Regenerate the contract from its authoring source; storage.types entries must carry codecId and dataType.\",\n\t\t\tmeta: { type: typeName }\n\t\t});\n\t\tconst codecId = serializeValue(codecInstanceShape.codecId);\n\t\tconst dataType = serializeValue(codecInstanceShape.dataType);\n\t\tconst typeParamsStr = serializeTypeParamsLiteral(codecInstanceShape.typeParams);\n\t\ttypeEntries.push(`readonly ${serializeObjectKey(typeName)}: { readonly kind: \"codec-instance\"; readonly codecId: ${codecId}; readonly dataType: ${dataType}; readonly typeParams: ${typeParamsStr} }`);\n\t}\n\treturn `{ ${typeEntries.join(\"; \")} }`;\n}\n/**\n* Literalizes the `valueSet` entries slot — a core SQL entity kind (alongside\n* `table`), not a pack-contributed one, so naming it here isn't a\n* family→target layering leak. This is the only non-`table` entries slot with\n* a type-level consumer (`db.nativeEnums`, `packages/3-extensions/postgres`):\n* pack-contributed slots (`role`, `policy`, `native_enum`, …) have none and\n* are not emitted.\n*/\nfunction generateValueSetBlockType(valueSets) {\n\treturn `{ ${Object.entries(valueSets).sort(([a], [b]) => a.localeCompare(b)).map(([name, valueSet]) => `readonly ${serializeObjectKey(name)}: ${serializeValue(valueSet)}`).join(\"; \")} }`;\n}\nfunction namespaceSerializedKind(ns) {\n\tconst kind = ns.kind;\n\tif (kind === \"schema\") return `readonly kind: \"${ns.id === UNBOUND_NAMESPACE_ID ? \"postgres-unbound-schema\" : \"postgres-schema\"}\"`;\n\tif (typeof kind === \"string\") return `readonly kind: ${serializeValue(kind)}`;\n\tthrow sqlEmitterError(\"CONTRACT.NAMESPACE_INVALID\", `Namespace '${ns.id}' has no string kind — all namespaces must be target concretions with a defined kind property.`, {\n\t\twhy: \"The namespace is not a target concretion, so the emitter cannot serialize its kind.\",\n\t\tfix: \"Regenerate the contract with a target pack that materializes every namespace as a target concretion.\",\n\t\tmeta: { namespace: ns.id }\n\t});\n}\nfunction generateTableLiteralType(table) {\n\tconst columns = [];\n\tfor (const [colName, col] of Object.entries(table.columns)) {\n\t\tconst nullable = col.nullable ? \"true\" : \"false\";\n\t\tconst dataType = serializeValue(col.dataType);\n\t\tconst codecId = serializeValue(col.codecId);\n\t\tconst defaultSpec = col.default ? col.default.kind === \"literal\" ? `; readonly default: { readonly kind: \"literal\"; readonly value: DefaultLiteralValue<${codecId}, ${serializeValue(col.default.value)}> }` : `; readonly default: { readonly kind: \"function\"; readonly expression: ${serializeValue(col.default.expression)} }` : \"\";\n\t\tconst typeParamsSpec = col.typeParams && Object.keys(col.typeParams).length > 0 ? `; readonly typeParams: ${serializeTypeParamsLiteral(col.typeParams)}` : \"\";\n\t\tconst typeRefSpec = col.typeRef ? `; readonly typeRef: ${serializeValue(col.typeRef)}` : \"\";\n\t\tconst manySpec = col.many === false ? \"; readonly many: false\" : `; readonly many: { readonly elementNullable: ${col.many.elementNullable} }`;\n\t\tcolumns.push(`readonly ${serializeObjectKey(colName)}: { readonly dataType: ${dataType}; readonly codecId: ${codecId}; readonly nullable: ${nullable}${defaultSpec}${typeParamsSpec}${typeRefSpec}${manySpec} }`);\n\t}\n\tconst tableParts = [`columns: { ${columns.join(\"; \")} }`];\n\tif (table.primaryKey) {\n\t\tconst pkParts = [`readonly columns: readonly [${table.primaryKey.columns.map((c) => serializeValue(c)).join(\", \")}]`];\n\t\tif (table.primaryKey.name) pkParts.push(`readonly name: ${serializeValue(table.primaryKey.name)}`);\n\t\ttableParts.push(`primaryKey: { ${pkParts.join(\"; \")} }`);\n\t}\n\tconst uniques = table.uniques.map((u) => {\n\t\tconst parts = [`readonly columns: readonly [${u.columns.map((c) => serializeValue(c)).join(\", \")}]`];\n\t\tif (u.name) parts.push(`readonly name: ${serializeValue(u.name)}`);\n\t\treturn `{ ${parts.join(\"; \")} }`;\n\t}).join(\", \");\n\ttableParts.push(`uniques: readonly [${uniques}]`);\n\tconst indexes = table.indexes.map((i) => {\n\t\tconst parts = [`readonly name: ${serializeValue(i.name)}`];\n\t\tif (i.prefix !== void 0) parts.push(`readonly prefix: ${serializeValue(i.prefix)}`);\n\t\tif (i.columns !== void 0) parts.push(`readonly columns: readonly [${i.columns.map((c) => serializeValue(c)).join(\", \")}]`);\n\t\tif (i.expression !== void 0) parts.push(`readonly expression: ${serializeValue(i.expression)}`);\n\t\tif (i.where !== void 0) parts.push(`readonly where: ${serializeValue(i.where)}`);\n\t\tparts.push(`readonly unique: ${i.unique}`);\n\t\tif (i.type !== void 0) parts.push(`readonly type: ${serializeValue(i.type)}`);\n\t\tif (i.options !== void 0) parts.push(`readonly options: ${serializeValue(i.options)}`);\n\t\treturn `{ ${parts.join(\"; \")} }`;\n\t}).join(\", \");\n\ttableParts.push(`indexes: readonly [${indexes}]`);\n\tconst fks = table.foreignKeys.map((fk) => {\n\t\tconst srcCols = fk.source.columns.map((c) => serializeValue(c)).join(\", \");\n\t\tconst tgtCols = fk.target.columns.map((c) => serializeValue(c)).join(\", \");\n\t\tconst srcRef = `{ readonly namespaceId: ${serializeNamespaceId(String(fk.source.namespaceId))}; readonly tableName: ${serializeValue(fk.source.tableName)}; readonly columns: readonly [${srcCols}] }`;\n\t\tconst tgtRef = `{ readonly namespaceId: ${serializeNamespaceId(String(fk.target.namespaceId))}; readonly tableName: ${serializeValue(fk.target.tableName)}; readonly columns: readonly [${tgtCols}] }`;\n\t\tconst parts = [`readonly source: ${srcRef}`, `readonly target: ${tgtRef}`];\n\t\tif (fk.name) parts.push(`readonly name: ${serializeValue(fk.name)}`);\n\t\treturn `{ ${parts.join(\"; \")} }`;\n\t}).join(\", \");\n\ttableParts.push(`foreignKeys: readonly [${fks}]`);\n\treturn `{ ${tableParts.join(\"; \")} }`;\n}\nfunction generateTablesMapType(tables) {\n\tconst tableEntries = [];\n\tfor (const [tableName, table] of Object.entries(tables).sort(([a], [b]) => a.localeCompare(b))) tableEntries.push(`readonly ${serializeObjectKey(tableName)}: ${generateTableLiteralType(table)}`);\n\tif (tableEntries.length === 0) return \"{}\";\n\treturn `{ ${tableEntries.join(\"; \")} }`;\n}\nfunction generateStorageNamespacesType(namespaces) {\n\tconst entries = Object.entries(namespaces ?? {}).sort(([a], [b]) => a.localeCompare(b));\n\tif (entries.length === 0) return \"Record<string, never>\";\n\tconst parts = [];\n\tfor (const [name, ns] of entries) {\n\t\tconst kindSuffix = `; ${namespaceSerializedKind(ns)}`;\n\t\tconst entriesParts = [`readonly table: ${generateTablesMapType(ns.entries.table ?? {})}`];\n\t\tconst valueSetEntries = ns.entries.valueSet;\n\t\tif (valueSetEntries !== void 0 && Object.keys(valueSetEntries).length > 0) entriesParts.push(`readonly valueSet: ${generateValueSetBlockType(valueSetEntries)}`);\n\t\tconst entriesType = `{ ${entriesParts.join(\"; \")} }`;\n\t\tparts.push(`readonly ${serializeObjectKey(name)}: { readonly id: ${serializeValue(ns.id)}${kindSuffix}; readonly entries: ${entriesType} }`);\n\t}\n\treturn `{ ${parts.join(\"; \")} }`;\n}\n//#endregion\nexport { sqlEmission };\n\n//# sourceMappingURL=index.mjs.map"],"mappings":"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"}